diff options
Diffstat (limited to 'src/gstdvbbackend.c')
-rw-r--r-- | src/gstdvbbackend.c | 49 |
1 files changed, 27 insertions, 22 deletions
diff --git a/src/gstdvbbackend.c b/src/gstdvbbackend.c index 5777ed0..0cb9dd4 100644 --- a/src/gstdvbbackend.c +++ b/src/gstdvbbackend.c @@ -36,7 +36,6 @@ #include "string_list.h" #include "log.h" #include "daemon.h" -#include "writer.h" static gboolean bus_call(GstBus *bus, GstMessage *msg, gpointer data) { @@ -81,9 +80,8 @@ int main_loop(options_t* opt) log_printf(INFO, "entering main loop"); GMainLoop *loop; - GstElement *pipeline, *source; + GstElement *pipeline, *source, *sink; GstBus *bus; - writer_t writer; loop = g_main_loop_new(NULL, FALSE); pipeline = gst_pipeline_new("gstdvbbackend"); @@ -92,26 +90,37 @@ int main_loop(options_t* opt) return -1; } - int ret = writer_init(&writer, loop, opt->name_format_, opt->mode_, opt->output_dir_, opt->interval_, opt->offset_, opt->post_process_); - if(ret) { + source = gst_element_factory_make ("dvbsrc", "dvb-source"); + if(!source) { + log_printf(ERROR, "Error creating dvb source"); gst_object_unref(GST_OBJECT(pipeline)); gst_object_unref(GST_OBJECT(loop)); - return ret; + return -1; } - - GError *error = NULL; - source = gst_parse_bin_from_description(opt->src_bin_desc_, TRUE, &error); - if(!source || error) { - log_printf(ERROR, "Source Bin Description Parser Error: %s", error ? error->message : "unknown"); - g_error_free(error); - gst_object_unref(GST_OBJECT(writer.sink_)); + g_object_set(G_OBJECT(source), "adapter", 0, NULL); + g_object_set(G_OBJECT(source), "frontend", 0, NULL); + g_object_set(G_OBJECT(source), "frequency", 514000000, NULL); + g_object_set(G_OBJECT(source), "polarity", "H", NULL); + g_object_set(G_OBJECT(source), "pids", "5010:5011", NULL); + g_object_set(G_OBJECT(source), "bandwidth", 0, NULL); // 8Mbit/s + g_object_set(G_OBJECT(source), "modulation", 1, NULL); // QAM 16 + g_object_set(G_OBJECT(source), "trans-mode", 1, NULL); // 8k + g_object_set(G_OBJECT(source), "code-rate-lp", 9, NULL); // AUTO + 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)); gst_object_unref(GST_OBJECT(pipeline)); gst_object_unref(GST_OBJECT(loop)); return -1; } + 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, writer.sink_, NULL); - gst_element_link_many(source, writer.sink_, NULL); + gst_bin_add_many(GST_BIN(pipeline), source, sink, NULL); + gst_element_link_many(source, sink, NULL); bus = gst_pipeline_get_bus(GST_PIPELINE(pipeline)); gst_bus_add_watch(bus, bus_call, loop); gst_object_unref(bus); @@ -122,18 +131,14 @@ int main_loop(options_t* opt) gst_element_set_state(pipeline, GST_STATE_PLAYING); signal_start(loop); - ret = writer_start(&writer); - if(!ret) { - g_main_loop_run(loop); - signal_stop(); - } + g_main_loop_run(loop); + signal_stop(); log_printf(NOTICE, "Stopping pipeline"); gst_element_set_state (pipeline, GST_STATE_NULL); - writer_stop(&writer); gst_object_unref(GST_OBJECT(pipeline)); - return ret; + return 0; } int main(int argc, char* argv[]) |