Commit 0e02fd92 authored by stoutjesdijk's avatar stoutjesdijk 🎧
Browse files

added render config open and init from rom

parent a815f3b7
Loading
Loading
Loading
Loading
+7 −12
Original line number Diff line number Diff line
@@ -588,28 +588,23 @@ int32_t main( int32_t argc, char **argv )
        hMasaMetadata = MasaFileReader_getMetadataHandle( masaReader );
    }

    /* === Configure === */
    if ( ( error = IVAS_REND_ConfigureConfig( hIvasRend, args.trajectoryFile[0] != '\0', args.renderConfigFile[0] != '\0' ) ) != IVAS_ERR_OK )
    {
        exit( -1 );
    }

    if ( args.renderConfigFile[0] != '\0' )
    {
        IVAS_RENDER_CONFIG_DATA renderConfig;
        
        /* sanity check */
/*        if ( args.outConfig.audioConfig != IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM )
        if ( args.outConfig.audioConfig != IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM )
        {
            fprintf( stderr, "\nExternal Renderer Config is supported only when BINAURAL_ROOM is used as output. Exiting. \n" );
            exit( -1 ); // goto cleanup;
        }

        if ( ( error = ivas_render_config_open( &hIvasRend->hRendererConfig ) ) != IVAS_ERR_OK )
        {
            ivas_render_config_open(&renderConfig);
            return error;
        }

        if ( ivas_render_config_init_from_rom( &st->hRendererConfig, st->rendererConfigEnabled ) != IVAS_ERR_OK )
        {
            return IVAS_ERR_INTERNAL_FATAL;
        }
*/
        if ( ( error = IVAS_REND_GetRenderConfig( hIvasRend, &renderConfig ) ) != IVAS_ERR_OK )
        {
            fprintf( stderr, "\nIVAS_DEC_GetRenderConfig failed\n" );
+31 −0
Original line number Diff line number Diff line
@@ -151,7 +151,11 @@ struct IVAS_REND
    IVAS_REND_AudioConfig outputConfig;
    EFAP_WRAPPER efapOutWrapper;
    IVAS_LSSETUP_CUSTOM_STRUCT customLsOut;

    int8_t enableHeadRotation;                                   /* head rotation flag */
    IVAS_REND_HeadRotData headRotData;

    int8_t rendererConfigEnabled;
    RENDER_CONFIG_DATA *hRendererConfig;                         /* Renderer config pointer */
};

@@ -2628,6 +2632,33 @@ ivas_error IVAS_REND_FeedInputObjectMetadata(
    return IVAS_ERR_OK;
}

ivas_error IVAS_REND_ConfigureConfig( IVAS_REND_HANDLE st,
                                bool headRotationEnabled,
                                bool rendererConfigEnabled )
{
    ivas_error error;

    if ( headRotationEnabled )
    {
        st->enableHeadRotation = 1;
    }

    if ( rendererConfigEnabled )
    {
        st->rendererConfigEnabled = 1;
    }
    
    if ( ( error = ivas_render_config_open( &( st->hRendererConfig ) ) ) != IVAS_ERR_OK )
    {
        return error;
    }

    if ( ivas_render_config_init_from_rom( &st->hRendererConfig, st->rendererConfigEnabled ) != IVAS_ERR_OK )
    {
        return IVAS_ERR_INTERNAL_FATAL;
    }

}

int16_t IVAS_REND_GetRenderConfig(
    IVAS_REND_HANDLE hIvasRend,              /* i/o: IVAS decoder handle         */
+6 −0
Original line number Diff line number Diff line
@@ -234,6 +234,12 @@ ivas_error IVAS_REND_FeedInputMasaMetadata(
    void* TODO
);

ivas_error IVAS_REND_ConfigureConfig( 
    IVAS_REND_HANDLE st,                            /* i/o: Renderer handle */
    bool headRotationEnabled,                       /* i  : enable head rotation for binaural output, ignored for other output formats  */
    bool rendererConfigEnabled                      /* i  : flag indicating if a renderer configuration file was supplied               */
);

int16_t IVAS_REND_GetRenderConfig(
    IVAS_REND_HANDLE hIvasRend,              /* i/o: IVAS decoder handle         */
    const IVAS_RENDER_CONFIG_HANDLE hRCout /* o  : Render configuration handle */