mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-23 10:11:08 +00:00
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:
parent
3f45b49dde
commit
424ff91394
1 changed files with 5 additions and 0 deletions
|
@ -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;
|
||||||
|
|
Loading…
Reference in a new issue