Draft: [non-BE][split-non-BE][rend-non-BE][allow regression] Resolve "Usage of extract_l() with values out of range"
- Related issues:
- Requested reviewers:
Reason why this change is needed
- In some cases extract_l() returns a meaningless value, because the input value with a wider representation, exceeds the range of the narrower return value (overflow).
Description of the change
- Discover problematic usage of extract_l by placing assert calls.
- Provides fixes for all overflows found in test STV and LTV pipelines.
Affected operating points
- Any module using extract_l() is potentially affected, but the severity is likely not catastrophic, because if not it would had been noticed by other tests already.
In particular in the following functions problems were found:
- estDownmixGain_fx
- swb_pre_proc_fx
- spectral_balancer_fx16
- IGF_CalculateStereoEnvelope_fx
- GetTCXMaxenergyChange_fx
- res_bpf_adapt_ivas_fx
- ivas_core_dec_fx
- d_syn_filt_fx
- acelp_core_dec_fx
- acelp_fast_fx
- swb_tbe_enc_fx
- bw_detect_fx
- Regressions and Improvements STV
| job | criteria | improvements | regressions |
|---|---|---|---|
| dec 0dB | MAX abs | 1x 3515 | 1 x 231 |
| MLD | 1x 0.6 | 7x <0.5 | |
| dec +10dB | MAX abs | 2x > 1000 | 0 |
| MLD | 3 x > 0.1 | 2x < 0.6 | |
| dec -10dB | MAX abs | 1x > 1000 | 0 |
| MLD | 1x > 3.9 | 26x < 1.01 | |
| enc 0dB | MAX abs | 1 x > 1300 | 1x 57 |
| MLD | 1x 2.4 | 0 | |
| enc +10dB | MAX abs | 1x 2624 | 0 |
| MLD | 0 | 1x 0.65 | |
| enc -10dB | MAX abs | 0 | 0 |
| MLD | 0 | 0 |
Closes #2493
Edited by Manuel Jander