[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