[Mesa-dev] [PATCH] st/va: enable vbr rate control for vaapi encode

Leo Liu leo.liu at amd.com
Wed Sep 7 17:05:37 UTC 2016



On 09/07/2016 03:02 AM, Christian König wrote:
> Am 06.09.2016 um 22:39 schrieb boyuan.zhang at amd.com:
>> From: Boyuan Zhang <boyuan.zhang at amd.com>
>>
>> This patch enables variable bit-rate for vaapi encoding. According to 
>> va.h,
>> target bit-rate equals to maximum bit-rate multiplies by 
>> target_percentage.
>>
>> Signed-off-by: Boyuan Zhang <boyuan.zhang at amd.com>
>
> That was astonishing simple to fix :)
>
> Patch is Reviewed-by: Christian König <christian.koenig at amd.com>.
>
> Leo do you want to push it or should I take care of this?

I will take care of it.

Regards,
Leo

>
> Regards,
> Christian.
>
>> ---
>>   src/gallium/state_trackers/va/config.c  | 2 +-
>>   src/gallium/state_trackers/va/picture.c | 2 +-
>>   2 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/src/gallium/state_trackers/va/config.c 
>> b/src/gallium/state_trackers/va/config.c
>> index 84bf913..4052316 100644
>> --- a/src/gallium/state_trackers/va/config.c
>> +++ b/src/gallium/state_trackers/va/config.c
>> @@ -120,7 +120,7 @@ vlVaGetConfigAttributes(VADriverContextP ctx, 
>> VAProfile profile, VAEntrypoint en
>>            value = VA_RT_FORMAT_YUV420;
>>            break;
>>         case VAConfigAttribRateControl:
>> -         value = VA_RC_CQP | VA_RC_CBR;
>> +         value = VA_RC_CQP | VA_RC_CBR | VA_RC_VBR;
>>            break;
>>         default:
>>            value = VA_ATTRIB_NOT_SUPPORTED;
>> diff --git a/src/gallium/state_trackers/va/picture.c 
>> b/src/gallium/state_trackers/va/picture.c
>> index a283e83..7f3d96d 100644
>> --- a/src/gallium/state_trackers/va/picture.c
>> +++ b/src/gallium/state_trackers/va/picture.c
>> @@ -322,7 +322,7 @@ 
>> handleVAEncMiscParameterTypeRateControl(vlVaContext *context, 
>> VAEncMiscParameter
>>          PIPE_H264_ENC_RATE_CONTROL_METHOD_CONSTANT)
>>         context->desc.h264enc.rate_ctrl.target_bitrate = 
>> rc->bits_per_second;
>>      else
>> -      context->desc.h264enc.rate_ctrl.target_bitrate = 
>> rc->bits_per_second * rc->target_percentage;
>> +      context->desc.h264enc.rate_ctrl.target_bitrate = 
>> rc->bits_per_second * rc->target_percentage / 100;
>>      context->desc.h264enc.rate_ctrl.peak_bitrate = rc->bits_per_second;
>>      if (context->desc.h264enc.rate_ctrl.target_bitrate < 2000000)
>>         context->desc.h264enc.rate_ctrl.vbv_buffer_size = 
>> MIN2((context->desc.h264enc.rate_ctrl.target_bitrate * 2.75), 2000000);
>
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev



More information about the mesa-dev mailing list