Commit ce4c94a5 authored by vaclav's avatar vaclav
Browse files

- Merge remote-tracking branch 'remotes/origin/main' into...

- Merge remote-tracking branch 'remotes/origin/main' into 910-paramupmx-mc-binaural-decoding-uses-20ms-frame-length
parents 50d7aea3 02dd1728
Loading
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -1824,22 +1824,26 @@ coverage-test-on-main-scheduled:
    - python3 tests/create_short_testvectors.py
    - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v -n auto --update_ref 1 -m create_ref --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec
    - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v -n auto --update_ref 1 -m create_ref_part2 --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec
    - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR/test_param_file.py -v -n auto --update_ref 1 -m create_ref --param_file scripts/config/self_test_evs.prm --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec
    - bash ci/smoke_test.sh coverage
    - python3 -m pytest -q -n auto tests/renderer/test_renderer.py --create_ref
    - python3 -m pytest -q -n auto tests/renderer/test_renderer.py --create_cut    
    - lcov -c -d obj -o coverage_stv.info # extract coverage of short test vectors here
    - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR/test_param_file.py -v -n auto --update_ref 1 -m create_ref --param_file scripts/config/self_test_evs.prm --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec
    - bash ci/smoke_test.sh coverage
    - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR/test_param_file.py -v -n auto --update_ref 1 -m create_ref --param_file scripts/config/self_test_ltv.prm --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec
    - bash ci/ivas_voip_be_test.sh coverage
    - lcov -c -d obj -o coverage.info
    - commit_sha=$(git rev-parse HEAD)
    - genhtml coverage.info -o coverage -t "Coverage on main @ $commit_sha"
    - genhtml coverage_stv.info -o coverage_stv -t "Coverage on main -- short test vectors @ $commit_sha"
  artifacts:
    name: "main-coverage-sha-$CI_COMMIT_SHORT_SHA"
    when: always
    expire_in: 1 week
    paths:
      - coverage.info
      - coverage_stv.info
      - coverage
      - coverage_stv

# ---------------------------------------------------------------
# Complexity measurement jobs
+1 −2
Original line number Diff line number Diff line
@@ -208,8 +208,7 @@ endif()

if(INCLUDE_SPLIT)
  if(NOT WMOPS)
  file(GLOB unitTestIvasLc3plusSrcs "scripts/split_rendering/lc3plus/*.c")
  add_executable(ivas_lc3plus_unit_test ${unitTestIvasLc3plusSrcs})
  add_executable(ivas_lc3plus_unit_test ${CMAKE_SOURCE_DIR}/scripts/split_rendering/lc3plus/ivas_lc3plus_unit_test.c)
  target_link_libraries(ivas_lc3plus_unit_test lib_rend lib_dec lib_util lib_com lib_debug)
  endif()
endif()
+2 −141
Original line number Diff line number Diff line
@@ -129,11 +129,7 @@ typedef struct
#endif
    IVAS_DEC_COMPLEXITY_LEVEL complexityLevel;
    bool tsmEnabled;
#ifndef NONBE_UNIFIED_DECODING_PATHS
    bool enable5ms;
#else
    IVAS_RENDER_FRAMESIZE renderFramesize;
#endif
#ifdef DEBUGGING
    IVAS_DEC_FORCED_REND_MODE forcedRendMode;
