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 | |
parent | 3d4d3553752b34ff97ccc6e16e74b82524b0f404 (diff) | |
download | ffmpeg-9acce2afcfb6b52f2c2a1d5e42949bfd591f6d3a.tar.gz |
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.
-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++; |