[FFmpeg-devel] [PATCH v2] avformat/ivfenc: Set the "number of frames" in IVF header

Anton Khirnov anton at khirnov.net
Thu Jun 29 12:44:29 EEST 2023


Quoting Dai, Jianhui J (2023-06-29 08:03:18)
> 
> 
> > -----Original Message-----
> > From: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> On Behalf Of
> > Anton Khirnov
> > Sent: Wednesday, June 28, 2023 11:25 PM
> > To: ffmpeg-devel at ffmpeg.org
> > Subject: Re: [FFmpeg-devel] [PATCH v2] avformat/ivfenc: Set the "number of
> > frames" in IVF header
> > 
> > Quoting Dai, Jianhui J (2023-06-05 02:53:35)
> > > diff --git a/libavformat/ivfdec.c b/libavformat/ivfdec.c index
> > > 511f2387ed..01012db948 100644
> > > --- a/libavformat/ivfdec.c
> > > +++ b/libavformat/ivfdec.c
> > > @@ -53,6 +53,7 @@ static int read_header(AVFormatContext *s)
> > >      st->codecpar->height     = avio_rl16(s->pb);
> > >      time_base.den         = avio_rl32(s->pb);
> > >      time_base.num         = avio_rl32(s->pb);
> > > +    // Infer duration from "number of frames".
> > >      st->duration          = avio_rl32(s->pb);
> > 
> > This should be setting st->nb_frames then rather than duration.
> > And the muxer should be using that field as well instead of its custom version.
> 
> ACK. 
> Do you suggest letting `duration` unset?
> It is interesting that the 'duration' is often right in this way, if
> the time_base.den/time_base.num == fps which is the popular
> configuration.

Yes, but AFAIU there is no way to tell whether the file is CFR, so then
the value would be unreliable. So I'd prefer to leave it unset.

-- 
Anton Khirnov


More information about the ffmpeg-devel mailing list