Commit 8ae69e48 authored by Marek Szczerba's avatar Marek Szczerba
Browse files

Updates for handling both text and binary files

parent 4b8dd830
Loading
Loading
Loading
Loading
Loading
+37 −7
Original line number Diff line number Diff line
@@ -1207,11 +1207,11 @@ static int32_t errorHandler(
            break;
        case ERROR_ITEM_UNKNOWN:
            numErrors++;
            fprintf( stderr, "Unknown variable %s in renderer configuration file.\n\n", badStr );
            fprintf( stderr, "Unexpected variable %s in renderer configuration file.\n\n", badStr );
            break;
        case ERROR_VALUE_INVALID:
            numErrors++;
            fprintf( stderr, "Invalid value %s in renderer configuration file.\n\n", badStr );
            fprintf( stderr, "Unexpected value %s in renderer configuration file.\n\n", badStr );
            break;
        default:
            numErrors++;
@@ -1853,6 +1853,7 @@ ivas_error RenderConfigReader_read(
    int32_t params_length;
    int32_t length;
    uint32_t i, idx;
    uint32_t nFG, nAE;
    char *pToken;
    FREQ_GRID_MODE fgMode;
    float freqHop;
@@ -1942,26 +1943,55 @@ ivas_error RenderConfigReader_read(
                    if ( strcmp( item, "FREQUENCYGRIDCOUNT" ) == 0 )
                    {
                        /* Read the number of frequency grids */
                        if ( !sscanf( pValue, "%u", &pRenderConfigReader->nFG ) )
                        if ( !sscanf( pValue, "%u", &nFG ) )
                        {
                            errorHandler( item, ERROR_VALUE_INVALID );
                            return IVAS_ERR_INVALID_RENDER_CONFIG;
                        }
                        if ( nFG > 0 )
                        {
                            for ( idx = 0; idx < pRenderConfigReader->nFG; idx++ )
                            {
                                free( pRenderConfigReader->pFG[idx].pFc );
                            }
                            free( pRenderConfigReader->pFG );
                            /* Allocate memory for the frequency grids */
                            if ( ( pRenderConfigReader->pFG = (FrequencyGrid *) malloc( pRenderConfigReader->nFG * sizeof( FrequencyGrid ) ) ) == NULL )
                            {
                                return IVAS_ERR_FAILED_ALLOC;
                            }
                            for ( idx = 0; idx < nFG; idx++ )
                            {
                                pRenderConfigReader->pFG[idx].nrBands = 0;
                                pRenderConfigReader->pFG[idx].pFc = NULL;
                            }
                            pRenderConfigReader->nFG = nFG;
                        }
                        roomAcHasFgCount = TRUE;
                    }
                    else if ( strcmp( item, "ACOUSTICENVIRONMENTCOUNT" ) == 0 )
                    {
                        /* Read the number of acoustic environments */
                        if ( !sscanf( pValue, "%u", &pRenderConfigReader->nAE ) )
                        if ( !sscanf( pValue, "%u", &nAE ) )
                        {
                            errorHandler( item, ERROR_VALUE_INVALID );
                            return IVAS_ERR_INVALID_RENDER_CONFIG;
                        }
                        if ( nAE > 0 )
                        {
                            for ( idx = 0; idx < pRenderConfigReader->nAE; idx++ )
                            {
                                free( pRenderConfigReader->pAE[idx].pRT60 );
                                free( pRenderConfigReader->pAE[idx].pDSR );
#ifdef CONTROL_METADATA_EARLY_REFLECTIONS
                                if ( pRenderConfigReader->pAE[idx].pEarlyReflections != NULL )
                                {
                                    free( pRenderConfigReader->pAE[idx].pEarlyReflections->pListenerOrigin );
                                    free( pRenderConfigReader->pAE[idx].pEarlyReflections );
                                }
#endif
                            }
                        }
                        /* Allocate memory for the acoustic environments array */
                        if ( ( pRenderConfigReader->pAE = (AcousticEnv *) malloc( pRenderConfigReader->nAE * sizeof( AcousticEnv ) ) ) == NULL )
                        {