[FFmpeg-devel] [PATCH] vaapi_encode_h26[45]: Reject bitrate targets higher than 2^31

Mark Thompson sw at jkqxz.net
Thu Jun 2 23:36:21 CEST 2016


On 02/06/16 22:00, Matthieu Bouron wrote:
> On Thu, Jun 02, 2016 at 07:13:39PM +0100, Mark Thompson wrote:
>> ---
>> ... something like this.
>>
>>  libavcodec/vaapi_encode_h264.c | 6 ++++++
>>  libavcodec/vaapi_encode_h265.c | 6 ++++++
>>  2 files changed, 12 insertions(+)
>>
>> diff --git a/libavcodec/vaapi_encode_h264.c b/libavcodec/vaapi_encode_h264.c
>> index 0a99bb1..019ed1f 100644
>> --- a/libavcodec/vaapi_encode_h264.c
>> +++ b/libavcodec/vaapi_encode_h264.c
>> @@ -731,6 +731,12 @@ static av_cold int vaapi_encode_h264_init_constant_bitrate(AVCodecContext *avctx
>>      int hrd_buffer_size;
>>      int hrd_initial_buffer_fullness;
>>
>> +    if (avctx->bit_rate >= 1u << 31) {
> 
> Wouldn't INT32_MAX be more aproriate ?

Hmm.  No preference - I went for 1u << 31 to match the 2^31 in the error message, but maybe INT32_MAX makes the code constraint slightly clearer.

>> +        av_log(avctx, AV_LOG_ERROR, "Target bitrate of 2^31 bps or "
>> +               "higher is not supported.\n");
>> +        return AVERROR(EINVAL);
>> +    }
>> +
>>      if (avctx->rc_buffer_size)
>>          hrd_buffer_size = avctx->rc_buffer_size;
>>      else
>> diff --git a/libavcodec/vaapi_encode_h265.c b/libavcodec/vaapi_encode_h265.c
>> index 05d3aa4..060c7b7 100644
>> --- a/libavcodec/vaapi_encode_h265.c
>> +++ b/libavcodec/vaapi_encode_h265.c
>> @@ -1158,6 +1158,12 @@ static av_cold int vaapi_encode_h265_init_constant_bitrate(AVCodecContext *avctx
>>      int hrd_buffer_size;
>>      int hrd_initial_buffer_fullness;
>>
>> +    if (avctx->bit_rate >= 1u << 31) {a
> 
> Same comment as above.

Whichever answer you prefer, they should be the same.

>> +        av_log(avctx, AV_LOG_ERROR, "Target bitrate of 2^31 bps or "
>> +               "higher is not supported.\n");
>> +        return AVERROR(EINVAL);
>> +    }
>> +
>>      if (avctx->rc_buffer_size)
>>          hrd_buffer_size = avctx->rc_buffer_size;
>>      else
>> -- 
>> 2.8.1
>>



More information about the ffmpeg-devel mailing list