put_bits(pb, 3, TYPE_END);
flush_put_bits(pb);
- return put_bits_count(pb) >> 3;
+ return put_bytes_output(pb);
}
static av_always_inline int get_max_frame_size(int frame_size, int ch, int bps)
{
AlacEncodeContext *s = avctx->priv_data;
ff_lpc_end(&s->lpc_ctx);
- av_freep(&avctx->extradata);
- avctx->extradata_size = 0;
return 0;
}
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;
AV_WB8(alac_extradata+20, s->rc.k_modifier);
}
-#if FF_API_PRIVATE_OPT
-FF_DISABLE_DEPRECATION_WARNINGS
- if (avctx->min_prediction_order >= 0) {
- if (avctx->min_prediction_order < MIN_LPC_ORDER ||
- 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;
- }
-
- s->min_prediction_order = avctx->min_prediction_order;
- }
-
- if (avctx->max_prediction_order >= 0) {
- if (avctx->max_prediction_order < MIN_LPC_ORDER ||
- 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;
- }
-
- s->max_prediction_order = avctx->max_prediction_order;
- }
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
if (s->max_prediction_order < s->min_prediction_order) {
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;
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,
.version = LIBAVUTIL_VERSION_INT,
};
-AVCodec ff_alac_encoder = {
+const AVCodec ff_alac_encoder = {
.name = "alac",
.long_name = NULL_IF_CONFIG_SMALL("ALAC (Apple Lossless Audio Codec)"),
.type = AVMEDIA_TYPE_AUDIO,