diff options
author | Sebastian Dröge <slomo@circular-chaos.org> | 2013-05-24 22:58:19 +0200 |
---|---|---|
committer | James Thomas <james.thomas@codethink.co.uk> | 2014-10-20 17:01:01 +0100 |
commit | 5cba447eddb48b40cdbb4d634f8885b9b3b6c7a8 (patch) | |
tree | c4b9504fcb53d43342f805f7aed2be717b6bd397 | |
parent | 578152a451521cf2d5ca561adbfa85c8de23b262 (diff) | |
download | gstreamer-5cba447eddb48b40cdbb4d634f8885b9b3b6c7a8.tar.gz |
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.
-rw-r--r-- | libs/gst/base/gstbasetransform.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/libs/gst/base/gstbasetransform.c b/libs/gst/base/gstbasetransform.c index e1fbaa98fd..25eb2b4975 100644 --- a/libs/gst/base/gstbasetransform.c +++ b/libs/gst/base/gstbasetransform.c @@ -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; |