#include "vp9_probs.h"
#include "gen9_vp9_const_def.h"
+#define MAX_VP9_ENCODER_FRAMERATE 60
#define MAX_VP9_ENCODER_SURFACES 64
#define MAX_URB_SIZE 4096 /* In register */
* the expected, it is unnecessary to allocate it again
*/
if (vp9_surface->dys_frame_width == surface_param->frame_width &&
- vp9_surface->dys_frame_width == surface_param->frame_width)
+ vp9_surface->dys_frame_height == surface_param->frame_height)
return VA_STATUS_SUCCESS;
if (vp9_surface->dys_4x_surface_obj) {
cmd->dw13.init_frame_width = pic_param->frame_width_src;
cmd->dw13.init_frame_height = pic_param->frame_height_src;
- cmd->dw15.min_qp = 0;
+ cmd->dw15.min_qp = 1;
cmd->dw15.max_qp = 255;
cmd->dw16.cq_level = 30;
break;
}
case VP9_MEDIA_STATE_BRC_UPDATE: {
- cmd->dw15.min_qp = 0;
+ cmd->dw15.min_qp = 1;
cmd->dw15.max_qp = 255;
cmd->dw25.frame_number = param->frame_number;
{
struct gen9_encoder_context_vp9 *vme_context = encoder_context->vme_context;
- gen9_add_buffer_gpe_surface(ctx,
+ i965_add_buffer_gpe_surface(ctx,
gpe_context,
&vme_context->res_brc_history_buffer,
0,
0,
VP9_BTI_BRC_HISTORY_G9);
- gen9_add_buffer_2d_gpe_surface(ctx,
+ i965_add_buffer_2d_gpe_surface(ctx,
gpe_context,
&vme_context->s4x_memv_distortion_buffer,
1,
vp9_priv_surface = (struct gen9_surface_vp9 *)(obj_surface->private_data);
obj_surface = vp9_priv_surface->scaled_4x_surface_obj;
- gen9_add_2d_gpe_surface(ctx, gpe_context,
+ i965_add_2d_gpe_surface(ctx, gpe_context,
obj_surface,
0, 1,
I965_SURFACEFORMAT_R8_UNORM,
VP9_BTI_BRC_SRCY4X_G9
);
- gen9_add_adv_gpe_surface(ctx, gpe_context,
+ i965_add_adv_gpe_surface(ctx, gpe_context,
obj_surface,
VP9_BTI_BRC_VME_COARSE_INTRA_G9);
- gen9_add_buffer_2d_gpe_surface(ctx,
+ i965_add_buffer_2d_gpe_surface(ctx,
gpe_context,
&vme_context->s4x_memv_distortion_buffer,
1,
struct gen9_encoder_context_vp9 *vme_context = encoder_context->vme_context;
/* 0. BRC history buffer */
- gen9_add_buffer_gpe_surface(ctx,
+ i965_add_buffer_gpe_surface(ctx,
brc_gpe_context,
&vme_context->res_brc_history_buffer,
0,
VP9_BTI_BRC_HISTORY_G9);
/* 1. Constant data buffer */
- gen9_add_buffer_gpe_surface(ctx,
+ i965_add_buffer_gpe_surface(ctx,
brc_gpe_context,
&vme_context->res_brc_const_data_buffer,
0,
VP9_BTI_BRC_CONSTANT_DATA_G9);
/* 2. Distortion 2D surface buffer */
- gen9_add_buffer_2d_gpe_surface(ctx,
+ i965_add_buffer_2d_gpe_surface(ctx,
brc_gpe_context,
&vme_context->s4x_memv_distortion_buffer,
1,
VP9_BTI_BRC_DISTORTION_G9);
/* 3. pak buffer */
- gen9_add_buffer_gpe_surface(ctx,
+ i965_add_buffer_gpe_surface(ctx,
brc_gpe_context,
&vme_context->res_brc_mmdk_pak_buffer,
0,
VP9_BTI_BRC_MBENC_CURBE_OUTPUT_G9);
/* 6. BRC_PIC_STATE read buffer */
- gen9_add_buffer_gpe_surface(ctx, brc_gpe_context,
+ i965_add_buffer_gpe_surface(ctx, brc_gpe_context,
&vme_context->res_pic_state_brc_read_buffer,
0,
vme_context->res_pic_state_brc_read_buffer.size,
VP9_BTI_BRC_PIC_STATE_INPUT_G9);
/* 7. BRC_PIC_STATE write buffer */
- gen9_add_buffer_gpe_surface(ctx, brc_gpe_context,
+ i965_add_buffer_gpe_surface(ctx, brc_gpe_context,
&vme_context->res_pic_state_brc_write_hfw_read_buffer,
0,
vme_context->res_pic_state_brc_write_hfw_read_buffer.size,
VP9_BTI_BRC_PIC_STATE_OUTPUT_G9);
/* 8. SEGMENT_STATE read buffer */
- gen9_add_buffer_gpe_surface(ctx, brc_gpe_context,
+ i965_add_buffer_gpe_surface(ctx, brc_gpe_context,
&vme_context->res_seg_state_brc_read_buffer,
0,
vme_context->res_seg_state_brc_read_buffer.size,
VP9_BTI_BRC_SEGMENT_STATE_INPUT_G9);
/* 9. SEGMENT_STATE write buffer */
- gen9_add_buffer_gpe_surface(ctx, brc_gpe_context,
+ i965_add_buffer_gpe_surface(ctx, brc_gpe_context,
&vme_context->res_seg_state_brc_write_buffer,
0,
vme_context->res_seg_state_brc_write_buffer.size,
VP9_BTI_BRC_SEGMENT_STATE_OUTPUT_G9);
/* 10. Bitstream size buffer */
- gen9_add_buffer_gpe_surface(ctx, brc_gpe_context,
+ i965_add_buffer_gpe_surface(ctx, brc_gpe_context,
&vme_context->res_brc_bitstream_size_buffer,
0,
vme_context->res_brc_bitstream_size_buffer.size,
0,
VP9_BTI_BRC_BITSTREAM_SIZE_G9);
- gen9_add_buffer_gpe_surface(ctx, brc_gpe_context,
+ i965_add_buffer_gpe_surface(ctx, brc_gpe_context,
&vme_context->res_brc_hfw_data_buffer,
0,
vme_context->res_brc_hfw_data_buffer.size,
gpe_resource = param->pres_4x_memv_data_buffer;
}
- gen9_add_buffer_2d_gpe_surface(ctx, gpe_context,
+ i965_add_buffer_2d_gpe_surface(ctx, gpe_context,
gpe_resource,
1,
I965_SURFACEFORMAT_R8_UNORM,
if (param->b16xme_enabled) {
gpe_resource = param->pres_16x_memv_data_buffer;
- gen9_add_buffer_2d_gpe_surface(ctx, gpe_context,
+ i965_add_buffer_2d_gpe_surface(ctx, gpe_context,
gpe_resource,
1,
I965_SURFACEFORMAT_R8_UNORM,
if (!param->use_16x_me) {
gpe_resource = param->pres_me_brc_distortion_buffer;
- gen9_add_buffer_2d_gpe_surface(ctx, gpe_context,
+ i965_add_buffer_2d_gpe_surface(ctx, gpe_context,
gpe_resource,
1,
I965_SURFACEFORMAT_R8_UNORM,
gpe_resource = param->pres_me_distortion_buffer;
- gen9_add_buffer_2d_gpe_surface(ctx, gpe_context,
+ i965_add_buffer_2d_gpe_surface(ctx, gpe_context,
gpe_resource,
1,
I965_SURFACEFORMAT_R8_UNORM,
else
input_surface = vp9_priv_surface->scaled_4x_surface_obj;
- gen9_add_adv_gpe_surface(ctx, gpe_context,
+ i965_add_adv_gpe_surface(ctx, gpe_context,
input_surface,
VP9_BTI_ME_CURR_PIC_L0);
else
input_surface = vp9_priv_surface->dys_4x_surface_obj;
}
- gen9_add_adv_gpe_surface(ctx, gpe_context,
+ i965_add_adv_gpe_surface(ctx, gpe_context,
input_surface,
ref_bti);
- gen9_add_adv_gpe_surface(ctx, gpe_context,
+ i965_add_adv_gpe_surface(ctx, gpe_context,
input_surface,
ref_bti + 1);
ref_bti += 2;
input_surface = vp9_priv_surface->dys_4x_surface_obj;
}
- gen9_add_adv_gpe_surface(ctx, gpe_context,
+ i965_add_adv_gpe_surface(ctx, gpe_context,
input_surface,
ref_bti);
- gen9_add_adv_gpe_surface(ctx, gpe_context,
+ i965_add_adv_gpe_surface(ctx, gpe_context,
input_surface,
ref_bti + 1);
ref_bti += 2;
else
input_surface = vp9_priv_surface->dys_4x_surface_obj;
}
- gen9_add_adv_gpe_surface(ctx, gpe_context,
+ i965_add_adv_gpe_surface(ctx, gpe_context,
input_surface,
ref_bti);
- gen9_add_adv_gpe_surface(ctx, gpe_context,
+ i965_add_adv_gpe_surface(ctx, gpe_context,
input_surface,
ref_bti + 1);
ref_bti += 2;
else
surface_format = I965_SURFACEFORMAT_R8_UNORM;
- gen9_add_2d_gpe_surface(ctx, gpe_context,
+ i965_add_2d_gpe_surface(ctx, gpe_context,
scaling_surface_param->input_surface,
0, 1, surface_format,
scaling_bti->scaling_frame_src_y);
- gen9_add_2d_gpe_surface(ctx, gpe_context,
+ i965_add_2d_gpe_surface(ctx, gpe_context,
scaling_surface_param->output_surface,
0, 1, surface_format,
scaling_bti->scaling_frame_dst_y);
{
if (surface_param->input_frame)
- gen9_add_adv_gpe_surface(ctx,
+ i965_add_adv_gpe_surface(ctx,
gpe_context,
surface_param->input_frame,
VP9_BTI_DYS_INPUT_NV12);
if (surface_param->output_frame) {
- gen9_add_2d_gpe_surface(ctx,
+ i965_add_2d_gpe_surface(ctx,
gpe_context,
surface_param->output_frame,
0,
I965_SURFACEFORMAT_R8_UNORM,
VP9_BTI_DYS_OUTPUT_Y);
- gen9_add_2d_gpe_surface(ctx,
+ i965_add_2d_gpe_surface(ctx,
gpe_context,
surface_param->output_frame,
1,
if (vp9_state->hme_enabled) {
dys_kernel_param.input_width = ALIGN((vp9_priv_surface->frame_width / 4), 16);
- dys_kernel_param.input_width = ALIGN((vp9_priv_surface->frame_height / 4), 16);
+ dys_kernel_param.input_height = ALIGN((vp9_priv_surface->frame_height / 4), 16);
dys_kernel_param.input_surface = vp9_priv_surface->scaled_4x_surface_obj;
dys_kernel_param.output_width = vp9_state->frame_width_4x;
case VP9_MEDIA_STATE_MBENC_I_32x32: {
obj_surface = mbenc_param->curr_frame_obj;
- gen9_add_2d_gpe_surface(ctx,
+ i965_add_2d_gpe_surface(ctx,
gpe_context,
obj_surface,
0,
I965_SURFACEFORMAT_R8_UNORM,
VP9_BTI_MBENC_CURR_Y_G9);
- gen9_add_2d_gpe_surface(ctx,
+ i965_add_2d_gpe_surface(ctx,
gpe_context,
obj_surface,
1,
if (mbenc_param->segmentation_enabled) {
- gen9_add_buffer_2d_gpe_surface(ctx,
+ i965_add_buffer_2d_gpe_surface(ctx,
gpe_context,
mbenc_param->pres_segmentation_map,
1,
res_size = 16 * mbenc_param->frame_width_in_mb *
mbenc_param->frame_height_in_mb * sizeof(unsigned int);
- gen9_add_buffer_gpe_surface(ctx,
+ i965_add_buffer_gpe_surface(ctx,
gpe_context,
mbenc_param->pres_mode_decision,
0,
case VP9_MEDIA_STATE_MBENC_I_16x16: {
obj_surface = mbenc_param->curr_frame_obj;
- gen9_add_2d_gpe_surface(ctx,
+ i965_add_2d_gpe_surface(ctx,
gpe_context,
obj_surface,
0,
I965_SURFACEFORMAT_R8_UNORM,
VP9_BTI_MBENC_CURR_Y_G9);
- gen9_add_2d_gpe_surface(ctx,
+ i965_add_2d_gpe_surface(ctx,
gpe_context,
obj_surface,
1,
I965_SURFACEFORMAT_R16_UINT,
VP9_BTI_MBENC_CURR_UV_G9);
- gen9_add_adv_gpe_surface(ctx, gpe_context,
+ i965_add_adv_gpe_surface(ctx, gpe_context,
obj_surface,
VP9_BTI_MBENC_CURR_NV12_G9);
if (mbenc_param->segmentation_enabled) {
- gen9_add_buffer_2d_gpe_surface(ctx,
+ i965_add_buffer_2d_gpe_surface(ctx,
gpe_context,
mbenc_param->pres_segmentation_map,
1,
res_size = 16 * mbenc_param->frame_width_in_mb *
mbenc_param->frame_height_in_mb * sizeof(unsigned int);
- gen9_add_buffer_gpe_surface(ctx,
+ i965_add_buffer_gpe_surface(ctx,
gpe_context,
mbenc_param->pres_mode_decision,
0,
case VP9_MEDIA_STATE_MBENC_P: {
obj_surface = mbenc_param->curr_frame_obj;
- gen9_add_2d_gpe_surface(ctx,
+ i965_add_2d_gpe_surface(ctx,
gpe_context,
obj_surface,
0,
I965_SURFACEFORMAT_R8_UNORM,
VP9_BTI_MBENC_CURR_Y_G9);
- gen9_add_2d_gpe_surface(ctx, gpe_context,
+ i965_add_2d_gpe_surface(ctx, gpe_context,
obj_surface,
1,
1,
I965_SURFACEFORMAT_R16_UINT,
VP9_BTI_MBENC_CURR_UV_G9);
- gen9_add_adv_gpe_surface(ctx, gpe_context,
+ i965_add_adv_gpe_surface(ctx, gpe_context,
obj_surface,
VP9_BTI_MBENC_CURR_NV12_G9);
else
tmp_input = obj_surface;
- gen9_add_adv_gpe_surface(ctx, gpe_context,
+ i965_add_adv_gpe_surface(ctx, gpe_context,
tmp_input,
VP9_BTI_MBENC_LAST_NV12_G9);
- gen9_add_adv_gpe_surface(ctx, gpe_context,
+ i965_add_adv_gpe_surface(ctx, gpe_context,
tmp_input,
VP9_BTI_MBENC_LAST_NV12_G9 + 1);
else
tmp_input = obj_surface;
- gen9_add_adv_gpe_surface(ctx, gpe_context,
+ i965_add_adv_gpe_surface(ctx, gpe_context,
tmp_input,
VP9_BTI_MBENC_GOLD_NV12_G9);
- gen9_add_adv_gpe_surface(ctx, gpe_context,
+ i965_add_adv_gpe_surface(ctx, gpe_context,
tmp_input,
VP9_BTI_MBENC_GOLD_NV12_G9 + 1);
else
tmp_input = obj_surface;
- gen9_add_adv_gpe_surface(ctx, gpe_context,
+ i965_add_adv_gpe_surface(ctx, gpe_context,
tmp_input,
VP9_BTI_MBENC_ALTREF_NV12_G9);
- gen9_add_adv_gpe_surface(ctx, gpe_context,
+ i965_add_adv_gpe_surface(ctx, gpe_context,
tmp_input,
VP9_BTI_MBENC_ALTREF_NV12_G9 + 1);
}
if (mbenc_param->hme_enabled) {
- gen9_add_buffer_2d_gpe_surface(ctx, gpe_context,
+ i965_add_buffer_2d_gpe_surface(ctx, gpe_context,
mbenc_param->ps4x_memv_data_buffer,
1,
I965_SURFACEFORMAT_R8_UNORM,
VP9_BTI_MBENC_HME_MV_DATA_G9);
- gen9_add_buffer_2d_gpe_surface(ctx, gpe_context,
+ i965_add_buffer_2d_gpe_surface(ctx, gpe_context,
mbenc_param->ps4x_memv_distortion_buffer,
1,
I965_SURFACEFORMAT_R8_UNORM,
}
if (mbenc_param->segmentation_enabled) {
- gen9_add_buffer_2d_gpe_surface(ctx,
+ i965_add_buffer_2d_gpe_surface(ctx,
gpe_context,
mbenc_param->pres_segmentation_map,
1,
res_size = 16 * mbenc_param->frame_width_in_mb *
mbenc_param->frame_height_in_mb * sizeof(unsigned int);
- gen9_add_buffer_gpe_surface(ctx,
+ i965_add_buffer_gpe_surface(ctx,
gpe_context,
mbenc_param->pres_mode_decision_prev,
0,
0,
VP9_BTI_MBENC_MODE_DECISION_PREV_G9);
- gen9_add_buffer_gpe_surface(ctx,
+ i965_add_buffer_gpe_surface(ctx,
gpe_context,
mbenc_param->pres_mode_decision,
0,
0,
VP9_BTI_MBENC_MODE_DECISION_G9);
- gen9_add_buffer_2d_gpe_surface(ctx,
+ i965_add_buffer_2d_gpe_surface(ctx,
gpe_context,
mbenc_param->pres_output_16x16_inter_modes,
1,
case VP9_MEDIA_STATE_MBENC_TX: {
obj_surface = mbenc_param->curr_frame_obj;
- gen9_add_2d_gpe_surface(ctx,
+ i965_add_2d_gpe_surface(ctx,
gpe_context,
obj_surface,
0,
I965_SURFACEFORMAT_R8_UNORM,
VP9_BTI_MBENC_CURR_Y_G9);
- gen9_add_2d_gpe_surface(ctx,
+ i965_add_2d_gpe_surface(ctx,
gpe_context,
obj_surface,
1,
VP9_BTI_MBENC_CURR_UV_G9);
if (mbenc_param->segmentation_enabled) {
- gen9_add_buffer_2d_gpe_surface(ctx,
+ i965_add_buffer_2d_gpe_surface(ctx,
gpe_context,
mbenc_param->pres_segmentation_map,
1,
res_size = 16 * mbenc_param->frame_width_in_mb *
mbenc_param->frame_height_in_mb * sizeof(unsigned int);
- gen9_add_buffer_gpe_surface(ctx,
+ i965_add_buffer_gpe_surface(ctx,
gpe_context,
mbenc_param->pres_mode_decision,
0,
VP9_BTI_MBENC_MODE_DECISION_G9);
res_size = frame_width_in_sb * frame_height_in_sb * 4 * sizeof(unsigned int);
- gen9_add_buffer_gpe_surface(ctx,
+ i965_add_buffer_gpe_surface(ctx,
gpe_context,
mbenc_param->pres_mb_code_surface,
0,
res_size = frame_width_in_sb * frame_height_in_sb *
64 * 16 * sizeof(unsigned int);
- gen9_add_buffer_gpe_surface(ctx,
+ i965_add_buffer_gpe_surface(ctx,
gpe_context,
mbenc_param->pres_mb_code_surface,
0,
gpe_context->vfe_desc5.scoreboard0.mask = 0x0F;
gpe_context->vfe_desc5.scoreboard0.type = 1;
- gpe_context->vfe_desc6.scoreboard1.delta_x0 = 0x0;
- gpe_context->vfe_desc6.scoreboard1.delta_y0 = 0xF;
+ gpe_context->vfe_desc6.scoreboard1.delta_x0 = 0;
+ gpe_context->vfe_desc6.scoreboard1.delta_y0 = -1;
- gpe_context->vfe_desc6.scoreboard1.delta_x1 = 0x0;
- gpe_context->vfe_desc6.scoreboard1.delta_y1 = 0xE;
+ gpe_context->vfe_desc6.scoreboard1.delta_x1 = 0;
+ gpe_context->vfe_desc6.scoreboard1.delta_y1 = -2;
- gpe_context->vfe_desc6.scoreboard1.delta_x2 = 0xF;
- gpe_context->vfe_desc6.scoreboard1.delta_y2 = 0x3;
+ gpe_context->vfe_desc6.scoreboard1.delta_x2 = -1;
+ gpe_context->vfe_desc6.scoreboard1.delta_y2 = 3;
- gpe_context->vfe_desc6.scoreboard1.delta_x3 = 0xF;
- gpe_context->vfe_desc6.scoreboard1.delta_y3 = 0x1;
+ gpe_context->vfe_desc6.scoreboard1.delta_x3 = -1;
+ gpe_context->vfe_desc6.scoreboard1.delta_y3 = 1;
} else {
// Scoreboard 0
- gpe_context->vfe_desc6.scoreboard1.delta_x0 = 0xF;
- gpe_context->vfe_desc6.scoreboard1.delta_y0 = 0x0;
+ gpe_context->vfe_desc6.scoreboard1.delta_x0 = -1;
+ gpe_context->vfe_desc6.scoreboard1.delta_y0 = 0;
// Scoreboard 1
- gpe_context->vfe_desc6.scoreboard1.delta_x1 = 0x0;
- gpe_context->vfe_desc6.scoreboard1.delta_y1 = 0xF;
+ gpe_context->vfe_desc6.scoreboard1.delta_x1 = 0;
+ gpe_context->vfe_desc6.scoreboard1.delta_y1 = -1;
// Scoreboard 2
- gpe_context->vfe_desc6.scoreboard1.delta_x2 = 0x1;
- gpe_context->vfe_desc6.scoreboard1.delta_y2 = 0xF;
+ gpe_context->vfe_desc6.scoreboard1.delta_x2 = 1;
+ gpe_context->vfe_desc6.scoreboard1.delta_y2 = -1;
// Scoreboard 3
- gpe_context->vfe_desc6.scoreboard1.delta_x3 = 0xF;
- gpe_context->vfe_desc6.scoreboard1.delta_y3 = 0xF;
+ gpe_context->vfe_desc6.scoreboard1.delta_x3 = -1;
+ gpe_context->vfe_desc6.scoreboard1.delta_y3 = -1;
// Scoreboard 4
- gpe_context->vfe_desc7.scoreboard2.delta_x4 = 0xF;
- gpe_context->vfe_desc7.scoreboard2.delta_y4 = 0x1;
+ gpe_context->vfe_desc7.scoreboard2.delta_x4 = -1;
+ gpe_context->vfe_desc7.scoreboard2.delta_y4 = 1;
// Scoreboard 5
- gpe_context->vfe_desc7.scoreboard2.delta_x5 = 0x0;
- gpe_context->vfe_desc7.scoreboard2.delta_y5 = 0xE;
+ gpe_context->vfe_desc7.scoreboard2.delta_x5 = 0;
+ gpe_context->vfe_desc7.scoreboard2.delta_y5 = -2;
// Scoreboard 6
- gpe_context->vfe_desc7.scoreboard2.delta_x6 = 0x1;
- gpe_context->vfe_desc7.scoreboard2.delta_y6 = 0xE;
+ gpe_context->vfe_desc7.scoreboard2.delta_x6 = 1;
+ gpe_context->vfe_desc7.scoreboard2.delta_y6 = -2;
// Scoreboard 7
- gpe_context->vfe_desc7.scoreboard2.delta_x6 = 0xF;
- gpe_context->vfe_desc7.scoreboard2.delta_y6 = 0xE;
+ gpe_context->vfe_desc7.scoreboard2.delta_x6 = -1;
+ gpe_context->vfe_desc7.scoreboard2.delta_y6 = -2;
}
}
-#define VP9_MI_BLOCK_MASK 0x07
#define VP9_VME_REF_WIN 48
static VAStatus
}
pic_param = (VAEncPictureParameterBufferVP9 *)encode_state->pic_param_ext->buffer;
- if (pic_param->frame_width_src & VP9_MI_BLOCK_MASK ||
- pic_param->frame_height_src & VP9_MI_BLOCK_MASK ||
- pic_param->frame_width_dst & VP9_MI_BLOCK_MASK ||
- pic_param->frame_height_dst & VP9_MI_BLOCK_MASK)
- return VA_STATUS_ERROR_INVALID_PARAMETER;
-
obj_buffer = BUFFER(pic_param->coded_buf);
if (!obj_buffer ||
vp9_state->gop_size = encoder_context->brc.gop_size;
vp9_state->framerate = encoder_context->brc.framerate[0];
+ if ((vp9_state->framerate.num / vp9_state->framerate.den) > MAX_VP9_ENCODER_FRAMERATE) {
+ vp9_state->framerate.num = MAX_VP9_ENCODER_FRAMERATE * vp9_state->framerate.den;
+ i965_log_info(ctx, "gen9_encode_vp9_check_parameter: Too high frame rate(num: %d, den: %d), max supported is %d fps.\n",
+ vp9_state->framerate.num, vp9_state->framerate.den, MAX_VP9_ENCODER_FRAMERATE);
+ }
if (encoder_context->rate_control_mode == VA_RC_CBR ||
!encoder_context->brc.target_percentage[0]) {