[mythtv-commits] Ticket #9815: Pauses in playback

MythTV noreply at mythtv.org
Tue May 31 21:38:40 UTC 2011


#9815: Pauses in playback
-----------------------------------------+------------------------
     Reporter:  krose@…                  |      Owner:  janne
         Type:  Bug Report - General     |     Status:  new
     Priority:  minor                    |  Milestone:  unknown
    Component:  MythTV - Video Playback  |    Version:  Trunk Head
     Severity:  medium                   |   Keywords:
Ticket locked:  0                        |
-----------------------------------------+------------------------
 From my post to the mythtv-dev mailing list, edited:

 For reference, my main front end and back end are running on the
 same machine, a Zotac barebones with an Atom processor with
 NVidia ION video.

 I have spent the last 3 days trying to slay some short pauses in
 MythVideo playback that I assume are similar to what was
 described here:

 http://www.mythtv.org/pipermail/mythtv-users/2011-May/314816.html

 I tried the following:

 (1) Turn off hyperthreading. My first theory was that CPU
 contention from the HT cores was keeping some important thread
 from making progress, especially since I saw kworker processes
 using 100% of the CPU for a second at a time several times a
 minute (as it turns out, decrypting a krb5p payload). This change
 did nothing.

 (2) Tweak NFS. I futzed with the rsize/wsize and actimeo
 settings, and switched from krb5p to krb5i. Again, no change.

 (3) Force the NIC to 100Mb/s mode, under the theory that
 readahead requests at 1Gb/s were saturating the bus in this poor
 machine. Again: nothing.

 (4) Move the file to the local machine, which is running on an
 Intel SSD, in order to eliminate all off-machine variables. Alas,
 no change.

 At this point, I was forced to the conclusion that the problem
 was data exhaustion in the front end rather than a hardware
 constraint. I tried forcing backend streaming as a hack, in hopes
 that this would force the combination of front end/back end to
 cache more of the file.  This did not solve the problem either. I
 tried upgrading to trunk, which also had no effect.

 The only change that worked was to increase the read-ahead of the
 ring buffer. Specifically, I upped the size of the ring buffer to
 32MiB and then increased the fill threshold to half of that (/2
 instead of /4).  Those settings might be overkill, but for the
 first time the file streamed smoothly from start to finish.

 The problematic file in question is an encoding of BSG
 S03E10 "The Passage", which is the highest variable bitrate
 encoding I have in my library. The reason why this file in
 particular causes the default settings to fail is that the
 intelligence in ringbuffer.cpp to decide how much data to cache
 does not correctly predict the future based on the past: the
 pauses always occur when there is a change in the on-screen image
 from one of low motion and low noise to one of high motion and
 high noise. (For those familiar with this episode, it's when the
 scene changes from one depicting people aboard Galactica talking
 to one in the star cluster: there is nearly always a stutter at
 this transition with the default player settings.)

 A 750 MB prefix of this episode is here, for a few more days:

 http://freesrv2.largefilesasap.com/download.php?file=YzRiNDJmOTEzNjk4ODJhMjcyODQxNmEzYjVhMmIxNmQvMjAxMTA1MzAyMDEyNDI1MDMzNjA4NDc5NDIubWt2X19TRVBfXzE5NzIwNw==

-- 
Ticket URL: <http://code.mythtv.org/trac/ticket/9815>
MythTV <http://code.mythtv.org/trac>
MythTV Media Center


More information about the mythtv-commits mailing list