diff options
author | Sebastian Dröge <slomo@circular-chaos.org> | 2013-05-24 22:58:19 +0200 |
---|---|---|
committer | Sebastian Dröge <slomo@circular-chaos.org> | 2013-05-24 22:59:18 +0200 |
commit | fa4da8fe6b3bed0bdf0233d321561b823c318742 (patch) | |
tree | 4a55cfc009a98569f0475e35af889aff5384fd3b | |
parent | 65c69c60eda0d9583f500f52013a7c4eeaabf047 (diff) |
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; |