From 2eb158e6a56064198bf75d3ba77913175d9115cb Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Thu, 4 Sep 2014 23:15:02 +0200 Subject: small refactoring --- src/sydra.c | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/src/sydra.c b/src/sydra.c index b45ef3c..25cc4fe 100644 --- a/src/sydra.c +++ b/src/sydra.c @@ -147,17 +147,8 @@ static gboolean bus_call(GstBus *bus, GstMessage *msg, gpointer data) return TRUE; } - -int main_loop(options_t* opt) +static char* build_sender_pipeline_desc(options_t* opt) { - log_printf(INFO, "entering main loop"); - - GMainLoop *loop; - GstElement *pipeline; - GstBus *bus; - - loop = g_main_loop_new(NULL, FALSE); - struct timespec now; clock_gettime(CLOCK_REALTIME, &now); struct tm bd_time; @@ -186,8 +177,22 @@ int main_loop(options_t* opt) opt->audio_src_, opt->audio_enc_stream_, opt->audio_payloader_, rtp_port_a, opt->rtp_host_, rtcp_port_a, opt->rtp_host_, opt->videosink_); - if(slen < 0) { - log_printf(ERROR, "memory error while constructing sender pipeline description"); + return (slen < 0) ? NULL : sender_desc; +} + +int main_loop(options_t* opt) +{ + log_printf(INFO, "entering main loop"); + + GMainLoop *loop; + GstElement *pipeline; + GstBus *bus; + + loop = g_main_loop_new(NULL, FALSE); + + char* sender_desc = build_sender_pipeline_desc(opt); + if(!sender_desc) { + log_printf(ERROR, "memory error while building sender pipeline description"); gst_object_unref(GST_OBJECT(loop)); return -1; } @@ -198,6 +203,8 @@ int main_loop(options_t* opt) log_printf(ERROR, "Pipeline parser Error: %s", error ? error->message : "unknown"); g_error_free(error); free(sender_desc); + if(pipeline) + gst_object_unref(GST_OBJECT(pipeline)); gst_object_unref(GST_OBJECT(loop)); return -1; } -- cgit v1.2.3