Commit 1c755a88 authored by Tapani Pihlajakuja's avatar Tapani Pihlajakuja
Browse files

Merge remote-tracking branch 'origin/main' into ci/run-windows-evs-be-test-in-mr-pipeline

parents 02532a9f 463b77e3
Loading
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -408,6 +408,7 @@ int main(
        }
    }

#ifndef FIX_1158_FASTCONV_REVERB_HRTF
    /*------------------------------------------------------------------------------------------*
     * Open renderer configuration reader file
     *------------------------------------------------------------------------------------------*/
@@ -427,6 +428,7 @@ int main(
            goto cleanup;
        }
    }
#endif

    /*------------------------------------------------------------------------------------------*
     * Configure the decoder
@@ -614,6 +616,14 @@ int main(
            goto cleanup;
        }

#ifdef FIX_1158_FASTCONV_REVERB_HRTF
        if ( ( error = RenderConfigReader_open( arg.renderConfigFilename, &renderConfigReader ) ) != IVAS_ERR_OK )
        {
            fprintf( stderr, "\nError: Can't open Renderer configuration file %s \n\n", arg.renderConfigFilename );
            goto cleanup;
        }
#endif

        if ( RenderConfigReader_read( renderConfigReader, arg.renderConfigFilename, &renderConfig ) != IVAS_ERR_OK )
        {
            fprintf( stderr, "Failed to read renderer configuration from file %s\n\n", arg.renderConfigFilename );
+4 −0
Original line number Diff line number Diff line
@@ -5784,7 +5784,11 @@ void ivas_omasa_combine_separate_ism_with_masa(
    const int16_t output_frame                                  /* i  : output frame length per channel        */
);

#ifdef FIX_1161_REDUCE_OMASA_HEAP
ivas_error ivas_omasa_objects_delay_open(
#else
ivas_error ivas_omasa_render_objects_from_mix_open(
#endif
    Decoder_Struct *st_ivas                                     /* i/o: IVAS decoder structure                 */
);

+2 −0
Original line number Diff line number Diff line
@@ -179,8 +179,10 @@
#define FIX_RETURN                                      /* VA: fix location of function returns */
#endif
#define FIX_1135_EXT_RENDERER_HANDLES                   /* VA: issue 1135: Memory usage reduction in external renderer: Allocate only handles that are really needed. */
#define FIX_1158_FASTCONV_REVERB_HRTF                   /* Philips: issue 1158: Rendering with FastConv to BINAURAL_ROOM_REVERB uses BRIR convolution instead of HRTF */
#define FIX_1166_TDREND_DIV0                            /* FhG,Eri: issue 1166: potential divide by zero in TD Renderer */
#define FIX_835_PARAMMC_BUFFER_VALUES                   /* FhG: BASOP issue 835: wide range of buffer values for cx in ParamMC */
#define FIX_1161_REDUCE_OMASA_HEAP                      /* VA: reduction of OMASA heap memory */

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

+18 −0
Original line number Diff line number Diff line
@@ -1898,17 +1898,31 @@ ivas_error ivas_init_decoder(
                }
            }

#ifdef FIX_1161_REDUCE_OMASA_HEAP
            /* Allocate memory for delay buffer within 'hMasaIsmData' */
            if ( ( error = ivas_omasa_objects_delay_open( st_ivas ) ) != IVAS_ERR_OK )
            {
                return error;
            }
#else
            /* Allocate 'hIsmRendererData' handle and memory for delay buffer within 'hMasaIsmData' */
            if ( ( error = ivas_omasa_separate_object_renderer_open( st_ivas ) ) != IVAS_ERR_OK )
            {
                return error;
            }
#endif
        }

        if ( ( st_ivas->renderer_type == RENDERER_DIRAC ) &&
             ( st_ivas->ism_mode == ISM_MASA_MODE_MASA_ONE_OBJ || st_ivas->ism_mode == ISM_MASA_MODE_PARAM_ONE_OBJ || st_ivas->ism_mode == ISM_MASA_MODE_DISC ) )
        {
            /* Allocate 'hIsmRendererData' handle and memory for delay buffer within 'hMasaIsmData' */
#ifdef FIX_1161_REDUCE_OMASA_HEAP
            if ( ( error = ivas_omasa_objects_delay_open( st_ivas ) ) != IVAS_ERR_OK )
            {
                return error;
            }
#endif
            if ( ( error = ivas_omasa_separate_object_renderer_open( st_ivas ) ) != IVAS_ERR_OK )
            {
                return error;
@@ -1918,7 +1932,11 @@ ivas_error ivas_init_decoder(
        if ( st_ivas->renderer_type == RENDERER_OMASA_OBJECT_EXT )
        {
            /* Allocate 'hIsmRendererData' handle and memory for delay buffer within 'hMasaIsmData' */
#ifdef FIX_1161_REDUCE_OMASA_HEAP
            if ( ( error = ivas_omasa_objects_delay_open( st_ivas ) ) != IVAS_ERR_OK )
#else
            if ( ( error = ivas_omasa_render_objects_from_mix_open( st_ivas ) ) != IVAS_ERR_OK )
#endif
            {
                return error;
            }
+10 −1
Original line number Diff line number Diff line
@@ -354,7 +354,7 @@ void ivas_ism_get_stereo_gains(


/*-------------------------------------------------------------------------*
 * ivas_masa_oism_separate_object_renderer_open()
 * ivas_omasa_separate_object_renderer_open()
 *
 * Open structures, reserve memory, and init values.
 *-------------------------------------------------------------------------*/
@@ -379,7 +379,14 @@ 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;
#ifdef FIX_1161_REDUCE_OMASA_HEAP
    if ( ( st_ivas->hIsmRendererData->interpolator = (float *) malloc( sizeof( float ) * init_interpolator_length ) ) == NULL )
    {
        return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate memory for MASA ISM renderer interpolator \n" ) );
    }
#else
    st_ivas->hIsmRendererData->interpolator = (float *) malloc( sizeof( float ) * init_interpolator_length );
#endif

    for ( i = 0; i < interpolator_length; i++ )
    {
@@ -387,6 +394,7 @@ ivas_error ivas_omasa_separate_object_renderer_open(
    }
    st_ivas->hIsmRendererData->interpolator_length = interpolator_length;

#ifndef FIX_1161_REDUCE_OMASA_HEAP
    st_ivas->hMasaIsmData->delayBuffer_size = (int16_t) ( ( st_ivas->hDecoderConfig->output_Fs / 50 ) / MAX_PARAM_SPATIAL_SUBFRAMES );

    if ( st_ivas->ism_mode == ISM_MASA_MODE_MASA_ONE_OBJ || st_ivas->ism_mode == ISM_MASA_MODE_PARAM_ONE_OBJ )
@@ -412,6 +420,7 @@ ivas_error ivas_omasa_separate_object_renderer_open(
        set_zero( st_ivas->hMasaIsmData->delayBuffer[i], st_ivas->hMasaIsmData->delayBuffer_size );
    }

#endif
    return IVAS_ERR_OK;
}

Loading