|
|
@ -201,7 +201,7 @@ static void truespeech_apply_twopoint_filter(TSContext *dec, int quart) |
|
|
|
off = (t / 25) + dec->offset1[quart >> 1] + 18; |
|
|
|
off = (t / 25) + dec->offset1[quart >> 1] + 18; |
|
|
|
ptr0 = tmp + 145 - off; |
|
|
|
ptr0 = tmp + 145 - off; |
|
|
|
ptr1 = tmp + 146; |
|
|
|
ptr1 = tmp + 146; |
|
|
|
filter = ts_240 + (t % 25) * 2; |
|
|
|
filter = (int16_t*)ts_240 + (t % 25) * 2; |
|
|
|
for(i = 0; i < 60; i++){ |
|
|
|
for(i = 0; i < 60; i++){ |
|
|
|
t = (ptr0[0] * filter[0] + ptr0[1] * filter[1] + 0x2000) >> 14; |
|
|
|
t = (ptr0[0] * filter[0] + ptr0[1] * filter[1] + 0x2000) >> 14; |
|
|
|
ptr0++; |
|
|
|
ptr0++; |
|
|
@ -225,7 +225,7 @@ static void truespeech_place_pulses(TSContext *dec, int16_t *out, int quart) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
coef = dec->pulsepos[quart] >> 15; |
|
|
|
coef = dec->pulsepos[quart] >> 15; |
|
|
|
ptr1 = ts_140 + 30; |
|
|
|
ptr1 = (int16_t*)ts_140 + 30; |
|
|
|
ptr2 = tmp; |
|
|
|
ptr2 = tmp; |
|
|
|
for(i = 0, j = 3; (i < 30) && (j > 0); i++){ |
|
|
|
for(i = 0, j = 3; (i < 30) && (j > 0); i++){ |
|
|
|
t = *ptr1++; |
|
|
|
t = *ptr1++; |
|
|
@ -238,7 +238,7 @@ static void truespeech_place_pulses(TSContext *dec, int16_t *out, int quart) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
coef = dec->pulsepos[quart] & 0x7FFF; |
|
|
|
coef = dec->pulsepos[quart] & 0x7FFF; |
|
|
|
ptr1 = ts_140; |
|
|
|
ptr1 = (int16_t*)ts_140; |
|
|
|
for(i = 30, j = 4; (i < 60) && (j > 0); i++){ |
|
|
|
for(i = 30, j = 4; (i < 60) && (j > 0); i++){ |
|
|
|
t = *ptr1++; |
|
|
|
t = *ptr1++; |
|
|
|
if(coef >= t) |
|
|
|
if(coef >= t) |
|
|
|