[mythtv-commits] mythtv/master commit: ea247122f by Mark Kendall (mark-kendall)

MythTV noreply at mythtv.org
Mon May 2 10:12:47 UTC 2011


      Author:  Mark Kendall <mkendall at 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



More information about the mythtv-commits mailing list