[FFmpeg-devel] [RFC PATCH] avformat/utils: always seek back after avformat_find_stream_info()

Hendrik Leppkes h.leppkes at gmail.com
Wed Apr 10 07:40:54 EEST 2019

On Wed, Apr 10, 2019 at 2:21 AM Aman Gupta <ffmpeg at tmm1.net> wrote:
> From: Aman Gupta <aman at tmm1.net>
> Previously, the initial seek position was recorded into
> old_offset at the beginning of avformat_find_stream_info(),
> and passed into estimate_timings(). In the case of mpegts
> with a known filesize, it was further passed into
> estimate_timings_from_pts() which called avio_seek(SEEK_SET)
> after doing its timing related seeks. (Interestingly, this
> seeked all the way back to the initial position before
> the probe, rather than only back before the timing
> related seeks to the end of the file).
> With this commit, we pull the avio_seek() out of the mpegts
> specific code-path and unconditionally seek all streams back
> to their original position after probing is complete.
> This effectively prevents data that is consumed during
> avformat_find_stream_info() from being discarded, so packets
> contained at the beginning of a file are still passed back
> to the user for playback.

I don't think I ever had a case where data was apparently lost from
the beginning of the stream. Can you give examples of what this fixes?

- Hendrik

More information about the ffmpeg-devel mailing list