diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2014-07-10 12:03:46 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2014-07-11 13:54:07 +0200 |
commit | 13e15fd953e0bd8aa7092b279980c41338bb7aac (patch) | |
tree | 97f718397a894c9635bfa7da49780d3844d35b2e | |
parent | 0c171fbef367bc70aa8b517ade81913e9742362c (diff) |
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.
-rw-r--r-- | gst/playback/gstdecodebin2.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gst/playback/gstdecodebin2.c b/gst/playback/gstdecodebin2.c index 01984fe7d..f1920a2ef 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; |