[mythtv-commits] mythtv commit: r7684 by danielk

mythtv at cvs.mythtv.org mythtv at cvs.mythtv.org
Thu Nov 3 14:08:59 EST 2005


      Author: danielk
        Date: 2005-11-03 19:08:57 +0000 (Thu, 03 Nov 2005)
New Revision: 7684
   Changeset: http://cvs.mythtv.org/trac/changeset/7684

Modified:

   trunk/mythtv/libs/libmythtv/NuppelVideoPlayer.cpp
   trunk/mythtv/libs/libmythtv/NuppelVideoPlayer.h
   trunk/mythtv/libs/libmythtv/tv_play.cpp
   trunk/mythtv/libs/libmythtv/videoout_xv.h
   trunk/mythtv/libs/libmythtv/vsync.cpp
   trunk/mythtv/libs/libmythtv/vsync.h

Log:

Fixes #573. References #545.

This fixes the problem of VSync syncing to the wrong screen in
multiple screen configurations most of the time. If you span 
multiple screens, or move the window after it is initialized
the sync may be off. I do create the OpenGL window in the center
of the playback window, so if a just the edges of the window
are on another screen, you are probably OK.

As for the segfault, this probably fixes it. But since I can't
reproduce it I can't be sure. It appears the problem was that
Start()/WaitForFrame()/Stop() and the dtor of OpenGLVideoSync 
were not being called in the same thread. It looks like there
was an earlier attempt to fix this by calling Stop() in the 
same thread as the destructor in tv_play, but this raced with
the WaitForFrame() calls in the NVP thread. I've put the vsync 
delete in the NVP thread, which should solve the problem in 
altogether in non-error conditions. And, I've put a call to
Stop() in the OpenGLVideoSync dtor, which should grab the 
OpenGL context just before it is used in the dtor.






More information about the mythtv-commits mailing list