summaryrefslogtreecommitdiff
path: root/libavcodec/wmalosslessdec.c
diff options
context:
space:
mode:
authorMashiat Sarker Shakkhar <shahriman_ams@yahoo.com>2011-12-23 13:21:33 +0600
committerMashiat Sarker Shakkhar <shahriman_ams@yahoo.com>2011-12-23 13:23:35 +0600
commit70dd5a603cb9d1e7ba00640afa2da52ce5fabf3e (patch)
treed7b9e3f4c4703c63e4b3a82676fe6c66473b6317 /libavcodec/wmalosslessdec.c
parentcf6284b2730c3da87cc0824627f5c1075cf65654 (diff)
Perform dequantization of channel coefficients
Diffstat (limited to 'libavcodec/wmalosslessdec.c')
-rw-r--r--libavcodec/wmalosslessdec.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/libavcodec/wmalosslessdec.c b/libavcodec/wmalosslessdec.c
index 67aa655d82..e520ad3f58 100644
--- a/libavcodec/wmalosslessdec.c
+++ b/libavcodec/wmalosslessdec.c
@@ -1052,10 +1052,11 @@ static int decode_subframe(WmallDecodeCtx *s)
{
int offset = s->samples_per_frame;
int subframe_len = s->samples_per_frame;
- int i;
+ int i, j;
int total_samples = s->samples_per_frame * s->num_channels;
int rawpcm_tile;
int padding_zeroes;
+ int quant_stepsize = s->quant_stepsize;
s->subframe_offset = get_bits_count(&s->gb);
@@ -1155,7 +1156,6 @@ static int decode_subframe(WmallDecodeCtx *s)
if(rawpcm_tile) {
int bits = s->bits_per_sample - padding_zeroes;
- int j;
dprintf(s->avctx, "RAWPCM %d bits per sample. total %d bits, remain=%d\n", bits,
bits * s->num_channels * subframe_len, get_bits_count(&s->gb));
for(i = 0; i < s->num_channels; i++) {
@@ -1182,6 +1182,11 @@ static int decode_subframe(WmallDecodeCtx *s)
if(s->do_ac_filter)
revert_acfilter(s, subframe_len);
+ /* Dequantize */
+ for (i = 0; i < s->num_channels; i++)
+ for (j = 0; j < subframe_len; j++)
+ s->channel_residues[i][j] *= quant_stepsize;
+
/** handled one subframe */
for (i = 0; i < s->channels_for_cur_subframe; i++) {