unsigned char *fli_header = (unsigned char *)avctx->extradata;
int depth;
+ if (avctx->extradata_size != 12 &&
+ avctx->extradata_size != 128) {
+ av_log(avctx, AV_LOG_ERROR, "Expected extradata of 12 or 128 bytes\n");
+ return AVERROR_INVALIDDATA;
+ }
+
s->avctx = avctx;
s->fli_type = AV_RL16(&fli_header[4]); /* Might be overridden if a Magic Carpet FLC */
/* special case for magic carpet FLIs */
s->fli_type = FLC_MAGIC_CARPET_SYNTHETIC_TYPE_CODE;
depth = 8;
- } else if (s->avctx->extradata_size != 128) {
- av_log(avctx, AV_LOG_ERROR, "Expected extradata of 12 or 128 bytes\n");
- return -1;
} else {
depth = AV_RL16(&fli_header[12]);
}
}
AVCodec ff_flic_decoder = {
- "flic",
- AVMEDIA_TYPE_VIDEO,
- CODEC_ID_FLIC,
- sizeof(FlicDecodeContext),
- flic_decode_init,
- NULL,
- flic_decode_end,
- flic_decode_frame,
- CODEC_CAP_DR1,
- NULL,
- NULL,
- NULL,
- NULL,
+ .name = "flic",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .id = CODEC_ID_FLIC,
+ .priv_data_size = sizeof(FlicDecodeContext),
+ .init = flic_decode_init,
+ .close = flic_decode_end,
+ .decode = flic_decode_frame,
+ .capabilities = CODEC_CAP_DR1,
.long_name = NULL_IF_CONFIG_SMALL("Autodesk Animator Flic video"),
};