mirror of https://github.com/thesofproject/sof.git
sof: drc: fix drc_sin_fixed function
drc_sin_fixed() utilized sin_fixed() while its input range is non-negative. This commit fixes drc_siz_fixed() for negative input by using ABS(input) to sin_fixed() and then inverting the output sign. Signed-off-by: Pin-chih Lin <johnylin@google.com>
This commit is contained in:
parent
d5840a9200
commit
9b0209ba8b
|
@ -112,7 +112,9 @@ inline int32_t drc_sin_fixed(int32_t x)
|
|||
{
|
||||
const int32_t PI_OVER_TWO = Q_CONVERT_FLOAT(1.57079632679489661923f, 30);
|
||||
|
||||
return sin_fixed(q_mult(x, PI_OVER_TWO, 30, 30, 28));
|
||||
/* input range of sin_fixed() is non-negative */
|
||||
int32_t abs_sin_val = sin_fixed(q_mult(ABS(x), PI_OVER_TWO, 30, 30, 28));
|
||||
return SGN(x) < 0 ? -abs_sin_val : abs_sin_val;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue