• Home
  • Raw
  • Download

Lines Matching refs:ps_dec

450 WORD32 ih264d_end_of_pic_processing(dec_struct_t *ps_dec)  in ih264d_end_of_pic_processing()  argument
453 dec_slice_params_t *ps_cur_slice = ps_dec->ps_cur_slice; in ih264d_end_of_pic_processing()
475 if(ps_dec->ps_dpb_cmds->u1_long_term_reference_flag == 0) in ih264d_end_of_pic_processing()
477 ih264d_reset_ref_bufs(ps_dec->ps_dpb_mgr); in ih264d_end_of_pic_processing()
480 ret = ih264d_insert_st_node(ps_dec->ps_dpb_mgr, in ih264d_end_of_pic_processing()
481 ps_dec->ps_cur_pic, in ih264d_end_of_pic_processing()
482 ps_dec->u1_pic_buf_id, in ih264d_end_of_pic_processing()
493 ret = ih264d_insert_st_node(ps_dec->ps_dpb_mgr, in ih264d_end_of_pic_processing()
494 ps_dec->ps_cur_pic, in ih264d_end_of_pic_processing()
495 ps_dec->u1_pic_buf_id, in ih264d_end_of_pic_processing()
501 ps_dec->ps_dpb_mgr, in ih264d_end_of_pic_processing()
506 ps_dec->ps_dpb_mgr->u1_max_lt_pic_idx_plus1 = 1; in ih264d_end_of_pic_processing()
519 ps_dec->ps_dpb_cmds, ps_dec->ps_dpb_mgr, in ih264d_end_of_pic_processing()
520 ps_dec->ps_cur_sps->u1_num_ref_frames, in ih264d_end_of_pic_processing()
522 (ps_dec->ps_cur_sps->u2_u4_max_pic_num_minus1), in ih264d_end_of_pic_processing()
523 ps_dec->u1_nal_unit_type, ps_dec->ps_cur_pic, in ih264d_end_of_pic_processing()
524 ps_dec->u1_pic_buf_id, in ih264d_end_of_pic_processing()
526 ps_dec->e_dec_status); in ih264d_end_of_pic_processing()
531 ih264d_update_default_index_list(ps_dec->ps_dpb_mgr); in ih264d_end_of_pic_processing()
551 ps_dec->ps_cur_pic->u1_pic_type |= u1_pic_type; in ih264d_end_of_pic_processing()
557 ps_dec->u1_second_field = 1 - ps_dec->u1_second_field; in ih264d_end_of_pic_processing()
683 WORD32 ih264d_init_dec_mb_grp(dec_struct_t *ps_dec) in ih264d_init_dec_mb_grp() argument
685 dec_seq_params_t *ps_seq = ps_dec->ps_cur_sps; in ih264d_init_dec_mb_grp()
688 ps_dec->u1_recon_mb_grp = PARSE_MB_GROUP_4; in ih264d_init_dec_mb_grp()
692 ps_dec->u1_recon_mb_grp = ps_dec->u2_frm_wd_in_mbs; in ih264d_init_dec_mb_grp()
694 ps_dec->u1_recon_mb_grp_pair = ps_dec->u1_recon_mb_grp >> 1; in ih264d_init_dec_mb_grp()
696 if(!ps_dec->u1_recon_mb_grp) in ih264d_init_dec_mb_grp()
701 ps_dec->u4_num_mbs_prev_nmb = ps_dec->u1_recon_mb_grp; in ih264d_init_dec_mb_grp()
722 WORD32 ih264d_init_pic(dec_struct_t *ps_dec, in ih264d_init_pic() argument
728 prev_seq_params_t * ps_prev_seq_params = &ps_dec->s_prev_seq_params; in ih264d_init_pic()
732 ps_dec->ps_cur_slice->u2_frame_num = u2_frame_num; in ih264d_init_pic()
733 ps_dec->ps_cur_slice->i4_poc = i4_poc; in ih264d_init_pic()
734 ps_dec->ps_cur_pps = ps_pps; in ih264d_init_pic()
735 ps_dec->ps_cur_pps->pv_codec_handle = ps_dec; in ih264d_init_pic()
737 ps_dec->ps_cur_sps = ps_seq; in ih264d_init_pic()
738 ps_dec->ps_dpb_mgr->i4_max_frm_num = ps_seq->u2_u4_max_pic_num_minus1 in ih264d_init_pic()
741 ps_dec->ps_dpb_mgr->u2_pic_ht = ps_dec->u2_pic_ht; in ih264d_init_pic()
742 ps_dec->ps_dpb_mgr->u2_pic_wd = ps_dec->u2_pic_wd; in ih264d_init_pic()
743 ps_dec->i4_pic_type = -1; in ih264d_init_pic()
744 ps_dec->i4_frametype = -1; in ih264d_init_pic()
745 ps_dec->i4_content_type = -1; in ih264d_init_pic()
752 * (ps_dec->u2_pic_ht in ih264d_init_pic()
754 … + ps_dec->ps_cur_slice->u1_field_pic_flag))) in ih264d_init_pic()
756 ps_dec->u2_frm_ht_in_mbs = (ps_dec->u2_pic_ht in ih264d_init_pic()
757 >> (4 + ps_dec->ps_cur_slice->u1_field_pic_flag)); in ih264d_init_pic()
763 if(!ps_dec->u1_init_dec_flag in ih264d_init_pic()
766 ps_dec->u1_max_dec_frame_buffering = ih264d_get_dpb_size(ps_seq); in ih264d_init_pic()
768 ps_dec->i4_display_delay = ps_dec->u1_max_dec_frame_buffering; in ih264d_init_pic()
773 ps_dec->i4_display_delay = ps_seq->s_vui.u4_num_reorder_frames + 1; in ih264d_init_pic()
775 ps_dec->i4_display_delay = ps_seq->s_vui.u4_num_reorder_frames * 2 + 2; in ih264d_init_pic()
778 if(IVD_DECODE_FRAME_OUT == ps_dec->e_frm_out_mode) in ih264d_init_pic()
779 ps_dec->i4_display_delay = 0; in ih264d_init_pic()
781 if(ps_dec->u4_share_disp_buf == 0) in ih264d_init_pic()
784 ps_dec->u1_pic_bufs = ps_dec->i4_display_delay + ps_seq->u1_num_ref_frames + 1; in ih264d_init_pic()
786 ps_dec->u1_pic_bufs = ps_dec->i4_display_delay + ps_seq->u1_num_ref_frames * 2 + 2; in ih264d_init_pic()
790 ps_dec->u1_pic_bufs = (WORD32)ps_dec->u4_num_disp_bufs; in ih264d_init_pic()
794 ps_dec->u1_pic_bufs = MAX(ps_dec->u1_pic_bufs, 2); in ih264d_init_pic()
796 if(ps_dec->u4_share_disp_buf == 0) in ih264d_init_pic()
797 ps_dec->u1_pic_bufs = MIN(ps_dec->u1_pic_bufs, in ih264d_init_pic()
800 ps_dec->u1_max_dec_frame_buffering = MIN( in ih264d_init_pic()
801 ps_dec->u1_max_dec_frame_buffering, in ih264d_init_pic()
802 ps_dec->u1_pic_bufs); in ih264d_init_pic()
805 if(ps_dec->u1_init_dec_flag) in ih264d_init_pic()
807 ih264d_release_pics_in_dpb((void *)ps_dec, in ih264d_init_pic()
808 ps_dec->u1_pic_bufs); in ih264d_init_pic()
809 ih264d_release_display_bufs(ps_dec); in ih264d_init_pic()
810 ih264d_reset_ref_bufs(ps_dec->ps_dpb_mgr); in ih264d_init_pic()
817 if(!ps_dec->u1_init_dec_flag || in ih264d_init_pic()
820 ret = ih264d_init_dec_mb_grp(ps_dec); in ih264d_init_pic()
825 ret = ih264d_allocate_dynamic_bufs(ps_dec); in ih264d_init_pic()
829 ih264d_free_dynamic_bufs(ps_dec); in ih264d_init_pic()
830 ps_dec->i4_error_code = IVD_MEM_ALLOC_FAILED; in ih264d_init_pic()
834 ret = ih264d_create_pic_buffers(ps_dec->u1_pic_bufs, in ih264d_init_pic()
835 ps_dec); in ih264d_init_pic()
841 ret = ih264d_create_mv_bank(ps_dec, ps_dec->u2_pic_wd, in ih264d_init_pic()
842 ps_dec->u2_pic_ht); in ih264d_init_pic()
847 if(ps_dec->u4_share_disp_buf == 1) in ih264d_init_pic()
851 for(i = 0; i < ps_dec->u1_pic_bufs; i++) in ih264d_init_pic()
853 ih264_buf_mgr_set_status((buf_mgr_t *)ps_dec->pv_pic_buf_mgr, i, in ih264d_init_pic()
858 ps_dec->u1_init_dec_flag = 1; in ih264d_init_pic()
868 ps_dec->i4_cur_display_seq = 0; in ih264d_init_pic()
869 ps_dec->i4_prev_max_display_seq = 0; in ih264d_init_pic()
870 ps_dec->i4_max_poc = 0; in ih264d_init_pic()
875 ctxt_inc_mb_info_t *p_DefCtxt = ps_dec->p_ctxt_inc_mb_map - 1; in ih264d_init_pic()
893 ps_dec->ps_def_ctxt_mb_info = p_DefCtxt; in ih264d_init_pic()
898 ps_dec->ps_dpb_cmds->u1_dpb_commands_read = 0; in ih264d_init_pic()
928 WORD32 ih264d_get_next_display_field(dec_struct_t * ps_dec, in ih264d_get_next_display_field() argument
941 ps_op_frm = &(ps_dec->s_disp_frame_info); in ih264d_get_next_display_field()
942 H264_MUTEX_LOCK(&ps_dec->process_disp_mutex); in ih264d_get_next_display_field()
944 (disp_mgr_t *)ps_dec->pv_disp_buf_mgr, &i4_disp_buf_id); in ih264d_get_next_display_field()
945 ps_dec->u4_num_fld_in_frm = 0; in ih264d_get_next_display_field()
948 pv_disp_op->e_output_format = ps_dec->u1_chroma_format; in ih264d_get_next_display_field()
974 ps_dec->u4_num_fld_in_frm++; in ih264d_get_next_display_field()
975 ps_dec->u4_num_fld_in_frm++; in ih264d_get_next_display_field()
983 } H264_MUTEX_UNLOCK(&ps_dec->process_disp_mutex); in ih264d_get_next_display_field()
1010 if(0 == ps_dec->u4_share_disp_buf) in ih264d_get_next_display_field()
1025 if(ps_dec->u4_app_disp_width) in ih264d_get_next_display_field()
1028 ps_dec->u4_app_disp_width, in ih264d_get_next_display_field()
1044 if(1 == ps_dec->u4_share_disp_buf) in ih264d_get_next_display_field()
1050 UWORD8 *buf = ps_dec->disp_bufs[i].buf[0]; in ih264d_get_next_display_field()
1051 buf += ps_dec->disp_bufs[i].u4_ofst[0]; in ih264d_get_next_display_field()
1055 buf = ps_dec->disp_bufs[i].buf[1]; in ih264d_get_next_display_field()
1056 buf += ps_dec->disp_bufs[i].u4_ofst[1]; in ih264d_get_next_display_field()
1060 buf = ps_dec->disp_bufs[i].buf[2]; in ih264d_get_next_display_field()
1061 buf += ps_dec->disp_bufs[i].u4_ofst[2]; in ih264d_get_next_display_field()
1076 if(1 == ps_dec->u4_share_disp_buf) in ih264d_get_next_display_field()
1084 UWORD8 *buf = ps_dec->disp_bufs[i].buf[0]; in ih264d_get_next_display_field()
1085 buf += ps_dec->disp_bufs[i].u4_ofst[0]; in ih264d_get_next_display_field()
1089 buf = ps_dec->disp_bufs[i].buf[1]; in ih264d_get_next_display_field()
1090 buf += ps_dec->disp_bufs[i].u4_ofst[1]; in ih264d_get_next_display_field()
1095 buf = ps_dec->disp_bufs[i].buf[2]; in ih264d_get_next_display_field()
1096 buf += ps_dec->disp_bufs[i].u4_ofst[2]; in ih264d_get_next_display_field()
1147 void ih264d_release_display_field(dec_struct_t *ps_dec, in ih264d_release_display_field() argument
1152 if(1 == ps_dec->u1_flushfrm) in ih264d_release_display_field()
1156 if(1 == ps_dec->u4_share_disp_buf) in ih264d_release_display_field()
1158 H264_MUTEX_LOCK(&ps_dec->process_disp_mutex); in ih264d_release_display_field()
1161 if(1 == ps_dec->u4_disp_buf_mapping[i]) in ih264d_release_display_field()
1164 (buf_mgr_t *)ps_dec->pv_pic_buf_mgr, i, in ih264d_release_display_field()
1166 ps_dec->u4_disp_buf_mapping[i] = 0; in ih264d_release_display_field()
1168 } H264_MUTEX_UNLOCK(&ps_dec->process_disp_mutex); in ih264d_release_display_field()
1170 memset(ps_dec->u4_disp_buf_to_be_freed, 0, in ih264d_release_display_field()
1172 for(i = 0; i < ps_dec->u1_pic_bufs; i++) in ih264d_release_display_field()
1173 ps_dec->u4_disp_buf_mapping[i] = 1; in ih264d_release_display_field()
1175 ps_dec->u1_flushfrm = 0; in ih264d_release_display_field()
1181 H264_MUTEX_LOCK(&ps_dec->process_disp_mutex); in ih264d_release_display_field()
1183 if(0 == ps_dec->u4_share_disp_buf) in ih264d_release_display_field()
1185 ih264_buf_mgr_release((buf_mgr_t *)ps_dec->pv_pic_buf_mgr, in ih264d_release_display_field()
1192 ps_dec->u4_disp_buf_mapping[pv_disp_op->u4_disp_buf_id] = 1; in ih264d_release_display_field()
1193 } H264_MUTEX_UNLOCK(&ps_dec->process_disp_mutex); in ih264d_release_display_field()
1219 WORD32 ih264d_assign_display_seq(dec_struct_t *ps_dec) in ih264d_assign_display_seq() argument
1225 dpb_manager_t *ps_dpb_mgr = ps_dec->ps_dpb_mgr; in ih264d_assign_display_seq()
1232 if(ps_dpb_mgr->i1_poc_buf_id_entries >= ps_dec->i4_display_delay) in ih264d_assign_display_seq()
1251 ps_dec->i4_cur_display_seq++; in ih264d_assign_display_seq()
1253 (disp_mgr_t *)ps_dec->pv_disp_buf_mgr, in ih264d_assign_display_seq()
1254 i4_min_poc_buf_id, ps_dec->i4_cur_display_seq, in ih264d_assign_display_seq()
1255 ps_dec->apv_buf_id_pic_buf_map[i4_min_poc_buf_id]); in ih264d_assign_display_seq()
1293 void ih264d_release_display_bufs(dec_struct_t *ps_dec) in ih264d_release_display_bufs() argument
1299 dpb_manager_t *ps_dpb_mgr = ps_dec->ps_dpb_mgr; in ih264d_release_display_bufs()
1326 ps_dec->i4_cur_display_seq++; in ih264d_release_display_bufs()
1328 (disp_mgr_t *)ps_dec->pv_disp_buf_mgr, in ih264d_release_display_bufs()
1329 i4_min_poc_buf_id, ps_dec->i4_cur_display_seq, in ih264d_release_display_bufs()
1330 ps_dec->apv_buf_id_pic_buf_map[i4_min_poc_buf_id]); in ih264d_release_display_bufs()
1343 ps_dec->i4_prev_max_display_seq = ps_dec->i4_prev_max_display_seq in ih264d_release_display_bufs()
1344 + ps_dec->i4_max_poc + ps_dec->u1_max_dec_frame_buffering in ih264d_release_display_bufs()
1346 ps_dec->i4_max_poc = 0; in ih264d_release_display_bufs()
1378 void ih264d_assign_pic_num(dec_struct_t *ps_dec) in ih264d_assign_pic_num() argument
1385 UWORD8 u1_fld_pic_flag = ps_dec->ps_cur_slice->u1_field_pic_flag; in ih264d_assign_pic_num()
1387 i4_max_frame_num = ps_dec->ps_cur_sps->u2_u4_max_pic_num_minus1 + 1; in ih264d_assign_pic_num()
1388 i4_cur_frame_num = ps_dec->ps_cur_pic->i4_frame_num; in ih264d_assign_pic_num()
1389 ps_dpb_mgr = ps_dec->ps_dpb_mgr; in ih264d_assign_pic_num()
1417 + !(ps_dec->ps_cur_slice->u1_bottom_field_flag); in ih264d_assign_pic_num()
1419 + ps_dec->ps_cur_slice->u1_bottom_field_flag; in ih264d_assign_pic_num()
1425 if(ps_dec->ps_cur_sps->u1_gaps_in_frame_num_value_allowed_flag in ih264d_assign_pic_num()
1468 WORD32 ih264d_update_qp(dec_struct_t * ps_dec, const WORD8 i1_qp) in ih264d_update_qp() argument
1471 i_temp = (ps_dec->u1_qp + i1_qp + 52) % 52; in ih264d_update_qp()
1476 ps_dec->u1_qp = i_temp; in ih264d_update_qp()
1477 ps_dec->u1_qp_y_rem6 = ps_dec->u1_qp % 6; in ih264d_update_qp()
1478 ps_dec->u1_qp_y_div6 = ps_dec->u1_qp / 6; in ih264d_update_qp()
1479 i_temp = CLIP3(0, 51, ps_dec->u1_qp + ps_dec->ps_cur_pps->i1_chroma_qp_index_offset); in ih264d_update_qp()
1480 ps_dec->u1_qp_u_rem6 = MOD(gau1_ih264d_qp_scale_cr[12 + i_temp], 6); in ih264d_update_qp()
1481 ps_dec->u1_qp_u_div6 = DIV(gau1_ih264d_qp_scale_cr[12 + i_temp], 6); in ih264d_update_qp()
1483 i_temp = CLIP3(0, 51, ps_dec->u1_qp + ps_dec->ps_cur_pps->i1_second_chroma_qp_index_offset); in ih264d_update_qp()
1484 ps_dec->u1_qp_v_rem6 = MOD(gau1_ih264d_qp_scale_cr[12 + i_temp], 6); in ih264d_update_qp()
1485 ps_dec->u1_qp_v_div6 = DIV(gau1_ih264d_qp_scale_cr[12 + i_temp], 6); in ih264d_update_qp()
1487 ps_dec->pu2_quant_scale_y = in ih264d_update_qp()
1488 gau2_ih264_iquant_scale_4x4[ps_dec->u1_qp_y_rem6]; in ih264d_update_qp()
1489 ps_dec->pu2_quant_scale_u = in ih264d_update_qp()
1490 gau2_ih264_iquant_scale_4x4[ps_dec->u1_qp_u_rem6]; in ih264d_update_qp()
1491 ps_dec->pu2_quant_scale_v = in ih264d_update_qp()
1492 gau2_ih264_iquant_scale_4x4[ps_dec->u1_qp_v_rem6]; in ih264d_update_qp()
1518 WORD32 ih264d_decode_gaps_in_frame_num(dec_struct_t *ps_dec, in ih264d_decode_gaps_in_frame_num() argument
1535 ps_cur_slice = ps_dec->ps_cur_slice; in ih264d_decode_gaps_in_frame_num()
1538 if(ps_dec->u2_prev_ref_frame_num == u2_frame_num) in ih264d_decode_gaps_in_frame_num()
1542 u4_next_frm_num = ps_dec->u2_prev_ref_frame_num + 1; in ih264d_decode_gaps_in_frame_num()
1543 u4_max_frm_num = ps_dec->ps_cur_sps->u2_u4_max_pic_num_minus1 + 1; in ih264d_decode_gaps_in_frame_num()
1557 if((ps_dec->u1_nal_unit_type == IDR_SLICE_NAL) in ih264d_decode_gaps_in_frame_num()
1571 ps_cur_slice = ps_dec->ps_cur_slice; in ih264d_decode_gaps_in_frame_num()
1572 ps_pic_params = ps_dec->ps_cur_pps; in ih264d_decode_gaps_in_frame_num()
1576 ps_dpb_mgr = ps_dec->ps_dpb_mgr; in ih264d_decode_gaps_in_frame_num()
1605 &ps_dec->s_prev_pic_poc, in ih264d_decode_gaps_in_frame_num()
1613 if(i4_poc >= ps_dec->i4_max_poc) in ih264d_decode_gaps_in_frame_num()
1614 ps_dec->i4_max_poc = i4_poc; in ih264d_decode_gaps_in_frame_num()
1618 ps_dec->i4_prev_max_display_seq = in ih264d_decode_gaps_in_frame_num()
1619 ps_dec->i4_prev_max_display_seq in ih264d_decode_gaps_in_frame_num()
1620 + ps_dec->i4_max_poc in ih264d_decode_gaps_in_frame_num()
1621 + ps_dec->u1_max_dec_frame_buffering in ih264d_decode_gaps_in_frame_num()
1623 ps_dec->i4_max_poc = 0; in ih264d_decode_gaps_in_frame_num()
1632 >= ps_dec->u1_max_dec_frame_buffering) in ih264d_decode_gaps_in_frame_num()
1634 ret = ih264d_assign_display_seq(ps_dec); in ih264d_decode_gaps_in_frame_num()
1640 ps_dec->ps_dpb_mgr, (WORD8) DO_NOT_DISP, in ih264d_decode_gaps_in_frame_num()
1641 (WORD32)(ps_dec->i4_prev_max_display_seq + i4_poc), in ih264d_decode_gaps_in_frame_num()
1648 ps_dec->ps_cur_sps->u1_num_ref_frames); in ih264d_decode_gaps_in_frame_num()
1678 dec_struct_t *ps_dec) in ih264d_create_pic_buffers() argument
1683 UWORD8 u1_frm = ps_dec->ps_cur_sps->u1_frame_mbs_only_flag; in ih264d_create_pic_buffers()
1687 ps_pic_buf = ps_dec->ps_pic_buf_base; in ih264d_create_pic_buffers()
1688 ih264_disp_mgr_init((disp_mgr_t *)ps_dec->pv_disp_buf_mgr); in ih264d_create_pic_buffers()
1689 ih264_buf_mgr_init((buf_mgr_t *)ps_dec->pv_pic_buf_mgr); in ih264d_create_pic_buffers()
1690 u4_luma_size = ps_dec->u2_frm_wd_y * ps_dec->u2_frm_ht_y; in ih264d_create_pic_buffers()
1691 u4_chroma_size = ps_dec->u2_frm_wd_uv * ps_dec->u2_frm_ht_uv; in ih264d_create_pic_buffers()
1694 if(ps_dec->u4_share_disp_buf == 1) in ih264d_create_pic_buffers()
1700 if((ps_dec->u1_chroma_format == IV_YUV_420SP_UV) in ih264d_create_pic_buffers()
1701 || (ps_dec->u1_chroma_format == IV_YUV_420SP_VU) in ih264d_create_pic_buffers()
1702 || (ps_dec->u1_chroma_format == IV_YUV_420P)) in ih264d_create_pic_buffers()
1707 if(ps_dec->u1_chroma_format == IV_YUV_420SP_UV) in ih264d_create_pic_buffers()
1715 pu1_buf = ps_dec->pu1_pic_buf_base; in ih264d_create_pic_buffers()
1723 void *pv_mem_ctxt = ps_dec->pv_mem_ctxt; in ih264d_create_pic_buffers()
1733 if((0 == ps_dec->u4_share_disp_buf) in ih264d_create_pic_buffers()
1734 || (NULL == ps_dec->disp_bufs[i].buf[0])) in ih264d_create_pic_buffers()
1738 u4_offset = ps_dec->u2_frm_wd_y * (PAD_LEN_Y_V << 1) + PAD_LEN_Y_H; in ih264d_create_pic_buffers()
1744 u4_offset = ps_dec->u2_frm_wd_uv * pad_len_v + pad_len_h; in ih264d_create_pic_buffers()
1753 u4_offset = ps_dec->u2_frm_wd_y * (PAD_LEN_Y_V << 1) + PAD_LEN_Y_H; in ih264d_create_pic_buffers()
1754 ps_pic_buf->pu1_buf1 = (UWORD8 *)ps_dec->disp_bufs[i].buf[0] in ih264d_create_pic_buffers()
1757 ps_dec->disp_bufs[i].u4_ofst[0] = u4_offset; in ih264d_create_pic_buffers()
1759 if(ps_dec->u1_chroma_format == IV_YUV_420P) in ih264d_create_pic_buffers()
1765 u4_offset = ps_dec->u2_frm_wd_uv * pad_len_v + pad_len_h; in ih264d_create_pic_buffers()
1769 ps_dec->disp_bufs[i].u4_ofst[1] = u4_offset; in ih264d_create_pic_buffers()
1770 ps_dec->disp_bufs[i].u4_ofst[2] = u4_offset; in ih264d_create_pic_buffers()
1779 u4_offset = ps_dec->u2_frm_wd_uv * pad_len_v + pad_len_h; in ih264d_create_pic_buffers()
1780 ps_pic_buf->pu1_buf2 = (UWORD8 *)(ps_dec->disp_bufs[i].buf[1]) in ih264d_create_pic_buffers()
1782 ps_pic_buf->pu1_buf3 = (UWORD8 *)(ps_dec->disp_bufs[i].buf[1]) in ih264d_create_pic_buffers()
1785 ps_dec->disp_bufs[i].u4_ofst[1] = u4_offset; in ih264d_create_pic_buffers()
1786 ps_dec->disp_bufs[i].u4_ofst[2] = u4_offset; in ih264d_create_pic_buffers()
1790 ps_pic_buf->u2_frm_ht_y = ps_dec->u2_frm_ht_y; in ih264d_create_pic_buffers()
1791 ps_pic_buf->u2_frm_ht_uv = ps_dec->u2_frm_ht_uv; in ih264d_create_pic_buffers()
1792 ps_pic_buf->u2_frm_wd_y = ps_dec->u2_frm_wd_y; in ih264d_create_pic_buffers()
1793 ps_pic_buf->u2_frm_wd_uv = ps_dec->u2_frm_wd_uv; in ih264d_create_pic_buffers()
1797 buf_ret = ih264_buf_mgr_add((buf_mgr_t *)ps_dec->pv_pic_buf_mgr, in ih264d_create_pic_buffers()
1801 ps_dec->i4_error_code = ERROR_BUF_MGR; in ih264d_create_pic_buffers()
1805 ps_dec->apv_buf_id_pic_buf_map[i] = (void *)ps_pic_buf; in ih264d_create_pic_buffers()
1809 if(1 == ps_dec->u4_share_disp_buf) in ih264d_create_pic_buffers()
1812 ps_dec->u4_disp_buf_mapping[i] = 1; in ih264d_create_pic_buffers()
1831 WORD16 ih264d_allocate_dynamic_bufs(dec_struct_t * ps_dec) in ih264d_allocate_dynamic_bufs() argument
1844 UWORD8 uc_frmOrFld = (1 - ps_dec->ps_cur_sps->u1_frame_mbs_only_flag); in ih264d_allocate_dynamic_bufs()
1845 UWORD16 u4_luma_wd = ps_dec->u2_frm_wd_y; in ih264d_allocate_dynamic_bufs()
1846 UWORD16 u4_chroma_wd = ps_dec->u2_frm_wd_uv; in ih264d_allocate_dynamic_bufs()
1848 dec_seq_params_t *ps_sps = ps_dec->ps_cur_sps; in ih264d_allocate_dynamic_bufs()
1850 UWORD32 u4_wd_mbs = ps_dec->u2_frm_wd_in_mbs; in ih264d_allocate_dynamic_bufs()
1851 UWORD32 u4_ht_mbs = ps_dec->u2_frm_ht_in_mbs; in ih264d_allocate_dynamic_bufs()
1861 void *pv_mem_ctxt = ps_dec->pv_mem_ctxt; in ih264d_allocate_dynamic_bufs()
1864 pv_buf = ps_dec->pf_aligned_alloc(pv_mem_ctxt, 128, size); in ih264d_allocate_dynamic_bufs()
1866 ps_dec->pu1_dec_mb_map = pv_buf; in ih264d_allocate_dynamic_bufs()
1869 pv_buf = ps_dec->pf_aligned_alloc(pv_mem_ctxt, 128, size); in ih264d_allocate_dynamic_bufs()
1871 ps_dec->pu1_recon_mb_map = pv_buf; in ih264d_allocate_dynamic_bufs()
1874 pv_buf = ps_dec->pf_aligned_alloc(pv_mem_ctxt, 128, size); in ih264d_allocate_dynamic_bufs()
1876 ps_dec->pu2_slice_num_map = pv_buf; in ih264d_allocate_dynamic_bufs()
1881 ps_dec->ps_parse_cur_slice = &(ps_dec->ps_dec_slice_buf[0]); in ih264d_allocate_dynamic_bufs()
1882 ps_dec->ps_decode_cur_slice = &(ps_dec->ps_dec_slice_buf[0]); in ih264d_allocate_dynamic_bufs()
1883 ps_dec->ps_computebs_cur_slice = &(ps_dec->ps_dec_slice_buf[0]); in ih264d_allocate_dynamic_bufs()
1885 ps_dec->ps_pred_start = ps_dec->ps_pred; in ih264d_allocate_dynamic_bufs()
1887 size = sizeof(parse_pmbarams_t) * (ps_dec->u1_recon_mb_grp); in ih264d_allocate_dynamic_bufs()
1888 pv_buf = ps_dec->pf_aligned_alloc(pv_mem_ctxt, 128, size); in ih264d_allocate_dynamic_bufs()
1890 ps_dec->ps_parse_mb_data = pv_buf; in ih264d_allocate_dynamic_bufs()
1893 * ((ps_dec->u1_recon_mb_grp) << 4); in ih264d_allocate_dynamic_bufs()
1894 pv_buf = ps_dec->pf_aligned_alloc(pv_mem_ctxt, 128, size); in ih264d_allocate_dynamic_bufs()
1896 ps_dec->ps_parse_part_params = pv_buf; in ih264d_allocate_dynamic_bufs()
1899 pv_buf = ps_dec->pf_aligned_alloc(pv_mem_ctxt, 128, size); in ih264d_allocate_dynamic_bufs()
1901 ps_dec->ps_deblk_top_mb = pv_buf; in ih264d_allocate_dynamic_bufs()
1905 pv_buf = ps_dec->pf_aligned_alloc(pv_mem_ctxt, 128, size); in ih264d_allocate_dynamic_bufs()
1907 ps_dec->p_ctxt_inc_mb_map = pv_buf; in ih264d_allocate_dynamic_bufs()
1909 size = (sizeof(mv_pred_t) * ps_dec->u1_recon_mb_grp in ih264d_allocate_dynamic_bufs()
1911 pv_buf = ps_dec->pf_aligned_alloc(pv_mem_ctxt, 128, size); in ih264d_allocate_dynamic_bufs()
1913 ps_dec->ps_mv_p[0] = pv_buf; in ih264d_allocate_dynamic_bufs()
1915 size = (sizeof(mv_pred_t) * ps_dec->u1_recon_mb_grp in ih264d_allocate_dynamic_bufs()
1917 pv_buf = ps_dec->pf_aligned_alloc(pv_mem_ctxt, 128, size); in ih264d_allocate_dynamic_bufs()
1919 ps_dec->ps_mv_p[1] = pv_buf; in ih264d_allocate_dynamic_bufs()
1926 * ps_dec->u1_recon_mb_grp * 4); in ih264d_allocate_dynamic_bufs()
1927 pv_buf = ps_dec->pf_aligned_alloc(pv_mem_ctxt, 128, size); in ih264d_allocate_dynamic_bufs()
1929 ps_dec->ps_mv_top_p[i] = pv_buf; in ih264d_allocate_dynamic_bufs()
1934 pv_buf = ps_dec->pf_aligned_alloc(pv_mem_ctxt, 128, size); in ih264d_allocate_dynamic_bufs()
1936 ps_dec->pu1_y_intra_pred_line = pv_buf; in ih264d_allocate_dynamic_bufs()
1937 memset(ps_dec->pu1_y_intra_pred_line, 0, size); in ih264d_allocate_dynamic_bufs()
1938 ps_dec->pu1_y_intra_pred_line += MB_SIZE; in ih264d_allocate_dynamic_bufs()
1941 pv_buf = ps_dec->pf_aligned_alloc(pv_mem_ctxt, 128, size); in ih264d_allocate_dynamic_bufs()
1943 ps_dec->pu1_u_intra_pred_line = pv_buf; in ih264d_allocate_dynamic_bufs()
1944 memset(ps_dec->pu1_u_intra_pred_line, 0, size); in ih264d_allocate_dynamic_bufs()
1945 ps_dec->pu1_u_intra_pred_line += MB_SIZE; in ih264d_allocate_dynamic_bufs()
1948 pv_buf = ps_dec->pf_aligned_alloc(pv_mem_ctxt, 128, size); in ih264d_allocate_dynamic_bufs()
1950 ps_dec->pu1_v_intra_pred_line = pv_buf; in ih264d_allocate_dynamic_bufs()
1951 memset(ps_dec->pu1_v_intra_pred_line, 0, size); in ih264d_allocate_dynamic_bufs()
1952 ps_dec->pu1_v_intra_pred_line += MB_SIZE; in ih264d_allocate_dynamic_bufs()
1954 if(ps_dec->u1_separate_parse) in ih264d_allocate_dynamic_bufs()
1964 pv_buf = ps_dec->pf_aligned_alloc(pv_mem_ctxt, 128, size); in ih264d_allocate_dynamic_bufs()
1967 ps_dec->ps_nbr_mb_row = pv_buf; in ih264d_allocate_dynamic_bufs()
1968 memset(ps_dec->ps_nbr_mb_row, 0, size); in ih264d_allocate_dynamic_bufs()
1973 pv_buf = ps_dec->pf_aligned_alloc(pv_mem_ctxt, 128, size); in ih264d_allocate_dynamic_bufs()
1975 ps_dec->ps_deblk_pic = pv_buf; in ih264d_allocate_dynamic_bufs()
1977 memset(ps_dec->ps_deblk_pic, 0, size); in ih264d_allocate_dynamic_bufs()
1981 pv_buf = ps_dec->pf_aligned_alloc(pv_mem_ctxt, 128, size); in ih264d_allocate_dynamic_bufs()
1983 ps_dec->ps_frm_mb_info = pv_buf; in ih264d_allocate_dynamic_bufs()
1984 memset(ps_dec->ps_frm_mb_info, 0, size); in ih264d_allocate_dynamic_bufs()
1988 if((1 >= ps_dec->ps_cur_sps->u1_num_ref_frames) && in ih264d_allocate_dynamic_bufs()
1989 (0 == ps_dec->i4_display_delay)) in ih264d_allocate_dynamic_bufs()
1994 if(BASE_PROFILE_IDC != ps_dec->ps_cur_sps->u1_profile_idc) in ih264d_allocate_dynamic_bufs()
2003 pv_buf = ps_dec->pf_aligned_alloc(pv_mem_ctxt, 128, size); in ih264d_allocate_dynamic_bufs()
2006 ps_dec->ps_dec_slice_buf = pv_buf; in ih264d_allocate_dynamic_bufs()
2007 memset(ps_dec->ps_dec_slice_buf, 0, size); in ih264d_allocate_dynamic_bufs()
2008 pu1_buf = (UWORD8 *)ps_dec->ps_dec_slice_buf; in ih264d_allocate_dynamic_bufs()
2010 ps_dec->pv_map_ref_idx_to_poc_buf = (void *)pu1_buf; in ih264d_allocate_dynamic_bufs()
2014 if(1 == ps_dec->ps_cur_sps->u1_num_ref_frames) in ih264d_allocate_dynamic_bufs()
2020 pv_buf = ps_dec->pf_aligned_alloc(pv_mem_ctxt, 128, size); in ih264d_allocate_dynamic_bufs()
2022 ps_dec->ps_pred_pkd = pv_buf; in ih264d_allocate_dynamic_bufs()
2033 pv_buf = ps_dec->pf_aligned_alloc(pv_mem_ctxt, 128, size); in ih264d_allocate_dynamic_bufs()
2036 ps_dec->pi2_coeff_data = pv_buf; in ih264d_allocate_dynamic_bufs()
2038 ps_dec->pv_pic_tu_coeff_data = (void *)(ps_dec->pi2_coeff_data + MB_LUM_SIZE); in ih264d_allocate_dynamic_bufs()
2044 col_flag_buffer_size = ((ps_dec->u2_pic_wd * ps_dec->u2_pic_ht) >> 4); in ih264d_allocate_dynamic_bufs()
2046 * ((ps_dec->u2_pic_wd * (ps_dec->u2_pic_ht + PAD_MV_BANK_ROW)) >> 4); in ih264d_allocate_dynamic_bufs()
2048 u4_num_bufs = ps_dec->ps_cur_sps->u1_num_ref_frames + 1; in ih264d_allocate_dynamic_bufs()
2050 u4_num_bufs = MIN(u4_num_bufs, ps_dec->u1_pic_bufs); in ih264d_allocate_dynamic_bufs()
2054 pv_buf = ps_dec->pf_aligned_alloc(pv_mem_ctxt, 128, size); in ih264d_allocate_dynamic_bufs()
2056 ps_dec->pu1_mv_bank_buf_base = pv_buf; in ih264d_allocate_dynamic_bufs()
2060 u4_luma_size = ps_dec->u2_frm_wd_y * ps_dec->u2_frm_ht_y; in ih264d_allocate_dynamic_bufs()
2061 u4_chroma_size = ps_dec->u2_frm_wd_uv * ps_dec->u2_frm_ht_uv; in ih264d_allocate_dynamic_bufs()
2064 if(ps_dec->u4_share_disp_buf == 1) in ih264d_allocate_dynamic_bufs()
2070 if((ps_dec->u1_chroma_format == IV_YUV_420SP_UV) in ih264d_allocate_dynamic_bufs()
2071 || (ps_dec->u1_chroma_format == IV_YUV_420SP_VU) in ih264d_allocate_dynamic_bufs()
2072 || (ps_dec->u1_chroma_format == IV_YUV_420P)) in ih264d_allocate_dynamic_bufs()
2077 if(ps_dec->u1_chroma_format == IV_YUV_420SP_UV) in ih264d_allocate_dynamic_bufs()
2086 size *= ps_dec->u1_pic_bufs; in ih264d_allocate_dynamic_bufs()
2087 pv_buf = ps_dec->pf_aligned_alloc(pv_mem_ctxt, 128, size); in ih264d_allocate_dynamic_bufs()
2089 ps_dec->pu1_pic_buf_base = pv_buf; in ih264d_allocate_dynamic_bufs()
2093 ps_dec->p_ctxt_inc_mb_map += 1; in ih264d_allocate_dynamic_bufs()
2101 ps_dec->p_cabac_ctxt_table_t; in ih264d_allocate_dynamic_bufs()
2103 ps_dec->p_coeff_abs_level_minus1_t; in ih264d_allocate_dynamic_bufs()
2104 bin_ctxt_model_t * * p_cbf_t = ps_dec->p_cbf_t; in ih264d_allocate_dynamic_bufs()
2106 ps_dec->p_mb_field_dec_flag_t = p_cabac_ctxt_table_t in ih264d_allocate_dynamic_bufs()
2108 ps_dec->p_prev_intra4x4_pred_mode_flag_t = p_cabac_ctxt_table_t in ih264d_allocate_dynamic_bufs()
2110 ps_dec->p_rem_intra4x4_pred_mode_t = p_cabac_ctxt_table_t in ih264d_allocate_dynamic_bufs()
2112 ps_dec->p_intra_chroma_pred_mode_t = p_cabac_ctxt_table_t in ih264d_allocate_dynamic_bufs()
2114 ps_dec->p_mb_qp_delta_t = p_cabac_ctxt_table_t + MB_QP_DELTA; in ih264d_allocate_dynamic_bufs()
2115 ps_dec->p_ref_idx_t = p_cabac_ctxt_table_t + REF_IDX; in ih264d_allocate_dynamic_bufs()
2116 ps_dec->p_mvd_x_t = p_cabac_ctxt_table_t + MVD_X; in ih264d_allocate_dynamic_bufs()
2117 ps_dec->p_mvd_y_t = p_cabac_ctxt_table_t + MVD_Y; in ih264d_allocate_dynamic_bufs()
2123 ps_dec->p_cbp_luma_t = p_cabac_ctxt_table_t + CBP_LUMA; in ih264d_allocate_dynamic_bufs()
2124 ps_dec->p_cbp_chroma_t = p_cabac_ctxt_table_t + CBP_CHROMA; in ih264d_allocate_dynamic_bufs()
2151 ps_dec->s_high_profile.ps_transform8x8_flag = p_cabac_ctxt_table_t in ih264d_allocate_dynamic_bufs()
2154 ps_dec->s_high_profile.ps_sigcoeff_8x8_frame = p_cabac_ctxt_table_t in ih264d_allocate_dynamic_bufs()
2157 ps_dec->s_high_profile.ps_last_sigcoeff_8x8_frame = in ih264d_allocate_dynamic_bufs()
2161 ps_dec->s_high_profile.ps_coeff_abs_levelminus1 = in ih264d_allocate_dynamic_bufs()
2164 ps_dec->s_high_profile.ps_sigcoeff_8x8_field = p_cabac_ctxt_table_t in ih264d_allocate_dynamic_bufs()
2167 ps_dec->s_high_profile.ps_last_sigcoeff_8x8_field = in ih264d_allocate_dynamic_bufs()
2189 WORD16 ih264d_free_dynamic_bufs(dec_struct_t * ps_dec) in ih264d_free_dynamic_bufs() argument
2191 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->pu1_bits_buf_dynamic); in ih264d_free_dynamic_bufs()
2193 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->ps_deblk_pic); in ih264d_free_dynamic_bufs()
2194 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->pu1_dec_mb_map); in ih264d_free_dynamic_bufs()
2195 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->pu1_recon_mb_map); in ih264d_free_dynamic_bufs()
2196 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->pu2_slice_num_map); in ih264d_free_dynamic_bufs()
2197 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->ps_dec_slice_buf); in ih264d_free_dynamic_bufs()
2198 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->ps_frm_mb_info); in ih264d_free_dynamic_bufs()
2199 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->pi2_coeff_data); in ih264d_free_dynamic_bufs()
2200 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->ps_parse_mb_data); in ih264d_free_dynamic_bufs()
2201 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->ps_parse_part_params); in ih264d_free_dynamic_bufs()
2202 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->ps_deblk_top_mb); in ih264d_free_dynamic_bufs()
2204 if(ps_dec->p_ctxt_inc_mb_map) in ih264d_free_dynamic_bufs()
2206 ps_dec->p_ctxt_inc_mb_map -= 1; in ih264d_free_dynamic_bufs()
2207 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->p_ctxt_inc_mb_map); in ih264d_free_dynamic_bufs()
2210 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->ps_mv_p[0]); in ih264d_free_dynamic_bufs()
2211 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->ps_mv_p[1]); in ih264d_free_dynamic_bufs()
2212 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->ps_pred_pkd); in ih264d_free_dynamic_bufs()
2217 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->ps_mv_top_p[i]); in ih264d_free_dynamic_bufs()
2221 if(ps_dec->pu1_y_intra_pred_line) in ih264d_free_dynamic_bufs()
2223 ps_dec->pu1_y_intra_pred_line -= MB_SIZE; in ih264d_free_dynamic_bufs()
2225 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->pu1_y_intra_pred_line); in ih264d_free_dynamic_bufs()
2227 if(ps_dec->pu1_u_intra_pred_line) in ih264d_free_dynamic_bufs()
2229 ps_dec->pu1_u_intra_pred_line -= MB_SIZE; in ih264d_free_dynamic_bufs()
2231 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->pu1_u_intra_pred_line); in ih264d_free_dynamic_bufs()
2233 if(ps_dec->pu1_v_intra_pred_line) in ih264d_free_dynamic_bufs()
2235 ps_dec->pu1_v_intra_pred_line -= MB_SIZE; in ih264d_free_dynamic_bufs()
2237 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->pu1_v_intra_pred_line); in ih264d_free_dynamic_bufs()
2238 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->ps_nbr_mb_row); in ih264d_free_dynamic_bufs()
2239 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->pu1_mv_bank_buf_base); in ih264d_free_dynamic_bufs()
2240 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->pu1_pic_buf_base); in ih264d_free_dynamic_bufs()
2276 dec_struct_t *ps_dec = (dec_struct_t *)pv_dec; in ih264d_create_mv_bank() local
2281 void *pv_mem_ctxt = ps_dec->pv_mem_ctxt; in ih264d_create_mv_bank()
2287 ih264_buf_mgr_init((buf_mgr_t *)ps_dec->pv_mv_buf_mgr); in ih264d_create_mv_bank()
2289 ps_col_mv = ps_dec->ps_col_mv_base; in ih264d_create_mv_bank()
2291 u4_num_bufs = ps_dec->ps_cur_sps->u1_num_ref_frames + 1; in ih264d_create_mv_bank()
2293 u4_num_bufs = MIN(u4_num_bufs, ps_dec->u1_pic_bufs); in ih264d_create_mv_bank()
2295 pu1_buf = ps_dec->pu1_mv_bank_buf_base; in ih264d_create_mv_bank()
2309 buf_ret = ih264_buf_mgr_add((buf_mgr_t *)ps_dec->pv_mv_buf_mgr, ps_col_mv, i); in ih264d_create_mv_bank()
2312 ps_dec->i4_error_code = ERROR_BUF_MGR; in ih264d_create_mv_bank()