Commit 12778592 authored by Sandesh Venkatesh's avatar Sandesh Venkatesh
Browse files

Merge branch 'DISCLAIMER_UPDATE_BASOP' into 'main'

Add disclaimer for external renderer + Add info about IVAS reference version to BASOP code

See merge request !895
parents 76bdb538 87550f51
Loading
Loading
Loading
Loading
Loading
+48 −0
Original line number Diff line number Diff line
@@ -655,6 +655,10 @@ int main(
        lfeRoutingConfigs[i] = NULL;
    }

#ifdef FIX_DISCLAIMER
    IVAS_REND_PrintDisclaimer();

#endif
    CmdlnArgs args = parseCmdlnArgs( argc, argv );

    if ( args.nonDiegeticPan && !( ( args.inConfig.numAudioObjects == 0 && args.inConfig.multiChannelBuses[0].audioConfig == IVAS_AUDIO_CONFIG_MONO ) ||
@@ -816,6 +820,50 @@ int main(
        exit( -1 );
    }

#ifdef FIX_DISCLAIMER
    fprintf( stdout, "Input audio file:       %s\n", args.inputFilePath );
    fprintf( stdout, "Output audio file:      %s\n\n", args.outputFilePath );

    if ( args.inConfig.numAudioObjects > 0 )
    {
        if ( args.inConfig.numAudioObjects == 1 )
        {
            IVAS_REND_PrintInputConfig( IVAS_AUDIO_CONFIG_ISM1 );
        }
        else if ( args.inConfig.numAudioObjects == 2 )
        {
            IVAS_REND_PrintInputConfig( IVAS_AUDIO_CONFIG_ISM2 );
        }
        else if ( args.inConfig.numAudioObjects == 3 )
        {
            IVAS_REND_PrintInputConfig( IVAS_AUDIO_CONFIG_ISM3 );
        }
        else if ( args.inConfig.numAudioObjects == 4 )
        {
            IVAS_REND_PrintInputConfig( IVAS_AUDIO_CONFIG_ISM4 );
        }
    }
    for ( i = 0; i < args.inConfig.numMultiChannelBuses; i++ )
    {
        IVAS_REND_PrintInputConfig( args.inConfig.multiChannelBuses[i].audioConfig );
    }
    for ( i = 0; i < args.inConfig.numMasaBuses; i++ )
    {
        IVAS_REND_PrintInputConfig( args.inConfig.masaBuses[i].audioConfig );
    }
    for ( i = 0; i < args.inConfig.numAmbisonicsBuses; i++ )
    {
        IVAS_REND_PrintInputConfig( args.inConfig.ambisonicsBuses[i].audioConfig );
    }

    if ( ( error = IVAS_REND_PrintConfig( hIvasRend ) ) != IVAS_ERR_OK )
    {
        fprintf( stderr, "\n IVAS_REND_PrintConfig failed: %s\n\n", ivas_error_to_string( error ) );
        // goto cleanup;
        exit( -1 );
    }

#endif
    /* === Configure === */
    if ( ( error = IVAS_REND_InitConfig( hIvasRend, args.outConfig.audioConfig ) ) != IVAS_ERR_OK )
    {
+4 −0
Original line number Diff line number Diff line
@@ -44,7 +44,11 @@ int16_t print_disclaimer( FILE *fPtr )
{

    fprintf( fPtr, "\n==================================================================================================\n" );
#ifdef FIX_DISCLAIMER
    fprintf( fPtr, " IVAS Codec BASOP Baseline\n" );
#else
    fprintf( fPtr, " IVAS Codec Baseline\n" );
#endif
    fprintf( fPtr, " \n" );
    fprintf( fPtr, " Based on EVS Codec (Floating Point) 3GPP TS26.443 Nov 04, 2021,\n" );
    fprintf( fPtr, " Version 12.14.0 / 13.10.0 / 14.6.0 / 15.4.0 / 16.3.0\n" );
+1 −0
Original line number Diff line number Diff line
@@ -116,4 +116,5 @@
#define FIX_ISSUE_1157                          /* Ittiam: Fix for Issue 1157: Encoder crash for Stereo at 48/64kbps DTX on/off in kernel_switch_trafo_fx() */
#define FIX_ISSUE_1152                          /* Ittiam: Fix for issue 1152: Assertion error observed in evs_enc_fx (with option stereo_dmx_evs) from find_tilt_fx function*/
#define FIX_ISSUE_1156                          /* Ittiam: Fix for Issue 1156: Encoder crash for Stereo at 32kbps in SWB_BWE_encoding_ivas_fx() */
#define FIX_DISCLAIMER                             /* VA: Add disclaimer for external renderer + Add info about IVAS reference version (FLP issue 1225) */
#endif
+7 −2
Original line number Diff line number Diff line
@@ -44,6 +44,11 @@
#include "jbm_jb4sb.h"
#include "jbm_pcmdsp_apa.h"
#include "jbm_pcmdsp_fifo.h"
#include <math.h>
#include <assert.h>
#ifndef FIX_DISCLAIMER
#include <string.h>
#endif
#include "wmc_auto.h"

#define INV_1000_Q31 2147484 /*1/1000 IN Q31*/
@@ -3058,7 +3063,7 @@ const char *IVAS_DEC_GetErrorMessage(
    return ivas_error_to_string( error );
}


#ifndef FIX_DISCLAIMER
/*---------------------------------------------------------------------*
 * get_channel_config()
 *
@@ -3136,7 +3141,7 @@ static ivas_error get_channel_config(

    return IVAS_ERR_OK;
}

#endif

/*---------------------------------------------------------------------*
 * printConfigInfo_dec( )
+117 −0
Original line number Diff line number Diff line
@@ -2,6 +2,10 @@
#include "ivas_prot_fx.h"
#include "ivas_prot.h"
#include "ivas_prot_rend.h"
#ifdef FIX_DISCLAIMER
#include <string.h>
#endif

Word16 ivas_get_nchan_buffers_dec_ivas_fx(
    Decoder_Struct *st_ivas,         /* i/o: IVAS decoder structure                */
    const Word16 sba_analysis_order, /* i  : SBA order evaluated in SBA decoder    */
@@ -157,3 +161,116 @@ Word16 ivas_get_nchan_buffers_dec_ivas_fx(

    return nchan_out_buff;
}

#ifdef FIX_DISCLAIMER
/*---------------------------------------------------------------------*
 * get_channel_config()
 *
 * Gets a str related to audio configuration
 *---------------------------------------------------------------------*/

ivas_error get_channel_config(
    const AUDIO_CONFIG config, /* i  : audio configuration                  */
    Word8 *str                 /* o  : string with the configuration name   */
)
{
    IF( EQ_16( (Word16) config, IVAS_AUDIO_CONFIG_MONO ) )
    {
        strcpy( (char *) str, "Mono" );
    }
    ELSE IF( EQ_16( (Word16) config, IVAS_AUDIO_CONFIG_STEREO ) )
    {
        strcpy( (char *) str, "Stereo" );
    }
    ELSE IF( EQ_16( (Word16) config, IVAS_AUDIO_CONFIG_ISM1 ) )
    {
        strcpy( (char *) str, "Object-based audio (1 object)" );
    }
    ELSE IF( EQ_16( (Word16) config, IVAS_AUDIO_CONFIG_ISM2 ) )
    {
        strcpy( (char *) str, "Object-based audio (2 objects)" );
    }
    ELSE IF( EQ_16( (Word16) config, IVAS_AUDIO_CONFIG_ISM3 ) )
    {
        strcpy( (char *) str, "Object-based audio (3 objects)" );
    }
    ELSE IF( EQ_16( (Word16) config, IVAS_AUDIO_CONFIG_ISM4 ) )
    {
        strcpy( (char *) str, "Object-based audio (4 objects)" );
    }
    ELSE IF( EQ_16( (Word16) config, IVAS_AUDIO_CONFIG_5_1 ) )
    {
        strcpy( (char *) str, "Multichannel 5.1 (CICP6)" );
    }
    ELSE IF( EQ_16( (Word16) config, IVAS_AUDIO_CONFIG_7_1 ) )
    {
        strcpy( (char *) str, "Multichannel 7.1 (CICP12)" );
    }
    ELSE IF( EQ_16( (Word16) config, IVAS_AUDIO_CONFIG_5_1_2 ) )
    {
        strcpy( (char *) str, "Multichannel 5.1+2 (CICP14)" );
    }
    ELSE IF( EQ_16( (Word16) config, IVAS_AUDIO_CONFIG_5_1_4 ) )
    {
        strcpy( (char *) str, "Multichannel 5.1+4 (CICP16)" );
    }
    ELSE IF( EQ_16( (Word16) config, IVAS_AUDIO_CONFIG_7_1_4 ) )
    {
        strcpy( (char *) str, "Multichannel 7.1+4 (CICP19)" );
    }
    ELSE IF( EQ_16( (Word16) config, IVAS_AUDIO_CONFIG_LS_CUSTOM ) )
    {
        strcpy( (char *) str, "Multichannel (custom loudspeaker layout)" );
    }
    ELSE IF( EQ_16( (Word16) config, IVAS_AUDIO_CONFIG_MASA1 ) )
    {
        strcpy( (char *) str, "Metadata-Assisted Spatial Audio mono (MASA1)" );
    }
    ELSE IF( EQ_16( (Word16) config, IVAS_AUDIO_CONFIG_MASA2 ) )
    {
        strcpy( (char *) str, "Metadata-Assisted Spatial Audio stereo (MASA2)" );
    }
    ELSE IF( EQ_16( (Word16) config, IVAS_AUDIO_CONFIG_FOA ) )
    {
        strcpy( (char *) str, "Ambisonics: First Order (FOA)" );
    }
    ELSE IF( EQ_16( (Word16) config, IVAS_AUDIO_CONFIG_HOA2 ) )
    {
        strcpy( (char *) str, "Ambisonics: Second Order (HOA2)" );
    }
    ELSE IF( EQ_16( (Word16) config, IVAS_AUDIO_CONFIG_HOA3 ) )
    {
        strcpy( (char *) str, "Ambisonics: Third Order (HOA3)" );
    }
    ELSE IF( EQ_16( (Word16) config, IVAS_AUDIO_CONFIG_BINAURAL ) )
    {
        strcpy( (char *) str, "Binaural: no room" );
    }
    ELSE IF( EQ_16( (Word16) config, IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR ) )
    {
        strcpy( (char *) str, "Binaural: room with impulse responses" );
    }
    ELSE IF( EQ_16( (Word16) config, IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) )
    {
        strcpy( (char *) str, "Binaural: room with reverb" );
    }
    ELSE IF( EQ_16( (Word16) config, IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED ) )
    {
        strcpy( (char *) str, "BINAURAL_SPLIT_CODED" );
    }
    ELSE IF( EQ_16( (Word16) config, IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) )
    {
        strcpy( (char *) str, "Binaural_Split_PCM" );
    }
    ELSE IF( EQ_16( (Word16) config, IVAS_AUDIO_CONFIG_EXTERNAL ) )
    {
        strcpy( (char *) str, "External renderer" );
    }
    ELSE
    {
        return IVAS_ERROR( IVAS_ERR_INVALID_OUTPUT_FORMAT, "Error: Incorrect Input/Output Configuration" );
    }

    return IVAS_ERR_OK;
}
#endif
Loading