From bf2937ef7a51692fde384a38c24d3d0eed601fda Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Wed, 8 Jun 2011 21:09:03 +0000 Subject: added basic streamer code --- src/gstdvbbackend.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'src/gstdvbbackend.c') 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); -- cgit v1.2.3