[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