From 424ff91394bd9b6c458f53b199d0080ffa1653be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Thu, 10 Jul 2014 12:03:46 +0200 Subject: [PATCH] decodebin: Consider the caps after the capsfilter after parsers for autoplugging Otherwise we might try to continue autoplugging e.g. for a specific stream-format although the parser could convert to something else, thus giving us potentially less options for decoders. --- gst/playback/gstdecodebin2.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gst/playback/gstdecodebin2.c b/gst/playback/gstdecodebin2.c index 01984fe7d6..f1920a2efd 100644 --- a/gst/playback/gstdecodebin2.c +++ b/gst/playback/gstdecodebin2.c @@ -315,6 +315,8 @@ static void gst_decode_bin_handle_message (GstBin * bin, GstMessage * message); static gboolean check_upstream_seekable (GstDecodeBin * dbin, GstPad * pad); +static GstCaps *get_pad_caps (GstPad * pad); + #define EXPOSE_LOCK(dbin) G_STMT_START { \ GST_LOG_OBJECT (dbin, \ "expose locking from thread %p", \ @@ -1731,6 +1733,9 @@ analyze_new_pad (GstDecodeBin * dbin, GstElement * src, GstPad * pad, decode_pad_set_target (dpad, p); pad = p; + gst_caps_unref (caps); + caps = get_pad_caps (pad); + if (!gst_caps_is_fixed (caps)) { g_value_array_free (factories); goto non_fixed;