Commit fa4da8fe authored by Sebastian Dröge's avatar Sebastian Dröge 🍵
Browse files

basetransform: Fix handling of reverse caps negotiation if this element alone...

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.
parent 65c69c60
...@@ -1974,7 +1974,7 @@ gst_base_transform_buffer_alloc (GstPad * pad, guint64 offset, guint size, ...@@ -1974,7 +1974,7 @@ gst_base_transform_buffer_alloc (GstPad * pad, guint64 offset, guint size,
&& !gst_caps_is_equal (sink_suggest, priv->sink_alloc); && !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; GstCaps *allowed, *peercaps;
GST_DEBUG_OBJECT (trans, GST_DEBUG_OBJECT (trans,
...@@ -2023,6 +2023,7 @@ gst_base_transform_buffer_alloc (GstPad * pad, guint64 offset, guint size, ...@@ -2023,6 +2023,7 @@ gst_base_transform_buffer_alloc (GstPad * pad, guint64 offset, guint size,
} }
gst_caps_replace (&sink_suggest, allowed); gst_caps_replace (&sink_suggest, allowed);
size_suggest = 0;
gst_caps_unref (allowed); gst_caps_unref (allowed);
suggest = TRUE; suggest = TRUE;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment