mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-21 07:46:38 +00:00
glimagesink: make multiview none equivalent to mono
Fixes the internal viewconvert to not scale buffers for output with the following pipeline: gltestsrc ! glimagesink It also fixes overlay composition with a resized output with an OpenGL upstream: gltestsrc ! timeoverlay ! glimagesink
This commit is contained in:
parent
452d90a88c
commit
6e591403a7
1 changed files with 14 additions and 1 deletions
|
@ -1378,6 +1378,19 @@ configure_display_from_info (GstGLImageSink * glimage_sink,
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
_mview_modes_are_equal (GstVideoMultiviewMode a, GstVideoMultiviewMode b)
|
||||||
|
{
|
||||||
|
if (a == b)
|
||||||
|
return TRUE;
|
||||||
|
if (a == GST_VIDEO_MULTIVIEW_MODE_NONE && b == GST_VIDEO_MULTIVIEW_MODE_MONO)
|
||||||
|
return TRUE;
|
||||||
|
if (a == GST_VIDEO_MULTIVIEW_MODE_MONO && b == GST_VIDEO_MULTIVIEW_MODE_NONE)
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
/* Called with GST_GLIMAGE_SINK lock held, to
|
/* Called with GST_GLIMAGE_SINK lock held, to
|
||||||
* copy in_info to out_info and update out_caps */
|
* copy in_info to out_info and update out_caps */
|
||||||
static gboolean
|
static gboolean
|
||||||
|
@ -1397,7 +1410,7 @@ update_output_format (GstGLImageSink * glimage_sink)
|
||||||
|
|
||||||
mv_mode = GST_VIDEO_INFO_MULTIVIEW_MODE (&glimage_sink->in_info);
|
mv_mode = GST_VIDEO_INFO_MULTIVIEW_MODE (&glimage_sink->in_info);
|
||||||
|
|
||||||
if (glimage_sink->mview_output_mode != mv_mode) {
|
if (!_mview_modes_are_equal (glimage_sink->mview_output_mode, mv_mode)) {
|
||||||
/* Input is multiview, and output wants a conversion - configure 3d converter now,
|
/* Input is multiview, and output wants a conversion - configure 3d converter now,
|
||||||
* otherwise defer it until either the caps or the 3D output mode changes */
|
* otherwise defer it until either the caps or the 3D output mode changes */
|
||||||
gst_video_multiview_video_info_change_mode (out_info,
|
gst_video_multiview_video_info_change_mode (out_info,
|
||||||
|
|
Loading…
Reference in a new issue