return 0;
for (i = 0; i < 16; i++) {
- free_vlc(&s->dc_vlc[i]);
- free_vlc(&s->ac_vlc_1[i]);
- free_vlc(&s->ac_vlc_2[i]);
- free_vlc(&s->ac_vlc_3[i]);
- free_vlc(&s->ac_vlc_4[i]);
+ ff_free_vlc(&s->dc_vlc[i]);
+ ff_free_vlc(&s->ac_vlc_1[i]);
+ ff_free_vlc(&s->ac_vlc_2[i]);
+ ff_free_vlc(&s->ac_vlc_3[i]);
+ ff_free_vlc(&s->ac_vlc_4[i]);
}
- free_vlc(&s->superblock_run_length_vlc);
- free_vlc(&s->fragment_run_length_vlc);
- free_vlc(&s->mode_code_vlc);
- free_vlc(&s->motion_vector_vlc);
+ ff_free_vlc(&s->superblock_run_length_vlc);
+ ff_free_vlc(&s->fragment_run_length_vlc);
+ ff_free_vlc(&s->mode_code_vlc);
+ ff_free_vlc(&s->motion_vector_vlc);
/* release all frames */
vp3_decode_flush(avctx);
int value;
filter_limit = s->filter_limit_values[s->qps[0]];
+ assert(filter_limit < 128);
/* set up the bounding values */
memset(s->bounding_values_array, 0, 256 * sizeof(int));
return i;
}
} while (i < 64);
+ // return value is expected to be a valid level
+ i--;
end:
// the actual DC+prediction is in the fragment structure
block[0] = frag->dc * s->qmat[0][inter][plane][0];
avctx->chroma_sample_location = AVCHROMA_LOC_CENTER;
if(avctx->idct_algo==FF_IDCT_AUTO)
avctx->idct_algo=FF_IDCT_VP3;
- dsputil_init(&s->dsp, avctx);
+ ff_dsputil_init(&s->dsp, avctx);
ff_init_scantable(s->dsp.idct_permutation, &s->scantable, ff_zigzag_direct);
}
AVCodec ff_theora_decoder = {
- .name = "theora",
- .type = AVMEDIA_TYPE_VIDEO,
- .id = CODEC_ID_THEORA,
- .priv_data_size = sizeof(Vp3DecodeContext),
- .init = theora_decode_init,
- .close = vp3_decode_end,
- .decode = vp3_decode_frame,
- .capabilities = CODEC_CAP_DR1 | CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_FRAME_THREADS,
- .flush = vp3_decode_flush,
- .long_name = NULL_IF_CONFIG_SMALL("Theora"),
+ .name = "theora",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .id = CODEC_ID_THEORA,
+ .priv_data_size = sizeof(Vp3DecodeContext),
+ .init = theora_decode_init,
+ .close = vp3_decode_end,
+ .decode = vp3_decode_frame,
+ .capabilities = CODEC_CAP_DR1 | CODEC_CAP_DRAW_HORIZ_BAND |
+ CODEC_CAP_FRAME_THREADS,
+ .flush = vp3_decode_flush,
+ .long_name = NULL_IF_CONFIG_SMALL("Theora"),
.init_thread_copy = ONLY_IF_THREADS_ENABLED(vp3_init_thread_copy),
.update_thread_context = ONLY_IF_THREADS_ENABLED(vp3_update_thread_context)
};
#endif
AVCodec ff_vp3_decoder = {
- .name = "vp3",
- .type = AVMEDIA_TYPE_VIDEO,
- .id = CODEC_ID_VP3,
- .priv_data_size = sizeof(Vp3DecodeContext),
- .init = vp3_decode_init,
- .close = vp3_decode_end,
- .decode = vp3_decode_frame,
- .capabilities = CODEC_CAP_DR1 | CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_FRAME_THREADS,
- .flush = vp3_decode_flush,
- .long_name = NULL_IF_CONFIG_SMALL("On2 VP3"),
+ .name = "vp3",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .id = CODEC_ID_VP3,
+ .priv_data_size = sizeof(Vp3DecodeContext),
+ .init = vp3_decode_init,
+ .close = vp3_decode_end,
+ .decode = vp3_decode_frame,
+ .capabilities = CODEC_CAP_DR1 | CODEC_CAP_DRAW_HORIZ_BAND |
+ CODEC_CAP_FRAME_THREADS,
+ .flush = vp3_decode_flush,
+ .long_name = NULL_IF_CONFIG_SMALL("On2 VP3"),
.init_thread_copy = ONLY_IF_THREADS_ENABLED(vp3_init_thread_copy),
- .update_thread_context = ONLY_IF_THREADS_ENABLED(vp3_update_thread_context)
+ .update_thread_context = ONLY_IF_THREADS_ENABLED(vp3_update_thread_context),
};