|
|
@@ -132,8 +132,7 @@ static void truespeech_correlate_filter(TSContext *dec) |
|
|
|
if(i > 0){ |
|
|
|
memcpy(tmp, dec->cvector, i * sizeof(*tmp)); |
|
|
|
for(j = 0; j < i; j++) |
|
|
|
dec->cvector[j] = ((tmp[i - j - 1] * dec->vector[i]) + |
|
|
|
(dec->cvector[j] << 15) + 0x4000) >> 15; |
|
|
|
dec->cvector[j] += (tmp[i - j - 1] * dec->vector[i] + 0x4000) >> 15; |
|
|
|
} |
|
|
|
dec->cvector[i] = (8 - dec->vector[i]) >> 3; |
|
|
|
} |
|
|
@@ -256,7 +255,7 @@ static void truespeech_synth(TSContext *dec, int16_t *out, int quart) |
|
|
|
int sum = 0; |
|
|
|
for(k = 0; k < 8; k++) |
|
|
|
sum += ptr0[k] * ptr1[k]; |
|
|
|
sum = (sum + (out[i] << 12) + 0x800) >> 12; |
|
|
|
sum = out[i] + ((sum + 0x800) >> 12); |
|
|
|
out[i] = av_clip(sum, -0x7FFE, 0x7FFE); |
|
|
|
for(k = 7; k > 0; k--) |
|
|
|
ptr0[k] = ptr0[k - 1]; |
|
|
@@ -274,7 +273,7 @@ static void truespeech_synth(TSContext *dec, int16_t *out, int quart) |
|
|
|
for(k = 7; k > 0; k--) |
|
|
|
ptr0[k] = ptr0[k - 1]; |
|
|
|
ptr0[0] = out[i]; |
|
|
|
out[i] = ((out[i] << 12) - sum) >> 12; |
|
|
|
out[i] += (- sum) >> 12; |
|
|
|
} |
|
|
|
|
|
|
|
for(i = 0; i < 8; i++) |
|
|
|