diff options
author | Derek Buitenhuis <derek.buitenhuis@gmail.com> | 2016-01-31 13:24:50 +0000 |
---|---|---|
committer | Derek Buitenhuis <derek.buitenhuis@gmail.com> | 2016-01-31 13:29:04 +0000 |
commit | c86ecdf3f7b0c78ebfea23989b1a5d34885e119f (patch) | |
tree | c6606f19af814132b8cffa12fc3f5d9d2dc2cb9e /libavcodec/alacenc.c | |
parent | 899e19f1776c607c126b291a7e0a614782f18f42 (diff) | |
parent | 243df1351d2d928caa084a5704ed783f0b83f072 (diff) | |
download | ffmpeg-c86ecdf3f7b0c78ebfea23989b1a5d34885e119f.tar.gz |
Merge commit '243df1351d2d928caa084a5704ed783f0b83f072'
* commit '243df1351d2d928caa084a5704ed783f0b83f072':
lavc: Move {min,max}_prediction_order to codec private options
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Diffstat (limited to 'libavcodec/alacenc.c')
-rw-r--r-- | libavcodec/alacenc.c | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/libavcodec/alacenc.c b/libavcodec/alacenc.c index a87c373e25..c80c887699 100644 --- a/libavcodec/alacenc.c +++ b/libavcodec/alacenc.c @@ -19,6 +19,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include "libavutil/opt.h" + #include "avcodec.h" #include "put_bits.h" #include "internal.h" @@ -57,6 +59,8 @@ typedef struct AlacLPCContext { } AlacLPCContext; typedef struct AlacEncodeContext { + const AVClass *class; + AVCodecContext *avctx; int frame_size; /**< current frame size */ int verbatim; /**< current frame verbatim mode flag */ int compression_level; @@ -73,7 +77,6 @@ typedef struct AlacEncodeContext { RiceContext rc; AlacLPCContext lpc[2]; LPCContext lpc_ctx; - AVCodecContext *avctx; } AlacEncodeContext; @@ -556,7 +559,8 @@ static av_cold int alac_encode_init(AVCodecContext *avctx) AV_WB8(alac_extradata+20, s->rc.k_modifier); } - s->min_prediction_order = DEFAULT_MIN_PRED_ORDER; +#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) { @@ -569,7 +573,6 @@ static av_cold int alac_encode_init(AVCodecContext *avctx) s->min_prediction_order = avctx->min_prediction_order; } - s->max_prediction_order = DEFAULT_MAX_PRED_ORDER; if (avctx->max_prediction_order >= 0) { if (avctx->max_prediction_order < MIN_LPC_ORDER || avctx->max_prediction_order > ALAC_MAX_LPC_ORDER) { @@ -581,6 +584,8 @@ static av_cold int alac_encode_init(AVCodecContext *avctx) 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, @@ -644,12 +649,29 @@ static int alac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, return 0; } +#define OFFSET(x) offsetof(AlacEncodeContext, x) +#define AE AV_OPT_FLAG_AUDIO_PARAM | AV_OPT_FLAG_ENCODING_PARAM +static const AVOption options[] = { + { "min_prediction_order", NULL, OFFSET(min_prediction_order), AV_OPT_TYPE_INT, { .i64 = DEFAULT_MIN_PRED_ORDER }, MIN_LPC_ORDER, ALAC_MAX_LPC_ORDER, AE }, + { "max_prediction_order", NULL, OFFSET(max_prediction_order), AV_OPT_TYPE_INT, { .i64 = DEFAULT_MAX_PRED_ORDER }, MIN_LPC_ORDER, ALAC_MAX_LPC_ORDER, AE }, + + { NULL }, +}; + +static const AVClass alacenc_class = { + .class_name = "alacenc", + .item_name = av_default_item_name, + .option = options, + .version = LIBAVUTIL_VERSION_INT, +}; + AVCodec ff_alac_encoder = { .name = "alac", .long_name = NULL_IF_CONFIG_SMALL("ALAC (Apple Lossless Audio Codec)"), .type = AVMEDIA_TYPE_AUDIO, .id = AV_CODEC_ID_ALAC, .priv_data_size = sizeof(AlacEncodeContext), + .priv_class = &alacenc_class, .init = alac_encode_init, .encode2 = alac_encode_frame, .close = alac_encode_close, |