Lines Matching refs:pSlice

35 static MPP_RET decode_poc(H264dVideoCtx_t *p_Vid, H264_SLICE_t *pSlice)  in decode_poc()  argument
47 if (pSlice->idr_flag) { 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()
72 if (pSlice->field_pic_flag == 0) { in decode_poc()
74 pSlice->toppoc = pSlice->PicOrderCntMsb + pSlice->pic_order_cnt_lsb; in decode_poc()
75 pSlice->bottompoc = pSlice->toppoc + pSlice->delta_pic_order_cnt_bottom; in decode_poc()
76pSlice->ThisPOC = pSlice->framepoc = (pSlice->toppoc < pSlice->bottompoc) ? pSlice->toppoc : pSlic… in decode_poc()
77 } else if (pSlice->bottom_field_flag == 0) { in decode_poc()
79 pSlice->ThisPOC = pSlice->toppoc = pSlice->PicOrderCntMsb + pSlice->pic_order_cnt_lsb; in decode_poc()
82pSlice->ThisPOC = pSlice->bottompoc = pSlice->PicOrderCntMsb + pSlice->pic_order_cnt_lsb; in decode_poc()
84 pSlice->framepoc = pSlice->ThisPOC; in decode_poc()
85 p_Vid->ThisPOC = pSlice->ThisPOC; in decode_poc()
87 p_Vid->PreviousFrameNum = pSlice->frame_num; in decode_poc()
88 if (pSlice->nal_reference_idc) { in decode_poc()
89 p_Vid->PrevPicOrderCntLsb = pSlice->pic_order_cnt_lsb; in decode_poc()
90 p_Vid->PrevPicOrderCntMsb = pSlice->PicOrderCntMsb; in decode_poc()
96 if (pSlice->idr_flag) { in decode_poc()
98 VAL_CHECK(ret, 0 == pSlice->frame_num); in decode_poc()
104 if (pSlice->frame_num < (RK_S32)p_Vid->PreviousFrameNum) { in decode_poc()
113 pSlice->AbsFrameNum = p_Vid->FrameNumOffset + pSlice->frame_num; in decode_poc()
115 pSlice->AbsFrameNum = 0; in decode_poc()
117 if ((!pSlice->nal_reference_idc) && pSlice->AbsFrameNum > 0) { in decode_poc()
118 pSlice->AbsFrameNum--; in decode_poc()
127 if (pSlice->AbsFrameNum) { 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()
136 if (!pSlice->nal_reference_idc) { in decode_poc()
139 if (pSlice->field_pic_flag == 0) { in decode_poc()
141 pSlice->toppoc = p_Vid->ExpectedPicOrderCnt + pSlice->delta_pic_order_cnt[0]; in decode_poc()
142pSlice->bottompoc = pSlice->toppoc + active_sps->offset_for_top_to_bottom_field + pSlice->delta_pi… in decode_poc()
143pSlice->ThisPOC = pSlice->framepoc = (pSlice->toppoc < pSlice->bottompoc) ? pSlice->toppoc : pSlic… in decode_poc()
144 } else if (pSlice->bottom_field_flag == 0) { in decode_poc()
146pSlice->ThisPOC = pSlice->toppoc = p_Vid->ExpectedPicOrderCnt + pSlice->delta_pic_order_cnt[0]; in decode_poc()
149pSlice->ThisPOC = pSlice->bottompoc = p_Vid->ExpectedPicOrderCnt + active_sps->offset_for_top_to_b… in decode_poc()
151 pSlice->framepoc = pSlice->ThisPOC; in decode_poc()
152 p_Vid->PreviousFrameNum = pSlice->frame_num; in decode_poc()
158 if (pSlice->idr_flag) { // IDR picture in decode_poc()
160 pSlice->ThisPOC = pSlice->framepoc = pSlice->toppoc = pSlice->bottompoc = 0; in decode_poc()
161 VAL_CHECK(ret, 0 == pSlice->frame_num); in decode_poc()
167 if (pSlice->frame_num < (RK_S32)p_Vid->PreviousFrameNum) { in decode_poc()
172 pSlice->AbsFrameNum = p_Vid->FrameNumOffset + pSlice->frame_num; in decode_poc()
173 if (!pSlice->nal_reference_idc) { in decode_poc()
174 pSlice->ThisPOC = (2 * pSlice->AbsFrameNum - 1); in decode_poc()
176 pSlice->ThisPOC = (2 * pSlice->AbsFrameNum); in decode_poc()
178 if (pSlice->field_pic_flag == 0) { in decode_poc()
179 pSlice->toppoc = pSlice->bottompoc = pSlice->framepoc = pSlice->ThisPOC; in decode_poc()
180 } else if (pSlice->bottom_field_flag == 0) { in decode_poc()
181 pSlice->toppoc = pSlice->framepoc = pSlice->ThisPOC; in decode_poc()
183 pSlice->bottompoc = pSlice->framepoc = pSlice->ThisPOC; in decode_poc()
186 p_Vid->PreviousFrameNum = pSlice->frame_num; in decode_poc()