#ifdef DEBUG_FOA_AGC
@@ -163,11 +159,7 @@ static ivas_error decodeG192( DecArguments arg, BS_READER_HANDLE hBsReader, RotF
#else
static ivas_error decodeG192( DecArguments arg, BS_READER_HANDLE hBsReader, RotFileReader *headRotReader, RotFileReader *externalOrientationFileReader, RotFileReader *refRotReader, Vector3PairFileReader *referenceVectorReader, IVAS_DEC_HANDLE hIvasDec, int16_t *pcmBuf );
#endif
#ifndef NONBE_UNIFIED_DECODING_PATHS
static ivas_error decodeVoIP( DecArguments arg, BS_READER_HANDLE hBsReader, IVAS_DEC_HANDLE hIvasDec );
#else
static ivas_error decodeVoIP( DecArguments arg, BS_READER_HANDLE hBsReader, RotFileReader *headRotReader, RotFileReader *externalOrientationFileReader, RotFileReader *refRotReader, Vector3PairFileReader *referenceVectorReader, IVAS_DEC_HANDLE hIvasDec );
#endif

#ifdef DEBUGGING
static ivas_error printBitstreamInfoVoip( DecArguments arg, BS_READER_HANDLE hBsReader, IVAS_DEC_HANDLE hIvasDec );
@@ -203,9 +195,7 @@ int main(
    Vector3PairFileReader *referenceVectorReader = NULL;
    RenderConfigReader *renderConfigReader = NULL;
    int16_t *pcmBuf = NULL;
#ifdef NONBE_UNIFIED_DECODING_PATHS
    IVAS_RENDER_FRAMESIZE asked_frame_size;
#endif
#ifdef DEBUGGING
    int32_t noClipping;
    int32_t cnt_frames_limited;
@@ -438,20 +428,14 @@ int main(
     * Configure the decoder
     *------------------------------------------------------------------------------------------*/

#ifndef NONBE_UNIFIED_DECODING_PATHS
    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, arg.Opt_dpid_on, arg.acousticEnvironmentId, arg.delayCompensationEnabled ) ) != IVAS_ERR_OK )
#else
    asked_frame_size = arg.renderFramesize;
    if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputConfig, arg.tsmEnabled, arg.renderFramesize, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.enableExternalOrientation, arg.orientation_tracking, arg.renderConfigEnabled, arg.Opt_non_diegetic_pan, arg.non_diegetic_pan_gain,
                                       arg.Opt_dpid_on, arg.acousticEnvironmentId, arg.delayCompensationEnabled ) ) != IVAS_ERR_OK )
