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

Andriy Gelman andriy.gelman at gmail.com
Tue Oct 6 19:05:09 EEST 2020


On Mon, 05. Oct 10:31, Marton Balint wrote:
> 
> 
> 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/

Thanks, I missed in your patch in the set.

--
Andriy


More information about the ffmpeg-devel mailing list