diff options
author | Daniil Cherednik <dan.cherednik@gmail.com> | 2015-11-01 21:06:26 +0300 |
---|---|---|
committer | Daniil Cherednik <dan.cherednik@gmail.com> | 2015-11-01 21:06:26 +0300 |
commit | 71dfcf35bf626df7c6a4a44fa5f3e0cab9b7d912 (patch) | |
tree | 17be7ce3d84e6b120f56a7a1394960c95ebce696 /src | |
parent | 4c1b47d9c44ae81e473ca4a743071e94f0bad5b0 (diff) | |
download | atracdenc-71dfcf35bf626df7c6a4a44fa5f3e0cab9b7d912.tar.gz |
fix: right multiplier in case of hi freq band
Diffstat (limited to 'src')
-rw-r--r-- | src/atracdenc.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/atracdenc.cpp b/src/atracdenc.cpp index 3ec2026..2855193 100644 --- a/src/atracdenc.cpp +++ b/src/atracdenc.cpp @@ -117,6 +117,7 @@ void TAtrac1Processor::IMdct(double Specs[512], const TBlockSize& mode, double* uint32_t start = 0; double* dstBuf = (band == 0) ? low : (band == 1) ? mid : hi; + const double gainMul = (band == 2) ? 256.0 : 128.0; vector<double> invBuf; @@ -136,7 +137,7 @@ void TAtrac1Processor::IMdct(double Specs[512], const TBlockSize& mode, double* vector<double> inv = midct(&Specs[pos], blockSize); for (int i = 0; i < (inv.size()/2); i++) { - invBuf[start+i] = ((blockSize == 32) ? 32.0 : 128.0) * inv[i + inv.size()/4]; + invBuf[start+i] = ((blockSize == 32) ? 32.0 : gainMul) * inv[i + inv.size()/4]; } vector_fmul_window(dstBuf + start, prevBuf, &invBuf[start], &TAtrac1Data::SineWindow[0], 16); |