mirror of https://github.com/mstorsjo/fdk-aac.git
Avoid unintentional sign conversions in lppTransposer() and lppTransposerHBE().
Bug: 186777497 Test: atest android.media.cts.DecoderTestAacFormat android.media.cts.DecoderTestXheAac android.media.cts.DecoderTestAacDrc Change-Id: Ifc4618b8de4e377df28e387fb976ab5acb5883d7
This commit is contained in:
parent
8d746cfdb4
commit
48e0fa028d
|
@ -1,7 +1,7 @@
|
||||||
/* -----------------------------------------------------------------------------
|
/* -----------------------------------------------------------------------------
|
||||||
Software License for The Fraunhofer FDK AAC Codec Library for Android
|
Software License for The Fraunhofer FDK AAC Codec Library for Android
|
||||||
|
|
||||||
© Copyright 1995 - 2020 Fraunhofer-Gesellschaft zur Förderung der angewandten
|
© Copyright 1995 - 2021 Fraunhofer-Gesellschaft zur Förderung der angewandten
|
||||||
Forschung e.V. All rights reserved.
|
Forschung e.V. All rights reserved.
|
||||||
|
|
||||||
1. INTRODUCTION
|
1. INTRODUCTION
|
||||||
|
@ -527,7 +527,7 @@ void lppTransposer(
|
||||||
if ((scale > 0) && (result >= (FIXP_DBL)MAXVAL_DBL >> scale)) {
|
if ((scale > 0) && (result >= (FIXP_DBL)MAXVAL_DBL >> scale)) {
|
||||||
resetLPCCoeffs = 1;
|
resetLPCCoeffs = 1;
|
||||||
} else {
|
} else {
|
||||||
alphar[1] = FX_DBL2FX_SGL(scaleValue(result, scale));
|
alphar[1] = FX_DBL2FX_SGL(scaleValueSaturate(result, scale));
|
||||||
if ((tmp < FL2FX_DBL(0.0f)) ^ (ac.det < FL2FX_DBL(0.0f))) {
|
if ((tmp < FL2FX_DBL(0.0f)) ^ (ac.det < FL2FX_DBL(0.0f))) {
|
||||||
alphar[1] = -alphar[1];
|
alphar[1] = -alphar[1];
|
||||||
}
|
}
|
||||||
|
@ -555,7 +555,7 @@ void lppTransposer(
|
||||||
scale)) {
|
scale)) {
|
||||||
resetLPCCoeffs = 1;
|
resetLPCCoeffs = 1;
|
||||||
} else {
|
} else {
|
||||||
alphai[1] = FX_DBL2FX_SGL(scaleValue(result, scale));
|
alphai[1] = FX_DBL2FX_SGL(scaleValueSaturate(result, scale));
|
||||||
if ((tmp < FL2FX_DBL(0.0f)) ^ (ac.det < FL2FX_DBL(0.0f))) {
|
if ((tmp < FL2FX_DBL(0.0f)) ^ (ac.det < FL2FX_DBL(0.0f))) {
|
||||||
alphai[1] = -alphai[1];
|
alphai[1] = -alphai[1];
|
||||||
}
|
}
|
||||||
|
@ -594,7 +594,7 @@ void lppTransposer(
|
||||||
} else {
|
} else {
|
||||||
INT scale;
|
INT scale;
|
||||||
FIXP_DBL result = fDivNorm(absTmp, fixp_abs(ac.r11r), &scale);
|
FIXP_DBL result = fDivNorm(absTmp, fixp_abs(ac.r11r), &scale);
|
||||||
alphar[0] = FX_DBL2FX_SGL(scaleValue(result, scale + 1));
|
alphar[0] = FX_DBL2FX_SGL(scaleValueSaturate(result, scale + 1));
|
||||||
|
|
||||||
if ((tmp > FL2FX_DBL(0.0f)) ^ (ac.r11r < FL2FX_DBL(0.0f)))
|
if ((tmp > FL2FX_DBL(0.0f)) ^ (ac.r11r < FL2FX_DBL(0.0f)))
|
||||||
alphar[0] = -alphar[0];
|
alphar[0] = -alphar[0];
|
||||||
|
@ -614,7 +614,7 @@ void lppTransposer(
|
||||||
} else {
|
} else {
|
||||||
INT scale;
|
INT scale;
|
||||||
FIXP_DBL result = fDivNorm(absTmp, fixp_abs(ac.r11r), &scale);
|
FIXP_DBL result = fDivNorm(absTmp, fixp_abs(ac.r11r), &scale);
|
||||||
alphai[0] = FX_DBL2FX_SGL(scaleValue(result, scale + 1));
|
alphai[0] = FX_DBL2FX_SGL(scaleValueSaturate(result, scale + 1));
|
||||||
if ((tmp > FL2FX_DBL(0.0f)) ^ (ac.r11r < FL2FX_DBL(0.0f)))
|
if ((tmp > FL2FX_DBL(0.0f)) ^ (ac.r11r < FL2FX_DBL(0.0f)))
|
||||||
alphai[0] = -alphai[0];
|
alphai[0] = -alphai[0];
|
||||||
}
|
}
|
||||||
|
@ -657,7 +657,7 @@ void lppTransposer(
|
||||||
INT scale;
|
INT scale;
|
||||||
FIXP_DBL result =
|
FIXP_DBL result =
|
||||||
fDivNorm(fixp_abs(ac.r01r), fixp_abs(ac.r11r), &scale);
|
fDivNorm(fixp_abs(ac.r01r), fixp_abs(ac.r11r), &scale);
|
||||||
k1 = scaleValue(result, scale);
|
k1 = scaleValueSaturate(result, scale);
|
||||||
|
|
||||||
if (!((ac.r01r < FL2FX_DBL(0.0f)) ^ (ac.r11r < FL2FX_DBL(0.0f)))) {
|
if (!((ac.r01r < FL2FX_DBL(0.0f)) ^ (ac.r11r < FL2FX_DBL(0.0f)))) {
|
||||||
k1 = -k1;
|
k1 = -k1;
|
||||||
|
@ -1062,7 +1062,7 @@ void lppTransposerHBE(
|
||||||
if ((scale > 0) && (result >= (FIXP_DBL)MAXVAL_DBL >> scale)) {
|
if ((scale > 0) && (result >= (FIXP_DBL)MAXVAL_DBL >> scale)) {
|
||||||
resetLPCCoeffs = 1;
|
resetLPCCoeffs = 1;
|
||||||
} else {
|
} else {
|
||||||
alphar[1] = FX_DBL2FX_SGL(scaleValue(result, scale));
|
alphar[1] = FX_DBL2FX_SGL(scaleValueSaturate(result, scale));
|
||||||
if ((tmp < FL2FX_DBL(0.0f)) ^ (ac.det < FL2FX_DBL(0.0f))) {
|
if ((tmp < FL2FX_DBL(0.0f)) ^ (ac.det < FL2FX_DBL(0.0f))) {
|
||||||
alphar[1] = -alphar[1];
|
alphar[1] = -alphar[1];
|
||||||
}
|
}
|
||||||
|
@ -1088,7 +1088,7 @@ void lppTransposerHBE(
|
||||||
(result >= /*FL2FXCONST_DBL(1.f)*/ (FIXP_DBL)MAXVAL_DBL >> scale)) {
|
(result >= /*FL2FXCONST_DBL(1.f)*/ (FIXP_DBL)MAXVAL_DBL >> scale)) {
|
||||||
resetLPCCoeffs = 1;
|
resetLPCCoeffs = 1;
|
||||||
} else {
|
} else {
|
||||||
alphai[1] = FX_DBL2FX_SGL(scaleValue(result, scale));
|
alphai[1] = FX_DBL2FX_SGL(scaleValueSaturate(result, scale));
|
||||||
if ((tmp < FL2FX_DBL(0.0f)) ^ (ac.det < FL2FX_DBL(0.0f))) {
|
if ((tmp < FL2FX_DBL(0.0f)) ^ (ac.det < FL2FX_DBL(0.0f))) {
|
||||||
alphai[1] = -alphai[1];
|
alphai[1] = -alphai[1];
|
||||||
}
|
}
|
||||||
|
@ -1117,7 +1117,7 @@ void lppTransposerHBE(
|
||||||
} else {
|
} else {
|
||||||
INT scale;
|
INT scale;
|
||||||
FIXP_DBL result = fDivNorm(absTmp, fixp_abs(ac.r11r), &scale);
|
FIXP_DBL result = fDivNorm(absTmp, fixp_abs(ac.r11r), &scale);
|
||||||
alphar[0] = FX_DBL2FX_SGL(scaleValue(result, scale + 1));
|
alphar[0] = FX_DBL2FX_SGL(scaleValueSaturate(result, scale + 1));
|
||||||
|
|
||||||
if ((tmp > FL2FX_DBL(0.0f)) ^ (ac.r11r < FL2FX_DBL(0.0f)))
|
if ((tmp > FL2FX_DBL(0.0f)) ^ (ac.r11r < FL2FX_DBL(0.0f)))
|
||||||
alphar[0] = -alphar[0];
|
alphar[0] = -alphar[0];
|
||||||
|
@ -1136,7 +1136,7 @@ void lppTransposerHBE(
|
||||||
} else {
|
} else {
|
||||||
INT scale;
|
INT scale;
|
||||||
FIXP_DBL result = fDivNorm(absTmp, fixp_abs(ac.r11r), &scale);
|
FIXP_DBL result = fDivNorm(absTmp, fixp_abs(ac.r11r), &scale);
|
||||||
alphai[0] = FX_DBL2FX_SGL(scaleValue(result, scale + 1));
|
alphai[0] = FX_DBL2FX_SGL(scaleValueSaturate(result, scale + 1));
|
||||||
if ((tmp > FL2FX_DBL(0.0f)) ^ (ac.r11r < FL2FX_DBL(0.0f))) {
|
if ((tmp > FL2FX_DBL(0.0f)) ^ (ac.r11r < FL2FX_DBL(0.0f))) {
|
||||||
alphai[0] = -alphai[0];
|
alphai[0] = -alphai[0];
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue