[mythtv-commits] mythtv commit: r9881 by danielk

mythtv at cvs.mythtv.org mythtv at cvs.mythtv.org
Mon May 8 13:23:19 EDT 2006


      Author: danielk
        Date: 2006-05-08 17:23:18 +0000 (Mon, 08 May 2006)
New Revision: 9881
   Changeset: http://cvs.mythtv.org/trac/changeset/9881

Modified:

   branches/mythtv-vid/libs/libmythtv/NuppelVideoPlayer.cpp
   branches/mythtv-vid/libs/libmythtv/videobuffers.cpp
   branches/mythtv-vid/libs/libmythtv/videobuffers.h
   branches/mythtv-vid/libs/libmythtv/videoout_xv.cpp
   branches/mythtv-vid/libs/libmythtv/videoout_xv.h
   branches/mythtv-vid/libs/libmythtv/videooutbase.h

Log:

Refs #906. Fix for nVidia XvMC with traditional blended OSD or Chromakey OSD which leaked "D"isplayed frames.

The problem was that when CheckDisplayedFramesForAvailability() was called it wasn't always possible to free the frames because they were still on screen or being rendered. This was especially a problem when skipping forward several times in a row without letting the video play between skips. Each skip would leak two frames that couldn't be recovered until playback resumed, if you leaked enough frames playback couldn't be resumed at all so you would just get prebuffer pause warnings forever.

This renames CheckDisplayedFramesForAvailability() to CheckFrameStates() and makes it a public virtual method available in VideoOutput. By default it does nothing, but if you are using XvMC it rechecks all the displayed frames to see if they are available for use by the the decoder. Also whenever prebuffering is started in the NVP this is called, so that the prebuffering pause should eventually end, usually quickly enough so that the pause is not noticable.






More information about the mythtv-commits mailing list