diff options
Diffstat (limited to 'libavcodec/aacenc.c')
-rw-r--r-- | libavcodec/aacenc.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c index 6021c375bb..234ebff39a 100644 --- a/libavcodec/aacenc.c +++ b/libavcodec/aacenc.c @@ -2,20 +2,20 @@ * AAC encoder * Copyright (C) 2008 Konstantin Shishkov * - * This file is part of Libav. + * This file is part of FFmpeg. * - * Libav is free software; you can redistribute it and/or + * FFmpeg is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * - * Libav is distributed in the hope that it will be useful, + * FFmpeg is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with Libav; if not, write to the Free Software + * License along with FFmpeg; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ @@ -145,7 +145,7 @@ static const uint8_t aac_chan_configs[6][5] = { }; /** - * Table to remap channels from Libav's default order to AAC order. + * Table to remap channels from libavcodec's default order to AAC order. */ static const uint8_t aac_chan_maps[AAC_MAX_CHANNELS][AAC_MAX_CHANNELS] = { { 0 }, @@ -475,7 +475,7 @@ static void put_bitstream_info(AVCodecContext *avctx, AACEncContext *s, /* * Deinterleave input samples. - * Channels are reordered from Libav's default order to AAC order. + * Channels are reordered from libavcodec's default order to AAC order. */ static void deinterleave_input_samples(AACEncContext *s, const AVFrame *frame) { @@ -571,11 +571,10 @@ static int aac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, } start_ch += chans; } - if ((ret = ff_alloc_packet(avpkt, 768 * s->channels))) { + if ((ret = ff_alloc_packet2(avctx, avpkt, 768 * s->channels))) { av_log(avctx, AV_LOG_ERROR, "Error getting output packet\n"); return ret; } - do { int frame_bits; @@ -776,7 +775,7 @@ static av_cold int aac_encode_init(AVCodecContext *avctx) if (ret = ff_psy_init(&s->psy, avctx, 2, sizes, lengths, s->chan_map[0], grouping)) goto fail; s->psypp = ff_psy_preprocess_init(avctx); - s->coder = &ff_aac_coders[2]; + s->coder = &ff_aac_coders[s->options.aac_coder]; s->lambda = avctx->global_quality ? avctx->global_quality : 120; @@ -800,6 +799,7 @@ static const AVOption aacenc_options[] = { {"auto", "Selected by the Encoder", 0, AV_OPT_TYPE_CONST, {.dbl = -1 }, INT_MIN, INT_MAX, AACENC_FLAGS, "stereo_mode"}, {"ms_off", "Disable Mid/Side coding", 0, AV_OPT_TYPE_CONST, {.dbl = 0 }, INT_MIN, INT_MAX, AACENC_FLAGS, "stereo_mode"}, {"ms_force", "Force Mid/Side for the whole frame if possible", 0, AV_OPT_TYPE_CONST, {.dbl = 1 }, INT_MIN, INT_MAX, AACENC_FLAGS, "stereo_mode"}, + {"aac_coder", "", offsetof(AACEncContext, options.aac_coder), AV_OPT_TYPE_INT, {.dbl = 2}, 0, AAC_CODER_NB-1, AACENC_FLAGS}, {NULL} }; @@ -818,6 +818,7 @@ AVCodec ff_aac_encoder = { .init = aac_encode_init, .encode2 = aac_encode_frame, .close = aac_encode_end, + .supported_samplerates = avpriv_mpeg4audio_sample_rates, .capabilities = CODEC_CAP_SMALL_LAST_FRAME | CODEC_CAP_DELAY | CODEC_CAP_EXPERIMENTAL, .sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLT, |