mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-28 20:51:13 +00:00
glviewconvert: Copy composition meta from the primary buffer to both outputs
Without this, glviewconvert (and thus glimagesink) will drop all overlay composition metas.
This commit is contained in:
parent
64774ece0c
commit
4d534ad8e8
1 changed files with 20 additions and 0 deletions
|
@ -2354,18 +2354,38 @@ gst_gl_view_convert_get_output (GstGLViewConvert * viewconvert,
|
||||||
|
|
||||||
outbuf = priv->primary_out;
|
outbuf = priv->primary_out;
|
||||||
if (outbuf) {
|
if (outbuf) {
|
||||||
|
GstVideoOverlayCompositionMeta *composition_meta;
|
||||||
|
|
||||||
gst_buffer_copy_into (outbuf, priv->primary_in,
|
gst_buffer_copy_into (outbuf, priv->primary_in,
|
||||||
GST_BUFFER_COPY_FLAGS | GST_BUFFER_COPY_TIMESTAMPS, 0, -1);
|
GST_BUFFER_COPY_FLAGS | GST_BUFFER_COPY_TIMESTAMPS, 0, -1);
|
||||||
GST_BUFFER_FLAG_SET (outbuf,
|
GST_BUFFER_FLAG_SET (outbuf,
|
||||||
GST_VIDEO_BUFFER_FLAG_FIRST_IN_BUNDLE |
|
GST_VIDEO_BUFFER_FLAG_FIRST_IN_BUNDLE |
|
||||||
GST_VIDEO_BUFFER_FLAG_MULTIPLE_VIEW);
|
GST_VIDEO_BUFFER_FLAG_MULTIPLE_VIEW);
|
||||||
|
|
||||||
|
composition_meta =
|
||||||
|
gst_buffer_get_video_overlay_composition_meta (priv->primary_in);
|
||||||
|
if (composition_meta) {
|
||||||
|
GST_DEBUG ("found video overlay composition meta, applying on output.");
|
||||||
|
gst_buffer_add_video_overlay_composition_meta
|
||||||
|
(outbuf, composition_meta->overlay);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (priv->auxilliary_out) {
|
if (priv->auxilliary_out) {
|
||||||
|
GstVideoOverlayCompositionMeta *composition_meta;
|
||||||
|
|
||||||
gst_buffer_copy_into (priv->auxilliary_out,
|
gst_buffer_copy_into (priv->auxilliary_out,
|
||||||
priv->primary_out, GST_BUFFER_COPY_FLAGS, 0, -1);
|
priv->primary_out, GST_BUFFER_COPY_FLAGS, 0, -1);
|
||||||
GST_BUFFER_FLAG_UNSET (priv->auxilliary_out,
|
GST_BUFFER_FLAG_UNSET (priv->auxilliary_out,
|
||||||
GST_VIDEO_BUFFER_FLAG_FIRST_IN_BUNDLE);
|
GST_VIDEO_BUFFER_FLAG_FIRST_IN_BUNDLE);
|
||||||
|
|
||||||
|
composition_meta =
|
||||||
|
gst_buffer_get_video_overlay_composition_meta (priv->primary_out);
|
||||||
|
if (composition_meta) {
|
||||||
|
GST_DEBUG ("found video overlay composition meta, applying on output.");
|
||||||
|
gst_buffer_add_video_overlay_composition_meta
|
||||||
|
(priv->auxilliary_out, composition_meta->overlay);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
priv->primary_out = NULL;
|
priv->primary_out = NULL;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue