diff --git a/libavcodec/cfhdenc.c b/libavcodec/cfhdenc.c index 8030413548..d53604ae11 100644 --- a/libavcodec/cfhdenc.c +++ b/libavcodec/cfhdenc.c @@ -356,6 +356,9 @@ static av_cold int cfhd_encode_init(AVCodecContext *avctx) s->lut[i] = last; } + if (s->planes != 4) + return 0; + s->alpha = av_calloc(avctx->width * avctx->height, sizeof(*s->alpha)); if (!s->alpha) return AVERROR(ENOMEM); @@ -864,6 +867,8 @@ static av_cold int cfhd_encode_close(AVCodecContext *avctx) s->plane[i].l_h[j] = NULL; } + av_freep(&s->alpha); + return 0; }