Lines Matching defs:ps_dec

48 void impeg2d_format_convert(dec_state_t *ps_dec,
61 pu1_src_y = ps_src_pic->pu1_y + (u4_start_row * ps_dec->u2_frame_width);
62 pu1_src_u = ps_src_pic->pu1_u + ((u4_start_row >> 1) * (ps_dec->u2_frame_width >> 1));
63 pu1_src_v = ps_src_pic->pu1_v + ((u4_start_row >> 1) *(ps_dec->u2_frame_width >> 1));
65 pu1_dst_y = (UWORD8 *)ps_disp_frm_buf->pv_y_buf + (u4_start_row * ps_dec->u4_frm_buf_stride);
66 pu1_dst_u = (UWORD8 *)ps_disp_frm_buf->pv_u_buf +((u4_start_row >> 1)*(ps_dec->u4_frm_buf_stride >> 1));
67 pu1_dst_v = (UWORD8 *)ps_disp_frm_buf->pv_v_buf +((u4_start_row >> 1)*(ps_dec->u4_frm_buf_stride >> 1));
69 if (IV_YUV_420P == ps_dec->i4_chromaFormat)
71 ps_dec->pf_copy_yuv420p_buf(pu1_src_y, pu1_src_u, pu1_src_v, pu1_dst_y,
73 ps_dec->u2_horizontal_size,
75 ps_dec->u2_frame_width,
76 (ps_dec->u2_frame_width >> 1),
77 (ps_dec->u2_frame_width >> 1),
78 ps_dec->u4_frm_buf_stride,
79 (ps_dec->u4_frm_buf_stride >> 1),
80 (ps_dec->u4_frm_buf_stride >> 1));
82 else if (IV_YUV_422ILE == ps_dec->i4_chromaFormat)
89 pv_yuv422i = (UWORD8 *)ps_disp_frm_buf->pv_y_buf + ((ps_dec->u2_vertical_size)*(ps_dec->u4_frm_buf_stride));
91 u2_width = ps_dec->u2_horizontal_size;
92 u2_stride_y = ps_dec->u2_frame_width;
95 u2_stride_yuv422i = (0 == ps_dec->u4_frm_buf_stride) ? ps_dec->u2_horizontal_size : ps_dec->u4_frm_buf_stride;
97 ps_dec->pf_fmt_conv_yuv420p_to_yuv422ile(pu1_src_y,
109 else if((ps_dec->i4_chromaFormat == IV_YUV_420SP_UV) ||
110 (ps_dec->i4_chromaFormat == IV_YUV_420SP_VU))
116 pu1_dst_u = (UWORD8 *)ps_disp_frm_buf->pv_u_buf +((u4_start_row >> 1)*(ps_dec->u4_frm_buf_stride));
117 dest_inc_Y = ps_dec->u4_frm_buf_stride;
118 dest_inc_UV = ((ps_dec->u4_frm_buf_stride + 1) >> 1) << 1;
121 if(1 == ps_dec->u4_share_disp_buf)
127 if(ps_dec->i4_chromaFormat == IV_YUV_420SP_UV)
129 ps_dec->pf_fmt_conv_yuv420p_to_yuv420sp_uv(pu1_src_y,
135 ps_dec->u2_horizontal_size,
136 ps_dec->u2_frame_width,
137 ps_dec->u2_frame_width >> 1,
138 ps_dec->u2_frame_width >> 1,
145 ps_dec->pf_fmt_conv_yuv420p_to_yuv420sp_vu(pu1_src_y,
151 ps_dec->u2_horizontal_size,
152 ps_dec->u2_frame_width,
153 ps_dec->u2_frame_width >> 1,
154 ps_dec->u2_frame_width >> 1,
249 IMPEG2D_ERROR_CODES_T impeg2d_init_video_state(dec_state_t *ps_dec, e_video_type_t e_video_type)
256 ps_dec->u2_is_mpeg2 = 0;
262 ps_dec->u2_progressive_sequence = 1;
263 ps_dec->u2_intra_dc_precision = 0;
264 ps_dec->u2_picture_structure = FRAME_PICTURE;
265 ps_dec->u2_frame_pred_frame_dct = 1;
266 ps_dec->u2_concealment_motion_vectors = 0;
267 ps_dec->u2_q_scale_type = 0;
268 ps_dec->u2_intra_vlc_format = 0;
269 ps_dec->u2_alternate_scan = 0;
270 ps_dec->u2_repeat_first_field = 0;
271 ps_dec->u2_progressive_frame = 1;
272 ps_dec->u2_frame_rate_extension_n = 0;
273 ps_dec->u2_frame_rate_extension_d = 0;
275 ps_dec->pf_vld_inv_quant = impeg2d_vld_inv_quant_mpeg1;
286 ps_dec->u2_is_mpeg2 = 1;
287 ps_dec->u2_full_pel_forw_vector = 0;
288 ps_dec->u2_forw_f_code = 7;
289 ps_dec->u2_full_pel_back_vector = 0;
290 ps_dec->u2_back_f_code = 7;
291 ps_dec->pf_vld_inv_quant = impeg2d_vld_inv_quant_mpeg2;
297 impeg2d_init_function_ptr(ps_dec);
300 ps_dec->u2_frame_height = ALIGN16(ps_dec->u2_vertical_size);
301 ps_dec->u2_frame_width = ALIGN16(ps_dec->u2_horizontal_size);
302 ps_dec->u2_num_horiz_mb = (ps_dec->u2_horizontal_size + 15) >> 4;
304 if (ps_dec->u2_frame_height > ps_dec->u2_create_max_height || ps_dec->u2_frame_width > ps_dec->u2_create_max_width)
309 ps_dec->u2_num_flds_decoded = 0;
315 numer = (UWORD32)gau2_impeg2_frm_rate_code[ps_dec->u2_frame_rate_code][1] *
316 (UWORD32)(ps_dec->u2_frame_rate_extension_d + 1);
318 denom = (UWORD32)gau2_impeg2_frm_rate_code[ps_dec->u2_frame_rate_code][0] *
319 (UWORD32)(ps_dec->u2_frame_rate_extension_n + 1);
320 ps_dec->u2_framePeriod = (numer * 1000 * 100) / denom;
324 if(VERTICAL_SCAN == ps_dec->u2_alternate_scan)
326 ps_dec->pu1_inv_scan_matrix = (UWORD8 *)gau1_impeg2_inv_scan_vertical;
330 ps_dec->pu1_inv_scan_matrix = (UWORD8 *)gau1_impeg2_inv_scan_zig_zag;
345 IMPEG2D_ERROR_CODES_T impeg2d_pre_pic_dec_proc(dec_state_t *ps_dec)
355 if(ps_dec->u2_picture_structure != FRAME_PICTURE)
357 ps_dec->u2_num_vert_mb = (ps_dec->u2_vertical_size + 31) >> 5;
359 if(ps_dec->u2_num_flds_decoded == 0)
364 ps_pic_buf = impeg2_buf_mgr_get_next_free(ps_dec->pv_pic_buf_mg, &ps_dec->i4_cur_buf_id);
371 impeg2_buf_mgr_set_status((buf_mgr_t *)ps_dec->pv_pic_buf_mg, ps_dec->i4_cur_buf_id, BUF_MGR_DISP);
372 impeg2_buf_mgr_set_status((buf_mgr_t *)ps_dec->pv_pic_buf_mg, ps_dec->i4_cur_buf_id, BUF_MGR_REF);
373 if(ps_dec->u4_deinterlace)
374 impeg2_buf_mgr_set_status((buf_mgr_t *)ps_dec->pv_pic_buf_mg, ps_dec->i4_cur_buf_id, MPEG2_BUF_MGR_DEINT);
376 ps_pic_buf->u4_ts = ps_dec->u4_inp_ts;
377 ps_pic_buf->e_pic_type = ps_dec->e_pic_type;
378 ps_dec->ps_cur_pic = ps_pic_buf;
379 ps_dec->s_cur_frm_buf.pu1_y = ps_pic_buf->pu1_y;
380 ps_dec->s_cur_frm_buf.pu1_u = ps_pic_buf->pu1_u;
381 ps_dec->s_cur_frm_buf.pu1_v = ps_pic_buf->pu1_v;
384 if(ps_dec->u2_picture_structure == TOP_FIELD)
386 ps_dec->u2_fld_parity = TOP;
390 ps_dec->u2_fld_parity = BOTTOM;
392 ps_dec->u2_field_dct = 0;
393 ps_dec->u2_read_dct_type = 0;
394 ps_dec->u2_read_motion_type = 1;
395 ps_dec->u2_fld_pic = 1;
396 ps_dec->u2_frm_pic = 0;
397 ps_dec->ps_func_forw_or_back = gas_impeg2d_func_fld_fw_or_bk;
398 ps_dec->ps_func_bi_direct = gas_impeg2d_func_fld_bi_direct;
406 ps_dec->u2_num_vert_mb = (ps_dec->u2_vertical_size + 15) >> 4;
408 ps_pic_buf = impeg2_buf_mgr_get_next_free(ps_dec->pv_pic_buf_mg, &ps_dec->i4_cur_buf_id);
414 impeg2_buf_mgr_set_status((buf_mgr_t *)ps_dec->pv_pic_buf_mg, ps_dec->i4_cur_buf_id, BUF_MGR_DISP);
415 impeg2_buf_mgr_set_status((buf_mgr_t *)ps_dec->pv_pic_buf_mg, ps_dec->i4_cur_buf_id, BUF_MGR_REF);
416 if(ps_dec->u4_deinterlace)
417 impeg2_buf_mgr_set_status((buf_mgr_t *)ps_dec->pv_pic_buf_mg, ps_dec->i4_cur_buf_id, MPEG2_BUF_MGR_DEINT);
419 ps_pic_buf->u4_ts = ps_dec->u4_inp_ts;
420 ps_pic_buf->e_pic_type = ps_dec->e_pic_type;
421 ps_dec->ps_cur_pic = ps_pic_buf;
422 ps_dec->s_cur_frm_buf.pu1_y = ps_pic_buf->pu1_y;
423 ps_dec->s_cur_frm_buf.pu1_u = ps_pic_buf->pu1_u;
424 ps_dec->s_cur_frm_buf.pu1_v = ps_pic_buf->pu1_v;
427 if(ps_dec->u2_frame_pred_frame_dct == 0)
429 ps_dec->u2_read_dct_type = 1;
430 ps_dec->u2_read_motion_type = 1;
434 ps_dec->u2_read_dct_type = 0;
435 ps_dec->u2_read_motion_type = 0;
436 ps_dec->u2_motion_type = 2;
437 ps_dec->u2_field_dct = 0;
440 ps_dec->u2_fld_parity = TOP;
441 ps_dec->u2_fld_pic = 0;
442 ps_dec->u2_frm_pic = 1;
443 ps_dec->ps_func_forw_or_back = gas_impeg2d_func_frm_fw_or_bk;
444 ps_dec->ps_func_bi_direct = gas_impeg2d_func_frm_bi_direct;
446 ps_dec->u2_def_dc_pred[Y_LUMA] = 128 << ps_dec->u2_intra_dc_precision;
447 ps_dec->u2_def_dc_pred[U_CHROMA] = 128 << ps_dec->u2_intra_dc_precision;
448 ps_dec->u2_def_dc_pred[V_CHROMA] = 128 << ps_dec->u2_intra_dc_precision;
449 ps_dec->u2_num_mbs_left = ps_dec->u2_num_horiz_mb * ps_dec->u2_num_vert_mb;
452 if(ps_dec->u4_num_frames_decoded > 1)
454 ps_disp_pic = impeg2_disp_mgr_get(&ps_dec->s_disp_mgr, &ps_dec->i4_disp_buf_id);
456 ps_dec->ps_disp_pic = ps_disp_pic;
459 if(1 == ps_dec->u4_share_disp_buf)
461 ps_dec->ps_disp_frm_buf->pv_y_buf = ps_disp_pic->pu1_y;
462 if(IV_YUV_420P == ps_dec->i4_chromaFormat)
464 ps_dec->ps_disp_frm_buf->pv_u_buf = ps_disp_pic->pu1_u;
465 ps_dec->ps_disp_frm_buf->pv_v_buf = ps_disp_pic->pu1_v;
471 pu1_buf = ps_dec->as_disp_buffers[ps_disp_pic->i4_buf_id].pu1_bufs[1];
472 ps_dec->ps_disp_frm_buf->pv_u_buf = pu1_buf;
474 pu1_buf = ps_dec->as_disp_buffers[ps_disp_pic->i4_buf_id].pu1_bufs[2];
475 ps_dec->ps_disp_frm_buf->pv_v_buf = pu1_buf;
482 switch(ps_dec->e_pic_type)
486 ps_dec->pf_decode_slice = impeg2d_dec_i_slice;
491 ps_dec->pf_decode_slice = impeg2d_dec_d_slice;
496 ps_dec->pf_decode_slice = impeg2d_dec_p_b_slice;
497 ps_dec->pu2_mb_type = gau2_impeg2d_p_mb_type;
502 ps_dec->pf_decode_slice = impeg2d_dec_p_b_slice;
503 ps_dec->pu2_mb_type = gau2_impeg2d_b_mb_type;
518 if(ps_dec->e_pic_type == P_PIC)
520 if (NULL == ps_dec->as_recent_fld[1][0].pu1_y)
522 ps_dec->as_recent_fld[1][0] = ps_dec->s_cur_frm_buf;
524 if (NULL == ps_dec->as_recent_fld[1][1].pu1_y)
526 impeg2d_get_bottom_field_buf(&ps_dec->s_cur_frm_buf, &ps_dec->as_recent_fld[1][1],
527 ps_dec->u2_frame_width);
530 ps_dec->as_ref_buf[FORW][TOP] = ps_dec->as_recent_fld[1][0];
531 ps_dec->as_ref_buf[FORW][BOTTOM] = ps_dec->as_recent_fld[1][1];
535 else if(ps_dec->e_pic_type == B_PIC)
537 if((NULL == ps_dec->as_recent_fld[1][0].pu1_y) && (NULL == ps_dec->as_recent_fld[0][0].pu1_y))
540 ps_dec->as_recent_fld[1][0] = ps_dec->s_cur_frm_buf;
541 impeg2d_get_bottom_field_buf(&ps_dec->s_cur_frm_buf, &ps_dec->as_recent_fld[1][1],
542 ps_dec->u2_frame_width);
543 ps_dec->as_recent_fld[0][0] = ps_dec->s_cur_frm_buf;
544 ps_dec->as_recent_fld[0][1] = ps_dec->as_recent_fld[1][1];
547 else if ((NULL != ps_dec->as_recent_fld[1][0].pu1_y) && (NULL == ps_dec->as_recent_fld[0][0].pu1_y))
549 ps_dec->as_recent_fld[0][0] = ps_dec->as_recent_fld[1][0];
550 ps_dec->as_recent_fld[0][1] = ps_dec->as_recent_fld[1][1];
552 else if ((NULL == ps_dec->as_recent_fld[1][0].pu1_y) && (NULL != ps_dec->as_recent_fld[0][0].pu1_y))
554 ps_dec->as_recent_fld[1][0] = ps_dec->as_recent_fld[0][0];
555 ps_dec->as_recent_fld[1][1] = ps_dec->as_recent_fld[0][1];
562 if((NULL == ps_dec->as_recent_fld[0][1].pu1_y) && (NULL == ps_dec->as_recent_fld[1][1].pu1_y))
565 ps_dec->as_recent_fld[1][0] = ps_dec->s_cur_frm_buf;
566 impeg2d_get_bottom_field_buf(&ps_dec->s_cur_frm_buf, &ps_dec->as_recent_fld[1][1],
567 ps_dec->u2_frame_width);
568 ps_dec->as_recent_fld[0][0] = ps_dec->s_cur_frm_buf;
569 ps_dec->as_recent_fld[0][1] = ps_dec->as_recent_fld[1][1];
573 else if((NULL == ps_dec->as_recent_fld[0][1].pu1_y) && (NULL != ps_dec->as_recent_fld[1][1].pu1_y))
575 ps_dec->as_recent_fld[0][0] = ps_dec->as_recent_fld[1][0];
576 ps_dec->as_recent_fld[0][1] = ps_dec->as_recent_fld[1][1];
579 else if((NULL == ps_dec->as_recent_fld[1][1].pu1_y) && (NULL != ps_dec->as_recent_fld[0][1].pu1_y))
581 ps_dec->as_recent_fld[1][0] = ps_dec->as_recent_fld[0][0];
582 ps_dec->as_recent_fld[1][1] = ps_dec->as_recent_fld[0][1];
584 ps_dec->as_ref_buf[FORW][TOP] = ps_dec->as_recent_fld[0][0];
585 ps_dec->as_ref_buf[FORW][BOTTOM] = ps_dec->as_recent_fld[0][1];
586 ps_dec->as_ref_buf[BACK][TOP] = ps_dec->as_recent_fld[1][0];
587 ps_dec->as_ref_buf[BACK][BOTTOM] = ps_dec->as_recent_fld[1][1];
607 void impeg2d_post_pic_dec_proc(dec_state_t *ps_dec)
614 if(ps_dec->u2_picture_structure != FRAME_PICTURE)
616 ps_dec->u2_num_vert_mb = (ps_dec->u2_vertical_size + 31) >> 5;
618 if(ps_dec->u2_num_flds_decoded == 1)
620 ps_dec->u2_num_flds_decoded = 0;
625 ps_dec->u2_num_flds_decoded = 1;
635 ps_dec->i4_frame_decoded = 1;
636 if(ps_dec->e_pic_type != B_PIC)
640 if(ps_dec->aps_ref_pics[0] == NULL)
642 ps_dec->aps_ref_pics[0] = ps_dec->ps_cur_pic;
646 else if(ps_dec->aps_ref_pics[1] == NULL)
648 ps_dec->aps_ref_pics[1] = ps_dec->ps_cur_pic;
649 impeg2_disp_mgr_add(&ps_dec->s_disp_mgr, ps_dec->aps_ref_pics[0], ps_dec->aps_ref_pics[0]->i4_buf_id);
654 impeg2_disp_mgr_add(&ps_dec->s_disp_mgr, ps_dec->aps_ref_pics[1], ps_dec->aps_ref_pics[1]->i4_buf_id);
655 impeg2_buf_mgr_release(ps_dec->pv_pic_buf_mg, ps_dec->aps_ref_pics[0]->i4_buf_id, BUF_MGR_REF);
656 ps_dec->aps_ref_pics[0] = ps_dec->aps_ref_pics[1];
657 ps_dec->aps_ref_pics[1] = ps_dec->ps_cur_pic;
663 impeg2_disp_mgr_add(&ps_dec->s_disp_mgr, ps_dec->ps_cur_pic, ps_dec->ps_cur_pic->i4_buf_id);
665 impeg2_buf_mgr_release(ps_dec->pv_pic_buf_mg, ps_dec->ps_cur_pic->i4_buf_id, BUF_MGR_REF);
672 if(ps_dec->e_pic_type != B_PIC)
674 switch(ps_dec->u2_picture_structure)
678 ps_dec->as_recent_fld[0][0] = ps_dec->as_recent_fld[1][0];
679 ps_dec->as_recent_fld[0][1] = ps_dec->as_recent_fld[1][1];
681 ps_dec->as_recent_fld[1][0] = ps_dec->s_cur_frm_buf;
682 impeg2d_get_bottom_field_buf(&ps_dec->s_cur_frm_buf, &ps_dec->as_recent_fld[1][1],
683 ps_dec->u2_frame_width);
688 ps_dec->as_recent_fld[0][0] = ps_dec->as_recent_fld[1][0];
689 ps_dec->as_recent_fld[1][0] = ps_dec->s_cur_frm_buf;
694 ps_dec->as_recent_fld[0][1] = ps_dec->as_recent_fld[1][1];
695 impeg2d_get_bottom_field_buf(&ps_dec->s_cur_frm_buf, &ps_dec->as_recent_fld[1][1],
696 ps_dec->u2_frame_width);