[mythtv-commits] Ticket #12902: Cannot make QOpenGLContext current in a different thread (occurred while watching live tv)

MythTV noreply at mythtv.org
Fri Jan 6 21:43:50 UTC 2017


#12902: Cannot make QOpenGLContext current in a different thread (occurred while
watching live tv)
-------------------------------------------------+-------------------------
 Reporter:  William L. DeRieux IV                |          Owner:
  <WilliamDeRieux@…>                             |
     Type:  Bug Report - Crash                   |         Status:  new
 Priority:  critical                             |      Milestone:  0.28.1
Component:  Qt5 issues                           |        Version:  0.28.0
 Severity:  high                                 |     Resolution:
 Keywords:                                       |  Ticket locked:  0
-------------------------------------------------+-------------------------

Comment (by WilliamDeRieux@…):

 Replying to [comment:3 pbennett]:
 > Can you supply a short video file that has this problem. Also please let
 us know what your setting is for video playback profile.
 I wouldn't be able to supply any video due to copyright/broadcast
 liscensing (even a short one)

 I use OpenGL for both painting and rendering....the playback profile that
 I use now is 'OpenGL Slim' but I was using 'OpenGL High Quality'.
 It only seemed to happen when using OpenGL -- the other painters/renders
 were fine.

 I also fixed the issue in my copy of the source.[[BR]]
 MythPlayer::ChangeSpeed() will call VideoOutput::FallbackDeint() before
 then calling VideoOutputOpenGL::SetupDeinterlace[[BR]]
 The problem seems to be in the deinterlaing methods because it will call
 QOpenGLContext::makeCurrent() on the wrong thread.[[BR]]
 [[BR]]
 -- I simply commented out the body of the FallbackDeint() method since I
 don't use deinterlaing and as a result I haven't had this issue occur
 after.

 this what that method looks like now:

 {{{
 /** \fn VideoOutput::FallbackDeint(void)
  *  \brief Fallback to non-frame-rate-doubling deinterlacing method.
  */
 void VideoOutput::FallbackDeint(void)
 {
     /*SetupDeinterlace(false);
     if (db_vdisp_profile)
         SetupDeinterlace(true,
 db_vdisp_profile->GetFallbackDeinterlacer());*/
 }
 }}}

--
Ticket URL: <https://code.mythtv.org/trac/ticket/12902#comment:4>
MythTV <http://www.mythtv.org>
MythTV Media Center


More information about the mythtv-commits mailing list