Lines Matching refs:ps_codec
192 WORD32 ihevcd_get_total_pic_buf_size(codec_t *ps_codec, in ihevcd_get_total_pic_buf_size() argument
202 sps_t *ps_sps = (ps_codec->s_parse.ps_sps_base + ps_codec->i4_sps_id); in ihevcd_get_total_pic_buf_size()
207 if(ps_codec->e_frm_out_mode != IVD_DECODE_FRAME_OUT) in ihevcd_get_total_pic_buf_size()
337 WORD32 ihevcd_nctb_cnt(codec_t *ps_codec, sps_t *ps_sps) in ihevcd_nctb_cnt() argument
340 UNUSED(ps_codec); in ihevcd_nctb_cnt()
453 IHEVCD_ERROR_T ihevcd_pic_buf_mgr_add_bufs(codec_t *ps_codec) in ihevcd_pic_buf_mgr_add_bufs() argument
467 ps_sps = ps_codec->s_parse.ps_sps; in ihevcd_pic_buf_mgr_add_bufs()
472 if(ps_codec->e_frm_out_mode != IVD_DECODE_FRAME_OUT) in ihevcd_pic_buf_mgr_add_bufs()
482 pu1_buf = (UWORD8 *)ps_codec->pu1_ref_pic_buf_base; in ihevcd_pic_buf_mgr_add_bufs()
484 ps_pic_buf = (pic_buf_t *)ps_codec->ps_pic_buf; in ihevcd_pic_buf_mgr_add_bufs()
489 if(0 == ps_codec->i4_share_disp_buf) in ihevcd_pic_buf_mgr_add_bufs()
494 pic_buf_size_allocated = ps_codec->i4_total_pic_buf_size; in ihevcd_pic_buf_mgr_add_bufs()
496 luma_samples = (ps_codec->i4_strd) * in ihevcd_pic_buf_mgr_add_bufs()
511 ps_codec->s_parse.i4_error_code = IHEVCD_INSUFFICIENT_MEM_PICBUF; in ihevcd_pic_buf_mgr_add_bufs()
515 ps_pic_buf->pu1_luma = pu1_buf + ps_codec->i4_strd * PAD_TOP + PAD_LEFT; in ihevcd_pic_buf_mgr_add_bufs()
518 ps_pic_buf->pu1_chroma = pu1_buf + ps_codec->i4_strd * (PAD_TOP / 2) + PAD_LEFT; in ihevcd_pic_buf_mgr_add_bufs()
521 buf_ret = ihevc_buf_mgr_add((buf_mgr_t *)ps_codec->pv_pic_buf_mgr, ps_pic_buf, i); in ihevcd_pic_buf_mgr_add_bufs()
526 ps_codec->s_parse.i4_error_code = IHEVCD_BUF_MGR_ERROR; in ihevcd_pic_buf_mgr_add_bufs()
541 ps_pic_buf = ihevc_buf_mgr_get_buf((buf_mgr_t *)ps_codec->pv_pic_buf_mgr, i); in ihevcd_pic_buf_mgr_add_bufs()
548 ps_pic_buf->pu1_luma += ps_codec->i4_strd * PAD_TOP + PAD_LEFT; in ihevcd_pic_buf_mgr_add_bufs()
549 ps_pic_buf->pu1_chroma += ps_codec->i4_strd * (PAD_TOP / 2) + PAD_LEFT; in ihevcd_pic_buf_mgr_add_bufs()
575 IHEVCD_ERROR_T ihevcd_mv_buf_mgr_add_bufs(codec_t *ps_codec) in ihevcd_mv_buf_mgr_add_bufs() argument
589 ps_sps = ps_codec->s_parse.ps_sps; in ihevcd_mv_buf_mgr_add_bufs()
601 ps_codec->i4_max_dpb_size = max_dpb_size; in ihevcd_mv_buf_mgr_add_bufs()
603 pu1_buf = (UWORD8 *)ps_codec->pv_mv_bank_buf_base; in ihevcd_mv_buf_mgr_add_bufs()
607 ps_codec->ps_mv_buf = ps_mv_buf; in ihevcd_mv_buf_mgr_add_bufs()
608 mv_bank_size_allocated = ps_codec->i4_total_mv_bank_size - max_dpb_size * sizeof(mv_buf_t); in ihevcd_mv_buf_mgr_add_bufs()
632 ps_codec->s_parse.i4_error_code = IHEVCD_INSUFFICIENT_MEM_MVBANK; in ihevcd_mv_buf_mgr_add_bufs()
648 buf_ret = ihevc_buf_mgr_add((buf_mgr_t *)ps_codec->pv_mv_buf_mgr, ps_mv_buf, i); in ihevcd_mv_buf_mgr_add_bufs()
652 ps_codec->s_parse.i4_error_code = IHEVCD_BUF_MGR_ERROR; in ihevcd_mv_buf_mgr_add_bufs()
681 IHEVCD_ERROR_T ihevcd_parse_pic_init(codec_t *ps_codec) in ihevcd_parse_pic_init() argument
694 ps_codec->s_parse.i4_error_code = IHEVCD_SUCCESS; in ihevcd_parse_pic_init()
695 ps_sps = ps_codec->s_parse.ps_sps; in ihevcd_parse_pic_init()
696 ps_slice_hdr = ps_codec->s_parse.ps_slice_hdr; in ihevcd_parse_pic_init()
700 memset(ps_codec->s_parse.pu1_pic_intra_flag, 0, num_min_cu); in ihevcd_parse_pic_init()
701 memset(ps_codec->s_parse.pu1_pic_no_loop_filter_flag, 0, num_min_cu); in ihevcd_parse_pic_init()
705 if(0 == ps_codec->s_parse.i4_first_pic_init) in ihevcd_parse_pic_init()
707 ret = ihevcd_mv_buf_mgr_add_bufs(ps_codec); in ihevcd_parse_pic_init()
710 ret = ihevcd_pic_buf_mgr_add_bufs(ps_codec); in ihevcd_parse_pic_init()
713 ps_codec->s_parse.i4_first_pic_init = 1; in ihevcd_parse_pic_init()
721 slice_start_idx = ps_codec->i4_slice_error ? 2 : 1; in ihevcd_parse_pic_init()
725 slice_header_t *ps_slice_hdr_tmp = ps_codec->ps_slice_hdr_base + slice_idx; in ihevcd_parse_pic_init()
734 …ps_mv_buf = (mv_buf_t *)ihevc_buf_mgr_get_next_free((buf_mgr_t *)ps_codec->pv_mv_buf_mgr, &cur_mv_… in ihevcd_parse_pic_init()
742 ps_codec->s_parse.i4_error_code = IHEVCD_NO_FREE_MVBANK; in ihevcd_parse_pic_init()
743 ps_codec->i4_error_code = IHEVCD_NO_FREE_MVBANK; in ihevcd_parse_pic_init()
747 ps_codec->s_parse.ps_cur_mv_buf = ps_mv_buf; in ihevcd_parse_pic_init()
762 …ps_cur_pic = (pic_buf_t *)ihevc_buf_mgr_get_next_free((buf_mgr_t *)ps_codec->pv_pic_buf_mgr, &cur_… in ihevcd_parse_pic_init()
770 ps_codec->s_parse.i4_error_code = IHEVCD_NO_FREE_PICBUF; in ihevcd_parse_pic_init()
771 ps_codec->i4_error_code = IHEVCD_NO_FREE_PICBUF; in ihevcd_parse_pic_init()
776 ps_cur_pic->u4_ts = ps_codec->u4_ts; in ihevcd_parse_pic_init()
787 if(0 == ps_codec->u4_pic_cnt) in ihevcd_parse_pic_init()
799 dpb_mgr_t *ps_dpb_mgr = (dpb_mgr_t *)ps_codec->pv_dpb_mgr; in ihevcd_parse_pic_init()
800 buf_mgr_t *ps_mv_buf_mgr = (buf_mgr_t *)ps_codec->pv_mv_buf_mgr; in ihevcd_parse_pic_init()
875 ihevcd_jobq_reset((jobq_t *)ps_codec->pv_proc_jobq); in ihevcd_parse_pic_init()
877 ps_codec->s_parse.i4_pic_pu_idx = 0; in ihevcd_parse_pic_init()
878 ps_codec->s_parse.i4_pic_tu_idx = 0; in ihevcd_parse_pic_init()
880 ps_codec->s_parse.pu1_pic_pu_map = ps_mv_buf->pu1_pic_pu_map; in ihevcd_parse_pic_init()
881 ps_codec->s_parse.ps_pic_pu = ps_mv_buf->ps_pic_pu; in ihevcd_parse_pic_init()
882 ps_codec->s_parse.pu4_pic_pu_idx = ps_mv_buf->pu4_pic_pu_idx; in ihevcd_parse_pic_init()
883 ps_codec->s_parse.pu1_slice_idx = (UWORD16 *)ps_mv_buf->pu1_pic_slice_map; in ihevcd_parse_pic_init()
886 ps_codec->as_process[i].pu1_slice_idx = (UWORD16 *)ps_mv_buf->pu1_pic_slice_map; in ihevcd_parse_pic_init()
888 ps_codec->s_parse.pu1_pu_map = ps_codec->s_parse.pu1_pic_pu_map; in ihevcd_parse_pic_init()
889 ps_codec->s_parse.ps_pu = ps_codec->s_parse.ps_pic_pu; in ihevcd_parse_pic_init()
907 pu1_buf = (UWORD8 *)ps_codec->pv_tu_data; in ihevcd_parse_pic_init()
908 ps_codec->s_parse.pu4_pic_tu_idx = (UWORD32 *)pu1_buf; in ihevcd_parse_pic_init()
911 ps_codec->s_parse.pu1_pic_tu_map = pu1_buf; in ihevcd_parse_pic_init()
914 ps_codec->s_parse.ps_pic_tu = (tu_t *)pu1_buf; in ihevcd_parse_pic_init()
917 ps_codec->s_parse.pv_pic_tu_coeff_data = pu1_buf; in ihevcd_parse_pic_init()
919 ps_codec->s_parse.pu1_tu_map = ps_codec->s_parse.pu1_pic_tu_map; in ihevcd_parse_pic_init()
920 ps_codec->s_parse.ps_tu = ps_codec->s_parse.ps_pic_tu; in ihevcd_parse_pic_init()
921 ps_codec->s_parse.pv_tu_coeff_data = ps_codec->s_parse.pv_pic_tu_coeff_data; in ihevcd_parse_pic_init()
924 ps_codec->s_parse.s_bs_ctxt.ps_pic_pu = ps_codec->s_parse.ps_pic_pu; in ihevcd_parse_pic_init()
925 ps_codec->s_parse.s_bs_ctxt.pu4_pic_pu_idx = ps_codec->s_parse.pu4_pic_pu_idx; in ihevcd_parse_pic_init()
926 ps_codec->s_parse.s_bs_ctxt.pu4_pic_tu_idx = ps_codec->s_parse.pu4_pic_tu_idx; in ihevcd_parse_pic_init()
930 ps_codec->i4_proc_nctb = ihevcd_nctb_cnt(ps_codec, ps_sps); in ihevcd_parse_pic_init()
939 memset(ps_codec->pu1_parse_map, 0, num_ctb); in ihevcd_parse_pic_init()
941 memset(ps_codec->pu1_proc_map, 0, num_ctb); in ihevcd_parse_pic_init()
949 ps_codec->i4_disp_buf_id = -1; in ihevcd_parse_pic_init()
950 ps_codec->ps_disp_buf = NULL; in ihevcd_parse_pic_init()
952 ps_codec->i4_disable_deblk_pic = 0; in ihevcd_parse_pic_init()
953 ps_codec->i4_disable_sao_pic = 0; in ihevcd_parse_pic_init()
954 ps_codec->i4_fullpel_inter_pred = 0; in ihevcd_parse_pic_init()
955 ps_codec->i4_mv_frac_mask = 0x7FFFFFFF; in ihevcd_parse_pic_init()
958 if(ps_codec->i4_degrade_type && ps_codec->i4_degrade_pics) in ihevcd_parse_pic_init()
961 ps_codec->i4_degrade_pic_cnt++; in ihevcd_parse_pic_init()
965 switch(ps_codec->i4_degrade_pics) in ihevcd_parse_pic_init()
984 (ps_codec->i4_degrade_pic_cnt != ps_codec->i4_nondegrade_interval)) in ihevcd_parse_pic_init()
1004 if(ps_codec->i4_degrade_type & 0x1) in ihevcd_parse_pic_init()
1005 ps_codec->i4_disable_sao_pic = 1; in ihevcd_parse_pic_init()
1007 if(ps_codec->i4_degrade_type & 0x2) in ihevcd_parse_pic_init()
1008 ps_codec->i4_disable_deblk_pic = 1; in ihevcd_parse_pic_init()
1014 if(ps_codec->i4_degrade_type & 0x4) in ihevcd_parse_pic_init()
1015 ps_codec->i4_mv_frac_mask = 0; in ihevcd_parse_pic_init()
1017 if(ps_codec->i4_degrade_type & 0x8) in ihevcd_parse_pic_init()
1018 ps_codec->i4_mv_frac_mask = 0; in ihevcd_parse_pic_init()
1022 ps_codec->i4_degrade_pic_cnt = 0; in ihevcd_parse_pic_init()
1030 ps_codec->as_process[i].pu4_pic_pu_idx = ps_codec->s_parse.pu4_pic_pu_idx; in ihevcd_parse_pic_init()
1031 ps_codec->as_process[i].ps_pic_pu = ps_codec->s_parse.ps_pic_pu; in ihevcd_parse_pic_init()
1032 ps_codec->as_process[i].pu1_pic_pu_map = ps_codec->s_parse.pu1_pic_pu_map; in ihevcd_parse_pic_init()
1033 ps_codec->as_process[i].pu4_pic_tu_idx = ps_codec->s_parse.pu4_pic_tu_idx; in ihevcd_parse_pic_init()
1034 ps_codec->as_process[i].ps_pic_tu = ps_codec->s_parse.ps_pic_tu; in ihevcd_parse_pic_init()
1035 ps_codec->as_process[i].pu1_pic_tu_map = ps_codec->s_parse.pu1_pic_tu_map; in ihevcd_parse_pic_init()
1036 ps_codec->as_process[i].pv_pic_tu_coeff_data = ps_codec->s_parse.pv_pic_tu_coeff_data; in ihevcd_parse_pic_init()
1037 ps_codec->as_process[i].i4_cur_mv_bank_buf_id = cur_mv_bank_buf_id; in ihevcd_parse_pic_init()
1038 … ps_codec->as_process[i].s_sao_ctxt.pu1_slice_idx = ps_codec->as_process[i].pu1_slice_idx; in ihevcd_parse_pic_init()
1039 ps_codec->as_process[i].s_sao_ctxt.pu1_tile_idx = ps_codec->as_process[i].pu1_tile_idx; in ihevcd_parse_pic_init()
1044 ps_codec->as_process[i].pu1_cur_pic_luma = pu1_cur_pic_luma; in ihevcd_parse_pic_init()
1045 ps_codec->as_process[i].pu1_cur_pic_chroma = pu1_cur_pic_chroma; in ihevcd_parse_pic_init()
1046 ps_codec->as_process[i].ps_cur_pic = ps_cur_pic; in ihevcd_parse_pic_init()
1047 ps_codec->as_process[i].i4_cur_pic_buf_id = cur_pic_buf_id; in ihevcd_parse_pic_init()
1049 ps_codec->as_process[i].ps_out_buffer = ps_codec->ps_out_buffer; in ihevcd_parse_pic_init()
1050 if(1 < ps_codec->i4_num_cores) in ihevcd_parse_pic_init()
1052 ps_codec->as_process[i].i4_check_parse_status = 1; in ihevcd_parse_pic_init()
1053 ps_codec->as_process[i].i4_check_proc_status = 1; in ihevcd_parse_pic_init()
1057 ps_codec->as_process[i].i4_check_parse_status = 0; in ihevcd_parse_pic_init()
1058 ps_codec->as_process[i].i4_check_proc_status = 0; in ihevcd_parse_pic_init()
1060 ps_codec->as_process[i].pu1_pic_intra_flag = ps_codec->s_parse.pu1_pic_intra_flag; in ihevcd_parse_pic_init()
1061 …ps_codec->as_process[i].pu1_pic_no_loop_filter_flag = ps_codec->s_parse.pu1_pic_no_loop_filter_fla… in ihevcd_parse_pic_init()
1062 ps_codec->as_process[i].i4_init_done = 0; in ihevcd_parse_pic_init()
1064 … ps_codec->as_process[i].s_bs_ctxt.pu4_pic_tu_idx = ps_codec->as_process[i].pu4_pic_tu_idx; in ihevcd_parse_pic_init()
1065 … ps_codec->as_process[i].s_bs_ctxt.pu4_pic_pu_idx = ps_codec->as_process[i].pu4_pic_pu_idx; in ihevcd_parse_pic_init()
1066 ps_codec->as_process[i].s_bs_ctxt.ps_pic_pu = ps_codec->as_process[i].ps_pic_pu; in ihevcd_parse_pic_init()
1067 …ps_codec->as_process[i].s_deblk_ctxt.pu1_pic_no_loop_filter_flag = ps_codec->s_parse.pu1_pic_no_lo… in ihevcd_parse_pic_init()
1068 ps_codec->as_process[i].s_deblk_ctxt.pu1_cur_pic_luma = pu1_cur_pic_luma; in ihevcd_parse_pic_init()
1069 ps_codec->as_process[i].s_deblk_ctxt.pu1_cur_pic_chroma = pu1_cur_pic_chroma; in ihevcd_parse_pic_init()
1070 …ps_codec->as_process[i].s_sao_ctxt.pu1_pic_no_loop_filter_flag = ps_codec->s_parse.pu1_pic_no_loop… in ihevcd_parse_pic_init()
1071 ps_codec->as_process[i].s_sao_ctxt.pu1_cur_pic_luma = pu1_cur_pic_luma; in ihevcd_parse_pic_init()
1072 ps_codec->as_process[i].s_sao_ctxt.pu1_cur_pic_chroma = pu1_cur_pic_chroma; in ihevcd_parse_pic_init()
1073 if(i < (ps_codec->i4_num_cores - 1)) in ihevcd_parse_pic_init()
1075 ithread_create(ps_codec->apv_process_thread_handle[i], NULL, in ihevcd_parse_pic_init()
1077 (void *)&ps_codec->as_process[i]); in ihevcd_parse_pic_init()
1078 ps_codec->ai4_process_thread_created[i] = 1; in ihevcd_parse_pic_init()
1082 ps_codec->ai4_process_thread_created[i] = 0; in ihevcd_parse_pic_init()
1086 ps_codec->s_parse.s_deblk_ctxt.pu1_cur_pic_luma = pu1_cur_pic_luma; in ihevcd_parse_pic_init()
1087 ps_codec->s_parse.s_deblk_ctxt.pu1_cur_pic_chroma = pu1_cur_pic_chroma; in ihevcd_parse_pic_init()
1089 ps_codec->s_parse.s_sao_ctxt.pu1_cur_pic_luma = pu1_cur_pic_luma; in ihevcd_parse_pic_init()
1090 ps_codec->s_parse.s_sao_ctxt.pu1_cur_pic_chroma = pu1_cur_pic_chroma; in ihevcd_parse_pic_init()
1104 ps_slice_hdr = ps_codec->s_parse.ps_slice_hdr; in ihevcd_parse_pic_init()
1106 ihevc_disp_mgr_add((disp_mgr_t *)ps_codec->pv_disp_buf_mgr, in ihevcd_parse_pic_init()
1107 ps_codec->as_process[0].i4_cur_pic_buf_id, in ihevcd_parse_pic_init()
1109 ps_codec->as_process[0].ps_cur_pic); in ihevcd_parse_pic_init()
1111 ps_codec->ps_disp_buf = NULL; in ihevcd_parse_pic_init()
1114 …if(((WORD32)(ps_codec->u4_pic_cnt - ps_codec->u4_disp_cnt) >= ps_sps->ai1_sps_max_num_reorder_pics… in ihevcd_parse_pic_init()
1115 (ps_codec->e_frm_out_mode == IVD_DECODE_FRAME_OUT)) in ihevcd_parse_pic_init()
1118 …ps_codec->ps_disp_buf = (pic_buf_t *)ihevc_disp_mgr_get((disp_mgr_t *)ps_codec->pv_disp_buf_mgr, &… in ihevcd_parse_pic_init()
1119 ps_codec->u4_disp_cnt++; in ihevcd_parse_pic_init()
1122 ps_codec->s_fmt_conv.i4_cur_row = 0; in ihevcd_parse_pic_init()
1124 ps_codec->s_fmt_conv.i4_num_rows = 4; in ihevcd_parse_pic_init()
1126 if(ps_codec->u4_enable_fmt_conv_ahead && (ps_codec->i4_num_cores > 1)) in ihevcd_parse_pic_init()
1131 ps_proc = &ps_codec->as_process[ps_codec->i4_num_cores - 1]; in ihevcd_parse_pic_init()
1137 if((ps_codec->ps_disp_buf) && (ps_codec->i4_disp_buf_id != ps_proc->i4_cur_pic_buf_id) && in ihevcd_parse_pic_init()
1138 ((0 == ps_codec->i4_share_disp_buf) || (IV_YUV_420P == ps_codec->e_chroma_fmt))) in ihevcd_parse_pic_init()
1151 ret = ihevcd_jobq_queue((jobq_t *)ps_codec->s_parse.pv_proc_jobq, in ihevcd_parse_pic_init()
1160 ps_codec->i4_pic_present = 1; in ihevcd_parse_pic_init()