Lines Matching refs:currSlice
318 static MPP_RET init_mvc_picture(H264_SLICE_t *currSlice) in init_mvc_picture() argument
323 H264dVideoCtx_t *p_Vid = currSlice->p_Vid; in init_mvc_picture()
330 if (currSlice->structure == FRAME) { in init_mvc_picture()
336 if (fs->frame && (fs->frame->layer_id == 0) && (poc == currSlice->framepoc)) { in init_mvc_picture()
343 } else if (currSlice->structure == TOP_FIELD) { in init_mvc_picture()
349 if (fs->top_field && (fs->top_field->layer_id == 0) && (poc == currSlice->toppoc)) { in init_mvc_picture()
362 … if (fs->bottom_field && (fs->bottom_field->layer_id == 0) && (poc == currSlice->bottompoc)) { in init_mvc_picture()
373 FUN_CHECK(ret = store_proc_picture_in_dpb(currSlice->p_Dpb, p_clone)); in init_mvc_picture()
608 …check_dpb_discontinuous(H264_StorePic_t *p_last, H264_StorePic_t *dec_pic, H264_SLICE_t *currSlice) in check_dpb_discontinuous() argument
613 && (currSlice->p_Cur->sps.gaps_in_frame_num_value_allowed_flag == 0)) { in check_dpb_discontinuous()
620 RK_U32 frame_num = currSlice->p_Vid->last_ref_frame_num; in check_dpb_discontinuous()
623 dec_pic->frame_num != ((frame_num + 1) % currSlice->p_Vid->max_frame_num)) in check_dpb_discontinuous()
627 currSlice->p_Dec->errctx.cur_err_flag |= error_flag ? 1 : 0; in check_dpb_discontinuous()
628 currSlice->p_Dec->errctx.dpb_err_flag |= error_flag ? 1 : 0; in check_dpb_discontinuous()
635 currSlice->p_Vid->last_ref_frame_num = dec_pic->frame_num; in check_dpb_discontinuous()
639 static MPP_RET alloc_decpic(H264_SLICE_t *currSlice) in alloc_decpic() argument
644 H264dVideoCtx_t *p_Vid = currSlice->p_Vid; in alloc_decpic()
646 H264_DpbBuf_t *p_Dpb = currSlice->p_Dpb; in alloc_decpic()
649 dec_pic = alloc_storable_picture(p_Vid, currSlice->structure); in alloc_decpic()
651 currSlice->toppoc = p_Vid->last_toppoc[currSlice->layer_id]; in alloc_decpic()
652 currSlice->bottompoc = p_Vid->last_bottompoc[currSlice->layer_id]; in alloc_decpic()
653 currSlice->framepoc = p_Vid->last_framepoc[currSlice->layer_id]; in alloc_decpic()
654 currSlice->ThisPOC = p_Vid->last_thispoc[currSlice->layer_id]; in alloc_decpic()
655 FUN_CHECK(ret = decode_poc(p_Vid, currSlice)); //!< calculate POC in alloc_decpic()
657 dec_pic->top_poc = currSlice->toppoc; in alloc_decpic()
658 dec_pic->bottom_poc = currSlice->bottompoc; in alloc_decpic()
659 dec_pic->frame_poc = currSlice->framepoc; in alloc_decpic()
660 dec_pic->ThisPOC = currSlice->ThisPOC; in alloc_decpic()
662 p_Vid->last_toppoc[currSlice->layer_id] = currSlice->toppoc; in alloc_decpic()
663 p_Vid->last_bottompoc[currSlice->layer_id] = currSlice->bottompoc; in alloc_decpic()
664 p_Vid->last_framepoc[currSlice->layer_id] = currSlice->framepoc; in alloc_decpic()
665 p_Vid->last_thispoc[currSlice->layer_id] = currSlice->ThisPOC; in alloc_decpic()
667 if (currSlice->structure == FRAME) { in alloc_decpic()
668 if (currSlice->mb_aff_frame_flag) { in alloc_decpic()
676 dec_pic->layer_id = currSlice->layer_id; in alloc_decpic()
677 dec_pic->view_id = currSlice->view_id; in alloc_decpic()
678 dec_pic->inter_view_flag = currSlice->inter_view_flag; in alloc_decpic()
679 dec_pic->anchor_pic_flag = currSlice->anchor_pic_flag; in alloc_decpic()
682 FUN_CHECK(ret = init_mvc_picture(currSlice)); in alloc_decpic()
685 if (currSlice->structure == TOP_FIELD) { in alloc_decpic()
686 dec_pic->poc = currSlice->toppoc; in alloc_decpic()
687 } else if (currSlice->structure == BOTTOM_FIELD) { in alloc_decpic()
688 dec_pic->poc = currSlice->bottompoc; in alloc_decpic()
689 } else if (currSlice->structure == FRAME) { in alloc_decpic()
690 dec_pic->poc = currSlice->framepoc; in alloc_decpic()
696 dec_pic->used_for_reference = (currSlice->nal_reference_idc != 0); in alloc_decpic()
697 dec_pic->idr_flag = currSlice->idr_flag; in alloc_decpic()
698 dec_pic->no_output_of_prior_pics_flag = currSlice->no_output_of_prior_pics_flag; in alloc_decpic()
699 dec_pic->long_term_reference_flag = currSlice->long_term_reference_flag; in alloc_decpic()
700 dec_pic->adaptive_ref_pic_buffering_flag = currSlice->adaptive_ref_pic_buffering_flag; in alloc_decpic()
701 dec_pic->dec_ref_pic_marking_buffer = currSlice->dec_ref_pic_marking_buffer; in alloc_decpic()
703 currSlice->dec_ref_pic_marking_buffer = NULL; in alloc_decpic()
704 dec_pic->mb_aff_frame_flag = currSlice->mb_aff_frame_flag; in alloc_decpic()
706 dec_pic->pic_num = currSlice->frame_num; in alloc_decpic()
707 dec_pic->frame_num = currSlice->frame_num; in alloc_decpic()
731 FUN_CHECK(ret = check_dpb_discontinuous(p_Vid->last_pic, dec_pic, currSlice)); in alloc_decpic()
745 static void update_pic_num(H264_SLICE_t *currSlice) in update_pic_num() argument
748 H264dVideoCtx_t *p_Vid = currSlice->p_Vid; in update_pic_num()
749 H264_DpbBuf_t *p_Dpb = currSlice->p_Dpb; in update_pic_num()
755 if (currSlice->idr_flag) { in update_pic_num()
758 if (currSlice->structure == FRAME) { in update_pic_num()
762 if ((RK_S32)p_Dpb->fs_ref[i]->frame_num > currSlice->frame_num) { in update_pic_num()
780 if (currSlice->structure == TOP_FIELD) { in update_pic_num()
790 if ((RK_S32)p_Dpb->fs_ref[i]->frame_num > currSlice->frame_num) { in update_pic_num()
1085 static MPP_RET init_lists_p_slice_mvc(H264_SLICE_t *currSlice) in init_lists_p_slice_mvc() argument
1093 H264dVideoCtx_t *p_Vid = currSlice->p_Vid; in init_lists_p_slice_mvc()
1094 H264_DpbBuf_t *p_Dpb = currSlice->p_Dpb; in init_lists_p_slice_mvc()
1095 RK_S32 currPOC = currSlice->ThisPOC; in init_lists_p_slice_mvc()
1096 RK_S32 anchor_pic_flag = currSlice->anchor_pic_flag; in init_lists_p_slice_mvc()
1098 currSlice->listXsizeP[0] = 0; in init_lists_p_slice_mvc()
1099 currSlice->listXsizeP[1] = 0; in init_lists_p_slice_mvc()
1100 currSlice->listinterviewidx0 = 0; in init_lists_p_slice_mvc()
1101 currSlice->listinterviewidx1 = 0; in init_lists_p_slice_mvc()
1103 if (currSlice->structure == FRAME) { in init_lists_p_slice_mvc()
1107 currSlice->listP[0][list0idx++] = p_Dpb->fs_ref[i]->frame; in init_lists_p_slice_mvc()
1112 …qsort((void *)currSlice->listP[0], list0idx, sizeof(H264_StorePic_t*), compare_pic_by_pic_num_desc… in init_lists_p_slice_mvc()
1113 currSlice->listXsizeP[0] = (RK_U8)list0idx; in init_lists_p_slice_mvc()
1118 currSlice->listP[0][list0idx++] = p_Dpb->fs_ltref[i]->frame; in init_lists_p_slice_mvc()
1122 qsort((void *)&currSlice->listP[0][(RK_S16)currSlice->listXsizeP[0]], in init_lists_p_slice_mvc()
1123 … list0idx - currSlice->listXsizeP[0], sizeof(H264_StorePic_t*), compare_pic_by_lt_pic_num_asc); in init_lists_p_slice_mvc()
1124 currSlice->listXsizeP[0] = (RK_U8)list0idx; in init_lists_p_slice_mvc()
1135 currSlice->listXsizeP[0] = 0; in init_lists_p_slice_mvc()
1136 …gen_pic_list_from_frame_list(currSlice->structure, fs_list0, list0idx, currSlice->listP[0], &currS… in init_lists_p_slice_mvc()
1142 …gen_pic_list_from_frame_list(currSlice->structure, fs_listlt, listltidx, currSlice->listP[0], &cur… in init_lists_p_slice_mvc()
1147 currSlice->listXsizeP[1] = 0; in init_lists_p_slice_mvc()
1148 … if (currSlice->mvcExt.valid && p_Vid->active_mvc_sps_flag && currSlice->svc_extension_flag == 0) { in init_lists_p_slice_mvc()
1149 RK_S32 curr_layer_id = currSlice->layer_id; in init_lists_p_slice_mvc()
1150 currSlice->fs_listinterview0 = mpp_calloc(H264_FrameStore_t*, p_Dpb->size); in init_lists_p_slice_mvc()
1151 MEM_CHECK(ret, currSlice->fs_listinterview0); in init_lists_p_slice_mvc()
1152 list0idx = currSlice->listXsizeP[0]; in init_lists_p_slice_mvc()
1153 if (currSlice->structure == FRAME) { in init_lists_p_slice_mvc()
1154 FUN_CHECK(ret = append_interview_list(p_Vid->p_Dpb_layer[1], currSlice->structure, 0, in init_lists_p_slice_mvc()
1155 …currSlice->fs_listinterview0, &currSlice->listinterviewidx0, currPOC, curr_layer_id, anchor_pic_fl… in init_lists_p_slice_mvc()
1156 for (i = 0; i < (RK_U32)currSlice->listinterviewidx0; i++) { in init_lists_p_slice_mvc()
1157 currSlice->listP[0][list0idx++] = currSlice->fs_listinterview0[i]->frame; in init_lists_p_slice_mvc()
1159 currSlice->listXsizeP[0] = (RK_U8)list0idx; in init_lists_p_slice_mvc()
1161 FUN_CHECK(ret = append_interview_list(p_Vid->p_Dpb_layer[1], currSlice->structure, 0, in init_lists_p_slice_mvc()
1162 …currSlice->fs_listinterview0, &currSlice->listinterviewidx0, currPOC, curr_layer_id, anchor_pic_fl… in init_lists_p_slice_mvc()
1163 … gen_pic_list_from_frame_interview_list(currSlice->structure, currSlice->fs_listinterview0, in init_lists_p_slice_mvc()
1164 … currSlice->listinterviewidx0, currSlice->listP[0], &currSlice->listXsizeP[0]); in init_lists_p_slice_mvc()
1168 for (i = currSlice->listXsizeP[0]; i < (MAX_LIST_SIZE); i++) { in init_lists_p_slice_mvc()
1169 currSlice->listP[0][i] = p_Vid->no_ref_pic; in init_lists_p_slice_mvc()
1171 for (i = currSlice->listXsizeP[1]; i < (MAX_LIST_SIZE); i++) { in init_lists_p_slice_mvc()
1172 currSlice->listP[1][i] = p_Vid->no_ref_pic; in init_lists_p_slice_mvc()
1174 MPP_FREE(currSlice->fs_listinterview0); in init_lists_p_slice_mvc()
1180 MPP_FREE(currSlice->fs_listinterview0); in init_lists_p_slice_mvc()
1185 static MPP_RET init_lists_b_slice_mvc(H264_SLICE_t *currSlice) in init_lists_b_slice_mvc() argument
1197 H264dVideoCtx_t *p_Vid = currSlice->p_Vid; in init_lists_b_slice_mvc()
1198 H264_DpbBuf_t *p_Dpb = currSlice->p_Dpb; in init_lists_b_slice_mvc()
1199 RK_S32 currPOC = currSlice->ThisPOC; in init_lists_b_slice_mvc()
1200 RK_S32 anchor_pic_flag = currSlice->anchor_pic_flag; in init_lists_b_slice_mvc()
1202 currSlice->listXsizeB[0] = 0; in init_lists_b_slice_mvc()
1203 currSlice->listXsizeB[1] = 0; in init_lists_b_slice_mvc()
1204 currSlice->listinterviewidx0 = 0; in init_lists_b_slice_mvc()
1205 currSlice->listinterviewidx1 = 0; in init_lists_b_slice_mvc()
1207 if (currSlice->structure == FRAME) { in init_lists_b_slice_mvc()
1211 if (currSlice->framepoc >= p_Dpb->fs_ref[i]->frame->poc) { in init_lists_b_slice_mvc()
1212 currSlice->listB[0][list0idx++] = p_Dpb->fs_ref[i]->frame; in init_lists_b_slice_mvc()
1217 … qsort((void *)currSlice->listB[0], list0idx, sizeof(H264_StorePic_t*), compare_pic_by_poc_desc); in init_lists_b_slice_mvc()
1222 if (currSlice->framepoc < p_Dpb->fs_ref[i]->frame->poc) { in init_lists_b_slice_mvc()
1223 currSlice->listB[0][list0idx++] = p_Dpb->fs_ref[i]->frame; in init_lists_b_slice_mvc()
1228 …qsort((void *)&currSlice->listB[0][list0idx_1], list0idx - list0idx_1, sizeof(H264_StorePic_t*), c… in init_lists_b_slice_mvc()
1231 currSlice->listB[1][list0idx - list0idx_1 + j] = currSlice->listB[0][j]; in init_lists_b_slice_mvc()
1234 currSlice->listB[1][j - list0idx_1] = currSlice->listB[0][j]; in init_lists_b_slice_mvc()
1236 currSlice->listXsizeB[0] = currSlice->listXsizeB[1] = (RK_U8)list0idx; in init_lists_b_slice_mvc()
1241 currSlice->listB[0][list0idx] = p_Dpb->fs_ltref[i]->frame; in init_lists_b_slice_mvc()
1242 currSlice->listB[1][list0idx++] = p_Dpb->fs_ltref[i]->frame; in init_lists_b_slice_mvc()
1246 qsort((void *)&currSlice->listB[0][(RK_S16)currSlice->listXsizeB[0]], in init_lists_b_slice_mvc()
1247 … list0idx - currSlice->listXsizeB[0], sizeof(H264_StorePic_t*), compare_pic_by_lt_pic_num_asc); in init_lists_b_slice_mvc()
1248 qsort((void *)&currSlice->listB[1][(RK_S16)currSlice->listXsizeB[0]], in init_lists_b_slice_mvc()
1249 … list0idx - currSlice->listXsizeB[0], sizeof(H264_StorePic_t*), compare_pic_by_lt_pic_num_asc); in init_lists_b_slice_mvc()
1250 currSlice->listXsizeB[0] = currSlice->listXsizeB[1] = (RK_U8)list0idx; in init_lists_b_slice_mvc()
1256 currSlice->listXsizeB[0] = 0; in init_lists_b_slice_mvc()
1257 currSlice->listXsizeB[1] = 1; in init_lists_b_slice_mvc()
1260 if (currSlice->ThisPOC >= p_Dpb->fs_ref[i]->poc) { in init_lists_b_slice_mvc()
1269 if (currSlice->ThisPOC < p_Dpb->fs_ref[i]->poc) { in init_lists_b_slice_mvc()
1282 currSlice->listXsizeB[0] = 0; in init_lists_b_slice_mvc()
1283 currSlice->listXsizeB[1] = 0; in init_lists_b_slice_mvc()
1284 …gen_pic_list_from_frame_list(currSlice->structure, fs_list0, list0idx, currSlice->listB[0], &currS… in init_lists_b_slice_mvc()
1285 …gen_pic_list_from_frame_list(currSlice->structure, fs_list1, list0idx, currSlice->listB[1], &currS… in init_lists_b_slice_mvc()
1293 …gen_pic_list_from_frame_list(currSlice->structure, fs_listlt, listltidx, currSlice->listB[0], &cur… in init_lists_b_slice_mvc()
1294 …gen_pic_list_from_frame_list(currSlice->structure, fs_listlt, listltidx, currSlice->listB[1], &cur… in init_lists_b_slice_mvc()
1300 if ((currSlice->listXsizeB[0] == currSlice->listXsizeB[1]) && (currSlice->listXsizeB[0] > 1)) { in init_lists_b_slice_mvc()
1303 for (j = 0; j < currSlice->listXsizeB[0]; j++) { in init_lists_b_slice_mvc()
1304 if (currSlice->listB[0][j] != currSlice->listB[1][j]) { in init_lists_b_slice_mvc()
1310 H264_StorePic_t *tmp_s = currSlice->listB[1][0]; in init_lists_b_slice_mvc()
1311 currSlice->listB[1][0] = currSlice->listB[1][1]; in init_lists_b_slice_mvc()
1312 currSlice->listB[1][1] = tmp_s; in init_lists_b_slice_mvc()
1315 … if (currSlice->mvcExt.valid && p_Vid->active_mvc_sps_flag && currSlice->svc_extension_flag == 0) { in init_lists_b_slice_mvc()
1316 RK_S32 curr_layer_id = currSlice->layer_id; in init_lists_b_slice_mvc()
1318 currSlice->fs_listinterview0 = mpp_calloc(H264_FrameStore_t*, p_Dpb->size); in init_lists_b_slice_mvc()
1319 currSlice->fs_listinterview1 = mpp_calloc(H264_FrameStore_t*, p_Dpb->size); in init_lists_b_slice_mvc()
1320 MEM_CHECK(ret, currSlice->fs_listinterview0 && currSlice->fs_listinterview1); in init_lists_b_slice_mvc()
1321 list0idx = currSlice->listXsizeB[0]; in init_lists_b_slice_mvc()
1322 if (currSlice->structure == FRAME) { in init_lists_b_slice_mvc()
1323 FUN_CHECK(ret = append_interview_list(p_Vid->p_Dpb_layer[1], currSlice->structure, 0, in init_lists_b_slice_mvc()
1324 …currSlice->fs_listinterview0, &currSlice->listinterviewidx0, currPOC, curr_layer_id, anchor_pic_fl… in init_lists_b_slice_mvc()
1325 FUN_CHECK(ret = append_interview_list(p_Vid->p_Dpb_layer[1], currSlice->structure, 1, in init_lists_b_slice_mvc()
1326 …currSlice->fs_listinterview1, &currSlice->listinterviewidx1, currPOC, curr_layer_id, anchor_pic_fl… in init_lists_b_slice_mvc()
1328 for (i = 0; i < (RK_U32)currSlice->listinterviewidx0; i++) { in init_lists_b_slice_mvc()
1329 currSlice->listB[0][list0idx++] = currSlice->fs_listinterview0[i]->frame; in init_lists_b_slice_mvc()
1331 currSlice->listXsizeB[0] = (RK_U8)list0idx; in init_lists_b_slice_mvc()
1332 list0idx = currSlice->listXsizeB[1]; in init_lists_b_slice_mvc()
1333 for (i = 0; i < (RK_U32)currSlice->listinterviewidx1; i++) { in init_lists_b_slice_mvc()
1334 currSlice->listB[1][list0idx++] = currSlice->fs_listinterview1[i]->frame; in init_lists_b_slice_mvc()
1336 currSlice->listXsizeB[1] = (RK_U8)list0idx; in init_lists_b_slice_mvc()
1338 FUN_CHECK(ret = append_interview_list(p_Vid->p_Dpb_layer[1], currSlice->structure, 0, in init_lists_b_slice_mvc()
1339 …currSlice->fs_listinterview0, &currSlice->listinterviewidx0, currPOC, curr_layer_id, anchor_pic_fl… in init_lists_b_slice_mvc()
1340 … gen_pic_list_from_frame_interview_list(currSlice->structure, currSlice->fs_listinterview0, in init_lists_b_slice_mvc()
1341 … currSlice->listinterviewidx0, currSlice->listB[0], &currSlice->listXsizeB[0]); in init_lists_b_slice_mvc()
1342 FUN_CHECK(ret = append_interview_list(p_Vid->p_Dpb_layer[1], currSlice->structure, 1, in init_lists_b_slice_mvc()
1343 …currSlice->fs_listinterview1, &currSlice->listinterviewidx1, currPOC, curr_layer_id, anchor_pic_fl… in init_lists_b_slice_mvc()
1344 … gen_pic_list_from_frame_interview_list(currSlice->structure, currSlice->fs_listinterview1, in init_lists_b_slice_mvc()
1345 … currSlice->listinterviewidx1, currSlice->listB[1], &currSlice->listXsizeB[1]); in init_lists_b_slice_mvc()
1349 for (i = currSlice->listXsizeB[0]; i < (MAX_LIST_SIZE); i++) { in init_lists_b_slice_mvc()
1350 currSlice->listB[0][i] = p_Vid->no_ref_pic; in init_lists_b_slice_mvc()
1352 for (i = currSlice->listXsizeB[1]; i < (MAX_LIST_SIZE); i++) { in init_lists_b_slice_mvc()
1353 currSlice->listB[1][i] = p_Vid->no_ref_pic; in init_lists_b_slice_mvc()
1355 MPP_FREE(currSlice->fs_listinterview0); in init_lists_b_slice_mvc()
1356 MPP_FREE(currSlice->fs_listinterview1); in init_lists_b_slice_mvc()
1363 MPP_FREE(currSlice->fs_listinterview0); in init_lists_b_slice_mvc()
1364 MPP_FREE(currSlice->fs_listinterview1); in init_lists_b_slice_mvc()
1369 static RK_U32 get_short_term_pic(H264_SLICE_t *currSlice, RK_S32 picNum, H264_StorePic_t **find_pic) in get_short_term_pic() argument
1374 H264_DpbBuf_t *p_Dpb = currSlice->p_Dpb; in get_short_term_pic()
1377 if (currSlice->structure == FRAME) { in get_short_term_pic()
1413 static H264_StorePic_t *get_long_term_pic(H264_SLICE_t *currSlice, RK_S32 LongtermPicNum) in get_long_term_pic() argument
1416 H264_DpbBuf_t *p_Dpb = currSlice->p_Dpb; in get_long_term_pic()
1419 if (currSlice->structure == FRAME) { in get_long_term_pic()
1437 static RK_U32 check_ref_pic_list(H264_SLICE_t *currSlice, RK_S32 cur_list) in check_ref_pic_list() argument
1444 RK_S32 *modification_of_pic_nums_idc = currSlice->modification_of_pic_nums_idc[cur_list]; in check_ref_pic_list()
1445 RK_S32 *abs_diff_pic_num_minus1 = currSlice->abs_diff_pic_num_minus1[cur_list]; in check_ref_pic_list()
1446 RK_S32 *long_term_pic_idx = currSlice->long_term_pic_idx[cur_list]; in check_ref_pic_list()
1447 H264dVideoCtx_t *p_Vid = currSlice->p_Vid; in check_ref_pic_list()
1449 if (currSlice->structure == FRAME) { in check_ref_pic_list()
1451 currPicNum = currSlice->frame_num; in check_ref_pic_list()
1454 currPicNum = 2 * currSlice->frame_num + 1; in check_ref_pic_list()
1477 if (get_short_term_pic(currSlice, picNumLX, &tmp)) { //!< find short reference in check_ref_pic_list()
1489 tmp = get_long_term_pic(currSlice, long_term_pic_idx[i]); in check_ref_pic_list()
1525 static void check_refer_picture_lists(H264_SLICE_t *currSlice) in check_refer_picture_lists() argument
1527 H264_DecCtx_t *p_Dec = currSlice->p_Dec; in check_refer_picture_lists()
1530 if (H264_I_SLICE == currSlice->slice_type) { in check_refer_picture_lists()
1536 if ((currSlice->slice_type % 5) != H264_I_SLICE in check_refer_picture_lists()
1537 && (currSlice->slice_type % 5) != H264_SI_SLICE) { in check_refer_picture_lists()
1538 if (currSlice->ref_pic_list_reordering_flag[LIST_0]) { in check_refer_picture_lists()
1539 p_err->cur_err_flag |= check_ref_pic_list(currSlice, 0) ? 1 : 0; in check_refer_picture_lists()
1541 RK_S32 pps_refs = currSlice->active_pps->num_ref_idx_l0_default_active_minus1 + 1; in check_refer_picture_lists()
1542 RK_S32 over_flag = currSlice->num_ref_idx_override_flag; in check_refer_picture_lists()
1543 RK_S32 active_l0 = over_flag ? currSlice->num_ref_idx_active[LIST_0] : pps_refs; in check_refer_picture_lists()
1544 if (currSlice->slice_type % 5 == H264_B_SLICE) in check_refer_picture_lists()
1552 if (currSlice->slice_type % 5 == H264_B_SLICE) { in check_refer_picture_lists()
1553 if (currSlice->ref_pic_list_reordering_flag[LIST_1]) { in check_refer_picture_lists()
1554 p_err->cur_err_flag |= check_ref_pic_list(currSlice, 1) ? 1 : 0; in check_refer_picture_lists()
1556 RK_S32 pps_refs = currSlice->active_pps->num_ref_idx_l1_default_active_minus1 + 1; in check_refer_picture_lists()
1557 RK_S32 over_flag = currSlice->num_ref_idx_override_flag; in check_refer_picture_lists()
1558 RK_S32 active_l1 = over_flag ? currSlice->num_ref_idx_active[LIST_1] : pps_refs; in check_refer_picture_lists()
1585 static MPP_RET prepare_init_dpb_info(H264_SLICE_t *currSlice) in prepare_init_dpb_info() argument
1588 H264_DpbBuf_t *p_Dpb = currSlice->p_Dpb; in prepare_init_dpb_info()
1589 H264_DecCtx_t *p_Dec = currSlice->p_Dec; in prepare_init_dpb_info()
1695 if (currSlice->structure == FRAME && p_Dpb->fs_ilref[j]->is_used == 3) { in prepare_init_dpb_info()
1710 } else if (currSlice->structure != FRAME && p_Dpb->fs_ilref[j]->is_used) { in prepare_init_dpb_info()
1712 if (p_Dpb->fs_ilref[j]->inter_view_flag[currSlice->structure == BOTTOM_FIELD] == 0) in prepare_init_dpb_info()
1774 static MPP_RET prepare_init_ref_info(H264_SLICE_t *currSlice) in prepare_init_ref_info() argument
1782 H264_DecCtx_t *p_Dec = currSlice->p_Dec; in prepare_init_ref_info()
1788 if (currSlice->idr_flag && (currSlice->layer_id == 0)) { // idr_flag==1 && layer_id==0 in prepare_init_ref_info()
1794 if (j >= currSlice->listXsizeP[0]) in prepare_init_ref_info()
1797 layer_id = currSlice->listP[0][j]->layer_id; in prepare_init_ref_info()
1798 …mmco5_flag = (currSlice->listP[0][j]->is_mmco_5 && currSlice->layer_id && !currSlice->listP[0][j]-… in prepare_init_ref_info()
1799 if (currSlice->listP[0][j]->structure == FRAME) { in prepare_init_ref_info()
1800 poc = mmco5_flag ? currSlice->listP[0][j]->poc_mmco5 : currSlice->listP[0][j]->poc; in prepare_init_ref_info()
1801 } else if (currSlice->listP[0][j]->structure == TOP_FIELD) { in prepare_init_ref_info()
1802 … poc = mmco5_flag ? currSlice->listP[0][j]->top_poc_mmco5 : currSlice->listP[0][j]->top_poc; in prepare_init_ref_info()
1804 … poc = mmco5_flag ? currSlice->listP[0][j]->bot_poc_mmco5 : currSlice->listP[0][j]->bottom_poc; in prepare_init_ref_info()
1812 if (currSlice->structure == FRAME && refpic) { in prepare_init_ref_info()
1836 if (currSlice->listP[0][j]->structure == BOTTOM_FIELD) { in prepare_init_ref_info()
1851 if (j >= currSlice->listXsizeB[k]) in prepare_init_ref_info()
1855 layer_id = currSlice->listB[k][j]->layer_id; in prepare_init_ref_info()
1856 …mmco5_flag = (currSlice->listB[k][j]->is_mmco_5 && currSlice->layer_id && !currSlice->listB[k][j]-… in prepare_init_ref_info()
1857 if (currSlice->listB[k][j]->structure == FRAME) { in prepare_init_ref_info()
1858 poc = mmco5_flag ? currSlice->listB[k][j]->poc_mmco5 : currSlice->listB[k][j]->poc; in prepare_init_ref_info()
1859 } else if (currSlice->listB[k][j]->structure == TOP_FIELD) { in prepare_init_ref_info()
1860 … poc = mmco5_flag ? currSlice->listB[k][j]->top_poc_mmco5 : currSlice->listB[k][j]->top_poc; in prepare_init_ref_info()
1862 … poc = mmco5_flag ? currSlice->listB[k][j]->bot_poc_mmco5 : currSlice->listB[k][j]->bottom_poc; in prepare_init_ref_info()
1873 if (currSlice->structure == FRAME && refpic) { in prepare_init_ref_info()
1883 … if (poc == TOP_POC && (layer_id == voidx || (layer_id != voidx && !currSlice->bottom_field_flag))) in prepare_init_ref_info()
1886 … if (poc == BOT_POC && (layer_id == voidx || (layer_id != voidx && currSlice->bottom_field_flag))) in prepare_init_ref_info()
1899 if (currSlice->listB[k][j]->structure == BOTTOM_FIELD) { in prepare_init_ref_info()
1912 if ((currSlice->slice_type % 5) != H264_I_SLICE in prepare_init_ref_info()
1913 && (currSlice->slice_type % 5) != H264_SI_SLICE) { in prepare_init_ref_info()
1919 if (currSlice->slice_type % 5 == H264_B_SLICE) { in prepare_init_ref_info()
1931 static MPP_RET check_refer_dpb_buf_slots(H264_SLICE_t *currSlice) in check_refer_dpb_buf_slots() argument
1939 p_Dec = currSlice->p_Dec; in check_refer_dpb_buf_slots()
2048 MPP_RET init_picture(H264_SLICE_t *currSlice) in init_picture() argument
2051 H264_DecCtx_t *p_Dec = currSlice->p_Vid->p_Dec; in init_picture()
2052 H264dVideoCtx_t *p_Vid = currSlice->p_Vid; in init_picture()
2057 p_Vid->recovery.first_frm_id == currSlice->frame_num) { in init_picture()
2058 p_err->i_slice_no += (!currSlice->layer_id) ? 1 : 0; in init_picture()
2060 … p_err->i_slice_no += ((!currSlice->layer_id) && (H264_I_SLICE == currSlice->slice_type)) ? 1 : 0; in init_picture()
2068 FUN_CHECK(ret = alloc_decpic(currSlice)); in init_picture()
2069 …if (((p_err->i_slice_no < 2) && (!currSlice->layer_id) && (H264_I_SLICE == currSlice->slice_type))… in init_picture()
2070 currSlice->idr_flag) { in init_picture()
2075 if (currSlice->layer_id && !currSlice->svc_extension_flag && !currSlice->mvcExt.non_idr_flag) { in init_picture()
2076 ASSERT(currSlice->layer_id == 1); in init_picture()
2077 … FUN_CHECK(ret = idr_memory_management(p_Vid->p_Dpb_layer[currSlice->layer_id], p_Vid->dec_pic)); in init_picture()
2086 if (currSlice->layer_id == 0) { in init_picture()
2093 update_ref_list(p_Vid->p_Dpb_layer[currSlice->layer_id]); in init_picture()
2094 update_ltref_list(p_Vid->p_Dpb_layer[currSlice->layer_id]); in init_picture()
2095 update_pic_num(currSlice); in init_picture()
2097 if (!currSlice->idr_flag || currSlice->layer_id) { in init_picture()
2098 FUN_CHECK(ret = init_lists_p_slice_mvc(currSlice)); in init_picture()
2099 FUN_CHECK(ret = init_lists_b_slice_mvc(currSlice)); in init_picture()
2101 prepare_init_dpb_info(currSlice); in init_picture()
2102 prepare_init_ref_info(currSlice); in init_picture()
2104 FUN_CHECK(ret = check_refer_dpb_buf_slots(currSlice)); in init_picture()
2105 check_refer_picture_lists(currSlice); in init_picture()
2109 fill_picparams(currSlice->p_Vid, &dxva_ctx->pp); in init_picture()
2111 prepare_init_scanlist(currSlice); in init_picture()
2112 fill_scanlist(currSlice->p_Vid, &dxva_ctx->qm); in init_picture()