Lines Matching refs:p_Vid
35 static MPP_RET decode_poc(H264dVideoCtx_t *p_Vid, H264_SLICE_t *pSlice) in decode_poc() argument
40 H264_SPS_t *active_sps = p_Vid->active_sps; in decode_poc()
48 p_Vid->PrevPicOrderCntMsb = 0; in decode_poc()
49 p_Vid->PrevPicOrderCntLsb = 0; in decode_poc()
51 if (p_Vid->last_has_mmco_5) { in decode_poc()
52 if (p_Vid->last_pic_bottom_field) { in decode_poc()
53 p_Vid->PrevPicOrderCntMsb = 0; in decode_poc()
54 p_Vid->PrevPicOrderCntLsb = 0; in decode_poc()
56 p_Vid->PrevPicOrderCntMsb = 0; in decode_poc()
57 p_Vid->PrevPicOrderCntLsb = pSlice->toppoc; in decode_poc()
62 if (pSlice->pic_order_cnt_lsb < p_Vid->PrevPicOrderCntLsb && in decode_poc()
63 … (p_Vid->PrevPicOrderCntLsb - pSlice->pic_order_cnt_lsb) >= (RK_S32)(MaxPicOrderCntLsb / 2)) { in decode_poc()
64 pSlice->PicOrderCntMsb = p_Vid->PrevPicOrderCntMsb + MaxPicOrderCntLsb; in decode_poc()
65 } else if (pSlice->pic_order_cnt_lsb > p_Vid->PrevPicOrderCntLsb && in decode_poc()
66 … (pSlice->pic_order_cnt_lsb - p_Vid->PrevPicOrderCntLsb) > (RK_S32)(MaxPicOrderCntLsb / 2)) { in decode_poc()
67 pSlice->PicOrderCntMsb = p_Vid->PrevPicOrderCntMsb - MaxPicOrderCntLsb; in decode_poc()
69 pSlice->PicOrderCntMsb = p_Vid->PrevPicOrderCntMsb; in decode_poc()
85 p_Vid->ThisPOC = pSlice->ThisPOC; in decode_poc()
87 p_Vid->PreviousFrameNum = pSlice->frame_num; in decode_poc()
89 p_Vid->PrevPicOrderCntLsb = pSlice->pic_order_cnt_lsb; in decode_poc()
90 p_Vid->PrevPicOrderCntMsb = pSlice->PicOrderCntMsb; in decode_poc()
97 p_Vid->FrameNumOffset = 0; // first pix of IDRGOP, in decode_poc()
100 if (p_Vid->last_has_mmco_5) { in decode_poc()
101 p_Vid->PreviousFrameNumOffset = 0; in decode_poc()
102 p_Vid->PreviousFrameNum = 0; in decode_poc()
104 if (pSlice->frame_num < (RK_S32)p_Vid->PreviousFrameNum) { in decode_poc()
106 p_Vid->FrameNumOffset = p_Vid->PreviousFrameNumOffset + p_Vid->max_frame_num; in decode_poc()
108 p_Vid->FrameNumOffset = p_Vid->PreviousFrameNumOffset; in decode_poc()
113 pSlice->AbsFrameNum = p_Vid->FrameNumOffset + pSlice->frame_num; in decode_poc()
121 p_Vid->ExpectedDeltaPerPicOrderCntCycle = 0; in decode_poc()
124 p_Vid->ExpectedDeltaPerPicOrderCntCycle += active_sps->offset_for_ref_frame[i]; in decode_poc()
128 …p_Vid->PicOrderCntCycleCnt = (pSlice->AbsFrameNum - 1) / active_sps->num_ref_frames_in_pic_order_c… in decode_poc()
129 …p_Vid->FrameNumInPicOrderCntCycle = (pSlice->AbsFrameNum - 1) % active_sps->num_ref_frames_in_pic_… in decode_poc()
130 … p_Vid->ExpectedPicOrderCnt = p_Vid->PicOrderCntCycleCnt * p_Vid->ExpectedDeltaPerPicOrderCntCycle; in decode_poc()
131 for (i = 0; i <= (RK_S32)p_Vid->FrameNumInPicOrderCntCycle; i++) in decode_poc()
132 p_Vid->ExpectedPicOrderCnt += active_sps->offset_for_ref_frame[i]; in decode_poc()
134 p_Vid->ExpectedPicOrderCnt = 0; in decode_poc()
137 p_Vid->ExpectedPicOrderCnt += active_sps->offset_for_non_ref_pic; in decode_poc()
141 pSlice->toppoc = p_Vid->ExpectedPicOrderCnt + pSlice->delta_pic_order_cnt[0]; in decode_poc()
146 … pSlice->ThisPOC = pSlice->toppoc = p_Vid->ExpectedPicOrderCnt + pSlice->delta_pic_order_cnt[0]; in decode_poc()
149 …pSlice->ThisPOC = pSlice->bottompoc = p_Vid->ExpectedPicOrderCnt + active_sps->offset_for_top_to_b… in decode_poc()
152 p_Vid->PreviousFrameNum = pSlice->frame_num; in decode_poc()
153 p_Vid->PreviousFrameNumOffset = p_Vid->FrameNumOffset; in decode_poc()
159 p_Vid->FrameNumOffset = 0; // first pix of IDRGOP, in decode_poc()
163 if (p_Vid->last_has_mmco_5) { in decode_poc()
164 p_Vid->PreviousFrameNum = 0; in decode_poc()
165 p_Vid->PreviousFrameNumOffset = 0; in decode_poc()
167 if (pSlice->frame_num < (RK_S32)p_Vid->PreviousFrameNum) { in decode_poc()
168 p_Vid->FrameNumOffset = p_Vid->PreviousFrameNumOffset + p_Vid->max_frame_num; in decode_poc()
170 p_Vid->FrameNumOffset = p_Vid->PreviousFrameNumOffset; in decode_poc()
172 pSlice->AbsFrameNum = p_Vid->FrameNumOffset + pSlice->frame_num; in decode_poc()
186 p_Vid->PreviousFrameNum = pSlice->frame_num; in decode_poc()
187 p_Vid->PreviousFrameNumOffset = p_Vid->FrameNumOffset; in decode_poc()
202 H264dVideoCtx_t *p_Vid = p_Dpb->p_Vid; in store_proc_picture_in_dpb() local
204 H264_DecCtx_t *p_Dec = p_Dpb->p_Vid->p_Dec; in store_proc_picture_in_dpb()
233 FUN_CHECK(ret = insert_picture_in_dpb(p_Vid, fs, p, 0)); in store_proc_picture_in_dpb()
255 static H264_StorePic_t* clone_storable_picture(H264dVideoCtx_t *p_Vid, H264_StorePic_t *p_pic) in clone_storable_picture() argument
258 H264_StorePic_t *p_stored_pic = alloc_storable_picture(p_Vid, p_Vid->structure); in clone_storable_picture()
323 H264dVideoCtx_t *p_Vid = currSlice->p_Vid; in init_mvc_picture() local
324 H264_DpbBuf_t *p_Dpb = p_Vid->p_Dpb_layer[0]; in init_mvc_picture()
371 p_clone = clone_storable_picture(p_Vid, p_pic); in init_mvc_picture()
391 static MPP_RET dpb_mark_malloc(H264dVideoCtx_t *p_Vid, H264_StorePic_t *dec_pic) in dpb_mark_malloc() argument
395 H264_DecCtx_t *p_Dec = p_Vid->p_Dec; in dpb_mark_malloc()
396 H264_DpbMark_t *p_mark = p_Vid->p_Dec->dpb_mark; in dpb_mark_malloc()
408 mpp_buf_slot_get_unused(p_Vid->p_Dec->frame_slots, &p_mark[idx].slot_idx); in dpb_mark_malloc()
423 if ((H264_CHROMA_400 == p_Vid->yuv_format) && (8 == p_Vid->bit_depth_luma)) { in dpb_mark_malloc()
425 } else if ((H264_CHROMA_420 == p_Vid->yuv_format) && (8 == p_Vid->bit_depth_luma)) { in dpb_mark_malloc()
427 } else if ((H264_CHROMA_420 == p_Vid->yuv_format) && (10 == p_Vid->bit_depth_luma)) { in dpb_mark_malloc()
429 } else if ((H264_CHROMA_422 == p_Vid->yuv_format) && (8 == p_Vid->bit_depth_luma)) { in dpb_mark_malloc()
432 } else if ((H264_CHROMA_422 == p_Vid->yuv_format) && (10 == p_Vid->bit_depth_luma)) { in dpb_mark_malloc()
443 if (!p_Vid->frame_mbs_only_flag && p_Vid->bit_depth_luma < 10) in dpb_mark_malloc()
450 p_Vid->width <= 1920 && p_Vid->height <= 1088 && p_Vid->bit_depth_luma == 8) in dpb_mark_malloc()
466 hor_stride = MPP_ALIGN(p_Vid->width * p_Vid->bit_depth_luma, 8) / 8; in dpb_mark_malloc()
467 ver_stride = p_Vid->height; in dpb_mark_malloc()
473 impl->width = p_Vid->width_after_crop; in dpb_mark_malloc()
474 impl->height = p_Vid->height_after_crop; in dpb_mark_malloc()
475 impl->pts = p_Vid->p_Cur->last_pts; in dpb_mark_malloc()
476 impl->dts = p_Vid->p_Cur->last_dts; in dpb_mark_malloc()
496 p_Vid->width <= 1920 && p_Vid->height <= 1088 && p_Vid->bit_depth_luma == 8) in dpb_mark_malloc()
518 if (p_Vid->p_Cur->sei && in dpb_mark_malloc()
519 ((p_Vid->active_sps->vui_parameters_present_flag && in dpb_mark_malloc()
520 p_Vid->active_sps->vui_seq_parameters.pic_struct_present_flag && in dpb_mark_malloc()
521 p_Vid->p_Cur->sei->type == H264_SEI_PIC_TIMING) || in dpb_mark_malloc()
522 p_Vid->p_Cur->sei->pic_timing.pic_struct != 0)) { in dpb_mark_malloc()
523 if (p_Vid->p_Cur->sei->pic_timing.pic_struct == 3 || in dpb_mark_malloc()
524 p_Vid->p_Cur->sei->pic_timing.pic_struct == 5) in dpb_mark_malloc()
526 if (p_Vid->p_Cur->sei->pic_timing.pic_struct == 4 || in dpb_mark_malloc()
527 p_Vid->p_Cur->sei->pic_timing.pic_struct == 6) in dpb_mark_malloc()
537 if (p_Vid->active_sps->vui_parameters_present_flag) { in dpb_mark_malloc()
538 H264_VUI_t *p = &p_Vid->active_sps->vui_seq_parameters; in dpb_mark_malloc()
558 if (p_Vid->p_Cur->hdr_dynamic && p_Vid->p_Cur->hdr_dynamic_meta) { in dpb_mark_malloc()
559 impl->hdr_dynamic_meta = p_Vid->p_Cur->hdr_dynamic_meta; in dpb_mark_malloc()
560 p_Vid->p_Cur->hdr_dynamic = 0; in dpb_mark_malloc()
576 p_Vid->active_dpb_mark[layer_id] = cur_mark; in dpb_mark_malloc()
578 cur_mark = p_Vid->active_dpb_mark[layer_id]; in dpb_mark_malloc()
592 p_Vid->g_framecnt, dec_pic->combine_flag, cur_mark->mark_idx, in dpb_mark_malloc()
596 p_Vid->p_Dec->in_task->output = cur_mark->slot_idx; in dpb_mark_malloc()
599 dec_pic->mem_mark = p_Vid->active_dpb_mark[layer_id]; in dpb_mark_malloc()
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()
635 currSlice->p_Vid->last_ref_frame_num = dec_pic->frame_num; in check_dpb_discontinuous()
644 H264dVideoCtx_t *p_Vid = currSlice->p_Vid; in alloc_decpic() local
645 H264_SPS_t *active_sps = p_Vid->active_sps; in alloc_decpic()
647 H264_DecCtx_t *p_Dec = p_Vid->p_Dec; 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()
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()
681 …if ((p_Vid->profile_idc == H264_PROFILE_MVC_HIGH) || (p_Vid->profile_idc == H264_PROFILE_STEREO_HI… in alloc_decpic()
695 dec_pic->slice_type = p_Vid->type; in alloc_decpic()
705 dec_pic->PicWidthInMbs = p_Vid->PicWidthInMbs; in alloc_decpic()
723 dec_pic->width = p_Vid->width; in alloc_decpic()
724 dec_pic->height = p_Vid->height; in alloc_decpic()
725 dec_pic->width_after_crop = p_Vid->width_after_crop; in alloc_decpic()
726 dec_pic->height_after_crop = p_Vid->height_after_crop; in alloc_decpic()
729 FUN_CHECK(ret = dpb_mark_malloc(p_Vid, dec_pic)); in alloc_decpic()
731 FUN_CHECK(ret = check_dpb_discontinuous(p_Vid->last_pic, dec_pic, currSlice)); in alloc_decpic()
735 p_Vid->dec_pic = dec_pic; in alloc_decpic()
739 mpp_mem_pool_put_f(p_Vid->pic_st, dec_pic); in alloc_decpic()
740 p_Vid->dec_pic = NULL; in alloc_decpic()
748 H264dVideoCtx_t *p_Vid = currSlice->p_Vid; in update_pic_num() local
750 H264_SPS_t *active_sps = p_Vid->active_sps; in update_pic_num()
964 H264dVideoCtx_t *p_Vid = p_Dpb->p_Vid; in append_interview_list() local
968 …num_ref_views = list_idx ? p_Vid->active_subsps->num_anchor_refs_l1[iVOIdx] : p_Vid->active_subsps… in append_interview_list()
969 …ref_view_id = list_idx ? p_Vid->active_subsps->anchor_ref_l1[iVOIdx] : p_Vid->active_subsps->ancho… in append_interview_list()
971 …num_ref_views = list_idx ? p_Vid->active_subsps->num_non_anchor_refs_l1[iVOIdx] : p_Vid->active_su… in append_interview_list()
972 …ref_view_id = list_idx ? p_Vid->active_subsps->non_anchor_ref_l1[iVOIdx] : p_Vid->active_subsps->n… in append_interview_list()
1093 H264dVideoCtx_t *p_Vid = currSlice->p_Vid; in init_lists_p_slice_mvc() local
1148 … if (currSlice->mvcExt.valid && p_Vid->active_mvc_sps_flag && currSlice->svc_extension_flag == 0) { 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()
1161 FUN_CHECK(ret = append_interview_list(p_Vid->p_Dpb_layer[1], currSlice->structure, 0, in init_lists_p_slice_mvc()
1169 currSlice->listP[0][i] = p_Vid->no_ref_pic; in init_lists_p_slice_mvc()
1172 currSlice->listP[1][i] = p_Vid->no_ref_pic; in init_lists_p_slice_mvc()
1197 H264dVideoCtx_t *p_Vid = currSlice->p_Vid; in init_lists_b_slice_mvc() local
1315 … if (currSlice->mvcExt.valid && p_Vid->active_mvc_sps_flag && currSlice->svc_extension_flag == 0) { 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()
1325 FUN_CHECK(ret = append_interview_list(p_Vid->p_Dpb_layer[1], currSlice->structure, 1, 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()
1342 FUN_CHECK(ret = append_interview_list(p_Vid->p_Dpb_layer[1], currSlice->structure, 1, in init_lists_b_slice_mvc()
1350 currSlice->listB[0][i] = p_Vid->no_ref_pic; in init_lists_b_slice_mvc()
1353 currSlice->listB[1][i] = p_Vid->no_ref_pic; in init_lists_b_slice_mvc()
1447 H264dVideoCtx_t *p_Vid = currSlice->p_Vid; in check_ref_pic_list() local
1450 maxPicNum = p_Vid->max_frame_num; in check_ref_pic_list()
1453 maxPicNum = 2 * p_Vid->max_frame_num; in check_ref_pic_list()
1481 …mpp_buf_slot_get_prop(p_Vid->p_Dec->frame_slots, tmp->mem_mark->slot_idx, SLOT_FRAME_PTR, &mframe); in check_ref_pic_list()
1513 && (!p_Dec->p_Vid->recovery.valid_flag in check_ref_dbp_err()
1514 … || p_Dec->dpb_info[pref[i].dpb_idx].frame_num < p_Dec->p_Vid->recovery.first_frm_valid in check_ref_dbp_err()
1515 … || p_Dec->dpb_info[pref[i].dpb_idx].frame_num >= p_Dec->p_Vid->recovery.recovery_pic_id)) { in check_ref_dbp_err()
1911 RK_S32 cur_poc = p_Dec->p_Vid->dec_pic->poc; in prepare_init_ref_info()
1980 if (dpb_used > MPP_MIN(p_Dec->p_Vid->dpb_size[0] + p_Dec->p_Vid->dpb_size[1], 16) + 2) { in check_refer_dpb_buf_slots()
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() local
2056 if (!p_err->i_slice_no && p_Vid->recovery.valid_flag && p_Vid->recovery.first_frm_valid && in init_picture()
2057 p_Vid->recovery.first_frm_id == currSlice->frame_num) { in init_picture()
2071 p_err->first_iframe_poc = p_Vid->dec_pic->poc; //!< recoder first i frame poc 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()
2081 if (p_Vid->last_pic != NULL && p_Vid->dec_pic->poc != 0) { in init_picture()
2082 if (p_Vid->last_pic->frame_num >= p_Vid->dec_pic->frame_num in init_picture()
2083 && p_Vid->last_pic->poc >= p_Vid->dec_pic->poc in init_picture()
2084 && p_Vid->dec_pic->slice_type == H264_I_SLICE in init_picture()
2085 && p_Vid->dec_pic->structure == 3) { in init_picture()
2087 FUN_CHECK(ret = flush_dpb(p_Vid->p_Dpb_layer[0], 1)); in init_picture()
2089 FUN_CHECK(ret = flush_dpb(p_Vid->p_Dpb_layer[1], 2)); 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()
2109 fill_picparams(currSlice->p_Vid, &dxva_ctx->pp); in init_picture()
2112 fill_scanlist(currSlice->p_Vid, &dxva_ctx->qm); in init_picture()
2132 p_Dec->p_Vid->exit_picture_flag = 1; in update_dpb()
2133 p_Dec->p_Vid->have_outpicture_flag = 1; in update_dpb()
2134 ret = exit_picture(p_Dec->p_Vid, &p_Dec->p_Vid->dec_pic); in update_dpb()
2136 p_Dec->p_Vid->iNumOfSlicesDecoded = 0; in update_dpb()
2137 p_Dec->p_Vid->exit_picture_flag = 0; in update_dpb()