aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDaniil Cherednik <dan.cherednik@gmail.com>2015-11-01 21:06:26 +0300
committerDaniil Cherednik <dan.cherednik@gmail.com>2015-11-01 21:06:26 +0300
commit71dfcf35bf626df7c6a4a44fa5f3e0cab9b7d912 (patch)
tree17be7ce3d84e6b120f56a7a1394960c95ebce696 /src
parent4c1b47d9c44ae81e473ca4a743071e94f0bad5b0 (diff)
downloadatracdenc-71dfcf35bf626df7c6a4a44fa5f3e0cab9b7d912.tar.gz
fix: right multiplier in case of hi freq band
Diffstat (limited to 'src')
-rw-r--r--src/atracdenc.cpp3
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);