summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavcodec/wma.c4
-rw-r--r--libavcodec/wma.h6
-rw-r--r--libavcodec/wmadec.c6
-rw-r--r--libavcodec/wmaenc.c4
4 files changed, 11 insertions, 9 deletions
diff --git a/libavcodec/wma.c b/libavcodec/wma.c
index bdca4bce6d..7cebc9e009 100644
--- a/libavcodec/wma.c
+++ b/libavcodec/wma.c
@@ -444,12 +444,12 @@ int ff_wma_end(AVCodecContext *avctx)
int ff_wma_run_level_decode(AVCodecContext* avctx, GetBitContext* gb,
VLC *vlc,
const uint16_t *level_table, const uint16_t *run_table,
- int version, int16_t *ptr, int offset,
+ int version, WMACoef *ptr, int offset,
int num_coefs, int block_len, int frame_len_bits,
int coef_nb_bits)
{
int code, run, level, sign;
- int16_t* eptr = ptr + num_coefs;
+ WMACoef* eptr = ptr + num_coefs;
for(;;) {
code = get_vlc2(gb, vlc->table, VLCBITS, VLCMAX);
if (code < 0)
diff --git a/libavcodec/wma.h b/libavcodec/wma.h
index 7ac85038d1..5a16331363 100644
--- a/libavcodec/wma.h
+++ b/libavcodec/wma.h
@@ -51,6 +51,8 @@
#define VLCBITS 9
#define VLCMAX ((22+VLCBITS-1)/VLCBITS)
+typedef float WMACoef; ///< type for decoded coefficients, int16_t would be enough for wma 1/2
+
typedef struct CoefVLCTable {
int n; ///< total number of codes
int max_level;
@@ -111,7 +113,7 @@ typedef struct WMACodecContext {
int exponents_bsize[MAX_CHANNELS]; ///< log2 ratio frame/exp. length
DECLARE_ALIGNED_16(float, exponents[MAX_CHANNELS][BLOCK_MAX_SIZE]);
float max_exponent[MAX_CHANNELS];
- int16_t coefs1[MAX_CHANNELS][BLOCK_MAX_SIZE];
+ WMACoef coefs1[MAX_CHANNELS][BLOCK_MAX_SIZE];
DECLARE_ALIGNED_16(float, coefs[MAX_CHANNELS][BLOCK_MAX_SIZE]);
DECLARE_ALIGNED_16(FFTSample, output[BLOCK_MAX_SIZE * 2]);
MDCTContext mdct_ctx[BLOCK_NB_SIZES];
@@ -151,7 +153,7 @@ int ff_wma_end(AVCodecContext *avctx);
int ff_wma_run_level_decode(AVCodecContext* avctx, GetBitContext* gb,
VLC *vlc,
const uint16_t *level_table, const uint16_t *run_table,
- int version, int16_t *ptr, int offset,
+ int version, WMACoef *ptr, int offset,
int num_coefs, int block_len, int frame_len_bits,
int coef_nb_bits);
diff --git a/libavcodec/wmadec.c b/libavcodec/wmadec.c
index 9dc6ff1810..7a65003457 100644
--- a/libavcodec/wmadec.c
+++ b/libavcodec/wmadec.c
@@ -486,12 +486,12 @@ static int wma_decode_block(WMACodecContext *s)
for(ch = 0; ch < s->nb_channels; ch++) {
if (s->channel_coded[ch]) {
int tindex;
- int16_t* ptr = &s->coefs1[ch][0];
+ WMACoef* ptr = &s->coefs1[ch][0];
/* special VLC tables are used for ms stereo because
there is potentially less energy there */
tindex = (ch == 1 && s->ms_stereo);
- memset(ptr, 0, s->block_len * sizeof(int16_t));
+ memset(ptr, 0, s->block_len * sizeof(WMACoef));
ff_wma_run_level_decode(s->avctx, &s->gb, &s->coef_vlc[tindex],
s->level_table[tindex], s->run_table[tindex],
0, ptr, 0, nb_coefs[ch],
@@ -514,7 +514,7 @@ static int wma_decode_block(WMACodecContext *s)
/* finally compute the MDCT coefficients */
for(ch = 0; ch < s->nb_channels; ch++) {
if (s->channel_coded[ch]) {
- int16_t *coefs1;
+ WMACoef *coefs1;
float *coefs, *exponents, mult, mult1, noise;
int i, j, n, n1, last_high_band, esize;
float exp_power[HIGH_BAND_MAX_SIZE];
diff --git a/libavcodec/wmaenc.c b/libavcodec/wmaenc.c
index 95e5929c7d..8386983014 100644
--- a/libavcodec/wmaenc.c
+++ b/libavcodec/wmaenc.c
@@ -186,7 +186,7 @@ static int encode_block(WMACodecContext *s, float (*src_coefs)[BLOCK_MAX_SIZE],
for(ch = 0; ch < s->nb_channels; ch++) {
if (s->channel_coded[ch]) {
- int16_t *coefs1;
+ WMACoef *coefs1;
float *coefs, *exponents, mult;
int i, n;
@@ -264,7 +264,7 @@ static int encode_block(WMACodecContext *s, float (*src_coefs)[BLOCK_MAX_SIZE],
for(ch = 0; ch < s->nb_channels; ch++) {
if (s->channel_coded[ch]) {
int run, tindex;
- int16_t *ptr, *eptr;
+ WMACoef *ptr, *eptr;
tindex = (ch == 1 && s->ms_stereo);
ptr = &s->coefs1[ch][0];
eptr = ptr + nb_coefs[ch];