[mythtv-commits] Ticket #9854: ISO playback problems
MythTV
noreply at mythtv.org
Mon Jun 27 17:56:26 UTC 2011
#9854: ISO playback problems
------------------------------------------------+--------------------------
Reporter: Jim Stichnoth <stichnot@…> | Owner: markk
Type: Bug Report - General | Status: accepted
Priority: minor | Milestone: 0.25
Component: MythTV - Video Playback | Version: Trunk
Severity: medium | Head
Keywords: | Resolution:
| Ticket locked: 0
------------------------------------------------+--------------------------
Comment (by Jim Stichnoth <stichnot@…>):
Replying to [comment:5 markk]:
> Replying to [ticket:9854 Jim Stichnoth <stichnot@…>]:
>
> > 2. ISOs with several titles take a long time to start up, and also to
jump to the main menu. See attached mythfrontend2.log output, where the
time between 06:55:32 and 06:56:08 (36 seconds) is spent on the "Please
Wait...." screen.
>
> This is a known issue that I've spent far too long trying to resolve.
When playing back over a storage group, the libmythdvdnav object gets a
RemoteFile object from mythtv to load the iso over the network. This uses
a readahead thread to buffer playback but it is painfully inefficient at
dealing with the various seeks and file checks that libmythdvdnav needs to
do when examining the file structure etc. Blu-ray playback has a similar
problem.
>
> The quick and dirty fix is to not use the readahead thread. This will
generally reduce startup times to less than a second but you will almost
certainly get playback issues due to the lack of buffering - especially at
cell boundaries.
>
> If anyone has any other suggestions, I'm all ears.
Mark,
Please have a look at the mythfrontend log attached to #9864,
http://code.mythtv.org/trac/raw-attachment/ticket/9864/mythfrontend.log.gz
. Besides the problem addressed in that ticket, there is evidence of
another performance problem. There are many bursts of successive
mythfile_seek calls seeking to the same location. Usually the "OPT1" case
in FileRingBuffer::Seek() is triggered, but as soon as the readahead
thread fills up the buffer, this optimization fails and ResetReadAhead()
is called, and the pattern starts all over again. I believe that if we
could avoid resetting the readahead thread, the startup time for this ISO
would drop from ~15 seconds down to 1-2 seconds.
--
Ticket URL: <http://code.mythtv.org/trac/ticket/9854#comment:9>
MythTV <http://code.mythtv.org/trac>
MythTV Media Center
More information about the mythtv-commits
mailing list