diff options
Diffstat (limited to 'libavcodec/qcelpdec.c')
-rw-r--r-- | libavcodec/qcelpdec.c | 46 |
1 files changed, 24 insertions, 22 deletions
diff --git a/libavcodec/qcelpdec.c b/libavcodec/qcelpdec.c index 7d9427c..6f08607 100644 --- a/libavcodec/qcelpdec.c +++ b/libavcodec/qcelpdec.c @@ -2,20 +2,20 @@ * QCELP decoder * Copyright (c) 2007 Reynaldo H. Verdejo Pinochet * - * 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 */ @@ -23,12 +23,13 @@ * @file * QCELP decoder * @author Reynaldo H. Verdejo Pinochet - * @remark Libav merging spearheaded by Kenan Gillet + * @remark FFmpeg merging spearheaded by Kenan Gillet * @remark Development mentored by Benjamin Larson */ #include <stddef.h> +#include "libavutil/avassert.h" #include "libavutil/channel_layout.h" #include "libavutil/float_dsp.h" #include "avcodec.h" @@ -40,9 +41,6 @@ #include "acelp_vectors.h" #include "lsp.h" -#undef NDEBUG -#include <assert.h> - typedef enum { I_F_Q = -1, /**< insufficient frame quality */ SILENCE, @@ -135,7 +133,7 @@ static int decode_lspf(QCELPContext *q, float *lspf) } else { erasure_coeff = QCELP_LSP_OCTAVE_PREDICTOR; - assert(q->bitrate == I_F_Q); + av_assert2(q->bitrate == I_F_Q); if (q->erasure_count > 1) erasure_coeff *= q->erasure_count < 4 ? 0.9 : 0.7; @@ -239,7 +237,7 @@ static void decode_gain_and_index(QCELPContext *q, float *gain) av_clip((q->prev_g1[0] + q->prev_g1[1]) / 2 - 5, 0, 54); subframes_count = 8; } else { - assert(q->bitrate == I_F_Q); + av_assert2(q->bitrate == I_F_Q); g1[0] = q->prev_g1[1]; switch (q->erasure_count) { @@ -321,7 +319,8 @@ static void compute_svector(QCELPContext *q, const float *gain, tmp_gain = gain[i] * QCELP_RATE_FULL_CODEBOOK_RATIO; cindex = -q->frame.cindex[i]; for (j = 0; j < 10; j++) - *cdn_vector++ = tmp_gain * qcelp_rate_full_codebook[cindex++ & 127]; + *cdn_vector++ = tmp_gain * + qcelp_rate_full_codebook[cindex++ & 127]; } break; case RATE_HALF: @@ -329,7 +328,8 @@ static void compute_svector(QCELPContext *q, const float *gain, tmp_gain = gain[i] * QCELP_RATE_HALF_CODEBOOK_RATIO; cindex = -q->frame.cindex[i]; for (j = 0; j < 40; j++) - *cdn_vector++ = tmp_gain * qcelp_rate_half_codebook[cindex++ & 127]; + *cdn_vector++ = tmp_gain * + qcelp_rate_half_codebook[cindex++ & 127]; } break; case RATE_QUARTER: @@ -374,7 +374,8 @@ static void compute_svector(QCELPContext *q, const float *gain, for (i = 0; i < 4; i++) { tmp_gain = gain[i] * QCELP_RATE_FULL_CODEBOOK_RATIO; for (j = 0; j < 40; j++) - *cdn_vector++ = tmp_gain * qcelp_rate_full_codebook[cbseed++ & 127]; + *cdn_vector++ = tmp_gain * + qcelp_rate_full_codebook[cbseed++ & 127]; } break; case SILENCE: @@ -435,7 +436,8 @@ static const float *do_pitchfilter(float memory[303], const float v_in[160], for (v_len = v_in + 40; v_in < v_len; v_in++) { if (pfrac[i]) { // If it is a fractional lag... for (j = 0, *v_out = 0.0; j < 4; j++) - *v_out += qcelp_hammsinc_table[j] * (v_lag[j - 4] + v_lag[3 - j]); + *v_out += qcelp_hammsinc_table[j] * + (v_lag[j - 4] + v_lag[3 - j]); } else *v_out = *v_lag; @@ -486,7 +488,7 @@ static void apply_pitch_filters(QCELPContext *q, float *cdn_vector) else max_pitch_gain = 0.0; } else { - assert(q->bitrate == SILENCE); + av_assert2(q->bitrate == SILENCE); max_pitch_gain = 1.0; } for (i = 0; i < 4; i++) @@ -511,7 +513,8 @@ static void apply_pitch_filters(QCELPContext *q, float *cdn_vector) apply_gain_ctrl(cdn_vector, v_synthesis_filtered, v_pre_filtered); } else { - memcpy(q->pitch_synthesis_filter_mem, cdn_vector + 17, 143 * sizeof(float)); + memcpy(q->pitch_synthesis_filter_mem, + cdn_vector + 17, 143 * sizeof(float)); memcpy(q->pitch_pre_filter_mem, cdn_vector + 17, 143 * sizeof(float)); memset(q->pitch_gain, 0, sizeof(q->pitch_gain)); memset(q->pitch_lag, 0, sizeof(q->pitch_lag)); @@ -630,7 +633,7 @@ static qcelp_packet_rate determine_bitrate(AVCodecContext *avctx, (*buf)++; } else if ((bitrate = buf_size2bitrate(buf_size + 1)) >= 0) { av_log(avctx, AV_LOG_WARNING, - "Bitrate byte is missing, guessing the bitrate from packet size.\n"); + "Bitrate byte missing, guessing bitrate from packet size.\n"); } else return I_F_Q; @@ -695,14 +698,12 @@ static int qcelp_decode_frame(AVCodecContext *avctx, void *data, /* get output buffer */ frame->nb_samples = 160; - if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) { - av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n"); + if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) return ret; - } outbuffer = (float *)frame->data[0]; if ((q->bitrate = determine_bitrate(avctx, buf_size, &buf)) == I_F_Q) { - warn_insufficient_frame_quality(avctx, "bitrate cannot be determined."); + warn_insufficient_frame_quality(avctx, "Bitrate cannot be determined."); goto erasure; } @@ -770,7 +771,8 @@ erasure: formant_mem = q->formant_mem + 10; for (i = 0; i < 4; i++) { interpolate_lpc(q, quantized_lspf, lpc, i); - ff_celp_lp_synthesis_filterf(formant_mem, lpc, outbuffer + i * 40, 40, 10); + ff_celp_lp_synthesis_filterf(formant_mem, lpc, + outbuffer + i * 40, 40, 10); formant_mem += 40; } |