mirror of https://git.ffmpeg.org/ffmpeg.git
avcodec/alacenc: Don't free unnecessarily
The init function of the ALAC encoder calls its own close function if a call to ff_lpc_init() fails; yet nothing has been allocated before that point (except extradata which is freed generically) and ff_lpc_init() can be expected to clean up after itself on error (the documentation does not say anything to the contrary and the current implementation can only fail if the only allocation fails, so there is nothing to clean up on error anyway), so this is unnecessary. Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
parent
acda9ff6ce
commit
ce482266a6
|
@ -535,10 +535,8 @@ static av_cold int alac_encode_init(AVCodecContext *avctx)
|
|||
avctx->bits_per_raw_sample);
|
||||
|
||||
avctx->extradata = av_mallocz(ALAC_EXTRADATA_SIZE + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||
if (!avctx->extradata) {
|
||||
ret = AVERROR(ENOMEM);
|
||||
goto error;
|
||||
}
|
||||
if (!avctx->extradata)
|
||||
return AVERROR(ENOMEM);
|
||||
avctx->extradata_size = ALAC_EXTRADATA_SIZE;
|
||||
|
||||
alac_extradata = avctx->extradata;
|
||||
|
@ -566,8 +564,7 @@ FF_DISABLE_DEPRECATION_WARNINGS
|
|||
avctx->min_prediction_order > ALAC_MAX_LPC_ORDER) {
|
||||
av_log(avctx, AV_LOG_ERROR, "invalid min prediction order: %d\n",
|
||||
avctx->min_prediction_order);
|
||||
ret = AVERROR(EINVAL);
|
||||
goto error;
|
||||
return AVERROR(EINVAL);
|
||||
}
|
||||
|
||||
s->min_prediction_order = avctx->min_prediction_order;
|
||||
|
@ -578,8 +575,7 @@ FF_DISABLE_DEPRECATION_WARNINGS
|
|||
avctx->max_prediction_order > ALAC_MAX_LPC_ORDER) {
|
||||
av_log(avctx, AV_LOG_ERROR, "invalid max prediction order: %d\n",
|
||||
avctx->max_prediction_order);
|
||||
ret = AVERROR(EINVAL);
|
||||
goto error;
|
||||
return AVERROR(EINVAL);
|
||||
}
|
||||
|
||||
s->max_prediction_order = avctx->max_prediction_order;
|
||||
|
@ -591,8 +587,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
|
|||
av_log(avctx, AV_LOG_ERROR,
|
||||
"invalid prediction orders: min=%d max=%d\n",
|
||||
s->min_prediction_order, s->max_prediction_order);
|
||||
ret = AVERROR(EINVAL);
|
||||
goto error;
|
||||
return AVERROR(EINVAL);
|
||||
}
|
||||
|
||||
s->avctx = avctx;
|
||||
|
@ -600,13 +595,10 @@ FF_ENABLE_DEPRECATION_WARNINGS
|
|||
if ((ret = ff_lpc_init(&s->lpc_ctx, avctx->frame_size,
|
||||
s->max_prediction_order,
|
||||
FF_LPC_TYPE_LEVINSON)) < 0) {
|
||||
goto error;
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
error:
|
||||
alac_encode_close(avctx);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int alac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
|
||||
|
|
Loading…
Reference in New Issue