Commit 2c8286b9 authored by Jan Brouwer's avatar Jan Brouwer
Browse files

Make reverb configuration file path relative to render configuration file path

parent 98e61d38
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -505,7 +505,7 @@ int main(
            goto cleanup;
        }

        if ( RenderConfigReader_read( renderConfigReader, &renderConfig ) != IVAS_ERR_OK )
        if ( RenderConfigReader_read( renderConfigReader, arg.renderConfigFilename, &renderConfig ) != IVAS_ERR_OK )
        {
            fprintf( stderr, "Failed to read renderer configuration from file %s\n\n", arg.renderConfigFilename );
            goto cleanup;
+1 −1
Original line number Diff line number Diff line
@@ -731,7 +731,7 @@ int main(
            exit( -1 );
        }

        if ( RenderConfigReader_read( renderConfigReader, &renderConfig ) != IVAS_ERR_OK )
        if ( RenderConfigReader_read( renderConfigReader, args.renderConfigFilePath, &renderConfig ) != IVAS_ERR_OK )
        {
            fprintf( stderr, "Failed to read renderer configuration from file %s\n", args.renderConfigFilePath );
            exit( -1 );
+24 −5
Original line number Diff line number Diff line
@@ -1259,6 +1259,7 @@ static ivas_error RenderConfigReader_readReverb(

ivas_error RenderConfigReader_read(
    RenderConfigReader *pRenderConfigReader, /* i/o : RenderConfigReader handle           */
    const char *pRenderConfigPath,           /* i   : Renderer configuration file path    */
    IVAS_RENDER_CONFIG_HANDLE hRenderConfig  /* o   : Renderer configuration handle       */
)
{
@@ -1274,6 +1275,8 @@ ivas_error RenderConfigReader_read(
    int16_t nBandsInput;
#ifdef CONTROL_METADATA_REVERB
    ivas_error error;
    int32_t params_length;
    int32_t length;
#else
    int16_t nVectorsMissing;
#endif
@@ -1417,7 +1420,9 @@ ivas_error RenderConfigReader_read(
                pValue = (char *) calloc( strlen( pParams ), sizeof( char ) );
                while ( sscanf( pParams + params_idx, "%64[^=]=%[^;];", item, pValue ) == 2 )
                {
#ifndef CONTROL_METADATA_REVERB
#ifdef CONTROL_METADATA_REVERB
                    params_length = (int32_t) ( strlen( item ) + strlen( pValue ) + 2 );
#else
                    params_idx += ( int32_t )( strlen( item ) + strlen( pValue ) + 2 );
#endif
#ifdef DEBUGGING
@@ -1426,13 +1431,27 @@ ivas_error RenderConfigReader_read(
#ifdef CONTROL_METADATA_REVERB
                    if ( strcmp( item, "REVERBFILE" ) == 0 )
                    {
                        /* get correct case file path */
                        /* get correct case reverb configuration file path */
                        sscanf( pTemp + params_idx, "%*[^=] = %[^;];", pValue );
                        if ( ( error = RenderConfigReader_readReverb(pValue, pRenderConfigReader) ) != IVAS_ERR_OK)

                        /* make reverb configuration file path relative to render configuration file path */
                        for ( length = (int32_t) strlen( pRenderConfigPath ) - 1; length >= 0; length-- )
                        {
                            if ( pRenderConfigPath[length] == '\\' || pRenderConfigPath[length] == '/' )
                            {
                                length++;
                                break;
                            }
                        }
                        char *pCombinedName = calloc( length + (int32_t) strlen( pValue ) + 1, sizeof( char ) );
                        strncpy( pCombinedName, pRenderConfigPath, length );
                        strcpy( pCombinedName + length, pValue );

                        if ( ( error = RenderConfigReader_readReverb( pCombinedName, pRenderConfigReader ) ) != IVAS_ERR_OK )
                        {
                            printf( "RenderConfigReader_readReverb(%s) returned %d\n", pValue, error );
                            errorHandler( item, error );
                        }
                        free( pCombinedName );
                    }
                    else
#endif
@@ -1467,7 +1486,7 @@ ivas_error RenderConfigReader_read(
#endif
#endif
#ifdef CONTROL_METADATA_REVERB
                    params_idx += (int32_t) ( strlen( item ) + strlen( pValue ) + 2 );
                    params_idx += params_length;
#endif
                }
                free( pValue );
+1 −0
Original line number Diff line number Diff line
@@ -67,6 +67,7 @@ ivas_error RenderConfigReader_checkValues(
/* Reads a configuration                                                                    */
ivas_error RenderConfigReader_read(
    RenderConfigReader *pRenderConfigReader, /* i  : RenderConfigReader handle              */
    const char *pRenderConfigPath,           /* i  : Renderer configuration file path       */
    IVAS_RENDER_CONFIG_HANDLE hRenderConfig  /* o  : Renderer configuration handle          */
);

+1 −1
Original line number Diff line number Diff line
[general]
directivity = [0.0, 360.0, 0.2512];
reverbFile = rend_config_renderer.dat;
Loading