[FFmpeg-devel] [PATCH] Fix MPEG-TS seek and frame positions in general

Baptiste Coudurier baptiste.coudurier
Tue Feb 17 03:14:01 CET 2009


Ivan Schreter wrote:
> Ivan Schreter wrote:
>> Ivan Schreter wrote:
>>> Ivan Schreter wrote:
>>>> [...]
>>>> Patch #5: mpegts seek only searches for a PES packet with correct pid 
>>>> and existing DTS and relies on this being a key frame. This is not 
>>>> even the case in the test file. Read frames via av_read_frame until a 
>>>> key frame is found and return position/timestamp of this frame. This 
>>>> needs #1 to reset the packet reader after reading the frames, so 
>>>> further reads work correctly, #2 to have correct positions from mpegts 
>>>> and #4 to have exact position of the packet for later file seek.

If I understand correctly, this seems to be a general issue with
read_timestamp which does not honor the key frame request.

I'm not sure if this code belongs in mpegts demuxer since mpegps also
suffer from the same problem, using read_timestamps.

I think this could be handled in a generic way in av_seek_frame_binary.
Maybe mpegts and mpegps demuxer could use AVFMT_GENERIC_INDEX to
populate index entries with key flag set which will be set by parser, it
seems current mpegps demuxer use index but consider all frames as key

Baptiste COUDURIER                              GnuPG Key Id: 0x5C1ABAAA
Key fingerprint                 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA
checking for life_signs in -lkenny... no
FFmpeg maintainer                                  http://www.ffmpeg.org

More information about the ffmpeg-devel mailing list