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