lance.lmw...@gmail.com:
> On Mon, Apr 20, 2020 at 07:00:55PM +0800, lance.lmw...@gmail.com wrote:
>> From: Limin Wang <lance.lmw...@gmail.com>
>>
>> Signed-off-by: Limin Wang <lance.lmw...@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);

Is this supposed to be a cosmetic patch or do you have a testcase where
it leads to better results? Anyway, bits_per_coded_sample *
framerate.num might overflow (the function parameter is 64bit, but the
calculation will nevertheless be performed as int * int).
(I am not saying that the overflow checks for the code as-is are
perfect, as I don't know what checks have already been performed to make
sure that the calculation doesn't overflow an int64_t; but you would add
a new possibility for overflow.)

And your indentation is off: the second line (i.e.
bits_per_coded_sample) should be aligned with the first function
parameter in the first line (i.e. avctx->width).

- Andreas
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to