Lines Matching defs:pbi

44 extern void vp8cx_init_de_quantizer(VP8D_COMP *pbi);
59 static void remove_decompressor(VP8D_COMP *pbi)
62 vp8_de_alloc_overlap_lists(pbi);
64 vp8_remove_common(&pbi->common);
65 vpx_free(pbi);
70 VP8D_COMP *pbi = vpx_memalign(32, sizeof(VP8D_COMP));
72 if (!pbi)
75 memset(pbi, 0, sizeof(VP8D_COMP));
77 if (setjmp(pbi->common.error.jmp))
79 pbi->common.error.setjmp = 0;
80 remove_decompressor(pbi);
84 pbi->common.error.setjmp = 1;
86 vp8_create_common(&pbi->common);
88 pbi->common.current_video_frame = 0;
89 pbi->ready_for_new_data = 1;
94 vp8cx_init_de_quantizer(pbi);
96 vp8_loop_filter_init(&pbi->common);
98 pbi->common.error.setjmp = 0;
101 pbi->ec_enabled = oxcf->error_concealment;
102 pbi->overlaps = NULL;
105 pbi->ec_enabled = 0;
110 pbi->ec_active = 0;
112 pbi->decoded_key_frame = 0;
118 pbi->independent_partitions = 0;
120 vp8_setup_block_dptrs(&pbi->mb);
124 return pbi;
127 vpx_codec_err_t vp8dx_get_reference(VP8D_COMP *pbi, enum vpx_ref_frame_type ref_frame_flag, YV12_BUFFER_CONFIG *sd)
129 VP8_COMMON *cm = &pbi->common;
139 vpx_internal_error(&pbi->common.error, VPX_CODEC_ERROR,
141 return pbi->common.error.error_code;
148 vpx_internal_error(&pbi->common.error, VPX_CODEC_ERROR,
154 return pbi->common.error.error_code;
158 vpx_codec_err_t vp8dx_set_reference(VP8D_COMP *pbi, enum vpx_ref_frame_type ref_frame_flag, YV12_BUFFER_CONFIG *sd)
160 VP8_COMMON *cm = &pbi->common;
171 vpx_internal_error(&pbi->common.error, VPX_CODEC_ERROR,
173 return pbi->common.error.error_code;
180 vpx_internal_error(&pbi->common.error, VPX_CODEC_ERROR,
195 return pbi->common.error.error_code;
278 static int check_fragments_for_errors(VP8D_COMP *pbi)
280 if (!pbi->ec_active &&
281 pbi->fragments.count <= 1 && pbi->fragments.sizes[0] == 0)
283 VP8_COMMON *cm = &pbi->common;
317 int vp8dx_receive_compressed_data(VP8D_COMP *pbi, size_t size,
321 VP8_COMMON *cm = &pbi->common;
326 pbi->common.error.error_code = VPX_CODEC_OK;
328 retcode = check_fragments_for_errors(pbi);
335 pbi->dec_fb_ref[INTRA_FRAME] = &cm->yv12_fb[cm->new_fb_idx];
336 pbi->dec_fb_ref[LAST_FRAME] = &cm->yv12_fb[cm->lst_fb_idx];
337 pbi->dec_fb_ref[GOLDEN_FRAME] = &cm->yv12_fb[cm->gld_fb_idx];
338 pbi->dec_fb_ref[ALTREF_FRAME] = &cm->yv12_fb[cm->alt_fb_idx];
340 if (setjmp(pbi->common.error.jmp))
354 pbi->common.error.setjmp = 1;
356 retcode = vp8_decode_frame(pbi);
363 pbi->common.error.error_code = VPX_CODEC_ERROR;
369 pbi->common.error.error_code = VPX_CODEC_ERROR;
383 if (pbi->ec_enabled && pbi->common.prev_mi)
385 MODE_INFO* tmp = pbi->common.prev_mi;
387 pbi->common.prev_mi = pbi->common.mi;
388 pbi->common.mi = tmp;
391 for (row = 0; row < pbi->common.mb_rows; ++row)
393 for (col = 0; col < pbi->common.mb_cols; ++col)
395 const int i = row*pbi->common.mode_info_stride + col;
396 pbi->common.mi[i].mbmi.segment_id =
397 pbi->common.prev_mi[i].mbmi.segment_id;
403 pbi->ready_for_new_data = 0;
404 pbi->last_time_stamp = time_stamp;
407 pbi->common.error.setjmp = 0;
411 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)
415 if (pbi->ready_for_new_data == 1)
419 if (pbi->common.show_frame == 0)
422 pbi->ready_for_new_data = 1;
423 *time_stamp = pbi->last_time_stamp;
427 ret = vp8_post_proc_frame(&pbi->common, sd, flags);
431 if (pbi->common.frame_to_show)
433 *sd = *pbi->common.frame_to_show;
434 sd->y_width = pbi->common.Width;
435 sd->y_height = pbi->common.Height;
436 sd->uv_height = pbi->common.Height / 2;
477 fb->pbi[0] = create_decompressor(oxcf);
478 if(!fb->pbi[0])
484 fb->pbi[0]->max_threads = oxcf->max_threads;
485 vp8_decoder_create_threads(fb->pbi[0]);
501 VP8D_COMP *pbi = fb->pbi[0];
503 if (!pbi)
506 if (pbi->b_multithreaded_rd)
507 vp8mt_de_alloc_temp_buffers(pbi, pbi->common.mb_rows);
508 vp8_decoder_remove_threads(pbi);
512 remove_decompressor(pbi);