Skip to content

[NON-BE] Fix for #1133 "Discontinuity for test case scaled 10db for stereo mono output with dtx and plc"

Reason why this change is needed

Fixes two bugs with the PLC fadeout to background noise for long frameloss periods/burst errors. 1st one can cause clicks, 2nd one can cause wrong Comfort noise level after burst errors which look like noise bursts.

Description of the change

    1. fix for actual problem of the issue: If in MDCT-Stereo decoding, the first received good frame after a burst frameloss long enough to trigger the fadeout towards background noise is an SID frame, scaling mismatches can occur due to hHQ_core->old_out signal being scaled with conceal_eof_gain. This mismatch can probably only really occur if the background noise changes drastically during the burst error so that the measured bg level (potentially estimated from the decoder output only) does not correspond to the backgtround noise level resulting from the SID frame's description of the bg noise.
    1. fix for side problem: during long frame loss concealment, SNS coefficients are computed for the background noise and stored in already whitened shape to not do the whitening again and again in each frame as the SNS values stay constant over the concealment period. On first good frame, the whitening is undone as the coefficients are needed in that form later. If the first good frame after a burst frameloss is an SID, however, the noise shape is being overwritten by the contents in the SID (in non-whitened form already), so the de-whitening should not be done then. Otherwise, noise bursts can occur.

Affected operating points

  • Potentially everything with MDCT-Stereo as core coder, but only after consecutive frameloss of >2 frames and if the first good frame after that is an SID.
  • no interop issues

Related to #1133 (closed)

Merge request reports

Loading