summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiego Biurrun <diego@biurrun.de>2016-06-04 16:53:54 +0200
committerDiego Biurrun <diego@biurrun.de>2016-06-07 13:22:22 +0200
commit81f769fa129edc51c28285649c2df6da717e718f (patch)
tree07c0e4d4d0826b9cd82f1daf3ae7de5a3da0c851
parent42dc214323637464759354912e18b2bee1884dd1 (diff)
downloadffmpeg-81f769fa129edc51c28285649c2df6da717e718f.tar.gz
gsm: Move requant_tab table to the gsm tables file
This avoids duplicating the table in the gsm template file. Also adjust the table type to uint8_t to save space.
-rw-r--r--libavcodec/gsmdec_data.c7
-rw-r--r--libavcodec/gsmdec_data.h1
-rw-r--r--libavcodec/gsmdec_template.c9
3 files changed, 9 insertions, 8 deletions
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]];
}
}