basetransform: Fix handling of reverse caps negotiation if this element alone is not enough to do the transform

For example if downstream wants a new width/height and color format and
there's first a videoscale and then a ffmpegcolorspace. ffmpegcolorspace
could do the color format conversion, but not the width/height and the
other way around.
This commit is contained in:
Sebastian Dröge 2013-05-24 22:58:19 +02:00
parent 65c69c60ed
commit fa4da8fe6b

View file

@ -1974,7 +1974,7 @@ gst_base_transform_buffer_alloc (GstPad * pad, guint64 offset, guint size,
&& !gst_caps_is_equal (sink_suggest, priv->sink_alloc);
}
if (new_caps && (suggest || !gst_caps_can_intersect (sink_suggest, templ))) {
if (new_caps && !gst_caps_can_intersect (sink_suggest, templ)) {
GstCaps *allowed, *peercaps;
GST_DEBUG_OBJECT (trans,
@ -2023,6 +2023,7 @@ gst_base_transform_buffer_alloc (GstPad * pad, guint64 offset, guint size,
}
gst_caps_replace (&sink_suggest, allowed);
size_suggest = 0;
gst_caps_unref (allowed);
suggest = TRUE;