Home | History | Annotate | Download | only in mrst

Lines Matching refs:slice_param

902 static void psb__H264_build_B_slice_chunk(context_H264_p ctx, VASliceParameterBufferH264 *slice_param)
912 object_surface_p colocated_surface = SURFACE(slice_param->RefPicList1[0].picture_id);
916 bottom_field_flag = (slice_param->RefPicList1[0].flags & VA_PICTURE_H264_BOTTOM_FIELD) ? 1 : 0;
929 i32Top = slice_param->RefPicList1[0].TopFieldOrderCnt;
930 i32Bot = slice_param->RefPicList1[0].BottomFieldOrderCnt;
961 if (slice_param->num_ref_idx_l0_active_minus1 + 1 > 32) {
963 slice_param->num_ref_idx_l0_active_minus1);
964 slice_param->num_ref_idx_l0_active_minus1 = 31;
967 if (slice_param->num_ref_idx_l0_active_minus1 > 30)
968 slice_param->num_ref_idx_l0_active_minus1 = 30;
969 for (i = slice_param->num_ref_idx_l0_active_minus1 + 1; i--;) {
970 object_surface_p surface = SURFACE(slice_param->RefPicList0[i].picture_id);
974 if (slice_param->RefPicList0[i].flags & VA_PICTURE_H264_BOTTOM_FIELD) {
991 if (slice_param->num_ref_idx_l1_active_minus1 > 28)
992 slice_param->num_ref_idx_l1_active_minus1 = 28;
995 for (i = 0; i <= slice_param->num_ref_idx_l1_active_minus1; i += 4) {
997 reg_value |= PICTURE2INDEX(ctx, &slice_param->RefPicList1[i]);
998 reg_value |= PICTURE2INDEX(ctx, &slice_param->RefPicList1[i+1]) << 8;
999 reg_value |= PICTURE2INDEX(ctx, &slice_param->RefPicList1[i+2]) << 16;
1000 reg_value |= PICTURE2INDEX(ctx, &slice_param->RefPicList1[i+3]) << 24;
1007 static void psb__H264_build_register(context_H264_p ctx, VASliceParameterBufferH264 *slice_param)
1027 REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_VEC_H264, CR_VEC_H264_FE_SLICE2, FIRST_MB_IN_SLICE, slice_param->first_mb_in_slice);
1074 static void psb__H264_build_rendec_params(context_H264_p ctx, VASliceParameterBufferH264 *slice_param)
1135 if (slice_param->slice_type == ST_B) {
1141 if (slice_param->slice_type == ST_B) {
1142 psb__H264_build_B_slice_chunk(ctx, slice_param);
1147 if (slice_param->slice_type == ST_B || slice_param->slice_type == ST_P) {
1150 if (slice_param->num_ref_idx_l0_active_minus1 > 31) {
1152 slice_param->num_ref_idx_l0_active_minus1);
1153 slice_param->num_ref_idx_l0_active_minus1 = 28;
1156 for (i = 0; i <= slice_param->num_ref_idx_l0_active_minus1; i += 4) {
1158 reg_value |= PICTURE2INDEX(ctx, &slice_param->RefPicList0[i]);
1159 reg_value |= PICTURE2INDEX(ctx, &slice_param->RefPicList0[i+1]) << 8;
1160 reg_value |= PICTURE2INDEX(ctx, &slice_param->RefPicList0[i+2]) << 16;
1161 reg_value |= PICTURE2INDEX(ctx, &slice_param->RefPicList0[i+3]) << 24;
1178 if (slice_param->num_ref_idx_l0_active_minus1 > 31)
1179 slice_param->num_ref_idx_l0_active_minus1 = 31;
1181 for (i = 0; i <= slice_param->num_ref_idx_l0_active_minus1; i++) {
1182 object_surface_p ref_surface = SURFACE(slice_param->RefPicList0[i].picture_id);
1191 if (slice_param->num_ref_idx_l1_active_minus1 > 31)
1192 slice_param->num_ref_idx_l1_active_minus1 = 31;
1195 for (i = 0; i <= slice_param->num_ref_idx_l1_active_minus1; i++) {
1196 object_surface_p ref_surface = SURFACE(slice_param->RefPicList1[i].picture_id);
1247 if ((pic_params->pic_fields.bits.weighted_pred_flag && (slice_param->slice_type == ST_P)) ||
1248 ((pic_params->pic_fields.bits.weighted_bipred_idc != 0) && (slice_param->slice_type == ST_B))) {
1249 IMG_UINT32 num_ref_0 = slice_param->num_ref_idx_l0_active_minus1;
1259 REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_FACTORS_A, CR_WEIGHT_A, slice_param->chroma_weight_l0[i][1]);/* Cr - 1 */
1260 REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_FACTORS_A, CB_WEIGHT_A, slice_param->chroma_weight_l0[i][0]);/* Cb - 0 */
1261 REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_FACTORS_A, Y_WEIGHT_A, slice_param->luma_weight_l0[i]);
1273 REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_OFFSET_A, CR_OFFSET_A, slice_param->chroma_offset_l0[i][1]);/* Cr - 1 */
1274 REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_OFFSET_A, CB_OFFSET_A, slice_param->chroma_offset_l0[i][0]);/* Cb - 0 */
1275 REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_OFFSET_A, Y_OFFSET_A, slice_param->luma_offset_l0[i]);
1285 if (slice_param->slice_type == ST_B) {
1286 IMG_UINT32 num_ref_1 = slice_param->num_ref_idx_l1_active_minus1;
1298 REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_FACTORS_B, CR_WEIGHT_B, slice_param->chroma_weight_l1[i][1]);/* Cr - 1 */
1299 REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_FACTORS_B, CB_WEIGHT_B, slice_param->chroma_weight_l1[i][0]);/* Cb - 0 */
1300 REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_FACTORS_B, Y_WEIGHT_B, slice_param->luma_weight_l1[i]);
1312 REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_OFFSET_B, CR_OFFSET_B, slice_param->chroma_offset_l1[i][1]);/* Cr - 1 */
1313 REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_OFFSET_B, CB_OFFSET_B, slice_param->chroma_offset_l1[i][0]);/* Cb - 0 */
1314 REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_OFFSET_B, Y_OFFSET_B, slice_param->luma_offset_l1[i]);
1388 REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_FACTOR_DENOMINATOR, C_LOG2_WEIGHT_DENOM, slice_param->chroma_log2_weight_denom);
1389 REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, H264_WEIGHTED_FACTOR_DENOMINATOR, Y_LOG2_WEIGHT_DENOM, slice_param->luma_log2_weight_denom);
1405 REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, SLICE_PARAMS, DISABLE_DEBLOCK_FILTER_IDC, slice_param->disable_deblocking_filter_idc);
1406 REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, SLICE_PARAMS, SLICE_ALPHA_CO_OFFSET_DIV2, slice_param->slice_alpha_c0_offset_div2);
1407 REGIO_WRITE_FIELD_MASKEDLITE(reg_value, MSVDX_CMDS, SLICE_PARAMS, SLICE_BETA_OFFSET_DIV2, slice_param->slice_beta_offset_div2);
1409 REGIO_WRITE_FIELD_LITE(reg_value, MSVDX_CMDS, SLICE_PARAMS, SLICE_CODE_TYPE, aSliceTypeVAtoMsvdx[slice_param->slice_type % 5]);
1443 static void psb__H264_write_kick(context_H264_p ctx, VASliceParameterBufferH264 *slice_param)
1447 (void) slice_param; /* Unused for now */
1475 VASliceParameterBufferH264 *slice_param)
1480 ctx->first_mb_x = slice_param->first_mb_in_slice % ctx->picture_width_mb;
1481 ctx->first_mb_y = slice_param->first_mb_in_slice / ctx->picture_width_mb;
1496 slice_qpy = 26 + pic_params->pic_init_qp_minus26 + slice_param->slice_qp_delta; /* (7-27) */
1498 REGIO_WRITE_FIELD_LITE(ctx->slice0_params, MSVDX_VEC_H264, CR_VEC_H264_BE_SLICE0, BE_DIRECT_SPATIAL_MV_PRED_FLAG, slice_param->direct_spatial_mv_pred_flag);
1499 REGIO_WRITE_FIELD_LITE(ctx->slice0_params, MSVDX_VEC_H264, CR_VEC_H264_BE_SLICE0, H264_BE_SLICE0_DISABLE_DEBLOCK_FILTER_IDC, slice_param->disable_deblocking_filter_idc);
1500 REGIO_WRITE_FIELD_MASKEDLITE(ctx->slice0_params, MSVDX_VEC_H264, CR_VEC_H264_BE_SLICE0, H264_BE_SLICE0_ALPHA_CO_OFFSET_DIV2, slice_param->slice_alpha_c0_offset_div2);
1501 REGIO_WRITE_FIELD_MASKEDLITE(ctx->slice0_params, MSVDX_VEC_H264, CR_VEC_H264_BE_SLICE0, H264_BE_SLICE0_BETA_OFFSET_DIV2, slice_param->slice_beta_offset_div2);
1503 REGIO_WRITE_FIELD_LITE(ctx->slice0_params, MSVDX_VEC_H264, CR_VEC_H264_FE_SLICE0, SLICETYPE, aSliceTypeVAtoMsvdx[ slice_param->slice_type % 5]);
1504 REGIO_WRITE_FIELD_LITE(ctx->slice0_params, MSVDX_VEC_H264, CR_VEC_H264_FE_SLICE0, CABAC_INIT_IDC, slice_param->cabac_init_idc);
1510 REGIO_WRITE_FIELD_LITE(ctx->slice1_params, MSVDX_VEC_H264, CR_VEC_H264_FE_SLICE1, NUM_REF_IDX_L0_ACTIVE_MINUS1, slice_param->num_ref_idx_l0_active_minus1);
1511 REGIO_WRITE_FIELD_LITE(ctx->slice1_params, MSVDX_VEC_H264, CR_VEC_H264_FE_SLICE1, NUM_REF_IDX_L1_ACTIVE_MINUS1, slice_param->num_ref_idx_l1_active_minus1);
1589 VASliceParameterBufferH264 *slice_param,
1599 drv_debug_msg(VIDEO_DEBUG_GENERAL, " size = %08x offset = %08x\n", slice_param->slice_data_size, slice_param->slice_data_offset);
1600 drv_debug_msg(VIDEO_DEBUG_GENERAL, " first mb = %d macroblock offset = %d\n", slice_param->first_mb_in_slice, slice_param->slice_data_bit_offset);
1601 drv_debug_msg(VIDEO_DEBUG_GENERAL, " slice_data_flag = %d\n", slice_param->slice_data_flag);
1603 drv_debug_msg(VIDEO_DEBUG_GENERAL, " slice type = %s\n", slice2str[(slice_param->slice_type % 5)]);
1607 if ((slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_BEGIN) ||
1608 (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL)) {
1609 if (0 == slice_param->slice_data_size) {
1616 psb__H264_preprocess_slice(ctx, slice_param);
1630 obj_buffer->psb_buffer->buffer_ofs + slice_param->slice_data_offset,
1631 slice_param->slice_data_size,
1632 slice_param->slice_data_bit_offset,
1635 if (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_BEGIN) {
1640 ASSERT(0 == slice_param->slice_data_offset);
1642 if (slice_param->slice_data_size) {
1645 slice_param->slice_data_size);
1649 if ((slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL) ||
1650 (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_END)) {
1651 if (slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_END) {
1666 psb__H264_build_register(ctx, slice_param);
1668 psb__H264_build_rendec_params(ctx, slice_param);
1670 psb__H264_write_kick(ctx, slice_param);
1702 VASliceParameterBufferH264 *slice_param;
1740 slice_param = (VASliceParameterBufferH264 *) slice_buf->buffer_data;
1741 slice_param += element_idx;
1743 vaStatus = psb__H264_process_slice(ctx, slice_param, obj_buffer);