Commit d03b80a8 authored by vaclav's avatar vaclav
Browse files

enable EXT output in stereo format

parent 8c4eb802
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -157,7 +157,7 @@
/*#define SPLIT_REND_WITH_HEAD_ROT  */                  /* Dlb,FhG: Split Rendering contributions 21 and 35 */

#define FIX_1033_MEMORY_LEAK_OMASA                      /* Nokia / Orange: issue #1033: Memory leak in OMASA to BINAURAL with HRTF with bitrate switching */
#define FIX_1052_SBA_EXT_OUTPUT                         /* VA: issue 1052: Correctly exit the decoder when EXT is used in SBA format */ 
#define FIX_1052_EXT_OUTPUT                             /* issue 1052: define EXT decoder output configuration for all IVAS formats */ 

/* #################### End BE switches ################################## */

+22 −20
Original line number Diff line number Diff line
@@ -1149,7 +1149,15 @@ ivas_error ivas_init_decoder(

    if ( output_config == IVAS_AUDIO_CONFIG_EXTERNAL )
    {
#ifdef FIX_1052_EXT_OUTPUT
        if ( st_ivas->ivas_format == STEREO_FORMAT )
        {
            hDecoderConfig->nchan_out = CPE_CHANNELS;
        }
        else if ( st_ivas->ivas_format == SBA_ISM_FORMAT )
#else
        if ( st_ivas->ivas_format == SBA_ISM_FORMAT )
#endif
        {
            hDecoderConfig->nchan_out = audioCfg2channels( IVAS_AUDIO_CONFIG_HOA3 );
            hDecoderConfig->nchan_out += st_ivas->nchan_ism;
@@ -3056,11 +3064,25 @@ static ivas_error doSanityChecks_IVAS(
    /* Verify stereo output configuration */
    if ( st_ivas->ivas_format == STEREO_FORMAT )
    {
#ifdef FIX_1052_EXT_OUTPUT
        if ( output_config != IVAS_AUDIO_CONFIG_MONO && output_config != IVAS_AUDIO_CONFIG_STEREO && output_config != IVAS_AUDIO_CONFIG_5_1 && output_config != IVAS_AUDIO_CONFIG_7_1 && output_config != IVAS_AUDIO_CONFIG_5_1_2 && output_config != IVAS_AUDIO_CONFIG_5_1_4 && output_config != IVAS_AUDIO_CONFIG_7_1_4 && output_config != IVAS_AUDIO_CONFIG_LS_CUSTOM && output_config != IVAS_AUDIO_CONFIG_EXTERNAL )
#else
        if ( output_config != IVAS_AUDIO_CONFIG_MONO && output_config != IVAS_AUDIO_CONFIG_STEREO && output_config != IVAS_AUDIO_CONFIG_5_1 && output_config != IVAS_AUDIO_CONFIG_7_1 && output_config != IVAS_AUDIO_CONFIG_5_1_2 && output_config != IVAS_AUDIO_CONFIG_5_1_4 && output_config != IVAS_AUDIO_CONFIG_7_1_4 && output_config != IVAS_AUDIO_CONFIG_LS_CUSTOM )
#endif
        {
            return IVAS_ERROR( IVAS_ERR_INVALID_OUTPUT_FORMAT, "Wrong output configuration specified for Stereo!" );
        }
    }
#ifdef FIX_1052_EXT_OUTPUT
    /* Verify output configuration for other formats */
    else
    {
        if ( output_config == IVAS_AUDIO_CONFIG_INVALID )
        {
            return IVAS_ERROR( IVAS_ERR_INVALID_OUTPUT_FORMAT, "Incorrect output configuration specified!" );
        }
    }
#else
    else if ( st_ivas->ivas_format == ISM_FORMAT )
    {
        /* Verify ISM output configuration */
@@ -3072,11 +3094,7 @@ static ivas_error doSanityChecks_IVAS(
    else if ( st_ivas->ivas_format == SBA_FORMAT )
    {
        /* Verify SBA output coniguration */
#ifdef FIX_1052_SBA_EXT_OUTPUT
        if ( output_config == IVAS_AUDIO_CONFIG_INVALID || output_config == IVAS_AUDIO_CONFIG_EXTERNAL )
#else
        if ( output_config == IVAS_AUDIO_CONFIG_INVALID )
#endif
        {
            return IVAS_ERROR( IVAS_ERR_INVALID_OUTPUT_FORMAT, "Incorrect output configuration specified for SBA" );
        }
@@ -3096,22 +3114,6 @@ static ivas_error doSanityChecks_IVAS(
            return IVAS_ERROR( IVAS_ERR_INVALID_OUTPUT_FORMAT, "Incorrect output configuration specified for Multi-channel" );
        }
    }
#ifdef FIX_1052_SBA_EXT_OUTPUT
    else if ( st_ivas->ivas_format == MASA_ISM_FORMAT )
    {
        if ( output_config == IVAS_AUDIO_CONFIG_INVALID )
        {
            return IVAS_ERROR( IVAS_ERR_INVALID_OUTPUT_FORMAT, "Incorrect output configuration specified for OMASA!" );
        }
    }
    else if ( st_ivas->ivas_format == SBA_ISM_FORMAT )
    {
        /* Verify MC output configuration */
        if ( output_config == IVAS_AUDIO_CONFIG_INVALID )
        {
            return IVAS_ERROR( IVAS_ERR_INVALID_OUTPUT_FORMAT, "Incorrect output configuration specified for OSBA!" );
        }
    }
#endif

#ifdef SPLIT_REND_WITH_HEAD_ROT