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.
This commit is contained in:
Sebastian Dröge 2014-07-10 12:03:46 +02:00
parent 3f45b49dde
commit 424ff91394

View file

@ -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 gboolean check_upstream_seekable (GstDecodeBin * dbin, GstPad * pad);
static GstCaps *get_pad_caps (GstPad * pad);
#define EXPOSE_LOCK(dbin) G_STMT_START { \ #define EXPOSE_LOCK(dbin) G_STMT_START { \
GST_LOG_OBJECT (dbin, \ GST_LOG_OBJECT (dbin, \
"expose locking from thread %p", \ "expose locking from thread %p", \
@ -1731,6 +1733,9 @@ analyze_new_pad (GstDecodeBin * dbin, GstElement * src, GstPad * pad,
decode_pad_set_target (dpad, p); decode_pad_set_target (dpad, p);
pad = p; pad = p;
gst_caps_unref (caps);
caps = get_pad_caps (pad);
if (!gst_caps_is_fixed (caps)) { if (!gst_caps_is_fixed (caps)) {
g_value_array_free (factories); g_value_array_free (factories);
goto non_fixed; goto non_fixed;