mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
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.
This commit is contained in:
parent
65c69c60ed
commit
fa4da8fe6b
1 changed files with 2 additions and 1 deletions
|
@ -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,
|
||||||
}
|
}
|
||||||
|
|
||||||
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;
|
||||||
|
|
Loading…
Reference in a new issue