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

Merge request reports

Loading