Skip to content

[format switching] Memory leak in ivas_dirac_dec_config_internal()

This is a follow-up to #1525

When decoding a concatenated bitstream (ISM + FOA), we have a memory leak in ivas_dirac_dec_config_internal():

==2593556== HEAP SUMMARY:
==2593556==     in use at exit: 54 bytes in 2 blocks
==2593556==   total heap usage: 639 allocs, 637 frees, 1,274,600 bytes allocated
==2593556== 
==2593556== 54 (48 direct, 6 indirect) bytes in 1 blocks are definitely lost in loss record 2 of 2
==2593556==    at 0x483877F: malloc (vg_replace_malloc.c:307)
==2593556==    by 0x189BBA: ivas_dirac_dec_config_internal (ivas_dirac_dec.c:79)
==2593556==    by 0x18BA02: ivas_dirac_dec_config (ivas_dirac_dec.c:791)
==2593556==    by 0x198746: ivas_init_decoder (ivas_init_dec.c:1686)
==2593556==    by 0x197071: ivas_dec_setup (ivas_init_dec.c:974)
==2593556==    by 0x11E985: ivas_dec_setup_all (lib_dec.c:2216)
==2593556==    by 0x11BDBE: IVAS_DEC_GetSamplesDecoder (lib_dec.c:1156)
==2593556==    by 0x121CF5: ivas_dec_voip_get_samples_common (lib_dec.c:4018)
==2593556==    by 0x121F48: IVAS_DEC_VoIP_GetSamples (lib_dec.c:4109)
==2593556==    by 0x117DB8: decodeVoIP (decoder.c:3554)
==2593556==    by 0x110D14: main (decoder.c:774)
==2593556== 
==2593556== LEAK SUMMARY:
==2593556==    definitely lost: 48 bytes in 1 blocks
==2593556==    indirectly lost: 6 bytes in 1 blocks
==2593556==      possibly lost: 0 bytes in 0 blocks
==2593556==    still reachable: 0 bytes in 0 blocks
==2593556==         suppressed: 0 bytes in 0 blocks
==2593556== 

Commandline:

./IVAS_dec -voip binaural 48 stvFOA48c_48kbps_concat_stv2ISM48s_48kbps.voip out.wav

Bitstream:

stvFOA48c_48kbps_concat_stv2ISM48s_48kbps.voip

The bitstream was generated by

IVAS_cod -ism 2 NULL NULL 48000 48 scripts/testv/stv2ISM48s.wav stv2ISM48s_48kbps.192
IVAS_cod -sba 1 48000 48 scripts/testv/stvFOA48c.wav stvFOA48c_48kbps.192
cp stvFOA48c_48kbps.192 stvFOA48c_48kbps_concat_stv2ISM48s_48kbps.192
cat stv2ISM48s_48kbps.192 >> stvFOA48c_48kbps_concat_stv2ISM48s_48kbps.192
networkSimulator_g192 scripts/dly_error_profiles/dly_error_profile_0.dat stv2ISM48s_48kbps_concat_stvFOA48c_48kbps.192 stv2ISM48s_48kbps_concat_stvFOA48c_48kbps.voip /dev/null 1 0