Lines Matching defs: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;
316 pbi->common.error.error_code = VPX_CODEC_OK;
318 retcode = check_fragments_for_errors(pbi);
334 pbi->dec_fb_ref[INTRA_FRAME] = &cm->yv12_fb[cm->new_fb_idx];
335 pbi->dec_fb_ref[LAST_FRAME] = &cm->yv12_fb[cm->lst_fb_idx];
336 pbi->dec_fb_ref[GOLDEN_FRAME] = &cm->yv12_fb[cm->gld_fb_idx];
337 pbi->dec_fb_ref[ALTREF_FRAME] = &cm->yv12_fb[cm->alt_fb_idx];
339 if (setjmp(pbi->common.error.jmp))
353 pbi->common.error.setjmp = 1;
355 retcode = vp8_decode_frame(pbi);
362 pbi->common.error.error_code = VPX_CODEC_ERROR;
368 pbi->common.error.error_code = VPX_CODEC_ERROR;
382 if (pbi->ec_enabled && pbi->common.prev_mi)
384 MODE_INFO* tmp = pbi->common.prev_mi;
386 pbi->common.prev_mi = pbi->common.mi;
387 pbi->common.mi = tmp;
390 for (row = 0; row < pbi->common.mb_rows; ++row)
392 for (col = 0; col < pbi->common.mb_cols; ++col)
394 const int i = row*pbi->common.mode_info_stride + col;
395 pbi->common.mi[i].mbmi.segment_id =
396 pbi->common.prev_mi[i].mbmi.segment_id;
402 pbi->ready_for_new_data = 0;
403 pbi->last_time_stamp = time_stamp;
415 pbi->common.error.setjmp = 0;
418 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)
422 if (pbi->ready_for_new_data == 1)
426 if (pbi->common.show_frame == 0)
429 pbi->ready_for_new_data = 1;
430 *time_stamp = pbi->last_time_stamp;
434 ret = vp8_post_proc_frame(&pbi->common, sd, flags);
437 if (pbi->common.frame_to_show)
439 *sd = *pbi->common.frame_to_show;
440 sd->y_width = pbi->common.Width;
441 sd->y_height = pbi->common.Height;
442 sd->uv_height = pbi->common.Height / 2;
483 fb->pbi[0] = create_decompressor(oxcf);
484 if(!fb->pbi[0])
490 fb->pbi[0]->max_threads = oxcf->max_threads;
491 vp8_decoder_create_threads(fb->pbi[0]);
507 VP8D_COMP *pbi = fb->pbi[0];
509 if (!pbi)
512 if (pbi->b_multithreaded_rd)
513 vp8mt_de_alloc_temp_buffers(pbi, pbi->common.mb_rows);
514 vp8_decoder_remove_threads(pbi);
518 remove_decompressor(pbi);