Commit bfe5372a authored by Dominik Weckbecker's avatar Dominik Weckbecker 💬
Browse files

fix crash with RENDERER_BINAURAL_PARAMETRIC

parent 58cc9ded
Loading
Loading
Loading
Loading
Loading
+41 −37
Original line number Diff line number Diff line
@@ -125,7 +125,7 @@ static ivas_error ivas_dec_reconfig_split_rend(

    if ( isCldfbNeeded == 1 && hSplitRendWrapper->hCldfbHandles == NULL )
    {
        if ( ( hSplitRendWrapper->hCldfbHandles = (CLDFB_HANDLES_WRAPPER_HANDLE) malloc( sizeof( CLDFB_HANDLES_WRAPPER ) ) ) == NULL )
        if ( ( hSplitRendWrapper->hCldfbHandles = (CLDFB_HANDLES_WRAPPER_HANDLE) malloc_( sizeof( CLDFB_HANDLES_WRAPPER ) ) ) == NULL )
        {
            return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for CLDFB handles\n" ) );
        }
@@ -175,7 +175,7 @@ static ivas_error ivas_dec_reconfig_split_rend(
            }
        }

        free( hSplitRendWrapper->hCldfbHandles );
        free_( hSplitRendWrapper->hCldfbHandles );
        hSplitRendWrapper->hCldfbHandles = NULL;
    }

