- } else /* is_video */
- {
- /* filesrc -> mpegdemux -> | queue_audio -> dvbaudiosink
- | queue_video -> dvbvideosink */
-
- audio = gst_element_factory_make("dvbaudiosink", "audiosink");
- queue_audio = gst_element_factory_make("queue", "queue_audio");
-
- video = gst_element_factory_make("dvbvideosink", "videosink");
- queue_video = gst_element_factory_make("queue", "queue_video");
-
- if (is_mpeg_ps)
- videodemux = gst_element_factory_make("flupsdemux", "videodemux");
- else if (is_mpeg_ts)
- videodemux = gst_element_factory_make("flutsdemux", "videodemux");
- else if (is_matroska)
- videodemux = gst_element_factory_make("matroskademux", "videodemux");
- else if (is_avi)
- videodemux = gst_element_factory_make("avidemux", "videodemux");
-
- if (!videodemux)
- {
- eDebug("fluendo mpegdemux not available, falling back to mpegdemux\n");
- videodemux = gst_element_factory_make("mpegdemux", "videodemux");
- }
-
- eDebug("audio: %p, queue_audio %p, video %p, queue_video %p, videodemux %p", audio, queue_audio, video, queue_video, videodemux);
- if (audio && queue_audio && video && queue_video && videodemux)
- {
- g_object_set (G_OBJECT (queue_audio), "max-size-bytes", 256*1024, NULL);
- 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-bytes", 2*1024*1024, NULL);
- g_object_set (G_OBJECT (queue_video), "max-size-time", (guint64)0, NULL);
- all_ok = 1;
- }