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

Andriy Gelman andriy.gelman at gmail.com
Sun Oct 4 20:14:29 EEST 2020

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");
     pos = avio_tell(pb);

More information about the ffmpeg-devel mailing list