- GstCaps *caps = gst_caps_new_simple("audio/x-raw-int", "endianness", G_TYPE_INT, 4321, 0);
- g_object_set (G_OBJECT (flt), "caps", caps, 0);
- gst_caps_unref(caps);
+ /* filesrc -> mpegdemux -> | queue_audio -> dvbaudiosink
+ | queue_video -> dvbvideosink */
+
+ audio = gst_element_factory_make("dvbaudiosink", "audio");
+ queue_audio = gst_element_factory_make("queue", "queue_audio");
+
+ video = gst_element_factory_make("dvbvideosink", "video");
+ queue_video = gst_element_factory_make("queue", "queue_video");
+
+ if (is_mpeg_ps)
+ mpegdemux = gst_element_factory_make("flupsdemux", "mpegdemux");
+ else
+ mpegdemux = gst_element_factory_make("flutsdemux", "mpegdemux");
+
+ if (!mpegdemux)
+ {
+ eDebug("fluendo mpegdemux not available, falling back to mpegdemux\n");
+ mpegdemux = gst_element_factory_make("mpegdemux", "mpegdemux");
+ }
+
+ eDebug("audio: %p, queue_audio %p, video %p, queue_video %p, mpegdemux %p", audio, queue_audio, video, queue_video, mpegdemux);
+ if (audio && queue_audio && video && queue_video && mpegdemux)
+ {
+ g_object_set (G_OBJECT (queue_audio), "max-size-buffers", 0, NULL);
+ g_object_set (G_OBJECT (queue_audio), "max-size-time", (guint64)0, NULL);
+ g_object_set (G_OBJECT (queue_video), "max-size-buffers", 0, NULL);
+ g_object_set (G_OBJECT (queue_video), "max-size-time", (guint64)0, NULL);
+ all_ok = 1;
+ }