[FFmpeg-devel] [PATCH v6] avformat/demux: Add duration_probesize AVOption

Stefano Sabatini stefasab at gmail.com
Tue Apr 2 20:54:21 EEST 2024


On date Friday 2024-03-29 11:00:28 +0100, Stefano Sabatini wrote:
> On date Friday 2024-03-29 10:26:19 +0100, Nicolas Gaullier wrote:
> > Yet another probesize used to get the durations when
> > estimate_timings_from_pts is required. It is aimed at users interested
> > in better durations probing for itself, or because using
> > avformat_find_stream_info indirectly and requiring exact values: for
> > concatdec for example, especially if streamcopying above it.
> > The current code is a performance trade-off that can fail to get video
> > stream durations in a scenario with high bitrates and buffering for
> > files ending cleanly (as opposed to live captures): the physical gap
> > between the last video packet and the last audio packet is very high in
> > such a case.
> > 
> > Default behaviour is unchanged: 250k up to 250k << 6 (step by step).
> > Setting this new option has two effects:
> > - override the maximum probesize (currently 250k << 6)
> > - reduce the number of steps to 1 instead of 6, this is to avoid
> > detecting the audio "too early" and failing to reach a video packet.
> > Even if a single audio stream duration is found but not the other
> > audio/video stream durations, there will be a retry, so at the end the
> > full user-overriden probesize will be used as expected by the user.
> > 
> > Signed-off-by: Nicolas Gaullier <nicolas.gaullier at cji.paris>
> > ---
> >  doc/APIchanges              |  3 +++
> >  doc/formats.texi            | 19 ++++++++++++++++++-
> >  libavformat/avformat.h      | 16 ++++++++++++++--
> >  libavformat/demux.c         | 13 ++++++++-----
> >  libavformat/options_table.h |  1 +
> >  libavformat/version.h       |  2 +-
> >  6 files changed, 45 insertions(+), 9 deletions(-)
> 
> Looks good to me, will apply in a few days if there are no further
> comments.

Will apply soon, thanks.


More information about the ffmpeg-devel mailing list