[mythtv-commits] Re: Ticket #868: [8350] breaks mpeg2 decoding during frame advance

MythTV mythtv at cvs.mythtv.org
Sat Dec 31 15:26:13 EST 2005


#868: [8350] breaks mpeg2 decoding during frame advance
--------------------------------+-------------------------------------------
 Reporter:  bjm <bjm at lvcm.com>  |        Owner:  danielk 
     Type:  defect              |       Status:  assigned
 Priority:  major               |    Milestone:  0.19    
Component:  mythtv              |      Version:  head    
 Severity:  medium              |   Resolution:          
--------------------------------+-------------------------------------------
Comment (by danielk):

 (In [8448]) References #868. Makes most DiscardFrames() calls safe.

 The old VideoBuffers::DiscardFrames() could only be called safely if the
 next frame decoded was a keyframe. This adds a parameter to the function
 'next_frame_keyframe' if this is false only frames not in limbo are
 discarded and the list of frames in use by the decoder is not cleared. If
 'next_frame_keyframe' is true the old DiscardFrames() is used.

 There are only three remaining places where DiscardFrames() is called
 unsafely, one is when the prebuffer wait has timed out 100 times, and the
 other is when GetNextFreeFrame() is called with 'allow_unsafe' set to true
 and there are no frames available for decoding onto. Both of these are
 designed to prevent deadlock in some pretty dreadful error states so I
 think it is best to leave these as is. The final case is with XvMC, this
 is needed just because there are not enough frames available in the nVidia
 XvMC implementation to handle all seek in all cases. I would recomend not
 attempting to edit recordings with XvMC enabled anyway.

 What this commit means in practice is fewer 'timed out' messages and fewer
 'GetNextFreeFrames() returned busy frame, discarding' messages. Which
 means some seeks will be a little faster, and those bits of code where
 DiscardFrames() needs to be called unsafely is reduced. This in turn means
 you'll be less likely to see distorted frames after a seek.

-- 
Ticket URL: <http://cvs.mythtv.org/trac/ticket/868>
MythTV <http://www.mythtv.org/>
MythTV


More information about the mythtv-commits mailing list