Lines Matching refs:p_dec

81 static MPP_RET avs2_add_nalu_header(Avs2dCtx_t *p_dec, RK_U32 header)  in avs2_add_nalu_header()  argument
86 if (p_dec->nal_cnt + 1 > p_dec->nal_allocated) { in avs2_add_nalu_header()
87 …Avs2dNalu_t *new_buffer = mpp_realloc(p_dec->p_nals, Avs2dNalu_t, p_dec->nal_allocated + MAX_NALU_… in avs2_add_nalu_header()
93 p_dec->p_nals = new_buffer; in avs2_add_nalu_header()
94 memset(&p_dec->p_nals[p_dec->nal_allocated], 0, MAX_NALU_NUM * sizeof(Avs2dNalu_t)); in avs2_add_nalu_header()
95 p_dec->nal_allocated += MAX_NALU_NUM; in avs2_add_nalu_header()
96 AVS2D_PARSE_TRACE("Realloc NALU buffer, current allocated %d", p_dec->nal_allocated); in avs2_add_nalu_header()
100 p_nal = p_dec->p_nals + p_dec->nal_cnt; in avs2_add_nalu_header()
106 p_dec->nal_cnt++; in avs2_add_nalu_header()
107 AVS2D_PARSE_TRACE("add header 0x%x, nal_cnt %d", header, p_dec->nal_cnt); in avs2_add_nalu_header()
122 static MPP_RET store_nalu(Avs2dCtx_t *p_dec, RK_U8 *p_start, RK_U32 len, RK_U32 start_code) in store_nalu() argument
125 Avs2dNalu_t *p_nalu = &p_dec->p_nals[p_dec->nal_cnt - 1]; in store_nalu()
131 p_header = p_dec->p_stream; in store_nalu()
134 p_header = p_dec->p_header; in store_nalu()
174 static MPP_RET reset_nalu_buf(Avs2dCtx_t *p_dec) in reset_nalu_buf() argument
179 p_dec->prev_start_code = 0; in reset_nalu_buf()
180 p_dec->new_frame_flag = 0; in reset_nalu_buf()
182 memset(p_dec->prev_tail_data, 0xff, AVS2D_PACKET_SPLIT_CHECKER_BUFFER_SIZE); in reset_nalu_buf()
184 if (p_dec->p_stream) { in reset_nalu_buf()
185 memset(p_dec->p_stream->pbuf, 0, p_dec->p_stream->size); in reset_nalu_buf()
186 p_dec->p_stream->len = 0; in reset_nalu_buf()
189 if (p_dec->p_header) { in reset_nalu_buf()
190 memset(p_dec->p_header->pbuf, 0, p_dec->p_header->size); in reset_nalu_buf()
191 p_dec->p_header->len = 0; in reset_nalu_buf()
194 if (p_dec->p_nals) { in reset_nalu_buf()
195 memset(p_dec->p_nals, 0, sizeof(Avs2dNalu_t) * p_dec->nal_allocated); in reset_nalu_buf()
196 p_dec->nal_cnt = 0; in reset_nalu_buf()
297 static MPP_RET parse_extension_header(Avs2dCtx_t *p_dec, BitReadCtx_t *bitctx) in parse_extension_header() argument
305 FUN_CHECK(ret = parse_seq_dispay_ext_header(bitctx, &p_dec->exh)); in parse_extension_header()
306 p_dec->got_exh = 1; in parse_extension_header()
307 if (p_dec->exh.transfer_characteristics == MPP_FRAME_TRC_BT2020_10 || in parse_extension_header()
308 p_dec->exh.transfer_characteristics == MPP_FRAME_TRC_BT1361_ECG) in parse_extension_header()
309 p_dec->is_hdr = 1; in parse_extension_header()
313 &p_dec->display_meta, in parse_extension_header()
314 &p_dec->content_light)); in parse_extension_header()
315 p_dec->is_hdr = 1; in parse_extension_header()
318 FUN_CHECK(ret = parse_hdr_dynamic_meta_extension(bitctx, p_dec->hdr_dynamic_meta)); in parse_extension_header()
331 MPP_RET avs2d_reset_parser(Avs2dCtx_t *p_dec) in avs2d_reset_parser() argument
334 p_dec->got_vsh = 0; in avs2d_reset_parser()
335 p_dec->got_exh = 0; in avs2d_reset_parser()
336 p_dec->got_keyframe = 0; in avs2d_reset_parser()
337 p_dec->enable_wq = 0; in avs2d_reset_parser()
338 p_dec->new_frame_flag = 0; in avs2d_reset_parser()
339 p_dec->new_seq_flag = 0; in avs2d_reset_parser()
340 reset_nalu_buf(p_dec); in avs2d_reset_parser()
360 MPP_RET avs2d_fill_parameters(Avs2dCtx_t *p_dec, Avs2dSyntax_t *syntax) in avs2d_fill_parameters() argument
363 Avs2dSeqHeader_t *vsh = &p_dec->vsh; in avs2d_fill_parameters()
364 Avs2dPicHeader_t *ph = &p_dec->ph; in avs2d_fill_parameters()
365 Avs2dFrameMgr_t *mgr = &p_dec->frm_mgr; in avs2d_fill_parameters()
424 wqmp->pic_weight_quant_enable_flag = p_dec->enable_wq; in avs2d_fill_parameters()
427 memcpy(wqmp->wq_matrix, p_dec->cur_wq_matrix, sizeof(p_dec->cur_wq_matrix)); in avs2d_fill_parameters()
432 MPP_RET avs2_split_nalu(Avs2dCtx_t *p_dec, RK_U8 *buf_start, RK_U32 buf_length, RK_U32 over_read, R… in avs2_split_nalu() argument
448 start_code, start_code_ptr - buf_start, p_dec->prev_start_code); in avs2_split_nalu()
449 if (!p_dec->new_seq_flag) { in avs2_split_nalu()
452 p_dec->nal_cnt = 0; in avs2_split_nalu()
453 avs2_add_nalu_header(p_dec, AVS2_VIDEO_SEQUENCE_START_CODE); in avs2_split_nalu()
454 p_dec->new_seq_flag = 1; in avs2_split_nalu()
455 p_dec->prev_start_code = AVS2_VIDEO_SEQUENCE_START_CODE; in avs2_split_nalu()
466 …if (AVS2_IS_START_CODE(p_dec->prev_start_code) && p_dec->prev_start_code != AVS2_USER_DATA_START_C… in avs2_split_nalu()
469 … store_nalu(p_dec, buf_start + over_read, nalu_len - over_read, p_dec->prev_start_code); in avs2_split_nalu()
473 … if (AVS2_IS_SLICE_START_CODE(p_dec->prev_start_code) && !AVS2_IS_SLICE_START_CODE(start_code)) { in avs2_split_nalu()
474 p_dec->new_frame_flag = 1; in avs2_split_nalu()
475 p_dec->p_nals[p_dec->nal_cnt - 1].eof = 1; in avs2_split_nalu()
479 avs2_add_nalu_header(p_dec, start_code); in avs2_split_nalu()
483 store_nalu(p_dec, start_code_ptr - 3, 4, start_code); in avs2_split_nalu()
485 p_dec->p_nals[p_dec->nal_cnt - 1].eof = 1; in avs2_split_nalu()
491 p_dec->prev_start_code = start_code; in avs2_split_nalu()
494 if (!p_dec->new_seq_flag) { in avs2_split_nalu()
497 if (AVS2_IS_START_CODE(p_dec->prev_start_code)) { in avs2_split_nalu()
500 … store_nalu(p_dec, buf_start + over_read, nalu_len - over_read, p_dec->prev_start_code); in avs2_split_nalu()
511 MPP_RET avs2d_parse_prepare_split(Avs2dCtx_t *p_dec, MppPacket *pkt, HalDecTask *task) in avs2d_parse_prepare_split() argument
529 memcpy(p_dec->prev_tail_data + 3, p_curdata, first_read_length); in avs2d_parse_prepare_split()
534 p_dec->prev_tail_data[0], p_dec->prev_tail_data[1], in avs2d_parse_prepare_split()
535 p_dec->prev_tail_data[2], first_read_length); in avs2d_parse_prepare_split()
536 ret = avs2_split_nalu(p_dec, p_dec->prev_tail_data, in avs2d_parse_prepare_split()
546 ret = avs2_split_nalu(p_dec, p_curdata, p_end - p_curdata + 1, 0, &remain); in avs2d_parse_prepare_split()
554 … if (p_dec->new_frame_flag || (p_dec->nal_cnt > 1 && p_dec->p_nals[p_dec->nal_cnt - 1].eof == 1)) { in avs2d_parse_prepare_split()
563 memset(p_dec->prev_tail_data, 0xff, 3); in avs2d_parse_prepare_split()
566 p_dec->prev_tail_data[0] = p_end[0]; in avs2d_parse_prepare_split()
567 p_dec->prev_tail_data[1] = p_end[-1]; in avs2d_parse_prepare_split()
568 p_dec->prev_tail_data[2] = p_end[-2]; in avs2d_parse_prepare_split()
585 MPP_RET avs2d_parse_prepare_fast(Avs2dCtx_t *p_dec, MppPacket *pkt, HalDecTask *task) in avs2d_parse_prepare_fast() argument
602 ret = avs2_split_nalu(p_dec, p_curdata, p_end - p_curdata + 1, 0, &remain); in avs2d_parse_prepare_fast()
610 … if (p_dec->new_frame_flag || (p_dec->nal_cnt && (p_dec->p_nals[p_dec->nal_cnt - 1].eof == 1)) in avs2d_parse_prepare_fast()
625 MPP_RET avs2d_parse_stream(Avs2dCtx_t *p_dec, HalDecTask *task) in avs2d_parse_stream() argument
628 Avs2dNalu_t *p_nalu = p_dec->p_nals; in avs2d_parse_stream()
631 for (i = 0 ; i < p_dec->nal_cnt; i++) { in avs2d_parse_stream()
636 RK_U8 *data_ptr = p_dec->p_header->pbuf + p_nalu->data_pos; in avs2d_parse_stream()
637 memset(&p_dec->bitctx, 0, sizeof(BitReadCtx_t)); in avs2d_parse_stream()
639 mpp_set_bitread_ctx(&p_dec->bitctx, data_ptr, p_nalu->length); in avs2d_parse_stream()
640 mpp_set_bitread_pseudo_code_type(&p_dec->bitctx, PSEUDO_CODE_AVS2); in avs2d_parse_stream()
645 ret = avs2d_parse_sequence_header(p_dec); in avs2d_parse_stream()
647 p_dec->got_vsh = 1; in avs2d_parse_stream()
649 if (p_dec->new_seq_flag && !p_dec->frm_mgr.initial_flag) { in avs2d_parse_stream()
650 avs2d_dpb_create(p_dec); in avs2d_parse_stream()
653 p_dec->got_exh = 0; in avs2d_parse_stream()
657 ret = avs2d_parse_picture_header(p_dec, startcode); in avs2d_parse_stream()
660 ret = parse_extension_header(p_dec, &p_dec->bitctx); in avs2d_parse_stream()
677 reset_nalu_buf(p_dec); in avs2d_parse_stream()