Commit f10e1c1c authored by Marek Szczerba's avatar Marek Szczerba
Browse files

Support for multiple acoustic environments plus early reflections in...

Support for multiple acoustic environments plus early reflections in text-based configuration (prototype)
parents 33920dcf 9bd470aa
Loading
Loading
Loading
Loading
+14 −9
Original line number Diff line number Diff line
@@ -570,6 +570,8 @@ int main(
        }

#ifdef CONTROL_METADATA_REVERB
        if ( arg.outputFormat == IVAS_DEC_OUTPUT_BINAURAL_ROOM_REVERB )
        {
            if ( ( error = RenderConfigReader_getAcousticEnvironment( renderConfigReader, ACOUSTIC_ENVIRONMENT_ID, &renderConfig.room_acoustics ) ) == IVAS_ERR_OK )
            {
                if ( RenderConfigReader_checkValues( &renderConfig ) != IVAS_ERR_OK )
@@ -583,8 +585,11 @@ int main(
                fprintf( stderr, "Failed to get acoustic environment with ID: %d\n\n", ACOUSTIC_ENVIRONMENT_ID );
                goto cleanup;
            }
#endif
            renderConfig.room_acoustics.override = true;
        }
#else
        renderConfig.room_acoustics.override = true;
#endif

        if ( ( error = IVAS_DEC_FeedRenderConfig( hIvasDec, renderConfig ) ) != IVAS_ERR_OK )
        {
+15 −0
Original line number Diff line number Diff line
@@ -786,6 +786,21 @@ int main(

        if ( args.outConfig.audioConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM_REVERB )
        {
#ifdef CONTROL_METADATA_REVERB
            if ( ( error = RenderConfigReader_getAcousticEnvironment( renderConfigReader, ACOUSTIC_ENVIRONMENT_ID, &renderConfig.room_acoustics ) ) == IVAS_ERR_OK )
            {
                if ( RenderConfigReader_checkValues( &renderConfig ) != IVAS_ERR_OK )
                {
                    fprintf( stderr, "Invalid reverberation configuration parameters\n\n" );
                    exit( -1 );
                }
            }
            else if ( error != IVAS_ERR_ACOUSTIC_ENVIRONMENT_MISSING )
            {
                fprintf( stderr, "Failed to get acoustic environment with ID: %d\n\n", ACOUSTIC_ENVIRONMENT_ID );
                exit( -1 );
            }
#endif
            renderConfig.room_acoustics.override = TRUE;
        }

+4 −1
Original line number Diff line number Diff line
@@ -1285,8 +1285,10 @@ ivas_error RenderConfigReader_open(

    pSelf = calloc( sizeof( RenderConfigReader ), 1 );
    pSelf->pConfigFile = pConfigFile;
#ifdef CONTROL_METADATA_REVERB
    pSelf->pFG = NULL;
    pSelf->pAE = NULL;
#endif

    *ppRenderConfigReader = pSelf;
    return IVAS_ERR_OK;
@@ -1619,6 +1621,7 @@ static ivas_error RenderConfigReader_readBinReverb(
            {
                return IVAS_ERR_FAILED_ALLOC;
            }
            /* Initialize memory pointers to allow safe freeing ico eg errors */
            pRenderConfigReader->pAE[n].pEarlyReflections->pListenerOrigin = NULL;

            /* Room sizes */
@@ -1796,10 +1799,10 @@ ivas_error RenderConfigReader_read(
            strip_spaces_upper( pParams );
#endif
            to_upper( chapter );
            pToken = strtok( chapter, ":" );

            /* interpret params */
#ifdef CONTROL_METADATA_REVERB
            pToken = strtok( chapter, ":" );
            if ( strcmp( chapter, "ROOMACOUSTICS" ) == 0 )
            {
                params_idx = 0;