#endif

    {
        fprintf( stderr, "\nConfigure failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) );
        goto cleanup;
    }
#ifdef NONBE_UNIFIED_DECODING_PATHS
    if ( ( error = IVAS_DEC_GetRenderFramesize( hIvasDec, &arg.renderFramesize ) ) != IVAS_ERR_OK )
    {
        fprintf( stderr, "\nConfigure failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) );
@@ -462,7 +446,6 @@ int main(
    {
        fprintf( stderr, "\nChanged render framesize, only 20ms are allowed for decoding to EXT!\n" );
    }
#endif

    /*------------------------------------------------------------------------------------------*
     * Configure Split rendering
@@ -471,16 +454,13 @@ int main(
#ifdef SPLIT_REND_WITH_HEAD_ROT
    if ( arg.outputConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED || arg.outputConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM )
    {
#ifdef NONBE_UNIFIED_DECODING_PATHS
        asked_frame_size = arg.renderFramesize;
#endif
        if ( ( error = IVAS_DEC_EnableSplitRendering( hIvasDec ) ) != IVAS_ERR_OK )
        {
            fprintf( stderr, "\nConfigure failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) );
            goto cleanup;
        }

#ifdef NONBE_UNIFIED_DECODING_PATHS
        if ( ( error = IVAS_DEC_GetRenderFramesize( hIvasDec, &arg.renderFramesize ) ) != IVAS_ERR_OK )
        {
            fprintf( stderr, "\nConfigure failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) );
@@ -491,7 +471,6 @@ int main(
        {
            fprintf( stderr, "\nChanged render framesize, only 20ms are allowed for split rendering!\n" );
        }
#endif

        arg.enableHeadRotation = true;
    }
@@ -646,35 +625,18 @@ int main(
        }

#ifdef SPLIT_REND_WITH_HEAD_ROT
#ifdef NONBE_UNIFIED_DECODING_PATHS
        if ( arg.renderFramesize == IVAS_RENDER_FRAMESIZE_5MS && ( renderConfig.split_rend_config.poseCorrectionMode == IVAS_SPLIT_REND_POSE_CORRECTION_MODE_NONE ||
                                                                   renderConfig.split_rend_config.dof == 0 ) )
#else
        if ( arg.enable5ms && ( renderConfig.split_rend_config.poseCorrectionMode == IVAS_SPLIT_REND_POSE_CORRECTION_MODE_NONE ||
                                renderConfig.split_rend_config.dof == 0 ) )
#endif
        {
            /*TODO : needs to be refined as this wont work with LCLD codec*/
#ifdef NONBE_UNIFIED_DECODING_PATHS
            arg.renderFramesize = IVAS_RENDER_FRAMESIZE_5MS;
#else
            arg.enable5ms = true;
#endif
        }
        else
        {
#ifdef NONBE_UNIFIED_DECODING_PATHS
            arg.renderFramesize = IVAS_RENDER_FRAMESIZE_20MS;
#else
            arg.enable5ms = true;
#endif
        }

#ifdef NONBE_UNIFIED_DECODING_PATHS
        if ( ( error = IVAS_DEC_SetRenderFramesize( hIvasDec, arg.renderFramesize ) ) != IVAS_ERR_OK )
#else
        if ( ( error = IVAS_DEC_Set5msFlag( hIvasDec, arg.enable5ms ) ) != IVAS_ERR_OK )
#endif
        {
            return error;
        }
@@ -819,11 +781,7 @@ int main(

    if ( arg.voipMode )
    {
#ifdef NONBE_UNIFIED_DECODING_PATHS
        error = decodeVoIP( arg, hBsReader, headRotReader, externalOrientationFileReader, refRotReader, referenceVectorReader, hIvasDec );
#else
        error = decodeVoIP( arg, hBsReader, hIvasDec );
#endif
    }
    else
    {
@@ -1077,11 +1035,7 @@ static bool parseCmdlIVAS_dec(
    arg->Opt_non_diegetic_pan = 0;
    arg->non_diegetic_pan_gain = 0.f;
    arg->tsmEnabled = false;
#ifndef NONBE_UNIFIED_DECODING_PATHS
    arg->enable5ms = false;
#else
    arg->renderFramesize = IVAS_RENDER_FRAMESIZE_20MS;
#endif
#ifdef DEBUGGING
#ifdef VARIABLE_SPEED_DECODING
    arg->tsmScale = 100;
@@ -1225,9 +1179,6 @@ static bool parseCmdlIVAS_dec(
            i++;
            int32_t tmp = 100;
            arg->tsmEnabled = true;
#ifndef NONBE_UNIFIED_DECODING_PATHS
            arg->enable5ms = true;
#endif
            if ( i < argc - 3 )
            {
                if ( !is_digits_only( argv[i] ) )
@@ -1276,13 +1227,6 @@ static bool parseCmdlIVAS_dec(
            arg->headrotTrajFileName = argv[i];
            i++;
        }
#ifndef NONBE_UNIFIED_DECODING_PATHS
        else if ( strcmp( argv_to_upper, "-FR5" ) == 0 )
        {
            arg->enable5ms = true;
            i++;
        }
#else
        else if ( strcmp( argv_to_upper, "-FR" ) == 0 )
        {
            int32_t tmp;
@@ -1316,7 +1260,6 @@ static bool parseCmdlIVAS_dec(
                }
            }
        }
#endif
        else if ( strcmp( argv_to_upper, "-OTR" ) == 0 )
        {

@@ -1623,13 +1566,6 @@ static bool parseCmdlIVAS_dec(
        return false;
    }

#ifndef NONBE_UNIFIED_DECODING_PATHS
    if ( ( !arg->enableHeadRotation ) && ( !arg->enableExternalOrientation ) && ( !arg->tsmEnabled ) )
    {
        arg->enable5ms = false;
    }

#endif
    return true;
}

@@ -1679,11 +1615,7 @@ static void usage_dec( void )
    fprintf( stdout, "                      50 <= fac <= 150; fac<100 faster, fac>100 slower\n" );
#endif
#endif
#ifndef NONBE_UNIFIED_DECODING_PATHS
    fprintf( stdout, "-fr5                : option to perform rendering + head-tracking with 5ms frame size\n" );
#else
    fprintf( stdout, "-fr L               : render frame size in ms L=(5,10,20), default is 20)\n" );
#endif
    fprintf( stdout, "-fec_cfg_file       : Optimal channel aware configuration computed by the JBM   \n" );
    fprintf( stdout, "                      as described in Section 6.3.1 of TS26.448. The output is \n" );
    fprintf( stdout, "                      written into a .txt file. Each line contains the FER indicator \n" );
@@ -1764,11 +1696,7 @@ static ivas_error initOnFirstGoodFrame(
    const DecArguments arg,            /* i  : */
    const int16_t numInitialBadFrames, /* i  : */
#ifdef SPLIT_REND_WITH_HEAD_ROT
#ifdef NONBE_UNIFIED_DECODING_PATHS
    int16_t *numOutSamples, /* i/o: */
#else
    uint16_t *numOutSamples, /* i/o: */
#endif
    int16_t *vec_pos_len,   /* i/o: */
#else
    const uint16_t numOutSamples, /* i  : */
@@ -2011,15 +1939,11 @@ static ivas_error initOnFirstGoodFrame(
#ifdef SPLIT_REND_WITH_HEAD_ROT
    if ( *splitRendWriter != NULL )
    {
#ifndef NONBE_UNIFIED_DECODING_PATHS
        int16_t enable5ms;
#endif
        if ( numOutSamples == NULL || vec_pos_len == NULL )
        {
            return IVAS_ERR_UNEXPECTED_NULL_POINTER;
        }

#ifdef NONBE_UNIFIED_DECODING_PATHS
        /* real setting of the 5ms mode for split rendering is only known after the decoded first good frame, reset the variables needed in the main decoding loop accordingly here*/
        if ( ( error = IVAS_DEC_GetRenderFramesizeSamples( hIvasDec, numOutSamples ) ) != IVAS_ERR_OK )
        {
@@ -2031,24 +1955,6 @@ static ivas_error initOnFirstGoodFrame(
            fprintf( stderr, "\nError getting render frame size in samples\n" );
            return error;
        }
#else
        if ( ( error = IVAS_DEC_Get5msFlag( hIvasDec, &enable5ms ) ) != IVAS_ERR_OK )
        {
            return error;
        }

        /* real setting of the 5ms mode for split rendering is only known after the decoded first good frame, reset the variables needed in the main decoding loop accordingly here*/
        if ( enable5ms )
        {
            *numOutSamples = (int16_t) ( arg.output_Fs / 1000 * HEADROTATION_FETCH_FRAMESIZE_MS );
            *vec_pos_len = IVAS_MAX_PARAM_SPATIAL_SUBFRAMES;
        }
        else
        {
            *numOutSamples = (int16_t) ( arg.output_Fs / 1000 * DEFAULT_FETCH_FRAMESIZE_MS );
            *vec_pos_len = 1;
        }
#endif
    }
#endif

@@ -2090,11 +1996,7 @@ static ivas_error decodeG192(
    int16_t nOutChannels = 0;
    int16_t delayNumSamples = -1;
    int16_t delayNumSamples_orig[3];
#if defined( SPLIT_REND_WITH_HEAD_ROT ) && !defined( NONBE_UNIFIED_DECODING_PATHS )
    uint16_t nOutSamples = 0;
#else
    int16_t nOutSamples = 0;
#endif
    int32_t delayTimeScale = 0;
    ivas_error error = IVAS_ERR_UNKNOWN;
    uint16_t numObj = 0;
@@ -2143,7 +2045,6 @@ static ivas_error decodeG192(
    nSamplesAvailableNext = 0;

    vec_pos_update = 0;
#ifdef NONBE_UNIFIED_DECODING_PATHS
    if ( ( error = IVAS_DEC_GetRenderFramesizeSamples( hIvasDec, &nOutSamples ) ) != IVAS_ERR_OK )
    {
        fprintf( stderr, "\nError getting render frame size in samples\n" );
@@ -2154,18 +2055,6 @@ static ivas_error decodeG192(
        fprintf( stderr, "\nError getting render frame size in samples\n" );
        return error;
    }
#else
    if ( arg.enableHeadRotation && arg.enable5ms )
    {
        nOutSamples = (int16_t) ( arg.output_Fs / 1000 * HEADROTATION_FETCH_FRAMESIZE_MS );
        vec_pos_len = IVAS_MAX_PARAM_SPATIAL_SUBFRAMES;
    }
    else
    {
        nOutSamples = (int16_t) ( arg.output_Fs / 1000 * DEFAULT_FETCH_FRAMESIZE_MS );
        vec_pos_len = 1;
    }
#endif

#ifdef DEBUGGING
#ifdef VARIABLE_SPEED_DECODING
@@ -2249,22 +2138,12 @@ static ivas_error decodeG192(
            }
        }

#ifndef NONBE_UNIFIED_DECODING_PATHS
        int16_t enable5ms, num_subframes;
        if ( ( error = IVAS_DEC_Get5msFlag( hIvasDec, &enable5ms ) ) != IVAS_ERR_OK )
        {
            return error;
        }
        arg.enable5ms = enable5ms;
        num_subframes = ( arg.enable5ms ) ? 1 : IVAS_MAX_PARAM_SPATIAL_SUBFRAMES;
#else
        int16_t num_subframes;
        if ( ( error = IVAS_DEC_GetNumOrientationSubframes( hIvasDec, &num_subframes ) ) != IVAS_ERR_OK )
        {
            fprintf( stderr, "\nIVAS_DEC_GetNumOrientationSubframes failed: \n" );
            goto cleanup;
        }
#endif
        /* Head-tracking input simulation */
        /* Head-tracking input simulation */
        if ( arg.enableHeadRotation )
@@ -2922,12 +2801,10 @@ static ivas_error writeJbmTraceFileFrameWrapper( const void *data, void *writer
static ivas_error decodeVoIP(
    DecArguments arg,
    BS_READER_HANDLE hBsReader,
#ifdef NONBE_UNIFIED_DECODING_PATHS
    RotFileReader *headRotReader,
    RotFileReader *externalOrientationFileReader,
    RotFileReader *refRotReader,
    Vector3PairFileReader *referenceVectorReader,
#endif
    IVAS_DEC_HANDLE hIvasDec )
{
    bool decodingFailed = true; /* Assume failure until cleanup is reached without errors */
@@ -2970,13 +2847,10 @@ static ivas_error decodeVoIP(

    IVAS_DEC_BS_FORMAT bsFormat = IVAS_DEC_BS_UNKOWN;
    IsmFileWriter *ismWriters[IVAS_MAX_NUM_OBJECTS];
#ifdef NONBE_UNIFIED_DECODING_PATHS
    IVAS_VECTOR3 Pos[IVAS_MAX_PARAM_SPATIAL_SUBFRAMES] = { { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } };
    int16_t vec_pos_update, vec_pos_len;
    int16_t nOutSamples = 0;
#endif

#ifdef NONBE_UNIFIED_DECODING_PATHS
    vec_pos_update = 0;
    if ( ( error = IVAS_DEC_GetRenderFramesizeMs( hIvasDec, &systemTimeInc_ms ) ) != IVAS_ERR_OK )
    {
@@ -2993,7 +2867,6 @@ static ivas_error decodeVoIP(
        fprintf( stderr, "\nError getting render frame size in samples\n" );
        return error;
    }
#endif

    for ( i = 0; i < IVAS_MAX_NUM_OBJECTS; ++i )
    {
@@ -3094,16 +2967,7 @@ static ivas_error decodeVoIP(

    while ( 1 )
    {
#ifndef NONBE_UNIFIED_DECODING_PATHS
#if defined( SPLIT_REND_WITH_HEAD_ROT )
        uint16_t nOutSamples = 0;
#else
        int16_t nOutSamples = 0;
#endif
        nOutSamples = (int16_t) ( arg.output_Fs / 1000 * JBM_FRONTEND_FETCH_FRAMESIZE_MS );
#endif

#ifdef NONBE_UNIFIED_DECODING_PATHS
        /* reference vector */
        if ( arg.enableReferenceVectorTracking && vec_pos_update == 0 )
        {
@@ -3222,7 +3086,6 @@ static ivas_error decodeVoIP(
                }
            }
        }
#endif

        /* read all packets with a receive time smaller than the system time */
        while ( nextPacketRcvTime_ms <= systemTime_ms )
@@ -3411,9 +3274,7 @@ static ivas_error decodeVoIP(
        {
            fprintf( stdout, "%-8d\b\b\b\b\b\b\b\b", frame );
        }
#ifdef NONBE_UNIFIED_DECODING_PATHS
        vec_pos_update = ( vec_pos_update + 1 ) % vec_pos_len;
#endif
        frame++;
        systemTime_ms += systemTimeInc_ms;

+4 −47
Original line number Diff line number Diff line
@@ -187,11 +187,7 @@ typedef struct
    bool lfeCustomRoutingEnabled;
    char inLfePanningMatrixFile[RENDERER_MAX_CLI_ARG_LENGTH];
    float syncMdDelay;
#ifdef NONBE_UNIFIED_DECODING_PATHS
    IVAS_RENDER_FRAMESIZE render_framesize;
#else
    bool framing_5ms;
#endif
    uint16_t directivityPatternId[RENDERER_MAX_ISM_INPUTS];
    uint16_t acousticEnvironmentId;
} CmdlnArgs;
@@ -223,11 +219,7 @@ typedef enum
#endif
    CmdLnOptionId_referenceVectorFile,
    CmdLnOptionId_exteriorOrientationFile,
#ifdef NONBE_UNIFIED_DECODING_PATHS
    CmdLnOptionId_framing,
#else
    CmdLnOptionId_framing5ms,
#endif
    CmdLnOptionId_syncMdDelay,
    CmdLnOptionId_directivityPatternId,
    CmdLnOptionId_acousticEnvironmentId
@@ -336,7 +328,11 @@ static const CmdLnParser_Option cliOptions[] = {
      .description = "LFE panning matrix. File (CSV table) containing a matrix of dimensions [ num_input_lfe x num_output_channels ] with elements specifying linear routing gain (like --gain, -g). \nIf specified, overrides the output LFE position option and the default behavior which attempts to map input to output LFE channel(s)" },
    {
        .id = CmdLnOptionId_noDelayCmp,
#ifdef FIX_929_RENDERER_CMDL
        .match = "no_delay_compensation",
#else
        .match = "no_delay_comparison",
#endif
        .matchShort = "no_delay_cmp",
        .description = "[flag] Turn off delay compensation",
    },
@@ -376,21 +372,12 @@ static const CmdLnParser_Option cliOptions[] = {
        .matchShort = "exof",
        .description = "External orientation trajectory file for simulation of external orientations",
    },
#ifdef NONBE_UNIFIED_DECODING_PATHS
    {
        .id = CmdLnOptionId_framing,
        .match = "framing",
        .matchShort = "fr",
        .description = "Set Render audio framing.",
    },
#else
    {
        .id = CmdLnOptionId_framing5ms,
        .match = "framing_5ms",
        .matchShort = "fr5",
        .description = "Render audio with 5 ms framing.",
    },
#endif
    {
        .id = CmdLnOptionId_syncMdDelay,
        .match = "sync_md_delay",
@@ -1016,17 +1003,9 @@ int main(
#ifdef SPLIT_REND_WITH_HEAD_ROT
    }
#endif
#ifdef NONBE_UNIFIED_DECODING_PATHS
    const int16_t frameSize_smpls = (int16_t) ( ( args.render_framesize ) * args.sampleRate * 5 / ( 1000 ) );
#else
    const int16_t frameSize_smpls = (int16_t) ( ( args.framing_5ms ? 5 : 20 ) * args.sampleRate / 1000 );
#endif

#ifdef NONBE_UNIFIED_DECODING_PATHS
    if ( ( error = IVAS_REND_Open( &hIvasRend, args.sampleRate, args.outConfig.audioConfig, args.nonDiegeticPan, args.nonDiegeticPanGain, (int16_t) args.render_framesize ) ) != IVAS_ERR_OK )
#else
    if ( ( error = IVAS_REND_Open( &hIvasRend, args.sampleRate, args.outConfig.audioConfig, args.nonDiegeticPan, args.nonDiegeticPanGain, ( args.framing_5ms ) ? 1 : 4 ) ) != IVAS_ERR_OK )
#endif
    {
        fprintf( stderr, "Error opening renderer handle: %s\n", ivas_error_to_string( error ) );
        exit( -1 );
@@ -1521,11 +1500,7 @@ int main(
    {
        int16_t num_in_channels;
        num_in_channels = inBuffer.config.numChannels;
#ifdef NONBE_UNIFIED_DECODING_PATHS
        const bool isCurrentFrameMultipleOf20ms = frame % ( 4 / args.render_framesize ) == 0;
#else
        const bool isCurrentFrameMultipleOf20ms = !args.framing_5ms || frame % 4 == 0;
#endif

#ifdef SPLIT_REND_WITH_HEAD_ROT
        numSamplesRead = 0;
@@ -1577,11 +1552,7 @@ int main(
#endif

        int16_t num_subframes, sf_idx;
#ifdef NONBE_UNIFIED_DECODING_PATHS
        num_subframes = (int16_t) args.render_framesize;
#else
        num_subframes = ( args.framing_5ms ) ? 1 : IVAS_MAX_PARAM_SPATIAL_SUBFRAMES;
#endif

        if ( isCurrentFrameMultipleOf20ms )
        {
@@ -2377,7 +2348,6 @@ static bool parseDiegeticPan(
}


#ifdef NONBE_UNIFIED_DECODING_PATHS
static bool parseRenderFramesize(
    char *value,
    IVAS_RENDER_FRAMESIZE *render_framesize )
@@ -2407,7 +2377,6 @@ static bool parseRenderFramesize(

    return true;
}
#endif

static bool parseOrientationTracking(
    char *value,
@@ -2704,11 +2673,7 @@ static CmdlnArgs defaultArgs(

    args.lfeCustomRoutingEnabled = false;
    clearString( args.inLfePanningMatrixFile );
#ifdef NONBE_UNIFIED_DECODING_PATHS
    args.render_framesize = IVAS_RENDER_FRAMESIZE_20MS;
#else
    args.framing_5ms = false;
#endif
    args.syncMdDelay = 0;

    for ( int32_t i = 0; i < RENDERER_MAX_ISM_INPUTS; ++i )
@@ -2870,7 +2835,6 @@ static void parseOption(
                exit( -1 );
            }
            break;
#ifdef NONBE_UNIFIED_DECODING_PATHS
        case CmdLnOptionId_framing:
            assert( numOptionValues == 1 );
            if ( !parseRenderFramesize( optionValues[0], &args->render_framesize ) )
@@ -2880,13 +2844,6 @@ static void parseOption(
            }

            break;
#else
        case CmdLnOptionId_framing5ms:
            assert( numOptionValues == 0 );
            args->framing_5ms = true;
            fprintf( stderr, "Warning: this is a placeholder for 5ms framing.\n" );
            break;
#endif
        case CmdLnOptionId_directivityPatternId:
            assert( numOptionValues <= RENDERER_MAX_ISM_INPUTS );
            for ( int16_t i = 0; i < numOptionValues; ++i )
+1 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@

  <ul>
    <li><a href="coverage/index.html">Coverage report</a></li>
    <li><a href="coverage_stv/index.html">Coverage of short test vectors</a></li>
  </ul>

</body>
Loading