[FFmpeg-devel] [PATCH v1] avcodec/utils: use av_rescale()

Limin Wang lance.lmwang at gmail.com
Wed Apr 22 04:12:07 EEST 2020


On Tue, Apr 21, 2020 at 11:05:59PM +0200, Michael Niedermayer wrote:
> On Mon, Apr 20, 2020 at 07:00:55PM +0800, lance.lmwang at gmail.com wrote:
> > From: Limin Wang <lance.lmwang at gmail.com>
> > 
> > Signed-off-by: Limin Wang <lance.lmwang at gmail.com>
> > ---
> >  libavcodec/utils.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/libavcodec/utils.c b/libavcodec/utils.c
> > index 26c038dfd9..005d596dfd 100644
> > --- a/libavcodec/utils.c
> > +++ b/libavcodec/utils.c
> > @@ -2229,8 +2229,8 @@ int64_t ff_guess_coded_bitrate(AVCodecContext *avctx)
> >          const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(avctx->pix_fmt);
> >          bits_per_coded_sample = av_get_bits_per_pixel(desc);
> >      }
> > -    bitrate = (int64_t)bits_per_coded_sample * avctx->width * avctx->height *
> > -              framerate.num / framerate.den;
> > +    bitrate = av_rescale(avctx->width * avctx->height,
> > +                bits_per_coded_sample * framerate.num, framerate.den);
> 
> why this change ?
I recall mp3dec.c, avidec.c etc always use av_scale to get the bitrate, so I
think it's more general to use av_rescale. If I'm misunderstanding, please 
ignore the patch.

> 
> also
> bits_per_coded_sample * framerate.num
> could possibly overflow after this i think
It seems that the int64_t is necessary still. Then I prefer to:
+    bitrate = av_rescale((int64_t)bits_per_coded_sample * avctx->width * avctx->height,
+                framerate.num, framerate.den);

> 
> thx
> 
> [...]
> -- 
> Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
> 
> Nations do behave wisely once they have exhausted all other alternatives. 
> -- Abba Eban



> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


-- 
Thanks,
Limin Wang


More information about the ffmpeg-devel mailing list