On Sun, 2005-12-04 at 11:15 -0500, Jesse Crews wrote:
> I just started working with rev 8106, and the first thing I noticed re.
> playback is that NVP pauses for prebuffering at the drop of a hat.
I'm looking at this right now. It's a different beast from the old
prebuffering pause problem.
> looking at videoout_xv, I see that xvmc code has been unified (no more
> videoout_xvmc), and that the prebuffering setup is much different.
Not really that different, mostly it is just better documented.
> The old way has 8 buffers (one for each surface?) 4 for playback
> The new way still has 8 buffers (for nv) **3** for playback
> I set the PRE_NUM to 2 (2 I/P frames before us) <-
> libs/libmythtv/videoout_xv.cpp, line 147.
> This got rid of the race condition. Playback is perfect.
> Was there a reason for not using that 4th surface for buffering?
Yep, the pause frame and OSD. This should be fairly well documented
in videoout_xv.cpp. There is a hard reserve of 1 + num OSD surfaces,
plus a soft reserve that include the PRE, POST and pause frame plus
the hard reserve. If you turn on the Chromakey OSD you don't need
to reserve the OSD surfaces; but you do need hardware that supports
chromakey.
If you get rid of the reserve playback is better, until you the
machine locks up and you need to pull the plug for a hard reboot :/
-- Daniel