[mythtv-users] Re: very serious A/V sync issues
Robson Braga Araujo
robson at akwan.com.br
Mon Mar 7 16:53:27 UTC 2005
On Mon, Mar 07, 2005 at 08:49:05AM -0500, Matt Vollmar wrote:
> Sounds to me like the opengl_vsync issue. You need to recompile Myth
> without opengl_vsync set. I don't think anyone has found a different
> work-around. I did this and everything was peachy. It's worth a try,
> anyway. Search for it on the list if you aren't sure what this means.
Hi,
Regarding this issue, I posted the following mail in mythtv-dev:
http://www.gossamer-threads.com/lists/mythtv/dev/116337
I got no answers. Since this seems to be a more active community, I'm
hopping someone can comment on it. If you don't feel like opening a
web browser, the message follows.
------
Re: Playback problems with mythtv 0.17 [In reply to]
On Fri, Mar 04, 2005 at 08:50:57PM -0300, Robson Braga Araujo wrote:
> Hello,
>
> I'm having playback problems since I upgraded from 0.16 to 0.17. The
> video plays too fast, gets ahead of the audio and generates tons of
> prebuffering pause messages. I tried the latest cvs version, but no
> luck. This happens if I'm watching live TV or any prerecorded show (no
> prebuffering pauses here, obviously).
>
> I have a PVR-250. I tested with the drivers 0.1.9 and 0.3.2f. I'm also
> using a SB Live! and a nvidia GeForce2 MX/MX 400 with the latest
> drivers.
>
> I ran 0.16 (which plays fine) and 0.17 with -v all and generated too log
> files for comparison. They are here:
>
> http://valfenda.cjb.net/~robson/log.0.16
> http://valfenda.cjb.net/~robson/log.0.17
>
> Do you need any more information?
> Thanks for any help.
After a good saturday trying different CVS versions to see when the bug
appeared, I discovered that it is in the method
OpenGLVideoSync::WaitForFrame in libs/libmythtv/vsync.cpp.
If I use another sync method like RTCVideoSync or BusyWaitVideoSync
everything works fine.
The change that introduced the bug appeared between 2004-09-25 and
2004-09-26. The OpenGLVideoSync::WaitForFrame used to have a loop that
did not exit until m_delay was less than or equal 0. It was substituted
by two ifs that I'm guessing should do the same thing but they don't.
I tried reverting the OpenGLVideoSync::WaitForFrame method to the old
version in the current CVS and now everything is working. The attached
patch changes the first if for a while and gets rid of the second if
because it would never be entered this way.
Is it the right way to do it?
--
[]s,
Robson Braga Araujo
Ciencia da Computacao - UFMG http://www.dcc.ufmg.br/
Akwan Information Technologies http://www.akwan.com.br/
Hobbes : Well, you still have afternoons and weekends
Calvin : That's when I watch TV.
More information about the mythtv-users
mailing list