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

  • The relevant changes were part of !3071 (merged). This MR can be deleted, unless checking of extract_l() needs to be repeated.
  • 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 3514 2 x < 112
MLD 4x > 0.25 13x <0.7
dec +10dB MAX abs 2x > 1100 0
MLD 3 x > 0.13 3x < 0.8
dec -10dB MAX abs 5x > 500 0
MLD 1x > 3.9 41x < 1.3
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 (closed)

Edited by Manuel Jander

Merge request reports

Loading