[FFmpeg-devel] [PATCH 24/28] ffmpeg_mux: drop a useless check and reduce indentation

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Tue Jan 18 12:35:13 EET 2022


Anton Khirnov:
> Quoting Andreas Rheinhardt (2022-01-18 11:18:24)
>> Anton Khirnov:
>>> Quoting Andreas Rheinhardt (2022-01-13 11:54:59)
>>>> Anton Khirnov:
>>>>> do_video_stats() is only ever called for video.
>>>>> ---
>>>>>  fftools/ffmpeg_mux.c | 42 ++++++++++++++++++++----------------------
>>>>>  1 file changed, 20 insertions(+), 22 deletions(-)
>>>>>
>>>>> diff --git a/fftools/ffmpeg_mux.c b/fftools/ffmpeg_mux.c
>>>>> index 76d9d4b9c4..8a64661c9c 100644
>>>>> --- a/fftools/ffmpeg_mux.c
>>>>> +++ b/fftools/ffmpeg_mux.c
>>>>> @@ -72,31 +72,29 @@ static void do_video_stats(OutputStream *ost, int frame_size)
>>>>>      }
>>>>>  
>>>>>      enc = ost->enc_ctx;
>>>>> -    if (enc->codec_type == AVMEDIA_TYPE_VIDEO) {
>>>>> -        frame_number = ost->st->nb_frames;
>>>>> -        if (vstats_version <= 1) {
>>>>> -            fprintf(vstats_file, "frame= %5d q= %2.1f ", frame_number,
>>>>> -                    ost->quality / (float)FF_QP2LAMBDA);
>>>>> -        } else  {
>>>>> -            fprintf(vstats_file, "out= %2d st= %2d frame= %5d q= %2.1f ", ost->file_index, ost->index, frame_number,
>>>>> -                    ost->quality / (float)FF_QP2LAMBDA);
>>>>> -        }
>>>>> +    frame_number = ost->st->nb_frames;
>>>>> +    if (vstats_version <= 1) {
>>>>> +        fprintf(vstats_file, "frame= %5d q= %2.1f ", frame_number,
>>>>> +                ost->quality / (float)FF_QP2LAMBDA);
>>>>> +    } else  {
>>>>> +        fprintf(vstats_file, "out= %2d st= %2d frame= %5d q= %2.1f ", ost->file_index, ost->index, frame_number,
>>>>> +                ost->quality / (float)FF_QP2LAMBDA);
>>>>> +    }
>>>>>  
>>>>> -        if (ost->error[0]>=0 && (enc->flags & AV_CODEC_FLAG_PSNR))
>>>>> -            fprintf(vstats_file, "PSNR= %6.2f ", psnr(ost->error[0] / (enc->width * enc->height * 255.0 * 255.0)));
>>>>> +    if (ost->error[0]>=0 && (enc->flags & AV_CODEC_FLAG_PSNR))
>>>>> +        fprintf(vstats_file, "PSNR= %6.2f ", psnr(ost->error[0] / (enc->width * enc->height * 255.0 * 255.0)));
>>>>>  
>>>>> -        fprintf(vstats_file,"f_size= %6d ", frame_size);
>>>>> -        /* compute pts value */
>>>>> -        ti1 = av_stream_get_end_pts(ost->st) * av_q2d(ost->st->time_base);
>>>>> -        if (ti1 < 0.01)
>>>>> -            ti1 = 0.01;
>>>>> +    fprintf(vstats_file,"f_size= %6d ", frame_size);
>>>>> +    /* compute pts value */
>>>>> +    ti1 = av_stream_get_end_pts(ost->st) * av_q2d(ost->st->time_base);
>>>>> +    if (ti1 < 0.01)
>>>>> +        ti1 = 0.01;
>>>>>  
>>>>> -        bitrate     = (frame_size * 8) / av_q2d(enc->time_base) / 1000.0;
>>>>> -        avg_bitrate = (double)(ost->data_size * 8) / ti1 / 1000.0;
>>>>> -        fprintf(vstats_file, "s_size= %8.0fkB time= %0.3f br= %7.1fkbits/s avg_br= %7.1fkbits/s ",
>>>>> -               (double)ost->data_size / 1024, ti1, bitrate, avg_bitrate);
>>>>> -        fprintf(vstats_file, "type= %c\n", av_get_picture_type_char(ost->pict_type));
>>>>> -    }
>>>>> +    bitrate     = (frame_size * 8) / av_q2d(enc->time_base) / 1000.0;
>>>>> +    avg_bitrate = (double)(ost->data_size * 8) / ti1 / 1000.0;
>>>>> +    fprintf(vstats_file, "s_size= %8.0fkB time= %0.3f br= %7.1fkbits/s avg_br= %7.1fkbits/s ",
>>>>> +           (double)ost->data_size / 1024, ti1, bitrate, avg_bitrate);
>>>>> +    fprintf(vstats_file, "type= %c\n", av_get_picture_type_char(ost->pict_type));
>>>>>  }
>>>>>  
>>>>>  static void close_all_output_streams(OutputStream *ost, OSTFinished this_stream, OSTFinished others)
>>>>>
>>>>
>>>> LGTM to removing the check, but it would be better if you removed the
>>>> check before moving the code to ffmpeg_mux.c and then fixed the
>>>> indentation while moving the code to ffmpeg_mux.c.
>>>
>>> Better why? What's the point of essentially re-doing these commits and
>>> dealing with rebase conflicts, just to get the same result in the end?
>>>
>>
>> A smaller diff.
> 
> Doesn't seem worth the trouble. git show -w is already just two lines.
> 

And if you swapped the patches it would be only two lines for an
ordinary git show; not because of git show functionality, but because
the patch only touches two lines.

- Andreas


More information about the ffmpeg-devel mailing list