X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fdcaenc.c;h=34b3e94165ec236d3688c095fb63c8879eacf827;hb=8b1099c288ab162f4316a8c1ae269f216520f52d;hp=186997c6311d254a91cf03d87542f87442b452c3;hpb=05a1ec3374c670c4823e8bb883fcc1e0773108a5;p=ffmpeg diff --git a/libavcodec/dcaenc.c b/libavcodec/dcaenc.c index 186997c6311..34b3e94165e 100644 --- a/libavcodec/dcaenc.c +++ b/libavcodec/dcaenc.c @@ -136,7 +136,7 @@ static int subband_bufer_alloc(DCAEncContext *c) (SUBBAND_SAMPLES + DCA_ADPCM_COEFFS), sizeof(int32_t)); if (!bufer) - return -1; + return AVERROR(ENOMEM); /* we need a place for DCA_ADPCM_COEFF samples from previous frame * to calc prediction coefficients for each subband */ @@ -152,8 +152,11 @@ static int subband_bufer_alloc(DCAEncContext *c) static void subband_bufer_free(DCAEncContext *c) { - int32_t *bufer = c->subband[0][0] - DCA_ADPCM_COEFFS; - av_freep(&bufer); + if (c->subband[0][0]) { + int32_t *bufer = c->subband[0][0] - DCA_ADPCM_COEFFS; + av_free(bufer); + c->subband[0][0] = NULL; + } } static int encode_init(AVCodecContext *avctx) @@ -163,8 +166,8 @@ static int encode_init(AVCodecContext *avctx) int i, j, k, min_frame_bits; int ret; - if (subband_bufer_alloc(c)) - return AVERROR(ENOMEM); + if ((ret = subband_bufer_alloc(c)) < 0) + return ret; c->fullband_channels = c->channels = avctx->channels; c->lfe_channel = (avctx->channels == 3 || avctx->channels == 6);