Assert in OMASA bitrate switching decoder +10 dB, ivas_stereo_dft_plc_fx
Basic info
Bug description
Assert (overflow) in L_add in stereo_dft_dmx_nrg_fx: https://forge.3gpp.org/rep/sa4/audio/ivas-basop/-/blob/main/lib_dec/ivas_stereo_dft_plc_fx.c#L788
It happens in frame 4921 when running the full bitstream (see below) or frame 121 in the cut bitstream attached to this ticket.
FOR( i = 0; i < frame_length / 2; i++ )
{
dmx_nrg = L_add( dmx_nrg,
L_add( Madd_32_32( Mpy_32_32( dmx_k0[2 * i], dmx_k0[2 * i] ), dmx_k0[2 * i + 1], dmx_k0[2 * i + 1] ),
Madd_32_32( Mpy_32_32( dmx_k1[2 * i], dmx_k1[2 * i] ), dmx_k1[2 * i + 1], dmx_k1[2 * i + 1] ) ) ); /* Q0 */
}
Ways to reproduce
Cut bitstream:
# Shortcut
IVAS_dec STEREO 32 bs_cut2.192 out.wav
# All steps
cp -v /usr/local/ltv/* scripts/testv
python3 tests/scale_pcm.py scripts/testv 3.162
pytest "tests/codec_be_on_mr_nonselection/test_param_file.py::test_param_file_tests[ltv-OSBA 3ISM 2OA at bitrate switching 13.2 to 512 kbps, 48kHz in, 32kHz out, STEREO out, FER at 10%]" --update_ref 1 -n 1 --param_file scripts/config/self_test_ltv.prm
pytest "tests/codec_be_on_mr_nonselection/test_param_file.py::test_param_file_tests[ltv-OSBA 3ISM 2OA at bitrate switching 13.2 to 512 kbps, 48kHz in, 32kHz out, STEREO out, FER at 10%]" -n 1 --param_file scripts/config/self_test_ltv.prm --dut_encoder_path IVAS_cod_ref
