Commit 55990f2c authored by vaclav's avatar vaclav
Browse files

issue 1117: call ISAR malloc() only at the initialization; under FIX_1117_ISAR_MALLOC

parent a826f47f
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -164,6 +164,7 @@
#define FIX_1099_JBM_MD_HANDLE_ALLOC                    /* VA: issue 1099: Limit the allocation of `hJbmMetadata` handle to MASA and OMASA only */
#define FIX_1111_TDM_LSP_BUFFER                         /* VA: issue 1111: remove unused buffer `tdm_lspQ_PCh[]' */
#define FIX_1101_CLEANING_JBM_CALL                      /* VA: issue 1101: remove obsolete call of ivas_jbm_dec_tc_buffer_open() */
#define FIX_1117_ISAR_MALLOC                            /* VA: issue 1117: call ISAR malloc() only at the initialization. */

/* #################### End BE switches ################################## */

+17 −0
Original line number Diff line number Diff line
@@ -268,11 +268,13 @@ static ivas_error isar_set_split_rend_setup(
    splitRendBits->isar_frame_size_ms = 0;
    splitRendBits->lc3plus_highres = 0;

#ifndef FIX_1117_ISAR_MALLOC
    if ( ( hSplitBinRend->hMultiBinCldfbData = (ISAR_DEC_SPLIT_REND_MULTI_BIN_CLDFB_DATA_HANDLE) malloc( sizeof( ISAR_DEC_SPLIT_REND_MULTI_BIN_CLDFB_DATA ) ) ) == NULL )
    {
        return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate memory for split rendering structure" );
    }

#endif
    ISAR_PRE_REND_GetMultiBinPoseData( hSplitBinConfig, &hSplitBinRend->splitrend.multiBinPoseData, ( hCombinedOrientationData != NULL ) ? hCombinedOrientationData->sr_pose_pred_axis : DEFAULT_AXIS );

    if ( hCombinedOrientationData != NULL )
@@ -1236,8 +1238,10 @@ ivas_error IVAS_DEC_GetSplitBinauralBitstream(
            ivas_syn_output( pOutput, numSamplesPerChannelToDecode, st_ivas->hDecoderConfig->nchan_out, (int16_t *) pcmBuf_out );
    }

#ifndef FIX_1117_ISAR_MALLOC
    free( st_ivas->hSplitBinRend->hMultiBinCldfbData );

#endif
    return error;
}

@@ -3918,6 +3922,11 @@ static void ivas_destroy_handle_isar(
{
    if ( *hSplitBinRend != NULL )
    {
#ifdef FIX_1117_ISAR_MALLOC
        free( ( *hSplitBinRend )->hMultiBinCldfbData );
        ( *hSplitBinRend )->hMultiBinCldfbData = NULL;

#endif
        ISAR_PRE_REND_close( &( *hSplitBinRend )->splitrend, NULL );

        if ( ( *hSplitBinRend )->hCldfbDataOut != NULL )
@@ -4113,6 +4122,14 @@ static ivas_error ivas_dec_init_split_rend(
        cldfb_in_flag = 1;
    }

#ifdef FIX_1117_ISAR_MALLOC
    /* note: this is intra-frame heap memory */
    if ( ( st_ivas->hSplitBinRend->hMultiBinCldfbData = (ISAR_DEC_SPLIT_REND_MULTI_BIN_CLDFB_DATA_HANDLE) malloc( sizeof( ISAR_DEC_SPLIT_REND_MULTI_BIN_CLDFB_DATA ) ) ) == NULL )
    {
        return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate memory for split rendering structure" );
    }

#endif
    ISAR_PRE_REND_GetMultiBinPoseData( &st_ivas->hRenderConfig->split_rend_config, &st_ivas->hSplitBinRend->splitrend.multiBinPoseData, ( st_ivas->hHeadTrackData != NULL ) ? st_ivas->hHeadTrackData->sr_pose_pred_axis : DEFAULT_AXIS );

    if ( cldfb_in_flag == 1 && ( st_ivas->hSplitBinRend->splitrend.multiBinPoseData.poseCorrectionMode == ISAR_SPLIT_REND_POSE_CORRECTION_MODE_NONE ) )