static av_cold int init(AVCodecContext *avctx) { AVRnContext *a = avctx->priv_data; // Support "Resolution 1:1" for Avid AVI Codec a->is_mjpeg = avctx->extradata_size < 31 || memcmp(&avctx->extradata[28], "1:1", 3); if(a->is_mjpeg) return ff_mjpeg_decode_init(avctx); if(avctx->width <= 0 || avctx->height <= 0) return -1; avcodec_get_frame_defaults(&a->frame); avctx->pix_fmt = PIX_FMT_UYVY422; if(avctx->extradata_size >= 9 && avctx->extradata[4]+28 < avctx->extradata_size) { int ndx = avctx->extradata[4] + 4; a->interlace = !memcmp(avctx->extradata + ndx, "1:1(", 4); if(a->interlace) { a->tff = avctx->extradata[ndx + 24] == 1; } } return 0; }
static av_cold int init(AVCodecContext *avctx) { AVRnContext *a = avctx->priv_data; int ret; // Support "Resolution 1:1" for Avid AVI Codec a->is_mjpeg = avctx->extradata_size < 31 || memcmp(&avctx->extradata[28], "1:1", 3); if(!a->is_mjpeg && avctx->lowres) { av_log(avctx, AV_LOG_ERROR, "lowres is not possible with rawvideo\n"); return AVERROR(EINVAL); } if(a->is_mjpeg) return ff_mjpeg_decode_init(avctx); if ((ret = av_image_check_size(avctx->width, avctx->height, 0, avctx)) < 0) return ret; avctx->pix_fmt = AV_PIX_FMT_UYVY422; if(avctx->extradata_size >= 9 && avctx->extradata[4]+28 < avctx->extradata_size) { int ndx = avctx->extradata[4] + 4; a->interlace = !memcmp(avctx->extradata + ndx, "1:1(", 4); if(a->interlace) { a->tff = avctx->extradata[ndx + 24] == 1; } } return 0; }