diff options
Diffstat (limited to 'libavcodec/ra144enc.c')
-rw-r--r-- | libavcodec/ra144enc.c | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/libavcodec/ra144enc.c b/libavcodec/ra144enc.c index 678e668..d3a7fff 100644 --- a/libavcodec/ra144enc.c +++ b/libavcodec/ra144enc.c @@ -2,20 +2,20 @@ * Real Audio 1.0 (14.4K) encoder * Copyright (c) 2010 Francesco Lavra <francescolavra@interfree.it> * - * 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 */ @@ -35,7 +35,6 @@ #include "put_bits.h" #include "ra144.h" - static av_cold int ra144_encode_close(AVCodecContext *avctx) { RA144Context *ractx = avctx->priv_data; @@ -62,6 +61,7 @@ static av_cold int ra144_encode_init(AVCodecContext * avctx) ractx->lpc_coef[0] = ractx->lpc_tables[0]; ractx->lpc_coef[1] = ractx->lpc_tables[1]; ractx->avctx = avctx; + ff_audiodsp_init(&ractx->adsp); ret = ff_lpc_init(&ractx->lpc_ctx, avctx->frame_size, LPC_ORDER, FF_LPC_TYPE_LEVINSON); if (ret < 0) @@ -198,8 +198,8 @@ static void create_adapt_vect(float *vect, const int16_t *cb, int lag) static int adaptive_cb_search(const int16_t *adapt_cb, float *work, const float *coefs, float *data) { - int i, best_vect; - float score, gain, best_score, best_gain; + int i, av_uninit(best_vect); + float score, gain, best_score, av_uninit(best_gain); float exc[BLOCKSIZE]; gain = best_score = 0; @@ -335,9 +335,9 @@ static void ra144_encode_subblock(RA144Context *ractx, float data[BLOCKSIZE] = { 0 }, work[LPC_ORDER + BLOCKSIZE]; float coefs[LPC_ORDER]; float zero[BLOCKSIZE], cba[BLOCKSIZE], cb1[BLOCKSIZE], cb2[BLOCKSIZE]; - int16_t cba_vect[BLOCKSIZE]; int cba_idx, cb1_idx, cb2_idx, gain; - int i, n, m[3]; + int i, n; + unsigned m[3]; float g[3]; float error, best_error; @@ -373,8 +373,8 @@ static void ra144_encode_subblock(RA144Context *ractx, */ memcpy(cba, work + LPC_ORDER, sizeof(cba)); - ff_copy_and_dup(cba_vect, ractx->adapt_cb, cba_idx + BLOCKSIZE / 2 - 1); - m[0] = (ff_irms(cba_vect) * rms) >> 12; + ff_copy_and_dup(ractx->buffer_a, ractx->adapt_cb, cba_idx + BLOCKSIZE / 2 - 1); + m[0] = (ff_irms(&ractx->adsp, ractx->buffer_a) * rms) >> 12; } fixed_cb_search(work + LPC_ORDER, coefs, data, cba_idx, &cb1_idx, &cb2_idx); for (i = 0; i < BLOCKSIZE; i++) { @@ -447,10 +447,8 @@ static int ra144_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, if (ractx->last_frame) return 0; - if ((ret = ff_alloc_packet(avpkt, FRAMESIZE))) { - av_log(avctx, AV_LOG_ERROR, "Error getting output packet\n"); + if ((ret = ff_alloc_packet2(avctx, avpkt, FRAME_SIZE, 0)) < 0) return ret; - } /** * Since the LPC coefficients are calculated on a frame centered over the @@ -538,7 +536,7 @@ static int ra144_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, ff_af_queue_remove(&ractx->afq, avctx->frame_size, &avpkt->pts, &avpkt->duration); - avpkt->size = FRAMESIZE; + avpkt->size = FRAME_SIZE; *got_packet_ptr = 1; return 0; } @@ -556,4 +554,6 @@ AVCodec ff_ra_144_encoder = { .capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_SMALL_LAST_FRAME, .sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE }, + .supported_samplerates = (const int[]){ 8000, 0 }, + .channel_layouts = (const uint64_t[]) { AV_CH_LAYOUT_MONO, 0 }, }; |