Admin message

WARNING! Gitlab maintenance operation scheduled for Monday, 20 April between 12:00 and 14:00 (CET). During this time window, short service interruptions (less than 5 minutes) may occur. Thank you in advance for your understanding.

Crash in ISAR post-renderer when running LCLD codec with frame size shorter than the ISAR frame size

The ISAR post renderer crashes when running LCLD codec with frame size (read from ext. renderer config file) shorter than the ISAR frame size.

To reproduce the issue:

./IVAS_cod -sba 3 512000 48 scripts/testv/stv3OA48c.wav enc512.pkt
./IVAS_dec -fr 20 -T scripts/trajectories/rotate_euler_quaternion_30s_delayed.csv -render_config tests/split_rendering/renderer_configs/framing/framing_lcld_0dof_5ms.txt BINAURAL_SPLIT_CODED 48 enc512.pkt split_dec.pkt
./ISAR_post_rend -T scripts/trajectories/rotate_euler_quaternion_30s.csv -if BINAURAL_SPLIT_CODED -fs 48 -i split_dec.pkt -o split_out.wav -fr 5

The crash is in frame 859. Here's the call stack:

- LogAdd(const int32_t iVal1, const int32_t iVal2) (\lib_isar\isar_PerceptualModel.c:68)
- PerceptualModel(const int32_t iMaxQuantBands, const int32_t * piRMSEnvelope, int32_t * piExcitation, int32_t * piSMR) (\lib_isar\isar_PerceptualModel.c:123)
- DecodeLCLDFrame(LCLDDecoder * psLCLDDecoder, ISAR_SPLIT_REND_BITS_HANDLE pBits, float *** pppfLCLDReal, float *** pppfLCLDImag) (\lib_isar\isar_lcld_decoder.c:985)
- isar_splitBinLCLDDecProcess(ISAR_BIN_HR_SPLIT_LCLD_DEC_HANDLE hSplitBinLCLDDec, ISAR_SPLIT_REND_BITS_HANDLE pBits, float (*)[16][60] Cldfb_Out_Real, float (*)[16][60] Cldfb_Out_Imag, const int16_t bfi) (\lib_isar\isar_splitRend_lcld_dec.c:207)
- renderSplitBinauralWithPostRot(input_split_post_rend * splitBinInput, IVAS_REND_AudioBuffer outAudio, const int16_t SplitRendBFI, const int16_t num_subframes) (\lib_isar\lib_isar_post_rend.c:1403)
- renderInputSplitBin(input_split_post_rend * splitBinInput, const AUDIO_CONFIG outConfig, IVAS_REND_AudioBuffer outAudio, const int16_t SplitRendBFI, const int16_t num_subframes) (\lib_isar\lib_isar_post_rend.c:1592)
- renderActiveInputsSplitBin(ISAR_POST_REND_HANDLE hIvasRend, IVAS_REND_AudioBuffer outAudio) (\lib_isar\lib_isar_post_rend.c:1618)
- ISAR_POST_REND_getSamples(ISAR_POST_REND_HANDLE hIvasRend, IVAS_REND_AudioBuffer outAudio) (\lib_isar\lib_isar_post_rend.c:1681)
- ISAR_POST_REND_GetSplitBinauralSamples(ISAR_POST_REND_HANDLE hIvasRend, IVAS_REND_AudioBuffer outAudio, _Bool * needNewFrame) (\lib_isar\lib_isar_post_rend.c:1710)
- main(int argc, char ** argv) (\apps\isar_post_rend.c:1363)

This results in segmentation fault at:

static inline int32_t LogAdd(
    const int32_t iVal1,
    const int32_t iVal2 )
{
    int32_t iRetVal;

    if ( iVal1 > iVal2 )
    {
        iRetVal = iVal1 - iVal2;
        iRetVal = ( iRetVal < ( LOG_ADD_TABLE_LENGTH - 1 ) ) ? iRetVal : ( LOG_ADD_TABLE_LENGTH - 1 );
        iRetVal = iVal1 + c_aiLogAddTable[iRetVal];   <- seg fault
        ...
    }

where iRetVal = -2147481151.

Edited Apr 16, 2026 by Vladimir Malenovsky
Assignee Loading
Time tracking Loading