• Home
  • Raw
  • Download

Lines Matching refs:ps_dec

88 void ih264d_form_pred_weight_matrix(dec_struct_t *ps_dec)  in ih264d_form_pred_weight_matrix()  argument
98 ps_cur_slice = ps_dec->ps_cur_slice; in ih264d_form_pred_weight_matrix()
102 pu4_mat_iwt_ofst = ps_dec->pu4_wts_ofsts_mat; in ih264d_form_pred_weight_matrix()
161 WORD32 ih264d_start_of_pic(dec_struct_t *ps_dec, in ih264d_start_of_pic() argument
167 pocstruct_t *ps_prev_poc = &ps_dec->s_cur_pic_poc; in ih264d_start_of_pic()
173 (ivd_video_decode_op_t *)ps_dec->pv_dec_out; in ih264d_start_of_pic()
174 dec_slice_params_t *ps_cur_slice = ps_dec->ps_cur_slice; in ih264d_start_of_pic()
182 H264_MUTEX_LOCK(&ps_dec->process_disp_mutex); in ih264d_start_of_pic()
192 ps_prev_poc->u1_bot_field = ps_dec->ps_cur_slice->u1_bottom_field_flag; in ih264d_start_of_pic()
195 ps_dec->i1_prev_mb_qp_delta = 0; in ih264d_start_of_pic()
196 ps_dec->i1_next_ctxt_idx = 0; in ih264d_start_of_pic()
199 ps_dec->u4_nmb_deblk = 0; in ih264d_start_of_pic()
200 if(ps_dec->u4_num_cores == 1) in ih264d_start_of_pic()
201 ps_dec->u4_nmb_deblk = 1; in ih264d_start_of_pic()
207 ps_dec->u4_nmb_deblk = 0; in ih264d_start_of_pic()
208 if(ps_dec->u4_num_cores > 2) in ih264d_start_of_pic()
209 ps_dec->u4_num_cores = 2; in ih264d_start_of_pic()
212 ps_dec->u4_use_intrapred_line_copy = 0; in ih264d_start_of_pic()
218 ps_dec->u4_use_intrapred_line_copy = 1; in ih264d_start_of_pic()
221 ps_dec->u4_app_disable_deblk_frm = 0; in ih264d_start_of_pic()
223 if(ps_dec->i4_degrade_type && ps_dec->i4_degrade_pics) in ih264d_start_of_pic()
226 ps_dec->i4_degrade_pic_cnt++; in ih264d_start_of_pic()
230 switch(ps_dec->i4_degrade_pics) in ih264d_start_of_pic()
249 && (ps_dec->i4_degrade_pic_cnt in ih264d_start_of_pic()
250 != ps_dec->i4_nondegrade_interval)) in ih264d_start_of_pic()
268 if(ps_dec->i4_degrade_type & 0x2) in ih264d_start_of_pic()
269 ps_dec->u4_app_disable_deblk_frm = 1; in ih264d_start_of_pic()
274 if(ps_dec->i4_degrade_type & 0x4) in ih264d_start_of_pic()
275 ps_dec->i4_mv_frac_mask = 0; in ih264d_start_of_pic()
277 if(ps_dec->i4_degrade_type & 0x8) in ih264d_start_of_pic()
278 ps_dec->i4_mv_frac_mask = 0; in ih264d_start_of_pic()
282 ps_dec->i4_degrade_pic_cnt = 0; in ih264d_start_of_pic()
286 dec_err_status_t * ps_err = ps_dec->ps_dec_err_status; in ih264d_start_of_pic()
287 if(ps_dec->u1_sl_typ_5_9 in ih264d_start_of_pic()
304 ih264d_reset_ref_bufs(ps_dec->ps_dpb_mgr); in ih264d_start_of_pic()
309 if(ps_dec->u1_init_dec_flag && ps_dec->s_prev_seq_params.u1_eoseq_pending) in ih264d_start_of_pic()
316 ih264_buf_mgr_release((buf_mgr_t *)ps_dec->pv_pic_buf_mgr, in ih264d_start_of_pic()
319 ih264_buf_mgr_release((buf_mgr_t *)ps_dec->pv_mv_buf_mgr, in ih264d_start_of_pic()
320 ps_dec->au1_pic_buf_id_mv_buf_id_map[j], in ih264d_start_of_pic()
322 ih264_buf_mgr_release((buf_mgr_t *)ps_dec->pv_pic_buf_mgr, in ih264d_start_of_pic()
328 ps_dec->u1_second_field = 0; in ih264d_start_of_pic()
329 ps_dec->i4_cur_display_seq = 0; in ih264d_start_of_pic()
336 ps_dec->s_prev_seq_params.u1_eoseq_pending = 0; in ih264d_start_of_pic()
338 ret = ih264d_init_pic(ps_dec, u2_frame_num, i4_poc, ps_pps); in ih264d_start_of_pic()
342 ps_dec->pv_parse_tu_coeff_data = ps_dec->pv_pic_tu_coeff_data; in ih264d_start_of_pic()
343 ps_dec->pv_proc_tu_coeff_data = ps_dec->pv_pic_tu_coeff_data; in ih264d_start_of_pic()
344 ps_dec->ps_nmb_info = ps_dec->ps_frm_mb_info; in ih264d_start_of_pic()
345 if(ps_dec->u1_separate_parse) in ih264d_start_of_pic()
351 pic_wd = ps_dec->u2_pic_wd; in ih264d_start_of_pic()
352 pic_ht = ps_dec->u2_pic_ht; in ih264d_start_of_pic()
355 if(ps_dec->pu1_dec_mb_map) in ih264d_start_of_pic()
357 memset((void *)ps_dec->pu1_dec_mb_map, 0, num_mbs); in ih264d_start_of_pic()
360 if(ps_dec->pu1_recon_mb_map) in ih264d_start_of_pic()
363 memset((void *)ps_dec->pu1_recon_mb_map, 0, num_mbs); in ih264d_start_of_pic()
366 if(ps_dec->pu2_slice_num_map) in ih264d_start_of_pic()
368 memset((void *)ps_dec->pu2_slice_num_map, 0, in ih264d_start_of_pic()
374 ps_dec->ps_parse_cur_slice = &(ps_dec->ps_dec_slice_buf[0]); in ih264d_start_of_pic()
375 ps_dec->ps_decode_cur_slice = &(ps_dec->ps_dec_slice_buf[0]); in ih264d_start_of_pic()
376 ps_dec->ps_computebs_cur_slice = &(ps_dec->ps_dec_slice_buf[0]); in ih264d_start_of_pic()
377 ps_dec->u2_cur_slice_num = 0; in ih264d_start_of_pic()
380 ps_dec->s_high_profile.u1_scaling_present = 0; in ih264d_start_of_pic()
381 ps_dec->s_high_profile.u1_transform8x8_present = 0; in ih264d_start_of_pic()
384 if(1 == ps_dec->u4_share_disp_buf) in ih264d_start_of_pic()
390 if(0 == ps_dec->u4_disp_buf_to_be_freed[i]) in ih264d_start_of_pic()
392 ih264_buf_mgr_release((buf_mgr_t *)ps_dec->pv_pic_buf_mgr, i, in ih264d_start_of_pic()
394 ps_dec->u4_disp_buf_to_be_freed[i] = 0; in ih264d_start_of_pic()
395 ps_dec->u4_disp_buf_mapping[i] = 0; in ih264d_start_of_pic()
399 if(!(u1_field_pic_flag && 0 != ps_dec->u1_top_bottom_decoded)) //ps_dec->u1_second_field)) in ih264d_start_of_pic()
407 (buf_mgr_t *)ps_dec->pv_pic_buf_mgr, in ih264d_start_of_pic()
411 ps_dec->i4_error_code = ERROR_UNAVAIL_PICBUF_T; in ih264d_start_of_pic()
414 if(0 == ps_dec->u4_disp_buf_mapping[cur_pic_buf_id]) in ih264d_start_of_pic()
420 ps_col_mv = (col_mv_buf_t *)ih264_buf_mgr_get_next_free((buf_mgr_t *)ps_dec->pv_mv_buf_mgr, in ih264d_start_of_pic()
424 ps_dec->i4_error_code = ERROR_UNAVAIL_MVBUF_T; in ih264d_start_of_pic()
428 ps_dec->ps_cur_pic = ps_cur_pic; in ih264d_start_of_pic()
429 ps_dec->u1_pic_buf_id = cur_pic_buf_id; in ih264d_start_of_pic()
430 ps_cur_pic->u4_ts = ps_dec->u4_ts; in ih264d_start_of_pic()
434 ps_dec->au1_pic_buf_id_mv_buf_id_map[cur_pic_buf_id] = cur_mv_buf_id; in ih264d_start_of_pic()
438 ps_dec->au1_pic_buf_ref_flag[cur_pic_buf_id] = 0; in ih264d_start_of_pic()
439 if(ps_dec->u1_first_slice_in_stream) in ih264d_start_of_pic()
442 ps_dec->ps_ref_pic_buf_lx[0] = ps_dec->ps_dpb_mgr->ps_init_dpb[0]; in ih264d_start_of_pic()
443 *(ps_dec->ps_dpb_mgr->ps_init_dpb[0][0]) = *ps_cur_pic; in ih264d_start_of_pic()
445 *(ps_dec->ps_dpb_mgr->ps_init_dpb[0][MAX_REF_BUFS]) = *ps_cur_pic; in ih264d_start_of_pic()
448 if(!ps_dec->ps_cur_pic) in ih264d_start_of_pic()
455 ih264_buf_mgr_release((buf_mgr_t *)ps_dec->pv_pic_buf_mgr, in ih264d_start_of_pic()
458 ih264_buf_mgr_release((buf_mgr_t *)ps_dec->pv_mv_buf_mgr, in ih264d_start_of_pic()
459 ps_dec->au1_pic_buf_id_mv_buf_id_map[j], in ih264d_start_of_pic()
461 ih264_buf_mgr_release((buf_mgr_t *)ps_dec->pv_pic_buf_mgr, in ih264d_start_of_pic()
466 ps_dec->i4_cur_display_seq = 0; in ih264d_start_of_pic()
467 ps_dec->i4_prev_max_display_seq = 0; in ih264d_start_of_pic()
468 ps_dec->i4_max_poc = 0; in ih264d_start_of_pic()
471 (buf_mgr_t *)ps_dec->pv_pic_buf_mgr, in ih264d_start_of_pic()
475 ps_dec->i4_error_code = ERROR_UNAVAIL_PICBUF_T; in ih264d_start_of_pic()
479 … ps_col_mv = (col_mv_buf_t *)ih264_buf_mgr_get_next_free((buf_mgr_t *)ps_dec->pv_mv_buf_mgr, in ih264d_start_of_pic()
483 ps_dec->i4_error_code = ERROR_UNAVAIL_MVBUF_T; in ih264d_start_of_pic()
487 ps_dec->ps_cur_pic = ps_cur_pic; in ih264d_start_of_pic()
488 ps_dec->u1_pic_buf_id = cur_pic_buf_id; in ih264d_start_of_pic()
489 ps_cur_pic->u4_ts = ps_dec->u4_ts; in ih264d_start_of_pic()
490 ps_dec->apv_buf_id_pic_buf_map[cur_pic_buf_id] = (void *)ps_cur_pic; in ih264d_start_of_pic()
493 ps_dec->au1_pic_buf_id_mv_buf_id_map[cur_pic_buf_id] = cur_mv_buf_id; in ih264d_start_of_pic()
497 ps_dec->au1_pic_buf_ref_flag[cur_pic_buf_id] = 0; in ih264d_start_of_pic()
501 ps_dec->ps_cur_pic->u1_picturetype = u1_field_pic_flag; in ih264d_start_of_pic()
502 ps_dec->ps_cur_pic->u4_pack_slc_typ = SKIP_NONE; in ih264d_start_of_pic()
510 ps_dec->u4_pic_buf_got = 1; in ih264d_start_of_pic()
512 ps_dec->ps_cur_pic->i4_poc = i4_poc; in ih264d_start_of_pic()
513 ps_dec->ps_cur_pic->i4_frame_num = u2_frame_num; in ih264d_start_of_pic()
514 ps_dec->ps_cur_pic->i4_pic_num = u2_frame_num; in ih264d_start_of_pic()
515 ps_dec->ps_cur_pic->i4_top_field_order_cnt = ps_pps->i4_top_field_order_cnt; in ih264d_start_of_pic()
516 ps_dec->ps_cur_pic->i4_bottom_field_order_cnt = in ih264d_start_of_pic()
518 ps_dec->ps_cur_pic->i4_avg_poc = ps_pps->i4_avg_poc; in ih264d_start_of_pic()
519 ps_dec->ps_cur_pic->u4_time_stamp = ps_dec->u4_pts; in ih264d_start_of_pic()
521 ps_dec->s_cur_pic = *(ps_dec->ps_cur_pic); in ih264d_start_of_pic()
527 ps_dec->s_cur_pic.pu1_buf1 += ps_dec->s_cur_pic.u2_frm_wd_y; in ih264d_start_of_pic()
528 ps_dec->s_cur_pic.pu1_buf2 += ps_dec->s_cur_pic.u2_frm_wd_uv; in ih264d_start_of_pic()
529 ps_dec->s_cur_pic.pu1_buf3 += ps_dec->s_cur_pic.u2_frm_wd_uv; in ih264d_start_of_pic()
530 ps_dec->s_cur_pic.ps_mv += in ih264d_start_of_pic()
531 ((ps_dec->u2_pic_ht * ps_dec->u2_pic_wd) >> 5); in ih264d_start_of_pic()
532 ps_dec->s_cur_pic.pu1_col_zero_flag += ((ps_dec->u2_pic_ht in ih264d_start_of_pic()
533 * ps_dec->u2_pic_wd) >> 5); in ih264d_start_of_pic()
534 ps_dec->ps_cur_pic->u1_picturetype |= BOT_FLD; in ih264d_start_of_pic()
535 i4_top_field_order_poc = ps_dec->ps_cur_pic->i4_top_field_order_cnt; in ih264d_start_of_pic()
536 i4_bot_field_order_poc = ps_dec->ps_cur_pic->i4_bottom_field_order_cnt; in ih264d_start_of_pic()
539 ps_dec->ps_cur_pic->i4_avg_poc = i4_temp_poc; in ih264d_start_of_pic()
545 ps_dec->ps_cur_pic->u1_picturetype |= (ps_cur_slice->u1_mbaff_frame_flag in ih264d_start_of_pic()
548 ps_dec->ps_cur_mb_row = ps_dec->ps_nbr_mb_row; //[0]; in ih264d_start_of_pic()
550 ps_dec->ps_cur_mb_row += 2; in ih264d_start_of_pic()
551 ps_dec->ps_top_mb_row = ps_dec->ps_nbr_mb_row; in ih264d_start_of_pic()
552ps_dec->ps_top_mb_row += ((ps_dec->u2_frm_wd_in_mbs + 2) << (1 - ps_dec->ps_cur_sps->u1_frame_mbs_… in ih264d_start_of_pic()
554 ps_dec->ps_top_mb_row += 2; in ih264d_start_of_pic()
557 ps_dec->ps_mv_cur = ps_dec->s_cur_pic.ps_mv; in ih264d_start_of_pic()
558 ps_dec->ps_mv_top = ps_dec->ps_mv_top_p[0]; in ih264d_start_of_pic()
560 ps_dec->u1_mv_top_p = 0; in ih264d_start_of_pic()
561 ps_dec->u1_mb_idx = 0; in ih264d_start_of_pic()
563 ps_dec->ps_mv_left = ps_dec->s_cur_pic.ps_mv; in ih264d_start_of_pic()
564 ps_dec->u2_total_mbs_coded = 0; in ih264d_start_of_pic()
565 ps_dec->i4_submb_ofst = -(SUB_BLK_SIZE); in ih264d_start_of_pic()
566 ps_dec->u4_pred_info_idx = 0; in ih264d_start_of_pic()
567 ps_dec->u4_pred_info_pkd_idx = 0; in ih264d_start_of_pic()
568 ps_dec->u4_dma_buf_idx = 0; in ih264d_start_of_pic()
569 ps_dec->ps_mv = ps_dec->s_cur_pic.ps_mv; in ih264d_start_of_pic()
570 ps_dec->ps_mv_bank_cur = ps_dec->s_cur_pic.ps_mv; in ih264d_start_of_pic()
571 ps_dec->pu1_col_zero_flag = ps_dec->s_cur_pic.pu1_col_zero_flag; in ih264d_start_of_pic()
572 ps_dec->ps_part = ps_dec->ps_parse_part_params; in ih264d_start_of_pic()
573 ps_dec->i2_prev_slice_mbx = -1; in ih264d_start_of_pic()
574 ps_dec->i2_prev_slice_mby = 0; in ih264d_start_of_pic()
575 ps_dec->u2_mv_2mb[0] = 0; in ih264d_start_of_pic()
576 ps_dec->u2_mv_2mb[1] = 0; in ih264d_start_of_pic()
577 ps_dec->u1_last_pic_not_decoded = 0; in ih264d_start_of_pic()
579 ps_dec->u2_cur_slice_num_dec_thread = 0; in ih264d_start_of_pic()
580 ps_dec->u2_cur_slice_num_bs = 0; in ih264d_start_of_pic()
581 ps_dec->u4_intra_pred_line_ofst = 0; in ih264d_start_of_pic()
582 ps_dec->pu1_cur_y_intra_pred_line = ps_dec->pu1_y_intra_pred_line; in ih264d_start_of_pic()
583 ps_dec->pu1_cur_u_intra_pred_line = ps_dec->pu1_u_intra_pred_line; in ih264d_start_of_pic()
584 ps_dec->pu1_cur_v_intra_pred_line = ps_dec->pu1_v_intra_pred_line; in ih264d_start_of_pic()
586 ps_dec->pu1_cur_y_intra_pred_line_base = ps_dec->pu1_y_intra_pred_line; in ih264d_start_of_pic()
587 ps_dec->pu1_cur_u_intra_pred_line_base = ps_dec->pu1_u_intra_pred_line; in ih264d_start_of_pic()
588 ps_dec->pu1_cur_v_intra_pred_line_base = ps_dec->pu1_v_intra_pred_line; in ih264d_start_of_pic()
594 ps_dec->pu1_prev_y_intra_pred_line = ps_dec->pu1_y_intra_pred_line in ih264d_start_of_pic()
595 + (ps_dec->u2_frm_wd_in_mbs * MB_SIZE); in ih264d_start_of_pic()
597 ps_dec->pu1_prev_u_intra_pred_line = ps_dec->pu1_u_intra_pred_line in ih264d_start_of_pic()
598 + ps_dec->u2_frm_wd_in_mbs * BLK8x8SIZE * YUV420SP_FACTOR; in ih264d_start_of_pic()
599 ps_dec->pu1_prev_v_intra_pred_line = ps_dec->pu1_v_intra_pred_line in ih264d_start_of_pic()
600 + ps_dec->u2_frm_wd_in_mbs * BLK8x8SIZE; in ih264d_start_of_pic()
602 ps_dec->ps_deblk_mbn = ps_dec->ps_deblk_pic; in ih264d_start_of_pic()
607 ps_dec->pf_compute_bs = ih264d_compute_bs_mbaff; in ih264d_start_of_pic()
608 ps_dec->pf_mvpred = ih264d_mvpred_mbaff; in ih264d_start_of_pic()
612 ps_dec->pf_compute_bs = ih264d_compute_bs_non_mbaff; in ih264d_start_of_pic()
613 ps_dec->u1_cur_mb_fld_dec_flag = ps_cur_slice->u1_field_pic_flag; in ih264d_start_of_pic()
618 UWORD8 u1_field_pic_flag = ps_dec->ps_cur_slice->u1_field_pic_flag; in ih264d_start_of_pic()
622 UWORD8 uc_lastmbs = (((ps_dec->u2_pic_wd) >> 4) in ih264d_start_of_pic()
623 % (ps_dec->u1_recon_mb_grp >> u1_mbaff)); in ih264d_start_of_pic()
625 (uc_lastmbs ? (uc_lastmbs << 4) : ((ps_dec->u1_recon_mb_grp in ih264d_start_of_pic()
628 uc_lastmbs ? (uc_lastmbs << 3) : ((ps_dec->u1_recon_mb_grp in ih264d_start_of_pic()
631 ps_dec->s_tran_addrecon.pu1_dest_y = ps_dec->s_cur_pic.pu1_buf1; in ih264d_start_of_pic()
632 ps_dec->s_tran_addrecon.pu1_dest_u = ps_dec->s_cur_pic.pu1_buf2; in ih264d_start_of_pic()
633 ps_dec->s_tran_addrecon.pu1_dest_v = ps_dec->s_cur_pic.pu1_buf3; in ih264d_start_of_pic()
635 ps_dec->s_tran_addrecon.u2_frm_wd_y = ps_dec->u2_frm_wd_y in ih264d_start_of_pic()
637 ps_dec->s_tran_addrecon.u2_frm_wd_uv = ps_dec->u2_frm_wd_uv in ih264d_start_of_pic()
642 ui16_lastmbs_widthY += ps_dec->u2_frm_wd_y; in ih264d_start_of_pic()
643 ui16_lastmbs_widthUV += ps_dec->u2_frm_wd_uv; in ih264d_start_of_pic()
647 ps_dec->s_tran_addrecon.u4_inc_y[0] = ((ps_dec->u1_recon_mb_grp << 4) in ih264d_start_of_pic()
649 ps_dec->s_tran_addrecon.u4_inc_uv[0] = ((ps_dec->u1_recon_mb_grp << 4) in ih264d_start_of_pic()
653 ps_dec->s_tran_addrecon.u4_inc_y[1] = (ui16_lastmbs_widthY in ih264d_start_of_pic()
655 + ps_dec->s_tran_addrecon.u2_frm_wd_y in ih264d_start_of_pic()
657 ps_dec->s_tran_addrecon.u4_inc_uv[1] = (ui16_lastmbs_widthUV in ih264d_start_of_pic()
659 + ps_dec->s_tran_addrecon.u2_frm_wd_uv in ih264d_start_of_pic()
664 ih264d_assign_pic_num(ps_dec); in ih264d_start_of_pic()
665 ps_dec->s_tran_addrecon.u2_mv_top_left_inc = (ps_dec->u1_recon_mb_grp in ih264d_start_of_pic()
667 ps_dec->s_tran_addrecon.u2_mv_left_inc = ((ps_dec->u1_recon_mb_grp in ih264d_start_of_pic()
678 ih264d_form_scaling_matrix_picture(ps_seq, ps_pps, ps_dec); in ih264d_start_of_pic()
679 ps_dec->s_high_profile.u1_scaling_present = 1; in ih264d_start_of_pic()
683 ih264d_form_default_scaling_matrix(ps_dec); in ih264d_start_of_pic()
688 ps_dec->s_high_profile.u1_transform8x8_present = 1; in ih264d_start_of_pic()
693 ih264d_form_default_scaling_matrix(ps_dec); in ih264d_start_of_pic()
697 ps_dec->s_high_profile.u1_direct_8x8_inference_flag = in ih264d_start_of_pic()
699 ps_dec->s_high_profile.s_cavlc_ctxt = ps_dec->s_cavlc_ctxt; in ih264d_start_of_pic()
701 ps_dec->i1_recon_in_thread3_flag = 1; in ih264d_start_of_pic()
702 ps_dec->ps_frame_buf_ip_recon = &ps_dec->s_tran_addrecon; in ih264d_start_of_pic()
703 if(ps_dec->u1_separate_parse) in ih264d_start_of_pic()
705 memcpy(&ps_dec->s_tran_addrecon_parse, &ps_dec->s_tran_addrecon, in ih264d_start_of_pic()
707 if(ps_dec->u4_num_cores >= 3 && ps_dec->i1_recon_in_thread3_flag) in ih264d_start_of_pic()
709 memcpy(&ps_dec->s_tran_iprecon, &ps_dec->s_tran_addrecon, in ih264d_start_of_pic()
711 ps_dec->ps_frame_buf_ip_recon = &ps_dec->s_tran_iprecon; in ih264d_start_of_pic()
716 ih264d_init_deblk_tfr_ctxt(ps_dec,&(ps_dec->s_pad_mgr), &(ps_dec->s_tran_addrecon), in ih264d_start_of_pic()
717 ps_dec->u2_frm_wd_in_mbs, 0); in ih264d_start_of_pic()
719 ps_dec->ps_cur_deblk_mb = ps_dec->ps_deblk_pic; in ih264d_start_of_pic()
720 ps_dec->u4_cur_deblk_mb_num = 0; in ih264d_start_of_pic()
722 ps_dec->u4_deblk_mb_x = 0; in ih264d_start_of_pic()
723 ps_dec->u4_deblk_mb_y = 0; in ih264d_start_of_pic()
724 ps_dec->pu4_wt_ofsts = ps_dec->pu4_wts_ofsts_mat; in ih264d_start_of_pic()
726 H264_MUTEX_UNLOCK(&ps_dec->process_disp_mutex); in ih264d_start_of_pic()
740 WORD32 ih264d_end_of_pic_dispbuf_mgr(dec_struct_t * ps_dec) in ih264d_end_of_pic_dispbuf_mgr() argument
742 dec_slice_params_t *ps_cur_slice = ps_dec->ps_cur_slice; in ih264d_end_of_pic_dispbuf_mgr()
746 H264_MUTEX_LOCK(&ps_dec->process_disp_mutex); in ih264d_end_of_pic_dispbuf_mgr()
751 ih264d_delete_nonref_nondisplay_pics(ps_dec->ps_dpb_mgr); in ih264d_end_of_pic_dispbuf_mgr()
755 ps_dec->ps_cur_pic->i4_poc = 0; in ih264d_end_of_pic_dispbuf_mgr()
756 if(ps_dec->u2_total_mbs_coded in ih264d_end_of_pic_dispbuf_mgr()
757 == (ps_dec->ps_cur_sps->u2_max_mb_addr + 1)) in ih264d_end_of_pic_dispbuf_mgr()
758 ih264d_reset_ref_bufs(ps_dec->ps_dpb_mgr); in ih264d_end_of_pic_dispbuf_mgr()
759 ih264d_release_display_bufs(ps_dec); in ih264d_end_of_pic_dispbuf_mgr()
761 if(IVD_DECODE_FRAME_OUT != ps_dec->e_frm_out_mode) in ih264d_end_of_pic_dispbuf_mgr()
763 ret = ih264d_assign_display_seq(ps_dec); in ih264d_end_of_pic_dispbuf_mgr()
772 ih264_buf_mgr_set_status((buf_mgr_t *)ps_dec->pv_pic_buf_mgr, in ih264d_end_of_pic_dispbuf_mgr()
773 ps_dec->u1_pic_buf_id, in ih264d_end_of_pic_dispbuf_mgr()
776 ih264_buf_mgr_set_status((buf_mgr_t *)ps_dec->pv_mv_buf_mgr, in ih264d_end_of_pic_dispbuf_mgr()
777 ps_dec->au1_pic_buf_id_mv_buf_id_map[ps_dec->u1_pic_buf_id], in ih264d_end_of_pic_dispbuf_mgr()
779 ps_dec->au1_pic_buf_ref_flag[ps_dec->u1_pic_buf_id] = 1; in ih264d_end_of_pic_dispbuf_mgr()
785 if(((0 == ps_dec->u1_last_pic_not_decoded) in ih264d_end_of_pic_dispbuf_mgr()
787 == (ps_dec->ps_cur_pic->u4_pack_slc_typ in ih264d_end_of_pic_dispbuf_mgr()
788 & ps_dec->u4_skip_frm_mask))) in ih264d_end_of_pic_dispbuf_mgr()
792 ih264_buf_mgr_set_status((buf_mgr_t *)ps_dec->pv_pic_buf_mgr, in ih264d_end_of_pic_dispbuf_mgr()
793 ps_dec->u1_pic_buf_id, in ih264d_end_of_pic_dispbuf_mgr()
800 != ps_dec->u1_top_bottom_decoded)) in ih264d_end_of_pic_dispbuf_mgr()
802 pic_buffer_t *ps_cur_pic = ps_dec->ps_cur_pic; in ih264d_end_of_pic_dispbuf_mgr()
803 ps_cur_pic->u2_disp_width = ps_dec->u2_disp_width; in ih264d_end_of_pic_dispbuf_mgr()
804 ps_cur_pic->u2_disp_height = ps_dec->u2_disp_height >> 1; in ih264d_end_of_pic_dispbuf_mgr()
806 ps_cur_pic->u2_crop_offset_y = ps_dec->u2_crop_offset_y; in ih264d_end_of_pic_dispbuf_mgr()
807 ps_cur_pic->u2_crop_offset_uv = ps_dec->u2_crop_offset_uv; in ih264d_end_of_pic_dispbuf_mgr()
811 ps_dec->ps_dpb_mgr, in ih264d_end_of_pic_dispbuf_mgr()
812 ps_dec->u1_pic_buf_id, in ih264d_end_of_pic_dispbuf_mgr()
813 ps_dec->i4_prev_max_display_seq in ih264d_end_of_pic_dispbuf_mgr()
814 + ps_dec->ps_cur_pic->i4_poc, in ih264d_end_of_pic_dispbuf_mgr()
815 ps_dec->ps_cur_pic->i4_frame_num); in ih264d_end_of_pic_dispbuf_mgr()
821 (ivd_video_decode_op_t *)ps_dec->pv_dec_out; in ih264d_end_of_pic_dispbuf_mgr()
825 if(ps_dec->au1_pic_buf_ref_flag[ps_dec->u1_pic_buf_id] == 0) in ih264d_end_of_pic_dispbuf_mgr()
827 ih264_buf_mgr_release((buf_mgr_t *)ps_dec->pv_mv_buf_mgr, in ih264d_end_of_pic_dispbuf_mgr()
828 ps_dec->au1_pic_buf_id_mv_buf_id_map[ps_dec->u1_pic_buf_id], in ih264d_end_of_pic_dispbuf_mgr()
830 ps_dec->au1_pic_buf_ref_flag[ps_dec->u1_pic_buf_id] = 0; in ih264d_end_of_pic_dispbuf_mgr()
838 ps_dec->u1_second_field); in ih264d_end_of_pic_dispbuf_mgr()
843 == ps_dec->u1_top_bottom_decoded)) in ih264d_end_of_pic_dispbuf_mgr()
845 if(IVD_DECODE_FRAME_OUT == ps_dec->e_frm_out_mode) in ih264d_end_of_pic_dispbuf_mgr()
847 ret = ih264d_assign_display_seq(ps_dec); in ih264d_end_of_pic_dispbuf_mgr()
854 H264_MUTEX_UNLOCK(&ps_dec->process_disp_mutex); in ih264d_end_of_pic_dispbuf_mgr()
859 void ih264d_err_pic_dispbuf_mgr(dec_struct_t *ps_dec) in ih264d_err_pic_dispbuf_mgr() argument
861 dec_slice_params_t *ps_cur_slice = ps_dec->ps_cur_slice; in ih264d_err_pic_dispbuf_mgr()
863 (ivd_video_decode_op_t *)ps_dec->pv_dec_out; in ih264d_err_pic_dispbuf_mgr()
865 ih264_buf_mgr_release((buf_mgr_t *)ps_dec->pv_pic_buf_mgr, in ih264d_err_pic_dispbuf_mgr()
866 ps_dec->u1_pic_buf_id, in ih264d_err_pic_dispbuf_mgr()
868 ih264_buf_mgr_release((buf_mgr_t *)ps_dec->pv_mv_buf_mgr, in ih264d_err_pic_dispbuf_mgr()
869 ps_dec->au1_pic_buf_id_mv_buf_id_map[ps_dec->u1_pic_buf_id], in ih264d_err_pic_dispbuf_mgr()
871 ih264_buf_mgr_release((buf_mgr_t *)ps_dec->pv_pic_buf_mgr, in ih264d_err_pic_dispbuf_mgr()
872 ps_dec->u1_pic_buf_id, in ih264d_err_pic_dispbuf_mgr()
878 dec_struct_t *ps_dec = (dec_struct_t *)ptr; in ih264d_deblock_picture() local
882 if(ps_dec->u1_pic_decode_done == 1) in ih264d_deblock_picture()
884 if(ps_dec->ps_cur_slice->u1_mbaff_frame_flag in ih264d_deblock_picture()
885 || ps_dec->ps_cur_slice->u1_field_pic_flag) in ih264d_deblock_picture()
887 ps_dec->p_DeblockPicture[ps_dec->ps_cur_slice->u1_mbaff_frame_flag]( in ih264d_deblock_picture()
888 ps_dec); in ih264d_deblock_picture()
894 ih264d_deblock_picture_progressive(ps_dec); in ih264d_deblock_picture()
912 WORD32 ih264d_deblock_display(dec_struct_t *ps_dec) in ih264d_deblock_display() argument
916 ih264d_deblock_picture(ps_dec); in ih264d_deblock_display()
918 ret = ih264d_end_of_pic_dispbuf_mgr(ps_dec); in ih264d_deblock_display()
938 WORD32 ih264d_end_of_pic(dec_struct_t *ps_dec, in ih264d_end_of_pic() argument
942 dec_slice_params_t *ps_cur_slice = ps_dec->ps_cur_slice; in ih264d_end_of_pic()
945 ps_dec->u2_mbx = 0xffff; in ih264d_end_of_pic()
946 ps_dec->u2_mby = 0; in ih264d_end_of_pic()
948 dec_err_status_t * ps_err = ps_dec->ps_dec_err_status; in ih264d_end_of_pic()
951 ih264d_err_pic_dispbuf_mgr(ps_dec); in ih264d_end_of_pic()
956 H264_MUTEX_LOCK(&ps_dec->process_disp_mutex); in ih264d_end_of_pic()
957 ret = ih264d_end_of_pic_processing(ps_dec); in ih264d_end_of_pic()
960 ps_dec->u2_total_mbs_coded = 0; in ih264d_end_of_pic()
966 pocstruct_t *ps_prev_poc = &ps_dec->s_prev_pic_poc; in ih264d_end_of_pic()
967 pocstruct_t *ps_cur_poc = &ps_dec->s_cur_pic_poc; in ih264d_end_of_pic()
969 ps_dec->u2_prev_ref_frame_num = ps_cur_slice->u2_frame_num; in ih264d_end_of_pic()
972 ps_dec->u2_prev_ref_frame_num = 0; in ih264d_end_of_pic()
974 if(ps_dec->ps_cur_sps->u1_gaps_in_frame_num_value_allowed_flag) in ih264d_end_of_pic()
976 ret = ih264d_decode_gaps_in_frame_num(ps_dec, u2_frame_num); in ih264d_end_of_pic()
998 H264_MUTEX_UNLOCK(&ps_dec->process_disp_mutex); in ih264d_end_of_pic()
1017 dec_struct_t *ps_dec /* Decoder parameters */ in ih264d_parse_decode_slice() argument
1020 dec_bit_stream_t * ps_bitstrm = ps_dec->ps_bitstrm; in ih264d_parse_decode_slice()
1023 dec_slice_params_t *ps_cur_slice = ps_dec->ps_cur_slice; in ih264d_parse_decode_slice()
1047 ps_dec->ps_dpb_cmds->u1_dpb_commands_read_slc = 0; in ih264d_parse_decode_slice()
1051 > (ps_dec->u2_frm_ht_in_mbs * ps_dec->u2_frm_wd_in_mbs)) in ih264d_parse_decode_slice()
1059 <= ps_dec->u2_cur_mb_addr) && (ps_dec->u2_cur_mb_addr != 0) in ih264d_parse_decode_slice()
1060 && (ps_dec->u4_first_slice_in_pic != 0)) in ih264d_parse_decode_slice()
1074 ps_dec->u1_sl_typ_5_9 = 0; in ih264d_parse_decode_slice()
1081 ps_dec->u1_sl_typ_5_9 = 1; in ih264d_parse_decode_slice()
1087 if((ps_dec->i4_app_skip_mode == IVD_SKIP_PB) in ih264d_parse_decode_slice()
1088 || (ps_dec->i4_dec_skip_mode == IVD_SKIP_PB)) in ih264d_parse_decode_slice()
1092 if(ps_dec->u1_nal_unit_type == IDR_SLICE_NAL) in ih264d_parse_decode_slice()
1096 ps_dec->i4_dec_skip_mode = IVD_SKIP_NONE; in ih264d_parse_decode_slice()
1099 && (1 >= ps_dec->ps_cur_sps->u1_num_ref_frames)) in ih264d_parse_decode_slice()
1103 ps_dec->i4_dec_skip_mode = IVD_SKIP_NONE; in ih264d_parse_decode_slice()
1111 if((0 == u2_first_mb_in_slice) && (1 == ps_dec->u4_prev_nal_skipped)) in ih264d_parse_decode_slice()
1118 ps_dec->u4_prev_nal_skipped = 1; in ih264d_parse_decode_slice()
1119 ps_dec->i4_dec_skip_mode = IVD_SKIP_PB; in ih264d_parse_decode_slice()
1130 if(1 == ps_dec->u4_prev_nal_skipped) in ih264d_parse_decode_slice()
1132 ps_dec->u4_return_to_app = 1; in ih264d_parse_decode_slice()
1145 ps_pps = &ps_dec->ps_pps[u4_temp]; in ih264d_parse_decode_slice()
1174 ps_dec->pu1_inv_scan = (UWORD8 *)gau1_ih264d_inv_scan_fld; in ih264d_parse_decode_slice()
1181 ps_dec->pu1_inv_scan = (UWORD8 *)gau1_ih264d_inv_scan; in ih264d_parse_decode_slice()
1189 ps_dec->pu1_inv_scan = (UWORD8 *)gau1_ih264d_inv_scan; in ih264d_parse_decode_slice()
1197 ps_dec->u1_top_bottom_decoded = TOP_FIELD_ONLY | BOT_FIELD_ONLY; in ih264d_parse_decode_slice()
1264 if(!ps_dec->u1_first_slice_in_stream) in ih264d_parse_decode_slice()
1267 &s_tmp_poc, &ps_dec->s_cur_pic_poc, in ih264d_parse_decode_slice()
1276 if((ps_dec->u4_first_slice_in_pic == 2) && (i1_is_end_of_poc == 0)) in ih264d_parse_decode_slice()
1281 ps_dec->ps_dec_err_status->u1_err_flag |= REJECT_CUR_PIC; in ih264d_parse_decode_slice()
1287 ps_dec->ps_dec_err_status->u1_err_flag &= MASK_REJECT_CUR_PIC; in ih264d_parse_decode_slice()
1298 if(i1_is_end_of_poc || ps_dec->u1_first_slice_in_stream) in ih264d_parse_decode_slice()
1300 if(u2_frame_num != ps_dec->u2_prv_frame_num in ih264d_parse_decode_slice()
1301 && ps_dec->u1_top_bottom_decoded != 0 in ih264d_parse_decode_slice()
1302 && ps_dec->u1_top_bottom_decoded in ih264d_parse_decode_slice()
1305 ps_dec->u1_dangling_field = 1; in ih264d_parse_decode_slice()
1306 if(ps_dec->u4_first_slice_in_pic) in ih264d_parse_decode_slice()
1317 if(ps_dec->u1_top_bottom_decoded ==TOP_FIELD_ONLY) in ih264d_parse_decode_slice()
1322 num_mb_skipped = (ps_dec->u2_frm_ht_in_mbs * ps_dec->u2_frm_wd_in_mbs) in ih264d_parse_decode_slice()
1323 - ps_dec->u2_total_mbs_coded; in ih264d_parse_decode_slice()
1324 ps_cur_poc = &ps_dec->s_cur_pic_poc; in ih264d_parse_decode_slice()
1328 else if(ps_dec->u4_first_slice_in_pic == 2) in ih264d_parse_decode_slice()
1352 if(ps_dec->u4_first_slice_in_pic) in ih264d_parse_decode_slice()
1367 num_mb_skipped = (ps_dec->u2_frm_ht_in_mbs * ps_dec->u2_frm_wd_in_mbs) in ih264d_parse_decode_slice()
1368 - ps_dec->u2_total_mbs_coded; in ih264d_parse_decode_slice()
1375 if((u2_first_mb_in_slice << u1_mbaff) > ps_dec->u2_total_mbs_coded) in ih264d_parse_decode_slice()
1380 - ps_dec->u2_total_mbs_coded; in ih264d_parse_decode_slice()
1383 else if((u2_first_mb_in_slice << u1_mbaff) < ps_dec->u2_total_mbs_coded) in ih264d_parse_decode_slice()
1391 …ret = ih264d_mark_err_slice_skip(ps_dec, num_mb_skipped, u1_is_idr_slice, u2_frame_num, ps_cur_poc… in ih264d_parse_decode_slice()
1393 if(ps_dec->u1_dangling_field == 1) in ih264d_parse_decode_slice()
1395 ps_dec->u1_second_field = 1 - ps_dec->u1_second_field; in ih264d_parse_decode_slice()
1397 ps_dec->u2_prv_frame_num = u2_frame_num; in ih264d_parse_decode_slice()
1398 ps_dec->u1_first_slice_in_stream = 0; in ih264d_parse_decode_slice()
1404 ps_dec->u1_first_slice_in_stream = 0; in ih264d_parse_decode_slice()
1408 if(ps_dec->u2_total_mbs_coded in ih264d_parse_decode_slice()
1409 >= ps_dec->u2_frm_ht_in_mbs * ps_dec->u2_frm_wd_in_mbs) in ih264d_parse_decode_slice()
1412 ps_dec->u1_first_slice_in_stream = 0; in ih264d_parse_decode_slice()
1416 if(ps_dec->ps_dec_err_status->u1_err_flag & REJECT_CUR_PIC) in ih264d_parse_decode_slice()
1418 ih264d_err_pic_dispbuf_mgr(ps_dec); in ih264d_parse_decode_slice()
1428 if (ps_dec->u4_first_slice_in_pic == 0) in ih264d_parse_decode_slice()
1430 ps_dec->ps_parse_cur_slice++; in ih264d_parse_decode_slice()
1431 ps_dec->u2_cur_slice_num++; in ih264d_parse_decode_slice()
1435 if((ps_dec->u1_separate_parse == 0) && (ps_dec->u4_first_slice_in_pic == 0)) in ih264d_parse_decode_slice()
1437 ps_dec->ps_decode_cur_slice++; in ih264d_parse_decode_slice()
1439 ps_dec->u1_slice_header_done = 0; in ih264d_parse_decode_slice()
1444 if(!ps_dec->u1_first_slice_in_stream) in ih264d_parse_decode_slice()
1448 if(ps_dec->u2_total_mbs_coded in ih264d_parse_decode_slice()
1449 == (ps_dec->ps_cur_sps->u2_max_mb_addr + 1)) in ih264d_parse_decode_slice()
1453 if(ps_dec->u4_first_slice_in_pic == 0) in ih264d_parse_decode_slice()
1460 if(1 == ps_dec->u1_last_pic_not_decoded) in ih264d_parse_decode_slice()
1462 ret = ih264d_end_of_pic_dispbuf_mgr(ps_dec); in ih264d_parse_decode_slice()
1467 ret = ih264d_end_of_pic(ps_dec, u1_is_idr_slice, u2_frame_num); in ih264d_parse_decode_slice()
1477 ret = ih264d_end_of_pic(ps_dec, u1_is_idr_slice, u2_frame_num); in ih264d_parse_decode_slice()
1487 ps_dec->u2_prv_frame_num = u2_frame_num; in ih264d_parse_decode_slice()
1497 i4_top_field_order_poc = ps_dec->ps_cur_pic->i4_top_field_order_cnt; in ih264d_parse_decode_slice()
1499 ps_dec->ps_cur_pic->i4_bottom_field_order_cnt; in ih264d_parse_decode_slice()
1504 i4_temp_poc = ps_dec->ps_cur_pic->i4_top_field_order_cnt; in ih264d_parse_decode_slice()
1506 i4_temp_poc = ps_dec->ps_cur_pic->i4_bottom_field_order_cnt; in ih264d_parse_decode_slice()
1508 ps_dec->ps_cur_pic->i4_top_field_order_cnt = i4_temp_poc in ih264d_parse_decode_slice()
1509 - ps_dec->ps_cur_pic->i4_top_field_order_cnt; in ih264d_parse_decode_slice()
1510 ps_dec->ps_cur_pic->i4_bottom_field_order_cnt = i4_temp_poc in ih264d_parse_decode_slice()
1511 - ps_dec->ps_cur_pic->i4_bottom_field_order_cnt; in ih264d_parse_decode_slice()
1512 ps_dec->ps_cur_pic->i4_poc = i4_temp_poc; in ih264d_parse_decode_slice()
1513 ps_dec->ps_cur_pic->i4_avg_poc = i4_temp_poc; in ih264d_parse_decode_slice()
1515 if(ps_dec->u4_first_slice_in_pic == 2) in ih264d_parse_decode_slice()
1518 &ps_dec->s_prev_pic_poc, in ih264d_parse_decode_slice()
1526 if(i4_poc >= ps_dec->i4_max_poc) in ih264d_parse_decode_slice()
1527 ps_dec->i4_max_poc = i4_poc; in ih264d_parse_decode_slice()
1531 ps_dec->i4_prev_max_display_seq = ps_dec->i4_prev_max_display_seq in ih264d_parse_decode_slice()
1532 + ps_dec->i4_max_poc in ih264d_parse_decode_slice()
1533 + ps_dec->u1_max_dec_frame_buffering + 1; in ih264d_parse_decode_slice()
1534 ps_dec->i4_max_poc = 0; in ih264d_parse_decode_slice()
1575 ps_dec->pf_mvpred = ih264d_mvpred_nonmbaffB; in ih264d_parse_decode_slice()
1580 ps_dec->pf_mvpred = ih264d_mvpred_nonmbaff; in ih264d_parse_decode_slice()
1583 if(ps_dec->u4_first_slice_in_pic == 2) in ih264d_parse_decode_slice()
1587 ret = ih264d_start_of_pic(ps_dec, i4_poc, &s_tmp_poc, u2_frame_num, ps_pps); in ih264d_parse_decode_slice()
1592 ps_dec->u4_output_present = 0; in ih264d_parse_decode_slice()
1595 ih264d_get_next_display_field(ps_dec, in ih264d_parse_decode_slice()
1596 ps_dec->ps_out_buffer, in ih264d_parse_decode_slice()
1597 &(ps_dec->s_disp_op)); in ih264d_parse_decode_slice()
1601 if(0 != ps_dec->s_disp_op.u4_error_code) in ih264d_parse_decode_slice()
1603 ps_dec->u4_fmt_conv_cur_row = ps_dec->s_disp_frame_info.u4_y_ht; in ih264d_parse_decode_slice()
1606 ps_dec->u4_output_present = 1; in ih264d_parse_decode_slice()
1608 if(ps_dec->u1_separate_parse == 1) in ih264d_parse_decode_slice()
1610 if(ps_dec->u4_dec_thread_created == 0) in ih264d_parse_decode_slice()
1612 ithread_create(ps_dec->pv_dec_thread_handle, NULL, in ih264d_parse_decode_slice()
1614 (void *)ps_dec); in ih264d_parse_decode_slice()
1616 ps_dec->u4_dec_thread_created = 1; in ih264d_parse_decode_slice()
1619 if((ps_dec->u4_num_cores == 3) && in ih264d_parse_decode_slice()
1620 … ((ps_dec->u4_app_disable_deblk_frm == 0) || ps_dec->i1_recon_in_thread3_flag) in ih264d_parse_decode_slice()
1621 && (ps_dec->u4_bs_deblk_thread_created == 0)) in ih264d_parse_decode_slice()
1623 ps_dec->u4_start_recon_deblk = 0; in ih264d_parse_decode_slice()
1624 ithread_create(ps_dec->pv_bs_deblk_thread_handle, NULL, in ih264d_parse_decode_slice()
1626 (void *)ps_dec); in ih264d_parse_decode_slice()
1627 ps_dec->u4_bs_deblk_thread_created = 1; in ih264d_parse_decode_slice()
1639 uc_nofield_nombaff = ((ps_dec->ps_cur_slice->u1_field_pic_flag == 0) in ih264d_parse_decode_slice()
1640 && (ps_dec->ps_cur_slice->u1_mbaff_frame_flag == 0) in ih264d_parse_decode_slice()
1642 && (ps_dec->ps_cur_pps->u1_wted_pred_flag == 0)); in ih264d_parse_decode_slice()
1648 ps_dec->p_form_mb_part_info = ih264d_form_mb_part_info_bp; in ih264d_parse_decode_slice()
1649 ps_dec->p_motion_compensate = ih264d_motion_compensate_bp; in ih264d_parse_decode_slice()
1653 ps_dec->p_form_mb_part_info = ih264d_form_mb_part_info_mp; in ih264d_parse_decode_slice()
1654 ps_dec->p_motion_compensate = ih264d_motion_compensate_mp; in ih264d_parse_decode_slice()
1664 dec_err_status_t * ps_err = ps_dec->ps_dec_err_status; in ih264d_parse_decode_slice()
1677 i4_skip_b_pic = (ps_dec->u4_skip_frm_mask & B_SLC_BIT) in ih264d_parse_decode_slice()
1680 i4_skip_p_pic = (ps_dec->u4_skip_frm_mask & P_SLC_BIT) in ih264d_parse_decode_slice()
1690 ps_dec->ps_cur_pic->u4_pack_slc_typ |= B_SLC_BIT; in ih264d_parse_decode_slice()
1693 ps_dec->u1_last_pic_not_decoded = 1; in ih264d_parse_decode_slice()
1704 ps_dec->ps_cur_pic->u4_pack_slc_typ |= P_SLC_BIT; in ih264d_parse_decode_slice()
1707 ps_dec->u1_last_pic_not_decoded = 1; in ih264d_parse_decode_slice()
1716 ps_dec->i4_submb_ofst = ((u2_first_mb_in_slice in ih264d_parse_decode_slice()
1734 if(ps_dec->u1_separate_parse) in ih264d_parse_decode_slice()
1736 ps_trns_addr = &ps_dec->s_tran_addrecon_parse; in ih264d_parse_decode_slice()
1740 ps_trns_addr = &ps_dec->s_tran_addrecon; in ih264d_parse_decode_slice()
1748 || (u2_mb_y > ps_dec->u2_frm_ht_in_mbs - 1)) in ih264d_parse_decode_slice()
1753 u4_frame_stride = ps_dec->u2_frm_wd_y << u1_field_pic; in ih264d_parse_decode_slice()
1757 ps_trns_addr->pu1_dest_y = ps_dec->s_cur_pic.pu1_buf1 + x_offset in ih264d_parse_decode_slice()
1760 u4_frame_stride = ps_dec->u2_frm_wd_uv << u1_field_pic; in ih264d_parse_decode_slice()
1766 ps_trns_addr->pu1_dest_u = ps_dec->s_cur_pic.pu1_buf2 + x_offset in ih264d_parse_decode_slice()
1768 ps_trns_addr->pu1_dest_v = ps_dec->s_cur_pic.pu1_buf3 + x_offset in ih264d_parse_decode_slice()
1777 if(ps_dec->u1_separate_parse == 1) in ih264d_parse_decode_slice()
1779 ps_dec->ps_deblk_mbn = ps_dec->ps_deblk_pic in ih264d_parse_decode_slice()
1784 ps_dec->ps_deblk_mbn = ps_dec->ps_deblk_pic in ih264d_parse_decode_slice()
1788 ps_dec->u2_cur_mb_addr = (u2_first_mb_in_slice << u1_mb_aff); in ih264d_parse_decode_slice()
1790 ps_dec->ps_mv_cur = ps_dec->s_cur_pic.ps_mv in ih264d_parse_decode_slice()
1798 if(ps_dec->u1_separate_parse) in ih264d_parse_decode_slice()
1800 ps_trns_addr = &ps_dec->s_tran_addrecon_parse; in ih264d_parse_decode_slice()
1804 ps_trns_addr = &ps_dec->s_tran_addrecon; in ih264d_parse_decode_slice()
1810 ps_dec->u2_cur_mb_addr = 0; in ih264d_parse_decode_slice()
1811 ps_dec->ps_deblk_mbn = ps_dec->ps_deblk_pic; in ih264d_parse_decode_slice()
1812 ps_dec->ps_mv_cur = ps_dec->s_cur_pic.ps_mv; in ih264d_parse_decode_slice()
1813 ps_trns_addr->pu1_dest_y = ps_dec->s_cur_pic.pu1_buf1; in ih264d_parse_decode_slice()
1814 ps_trns_addr->pu1_dest_u = ps_dec->s_cur_pic.pu1_buf2; in ih264d_parse_decode_slice()
1815 ps_trns_addr->pu1_dest_v = ps_dec->s_cur_pic.pu1_buf3; in ih264d_parse_decode_slice()
1823 ps_dec->ps_part = ps_dec->ps_parse_part_params; in ih264d_parse_decode_slice()
1825 ps_dec->u2_mbx = in ih264d_parse_decode_slice()
1827 ps_dec->u2_mby = in ih264d_parse_decode_slice()
1829 ps_dec->u2_mby <<= ps_cur_slice->u1_mbaff_frame_flag; in ih264d_parse_decode_slice()
1830 ps_dec->i2_prev_slice_mbx = ps_dec->u2_mbx; in ih264d_parse_decode_slice()
1831 ps_dec->i2_prev_slice_mby = ps_dec->u2_mby; in ih264d_parse_decode_slice()
1835 ps_bitstrm->u4_max_ofst += ps_dec->ps_cur_pps->u1_entropy_coding_mode; in ih264d_parse_decode_slice()
1837 ps_dec->u1_B = (u1_slice_type == B_SLICE); in ih264d_parse_decode_slice()
1838 ps_dec->u4_next_mb_skip = 0; in ih264d_parse_decode_slice()
1840 ps_dec->ps_parse_cur_slice->u4_first_mb_in_slice = in ih264d_parse_decode_slice()
1841 ps_dec->ps_cur_slice->u2_first_mb_in_slice; in ih264d_parse_decode_slice()
1842 ps_dec->ps_parse_cur_slice->slice_type = in ih264d_parse_decode_slice()
1843 ps_dec->ps_cur_slice->u1_slice_type; in ih264d_parse_decode_slice()
1846 ps_dec->u4_start_recon_deblk = 1; in ih264d_parse_decode_slice()
1853 if((1 >= ps_dec->ps_cur_sps->u1_num_ref_frames) && in ih264d_parse_decode_slice()
1854 (0 == ps_dec->i4_display_delay)) in ih264d_parse_decode_slice()
1859 if(BASE_PROFILE_IDC != ps_dec->ps_cur_sps->u1_profile_idc) in ih264d_parse_decode_slice()
1867 pu1_buf = (UWORD8 *)ps_dec->pv_map_ref_idx_to_poc_buf; in ih264d_parse_decode_slice()
1868 pu1_buf += size * ps_dec->u2_cur_slice_num; in ih264d_parse_decode_slice()
1869 ps_dec->ps_parse_cur_slice->ppv_map_ref_idx_to_poc = ( void *)pu1_buf; in ih264d_parse_decode_slice()
1872 if(ps_dec->u1_separate_parse) in ih264d_parse_decode_slice()
1874 ps_dec->ps_parse_cur_slice->pv_tu_coeff_data_start = ps_dec->pv_parse_tu_coeff_data; in ih264d_parse_decode_slice()
1878 ps_dec->pv_proc_tu_coeff_data = ps_dec->pv_parse_tu_coeff_data; in ih264d_parse_decode_slice()
1883 ps_dec->ps_cur_pic->u4_pack_slc_typ |= I_SLC_BIT; in ih264d_parse_decode_slice()
1885 ret = ih264d_parse_islice(ps_dec, u2_first_mb_in_slice); in ih264d_parse_decode_slice()
1887 if(ps_dec->i4_pic_type != B_SLICE && ps_dec->i4_pic_type != P_SLICE) in ih264d_parse_decode_slice()
1888 ps_dec->i4_pic_type = I_SLICE; in ih264d_parse_decode_slice()
1893 ps_dec->ps_cur_pic->u4_pack_slc_typ |= P_SLC_BIT; in ih264d_parse_decode_slice()
1894 ret = ih264d_parse_pslice(ps_dec, u2_first_mb_in_slice); in ih264d_parse_decode_slice()
1895 ps_dec->u1_pr_sl_type = u1_slice_type; in ih264d_parse_decode_slice()
1896 if(ps_dec->i4_pic_type != B_SLICE) in ih264d_parse_decode_slice()
1897 ps_dec->i4_pic_type = P_SLICE; in ih264d_parse_decode_slice()
1901 ps_dec->ps_cur_pic->u4_pack_slc_typ |= B_SLC_BIT; in ih264d_parse_decode_slice()
1902 ret = ih264d_parse_bslice(ps_dec, u2_first_mb_in_slice); in ih264d_parse_decode_slice()
1903 ps_dec->u1_pr_sl_type = u1_slice_type; in ih264d_parse_decode_slice()
1904 ps_dec->i4_pic_type = B_SLICE; in ih264d_parse_decode_slice()
1909 if(ps_dec->u1_slice_header_done) in ih264d_parse_decode_slice()
1913 ps_dec->u4_first_slice_in_pic = 0; in ih264d_parse_decode_slice()
1914 ps_dec->u1_first_slice_in_stream = 0; in ih264d_parse_decode_slice()
1921 ps_dec->i2_prev_slice_mbx = ps_dec->u2_mbx; in ih264d_parse_decode_slice()
1922 ps_dec->i2_prev_slice_mby = ps_dec->u2_mby; in ih264d_parse_decode_slice()
1926 if(ps_dec->u2_total_mbs_coded >= (ps_seq->u2_max_mb_addr + 1)) in ih264d_parse_decode_slice()
1928 ps_dec->u1_pic_decode_done = 1; in ih264d_parse_decode_slice()
1933 dec_err_status_t * ps_err = ps_dec->ps_dec_err_status; in ih264d_parse_decode_slice()
1941 PRINT_BIN_BIT_RATIO(ps_dec) in ih264d_parse_decode_slice()