diff options
Diffstat (limited to 'src/gstdvbbackend.c')
-rw-r--r-- | src/gstdvbbackend.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/src/gstdvbbackend.c b/src/gstdvbbackend.c index 7d3a0c0..0134391 100644 --- a/src/gstdvbbackend.c +++ b/src/gstdvbbackend.c @@ -36,6 +36,7 @@ #include "string_list.h" #include "log.h" #include "daemon.h" +#include "streamer.h" static gboolean bus_call(GstBus *bus, GstMessage *msg, gpointer data) { @@ -82,6 +83,7 @@ int main_loop(options_t* opt) GMainLoop *loop; GstElement *pipeline, *source, *sink; GstBus *bus; + streamer_t streamer; loop = g_main_loop_new(NULL, FALSE); pipeline = gst_pipeline_new("gstdvbbackend"); @@ -106,19 +108,15 @@ int main_loop(options_t* opt) g_object_set(G_OBJECT(source), "trans-mode", 1, NULL); // 8k g_object_set(G_OBJECT(source), "guard", 4, NULL); // AUTO - sink = gst_element_factory_make ("tcpserversink", "streamer-sink"); - if(!sink) { - log_printf(ERROR, "Error creating streamer sink"); - gst_object_unref(GST_OBJECT(source)); + int ret = streamer_init(&streamer, loop, NULL, "9001"); + if(ret) { gst_object_unref(GST_OBJECT(pipeline)); gst_object_unref(GST_OBJECT(loop)); - return -1; + return ret; } - g_object_set(G_OBJECT(sink), "host", "127.0.0.1", NULL); - g_object_set(G_OBJECT(sink), "port", 9001, NULL); - gst_bin_add_many(GST_BIN(pipeline), source, sink, NULL); - gst_element_link_many(source, sink, NULL); + gst_bin_add_many(GST_BIN(pipeline), source, streamer.sink_, NULL); + gst_element_link_many(source, streamer.sink_, NULL); bus = gst_pipeline_get_bus(GST_PIPELINE(pipeline)); gst_bus_add_watch(bus, bus_call, loop); gst_object_unref(bus); @@ -129,8 +127,11 @@ int main_loop(options_t* opt) gst_element_set_state(pipeline, GST_STATE_PLAYING); signal_start(loop); - g_main_loop_run(loop); - signal_stop(); + ret = streamer_start(&streamer); + if(!ret) { + g_main_loop_run(loop); + signal_stop(); + } log_printf(NOTICE, "Stopping pipeline"); gst_element_set_state (pipeline, GST_STATE_NULL); |