typedef struct {
CCodec *codec;
+ unsigned int buf_size;
uint8_t *output;
} UtVideoContext;
UtVideoExtra info;
int format;
int begin_ret;
- unsigned int buf_size;
if (avctx->extradata_size != 4*4) {
av_log(avctx, AV_LOG_ERROR, "Extradata size mismatch.\n");
}
/* Only allocate the buffer once */
- buf_size = avpicture_get_size(avctx->pix_fmt, avctx->width, avctx->height);
- utv->output = (uint8_t *)av_malloc(buf_size * sizeof(uint8_t));
+ utv->buf_size = avpicture_get_size(avctx->pix_fmt, avctx->width, avctx->height);
+ utv->output = (uint8_t *)av_malloc(utv->buf_size * sizeof(uint8_t));
if (utv->output == NULL) {
av_log(avctx, AV_LOG_ERROR, "Unable to allocate output buffer.\n");
AVCodec ff_libutvideo_decoder = {
"libutvideo",
+ NULL_IF_CONFIG_SMALL("Ut Video"),
AVMEDIA_TYPE_VIDEO,
CODEC_ID_UTVIDEO,
+ 0, //capabilities
+ NULL, //supported_framerates
+ NULL, //pix_fmts
+ NULL, //supported_samplerates
+ NULL, //sample_fmts
+ NULL, //channel_layouts
+ 0, //max_lowres
+ NULL, //priv_class
+ NULL, //profiles
sizeof(UtVideoContext),
+ NULL, //next
+ NULL, //init_thread_copy
+ NULL, //update_thread_context
+ NULL, //defaults
+ NULL, //init_static_data
utvideo_decode_init,
- NULL,
- utvideo_decode_close,
+ NULL, //encode
+ NULL, //encode2
utvideo_decode_frame,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL_IF_CONFIG_SMALL("Ut Video"),
+ utvideo_decode_close,
};