[FFmpeg-devel] [PATCH] avformat/mpegts: ensure seekback for small probesize

Marton Balint cus at passwd.hu
Mon Oct 5 11:31:44 EEST 2020



On Sun, 4 Oct 2020, Andriy Gelman wrote:

> From: Andriy Gelman <andriy.gelman at gmail.com>
>
> get_packet_size() may read upto PROBE_PACKET_MAX_BUF bytes, which may be
> larger than probesize.
>
> Signed-off-by: Andriy Gelman <andriy.gelman at gmail.com>
> ---
>
> An alternative could be to make sure we don't read more than s->probesize bytes
> in get_packet_size(), but because this function is also called during resync
> (midstream) limiting the read bytes may not be the best option.
>
> libavformat/mpegts.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
> index 50d4d5e9bc..019b627d51 100644
> --- a/libavformat/mpegts.c
> +++ b/libavformat/mpegts.c
> @@ -3054,7 +3054,7 @@ static int mpegts_read_header(AVFormatContext *s)
>
>     s->internal->prefer_codec_framerate = 1;
> 
> -    if (ffio_ensure_seekback(pb, probesize) < 0)
> +    if (ffio_ensure_seekback(pb, FFMAX(probesize, PROBE_PACKET_MAX_BUF)) < 0)
>         av_log(s, AV_LOG_WARNING, "Failed to allocate buffers for seekback\n");

I posted a similar patch not long ago which is I think better because it 
also takes into account ts->resync_size.

https://patchwork.ffmpeg.org/project/ffmpeg/patch/20200929211021.25030-4-cus@passwd.hu/

Regards,
Marton


More information about the ffmpeg-devel mailing list