Crash in Stereo BASOP Enc -> Stereo BASOP Dec at 32 kbps with DTX, bandwidth switching and 5% FER
The stereo BASOP decoder crashes at 32kbps when runinng in DTX mode with bandwidth switching and 5% FER. This has been reported in the new FX Enc - FX Dec tests as reported by the following CI pipeline:
https://sa4.3gpp.org/-/audio/ivas-basop/-/jobs/469152/artifacts/report.html
The issue can be reproduced with
python3 -m pytest -v "tests/codec_be_on_mr_nonselection/test_param_file.py::test_param_file_tests[ltv-stereo at 32 kbps, 48kHz in, 48kHz out, DTX on, random FER at 5%, bandwidth switching]" --param_file scripts/config/self_test_ltv.prm --use_ltv --dut_encoder_path ./IVAS_cod --dut_decoder_path ./IVAS_dec
or directly with (note that the input file ltv48_STEREO.wav
must be present in the testv/
folder):
./scale_pcm.py testv/ 3.162
./IVAS_cod -max_band scripts/testv/ivas_bws_20fr_start_WB.txt -stereo -dtx 32000 48 scripts/testv/ltv48_STEREO.wav bit
eid-xor -fer -vbr -bs g192 -ep g192 bit scripts/dly_error_profiles/ep_5pct.g192 bit_fer
./IVAS_dec -fr 20 STEREO 48 bit_fer out
The crash occurs in frame #6666 in the function stereo_dft_dec_fx()
. Here's the call stack:
- IVAS_dec.exe!L_add(int L_var1, int L_var2) Line 1661
- IVAS_dec.exe!stereo_dft_dec_fx(stereo_dft_dec_data_struct * hStereoDft, Decoder_State * st0, int[1920] * DFT, int * input_mem, stereo_dec_cng * hStereoCng, const short sba_dirac_stereo_flag, const short sba_mono_flag, ivas_spar_md_dec_state_t * hMdDec, const short cross_fade_start_offset, const int output_Fs, const short nchan_transport, const short num_md_sub_frames) Line 2653
- IVAS_dec.exe!ivas_cpe_dec_fx(Decoder_Struct * st_ivas, const short cpe_id, int * * output, const short output_frame, const short nb_bits_metadata) Line 748
- IVAS_dec.exe!ivas_jbm_dec_tc_fx(Decoder_Struct * st_ivas, int * data_fx) Line 162
- IVAS_dec.exe!IVAS_DEC_GetTcSamples(IVAS_DEC * hIvasDec, int * pcmBuf_fx, short * nOutSamples) Line 1426
- IVAS_dec.exe!IVAS_DEC_GetSamples(IVAS_DEC * hIvasDec, const short nSamplesAsked, short * pcmBuf, short * nOutSamples, bool * needNewFrame) Line 1071
- IVAS_dec.exe!decodeG192(DecArguments arg, BS_Reader * hBsReader, RotFileReader * headRotReader, RotFileReader * externalOrientationFileReader, RotFileReader * refRotReader, Vector3PairFileReader * referenceVectorReader, IVAS_DEC * hIvasDec, short * pcmBuf) Line 1684
- IVAS_dec.exe!main(int argc, char * * argv) Line 577
Edited by malenovsky