Commit 24153606 authored by Jouni Paulus's avatar Jouni Paulus
Browse files

Revert "allocate structures only when necessary"

This reverts commit 66792433
parent 66792433
Loading
Loading
Loading
Loading
Loading
+8 −40
Original line number Diff line number Diff line
@@ -354,15 +354,11 @@ ivas_error ivas_omasa_separate_object_renderer_open(
    int16_t interpolator_length;
    int16_t i;
    int16_t init_interpolator_length;
    int16_t delayBuffer_nchan_new;

    if ( st_ivas->hIsmRendererData == NULL )
    {
    if ( ( st_ivas->hIsmRendererData = (ISM_RENDERER_HANDLE) malloc( sizeof( ISM_RENDERER_DATA ) ) ) == NULL )
    {
        return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate memory for MASA ISM renderer \n" ) );
    }
    }

    for ( i = 0; i < MAX_NUM_OBJECTS; i++ )
    {
@@ -380,12 +376,6 @@ ivas_error ivas_omasa_separate_object_renderer_open(
        init_interpolator_length = (int16_t) ( st_ivas->hDecoderConfig->output_Fs / FRAMES_PER_SEC / MAX_PARAM_SPATIAL_SUBFRAMES );
        interpolator_length = init_interpolator_length;
    }

    if ( st_ivas->hIsmRendererData->interpolator != NULL )
    {
        free( st_ivas->hIsmRendererData->interpolator );
        st_ivas->hIsmRendererData->interpolator = NULL;
    }
    st_ivas->hIsmRendererData->interpolator = (float *) malloc( sizeof( float ) * init_interpolator_length );

    for ( i = 0; i < interpolator_length; i++ )
@@ -397,46 +387,24 @@ ivas_error ivas_omasa_separate_object_renderer_open(

    if ( st_ivas->ism_mode == ISM_MASA_MODE_MASA_ONE_OBJ || st_ivas->ism_mode == ISM_MASA_MODE_PARAM_ONE_OBJ )
    {
        delayBuffer_nchan_new = 1;
        st_ivas->hMasaIsmData->delayBuffer_nchan = 1;
    }
    else
    {
        delayBuffer_nchan_new = st_ivas->nchan_ism;
        st_ivas->hMasaIsmData->delayBuffer_nchan = st_ivas->nchan_ism;
    }

    if ( st_ivas->hMasaIsmData->delayBuffer != NULL && delayBuffer_nchan_new != st_ivas->hMasaIsmData->delayBuffer_nchan )
    {
        for ( i = 0; i < st_ivas->hMasaIsmData->delayBuffer_nchan; i++ )
        {
            if ( st_ivas->hMasaIsmData->delayBuffer[i] != NULL )
            {
                free( st_ivas->hMasaIsmData->delayBuffer[i] );
                st_ivas->hMasaIsmData->delayBuffer[i] = NULL;
            }
        }
        free( st_ivas->hMasaIsmData->delayBuffer );
        st_ivas->hMasaIsmData->delayBuffer = NULL;
    }

    st_ivas->hMasaIsmData->delayBuffer_nchan = delayBuffer_nchan_new;

    if ( st_ivas->hMasaIsmData->delayBuffer == NULL )
    {
    if ( ( st_ivas->hMasaIsmData->delayBuffer = (float **) malloc( st_ivas->hMasaIsmData->delayBuffer_nchan * sizeof( float * ) ) ) == NULL )
    {
        return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate memory for MASA ISM delay buffer \n" ) );
    }

    for ( i = 0; i < st_ivas->hMasaIsmData->delayBuffer_nchan; i++ )
    {
        if ( ( st_ivas->hMasaIsmData->delayBuffer[i] = (float *) malloc( st_ivas->hMasaIsmData->delayBuffer_size * sizeof( float ) ) ) == NULL )
        {
            return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate memory for MASA ISM delay buffer \n" ) );
        }
        }
    }

    for ( i = 0; i < st_ivas->hMasaIsmData->delayBuffer_nchan; i++ )
    {
        set_zero( st_ivas->hMasaIsmData->delayBuffer[i], st_ivas->hMasaIsmData->delayBuffer_size );
    }