[FFmpeg-devel] [PATCH] lavc/qsvenc: set BRCParamMultiplier to aviod BRC overflow

Carl Eugen Hoyos ceffmpeg at gmail.com
Fri Jan 11 15:45:24 EET 2019


2019-01-11 14:25 GMT+01:00, Hendrik Leppkes <h.leppkes at gmail.com>:
> On Fri, Jan 11, 2019 at 1:18 PM Carl Eugen Hoyos <ceffmpeg at gmail.com> wrote:
>>
>> 2019-01-11 13:09 GMT+01:00, Zhong Li <zhong.li at intel.com>:
>> > +    //libmfx BRC parameters are 16 bits thus maybe overflow, then
>> > BRCParamMultiplier is needed
>> > +    target_bitrate_kbps = avctx->bit_rate / 1000;
>> > +    max_bitrate_kbps = avctx->rc_max_rate / 1000;
>> > +    brc_param_multiplier = (FFMAX(target_bitrate_kbps,
>> > max_bitrate_kbps) + 0x10000) / 0x10000;
>>
>> How will this behave if the user sets 100MBit?
>
> Its really quite simple math. It'll cause the multipler to become 2,
> effectively dividing all numbers by two, so instead of trying to pass
> 102400 kbps bitrate, it'll pass 51200 * 2 kbps bitrate, which fits
> into the 16-bit value.

Seems like a useful solution.

Is there no possibility that BufferSizeInKB or InitialDelayInKB overflow?

Carl Eugen


More information about the ffmpeg-devel mailing list