summaryrefslogtreecommitdiff
path: root/libavcodec/gsmdec_template.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/gsmdec_template.c')
-rw-r--r--libavcodec/gsmdec_template.c48
1 files changed, 24 insertions, 24 deletions
diff --git a/libavcodec/gsmdec_template.c b/libavcodec/gsmdec_template.c
index 7437908ae5..4e40a20106 100644
--- a/libavcodec/gsmdec_template.c
+++ b/libavcodec/gsmdec_template.c
@@ -2,20 +2,20 @@
* gsm 06.10 decoder
* Copyright (c) 2010 Reimar Döffinger <Reimar.Doeffinger@gmx.de>
*
- * 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
*/
@@ -24,24 +24,24 @@
* GSM decoder
*/
-#include "bitstream.h"
+#include "get_bits.h"
#include "gsm.h"
#include "gsmdec_data.h"
-static void apcm_dequant_add(BitstreamContext *bc, int16_t *dst, const int *frame_bits)
+static void apcm_dequant_add(GetBitContext *gb, int16_t *dst, const int *frame_bits)
{
int i, val;
- int maxidx = bitstream_read(bc, 6);
+ int maxidx = get_bits(gb, 6);
const int16_t *tab = ff_gsm_dequant_tab[maxidx];
for (i = 0; i < 13; i++) {
- val = bitstream_read(bc, frame_bits[i]);
+ val = get_bits(gb, frame_bits[i]);
dst[3 * i] += tab[ff_gsm_requant_tab[frame_bits[i]][val]];
}
}
static inline int gsm_mult(int a, int b)
{
- return (a * b + (1 << 14)) >> 15;
+ return (int)(a * (SUINT)b + (1 << 14)) >> 15;
}
static void long_term_synth(int16_t *dst, int lag, int gain_idx)
@@ -57,7 +57,7 @@ static inline int decode_log_area(int coded, int factor, int offset)
{
coded <<= 10;
coded -= offset;
- return gsm_mult(coded, factor) << 1;
+ return gsm_mult(coded, factor) * 2;
}
static av_noinline int get_rrp(int filtered)
@@ -114,34 +114,34 @@ static int postprocess(int16_t *data, int msr)
int i;
for (i = 0; i < 160; i++) {
msr = av_clip_int16(data[i] + gsm_mult(msr, 28180));
- data[i] = av_clip_int16(msr << 1) & ~7;
+ data[i] = av_clip_int16(msr * 2) & ~7;
}
return msr;
}
static int gsm_decode_block(AVCodecContext *avctx, int16_t *samples,
- BitstreamContext *bc, int mode)
+ GetBitContext *gb, int mode)
{
GSMContext *ctx = avctx->priv_data;
int i;
int16_t *ref_dst = ctx->ref_buf + 120;
int *lar = ctx->lar[ctx->lar_idx];
- lar[0] = decode_log_area(bitstream_read(bc, 6), 13107, 1 << 15);
- lar[1] = decode_log_area(bitstream_read(bc, 6), 13107, 1 << 15);
- lar[2] = decode_log_area(bitstream_read(bc, 5), 13107, (1 << 14) + 2048 * 2);
- lar[3] = decode_log_area(bitstream_read(bc, 5), 13107, (1 << 14) - 2560 * 2);
- lar[4] = decode_log_area(bitstream_read(bc, 4), 19223, (1 << 13) + 94 * 2);
- lar[5] = decode_log_area(bitstream_read(bc, 4), 17476, (1 << 13) - 1792 * 2);
- lar[6] = decode_log_area(bitstream_read(bc, 3), 31454, (1 << 12) - 341 * 2);
- lar[7] = decode_log_area(bitstream_read(bc, 3), 29708, (1 << 12) - 1144 * 2);
+ lar[0] = decode_log_area(get_bits(gb, 6), 13107, 1 << 15);
+ lar[1] = decode_log_area(get_bits(gb, 6), 13107, 1 << 15);
+ lar[2] = decode_log_area(get_bits(gb, 5), 13107, (1 << 14) + 2048*2);
+ lar[3] = decode_log_area(get_bits(gb, 5), 13107, (1 << 14) - 2560*2);
+ lar[4] = decode_log_area(get_bits(gb, 4), 19223, (1 << 13) + 94*2);
+ lar[5] = decode_log_area(get_bits(gb, 4), 17476, (1 << 13) - 1792*2);
+ lar[6] = decode_log_area(get_bits(gb, 3), 31454, (1 << 12) - 341*2);
+ lar[7] = decode_log_area(get_bits(gb, 3), 29708, (1 << 12) - 1144*2);
for (i = 0; i < 4; i++) {
- int lag = bitstream_read(bc, 7);
- int gain_idx = bitstream_read(bc, 2);
- int offset = bitstream_read(bc, 2);
+ int lag = get_bits(gb, 7);
+ int gain_idx = get_bits(gb, 2);
+ int offset = get_bits(gb, 2);
lag = av_clip(lag, 40, 120);
long_term_synth(ref_dst, lag, gain_idx);
- apcm_dequant_add(bc, ref_dst + offset, ff_gsm_apcm_bits[mode][i]);
+ apcm_dequant_add(gb, ref_dst + offset, ff_gsm_apcm_bits[mode][i]);
ref_dst += 40;
}
memcpy(ctx->ref_buf, ctx->ref_buf + 160, 120 * sizeof(*ctx->ref_buf));