Assert in acelp_core_dec_fx, MC5.1@24k4 to STEREO decoding in fx-fx +10 dB LTV test
Basic info
Bug description
Assert in acelp_core_dec_fx, during scale_sig32 operation on cldfb buffers.
max_val = L_max( max_real, max_imag );
Q_real = sub( norm_l( max_val ), 3 ) /* Guard bits */;
FOR( i = 0; i < CLDFB_NO_COL_MAX; i++ )
{
scale_sig32( realBuffer_fx[i], CLDFB_NO_CHANNELS_MAX, Q_real ); // Q_real
scale_sig32( imagBuffer_fx[i], CLDFB_NO_CHANNELS_MAX, Q_real ); // Q_real
}
scale_sig32( st->cldfbSyn->cldfb_state_fx, st->cldfbSyn->p_filter_length, sub( Q_real, Q11 ) ); // Q10 - > (Q_real-1) <= assert here
st->cldfbSyn->Q_cldfb_state = sub( Q_real, 1 );
move16();
cldfbSynthesis_ivas_fx( realBuffer_fx, imagBuffer_fx, synth_fx, -1, 0, 0, st->cldfbSyn );
scale_sig32( synth_fx, output_frame, negate( sub( Q_real, 1 ) ) ); // Q0
scale_sig32( st->cldfbSyn->cldfb_state_fx, st->cldfbSyn->p_filter_length, sub( Q10, sub( Q_real, 1 ) ) ); // Q10
st->cldfbSyn->Q_cldfb_state = Q10;
move16();
Ways to reproduce
Shortcut:
IVAS_dec STEREO 48 bs_cut.192 out.wav
Long story:
git checkout ivas-float-update
make clean;make -j
cp IVAS_cod IVAS_cod_ref; cp IVAS_dec IVAS_dec_ref; cp IVAS_rend IVAS_rend_ref;
git checkout main
make clean;make -j
cp /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-Multi-channel 5_1 at 24.4 kbps, 48kHz in, 48kHz out, STEREO out]" --param_file scripts/config/self_test_ltv.prm -n 1 --update_ref 1
pytest "tests/codec_be_on_mr_nonselection/test_param_file.py::test_param_file_tests[ltv-Multi-channel 5_1 at 24.4 kbps, 48kHz in, 48kHz out, STEREO out]" --param_file scripts/config/self_test_ltv.prm -n 1
Edited by norvell
