summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <slomo@circular-chaos.org>2013-05-24 22:58:19 +0200
committerJames Thomas <james.thomas@codethink.co.uk>2014-10-20 17:01:01 +0100
commit5cba447eddb48b40cdbb4d634f8885b9b3b6c7a8 (patch)
treec4b9504fcb53d43342f805f7aed2be717b6bd397
parent578152a451521cf2d5ca561adbfa85c8de23b262 (diff)
downloadgstreamer-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.c3
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;