From 11fd0e612047debf797889bbbf8c69d56d8a4386 Mon Sep 17 00:00:00 2001 From: Vinod Kesti Date: Wed, 16 Nov 2016 10:53:51 +0530 Subject: [PATCH] splitmuxsink: pad request fails for flvmux splitmuxsink requests pad from element using pad template like "video_%u", "audio_%u" and "sink_%d". This is true for most of the muxers. But splitmuxsink not able to request pad to flvmux as flvmux has "audio" and "video" as pad templates. fix: splitmuxsink should fallback to "audio" and "video" when template not found. https://bugzilla.gnome.org/show_bug.cgi?id=774507 --- gst/multifile/gstsplitmuxsink.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/gst/multifile/gstsplitmuxsink.c b/gst/multifile/gstsplitmuxsink.c index 99bc78528a..0f05f7b0e3 100644 --- a/gst/multifile/gstsplitmuxsink.c +++ b/gst/multifile/gstsplitmuxsink.c @@ -1382,12 +1382,26 @@ gst_splitmux_sink_request_new_pad (GstElement * element, mux_template = gst_element_class_get_pad_template (GST_ELEMENT_GET_CLASS (splitmux->muxer), "video_%u"); + + /* Fallback to find sink pad templates named 'video' (flvmux) */ + if (!mux_template) { + mux_template = + gst_element_class_get_pad_template (GST_ELEMENT_GET_CLASS + (splitmux->muxer), "video"); + } is_video = TRUE; name = NULL; } else { mux_template = gst_element_class_get_pad_template (GST_ELEMENT_GET_CLASS (splitmux->muxer), templ->name_template); + + /* Fallback to find sink pad templates named 'audio' (flvmux) */ + if (!mux_template) { + mux_template = + gst_element_class_get_pad_template (GST_ELEMENT_GET_CLASS + (splitmux->muxer), "audio"); + } } if (mux_template == NULL) { /* Fallback to find sink pad templates named 'sink_%d' (mpegtsmux) */