Lines Matching refs:fs
155 static void unmark_for_reference(H264_DecCtx_t *p_Dec, H264_FrameStore_t* fs) in unmark_for_reference() argument
158 if (fs->is_used & 1) { in unmark_for_reference()
159 if (fs->top_field) { in unmark_for_reference()
160 fs->top_field->used_for_reference = 0; in unmark_for_reference()
161 cur_pic = fs->top_field; in unmark_for_reference()
164 if (fs->is_used & 2) { in unmark_for_reference()
165 if (fs->bottom_field) { in unmark_for_reference()
166 fs->bottom_field->used_for_reference = 0; in unmark_for_reference()
167 cur_pic = fs->bottom_field; in unmark_for_reference()
170 if (fs->is_used == 3) { in unmark_for_reference()
171 if (fs->top_field && fs->bottom_field) { in unmark_for_reference()
172 fs->top_field->used_for_reference = 0; in unmark_for_reference()
173 fs->bottom_field->used_for_reference = 0; in unmark_for_reference()
175 fs->frame->used_for_reference = 0; in unmark_for_reference()
176 cur_pic = fs->frame; in unmark_for_reference()
178 fs->is_reference = 0; in unmark_for_reference()
183 static RK_U32 is_short_term_reference(H264_FrameStore_t* fs) in is_short_term_reference() argument
185 if (fs->is_used == 3) { // frame in is_short_term_reference()
186 if ((fs->frame->used_for_reference) && (!fs->frame->is_long_term)) { in is_short_term_reference()
191 if (fs->is_used & 1) { // top field in is_short_term_reference()
192 if (fs->top_field) { in is_short_term_reference()
193 if ((fs->top_field->used_for_reference) && (!fs->top_field->is_long_term)) { in is_short_term_reference()
199 if (fs->is_used & 2) { // bottom field in is_short_term_reference()
200 if (fs->bottom_field) { in is_short_term_reference()
201 if ((fs->bottom_field->used_for_reference) && (!fs->bottom_field->is_long_term)) { in is_short_term_reference()
209 static RK_U32 is_long_term_reference(H264_FrameStore_t* fs) in is_long_term_reference() argument
212 if (fs->is_used == 3) { // frame in is_long_term_reference()
213 if ((fs->frame->used_for_reference) && (fs->frame->is_long_term)) { in is_long_term_reference()
218 if (fs->is_used & 1) { // top field in is_long_term_reference()
219 if (fs->top_field) { in is_long_term_reference()
220 if ((fs->top_field->used_for_reference) && (fs->top_field->is_long_term)) { in is_long_term_reference()
226 if (fs->is_used & 2) { // bottom field in is_long_term_reference()
227 if (fs->bottom_field) { in is_long_term_reference()
228 if ((fs->bottom_field->used_for_reference) && (fs->bottom_field->is_long_term)) { in is_long_term_reference()
236 static void unmark_for_long_term_reference(H264_FrameStore_t* fs) in unmark_for_long_term_reference() argument
238 if (fs->is_used & 1) { in unmark_for_long_term_reference()
239 if (fs->top_field) { in unmark_for_long_term_reference()
240 fs->top_field->used_for_reference = 0; in unmark_for_long_term_reference()
241 fs->top_field->is_long_term = 0; in unmark_for_long_term_reference()
244 if (fs->is_used & 2) { in unmark_for_long_term_reference()
245 if (fs->bottom_field) { in unmark_for_long_term_reference()
246 fs->bottom_field->used_for_reference = 0; in unmark_for_long_term_reference()
247 fs->bottom_field->is_long_term = 0; in unmark_for_long_term_reference()
250 if (fs->is_used == 3) { in unmark_for_long_term_reference()
251 if (fs->top_field && fs->bottom_field) { in unmark_for_long_term_reference()
252 fs->top_field->used_for_reference = 0; in unmark_for_long_term_reference()
253 fs->top_field->is_long_term = 0; in unmark_for_long_term_reference()
254 fs->bottom_field->used_for_reference = 0; in unmark_for_long_term_reference()
255 fs->bottom_field->is_long_term = 0; in unmark_for_long_term_reference()
257 fs->frame->used_for_reference = 0; in unmark_for_long_term_reference()
258 fs->frame->is_long_term = 0; in unmark_for_long_term_reference()
261 fs->is_reference = 0; in unmark_for_long_term_reference()
262 fs->is_long_term = 0; in unmark_for_long_term_reference()
579 if (p_Dpb->fs[i]->is_reference && (!(p_Dpb->fs[i]->is_long_term))) { in sliding_window_memory_management()
580 unmark_for_reference(p_Dpb->p_Vid->p_Dec, p_Dpb->fs[i]); in sliding_window_memory_management()
597 static RK_U32 is_used_for_reference(H264_FrameStore_t* fs) in is_used_for_reference() argument
601 if (!fs) { in is_used_for_reference()
604 if (fs->is_reference) { in is_used_for_reference()
608 if (fs->is_used == 3) { // frame in is_used_for_reference()
609 if (fs->frame->used_for_reference) { in is_used_for_reference()
614 if (fs->is_used & 1) { // top field in is_used_for_reference()
615 if (fs->top_field) { in is_used_for_reference()
616 if (fs->top_field->used_for_reference) { in is_used_for_reference()
622 if (fs->is_used & 2) { // bottom field in is_used_for_reference()
623 if (fs->bottom_field) { in is_used_for_reference()
624 if (fs->bottom_field->used_for_reference) { in is_used_for_reference()
654 H264_FrameStore_t* fs = NULL; in remove_frame_from_dpb() local
658 fs = p_Dpb->fs[pos]; in remove_frame_from_dpb()
659 INP_CHECK(ret, !fs); in remove_frame_from_dpb()
664 switch (fs->is_used) { in remove_frame_from_dpb()
666 if (fs->frame) free_storable_picture(p_Dec, fs->frame); in remove_frame_from_dpb()
667 if (fs->top_field) free_storable_picture(p_Dec, fs->top_field); in remove_frame_from_dpb()
668 if (fs->bottom_field) free_storable_picture(p_Dec, fs->bottom_field); in remove_frame_from_dpb()
669 fs->frame = NULL; in remove_frame_from_dpb()
670 fs->top_field = NULL; in remove_frame_from_dpb()
671 fs->bottom_field = NULL; in remove_frame_from_dpb()
674 if (fs->bottom_field) free_storable_picture(p_Dec, fs->bottom_field); in remove_frame_from_dpb()
675 fs->bottom_field = NULL; in remove_frame_from_dpb()
678 if (fs->top_field) free_storable_picture(p_Dec, fs->top_field); in remove_frame_from_dpb()
679 fs->top_field = NULL; in remove_frame_from_dpb()
688 fs->is_used = 0; in remove_frame_from_dpb()
689 fs->is_long_term = 0; in remove_frame_from_dpb()
690 fs->is_reference = 0; in remove_frame_from_dpb()
691 fs->is_orig_reference = 0; in remove_frame_from_dpb()
694 tmp = p_Dpb->fs[pos]; in remove_frame_from_dpb()
697 p_Dpb->fs[i] = p_Dpb->fs[i + 1]; in remove_frame_from_dpb()
699 p_Dpb->fs[p_Dpb->used_size - 1] = tmp; in remove_frame_from_dpb()
718 if (p_Dpb->fs[i]) { in remove_unused_frame_from_dpb()
719 if (p_Dpb->fs[i]->is_output && (!is_used_for_reference(p_Dpb->fs[i]))) { in remove_unused_frame_from_dpb()
741 if (min_poc > p_Dpb->fs[i]->poc) { in get_smallest_poc()
742 min_poc = p_Dpb->fs[i]->poc; in get_smallest_poc()
745 if ((*poc > p_Dpb->fs[i]->poc) && (!p_Dpb->fs[i]->is_output)) { in get_smallest_poc()
746 *poc = p_Dpb->fs[i]->poc; in get_smallest_poc()
781 static MPP_RET dpb_combine_field_yuv(H264dVideoCtx_t *p_Vid, H264_FrameStore_t *fs, RK_U8 combine_f… in dpb_combine_field_yuv() argument
785 if (!fs->frame) { in dpb_combine_field_yuv()
786 fs->frame = alloc_storable_picture(p_Vid, FRAME); in dpb_combine_field_yuv()
787 MEM_CHECK(ret, fs->frame); in dpb_combine_field_yuv()
788 ASSERT(fs->top_field->colmv_no_used_flag == fs->bottom_field->colmv_no_used_flag); in dpb_combine_field_yuv()
789 fs->frame->colmv_no_used_flag = fs->top_field->colmv_no_used_flag; in dpb_combine_field_yuv()
791 ASSERT(fs->top_field->mem_mark->mark_idx == fs->bottom_field->mem_mark->mark_idx); in dpb_combine_field_yuv()
792 ASSERT(fs->top_field->mem_mark->slot_idx == fs->bottom_field->mem_mark->slot_idx); in dpb_combine_field_yuv()
793 fs->frame->mem_malloc_type = fs->top_field->mem_malloc_type; in dpb_combine_field_yuv()
794 fs->frame->mem_mark = fs->top_field->mem_mark; in dpb_combine_field_yuv()
795 } else if (fs->is_used == 0x01) { // unpaired, have top in dpb_combine_field_yuv()
796 ASSERT(fs->bottom_field->mem_malloc_type == Mem_UnPaired); in dpb_combine_field_yuv()
797 fs->frame->mem_mark = fs->top_field->mem_mark; in dpb_combine_field_yuv()
798 } else if (fs->is_used == 0x02) { // unpaired, have bottom in dpb_combine_field_yuv()
799 ASSERT(fs->top_field->mem_malloc_type == Mem_UnPaired); in dpb_combine_field_yuv()
800 fs->frame->mem_mark = fs->bottom_field->mem_mark; in dpb_combine_field_yuv()
802 ASSERT(fs->is_used == 0x03); in dpb_combine_field_yuv()
803 fs->frame->mem_malloc_type = fs->top_field->mem_malloc_type; in dpb_combine_field_yuv()
804 fs->frame->mem_mark = fs->top_field->mem_mark; in dpb_combine_field_yuv()
807 …fs->poc = fs->frame->poc = fs->frame->frame_poc = MPP_MIN(fs->top_field->poc, fs->bottom_field->po… in dpb_combine_field_yuv()
808 fs->bottom_field->frame_poc = fs->top_field->frame_poc = fs->frame->poc; in dpb_combine_field_yuv()
809 fs->bottom_field->top_poc = fs->frame->top_poc = fs->top_field->poc; in dpb_combine_field_yuv()
810 fs->top_field->bottom_poc = fs->frame->bottom_poc = fs->bottom_field->poc; in dpb_combine_field_yuv()
811 …fs->frame->used_for_reference = (fs->top_field->used_for_reference && fs->bottom_field->used_for_r… in dpb_combine_field_yuv()
812 fs->frame->is_long_term = (fs->top_field->is_long_term && fs->bottom_field->is_long_term); in dpb_combine_field_yuv()
813 if (fs->frame->is_long_term) { in dpb_combine_field_yuv()
814 fs->frame->long_term_frame_idx = fs->long_term_frame_idx; in dpb_combine_field_yuv()
816 fs->frame->top_field = fs->top_field; in dpb_combine_field_yuv()
817 fs->frame->bottom_field = fs->bottom_field; in dpb_combine_field_yuv()
818 fs->frame->frame = fs->frame; in dpb_combine_field_yuv()
819 fs->frame->chroma_format_idc = fs->top_field->chroma_format_idc; in dpb_combine_field_yuv()
821 fs->frame->frame_cropping_flag = fs->top_field->frame_cropping_flag; in dpb_combine_field_yuv()
822 if (fs->frame->frame_cropping_flag) { in dpb_combine_field_yuv()
823 fs->frame->frame_crop_top_offset = fs->top_field->frame_crop_top_offset; in dpb_combine_field_yuv()
824 fs->frame->frame_crop_bottom_offset = fs->top_field->frame_crop_bottom_offset; in dpb_combine_field_yuv()
825 fs->frame->frame_crop_left_offset = fs->top_field->frame_crop_left_offset; in dpb_combine_field_yuv()
826 fs->frame->frame_crop_right_offset = fs->top_field->frame_crop_right_offset; in dpb_combine_field_yuv()
828 fs->top_field->frame = fs->bottom_field->frame = fs->frame; in dpb_combine_field_yuv()
829 fs->top_field->top_field = fs->top_field; in dpb_combine_field_yuv()
830 fs->top_field->bottom_field = fs->bottom_field; in dpb_combine_field_yuv()
831 fs->bottom_field->top_field = fs->top_field; in dpb_combine_field_yuv()
832 fs->bottom_field->bottom_field = fs->bottom_field; in dpb_combine_field_yuv()
834 fs->frame->is_mmco_5 = fs->top_field->is_mmco_5 || fs->bottom_field->is_mmco_5; in dpb_combine_field_yuv()
835 fs->frame->poc_mmco5 = MPP_MIN(fs->top_field->top_poc_mmco5, fs->bottom_field->bot_poc_mmco5); in dpb_combine_field_yuv()
836 fs->frame->top_poc_mmco5 = fs->top_field->top_poc_mmco5; in dpb_combine_field_yuv()
837 fs->frame->bot_poc_mmco5 = fs->top_field->bot_poc_mmco5; in dpb_combine_field_yuv()
945 static MPP_RET write_unpaired_field(H264dVideoCtx_t *p_Vid, H264_FrameStore_t *fs) in write_unpaired_field() argument
950 VAL_CHECK(ret, fs->is_used < 3); in write_unpaired_field()
951 if (fs->is_used & 0x01) { // we have a top field, construct an empty bottom field in write_unpaired_field()
952 p = fs->top_field; in write_unpaired_field()
953 fs->bottom_field = alloc_storable_picture(p_Vid, BOTTOM_FIELD); in write_unpaired_field()
954 MEM_CHECK(ret, fs->bottom_field); in write_unpaired_field()
955 fs->bottom_field->mem_malloc_type = Mem_UnPaired; in write_unpaired_field()
956 fs->bottom_field->chroma_format_idc = p->chroma_format_idc; in write_unpaired_field()
957 FUN_CHECK(ret = dpb_combine_field_yuv(p_Vid, fs, 0)); in write_unpaired_field()
958 fs->frame->view_id = fs->view_id; in write_unpaired_field()
959 fs->frame->mem_malloc_type = Mem_TopOnly; in write_unpaired_field()
961 write_picture(fs->frame, p_Vid); in write_unpaired_field()
964 if (fs->is_used & 0x02) { // we have a bottom field, construct an empty top field in write_unpaired_field()
965 p = fs->bottom_field; in write_unpaired_field()
966 fs->top_field = alloc_storable_picture(p_Vid, TOP_FIELD); in write_unpaired_field()
967 MEM_CHECK(ret, fs->top_field); in write_unpaired_field()
968 fs->top_field->mem_malloc_type = Mem_UnPaired; in write_unpaired_field()
969 fs->top_field->chroma_format_idc = p->chroma_format_idc; in write_unpaired_field()
970 fs->top_field->frame_cropping_flag = fs->bottom_field->frame_cropping_flag; in write_unpaired_field()
971 if (fs->top_field->frame_cropping_flag) { in write_unpaired_field()
972 fs->top_field->frame_crop_top_offset = fs->bottom_field->frame_crop_top_offset; in write_unpaired_field()
973 fs->top_field->frame_crop_bottom_offset = fs->bottom_field->frame_crop_bottom_offset; in write_unpaired_field()
974 fs->top_field->frame_crop_left_offset = fs->bottom_field->frame_crop_left_offset; in write_unpaired_field()
975 fs->top_field->frame_crop_right_offset = fs->bottom_field->frame_crop_right_offset; in write_unpaired_field()
977 FUN_CHECK(ret = dpb_combine_field_yuv(p_Vid, fs, 0)); in write_unpaired_field()
978 fs->frame->view_id = fs->view_id; in write_unpaired_field()
979 fs->frame->mem_malloc_type = Mem_BotOnly; in write_unpaired_field()
981 write_picture(fs->frame, p_Vid); in write_unpaired_field()
983 fs->is_used = 3; in write_unpaired_field()
1008 …tic MPP_RET write_stored_frame(H264dVideoCtx_t *p_Vid, H264_DpbBuf_t *p_Dpb, H264_FrameStore_t *fs) in write_stored_frame() argument
1012 INP_CHECK(ret, !fs); in write_stored_frame()
1016 if (fs->is_used < 3) { in write_stored_frame()
1017 FUN_CHECK(ret = write_unpaired_field(p_Vid, fs)); in write_stored_frame()
1018 if (fs->top_field) free_storable_picture(p_Vid->p_Dec, fs->top_field); in write_stored_frame()
1019 if (fs->bottom_field) free_storable_picture(p_Vid->p_Dec, fs->bottom_field); in write_stored_frame()
1020 fs->top_field = NULL; in write_stored_frame()
1021 fs->bottom_field = NULL; in write_stored_frame()
1024 write_picture(fs->frame, p_Vid); in write_stored_frame()
1026 p_Dpb->last_output_poc = fs->poc; in write_stored_frame()
1027 fs->is_output = 1; in write_stored_frame()
1046 FUN_CHECK(ret = write_stored_frame(p_Vid, p_Dpb, p_Dpb->fs[pos])); in output_one_frame_from_dpb()
1048 if (!is_used_for_reference(p_Dpb->fs[pos])) { in output_one_frame_from_dpb()
1146 static MPP_RET dpb_split_field(H264dVideoCtx_t *p_Vid, H264_FrameStore_t *fs) in dpb_split_field() argument
1149 H264_StorePic_t *frame = fs->frame; in dpb_split_field()
1152 fs->poc = frame->poc; in dpb_split_field()
1154 fs_top = fs->top_field = alloc_storable_picture(p_Vid, TOP_FIELD); in dpb_split_field()
1155 fs_btm = fs->bottom_field = alloc_storable_picture(p_Vid, BOTTOM_FIELD); in dpb_split_field()
1183 …fs->long_term_frame_idx = fs_top->long_term_frame_idx = fs_btm->long_term_frame_idx = frame->long_… in dpb_split_field()
1203 fs_top->view_id = fs_btm->view_id = fs->view_id; in dpb_split_field()
1204 fs_top->inter_view_flag = fs->inter_view_flag[0]; in dpb_split_field()
1205 fs_btm->inter_view_flag = fs->inter_view_flag[1]; in dpb_split_field()
1211 fs->top_field = NULL; in dpb_split_field()
1212 fs->bottom_field = NULL; in dpb_split_field()
1219 mpp_mem_pool_put_f(p_Vid->pic_st, fs->top_field); in dpb_split_field()
1220 mpp_mem_pool_put_f(p_Vid->pic_st, fs->bottom_field); in dpb_split_field()
1221 fs->top_field = NULL; in dpb_split_field()
1222 fs->bottom_field = NULL; in dpb_split_field()
1226 static MPP_RET dpb_combine_field(H264dVideoCtx_t *p_Vid, H264_FrameStore_t *fs, RK_U8 combine_flag) in dpb_combine_field() argument
1230 FUN_CHECK(ret = dpb_combine_field_yuv(p_Vid, fs, combine_flag)); in dpb_combine_field()
1231 fs->frame->layer_id = fs->layer_id; in dpb_combine_field()
1232 fs->frame->view_id = fs->view_id; in dpb_combine_field()
1233 fs->frame->iCodingType = fs->top_field->iCodingType; //FIELD_CODING; in dpb_combine_field()
1234 fs->frame->frame_num = fs->top_field->frame_num; in dpb_combine_field()
1235 fs->frame->is_output = fs->is_output; in dpb_combine_field()
1236 fs->frame->slice_type = fs->slice_type; in dpb_combine_field()
1321 FUN_CHECK(ret = write_stored_frame(p_Dpb->p_Vid, p_Dpb, p_Dpb->fs[min_pos])); in output_dpb_normal()
1332 static MPP_RET output_dpb_fastplay(H264_DpbBuf_t *p_Dpb, H264_FrameStore_t *fs, RK_U32 is_i_frm) in output_dpb_fastplay() argument
1337 FUN_CHECK(ret = write_stored_frame(p_Dpb->p_Vid, p_Dpb, fs)); in output_dpb_fastplay()
1345 static MPP_RET output_dpb_fastplay_once(H264_DpbBuf_t *p_Dpb, H264_FrameStore_t *fs, RK_U32 is_i_fr… in output_dpb_fastplay_once() argument
1350 FUN_CHECK(ret = write_stored_frame(p_Dpb->p_Vid, p_Dpb, fs)); in output_dpb_fastplay_once()
1368 H264_FrameStore_t *fs = p_Dpb->fs[p_Dpb->used_size - 1]; in scan_dpb_output() local
1370 if (fs->is_used == 3) { in scan_dpb_output()
1375 FUN_CHECK(ret = write_stored_frame(p_Dpb->p_Vid, p_Dpb, fs)); in scan_dpb_output()
1382 FUN_CHECK(ret = output_dpb_fastplay(p_Dpb, fs, is_i_frm)); in scan_dpb_output()
1385 FUN_CHECK(ret = output_dpb_fastplay_once(p_Dpb, fs, is_i_frm)); in scan_dpb_output()
1393 p_err->first_iframe_is_output = fs->is_output; in scan_dpb_output()
1496 unmark_for_reference(p_Vid->p_Dec, p_Dpb->fs[min_pos]); in store_picture_in_dpb()
1497 if (!p_Dpb->fs[min_pos]->is_output) { in store_picture_in_dpb()
1499 FUN_CHECK(ret = write_stored_frame(p_Vid, p_Dpb, p_Dpb->fs[min_pos])); in store_picture_in_dpb()
1510 FUN_CHECK(ret = insert_picture_in_dpb(p_Vid, p_Dpb->fs[p_Dpb->used_size], p, 0)); in store_picture_in_dpb()
1512 p_Dpb->last_picture = p_Dpb->fs[p_Dpb->used_size]; in store_picture_in_dpb()
1571 if (p_Dpb->fs) { in free_dpb()
1573 free_frame_store(p_Vid->p_Dec, p_Dpb->fs[i]); in free_dpb()
1574 p_Dpb->fs[i] = NULL; in free_dpb()
1576 MPP_FREE(p_Dpb->fs); in free_dpb()
1607 if (is_short_term_reference(p_Dpb->fs[i])) { in update_ref_list()
1608 p_Dpb->fs_ref[j++] = p_Dpb->fs[i]; in update_ref_list()
1629 if (is_long_term_reference(p_Dpb->fs[i])) { in update_ltref_list()
1630 p_Dpb->fs_ltref[j++] = p_Dpb->fs[i]; in update_ltref_list()
1662 p_Dpb->fs[i]->is_output = 1; in idr_memory_management()
1690 free_frame_store(p_Dpb->p_Vid->p_Dec, p_Dpb->fs[i]); in idr_memory_management()
1703 MPP_RET insert_picture_in_dpb(H264dVideoCtx_t *p_Vid, H264_FrameStore_t *fs, H264_StorePic_t *p, RK… in insert_picture_in_dpb() argument
1708 ASSERT(fs != NULL); in insert_picture_in_dpb()
1712 fs->frame = p; in insert_picture_in_dpb()
1713 fs->is_used = 3; in insert_picture_in_dpb()
1715 fs->is_reference = 3; in insert_picture_in_dpb()
1716 fs->is_orig_reference = 3; in insert_picture_in_dpb()
1718 fs->is_long_term = 3; in insert_picture_in_dpb()
1719 fs->long_term_frame_idx = p->long_term_frame_idx; in insert_picture_in_dpb()
1722 fs->inter_view_flag[0] = fs->inter_view_flag[1] = p->inter_view_flag; in insert_picture_in_dpb()
1723 fs->anchor_pic_flag[0] = fs->anchor_pic_flag[1] = p->anchor_pic_flag; in insert_picture_in_dpb()
1724 FUN_CHECK(ret = dpb_split_field(p_Vid, fs)); in insert_picture_in_dpb()
1725 fs->poc = p->poc; in insert_picture_in_dpb()
1728 fs->top_field = p; in insert_picture_in_dpb()
1729 fs->is_used |= 1; in insert_picture_in_dpb()
1730 fs->inter_view_flag[0] = p->inter_view_flag; in insert_picture_in_dpb()
1731 fs->anchor_pic_flag[0] = p->anchor_pic_flag; in insert_picture_in_dpb()
1733 fs->is_reference |= 1; in insert_picture_in_dpb()
1734 fs->is_orig_reference |= 1; in insert_picture_in_dpb()
1736 fs->is_long_term |= 1; in insert_picture_in_dpb()
1737 fs->long_term_frame_idx = p->long_term_frame_idx; in insert_picture_in_dpb()
1740 if (fs->is_used == 3) { in insert_picture_in_dpb()
1741 FUN_CHECK(ret = dpb_combine_field(p_Vid, fs, combine_flag)); in insert_picture_in_dpb()
1743 fs->poc = p->poc; in insert_picture_in_dpb()
1747 fs->bottom_field = p; in insert_picture_in_dpb()
1748 fs->is_used |= 2; in insert_picture_in_dpb()
1749 fs->inter_view_flag[1] = p->inter_view_flag; in insert_picture_in_dpb()
1750 fs->anchor_pic_flag[1] = p->anchor_pic_flag; in insert_picture_in_dpb()
1752 fs->is_reference |= 2; in insert_picture_in_dpb()
1753 fs->is_orig_reference |= 2; in insert_picture_in_dpb()
1755 fs->is_long_term |= 2; in insert_picture_in_dpb()
1756 fs->long_term_frame_idx = p->long_term_frame_idx; in insert_picture_in_dpb()
1759 if (fs->is_used == 3) { in insert_picture_in_dpb()
1760 FUN_CHECK(ret = dpb_combine_field(p_Vid, fs, combine_flag)); in insert_picture_in_dpb()
1762 fs->poc = p->poc; in insert_picture_in_dpb()
1766 fs->layer_id = p->layer_id; in insert_picture_in_dpb()
1767 fs->view_id = p->view_id; in insert_picture_in_dpb()
1768 fs->frame_num = p->pic_num; in insert_picture_in_dpb()
1769 fs->is_output = p->is_output; in insert_picture_in_dpb()
1770 fs->slice_type = p->slice_type; in insert_picture_in_dpb()
1771 fs->structure = p->structure; in insert_picture_in_dpb()
1881 memcpy(tmp, p_Dpb->fs, sizeof(H264_FrameStore_t*) * p_Dpb->size); in enlarge_dpb()
1882 mpp_free(p_Dpb->fs); in enlarge_dpb()
1883 p_Dpb->fs = tmp; in enlarge_dpb()
1901 p_Dpb->fs[i] = alloc_frame_store(); in enlarge_dpb()
1902 MEM_CHECK(ret, p_Dpb->fs[i]); in enlarge_dpb()
1905 p_Dpb->fs[i]->layer_id = -1; in enlarge_dpb()
1906 p_Dpb->fs[i]->view_id = -1; in enlarge_dpb()
1907 p_Dpb->fs[i]->inter_view_flag[0] = p_Dpb->fs[i]->inter_view_flag[1] = 0; in enlarge_dpb()
1908 p_Dpb->fs[i]->anchor_pic_flag[0] = p_Dpb->fs[i]->anchor_pic_flag[1] = 0; in enlarge_dpb()
1983 p_Dpb->fs = mpp_calloc(H264_FrameStore_t*, p_Dpb->size); in init_dpb()
1987 MEM_CHECK(ret, p_Dpb->fs && p_Dpb->fs_ref && p_Dpb->fs_ltref && p_Dpb->fs_ilref); in init_dpb()
1989 p_Dpb->fs[i] = alloc_frame_store(); in init_dpb()
1990 MEM_CHECK(ret, p_Dpb->fs[i]); in init_dpb()
1993 p_Dpb->fs[i]->layer_id = -1; in init_dpb()
1994 p_Dpb->fs[i]->view_id = -1; in init_dpb()
1995 p_Dpb->fs[i]->inter_view_flag[0] = p_Dpb->fs[i]->inter_view_flag[1] = 0; in init_dpb()
1996 p_Dpb->fs[i]->anchor_pic_flag[0] = p_Dpb->fs[i]->anchor_pic_flag[1] = 0; in init_dpb()
2047 if (p_Dpb->fs[i] && p_Dpb->p_Vid) { in flush_dpb()
2048 VAL_CHECK(ret, p_Dpb->fs[i]->layer_id == p_Dpb->layer_id); in flush_dpb()
2049 unmark_for_reference(p_Dpb->p_Vid->p_Dec, p_Dpb->fs[i]); in flush_dpb()