static void initialize_dec() { static int init_done = 0; if (!init_done) { vp9_rtcd(); vp9_init_intra_predictors(); init_done = 1; } }
static void initialize_dec(void) { static volatile int init_done = 0; if (!init_done) { vp9_rtcd(); vpx_dsp_rtcd(); vpx_scale_rtcd(); vp9_init_intra_predictors(); init_done = 1; } }
VP9Decoder *vp9_decoder_create(const VP9DecoderConfig *oxcf) { VP9Decoder *const pbi = vpx_memalign(32, sizeof(*pbi)); VP9_COMMON *const cm = pbi ? &pbi->common : NULL; if (!cm) return NULL; vp9_zero(*pbi); if (setjmp(cm->error.jmp)) { cm->error.setjmp = 0; vp9_decoder_remove(pbi); return NULL; } cm->error.setjmp = 1; vp9_initialize_dec(); vp9_rtcd(); // Initialize the references to not point to any frame buffers. vpx_memset(&cm->ref_frame_map, -1, sizeof(cm->ref_frame_map)); cm->current_video_frame = 0; pbi->oxcf = *oxcf; pbi->ready_for_new_data = 1; pbi->decoded_key_frame = 0; // vp9_init_dequantizer() is first called here. Add check in // frame_init_dequantizer() to avoid unnecessary calling of // vp9_init_dequantizer() for every frame. vp9_init_dequantizer(cm); vp9_loop_filter_init(cm); cm->error.setjmp = 0; vp9_worker_init(&pbi->lf_worker); return pbi; }
void vp9_machine_specific_config(VP9_COMMON *ctx) { vp9_rtcd(); }