Commit 57e4b9b0 authored by vaclav's avatar vaclav
Browse files

Merge branch '708-aeid-command-line-options-robustness' into 'main'

issue 708: improve AEID command-line robustness

See merge request !1026
parents c032e236 20fee2b4
Loading
Loading
Loading
Loading
Loading
+28 −3
Original line number Diff line number Diff line
@@ -494,11 +494,13 @@ int main(
    }
#endif

    if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputConfig,
                                       arg.tsmEnabled, arg.enable5ms,
    if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputConfig, arg.tsmEnabled, arg.enable5ms,
                                       arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.enableExternalOrientation, arg.orientation_tracking, arg.renderConfigEnabled, arg.Opt_non_diegetic_pan, arg.non_diegetic_pan_gain,
#ifdef FIX_708_DPID_COMMAND_LINE
                                       arg.Opt_dpid_on,
#endif
#ifdef FIX_708_AEID_COMMAND_LINE
                                       arg.acousticEnvironmentId,
#endif
                                       arg.delayCompensationEnabled ) ) != IVAS_ERR_OK )
    {
@@ -696,7 +698,11 @@ int main(
                    goto cleanup;
                }
            }
#ifdef FIX_708_AEID_COMMAND_LINE
            else
#else
            else if ( error != IVAS_ERR_ACOUSTIC_ENVIRONMENT_MISSING )
#endif
            {
                fprintf( stderr, "Failed to get acoustic environment with ID: %d\n\n", arg.acousticEnvironmentId );
                goto cleanup;
@@ -1069,8 +1075,11 @@ static bool parseCmdlIVAS_dec(
    arg->noBadFrameDelay = false;
#endif
#endif

#ifdef FIX_708_AEID_COMMAND_LINE
    arg->acousticEnvironmentId = 65535;
#else
    arg->acousticEnvironmentId = 0;
#endif
    for ( i = 0; i < IVAS_MAX_NUM_OBJECTS; ++i )
    {
#ifdef FIX_730_DPID_NOT_SET_CORRECTLY
@@ -1079,6 +1088,7 @@ static bool parseCmdlIVAS_dec(
        arg->directivityPatternId[i] = 0;
#endif
    }

    /*-----------------------------------------------------------------*
     * Initialization
     *-----------------------------------------------------------------*/
@@ -1448,6 +1458,21 @@ static bool parseCmdlIVAS_dec(
        else if ( strcmp( argv_to_upper, "-AEID" ) == 0 )
        {
            ++i;
#ifdef FIX_708_AEID_COMMAND_LINE
            if ( argc - i <= 4 )
            {
                fprintf( stderr, "Error: Acoustic environment ID not specified!\n\n" );
                usage_dec();
                return false;
            }

            if ( !is_digits_only( argv[i] ) )
            {
                fprintf( stdout, "Error: Invalid acoustic environment ID specified: %s\n\n", argv[i] );
                usage_dec();
                return false;
            }
#endif
            arg->acousticEnvironmentId = (int16_t) atoi( argv[i++] );
        }
        else if ( strcmp( argv_to_upper, "-DPID" ) == 0 )
+12 −0
Original line number Diff line number Diff line
@@ -2581,7 +2581,12 @@ static CmdlnArgs defaultArgs(
#endif
    }

#ifdef FIX_708_AEID_COMMAND_LINE
    args.acousticEnvironmentId = 65535;
#else
    args.acousticEnvironmentId = 0;
#endif

    return args;
}

@@ -2748,6 +2753,13 @@ static void parseOption(
            break;
        case CmdLnOptionId_acousticEnvironmentId:
            assert( numOptionValues == 1 );
#ifdef FIX_708_AEID_COMMAND_LINE
            if ( !is_digits_only( optionValues[0] ) )
            {
                fprintf( stderr, "Invalid acousting environment ID specified: %s\n", optionValues[0] );
                exit( -1 );
            }
#endif
            args->acousticEnvironmentId = (int16_t) strtol( optionValues[0], NULL, 10 );
            break;
        case CmdLnOptionId_syncMdDelay:
+7 −0
Original line number Diff line number Diff line
@@ -78,6 +78,9 @@ typedef enum
    IVAS_ERR_EXT_ORIENTATION_NOT_SUPPORTED,
#ifdef FIX_708_DPID_COMMAND_LINE
    IVAS_ERR_DIRECTIVITY_NOT_SUPPORTED,
#endif
#ifdef FIX_708_AEID_COMMAND_LINE
    IVAS_ERR_ACOUSTIC_ENVIRONMENT_NOT_SUPPORTED,
#endif
    IVAS_ERR_INVALID_HRTF,
    IVAS_ERR_INVALID_INPUT_FORMAT,
@@ -257,6 +260,10 @@ static inline const char *ivas_error_to_string( ivas_error error_code )
#ifdef FIX_708_DPID_COMMAND_LINE
        case IVAS_ERR_DIRECTIVITY_NOT_SUPPORTED:
            return "Directivity not supported";
#endif
#ifdef FIX_708_AEID_COMMAND_LINE
        case IVAS_ERR_ACOUSTIC_ENVIRONMENT_NOT_SUPPORTED:
            return "Acoustic environment not supported";
#endif
        case IVAS_ERR_INVALID_HRTF:
            return "Unsupported HRTF filter set";
+2 −0
Original line number Diff line number Diff line
@@ -168,6 +168,8 @@
#define FIX_786_ERROR_ISM_METADATA_READ                 /* VA: fix error reading past the last line of .csv metadata files */
#define FIX_632_USAN_ERROR_NULL_POINTER                 /* FhG: issue 632 USAN offset to null pointer proto_diffuse_buffer_f in dirac rendering*/
#define FIX_759_CODE_COVERAGE_OSBA                      /* VA: issue 759: remove obsolete code in the OSBA encoder */
#define FIX_708_AEID_COMMAND_LINE                       /* VA: issue 708: improve AEID command-line robustness */


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

+10 −0
Original line number Diff line number Diff line
@@ -3054,6 +3054,16 @@ static ivas_error doSanityChecks_IVAS(
    }
#endif

#ifdef FIX_708_AEID_COMMAND_LINE
    if ( st_ivas->hDecoderConfig->Opt_aeid_on )
    {
        if ( output_config != AUDIO_CONFIG_BINAURAL_ROOM_REVERB )
        {
            return IVAS_ERROR( IVAS_ERR_ACOUSTIC_ENVIRONMENT_NOT_SUPPORTED, "Wrong set-up: Acoustic environment is not supported in this output configuration." );
        }
    }
#endif

    if ( st_ivas->ivas_format == MASA_ISM_FORMAT )
    {
        if ( st_ivas->ism_mode != ISM_MASA_MODE_DISC && output_config == AUDIO_CONFIG_EXTERNAL )
Loading