[mythtv] [mythtv-commits] Ticket #3690: Prebuffering pauses with ivtv sinceffmpeg resync

Anduin Withers awithers at anduin.com
Tue Aug 7 00:25:28 UTC 2007

>  Since the ffmpeg resync - [13655] - one of my frontends has had issues
>  playing back recordings from the PVR150 in the backend. If I roll back to
>  13654 playback is smooth but on 13655 it's unwatchable (prebuffering
>  pauses every 2 seconds or so). This only occurs with recordings from the
>  PVR150, playing from the DVB cards is fine.
> Ticket URL: <http://svn.mythtv.org/trac/ticket/3690>

I had one frontend that was hitting this bug and so spent a good chunk of
yesterday looking in to 3690.

It looks like libavformat/mpeg.c mpegps_read_pes_header line 1446:

url_fseek(&s->pb, last_sync, SEEK_SET);

This will result in calls to RingBuffer::Seek() with seeks to where we are,
not too bad except for unnecessary things like a potential network call and
worse, a ResetReadAhead call.

For me the difference between unwatchable even at 1x and, as it was back at
13654, is a check early in RingBuffer::Seek(). My change is to do nothing
(not literally nothing, return the right values) when SEEK_SET(where we are)
and SEEK_CUR(0).

Does anyone object to this change? (I'll attach the patch to the ticket
later tonight)

Anduin Withers

More information about the mythtv-dev mailing list