Skip to content

Uninitialized members in decDummy breaking external renderer MASA binaural output

Some member fields in the dummy decoder structure are uninitialized. This shows up as MSAN errors and the MASA BINAURAL output from the external renderer is broken (basically being mono) since commit 4ad1f114 .

Running IVAS_rend -i masa_EXT.wav -if MASA2 -im masa_EXT.wav.met -o ext_BIN.wav -of BINAURAL -fs 48 should reproduce the errors. The inputs to this have been obtained by running IVAS_dec EXT 48 masa.bs masa_EXT.wav.

Running MSAN reports the following issue:

ivas_dirac_dec_binaural_functions.c
Use-of-uninitialized-value
0x549dbe ivas_dirac_dec_binaural_copy_hrtfs ivas_dirac_dec_binaural_functions.c:458 
0x510bba initMasaDummyDecForBinauralOut lib_rend.c:2407 
0x50dcd3 updateMasaDummyDec lib_rend.c:2453 
0x4f1901 setRendInputActiveMasa lib_rend.c:2578 
0x4eed49 IVAS_REND_AddInput lib_rend.c:3202 
0x4ca2a9 main renderer.c:843 
0x7fb89f18f082 __libc_start_main libc-start.c:308 
0x4474fd _start

Adding the init decDummy->hHrtfParambin = NULL; into initMasaDummyDecForBinauralOut() solves this, but a second similarly-looking issue appears:

ivas_dirac_dec_binaural_functions.c
Use-of-uninitialized-value
0x5541ea adaptTransportSignalsHeadtracked ivas_dirac_dec_binaural_functions.c:3368 
0x5500f5 ivas_dirac_dec_binaural_internal ivas_dirac_dec_binaural_functions.c:1059 
0x5520c3 ivas_dirac_dec_binaural ivas_dirac_dec_binaural_functions.c:637 
0x526e67 renderMasaToBinaural lib_rend.c:5558 
0x525fa6 renderInputMasa lib_rend.c:5604 
0x5001c6 renderActiveInputsMasa lib_rend.c:5637 
0x4fec88 IVAS_REND_GetSamples lib_rend.c:5712 
0x4ce783 main renderer.c:1076 
0x7f189f073082 __libc_start_main libc-start.c:308 
0x4474fd _start