[FFmpeg-devel] [PATCH] fftools/ffmpeg: show video stats in progress output without filters

Anton Khirnov anton at khirnov.net
Thu Aug 1 10:41:16 EEST 2024


Quoting Jan Garcia via ffmpeg-devel (2024-07-30 20:03:33)
> Since ffmpeg 6.1 video stats are accidentally hidden from progress output
> if no filters are used.

IIUC this applies only to streamcopy, not transcoding with no
user-specified filters.

> This patch re-enables video stats (like frames=) in the progress output.
> ---
>  Changelog        | 1 +
>  fftools/ffmpeg.c | 8 +++++---
>  2 files changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/Changelog b/Changelog
> index 571b27ad98..2c2cbf9179 100644
> --- a/Changelog
> +++ b/Changelog
> @@ -5,6 +5,7 @@ version <next>:
>  - Raw Captions with Time (RCWT) closed caption demuxer
>  - LC3/LC3plus decoding/encoding using external library liblc3
>  - ffmpeg CLI filtergraph chaining
> +- ffmpeg CLI again shows video stats in progress output

We generally do not mention bugfixes in the changelog, otherwise it'd be
too long and unreadable.

>  - LC3/LC3plus demuxer and muxer
>  - pad_vaapi, drawbox_vaapi filters
>  - vf_scale supports secondary ref input and framesync options
> diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
> index 3aa2e12780..420ba3c6e4 100644
> --- a/fftools/ffmpeg.c
> +++ b/fftools/ffmpeg.c
> @@ -587,7 +587,7 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti
>              av_bprintf(&buf_script, "stream_%d_%d_q=%.1f\n",
>                         ost->file->index, ost->index, q);
>          }
> -        if (!vid && ost->type == AVMEDIA_TYPE_VIDEO && ost->filter) {
> +        if (!vid && ost->type == AVMEDIA_TYPE_VIDEO) {
>              float fps;
>              uint64_t frame_number = atomic_load(&ost->packets_written);
>  
> @@ -601,8 +601,10 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti
>              if (is_last_report)
>                  av_bprintf(&buf, "L");
>  
> -            nb_frames_dup  = atomic_load(&ost->filter->nb_frames_dup);
> -            nb_frames_drop = atomic_load(&ost->filter->nb_frames_drop);
> +            if (ost->filter) {
> +                nb_frames_dup  = atomic_load(&ost->filter->nb_frames_dup);
> +                nb_frames_drop = atomic_load(&ost->filter->nb_frames_drop);
> +            }

Change itself looks ok.

-- 
Anton Khirnov


More information about the ffmpeg-devel mailing list