videoparsers: Use the peer caps for restrictions instead of the srcpad allowed caps
Otherwise we will intersect with the srcpad template caps and add all the caps fields that the parser will ever set, no matter if downstream restricts this field or not. This requires upstream to set this field on the caps to successfully negotiate. https://bugzilla.gnome.org/show_bug.cgi?id=690184
This commit is contained in:
parent
7faf96eb14
commit
9f1257330d
@ -394,7 +394,7 @@ gst_dirac_parse_get_sink_caps (GstBaseParse * parse, GstCaps * filter)
|
||||
GstCaps *res;
|
||||
|
||||
templ = gst_pad_get_pad_template_caps (GST_BASE_PARSE_SINK_PAD (parse));
|
||||
peercaps = gst_pad_get_allowed_caps (GST_BASE_PARSE_SRC_PAD (parse));
|
||||
peercaps = gst_pad_peer_query_caps (GST_BASE_PARSE_SRC_PAD (parse), filter);
|
||||
|
||||
if (peercaps) {
|
||||
guint i, n;
|
||||
|
@ -356,7 +356,7 @@ gst_h263_parse_get_sink_caps (GstBaseParse * parse, GstCaps * filter)
|
||||
GstCaps *res;
|
||||
|
||||
templ = gst_pad_get_pad_template_caps (GST_BASE_PARSE_SINK_PAD (parse));
|
||||
peercaps = gst_pad_get_allowed_caps (GST_BASE_PARSE_SRC_PAD (parse));
|
||||
peercaps = gst_pad_peer_query_caps (GST_BASE_PARSE_SRC_PAD (parse), filter);
|
||||
|
||||
if (peercaps) {
|
||||
guint i, n;
|
||||
|
@ -1876,7 +1876,7 @@ gst_h264_parse_get_caps (GstBaseParse * parse, GstCaps * filter)
|
||||
GstCaps *res;
|
||||
|
||||
templ = gst_pad_get_pad_template_caps (GST_BASE_PARSE_SINK_PAD (parse));
|
||||
peercaps = gst_pad_get_allowed_caps (GST_BASE_PARSE_SRC_PAD (parse));
|
||||
peercaps = gst_pad_peer_query_caps (GST_BASE_PARSE_SRC_PAD (parse), filter);
|
||||
if (peercaps) {
|
||||
guint i, n;
|
||||
|
||||
|
@ -858,7 +858,7 @@ gst_mpeg4vparse_get_caps (GstBaseParse * parse, GstCaps * filter)
|
||||
GstCaps *res;
|
||||
|
||||
templ = gst_pad_get_pad_template_caps (GST_BASE_PARSE_SINK_PAD (parse));
|
||||
peercaps = gst_pad_get_allowed_caps (GST_BASE_PARSE_SRC_PAD (parse));
|
||||
peercaps = gst_pad_peer_query_caps (GST_BASE_PARSE_SRC_PAD (parse), filter);
|
||||
|
||||
if (peercaps) {
|
||||
guint i, n;
|
||||
|
@ -859,7 +859,7 @@ gst_mpegv_parse_get_caps (GstBaseParse * parse, GstCaps * filter)
|
||||
GstCaps *res;
|
||||
|
||||
templ = gst_pad_get_pad_template_caps (GST_BASE_PARSE_SINK_PAD (parse));
|
||||
peercaps = gst_pad_get_allowed_caps (GST_BASE_PARSE_SRC_PAD (parse));
|
||||
peercaps = gst_pad_peer_query_caps (GST_BASE_PARSE_SRC_PAD (parse), filter);
|
||||
if (peercaps) {
|
||||
guint i, n;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user