diff options
author | Anton Khirnov <anton@khirnov.net> | 2021-12-16 11:16:11 +0100 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2022-05-24 13:46:57 +0200 |
commit | 9acce2afcfb6b52f2c2a1d5e42949bfd591f6d3a (patch) | |
tree | 73455aa8748abcb0be932bdbefbf12ede6977520 /fftools/ffmpeg.c | |
parent | 3d4d3553752b34ff97ccc6e16e74b82524b0f404 (diff) |
fftools/ffmpeg: stop using av_stream_get_end_pts() in do_video_stats()
It retrieves libavformat's internal dts value (contrary to the
function's name), which is not only incorrect in general, but also
unnecessary because we can access the packet directly.
Diffstat (limited to 'fftools/ffmpeg.c')
-rw-r--r-- | fftools/ffmpeg.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index f58258d45f..615abc6b5e 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -835,7 +835,7 @@ static double psnr(double d) return -10.0 * log10(d); } -static void do_video_stats(OutputStream *ost, int frame_size) +static void do_video_stats(OutputStream *ost, const AVPacket *pkt) { AVCodecContext *enc; int frame_number; @@ -863,13 +863,13 @@ static void do_video_stats(OutputStream *ost, int frame_size) 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); + fprintf(vstats_file,"f_size= %6d ", pkt->size); /* compute pts value */ - ti1 = av_stream_get_end_pts(ost->st) * av_q2d(ost->st->time_base); + ti1 = pkt->dts * av_q2d(ost->mux_timebase); if (ti1 < 0.01) ti1 = 0.01; - bitrate = (frame_size * 8) / av_q2d(enc->time_base) / 1000.0; + bitrate = (pkt->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); @@ -948,7 +948,7 @@ static int encode_frame(OutputFile *of, OutputStream *ost, AVFrame *frame) } if (enc->codec_type == AVMEDIA_TYPE_VIDEO && vstats_filename) - do_video_stats(ost, pkt->size); + do_video_stats(ost, pkt); ost->packets_encoded++; |