[mythtv-commits] Ticket #900: HDTV at greater than 1.0 speed stutters

MythTV mythtv at cvs.mythtv.org
Thu Feb 2 18:06:40 UTC 2006


#900: HDTV at greater than 1.0 speed stutters
------------------------------+---------------------------------------------
 Reporter:  jppoet at gmail.com  |        Owner:  danielk
     Type:  patch             |       Status:  closed 
 Priority:  minor             |    Milestone:  0.20   
Component:  mythtv            |      Version:  head   
 Severity:  medium            |   Resolution:  fixed  
------------------------------+---------------------------------------------
Changes (by danielk):

  * resolution:  => fixed
  * status:  new => closed

Comment:

 (In [8841]) Fixes #971. Fixes #900.

 In SwitchToProgram() we check if we close to the end before doing a
 switch. This was safe for low bitrate programs, but with high bitrate
 programs the RingBuffer was initialized with a larger readblocksize. Also
 the valid video frames check isn't terribly valid with nVidia XvMC, which
 uses a total of only 8 video buffers.

 This reworks this check and moves it to NVP::IsReallyNearEnd(). It uses
 information from the RingBuffer to set the thresholds so it scales with
 different bitrates. Also, the ringbuffer now takes the play_speed into
 account when using timestretch. The raw bitrate as reported by ffmpeg is
 scaled by timestretch value. Also since IsReallyNearEnd() is using the
 real readblocksize in it's calculations, I've applied John Poet's patch
 for making 1080i @ >=1.2 timestretch work by increasing the readblocksize.

 The params may need some tuning for the best performance. The values I
 used are both theoretically safe and worked for the 400 ringbuffer
 switches I threw at it. But the params are somewhat conservative. When I
 used the theoretical minimums, I did observe a lockup after about 70
 switches, so my model isn't perfect.

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


More information about the mythtv-commits mailing list