Home | History | Annotate | Download | only in decoder

Lines Matching refs:pbi

41 extern void vp8cx_init_de_quantizer(VP8D_COMP *pbi);
45 static void remove_decompressor(VP8D_COMP *pbi)
48 vp8_de_alloc_overlap_lists(pbi);
50 vp8_remove_common(&pbi->common);
51 vpx_free(pbi);
56 VP8D_COMP *pbi = vpx_memalign(32, sizeof(VP8D_COMP));
58 if (!pbi)
61 vpx_memset(pbi, 0, sizeof(VP8D_COMP));
63 if (setjmp(pbi->common.error.jmp))
65 pbi->common.error.setjmp = 0;
66 remove_decompressor(pbi);
70 pbi->common.error.setjmp = 1;
72 vp8_create_common(&pbi->common);
74 pbi->common.current_video_frame = 0;
75 pbi->ready_for_new_data = 1;
80 vp8cx_init_de_quantizer(pbi);
82 vp8_loop_filter_init(&pbi->common);
84 pbi->common.error.setjmp = 0;
87 pbi->ec_enabled = oxcf->error_concealment;
88 pbi->overlaps = NULL;
90 pbi->ec_enabled = 0;
95 pbi->ec_active = 0;
97 pbi->decoded_key_frame = 0;
103 pbi->independent_partitions = 0;
105 vp8_setup_block_dptrs(&pbi->mb);
107 return pbi;
110 vpx_codec_err_t vp8dx_get_reference(VP8D_COMP *pbi, enum vpx_ref_frame_type ref_frame_flag, YV12_BUFFER_CONFIG *sd)
112 VP8_COMMON *cm = &pbi->common;
122 vpx_internal_error(&pbi->common.error, VPX_CODEC_ERROR,
124 return pbi->common.error.error_code;
131 vpx_internal_error(&pbi->common.error, VPX_CODEC_ERROR,
137 return pbi->common.error.error_code;
141 vpx_codec_err_t vp8dx_set_reference(VP8D_COMP *pbi, enum vpx_ref_frame_type ref_frame_flag, YV12_BUFFER_CONFIG *sd)
143 VP8_COMMON *cm = &pbi->common;
154 vpx_internal_error(&pbi->common.error, VPX_CODEC_ERROR,
156 return pbi->common.error.error_code;
163 vpx_internal_error(&pbi->common.error, VPX_CODEC_ERROR,
178 return pbi->common.error.error_code;
267 int check_fragments_for_errors(VP8D_COMP *pbi)
269 if (!pbi->ec_active &&
270 pbi->fragments.count <= 1 && pbi->fragments.sizes[0] == 0)
272 VP8_COMMON *cm = &pbi->common;
306 int vp8dx_receive_compressed_data(VP8D_COMP *pbi, size_t size,
313 VP8_COMMON *cm = &pbi->common;
318 pbi->common.error.error_code = VPX_CODEC_OK;
320 retcode = check_fragments_for_errors(pbi);
336 pbi->dec_fb_ref[INTRA_FRAME] = &cm->yv12_fb[cm->new_fb_idx];
337 pbi->dec_fb_ref[LAST_FRAME] = &cm->yv12_fb[cm->lst_fb_idx];
338 pbi->dec_fb_ref[GOLDEN_FRAME] = &cm->yv12_fb[cm->gld_fb_idx];
339 pbi->dec_fb_ref[ALTREF_FRAME] = &cm->yv12_fb[cm->alt_fb_idx];
341 if (setjmp(pbi->common.error.jmp))
355 pbi->common.error.setjmp = 1;
357 retcode = vp8_decode_frame(pbi);
364 pbi->common.error.error_code = VPX_CODEC_ERROR;
370 pbi->common.error.error_code = VPX_CODEC_ERROR;
384 if (pbi->ec_enabled && pbi->common.prev_mi)
386 MODE_INFO* tmp = pbi->common.prev_mi;
388 pbi->common.prev_mi = pbi->common.mi;
389 pbi->common.mi = tmp;
392 for (row = 0; row < pbi->common.mb_rows; ++row)
394 for (col = 0; col < pbi->common.mb_cols; ++col)
396 const int i = row*pbi->common.mode_info_stride + col;
397 pbi->common.mi[i].mbmi.segment_id =
398 pbi->common.prev_mi[i].mbmi.segment_id;
404 pbi->ready_for_new_data = 0;
405 pbi->last_time_stamp = time_stamp;
417 pbi->common.error.setjmp = 0;
420 int vp8dx_get_raw_frame(VP8D_COMP *pbi, YV12_BUFFER_CONFIG *sd, int64_t *time_stamp, int64_t *time_end_stamp, vp8_ppflags_t *flags)
424 if (pbi->ready_for_new_data == 1)
428 if (pbi->common.show_frame == 0)
431 pbi->ready_for_new_data = 1;
432 *time_stamp = pbi->last_time_stamp;
436 ret = vp8_post_proc_frame(&pbi->common, sd, flags);
439 if (pbi->common.frame_to_show)
441 *sd = *pbi->common.frame_to_show;
442 sd->y_width = pbi->common.Width;
443 sd->y_height = pbi->common.Height;
444 sd->uv_height = pbi->common.Height / 2;
485 fb->pbi[0] = create_decompressor(oxcf);
486 if(!fb->pbi[0])
492 fb->pbi[0]->max_threads = oxcf->max_threads;
493 vp8_decoder_create_threads(fb->pbi[0]);
509 VP8D_COMP *pbi = fb->pbi[0];
511 if (!pbi)
514 if (pbi->b_multithreaded_rd)
515 vp8mt_de_alloc_temp_buffers(pbi, pbi->common.mb_rows);
516 vp8_decoder_remove_threads(pbi);
520 remove_decompressor(pbi);