@@ -226,7 +226,7 @@ static ivas_error ivas_dec_init_split_rend(

    if ( cldfb_in_flag == 1 && ( st_ivas->hSplitBinRend->splitrend.multiBinPoseData.poseCorrectionMode == ISAR_SPLIT_REND_POSE_CORRECTION_MODE_NONE ) )
    {
        if ( ( st_ivas->hSplitBinRend->hCldfbDataOut = (ISAR_DEC_SPLIT_REND_CLDFB_OUT_DATA_HANDLE) malloc( sizeof( ISAR_DEC_SPLIT_REND_CLDFB_OUT_DATA ) ) ) == NULL )
        if ( ( st_ivas->hSplitBinRend->hCldfbDataOut = (ISAR_DEC_SPLIT_REND_CLDFB_OUT_DATA_HANDLE) malloc_( sizeof( ISAR_DEC_SPLIT_REND_CLDFB_OUT_DATA ) ) ) == NULL )
        {
            return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for cldfb data out buffer\n" ) );
        }
@@ -2045,7 +2045,7 @@ ivas_error ivas_init_decoder(

    if ( n > 0 )
    {
        if ( ( st_ivas->mem_hp20_out = (float **) malloc( n * sizeof( float * ) ) ) == NULL )
        if ( ( st_ivas->mem_hp20_out = (float **) malloc_( n * sizeof( float * ) ) ) == NULL )
        {
            return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) );
        }
@@ -2057,7 +2057,7 @@ ivas_error ivas_init_decoder(

    for ( i = 0; i < n; i++ )
    {
        if ( ( st_ivas->mem_hp20_out[i] = (float *) malloc( L_HP20_MEM * sizeof( float ) ) ) == NULL )
        if ( ( st_ivas->mem_hp20_out[i] = (float *) malloc_( L_HP20_MEM * sizeof( float ) ) ) == NULL )
        {
            return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) );
        }
@@ -2237,7 +2237,11 @@ ivas_error ivas_init_decoder(
    }

    if ( ( st_ivas->ivas_format == ISM_FORMAT || st_ivas->ivas_format == SBA_ISM_FORMAT ) &&
         ( st_ivas->ism_mode == ISM_MODE_DISC || st_ivas->ism_mode == ISM_SBA_MODE_DISC ) &&
         ( st_ivas->ism_mode == ISM_MODE_DISC || st_ivas->ism_mode == ISM_SBA_MODE_DISC
#ifdef OBJ_EDITING_DECODER
           || st_ivas->ism_mode == ISM_MODE_PARAM
#endif
           ) &&
         ( st_ivas->renderer_type == RENDERER_TD_PANNING ||
           st_ivas->renderer_type == RENDERER_NON_DIEGETIC_DOWNMIX ||
           st_ivas->renderer_type == RENDERER_SBA_LINEAR_ENC ||
@@ -2248,7 +2252,7 @@ ivas_error ivas_init_decoder(
           st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM ||
           st_ivas->renderer_type == RENDERER_BINAURAL_MIXER_CONV_ROOM
#ifdef OBJ_EDITING_DECODER
           || st_ivas->renderer_type == RENDERER_BINAURAL_OBJECTS_TD
           || st_ivas->renderer_type == RENDERER_BINAURAL_OBJECTS_TD || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM
#endif
           ) )
    {
@@ -2444,7 +2448,7 @@ ivas_error ivas_init_decoder(
    for ( n = 0; n < ivas_get_nchan_buffers_dec( st_ivas, st_ivas->sba_analysis_order, st_ivas->hDecoderConfig->ivas_total_brate ); n++ )
    {
        /* note: these are intra-frame heap memories */
        if ( ( st_ivas->p_output_f[n] = (float *) malloc( ( 48000 / FRAMES_PER_SEC ) * sizeof( float ) ) ) == NULL )
        if ( ( st_ivas->p_output_f[n] = (float *) malloc_( ( 48000 / FRAMES_PER_SEC ) * sizeof( float ) ) ) == NULL )
        {
            return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for floating-point output audio buffer!\n" ) );
        }
@@ -2474,127 +2478,127 @@ void destroy_core_dec(

    if ( hCoreCoder->hGSCDec != NULL )
    {
        free( hCoreCoder->hGSCDec );
        free_( hCoreCoder->hGSCDec );
        hCoreCoder->hGSCDec = NULL;
    }

    if ( hCoreCoder->hPFstat != NULL )
    {
        free( hCoreCoder->hPFstat );
        free_( hCoreCoder->hPFstat );
        hCoreCoder->hPFstat = NULL;
    }

    if ( hCoreCoder->hMusicPF != NULL )
    {
        free( hCoreCoder->hMusicPF );
        free_( hCoreCoder->hMusicPF );
        hCoreCoder->hMusicPF = NULL;
    }

    if ( hCoreCoder->hBPF != NULL )
    {
        free( hCoreCoder->hBPF );
        free_( hCoreCoder->hBPF );
        hCoreCoder->hBPF = NULL;
    }

    if ( hCoreCoder->hBWE_zero != NULL )
    {
        free( hCoreCoder->hBWE_zero );
        free_( hCoreCoder->hBWE_zero );
        hCoreCoder->hBWE_zero = NULL;
    }

    if ( hCoreCoder->hTdCngDec != NULL )
    {
        free( hCoreCoder->hTdCngDec );
        free_( hCoreCoder->hTdCngDec );
        hCoreCoder->hTdCngDec = NULL;
    }

    if ( hCoreCoder->hSC_VBR != NULL )
    {
        free( hCoreCoder->hSC_VBR );
        free_( hCoreCoder->hSC_VBR );
        hCoreCoder->hSC_VBR = NULL;
    }

    if ( hCoreCoder->hAmrwb_IO != NULL )
    {
        free( hCoreCoder->hAmrwb_IO );
        free_( hCoreCoder->hAmrwb_IO );
        hCoreCoder->hAmrwb_IO = NULL;
    }

    if ( hCoreCoder->hBWE_TD != NULL )
    {
        free( hCoreCoder->hBWE_TD );
        free_( hCoreCoder->hBWE_TD );
        hCoreCoder->hBWE_TD = NULL;
    }

    if ( hCoreCoder->hBWE_FD != NULL )
    {
        free( hCoreCoder->hBWE_FD );
        free_( hCoreCoder->hBWE_FD );
        hCoreCoder->hBWE_FD = NULL;
    }

    if ( hCoreCoder->hBWE_FD_HR != NULL )
    {
        free( hCoreCoder->hBWE_FD_HR );
        free_( hCoreCoder->hBWE_FD_HR );
        hCoreCoder->hBWE_FD_HR = NULL;
    }

    if ( hCoreCoder->hWIDec != NULL )
    {
        free( hCoreCoder->hWIDec );
        free_( hCoreCoder->hWIDec );
        hCoreCoder->hWIDec = NULL;
    }

    if ( hCoreCoder->hTECDec != NULL )
    {
        free( hCoreCoder->hTECDec );
        free_( hCoreCoder->hTECDec );
        hCoreCoder->hTECDec = NULL;
    }

    if ( hCoreCoder->hTcxLtpDec != NULL )
    {
        free( hCoreCoder->hTcxLtpDec );
        free_( hCoreCoder->hTcxLtpDec );
        hCoreCoder->hTcxLtpDec = NULL;
    }

    if ( hCoreCoder->hTcxDec != NULL )
    {
        free( hCoreCoder->hTcxDec );
        free_( hCoreCoder->hTcxDec );
        hCoreCoder->hTcxDec = NULL;
    }

    if ( hCoreCoder->hTcxCfg != NULL )
    {
        free( hCoreCoder->hTcxCfg );
        free_( hCoreCoder->hTcxCfg );
        hCoreCoder->hTcxCfg = NULL;
    }

    if ( hCoreCoder->hTonalMDCTConc != NULL )
    {
        free( hCoreCoder->hTonalMDCTConc );
        free_( hCoreCoder->hTonalMDCTConc );
        hCoreCoder->hTonalMDCTConc = NULL;
    }

    if ( hCoreCoder->hIGFDec != NULL )
    {
        free( hCoreCoder->hIGFDec );
        free_( hCoreCoder->hIGFDec );
        hCoreCoder->hIGFDec = NULL;
    }

    if ( hCoreCoder->hPlcInfo != NULL )
    {
        free( hCoreCoder->hPlcInfo );
        free_( hCoreCoder->hPlcInfo );
        hCoreCoder->hPlcInfo = NULL;
    }

    if ( hCoreCoder->hHQ_core != NULL )
    {
        free( hCoreCoder->hHQ_core );
        free_( hCoreCoder->hHQ_core );
        hCoreCoder->hHQ_core = NULL;
    }

    if ( hCoreCoder->hHQ_nbfec != NULL )
    {
        free( hCoreCoder->hHQ_nbfec );
        free_( hCoreCoder->hHQ_nbfec );
        hCoreCoder->hHQ_nbfec = NULL;
    }

@@ -2774,10 +2778,10 @@ void ivas_destroy_dec(
    {
        for ( i = 0; i < getNumChanSynthesis( st_ivas ); i++ )
        {
            free( st_ivas->mem_hp20_out[i] );
            free_( st_ivas->mem_hp20_out[i] );
            st_ivas->mem_hp20_out[i] = NULL;
        }
        free( st_ivas->mem_hp20_out );
        free_( st_ivas->mem_hp20_out );
        st_ivas->mem_hp20_out = NULL;
    }

@@ -2805,7 +2809,7 @@ void ivas_destroy_dec(
    /* HOA decoder matrix */
    if ( st_ivas->hoa_dec_mtx != NULL )
    {
        free( st_ivas->hoa_dec_mtx );
        free_( st_ivas->hoa_dec_mtx );
        st_ivas->hoa_dec_mtx = NULL;
    }

@@ -2872,7 +2876,7 @@ void ivas_destroy_dec(
    /* Custom LS configuration handle */
    if ( st_ivas->hLsSetupCustom != NULL )
    {
        free( st_ivas->hLsSetupCustom );
        free_( st_ivas->hLsSetupCustom );
        st_ivas->hLsSetupCustom = NULL;
    }

@@ -2930,7 +2934,7 @@ void ivas_destroy_dec(

    if ( st_ivas->hDecoderConfig != NULL )
    {
        free( st_ivas->hDecoderConfig );
        free_( st_ivas->hDecoderConfig );
        st_ivas->hDecoderConfig = NULL;
    }

@@ -2938,7 +2942,7 @@ void ivas_destroy_dec(

    if ( st_ivas->hJbmMetadata != NULL )
    {
        free( st_ivas->hJbmMetadata );
        free_( st_ivas->hJbmMetadata );
        st_ivas->hJbmMetadata = NULL;
    }

@@ -2947,13 +2951,13 @@ void ivas_destroy_dec(
    {
        if ( st_ivas->p_output_f[i] != NULL )
        {
            free( st_ivas->p_output_f[i] );
            free_( st_ivas->p_output_f[i] );
            st_ivas->p_output_f[i] = NULL;
        }
    }

    /* main IVAS handle */
    free( st_ivas );
    free_( st_ivas );

    return;
}