summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Waters <matthew@centricular.com>2020-06-12 12:16:49 +1000
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>2020-06-12 07:23:19 +0000
commitffe4d09efc1eaa8ea86cfad23503e47a90e2c9b8 (patch)
treee41e694d581013bccd747726bdbeec1950f99968
parent556e7ab210777ccca9b77f9fd1863ac34c8a1ade (diff)
qt/gloverlay: reset current OpenGL context after Qt
Qt may replace the drawable with its own which breaks output if Qt is not displaying the resulting video as used with e.g. glimagesink. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/623>
-rw-r--r--ext/qt/qtglrenderer.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/ext/qt/qtglrenderer.cc b/ext/qt/qtglrenderer.cc
index ddd8acf37f..9a8d75d3d6 100644
--- a/ext/qt/qtglrenderer.cc
+++ b/ext/qt/qtglrenderer.cc
@@ -636,6 +636,12 @@ void GstQuickRenderer::initializeGstGL ()
m_sharedRenderData->m_animationDriver->install();
}
g_mutex_unlock (&m_sharedRenderData->lock);
+ /* XXX: reset the OpenGL context drawable as Qt may have clobbered it.
+ * Fixes glimagesink output where Qt replaces the Surface to use in its
+ * own MakeCurrent call. Qt does this on it's OpenGL initialisation
+ * the the rendering engine. */
+ gst_gl_context_activate (gl_context, FALSE);
+ gst_gl_context_activate (gl_context, TRUE);
}
void GstQuickRenderer::initializeQml()