summaryrefslogtreecommitdiff
path: root/src/gstdvbbackend.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gstdvbbackend.c')
-rw-r--r--src/gstdvbbackend.c23
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);