Lines Matching refs:ps_dec
144 WORD32 ih264d_deblock_display(dec_struct_t *ps_dec);
146 void ih264d_signal_decode_thread(dec_struct_t *ps_dec);
148 void ih264d_signal_bs_deblk_thread(dec_struct_t *ps_dec);
149 void ih264d_decode_picture_thread(dec_struct_t *ps_dec);
155 void ih264d_fill_output_struct_from_context(dec_struct_t *ps_dec,
922 dec_struct_t * ps_dec = (dec_struct_t *)ps_dec_params; in ih264d_init_decoder() local
928 memset(ps_dec->ps_pred, 0 , size); in ih264d_init_decoder()
931 memset(ps_dec->pv_disp_buf_mgr, 0 , size); in ih264d_init_decoder()
934 memset(ps_dec->pv_pic_buf_mgr, 0, size); in ih264d_init_decoder()
937 memset(ps_dec->ps_dec_err_status, 0, size); in ih264d_init_decoder()
940 memset(ps_dec->ps_sei, 0, size); in ih264d_init_decoder()
943 memset(ps_dec->ps_dpb_cmds, 0, size); in ih264d_init_decoder()
946 memset(ps_dec->ps_bitstrm, 0, size); in ih264d_init_decoder()
949 memset(ps_dec->ps_cur_slice, 0, size); in ih264d_init_decoder()
952 memset(ps_dec->pv_scratch_sps_pps, 0, size); in ih264d_init_decoder()
955 memset(ps_dec->ps_left_mb_ctxt_info, 0, size); in ih264d_init_decoder()
958 memset(ps_dec->ps_left_mvpred_addr, 0 ,size); in ih264d_init_decoder()
961 memset(ps_dec->pv_mv_buf_mgr, 0, size); in ih264d_init_decoder()
964 ih264d_free_dynamic_bufs(ps_dec); in ih264d_init_decoder()
966 ps_cur_slice = ps_dec->ps_cur_slice; in ih264d_init_decoder()
967 ps_dec->init_done = 0; in ih264d_init_decoder()
969 ps_dec->u4_num_cores = 1; in ih264d_init_decoder()
971 ps_dec->u2_pic_ht = ps_dec->u2_pic_wd = 0; in ih264d_init_decoder()
973 ps_dec->u1_separate_parse = DEFAULT_SEPARATE_PARSE; in ih264d_init_decoder()
974 ps_dec->u4_app_disable_deblk_frm = 0; in ih264d_init_decoder()
975 ps_dec->i4_degrade_type = 0; in ih264d_init_decoder()
976 ps_dec->i4_degrade_pics = 0; in ih264d_init_decoder()
978 ps_dec->i4_app_skip_mode = IVD_SKIP_NONE; in ih264d_init_decoder()
979 ps_dec->i4_dec_skip_mode = IVD_SKIP_NONE; in ih264d_init_decoder()
981 memset(ps_dec->ps_pps, 0, in ih264d_init_decoder()
983 memset(ps_dec->ps_sps, 0, in ih264d_init_decoder()
988 ps_dec->p_DeblockPicture[0] = ih264d_deblock_picture_non_mbaff; in ih264d_init_decoder()
989 ps_dec->p_DeblockPicture[1] = ih264d_deblock_picture_mbaff; in ih264d_init_decoder()
991 ps_dec->s_cab_dec_env.pv_codec_handle = ps_dec; in ih264d_init_decoder()
993 ps_dec->u4_num_fld_in_frm = 0; in ih264d_init_decoder()
995 ps_dec->ps_dpb_mgr->pv_codec_handle = ps_dec; in ih264d_init_decoder()
998 ps_dec->ps_sei->u1_is_valid = 0; in ih264d_init_decoder()
1001 ps_dec->ps_cur_pps = NULL; in ih264d_init_decoder()
1002 ps_dec->ps_cur_sps = NULL; in ih264d_init_decoder()
1003 ps_dec->u1_init_dec_flag = 0; in ih264d_init_decoder()
1004 ps_dec->u1_first_slice_in_stream = 1; in ih264d_init_decoder()
1005 ps_dec->u1_first_pb_nal_in_pic = 1; in ih264d_init_decoder()
1006 ps_dec->u1_last_pic_not_decoded = 0; in ih264d_init_decoder()
1007 ps_dec->u4_app_disp_width = 0; in ih264d_init_decoder()
1008 ps_dec->i4_header_decoded = 0; in ih264d_init_decoder()
1009 ps_dec->u4_total_frames_decoded = 0; in ih264d_init_decoder()
1011 ps_dec->i4_error_code = 0; in ih264d_init_decoder()
1012 ps_dec->i4_content_type = -1; in ih264d_init_decoder()
1013 ps_dec->ps_cur_slice->u1_mbaff_frame_flag = 0; in ih264d_init_decoder()
1015 ps_dec->ps_dec_err_status->u1_err_flag = ACCEPT_ALL_PICS; //REJECT_PB_PICS; in ih264d_init_decoder()
1016 ps_dec->ps_dec_err_status->u1_cur_pic_type = PIC_TYPE_UNKNOWN; in ih264d_init_decoder()
1017 ps_dec->ps_dec_err_status->u4_frm_sei_sync = SYNC_FRM_DEFAULT; in ih264d_init_decoder()
1018 ps_dec->ps_dec_err_status->u4_cur_frm = INIT_FRAME; in ih264d_init_decoder()
1019 ps_dec->ps_dec_err_status->u1_pic_aud_i = PIC_TYPE_UNKNOWN; in ih264d_init_decoder()
1021 ps_dec->u1_pr_sl_type = 0xFF; in ih264d_init_decoder()
1022 ps_dec->u2_mbx = 0xffff; in ih264d_init_decoder()
1023 ps_dec->u2_mby = 0; in ih264d_init_decoder()
1024 ps_dec->u2_total_mbs_coded = 0; in ih264d_init_decoder()
1027 ps_prev_poc = &ps_dec->s_prev_pic_poc; in ih264d_init_decoder()
1028 ps_cur_poc = &ps_dec->s_cur_pic_poc; in ih264d_init_decoder()
1048 ps_dec->i4_max_poc = 0; in ih264d_init_decoder()
1049 ps_dec->i4_prev_max_display_seq = 0; in ih264d_init_decoder()
1050 ps_dec->u1_recon_mb_grp = 4; in ih264d_init_decoder()
1053 ps_dec->u1_second_field = 0; in ih264d_init_decoder()
1054 ps_dec->s_prev_seq_params.u1_eoseq_pending = 0; in ih264d_init_decoder()
1057 ps_dec->u2_crop_offset_y = 0; in ih264d_init_decoder()
1058 ps_dec->u2_crop_offset_uv = 0; in ih264d_init_decoder()
1061 ps_dec->i4_vui_frame_rate = -1; in ih264d_init_decoder()
1062 ps_dec->i4_pic_type = -1; in ih264d_init_decoder()
1063 ps_dec->i4_frametype = -1; in ih264d_init_decoder()
1064 ps_dec->i4_content_type = -1; in ih264d_init_decoder()
1066 ps_dec->u1_res_changed = 0; in ih264d_init_decoder()
1069 ps_dec->u1_frame_decoded_flag = 0; in ih264d_init_decoder()
1072 ps_dec->u4_skip_frm_mask = SKIP_NONE; in ih264d_init_decoder()
1077 ps_dec->pf_cavlc_4x4res_block[0] = ih264d_cavlc_4x4res_block_totalcoeff_1; in ih264d_init_decoder()
1078 ps_dec->pf_cavlc_4x4res_block[1] = in ih264d_init_decoder()
1080 ps_dec->pf_cavlc_4x4res_block[2] = in ih264d_init_decoder()
1083 ps_dec->pf_cavlc_parse4x4coeff[0] = ih264d_cavlc_parse4x4coeff_n0to7; in ih264d_init_decoder()
1084 ps_dec->pf_cavlc_parse4x4coeff[1] = ih264d_cavlc_parse4x4coeff_n8; in ih264d_init_decoder()
1086 ps_dec->pf_cavlc_parse_8x8block[0] = in ih264d_init_decoder()
1088 ps_dec->pf_cavlc_parse_8x8block[1] = in ih264d_init_decoder()
1090 ps_dec->pf_cavlc_parse_8x8block[2] = in ih264d_init_decoder()
1092 ps_dec->pf_cavlc_parse_8x8block[3] = in ih264d_init_decoder()
1098 ps_dec->pf_fill_bs1[0][0] = ih264d_fill_bs1_16x16mb_pslice; in ih264d_init_decoder()
1099 ps_dec->pf_fill_bs1[0][1] = ih264d_fill_bs1_non16x16mb_pslice; in ih264d_init_decoder()
1101 ps_dec->pf_fill_bs1[1][0] = ih264d_fill_bs1_16x16mb_bslice; in ih264d_init_decoder()
1102 ps_dec->pf_fill_bs1[1][1] = ih264d_fill_bs1_non16x16mb_bslice; in ih264d_init_decoder()
1104 ps_dec->pf_fill_bs_xtra_left_edge[0] = in ih264d_init_decoder()
1106 ps_dec->pf_fill_bs_xtra_left_edge[1] = in ih264d_init_decoder()
1110 ih264d_init_ref_bufs(ps_dec->ps_dpb_mgr); in ih264d_init_decoder()
1112 ps_dec->u2_prv_frame_num = 0; in ih264d_init_decoder()
1113 ps_dec->u1_top_bottom_decoded = 0; in ih264d_init_decoder()
1114 ps_dec->u1_dangling_field = 0; in ih264d_init_decoder()
1116 ps_dec->s_cab_dec_env.cabac_table = gau4_ih264d_cabac_table; in ih264d_init_decoder()
1118 ps_dec->pu1_left_mv_ctxt_inc = ps_dec->u1_left_mv_ctxt_inc_arr[0]; in ih264d_init_decoder()
1119 ps_dec->pi1_left_ref_idx_ctxt_inc = in ih264d_init_decoder()
1120 &ps_dec->i1_left_ref_idx_ctx_inc_arr[0][0]; in ih264d_init_decoder()
1121 ps_dec->pu1_left_yuv_dc_csbp = &ps_dec->u1_yuv_dc_csbp_topmb; in ih264d_init_decoder()
1125 ps_dec->u1_flushfrm = 0; in ih264d_init_decoder()
1128 ps_dec->s_cab_dec_env.pv_codec_handle = (void*)ps_dec; in ih264d_init_decoder()
1129 ps_dec->ps_bitstrm->pv_codec_handle = (void*)ps_dec; in ih264d_init_decoder()
1130 ps_dec->ps_cur_slice->pv_codec_handle = (void*)ps_dec; in ih264d_init_decoder()
1131 ps_dec->ps_dpb_mgr->pv_codec_handle = (void*)ps_dec; in ih264d_init_decoder()
1134 memset(ps_dec->disp_bufs, 0, (MAX_DISP_BUFS_NEW) * sizeof(disp_buf_t)); in ih264d_init_decoder()
1135 memset(ps_dec->u4_disp_buf_mapping, 0, in ih264d_init_decoder()
1137 memset(ps_dec->u4_disp_buf_to_be_freed, 0, in ih264d_init_decoder()
1139 memset(ps_dec->ps_cur_slice, 0, sizeof(dec_slice_params_t)); in ih264d_init_decoder()
1141 ih264d_init_arch(ps_dec); in ih264d_init_decoder()
1142 ih264d_init_function_ptr(ps_dec); in ih264d_init_decoder()
1143 ps_dec->e_frm_out_mode = IVD_DISPLAY_FRAME_OUT; in ih264d_init_decoder()
1144 ps_dec->init_done = 1; in ih264d_init_decoder()
1149 dec_struct_t *ps_dec; in ih264d_free_static_bufs() local
1154 ps_dec = (dec_struct_t *)dec_hdl->pv_codec_handle; in ih264d_free_static_bufs()
1155 pf_aligned_free = ps_dec->pf_aligned_free; in ih264d_free_static_bufs()
1156 pv_mem_ctxt = ps_dec->pv_mem_ctxt; in ih264d_free_static_bufs()
1158 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->ps_sps); in ih264d_free_static_bufs()
1159 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->ps_pps); in ih264d_free_static_bufs()
1160 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->pv_dec_thread_handle); in ih264d_free_static_bufs()
1161 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->pv_bs_deblk_thread_handle); in ih264d_free_static_bufs()
1162 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->ps_dpb_mgr); in ih264d_free_static_bufs()
1163 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->ps_pred); in ih264d_free_static_bufs()
1164 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->pv_disp_buf_mgr); in ih264d_free_static_bufs()
1165 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->pv_pic_buf_mgr); in ih264d_free_static_bufs()
1166 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->ps_pic_buf_base); in ih264d_free_static_bufs()
1167 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->ps_dec_err_status); in ih264d_free_static_bufs()
1168 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->ps_sei); in ih264d_free_static_bufs()
1169 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->ps_dpb_cmds); in ih264d_free_static_bufs()
1170 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->ps_bitstrm); in ih264d_free_static_bufs()
1171 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->ps_cur_slice); in ih264d_free_static_bufs()
1172 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->pv_scratch_sps_pps); in ih264d_free_static_bufs()
1173 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->pu1_bits_buf_static); in ih264d_free_static_bufs()
1174 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->ppv_map_ref_idx_to_poc_base); in ih264d_free_static_bufs()
1175 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->p_cabac_ctxt_table_t); in ih264d_free_static_bufs()
1176 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->ps_left_mb_ctxt_info); in ih264d_free_static_bufs()
1177 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->pu1_ref_buff_base); in ih264d_free_static_bufs()
1178 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->pi2_pred1); in ih264d_free_static_bufs()
1179 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->pu1_temp_mc_buffer); in ih264d_free_static_bufs()
1180 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->pu1_init_dpb_base); in ih264d_free_static_bufs()
1181 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->pu4_mbaff_wt_mat); in ih264d_free_static_bufs()
1182 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->pu4_wts_ofsts_mat); in ih264d_free_static_bufs()
1183 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->ps_left_mvpred_addr); in ih264d_free_static_bufs()
1184 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->pv_mv_buf_mgr); in ih264d_free_static_bufs()
1185 PS_DEC_ALIGNED_FREE(ps_dec, ps_dec->ps_col_mv_base); in ih264d_free_static_bufs()
1186 PS_DEC_ALIGNED_FREE(ps_dec, dec_hdl->pv_codec_handle); in ih264d_free_static_bufs()
1220 dec_struct_t *ps_dec; in ih264d_allocate_static_bufs() local
1246 ps_dec = (dec_struct_t *)pv_buf; in ih264d_allocate_static_bufs()
1248 memset(ps_dec, 0, sizeof(dec_struct_t)); in ih264d_allocate_static_bufs()
1251 ps_dec->u4_share_disp_buf = ps_create_ip->s_ivd_create_ip_t.u4_share_disp_buf; in ih264d_allocate_static_bufs()
1253 ps_dec->u4_share_disp_buf = 0; in ih264d_allocate_static_bufs()
1256 ps_dec->u1_chroma_format = in ih264d_allocate_static_bufs()
1259 if((ps_dec->u1_chroma_format != IV_YUV_420P) in ih264d_allocate_static_bufs()
1260 && (ps_dec->u1_chroma_format in ih264d_allocate_static_bufs()
1262 && (ps_dec->u1_chroma_format in ih264d_allocate_static_bufs()
1265 ps_dec->u4_share_disp_buf = 0; in ih264d_allocate_static_bufs()
1268 ps_dec->pf_aligned_alloc = pf_aligned_alloc; in ih264d_allocate_static_bufs()
1269 ps_dec->pf_aligned_free = pf_aligned_free; in ih264d_allocate_static_bufs()
1270 ps_dec->pv_mem_ctxt = pv_mem_ctxt; in ih264d_allocate_static_bufs()
1276 ps_dec->ps_sps = pv_buf; in ih264d_allocate_static_bufs()
1281 ps_dec->ps_pps = pv_buf; in ih264d_allocate_static_bufs()
1286 ps_dec->pv_dec_thread_handle = pv_buf; in ih264d_allocate_static_bufs()
1291 ps_dec->pv_bs_deblk_thread_handle = pv_buf; in ih264d_allocate_static_bufs()
1296 ps_dec->ps_dpb_mgr = pv_buf; in ih264d_allocate_static_bufs()
1301 ps_dec->ps_pred = pv_buf; in ih264d_allocate_static_bufs()
1306 ps_dec->pv_disp_buf_mgr = pv_buf; in ih264d_allocate_static_bufs()
1311 ps_dec->pv_pic_buf_mgr = pv_buf; in ih264d_allocate_static_bufs()
1316 ps_dec->ps_pic_buf_base = pv_buf; in ih264d_allocate_static_bufs()
1321 ps_dec->ps_dec_err_status = (dec_err_status_t *)pv_buf; in ih264d_allocate_static_bufs()
1326 ps_dec->ps_sei = (sei *)pv_buf; in ih264d_allocate_static_bufs()
1331 ps_dec->ps_dpb_cmds = (dpb_commands_t *)pv_buf; in ih264d_allocate_static_bufs()
1336 ps_dec->ps_bitstrm = (dec_bit_stream_t *)pv_buf; in ih264d_allocate_static_bufs()
1341 ps_dec->ps_cur_slice = (dec_slice_params_t *)pv_buf; in ih264d_allocate_static_bufs()
1346 ps_dec->pv_scratch_sps_pps = pv_buf; in ih264d_allocate_static_bufs()
1349 ps_dec->u4_static_bits_buf_size = 256000; in ih264d_allocate_static_bufs()
1350 pv_buf = pf_aligned_alloc(pv_mem_ctxt, 128, ps_dec->u4_static_bits_buf_size); in ih264d_allocate_static_bufs()
1352 ps_dec->pu1_bits_buf_static = pv_buf; in ih264d_allocate_static_bufs()
1359 ps_dec->ppv_map_ref_idx_to_poc_base = pv_buf; in ih264d_allocate_static_bufs()
1360 memset(ps_dec->ppv_map_ref_idx_to_poc_base, 0, size); in ih264d_allocate_static_bufs()
1362 ps_dec->ppv_map_ref_idx_to_poc = ps_dec->ppv_map_ref_idx_to_poc_base + OFFSET_MAP_IDX_POC; in ih264d_allocate_static_bufs()
1368 ps_dec->p_cabac_ctxt_table_t = pv_buf; in ih264d_allocate_static_bufs()
1375 ps_dec->ps_left_mb_ctxt_info = pv_buf; in ih264d_allocate_static_bufs()
1382 ps_dec->pu1_ref_buff_base = pv_buf; in ih264d_allocate_static_bufs()
1383 ps_dec->pu1_ref_buff = ps_dec->pu1_ref_buff_base + MAX_REF_BUF_SIZE; in ih264d_allocate_static_bufs()
1390 ps_dec->pi2_pred1 = pv_buf; in ih264d_allocate_static_bufs()
1396 ps_dec->pu1_temp_mc_buffer = pv_buf; in ih264d_allocate_static_bufs()
1405 ps_dec->pu1_init_dpb_base = pv_buf; in ih264d_allocate_static_bufs()
1407 ps_dec->ps_dpb_mgr->ps_init_dpb[0][0] = (struct pic_buffer_t *)pu1_buf; in ih264d_allocate_static_bufs()
1410 ps_dec->ps_dpb_mgr->ps_init_dpb[1][0] = (struct pic_buffer_t *)pu1_buf; in ih264d_allocate_static_bufs()
1417 ps_dec->pu4_mbaff_wt_mat = pv_buf; in ih264d_allocate_static_bufs()
1423 ps_dec->pu4_wts_ofsts_mat = pv_buf; in ih264d_allocate_static_bufs()
1429 ps_dec->ps_left_mvpred_addr = pv_buf; in ih264d_allocate_static_bufs()
1435 ps_dec->pv_mv_buf_mgr = pv_buf; in ih264d_allocate_static_bufs()
1441 ps_dec->ps_col_mv_base = pv_buf; in ih264d_allocate_static_bufs()
1442 memset(ps_dec->ps_col_mv_base, 0, size); in ih264d_allocate_static_bufs()
1447 ps_init_dpb = ps_dec->ps_dpb_mgr->ps_init_dpb[0][0]; in ih264d_allocate_static_bufs()
1452 ps_dec->ps_dpb_mgr->ps_init_dpb[0][i] = ps_init_dpb; in ih264d_allocate_static_bufs()
1453 ps_dec->ps_dpb_mgr->ps_mod_dpb[0][i] = ps_init_dpb; in ih264d_allocate_static_bufs()
1457 ps_init_dpb = ps_dec->ps_dpb_mgr->ps_init_dpb[1][0]; in ih264d_allocate_static_bufs()
1462 ps_dec->ps_dpb_mgr->ps_init_dpb[1][i] = ps_init_dpb; in ih264d_allocate_static_bufs()
1463 ps_dec->ps_dpb_mgr->ps_mod_dpb[1][i] = ps_init_dpb; in ih264d_allocate_static_bufs()
1467 ih264d_init_decoder(ps_dec); in ih264d_allocate_static_bufs()
1653 dec_struct_t * ps_dec = (dec_struct_t *)(dec_hdl->pv_codec_handle); in ih264d_video_decode() local
1682 ps_dec->pv_dec_out = ps_dec_op; in ih264d_video_decode()
1683 if(ps_dec->init_done != 1) in ih264d_video_decode()
1691 if(0 == ps_dec->u1_flushfrm) in ih264d_video_decode()
1707 ps_dec->u1_pic_decode_done = 0; in ih264d_video_decode()
1711 ps_dec->ps_out_buffer = NULL; in ih264d_video_decode()
1715 ps_dec->ps_out_buffer = &ps_dec_ip->s_out_buffer; in ih264d_video_decode()
1717 ps_dec->u4_fmt_conv_cur_row = 0; in ih264d_video_decode()
1719 ps_dec->u4_output_present = 0; in ih264d_video_decode()
1720 ps_dec->s_disp_op.u4_error_code = 1; in ih264d_video_decode()
1721 ps_dec->u4_fmt_conv_num_rows = FMT_CONV_NUM_ROWS; in ih264d_video_decode()
1722 if(0 == ps_dec->u4_share_disp_buf in ih264d_video_decode()
1723 && ps_dec->i4_decode_header == 0) in ih264d_video_decode()
1726 if(ps_dec->ps_out_buffer->u4_num_bufs == 0) in ih264d_video_decode()
1733 for(i = 0; i < ps_dec->ps_out_buffer->u4_num_bufs; i++) in ih264d_video_decode()
1735 if(ps_dec->ps_out_buffer->pu1_bufs[i] == NULL) in ih264d_video_decode()
1742 if(ps_dec->ps_out_buffer->u4_min_out_buf_size[i] == 0) in ih264d_video_decode()
1752 if(ps_dec->u4_total_frames_decoded >= NUM_FRAMES_LIMIT) in ih264d_video_decode()
1759 ps_dec->u4_ts = ps_dec_ip->u4_ts; in ih264d_video_decode()
1766 ps_dec->i4_frametype = -1; in ih264d_video_decode()
1767 ps_dec->i4_content_type = -1; in ih264d_video_decode()
1772 if((TOP_FIELD_ONLY | BOT_FIELD_ONLY) == ps_dec->u1_top_bottom_decoded) in ih264d_video_decode()
1774 ps_dec->u1_top_bottom_decoded = 0; in ih264d_video_decode()
1777 ps_dec->u4_slice_start_code_found = 0; in ih264d_video_decode()
1783 if(ps_dec->u1_init_dec_flag == 1 && ps_dec->u4_share_disp_buf == 1 in ih264d_video_decode()
1784 && ps_dec->u1_flushfrm == 0) in ih264d_video_decode()
1792 for(i = 0; i < ps_dec->u1_pic_bufs; i++) in ih264d_video_decode()
1794 if(0 == ps_dec->u4_disp_buf_mapping[i] in ih264d_video_decode()
1795 || 1 == ps_dec->u4_disp_buf_to_be_freed[i]) in ih264d_video_decode()
1816 (buf_mgr_t *)ps_dec->pv_pic_buf_mgr, &free_id); in ih264d_video_decode()
1825 if(0 != ps_dec->u4_disp_buf_mapping[i]) in ih264d_video_decode()
1848 if(1 == ps_dec->u4_disp_buf_mapping[free_id]) in ih264d_video_decode()
1851 (buf_mgr_t *)ps_dec->pv_pic_buf_mgr, in ih264d_video_decode()
1861 ih264_buf_mgr_release((buf_mgr_t *)ps_dec->pv_pic_buf_mgr, in ih264d_video_decode()
1871 if(ps_dec->u1_flushfrm && ps_dec->u1_init_dec_flag) in ih264d_video_decode()
1874 ih264d_get_next_display_field(ps_dec, ps_dec->ps_out_buffer, in ih264d_video_decode()
1875 &(ps_dec->s_disp_op)); in ih264d_video_decode()
1876 if(0 == ps_dec->s_disp_op.u4_error_code) in ih264d_video_decode()
1878 ps_dec->u4_fmt_conv_cur_row = 0; in ih264d_video_decode()
1879 ps_dec->u4_fmt_conv_num_rows = ps_dec->s_disp_frame_info.u4_y_ht; in ih264d_video_decode()
1880 ih264d_format_convert(ps_dec, &(ps_dec->s_disp_op), in ih264d_video_decode()
1881 ps_dec->u4_fmt_conv_cur_row, in ih264d_video_decode()
1882 ps_dec->u4_fmt_conv_num_rows); in ih264d_video_decode()
1883 ps_dec->u4_fmt_conv_cur_row += ps_dec->u4_fmt_conv_num_rows; in ih264d_video_decode()
1884 ps_dec->u4_output_present = 1; in ih264d_video_decode()
1887 ih264d_release_display_field(ps_dec, &(ps_dec->s_disp_op)); in ih264d_video_decode()
1889 ps_dec_op->u4_pic_wd = (UWORD32)ps_dec->u2_disp_width; in ih264d_video_decode()
1890 ps_dec_op->u4_pic_ht = (UWORD32)ps_dec->u2_disp_height; in ih264d_video_decode()
1894 ps_dec_op->u4_output_present = ps_dec->u4_output_present; in ih264d_video_decode()
1896 ps_dec->s_disp_op.u4_progressive_frame_flag; in ih264d_video_decode()
1898 ps_dec->s_disp_op.e_output_format; in ih264d_video_decode()
1899 ps_dec_op->s_disp_frm_buf = ps_dec->s_disp_op.s_disp_frm_buf; in ih264d_video_decode()
1900 ps_dec_op->e4_fld_type = ps_dec->s_disp_op.e4_fld_type; in ih264d_video_decode()
1901 ps_dec_op->u4_ts = ps_dec->s_disp_op.u4_ts; in ih264d_video_decode()
1902 ps_dec_op->u4_disp_buf_id = ps_dec->s_disp_op.u4_disp_buf_id; in ih264d_video_decode()
1909 if(0 == ps_dec->s_disp_op.u4_error_code) in ih264d_video_decode()
1917 if(ps_dec->u1_res_changed == 1) in ih264d_video_decode()
1920 ih264d_init_decoder(ps_dec); in ih264d_video_decode()
1923 ps_dec->u4_prev_nal_skipped = 0; in ih264d_video_decode()
1925 ps_dec->u2_cur_mb_addr = 0; in ih264d_video_decode()
1926 ps_dec->u2_total_mbs_coded = 0; in ih264d_video_decode()
1927 ps_dec->u2_cur_slice_num = 0; in ih264d_video_decode()
1928 ps_dec->cur_dec_mb_num = 0; in ih264d_video_decode()
1929 ps_dec->cur_recon_mb_num = 0; in ih264d_video_decode()
1930 ps_dec->u4_first_slice_in_pic = 2; in ih264d_video_decode()
1931 ps_dec->u1_first_pb_nal_in_pic = 1; in ih264d_video_decode()
1932 ps_dec->u1_slice_header_done = 0; in ih264d_video_decode()
1933 ps_dec->u1_dangling_field = 0; in ih264d_video_decode()
1935 ps_dec->u4_dec_thread_created = 0; in ih264d_video_decode()
1936 ps_dec->u4_bs_deblk_thread_created = 0; in ih264d_video_decode()
1937 ps_dec->u4_cur_bs_mb_num = 0; in ih264d_video_decode()
1938 ps_dec->u4_start_recon_deblk = 0; in ih264d_video_decode()
1943 ps_dec->u4_pic_buf_got = 0; in ih264d_video_decode()
1958 if((NULL == ps_dec->pu1_bits_buf_dynamic) && in ih264d_video_decode()
1959 (ps_dec->i4_header_decoded & 1)) in ih264d_video_decode()
1964 void *pv_mem_ctxt = ps_dec->pv_mem_ctxt; in ih264d_video_decode()
1965 size = MAX(256000, ps_dec->u2_pic_wd * ps_dec->u2_pic_ht * 3 / 2); in ih264d_video_decode()
1966 pv_buf = ps_dec->pf_aligned_alloc(pv_mem_ctxt, 128, size); in ih264d_video_decode()
1968 ps_dec->pu1_bits_buf_dynamic = pv_buf; in ih264d_video_decode()
1969 ps_dec->u4_dynamic_bits_buf_size = size; in ih264d_video_decode()
1972 if(ps_dec->pu1_bits_buf_dynamic) in ih264d_video_decode()
1974 pu1_bitstrm_buf = ps_dec->pu1_bits_buf_dynamic; in ih264d_video_decode()
1975 buf_size = ps_dec->u4_dynamic_bits_buf_size; in ih264d_video_decode()
1979 pu1_bitstrm_buf = ps_dec->pu1_bits_buf_static; in ih264d_video_decode()
1980 buf_size = ps_dec->u4_static_bits_buf_size; in ih264d_video_decode()
2000 if(ps_dec->i4_app_skip_mode == IVD_SKIP_B) in ih264d_video_decode()
2026 ih264d_signal_decode_thread(ps_dec); in ih264d_video_decode()
2028 if(ps_dec->u4_num_cores == 3) in ih264d_video_decode()
2030 ih264d_signal_bs_deblk_thread(ps_dec); in ih264d_video_decode()
2062 ps_dec->i4_error_code = ERROR_START_CODE_NOT_FOUND; in ih264d_video_decode()
2065 if(ps_dec->u4_pic_buf_got == 0) in ih264d_video_decode()
2068 ih264d_fill_output_struct_from_context(ps_dec, in ih264d_video_decode()
2071 ps_dec_op->u4_error_code = ps_dec->i4_error_code; in ih264d_video_decode()
2078 ps_dec->u1_pic_decode_done = 1; in ih264d_video_decode()
2091 ps_dec->u4_return_to_app = 0; in ih264d_video_decode()
2106 ps_dec->u4_slice_start_code_found = 0; in ih264d_video_decode()
2125 if(ps_dec->u4_return_to_app) in ih264d_video_decode()
2134 ih264d_signal_decode_thread(ps_dec); in ih264d_video_decode()
2136 if(ps_dec->u4_num_cores == 3) in ih264d_video_decode()
2138 ih264d_signal_bs_deblk_thread(ps_dec); in ih264d_video_decode()
2146 header_data_left = ((ps_dec->i4_decode_header == 1) in ih264d_video_decode()
2147 && (ps_dec->i4_header_decoded != 3) in ih264d_video_decode()
2150 frame_data_left = (((ps_dec->i4_decode_header == 0) in ih264d_video_decode()
2151 && ((ps_dec->u1_pic_decode_done == 0) in ih264d_video_decode()
2158 if((ps_dec->u4_slice_start_code_found == 1) in ih264d_video_decode()
2160 && ps_dec->u2_total_mbs_coded < ps_dec->u2_frm_ht_in_mbs * ps_dec->u2_frm_wd_in_mbs) in ih264d_video_decode()
2168 num_mb_skipped = (ps_dec->u2_frm_ht_in_mbs * ps_dec->u2_frm_wd_in_mbs) in ih264d_video_decode()
2169 - ps_dec->u2_total_mbs_coded; in ih264d_video_decode()
2171 if(ps_dec->u4_first_slice_in_pic && (ps_dec->u4_pic_buf_got == 0)) in ih264d_video_decode()
2176 if(ps_dec->u4_first_slice_in_pic && (ps_dec->u2_total_mbs_coded == 0)) in ih264d_video_decode()
2179 …ret1 = ih264d_mark_err_slice_skip(ps_dec, num_mb_skipped, ps_dec->u1_nal_unit_type == IDR_SLICE_NA… in ih264d_video_decode()
2197 ih264d_signal_decode_thread(ps_dec); in ih264d_video_decode()
2199 if(ps_dec->u4_num_cores == 3) in ih264d_video_decode()
2201 ih264d_signal_bs_deblk_thread(ps_dec); in ih264d_video_decode()
2212 if(ps_dec->u1_separate_parse) in ih264d_video_decode()
2216 if(ps_dec->u4_num_cores == 2) in ih264d_video_decode()
2220 …if((ps_dec->u4_nmb_deblk == 0) &&(ps_dec->u4_start_recon_deblk == 1) && (ps_dec->ps_cur_sps->u1_mb… in ih264d_video_decode()
2225 pad_mgr_t *ps_pad_mgr = &ps_dec->s_pad_mgr; in ih264d_video_decode()
2228 u4_max_addr = (ps_dec->u2_frm_wd_in_mbs * ps_dec->u2_frm_ht_in_mbs) - 1; in ih264d_video_decode()
2229 ps_dec->u4_cur_bs_mb_num = u4_max_addr + 1; in ih264d_video_decode()
2232 ih264d_init_deblk_tfr_ctxt(ps_dec, ps_pad_mgr, ps_tfr_cxt, in ih264d_video_decode()
2233 ps_dec->u2_frm_wd_in_mbs, 0); in ih264d_video_decode()
2237 - ps_dec->u4_cur_deblk_mb_num + 1; in ih264d_video_decode()
2242 ih264d_check_mb_map_deblk(ps_dec, u4_num_mbs, in ih264d_video_decode()
2245 ps_dec->u4_start_recon_deblk = 0; in ih264d_video_decode()
2252 ih264d_signal_decode_thread(ps_dec); in ih264d_video_decode()
2254 if(ps_dec->u4_num_cores == 3) in ih264d_video_decode()
2256 ih264d_signal_bs_deblk_thread(ps_dec); in ih264d_video_decode()
2267 ps_dec_op->u4_pic_wd = (UWORD32)ps_dec->u2_disp_width; in ih264d_video_decode()
2268 ps_dec_op->u4_pic_ht = (UWORD32)ps_dec->u2_disp_height; in ih264d_video_decode()
2272 if(ps_dec->i4_header_decoded != 3) in ih264d_video_decode()
2278 if(ps_dec->i4_decode_header == 1 && ps_dec->i4_header_decoded != 3) in ih264d_video_decode()
2283 if(ps_dec->u4_prev_nal_skipped) in ih264d_video_decode()
2291 if(ps_dec->u4_num_cores == 3) in ih264d_video_decode()
2293 ih264d_signal_bs_deblk_thread(ps_dec); in ih264d_video_decode()
2299 if((ps_dec->u4_slice_start_code_found == 1) in ih264d_video_decode()
2306 if(ps_dec->ps_cur_slice->u1_field_pic_flag) in ih264d_video_decode()
2308 if(1 == ps_dec->ps_cur_slice->u1_bottom_field_flag) in ih264d_video_decode()
2310 ps_dec->u1_top_bottom_decoded |= BOT_FIELD_ONLY; in ih264d_video_decode()
2314 ps_dec->u1_top_bottom_decoded |= TOP_FIELD_ONLY; in ih264d_video_decode()
2321 if((ps_dec->ps_dec_err_status->u1_err_flag & REJECT_CUR_PIC) == 0) in ih264d_video_decode()
2324 ret = ih264d_deblock_display(ps_dec); in ih264d_video_decode()
2333 if(ps_dec->i4_header_decoded == 3) in ih264d_video_decode()
2335 ps_dec->u2_total_mbs_coded = ps_dec->ps_cur_sps->u2_max_mb_addr + 1; in ih264d_video_decode()
2339 if(ps_dec->ps_cur_slice->u1_nal_unit_type == IDR_SLICE_NAL) in ih264d_video_decode()
2341 ps_dec->i4_frametype = IV_IDR_FRAME; in ih264d_video_decode()
2343 else if(ps_dec->i4_pic_type == B_SLICE) in ih264d_video_decode()
2345 ps_dec->i4_frametype = IV_B_FRAME; in ih264d_video_decode()
2347 else if(ps_dec->i4_pic_type == P_SLICE) in ih264d_video_decode()
2349 ps_dec->i4_frametype = IV_P_FRAME; in ih264d_video_decode()
2351 else if(ps_dec->i4_pic_type == I_SLICE) in ih264d_video_decode()
2353 ps_dec->i4_frametype = IV_I_FRAME; in ih264d_video_decode()
2361 ps_dec->i4_content_type = ps_dec->ps_cur_slice->u1_field_pic_flag; in ih264d_video_decode()
2363 ps_dec->u4_total_frames_decoded = ps_dec->u4_total_frames_decoded + 2; in ih264d_video_decode()
2364 ps_dec->u4_total_frames_decoded = ps_dec->u4_total_frames_decoded in ih264d_video_decode()
2365 - ps_dec->ps_cur_slice->u1_field_pic_flag; in ih264d_video_decode()
2370 if(ps_dec->u4_num_cores == 3) in ih264d_video_decode()
2372 ih264d_signal_bs_deblk_thread(ps_dec); in ih264d_video_decode()
2382 if((IVD_DECODE_FRAME_OUT == ps_dec->e_frm_out_mode) in ih264d_video_decode()
2383 && ps_dec->u1_init_dec_flag) in ih264d_video_decode()
2386 ih264d_get_next_display_field(ps_dec, ps_dec->ps_out_buffer, in ih264d_video_decode()
2387 &(ps_dec->s_disp_op)); in ih264d_video_decode()
2388 if(0 == ps_dec->s_disp_op.u4_error_code) in ih264d_video_decode()
2390 ps_dec->u4_fmt_conv_cur_row = 0; in ih264d_video_decode()
2391 ps_dec->u4_output_present = 1; in ih264d_video_decode()
2395 ih264d_fill_output_struct_from_context(ps_dec, ps_dec_op); in ih264d_video_decode()
2399 if(ps_dec->u4_output_present && in ih264d_video_decode()
2400 (ps_dec->u4_fmt_conv_cur_row < ps_dec->s_disp_frame_info.u4_y_ht)) in ih264d_video_decode()
2402 ps_dec->u4_fmt_conv_num_rows = ps_dec->s_disp_frame_info.u4_y_ht in ih264d_video_decode()
2403 - ps_dec->u4_fmt_conv_cur_row; in ih264d_video_decode()
2404 ih264d_format_convert(ps_dec, &(ps_dec->s_disp_op), in ih264d_video_decode()
2405 ps_dec->u4_fmt_conv_cur_row, in ih264d_video_decode()
2406 ps_dec->u4_fmt_conv_num_rows); in ih264d_video_decode()
2407 ps_dec->u4_fmt_conv_cur_row += ps_dec->u4_fmt_conv_num_rows; in ih264d_video_decode()
2410 ih264d_release_display_field(ps_dec, &(ps_dec->s_disp_op)); in ih264d_video_decode()
2413 if(ps_dec->i4_decode_header == 1 && (ps_dec->i4_header_decoded & 1) == 1) in ih264d_video_decode()
2416 if((NULL != ps_dec->ps_cur_sps) && (1 == (ps_dec->ps_cur_sps->u1_is_valid))) in ih264d_video_decode()
2418 if((0 == ps_dec->ps_sps->u1_frame_mbs_only_flag) in ih264d_video_decode()
2419 && (0 == ps_dec->ps_sps->u1_mb_aff_flag)) in ih264d_video_decode()
2530 dec_struct_t * ps_dec = (dec_struct_t *)(dec_hdl->pv_codec_handle); in ih264d_set_display_frame() local
2537 ps_dec->u4_num_disp_bufs = 0; in ih264d_set_display_frame()
2538 if(ps_dec->u4_share_disp_buf) in ih264d_set_display_frame()
2544 ps_dec->u4_num_disp_bufs = u4_num_bufs; in ih264d_set_display_frame()
2547 ps_dec->disp_bufs[i].u4_num_bufs = in ih264d_set_display_frame()
2550 ps_dec->disp_bufs[i].buf[0] = in ih264d_set_display_frame()
2552 ps_dec->disp_bufs[i].buf[1] = in ih264d_set_display_frame()
2554 ps_dec->disp_bufs[i].buf[2] = in ih264d_set_display_frame()
2557 ps_dec->disp_bufs[i].u4_bufsize[0] = in ih264d_set_display_frame()
2559 ps_dec->disp_bufs[i].u4_bufsize[1] = in ih264d_set_display_frame()
2561 ps_dec->disp_bufs[i].u4_bufsize[2] = in ih264d_set_display_frame()
2593 dec_struct_t * ps_dec; in ih264d_set_flush_mode() local
2597 ps_dec = (dec_struct_t *)(dec_hdl->pv_codec_handle); in ih264d_set_flush_mode()
2601 ps_dec->u1_flushfrm = 1; in ih264d_set_flush_mode()
2603 if(ps_dec->u1_init_dec_flag == 1) in ih264d_set_flush_mode()
2605 ih264d_release_pics_in_dpb((void *)ps_dec, ps_dec->u1_pic_bufs); in ih264d_set_flush_mode()
2606 ih264d_release_display_bufs(ps_dec); in ih264d_set_flush_mode()
2640 dec_struct_t * ps_dec; in ih264d_get_status() local
2646 ps_dec = (dec_struct_t *)(dec_hdl->pv_codec_handle); in ih264d_get_status()
2649 if((NULL != ps_dec->ps_cur_sps) && (1 == (ps_dec->ps_cur_sps->u1_is_valid))) in ih264d_get_status()
2651 ps_ctl_op->u4_pic_ht = ps_dec->u2_disp_height; in ih264d_get_status()
2652 ps_ctl_op->u4_pic_wd = ps_dec->u2_disp_width; in ih264d_get_status()
2654 if(0 == ps_dec->u4_share_disp_buf) in ih264d_get_status()
2656 pic_wd = ps_dec->u2_disp_width; in ih264d_get_status()
2657 pic_ht = ps_dec->u2_disp_height; in ih264d_get_status()
2662 pic_wd = ps_dec->u2_frm_wd_y; in ih264d_get_status()
2663 pic_ht = ps_dec->u2_frm_ht_y; in ih264d_get_status()
2674 if(1 == ps_dec->u4_share_disp_buf) in ih264d_get_status()
2683 if(ps_dec->u4_app_disp_width > pic_wd) in ih264d_get_status()
2684 pic_wd = ps_dec->u4_app_disp_width; in ih264d_get_status()
2685 if(0 == ps_dec->u4_share_disp_buf) in ih264d_get_status()
2689 if((NULL != ps_dec->ps_cur_sps) && (1 == (ps_dec->ps_cur_sps->u1_is_valid))) in ih264d_get_status()
2691 if((ps_dec->ps_cur_sps->u1_vui_parameters_present_flag == 1) && in ih264d_get_status()
2692 (1 == ps_dec->ps_cur_sps->s_vui.u1_bitstream_restriction_flag)) in ih264d_get_status()
2695 ps_dec->ps_cur_sps->s_vui.u4_num_reorder_frames + 1; in ih264d_get_status()
2701 ps_ctl_op->u4_num_disp_bufs = ih264d_get_dpb_size(ps_dec->ps_cur_sps); in ih264d_get_status()
2705 ps_dec->ps_cur_sps->u1_num_ref_frames + 1; in ih264d_get_status()
2717 ps_ctl_op->u4_error_code = ps_dec->i4_error_code; in ih264d_get_status()
2721 ps_ctl_op->e_content_type = ps_dec->i4_content_type; in ih264d_get_status()
2722 ps_ctl_op->e_output_chroma_format = ps_dec->u1_chroma_format; in ih264d_get_status()
2725 if(ps_dec->u1_chroma_format == IV_YUV_420P) in ih264d_get_status()
2729 else if(ps_dec->u1_chroma_format == IV_YUV_422ILE) in ih264d_get_status()
2733 else if(ps_dec->u1_chroma_format == IV_RGB_565) in ih264d_get_status()
2737 else if((ps_dec->u1_chroma_format == IV_YUV_420SP_UV) in ih264d_get_status()
2738 || (ps_dec->u1_chroma_format == IV_YUV_420SP_VU)) in ih264d_get_status()
2756 if(ps_dec->u1_chroma_format == IV_YUV_420P) in ih264d_get_status()
2764 else if(ps_dec->u1_chroma_format == IV_YUV_422ILE) in ih264d_get_status()
2771 else if(ps_dec->u1_chroma_format == IV_RGB_565) in ih264d_get_status()
2778 else if((ps_dec->u1_chroma_format == IV_YUV_420SP_UV) in ih264d_get_status()
2779 || (ps_dec->u1_chroma_format == IV_YUV_420SP_VU)) in ih264d_get_status()
2787 ps_dec->u4_num_disp_bufs_requested = ps_ctl_op->u4_num_disp_bufs; in ih264d_get_status()
2815 dec_struct_t * ps_dec; in ih264d_get_buf_info() local
2823 ps_dec = (dec_struct_t *)(dec_hdl->pv_codec_handle); in ih264d_get_buf_info()
2826 if(ps_dec->u1_chroma_format == IV_YUV_420P) in ih264d_get_buf_info()
2828 else if(ps_dec->u1_chroma_format == IV_YUV_422ILE) in ih264d_get_buf_info()
2830 else if(ps_dec->u1_chroma_format == IV_RGB_565) in ih264d_get_buf_info()
2832 else if((ps_dec->u1_chroma_format == IV_YUV_420SP_UV) in ih264d_get_buf_info()
2833 || (ps_dec->u1_chroma_format == IV_YUV_420SP_VU)) in ih264d_get_buf_info()
2848 if(ps_dec->i4_header_decoded == 3) in ih264d_get_buf_info()
2851 if(0 == ps_dec->u4_share_disp_buf) in ih264d_get_buf_info()
2853 pic_wd = ps_dec->u2_disp_width; in ih264d_get_buf_info()
2854 pic_ht = ps_dec->u2_disp_height; in ih264d_get_buf_info()
2859 pic_wd = ps_dec->u2_frm_wd_y; in ih264d_get_buf_info()
2860 pic_ht = ps_dec->u2_frm_ht_y; in ih264d_get_buf_info()
2869 if((WORD32)ps_dec->u4_app_disp_width > pic_wd) in ih264d_get_buf_info()
2870 pic_wd = ps_dec->u4_app_disp_width; in ih264d_get_buf_info()
2872 if(0 == ps_dec->u4_share_disp_buf) in ih264d_get_buf_info()
2876 if((NULL != ps_dec->ps_cur_sps) && (1 == (ps_dec->ps_cur_sps->u1_is_valid))) in ih264d_get_buf_info()
2878 if((ps_dec->ps_cur_sps->u1_vui_parameters_present_flag == 1) && in ih264d_get_buf_info()
2879 (1 == ps_dec->ps_cur_sps->s_vui.u1_bitstream_restriction_flag)) in ih264d_get_buf_info()
2882 ps_dec->ps_cur_sps->s_vui.u4_num_reorder_frames + 1; in ih264d_get_buf_info()
2888 ps_ctl_op->u4_num_disp_bufs = ih264d_get_dpb_size(ps_dec->ps_cur_sps); in ih264d_get_buf_info()
2892 ps_dec->ps_cur_sps->u1_num_ref_frames + 1; in ih264d_get_buf_info()
2908 if(ps_dec->u1_chroma_format == IV_YUV_420P) in ih264d_get_buf_info()
2916 else if(ps_dec->u1_chroma_format == IV_YUV_422ILE) in ih264d_get_buf_info()
2923 else if(ps_dec->u1_chroma_format == IV_RGB_565) in ih264d_get_buf_info()
2930 else if((ps_dec->u1_chroma_format == IV_YUV_420SP_UV) in ih264d_get_buf_info()
2931 || (ps_dec->u1_chroma_format == IV_YUV_420SP_VU)) in ih264d_get_buf_info()
2938 ps_dec->u4_num_disp_bufs_requested = ps_ctl_op->u4_num_disp_bufs; in ih264d_get_buf_info()
2966 dec_struct_t * ps_dec; in ih264d_set_params() local
2974 ps_dec = (dec_struct_t *)(dec_hdl->pv_codec_handle); in ih264d_set_params()
2976 ps_dec->u4_skip_frm_mask = 0; in ih264d_set_params()
2980 ps_dec->i4_app_skip_mode = ps_ctl_ip->e_frm_skip_mode; in ih264d_set_params()
2988 ps_dec->u4_skip_frm_mask |= 1 << P_SLC_BIT; in ih264d_set_params()
2990 ps_dec->u4_skip_frm_mask |= 1 << B_SLC_BIT; in ih264d_set_params()
2993 ps_dec->u4_skip_frm_mask |= 1 << B_SLC_BIT; in ih264d_set_params()
2994 ps_dec->u4_skip_frm_mask |= 1 << P_SLC_BIT; in ih264d_set_params()
2997 ps_dec->u4_skip_frm_mask |= 1 << I_SLC_BIT; in ih264d_set_params()
3008 if((0 != ps_dec->u4_app_disp_width) in ih264d_set_params()
3010 != ps_dec->u4_app_disp_width)) in ih264d_set_params()
3018 if(ps_ctl_ip->u4_disp_wd >= ps_dec->u2_pic_wd) in ih264d_set_params()
3020 ps_dec->u4_app_disp_width = ps_ctl_ip->u4_disp_wd; in ih264d_set_params()
3022 else if(0 == ps_dec->i4_header_decoded) in ih264d_set_params()
3024 ps_dec->u4_app_disp_width = ps_ctl_ip->u4_disp_wd; in ih264d_set_params()
3028 ps_dec->u4_app_disp_width = 0; in ih264d_set_params()
3036 ps_dec->u4_app_disp_width = 0; in ih264d_set_params()
3043 ps_dec->i4_decode_header = 0; in ih264d_set_params()
3045 ps_dec->i4_decode_header = 1; in ih264d_set_params()
3049 ps_dec->i4_decode_header = 1; in ih264d_set_params()
3052 ps_dec->e_frm_out_mode = IVD_DISPLAY_FRAME_OUT; in ih264d_set_params()
3060 ps_dec->e_frm_out_mode = ps_ctl_ip->e_frm_out_mode; in ih264d_set_params()
3090 dec_struct_t * ps_dec; in ih264d_set_default_params() local
3095 ps_dec = (dec_struct_t *)(dec_hdl->pv_codec_handle); in ih264d_set_default_params()
3100 ps_dec->u4_app_disp_width = 0; in ih264d_set_default_params()
3101 ps_dec->u4_skip_frm_mask = 0; in ih264d_set_default_params()
3102 ps_dec->i4_decode_header = 1; in ih264d_set_default_params()
3133 dec_struct_t *ps_dec; in ih264d_delete() local
3137 ps_dec = (dec_struct_t *)(dec_hdl->pv_codec_handle); in ih264d_delete()
3140 ih264d_free_dynamic_bufs(ps_dec); in ih264d_delete()
3167 dec_struct_t * ps_dec; in ih264d_reset() local
3172 ps_dec = (dec_struct_t *)(dec_hdl->pv_codec_handle); in ih264d_reset()
3174 if(ps_dec != NULL) in ih264d_reset()
3176 ih264d_init_decoder(ps_dec); in ih264d_reset()
3214 dec_struct_t *ps_dec = dec_hdl->pv_codec_handle; in ih264d_ctl() local
3216 if(ps_dec->init_done != 1) in ih264d_ctl()
3315 dec_struct_t *ps_dec = dec_hdl->pv_codec_handle; in ih264d_rel_display_frame() local
3322 if(0 == ps_dec->u4_share_disp_buf) in ih264d_rel_display_frame()
3324 ps_dec->u4_disp_buf_mapping[u4_ts] = 0; in ih264d_rel_display_frame()
3325 ps_dec->u4_disp_buf_to_be_freed[u4_ts] = 0; in ih264d_rel_display_frame()
3329 if(ps_dec->pv_pic_buf_mgr != NULL) in ih264d_rel_display_frame()
3331 if(1 == ps_dec->u4_disp_buf_mapping[u4_ts]) in ih264d_rel_display_frame()
3333 ih264_buf_mgr_release((buf_mgr_t *)ps_dec->pv_pic_buf_mgr, in ih264d_rel_display_frame()
3336 ps_dec->u4_disp_buf_mapping[u4_ts] = 0; in ih264d_rel_display_frame()
3341 if((1 == ps_dec->u4_share_disp_buf) && (0 == buf_released)) in ih264d_rel_display_frame()
3342 ps_dec->u4_disp_buf_to_be_freed[u4_ts] = 1; in ih264d_rel_display_frame()
3401 dec_struct_t *ps_dec = dec_hdl->pv_codec_handle; in ih264d_get_frame_dimensions() local
3408 if((NULL != ps_dec->ps_cur_sps) && (1 == (ps_dec->ps_cur_sps->u1_is_valid))) in ih264d_get_frame_dimensions()
3410 disp_wd = ps_dec->u2_disp_width; in ih264d_get_frame_dimensions()
3411 disp_ht = ps_dec->u2_disp_height; in ih264d_get_frame_dimensions()
3413 if(0 == ps_dec->u4_share_disp_buf) in ih264d_get_frame_dimensions()
3420 buffer_wd = ps_dec->u2_frm_wd_y; in ih264d_get_frame_dimensions()
3421 buffer_ht = ps_dec->u2_frm_ht_y; in ih264d_get_frame_dimensions()
3429 if(0 == ps_dec->u4_share_disp_buf) in ih264d_get_frame_dimensions()
3440 if(ps_dec->u4_app_disp_width > buffer_wd) in ih264d_get_frame_dimensions()
3441 buffer_wd = ps_dec->u4_app_disp_width; in ih264d_get_frame_dimensions()
3443 if(0 == ps_dec->u4_share_disp_buf) in ih264d_get_frame_dimensions()
3453 if((NULL != ps_dec->ps_sps) && (1 == (ps_dec->ps_sps->u1_is_valid)) in ih264d_get_frame_dimensions()
3454 && (0 != ps_dec->u2_crop_offset_y)) in ih264d_get_frame_dimensions()
3456 y_offset += ps_dec->u2_crop_offset_y / ps_dec->u2_frm_wd_y; in ih264d_get_frame_dimensions()
3457 x_offset += ps_dec->u2_crop_offset_y % ps_dec->u2_frm_wd_y; in ih264d_get_frame_dimensions()
3481 if((ps_dec->u1_chroma_format == IV_YUV_420SP_UV) in ih264d_get_frame_dimensions()
3482 || (ps_dec->u1_chroma_format == IV_YUV_420SP_VU)) in ih264d_get_frame_dimensions()
3506 dec_struct_t *ps_dec = dec_hdl->pv_codec_handle; in ih264d_get_vui_params() local
3520 if(NULL == ps_dec->ps_cur_sps) in ih264d_get_vui_params()
3526 ps_sps = ps_dec->ps_cur_sps; in ih264d_get_vui_params()
3570 dec_struct_t *ps_dec = dec_hdl->pv_codec_handle; in ih264d_set_num_cores() local
3575 ps_dec->u4_num_cores = ps_ip->u4_num_cores; in ih264d_set_num_cores()
3576 if(ps_dec->u4_num_cores == 1) in ih264d_set_num_cores()
3578 ps_dec->u1_separate_parse = 0; in ih264d_set_num_cores()
3582 ps_dec->u1_separate_parse = 1; in ih264d_set_num_cores()
3586 if(ps_dec->u4_num_cores > 3) in ih264d_set_num_cores()
3587 ps_dec->u4_num_cores = 3; in ih264d_set_num_cores()
3592 void ih264d_fill_output_struct_from_context(dec_struct_t *ps_dec, in ih264d_fill_output_struct_from_context() argument
3598 ps_dec_op->u4_pic_wd = (UWORD32)ps_dec->u2_disp_width; in ih264d_fill_output_struct_from_context()
3599 ps_dec_op->u4_pic_ht = (UWORD32)ps_dec->u2_disp_height; in ih264d_fill_output_struct_from_context()
3601 ps_dec_op->e_pic_type = ps_dec->i4_frametype; in ih264d_fill_output_struct_from_context()
3604 ps_dec_op->u4_output_present = ps_dec->u4_output_present; in ih264d_fill_output_struct_from_context()
3606 ps_dec->s_disp_op.u4_progressive_frame_flag; in ih264d_fill_output_struct_from_context()
3611 if(ps_dec->ps_cur_slice->u1_nal_ref_idc == 0) in ih264d_fill_output_struct_from_context()
3615 ps_dec_op->e_output_format = ps_dec->s_disp_op.e_output_format; in ih264d_fill_output_struct_from_context()
3616 ps_dec_op->s_disp_frm_buf = ps_dec->s_disp_op.s_disp_frm_buf; in ih264d_fill_output_struct_from_context()
3617 ps_dec_op->e4_fld_type = ps_dec->s_disp_op.e4_fld_type; in ih264d_fill_output_struct_from_context()
3618 ps_dec_op->u4_ts = ps_dec->s_disp_op.u4_ts; in ih264d_fill_output_struct_from_context()
3619 ps_dec_op->u4_disp_buf_id = ps_dec->s_disp_op.u4_disp_buf_id; in ih264d_fill_output_struct_from_context()