Lines Matching refs:ps_dec

63 void 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()
183 ps_dec_mb_params->pf_func_mb_params(ps_dec); in impeg2d_dec_p_mb_params()
188 ps_dec->u2_prev_intra_mb = 1; in impeg2d_dec_p_mb_params()
189 impeg2d_dec_intra_mb(ps_dec); in impeg2d_dec_p_mb_params()
194 ps_dec->u2_prev_intra_mb = 0; in impeg2d_dec_p_mb_params()
195 ps_dec->e_mb_pred = FORW; in impeg2d_dec_p_mb_params()
196 ps_dec->u2_motion_type = 0; in impeg2d_dec_p_mb_params()
197 impeg2d_dec_0mv_coded_mb(ps_dec); in impeg2d_dec_p_mb_params()
205 ps_dec->u2_cbp = 0x3f; in impeg2d_dec_p_mb_params()
206 ps_dec->u2_prev_intra_mb = 1; in impeg2d_dec_p_mb_params()
210 ps_dec->u2_prev_intra_mb = 0; in impeg2d_dec_p_mb_params()
211 ps_dec->u2_def_dc_pred[Y_LUMA] = 128 << ps_dec->u2_intra_dc_precision; in impeg2d_dec_p_mb_params()
212 ps_dec->u2_def_dc_pred[U_CHROMA] = 128 << ps_dec->u2_intra_dc_precision; in impeg2d_dec_p_mb_params()
213 ps_dec->u2_def_dc_pred[V_CHROMA] = 128 << ps_dec->u2_intra_dc_precision; in impeg2d_dec_p_mb_params()
214 if((ps_dec->u2_coded_mb)) in impeg2d_dec_p_mb_params()
218 ps_dec->u2_cbp = cbpValue & 0xFF; in impeg2d_dec_p_mb_params()
223 ps_dec->u2_cbp = 0; in impeg2d_dec_p_mb_params()
240 void impeg2d_dec_pnb_mb_params(dec_state_t *ps_dec) in impeg2d_dec_pnb_mb_params() argument
242 stream_t *ps_stream = &ps_dec->s_bit_stream; in impeg2d_dec_pnb_mb_params()
258 if(ps_dec->u2_first_mb) in impeg2d_dec_pnb_mb_params()
269 ps_dec->u2_mb_x = u2_mb_addr_incr - 1; in impeg2d_dec_pnb_mb_params()
271 ps_dec->u2_mb_x = MIN(ps_dec->u2_mb_x, (ps_dec->u2_num_horiz_mb - 1)); in impeg2d_dec_pnb_mb_params()
279 ps_dec->u2_first_mb = 0; in impeg2d_dec_pnb_mb_params()
291 if(ps_dec->u2_is_mpeg2 && in impeg2d_dec_pnb_mb_params()
292 ((ps_dec->u2_mb_x + u2_mb_addr_incr) > ps_dec->u2_num_horiz_mb)) in impeg2d_dec_pnb_mb_params()
294 u2_mb_addr_incr = ps_dec->u2_num_horiz_mb - ps_dec->u2_mb_x; in impeg2d_dec_pnb_mb_params()
298 impeg2d_dec_skip_mbs(ps_dec, (UWORD16)(u2_mb_addr_incr - 1)); in impeg2d_dec_pnb_mb_params()
307 u2_mb_type = ps_dec->pu2_mb_type[BITS((UWORD16)u4_next_word,15,10)]; in impeg2d_dec_pnb_mb_params()
316 WORD32 i4_motion_type = ps_dec->u2_motion_type; in impeg2d_dec_pnb_mb_params()
318 if((u2_mb_type & MB_FORW_OR_BACK) && ps_dec->u2_read_motion_type) in impeg2d_dec_pnb_mb_params()
320 ps_dec->u2_motion_type = BITS((UWORD16)u4_next_word,15,14); in impeg2d_dec_pnb_mb_params()
323 i4_motion_type = ps_dec->u2_motion_type; in impeg2d_dec_pnb_mb_params()
343 if((u2_mb_type & MB_CODED) && ps_dec->u2_read_dct_type) in impeg2d_dec_pnb_mb_params()
345 ps_dec->u2_field_dct = BIT((UWORD16)u4_next_word,15); in impeg2d_dec_pnb_mb_params()
358 ps_dec->u1_quant_scale = (ps_dec->u2_q_scale_type) ? in impeg2d_dec_pnb_mb_params()
366 ps_dec->u2_coded_mb = (UWORD16)(u2_mb_type & MB_CODED); in impeg2d_dec_pnb_mb_params()
370 UWORD16 u2_index = (ps_dec->u2_motion_type); in impeg2d_dec_pnb_mb_params()
372 ps_dec->u2_prev_intra_mb = 0; in impeg2d_dec_pnb_mb_params()
373 ps_dec->e_mb_pred = BIDIRECT; in impeg2d_dec_pnb_mb_params()
374 ps_dec_mb_params = &ps_dec->ps_func_bi_direct[u2_index]; in impeg2d_dec_pnb_mb_params()
375 ps_dec->s_mb_type = ps_dec_mb_params->s_mb_type; in impeg2d_dec_pnb_mb_params()
376 ps_dec_mb_params->pf_func_mb_params(ps_dec); in impeg2d_dec_pnb_mb_params()
382 UWORD16 u2_index = (ps_dec->u2_motion_type); in impeg2d_dec_pnb_mb_params()
383 ps_dec->u2_prev_intra_mb = 0; in impeg2d_dec_pnb_mb_params()
384 ps_dec->e_mb_pred = (e_pred_direction_t)u2_refPic; in impeg2d_dec_pnb_mb_params()
385 ps_dec_mb_params = &ps_dec->ps_func_forw_or_back[u2_index]; in impeg2d_dec_pnb_mb_params()
386 ps_dec->s_mb_type = ps_dec_mb_params->s_mb_type; in impeg2d_dec_pnb_mb_params()
387 ps_dec_mb_params->pf_func_mb_params(ps_dec); in impeg2d_dec_pnb_mb_params()
392 ps_dec->u2_prev_intra_mb = 1; in impeg2d_dec_pnb_mb_params()
393 impeg2d_dec_intra_mb(ps_dec); in impeg2d_dec_pnb_mb_params()
398 ps_dec->u2_prev_intra_mb =0; in impeg2d_dec_pnb_mb_params()
399 ps_dec->e_mb_pred = FORW; in impeg2d_dec_pnb_mb_params()
400 ps_dec->u2_motion_type = 0; in impeg2d_dec_pnb_mb_params()
401 impeg2d_dec_0mv_coded_mb(ps_dec); in impeg2d_dec_pnb_mb_params()
409 ps_dec->u2_cbp = 0x3f; in impeg2d_dec_pnb_mb_params()
410 ps_dec->u2_prev_intra_mb = 1; in impeg2d_dec_pnb_mb_params()
414 ps_dec->u2_prev_intra_mb = 0; in impeg2d_dec_pnb_mb_params()
415 ps_dec->u2_def_dc_pred[Y_LUMA] = 128 << ps_dec->u2_intra_dc_precision; in impeg2d_dec_pnb_mb_params()
416 ps_dec->u2_def_dc_pred[U_CHROMA] = 128 << ps_dec->u2_intra_dc_precision; in impeg2d_dec_pnb_mb_params()
417 ps_dec->u2_def_dc_pred[V_CHROMA] = 128 << ps_dec->u2_intra_dc_precision; in impeg2d_dec_pnb_mb_params()
418 if((ps_dec->u2_coded_mb)) in impeg2d_dec_pnb_mb_params()
422 ps_dec->u2_cbp = cbpValue & 0xFF; in impeg2d_dec_pnb_mb_params()
427 ps_dec->u2_cbp = 0; in impeg2d_dec_pnb_mb_params()
442 IMPEG2D_ERROR_CODES_T impeg2d_dec_p_b_slice(dec_state_t *ps_dec) in impeg2d_dec_p_b_slice() argument
446 yuv_buf_t *ps_cur_frm_buf = &ps_dec->s_cur_frm_buf; in impeg2d_dec_p_b_slice()
452 pi2_vld_out = ps_dec->ai2_vld_buf; in impeg2d_dec_p_b_slice()
453 memset(ps_dec->ai2_pred_mv,0,sizeof(ps_dec->ai2_pred_mv)); in impeg2d_dec_p_b_slice()
455 ps_dec->u2_prev_intra_mb = 0; in impeg2d_dec_p_b_slice()
456 ps_dec->u2_first_mb = 1; in impeg2d_dec_p_b_slice()
458 ps_dec->u2_picture_width = ps_dec->u2_frame_width; in impeg2d_dec_p_b_slice()
460 if(ps_dec->u2_picture_structure != FRAME_PICTURE) in impeg2d_dec_p_b_slice()
462 ps_dec->u2_picture_width <<= 1; in impeg2d_dec_p_b_slice()
463 if(ps_dec->u2_picture_structure == BOTTOM_FIELD) in impeg2d_dec_p_b_slice()
465 u4_frm_offset = ps_dec->u2_frame_width; in impeg2d_dec_p_b_slice()
481 IMPEG2D_TRACE_MB_START(ps_dec->u2_mb_x, ps_dec->u2_mb_y); in impeg2d_dec_p_b_slice()
484 if(ps_dec->e_pic_type == B_PIC) in impeg2d_dec_p_b_slice()
485 impeg2d_dec_pnb_mb_params(ps_dec); in impeg2d_dec_p_b_slice()
487 impeg2d_dec_p_mb_params(ps_dec); 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()
491 u4_x_dst_offset = u4_frm_offset + (ps_dec->u2_mb_x << 4); in impeg2d_dec_p_b_slice()
492 u4_y_dst_offset = (ps_dec->u2_mb_y << 4) * ps_dec->u2_picture_width; in impeg2d_dec_p_b_slice()
494 if(ps_dec->u2_prev_intra_mb == 0) in impeg2d_dec_p_b_slice()
497 UWORD16 index = (ps_dec->u2_motion_type); in impeg2d_dec_p_b_slice()
499 if(ps_dec->e_mb_pred == BIDIRECT) in impeg2d_dec_p_b_slice()
501 ps_dec_mb_params = &ps_dec->ps_func_bi_direct[index]; in impeg2d_dec_p_b_slice()
505 ps_dec_mb_params = &ps_dec->ps_func_forw_or_back[index]; in impeg2d_dec_p_b_slice()
508 stride = ps_dec->u2_picture_width; in impeg2d_dec_p_b_slice()
510 offset_x = u4_frm_offset + (ps_dec->u2_mb_x << 4); in impeg2d_dec_p_b_slice()
512 offset_y = (ps_dec->u2_mb_y << 4); in impeg2d_dec_p_b_slice()
514 ps_dec->s_dest_buf.pu1_y = ps_cur_frm_buf->pu1_y + offset_y * stride + offset_x; in impeg2d_dec_p_b_slice()
518 ps_dec->s_dest_buf.pu1_u = ps_cur_frm_buf->pu1_u + (offset_y >> 1) * stride in impeg2d_dec_p_b_slice()
521 ps_dec->s_dest_buf.pu1_v = ps_cur_frm_buf->pu1_v + (offset_y >> 1) * stride in impeg2d_dec_p_b_slice()
525 ps_dec_mb_params->pf_mc(ps_dec); in impeg2d_dec_p_b_slice()
530 if((ps_dec->u2_cbp & (1 << (BLOCKS_IN_MB - 1 - i))) != 0) in impeg2d_dec_p_b_slice()
532 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()
533 ps_dec->u2_prev_intra_mb, Y_LUMA, 0); in impeg2d_dec_p_b_slice()
541 if(ps_dec->u2_field_dct == 0) in impeg2d_dec_p_b_slice()
550 … 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()
555 if(1 == (ps_dec->u4_non_zero_cols | ps_dec->u4_non_zero_rows)) in impeg2d_dec_p_b_slice()
560 if(0 == ps_dec->u2_prev_intra_mb) in impeg2d_dec_p_b_slice()
562 pu1_pred = pu1_out_p + u4_y_offset * ps_dec->u2_picture_width + u4_x_offset; in impeg2d_dec_p_b_slice()
563 u4_pred_strd = ps_dec->u2_picture_width << ps_dec->u2_field_dct; in impeg2d_dec_p_b_slice()
571 ps_dec->pf_idct_recon[idx * 2 + ps_dec->i4_last_value_one](pi2_vld_out, in impeg2d_dec_p_b_slice()
572 ps_dec->ai2_idct_stg1, in impeg2d_dec_p_b_slice()
574 … pu1_out_p + u4_y_offset * ps_dec->u2_picture_width + u4_x_offset, in impeg2d_dec_p_b_slice()
577ps_dec->u2_picture_width << ps_dec->u2_field_dct, in impeg2d_dec_p_b_slice()
578 … ~ps_dec->u4_non_zero_cols, ~ps_dec->u4_non_zero_rows); in impeg2d_dec_p_b_slice()
591 if((ps_dec->u2_cbp & 0x02) != 0) in impeg2d_dec_p_b_slice()
594 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()
595 ps_dec->u2_prev_intra_mb, U_CHROMA, 0); in impeg2d_dec_p_b_slice()
602 … 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()
607 if(1 == (ps_dec->u4_non_zero_cols | ps_dec->u4_non_zero_rows)) in impeg2d_dec_p_b_slice()
612 if(0 == ps_dec->u2_prev_intra_mb) in impeg2d_dec_p_b_slice()
615 u4_pred_strd = ps_dec->u2_picture_width >> 1; in impeg2d_dec_p_b_slice()
623 ps_dec->pf_idct_recon[idx * 2 + ps_dec->i4_last_value_one](pi2_vld_out, in impeg2d_dec_p_b_slice()
624 ps_dec->ai2_idct_stg1, in impeg2d_dec_p_b_slice()
629 ps_dec->u2_picture_width >> 1, in impeg2d_dec_p_b_slice()
630 … ~ps_dec->u4_non_zero_cols, ~ps_dec->u4_non_zero_rows); in impeg2d_dec_p_b_slice()
637 if((ps_dec->u2_cbp & 0x01) != 0) in impeg2d_dec_p_b_slice()
640 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()
641 ps_dec->u2_prev_intra_mb, V_CHROMA, 0); in impeg2d_dec_p_b_slice()
648 … 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()
653 if(1 == (ps_dec->u4_non_zero_cols | ps_dec->u4_non_zero_rows)) in impeg2d_dec_p_b_slice()
657 if(0 == ps_dec->u2_prev_intra_mb) in impeg2d_dec_p_b_slice()
660 u4_pred_strd = ps_dec->u2_picture_width >> 1; in impeg2d_dec_p_b_slice()
668 ps_dec->pf_idct_recon[idx * 2 + ps_dec->i4_last_value_one](pi2_vld_out, in impeg2d_dec_p_b_slice()
669 ps_dec->ai2_idct_stg1, in impeg2d_dec_p_b_slice()
674 ps_dec->u2_picture_width >> 1, in impeg2d_dec_p_b_slice()
675 … ~ps_dec->u4_non_zero_cols, ~ps_dec->u4_non_zero_rows); in impeg2d_dec_p_b_slice()
681 ps_dec->u2_num_mbs_left--; in impeg2d_dec_p_b_slice()
682 ps_dec->u2_first_mb = 0; in impeg2d_dec_p_b_slice()
683 ps_dec->u2_mb_x++; in impeg2d_dec_p_b_slice()
685 if(ps_dec->s_bit_stream.u4_offset > ps_dec->s_bit_stream.u4_max_offset) in impeg2d_dec_p_b_slice()
689 else if (ps_dec->u2_mb_x == ps_dec->u2_num_horiz_mb) in impeg2d_dec_p_b_slice()
691 ps_dec->u2_mb_x = 0; in impeg2d_dec_p_b_slice()
692 ps_dec->u2_mb_y++; in impeg2d_dec_p_b_slice()
696 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()