summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <slomo@circular-chaos.org>2013-05-24 22:58:19 +0200
committerSebastian Dröge <slomo@circular-chaos.org>2013-05-24 22:59:18 +0200
commitfa4da8fe6b3bed0bdf0233d321561b823c318742 (patch)
tree4a55cfc009a98569f0475e35af889aff5384fd3b
parent65c69c60eda0d9583f500f52013a7c4eeaabf047 (diff)
downloadgstreamer-fa4da8fe6b3bed0bdf0233d321561b823c318742.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;