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;
}
}
/*
avc_state->pic_param = (VAEncPictureParameterBufferH264 *)encode_state->pic_param_ext->buffer;
if (fei_enabled &&
- encode_state->misc_param[VAEncMiscParameterTypeFEIFrameControl]) {
+ encode_state->misc_param[VAEncMiscParameterTypeFEIFrameControl][0] &&
+ encode_state->misc_param[VAEncMiscParameterTypeFEIFrameControl][0]->buffer) {
fei_misc_param = (VAEncMiscParameterBuffer*)encode_state->misc_param[VAEncMiscParameterTypeFEIFrameControl][0]->buffer;
avc_state->fei_framectl_param =
(VAEncMiscParameterFEIFrameControlH264 *)fei_misc_param->data;
goto error;
size = frame_mb_nums * FEI_AVC_MV_PREDICTOR_BUFFER_SIZE;
obj_buffer = BUFFER(stat_param->mv_predictor);
+ if (!obj_buffer)
+ goto error;
buffer_store = obj_buffer->buffer_store;
if (buffer_store->bo->size < size)
goto error;
}
}
/* mv data output buffer */
- if (!stat_param_h264->disable_mv_output) {
+ if (!stat_param_h264->disable_mv_output && obj_buffer_mv) {
size = frame_mb_nums * FEI_AVC_MV_DATA_BUFFER_SIZE;
buffer_store = obj_buffer_mv->buffer_store;
if (buffer_store->bo->size < size)
buffer_store->bo);
}
/* statistics output buffer */
- if (!stat_param_h264->disable_statistics_output) {
+ if (!stat_param_h264->disable_statistics_output && obj_buffer_stat) {
size = frame_mb_nums * PREENC_AVC_STATISTICS_BUFFER_SIZE;
buffer_store = obj_buffer_stat->buffer_store;
if (buffer_store->bo->size < size)
avc_state->kernel_trellis_enable = 1;
avc_state->lambda_table_enable = 1;
avc_state->brc_split_enable = 1;
- avc_state->adaptive_transform_decision_enable = 1;// CNL
+
+ if (IS_GEN10(i965->intel.device_info))
+ avc_state->adaptive_transform_decision_enable = 1;// CNL
}
avc_state->num_refs[0] = 0;