diff --git a/libavcodec/gsmdec_data.c b/libavcodec/gsmdec_data.c index c9b3183a55..71f788e8cc 100644 --- a/libavcodec/gsmdec_data.c +++ b/libavcodec/gsmdec_data.c @@ -26,6 +26,13 @@ const uint16_t ff_gsm_long_term_gain_tab[4] = { 3277, 11469, 21299, 32767 }; +const uint8_t ff_gsm_requant_tab[4][8] = { + { 0 }, + { 0, 7 }, + { 0, 2, 5, 7 }, + { 0, 1, 2, 3, 4, 5, 6, 7 } +}; + const int16_t ff_gsm_dequant_tab[64][8] = { { -28, -20, -12, -4, 4, 12, 20, 28}, { -56, -40, -24, -8, 8, 24, 40, 56}, diff --git a/libavcodec/gsmdec_data.h b/libavcodec/gsmdec_data.h index f5581d53ba..f301f56079 100644 --- a/libavcodec/gsmdec_data.h +++ b/libavcodec/gsmdec_data.h @@ -38,6 +38,7 @@ typedef struct GSMContext { } GSMContext; extern const uint16_t ff_gsm_long_term_gain_tab[4]; +extern const uint8_t ff_gsm_requant_tab[4][8]; extern const int16_t ff_gsm_dequant_tab[64][8]; extern const int* const ff_gsm_apcm_bits[][4]; diff --git a/libavcodec/gsmdec_template.c b/libavcodec/gsmdec_template.c index 0b54dc54ce..2794bd1132 100644 --- a/libavcodec/gsmdec_template.c +++ b/libavcodec/gsmdec_template.c @@ -28,13 +28,6 @@ #include "gsm.h" #include "gsmdec_data.h" -static const int requant_tab[4][8] = { - { 0 }, - { 0, 7 }, - { 0, 2, 5, 7 }, - { 0, 1, 2, 3, 4, 5, 6, 7 } -}; - static void apcm_dequant_add(GetBitContext *gb, int16_t *dst, const int *frame_bits) { int i, val; @@ -42,7 +35,7 @@ static void apcm_dequant_add(GetBitContext *gb, int16_t *dst, const int *frame_b const int16_t *tab = ff_gsm_dequant_tab[maxidx]; for (i = 0; i < 13; i++) { val = get_bits(gb, frame_bits[i]); - dst[3*i] += tab[requant_tab[frame_bits[i]][val]]; + dst[3 * i] += tab[ff_gsm_requant_tab[frame_bits[i]][val]]; } }