• Home
  • Raw
  • Download

Lines Matching refs:ps_dec

63 WORD32  impeg2d_dec_p_mb_params(dec_state_t *ps_dec)  in impeg2d_dec_p_mb_params()  argument
65 stream_t *ps_stream = &ps_dec->s_bit_stream; in impeg2d_dec_p_mb_params()
80 if(0 == ps_dec->u2_first_mb) in impeg2d_dec_p_mb_params()
104 … if(ps_dec->u2_is_mpeg2 && ((ps_dec->u2_mb_x + u2_mb_addr_incr) > ps_dec->u2_num_horiz_mb) ) in impeg2d_dec_p_mb_params()
106 u2_mb_addr_incr = ps_dec->u2_num_horiz_mb - ps_dec->u2_mb_x; in impeg2d_dec_p_mb_params()
109 impeg2d_dec_skip_mbs(ps_dec, (UWORD16)(u2_mb_addr_incr - 1)); in impeg2d_dec_p_mb_params()
118 u2_mb_type = ps_dec->pu2_mb_type[BITS((UWORD16)u4_next_word,15,10)]; in impeg2d_dec_p_mb_params()
127 if((u2_mb_type & MB_FORW_OR_BACK) && ps_dec->u2_read_motion_type) in impeg2d_dec_p_mb_params()
130 ps_dec->u2_motion_type = BITS((UWORD16)u4_next_word,15,14); in impeg2d_dec_p_mb_params()
133 i4_motion_type = ps_dec->u2_motion_type; in impeg2d_dec_p_mb_params()
149 if((u2_mb_type & MB_CODED) && ps_dec->u2_read_dct_type) in impeg2d_dec_p_mb_params()
151 ps_dec->u2_field_dct = BIT((UWORD16)u4_next_word,15); in impeg2d_dec_p_mb_params()
164 ps_dec->u1_quant_scale = (ps_dec->u2_q_scale_type) ? in impeg2d_dec_p_mb_params()
172 ps_dec->u2_coded_mb = (UWORD16)(u2_mb_type & MB_CODED); in impeg2d_dec_p_mb_params()
178 UWORD16 index = (ps_dec->u2_motion_type); in impeg2d_dec_p_mb_params()
179 ps_dec->u2_prev_intra_mb = 0; in impeg2d_dec_p_mb_params()
180 ps_dec->e_mb_pred = (e_pred_direction_t)refPic; in impeg2d_dec_p_mb_params()
181 ps_dec_mb_params = &ps_dec->ps_func_forw_or_back[index]; in impeg2d_dec_p_mb_params()
182 ps_dec->s_mb_type = ps_dec_mb_params->s_mb_type; in impeg2d_dec_p_mb_params()
185 ps_dec_mb_params->pf_func_mb_params(ps_dec); in impeg2d_dec_p_mb_params()
190 ps_dec->u2_prev_intra_mb = 1; in impeg2d_dec_p_mb_params()
191 impeg2d_dec_intra_mb(ps_dec); in impeg2d_dec_p_mb_params()
196 ps_dec->u2_prev_intra_mb = 0; in impeg2d_dec_p_mb_params()
197 ps_dec->e_mb_pred = FORW; in impeg2d_dec_p_mb_params()
198 ps_dec->u2_motion_type = 0; in impeg2d_dec_p_mb_params()
199 impeg2d_dec_0mv_coded_mb(ps_dec); in impeg2d_dec_p_mb_params()
207 ps_dec->u2_cbp = 0x3f; in impeg2d_dec_p_mb_params()
208 ps_dec->u2_prev_intra_mb = 1; in impeg2d_dec_p_mb_params()
212 ps_dec->u2_prev_intra_mb = 0; in impeg2d_dec_p_mb_params()
213 ps_dec->u2_def_dc_pred[Y_LUMA] = 128 << ps_dec->u2_intra_dc_precision; in impeg2d_dec_p_mb_params()
214 ps_dec->u2_def_dc_pred[U_CHROMA] = 128 << ps_dec->u2_intra_dc_precision; in impeg2d_dec_p_mb_params()
215 ps_dec->u2_def_dc_pred[V_CHROMA] = 128 << ps_dec->u2_intra_dc_precision; in impeg2d_dec_p_mb_params()
216 if((ps_dec->u2_coded_mb)) in impeg2d_dec_p_mb_params()
220 ps_dec->u2_cbp = cbpValue & 0xFF; in impeg2d_dec_p_mb_params()
225 ps_dec->u2_cbp = 0; in impeg2d_dec_p_mb_params()
243 WORD32 impeg2d_dec_pnb_mb_params(dec_state_t *ps_dec) in impeg2d_dec_pnb_mb_params() argument
245 stream_t *ps_stream = &ps_dec->s_bit_stream; in impeg2d_dec_pnb_mb_params()
261 if(ps_dec->u2_first_mb) in impeg2d_dec_pnb_mb_params()
272 ps_dec->u2_mb_x = u2_mb_addr_incr - 1; in impeg2d_dec_pnb_mb_params()
274 ps_dec->u2_mb_x = MIN(ps_dec->u2_mb_x, (ps_dec->u2_num_horiz_mb - 1)); in impeg2d_dec_pnb_mb_params()
282 ps_dec->u2_first_mb = 0; in impeg2d_dec_pnb_mb_params()
294 if(ps_dec->u2_is_mpeg2 && in impeg2d_dec_pnb_mb_params()
295 ((ps_dec->u2_mb_x + u2_mb_addr_incr) > ps_dec->u2_num_horiz_mb)) in impeg2d_dec_pnb_mb_params()
297 u2_mb_addr_incr = ps_dec->u2_num_horiz_mb - ps_dec->u2_mb_x; in impeg2d_dec_pnb_mb_params()
301 impeg2d_dec_skip_mbs(ps_dec, (UWORD16)(u2_mb_addr_incr - 1)); in impeg2d_dec_pnb_mb_params()
310 u2_mb_type = ps_dec->pu2_mb_type[BITS((UWORD16)u4_next_word,15,10)]; in impeg2d_dec_pnb_mb_params()
319 WORD32 i4_motion_type = ps_dec->u2_motion_type; in impeg2d_dec_pnb_mb_params()
321 if((u2_mb_type & MB_FORW_OR_BACK) && ps_dec->u2_read_motion_type) in impeg2d_dec_pnb_mb_params()
323 ps_dec->u2_motion_type = BITS((UWORD16)u4_next_word,15,14); in impeg2d_dec_pnb_mb_params()
326 i4_motion_type = ps_dec->u2_motion_type; in impeg2d_dec_pnb_mb_params()
346 if((u2_mb_type & MB_CODED) && ps_dec->u2_read_dct_type) in impeg2d_dec_pnb_mb_params()
348 ps_dec->u2_field_dct = BIT((UWORD16)u4_next_word,15); in impeg2d_dec_pnb_mb_params()
361 ps_dec->u1_quant_scale = (ps_dec->u2_q_scale_type) ? in impeg2d_dec_pnb_mb_params()
369 ps_dec->u2_coded_mb = (UWORD16)(u2_mb_type & MB_CODED); in impeg2d_dec_pnb_mb_params()
373 UWORD16 u2_index = (ps_dec->u2_motion_type); in impeg2d_dec_pnb_mb_params()
375 ps_dec->u2_prev_intra_mb = 0; in impeg2d_dec_pnb_mb_params()
376 ps_dec->e_mb_pred = BIDIRECT; in impeg2d_dec_pnb_mb_params()
377 ps_dec_mb_params = &ps_dec->ps_func_bi_direct[u2_index]; in impeg2d_dec_pnb_mb_params()
378 ps_dec->s_mb_type = ps_dec_mb_params->s_mb_type; in impeg2d_dec_pnb_mb_params()
381 ps_dec_mb_params->pf_func_mb_params(ps_dec); in impeg2d_dec_pnb_mb_params()
387 UWORD16 u2_index = (ps_dec->u2_motion_type); in impeg2d_dec_pnb_mb_params()
388 ps_dec->u2_prev_intra_mb = 0; in impeg2d_dec_pnb_mb_params()
389 ps_dec->e_mb_pred = (e_pred_direction_t)u2_refPic; in impeg2d_dec_pnb_mb_params()
390 ps_dec_mb_params = &ps_dec->ps_func_forw_or_back[u2_index]; in impeg2d_dec_pnb_mb_params()
391 ps_dec->s_mb_type = ps_dec_mb_params->s_mb_type; in impeg2d_dec_pnb_mb_params()
394 ps_dec_mb_params->pf_func_mb_params(ps_dec); in impeg2d_dec_pnb_mb_params()
399 ps_dec->u2_prev_intra_mb = 1; in impeg2d_dec_pnb_mb_params()
400 impeg2d_dec_intra_mb(ps_dec); in impeg2d_dec_pnb_mb_params()
405 ps_dec->u2_prev_intra_mb =0; in impeg2d_dec_pnb_mb_params()
406 ps_dec->e_mb_pred = FORW; in impeg2d_dec_pnb_mb_params()
407 ps_dec->u2_motion_type = 0; in impeg2d_dec_pnb_mb_params()
408 impeg2d_dec_0mv_coded_mb(ps_dec); in impeg2d_dec_pnb_mb_params()
416 ps_dec->u2_cbp = 0x3f; in impeg2d_dec_pnb_mb_params()
417 ps_dec->u2_prev_intra_mb = 1; in impeg2d_dec_pnb_mb_params()
421 ps_dec->u2_prev_intra_mb = 0; in impeg2d_dec_pnb_mb_params()
422 ps_dec->u2_def_dc_pred[Y_LUMA] = 128 << ps_dec->u2_intra_dc_precision; in impeg2d_dec_pnb_mb_params()
423 ps_dec->u2_def_dc_pred[U_CHROMA] = 128 << ps_dec->u2_intra_dc_precision; in impeg2d_dec_pnb_mb_params()
424 ps_dec->u2_def_dc_pred[V_CHROMA] = 128 << ps_dec->u2_intra_dc_precision; in impeg2d_dec_pnb_mb_params()
425 if((ps_dec->u2_coded_mb)) in impeg2d_dec_pnb_mb_params()
429 ps_dec->u2_cbp = cbpValue & 0xFF; in impeg2d_dec_pnb_mb_params()
434 ps_dec->u2_cbp = 0; in impeg2d_dec_pnb_mb_params()
450 IMPEG2D_ERROR_CODES_T impeg2d_dec_p_b_slice(dec_state_t *ps_dec) in impeg2d_dec_p_b_slice() argument
454 yuv_buf_t *ps_cur_frm_buf = &ps_dec->s_cur_frm_buf; in impeg2d_dec_p_b_slice()
460 pi2_vld_out = ps_dec->ai2_vld_buf; in impeg2d_dec_p_b_slice()
461 memset(ps_dec->ai2_pred_mv,0,sizeof(ps_dec->ai2_pred_mv)); in impeg2d_dec_p_b_slice()
463 ps_dec->u2_prev_intra_mb = 0; in impeg2d_dec_p_b_slice()
464 ps_dec->u2_first_mb = 1; in impeg2d_dec_p_b_slice()
466 ps_dec->u2_picture_width = ps_dec->u2_frame_width; in impeg2d_dec_p_b_slice()
468 if(ps_dec->u2_picture_structure != FRAME_PICTURE) in impeg2d_dec_p_b_slice()
470 ps_dec->u2_picture_width <<= 1; in impeg2d_dec_p_b_slice()
471 if(ps_dec->u2_picture_structure == BOTTOM_FIELD) in impeg2d_dec_p_b_slice()
473 u4_frm_offset = ps_dec->u2_frame_width; in impeg2d_dec_p_b_slice()
489 IMPEG2D_TRACE_MB_START(ps_dec->u2_mb_x, ps_dec->u2_mb_y); in impeg2d_dec_p_b_slice()
492 if(ps_dec->e_pic_type == B_PIC) in impeg2d_dec_p_b_slice()
493 ret = impeg2d_dec_pnb_mb_params(ps_dec); in impeg2d_dec_p_b_slice()
495 ret = impeg2d_dec_p_mb_params(ps_dec); in impeg2d_dec_p_b_slice()
499 IMPEG2D_TRACE_MB_START(ps_dec->u2_mb_x, ps_dec->u2_mb_y); in impeg2d_dec_p_b_slice()
501 u4_x_dst_offset = u4_frm_offset + (ps_dec->u2_mb_x << 4); in impeg2d_dec_p_b_slice()
502 u4_y_dst_offset = (ps_dec->u2_mb_y << 4) * ps_dec->u2_picture_width; in impeg2d_dec_p_b_slice()
504 if(ps_dec->u2_prev_intra_mb == 0) in impeg2d_dec_p_b_slice()
507 UWORD16 index = (ps_dec->u2_motion_type); in impeg2d_dec_p_b_slice()
509 if(ps_dec->e_mb_pred == BIDIRECT) in impeg2d_dec_p_b_slice()
511 ps_dec_mb_params = &ps_dec->ps_func_bi_direct[index]; in impeg2d_dec_p_b_slice()
515 ps_dec_mb_params = &ps_dec->ps_func_forw_or_back[index]; in impeg2d_dec_p_b_slice()
518 stride = ps_dec->u2_picture_width; in impeg2d_dec_p_b_slice()
520 offset_x = u4_frm_offset + (ps_dec->u2_mb_x << 4); in impeg2d_dec_p_b_slice()
522 offset_y = (ps_dec->u2_mb_y << 4); in impeg2d_dec_p_b_slice()
524 ps_dec->s_dest_buf.pu1_y = ps_cur_frm_buf->pu1_y + offset_y * stride + offset_x; in impeg2d_dec_p_b_slice()
528 ps_dec->s_dest_buf.pu1_u = ps_cur_frm_buf->pu1_u + (offset_y >> 1) * stride in impeg2d_dec_p_b_slice()
531 ps_dec->s_dest_buf.pu1_v = ps_cur_frm_buf->pu1_v + (offset_y >> 1) * stride in impeg2d_dec_p_b_slice()
535 ps_dec_mb_params->pf_mc(ps_dec); in impeg2d_dec_p_b_slice()
540 if((ps_dec->u2_cbp & (1 << (BLOCKS_IN_MB - 1 - i))) != 0) in impeg2d_dec_p_b_slice()
542 e_error = ps_dec->pf_vld_inv_quant(ps_dec, pi2_vld_out, ps_dec->pu1_inv_scan_matrix, in impeg2d_dec_p_b_slice()
543 ps_dec->u2_prev_intra_mb, Y_LUMA, 0); in impeg2d_dec_p_b_slice()
551 if(ps_dec->u2_field_dct == 0) in impeg2d_dec_p_b_slice()
560 … IMPEG2D_IDCT_INP_STATISTICS(pi2_vld_out, ps_dec->u4_non_zero_cols, ps_dec->u4_non_zero_rows); in impeg2d_dec_p_b_slice()
565 if(1 == (ps_dec->u4_non_zero_cols | ps_dec->u4_non_zero_rows)) in impeg2d_dec_p_b_slice()
570 if(0 == ps_dec->u2_prev_intra_mb) in impeg2d_dec_p_b_slice()
572 pu1_pred = pu1_out_p + u4_y_offset * ps_dec->u2_picture_width + u4_x_offset; in impeg2d_dec_p_b_slice()
573 u4_pred_strd = ps_dec->u2_picture_width << ps_dec->u2_field_dct; in impeg2d_dec_p_b_slice()
581 ps_dec->pf_idct_recon[idx * 2 + ps_dec->i4_last_value_one](pi2_vld_out, in impeg2d_dec_p_b_slice()
582 ps_dec->ai2_idct_stg1, in impeg2d_dec_p_b_slice()
584 … pu1_out_p + u4_y_offset * ps_dec->u2_picture_width + u4_x_offset, in impeg2d_dec_p_b_slice()
587ps_dec->u2_picture_width << ps_dec->u2_field_dct, in impeg2d_dec_p_b_slice()
588 … ~ps_dec->u4_non_zero_cols, ~ps_dec->u4_non_zero_rows); in impeg2d_dec_p_b_slice()
601 if((ps_dec->u2_cbp & 0x02) != 0) in impeg2d_dec_p_b_slice()
604 e_error = ps_dec->pf_vld_inv_quant(ps_dec, pi2_vld_out, ps_dec->pu1_inv_scan_matrix, in impeg2d_dec_p_b_slice()
605 ps_dec->u2_prev_intra_mb, U_CHROMA, 0); in impeg2d_dec_p_b_slice()
612 … IMPEG2D_IDCT_INP_STATISTICS(pi2_vld_out, ps_dec->u4_non_zero_cols, ps_dec->u4_non_zero_rows); in impeg2d_dec_p_b_slice()
617 if(1 == (ps_dec->u4_non_zero_cols | ps_dec->u4_non_zero_rows)) in impeg2d_dec_p_b_slice()
622 if(0 == ps_dec->u2_prev_intra_mb) in impeg2d_dec_p_b_slice()
625 u4_pred_strd = ps_dec->u2_picture_width >> 1; in impeg2d_dec_p_b_slice()
633 ps_dec->pf_idct_recon[idx * 2 + ps_dec->i4_last_value_one](pi2_vld_out, in impeg2d_dec_p_b_slice()
634 ps_dec->ai2_idct_stg1, in impeg2d_dec_p_b_slice()
639 ps_dec->u2_picture_width >> 1, in impeg2d_dec_p_b_slice()
640 … ~ps_dec->u4_non_zero_cols, ~ps_dec->u4_non_zero_rows); in impeg2d_dec_p_b_slice()
647 if((ps_dec->u2_cbp & 0x01) != 0) in impeg2d_dec_p_b_slice()
650 e_error = ps_dec->pf_vld_inv_quant(ps_dec, pi2_vld_out, ps_dec->pu1_inv_scan_matrix, in impeg2d_dec_p_b_slice()
651 ps_dec->u2_prev_intra_mb, V_CHROMA, 0); in impeg2d_dec_p_b_slice()
658 … IMPEG2D_IDCT_INP_STATISTICS(pi2_vld_out, ps_dec->u4_non_zero_cols, ps_dec->u4_non_zero_rows); in impeg2d_dec_p_b_slice()
663 if(1 == (ps_dec->u4_non_zero_cols | ps_dec->u4_non_zero_rows)) in impeg2d_dec_p_b_slice()
667 if(0 == ps_dec->u2_prev_intra_mb) in impeg2d_dec_p_b_slice()
670 u4_pred_strd = ps_dec->u2_picture_width >> 1; in impeg2d_dec_p_b_slice()
678 ps_dec->pf_idct_recon[idx * 2 + ps_dec->i4_last_value_one](pi2_vld_out, in impeg2d_dec_p_b_slice()
679 ps_dec->ai2_idct_stg1, in impeg2d_dec_p_b_slice()
684 ps_dec->u2_picture_width >> 1, in impeg2d_dec_p_b_slice()
685 … ~ps_dec->u4_non_zero_cols, ~ps_dec->u4_non_zero_rows); in impeg2d_dec_p_b_slice()
691 ps_dec->u2_num_mbs_left--; in impeg2d_dec_p_b_slice()
692 ps_dec->u2_first_mb = 0; in impeg2d_dec_p_b_slice()
693 ps_dec->u2_mb_x++; in impeg2d_dec_p_b_slice()
695 if(ps_dec->s_bit_stream.u4_offset > ps_dec->s_bit_stream.u4_max_offset) in impeg2d_dec_p_b_slice()
699 else if (ps_dec->u2_mb_x == ps_dec->u2_num_horiz_mb) in impeg2d_dec_p_b_slice()
701 ps_dec->u2_mb_x = 0; in impeg2d_dec_p_b_slice()
702 ps_dec->u2_mb_y++; in impeg2d_dec_p_b_slice()
706 while(ps_dec->u2_num_mbs_left != 0 && impeg2d_bit_stream_nxt(&ps_dec->s_bit_stream,23) != 0x0); in impeg2d_dec_p_b_slice()