Exemplo n.º 1
0
static vpx_codec_err_t vp8_destroy(vpx_codec_alg_priv_t *ctx) {
  vp8_remove_decoder_instances(&ctx->yv12_frame_buffers);

  vpx_free(ctx);

  return VPX_CODEC_OK;
}
Exemplo n.º 2
0
int vp8_create_decoder_instances(struct frame_buffers *fb, VP8D_CONFIG *oxcf) {
  /* decoder instance for single thread mode */
  fb->pbi[0] = create_decompressor(oxcf);
  if (!fb->pbi[0]) return VPX_CODEC_ERROR;

#if CONFIG_MULTITHREAD
  if (setjmp(fb->pbi[0]->common.error.jmp)) {
    vp8_remove_decoder_instances(fb);
    memset(fb->pbi, 0, sizeof(fb->pbi));
    vpx_clear_system_state();
    return VPX_CODEC_ERROR;
  }

  fb->pbi[0]->common.error.setjmp = 1;
  fb->pbi[0]->max_threads = oxcf->max_threads;
  vp8_decoder_create_threads(fb->pbi[0]);
  fb->pbi[0]->common.error.setjmp = 0;
#endif
  return VPX_CODEC_OK;
}