pad: Check via gst_pad_accept_caps() if a sinkpad accepts caps

instead of just checking if the pad template caps would allow the caps.

The actually supported caps can be far more restrictive than the
template caps and only checking for the template caps can cause
incompatible caps to be set on a pad.

Fixes bug #677335.
This commit is contained in:
Sebastian Dröge 2012-06-04 09:31:07 +02:00
parent 1c0764f764
commit 7558fd21ee

View file

@ -2783,7 +2783,7 @@ gst_pad_configure_sink (GstPad * pad, GstCaps * caps)
gboolean res;
/* See if pad accepts the caps */
if (!gst_caps_can_intersect (caps, gst_pad_get_pad_template_caps (pad)))
if (!gst_pad_accept_caps (pad, caps))
goto not_accepted;
/* set caps on pad if call succeeds */