Mailing List Archive

mythtv/master commit: ea247122f by Mark Kendall (mark-kendall)
Author: Mark Kendall <mkendall@mythtv.org>
Change Date: 2011-05-02T03:12:33-07:00
Push Date: 2011/05/02 03:12:45 -0700
Repository: mythtv
Branch: master
New Revision: ea247122f37e1a1b3bb92c495b1f47d2a6ece605
Changeset: https://github.com/MythTV/mythtv/commit/ea247122f

Log:

MythRender: Add a Release method to MythRenderOpenGL.

MythRenderOpenGL re-implements the QGLContext makeCurrent and
doneCurrent methods in order to enforce thread safety. We recursively
lock the context and only release it when the final doneCurrent call is
received. When we call show() on the UI painter window, however, Qt
calls makeCurrent several times internally without matching doneCurrent
calls and hence we never actually unlock and release the main OpenGL
context in normal use.

With the imminent move to a single, shared OpenGL context for video and
UI, this will cause a lockup at any point the decoder thread tries to
re-initiate the video output objects (or deinterlacers) when using
OpenGL for both video and the UI.

So we simply force the context to release itself after the call to
show().

Modified:

mythtv/libs/libmythui/mythmainwindow.cpp
mythtv/libs/libmythui/mythrender_base.h
mythtv/libs/libmythui/mythrender_opengl.cpp
mythtv/libs/libmythui/mythrender_opengl.h

_______________________________________________
mythtv-firehose mailing list
mythtv-firehose@mythtv.org
http://www.mythtv.org/mailman/listinfo/mythtv-firehose