Commit d789e122 authored by norvell's avatar norvell
Browse files

Add fix NONBE_1377_REND_DIRATT_CONF for renderer configuration issue

parent 46645488
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -176,6 +176,7 @@
#define NONBE_1122_KEEP_EVS_MODE_UNCHANGED              /* FhG: Disables fix for issue 1122 in EVS mode to keep BE tests green. This switch should be removed once the 1122 fix is added to EVS via a CR.  */
#define NONBE_1328_FIX_NON_LINEARITY                    /* VA: Fix possible issue when computing bwe_exc_extended and previous frame were almost 0  */
#define NONBE_1321_JBM_ASSERT_BITRATE_SWITCHING         /* FhG: Fix assert being hit in JBM code during rate switching */
#define NONBE_1377_REND_DIRATT_CONF                     /* Eri: Issue 1377: Error in directivity attenuation configuration for both IVAS_dec and IVAS_rend */

/* ##################### End NON-BE switches ########################### */

+21 −2
Original line number Diff line number Diff line
@@ -534,13 +534,16 @@ ivas_error TDREND_Update_object_positions(
    const ISM_METADATA_HANDLE *hIsmMetaData            /* i  : Input metadata for ISM objects   */
)
{
#ifndef NONBE_1377_REND_DIRATT_CONF
    TDREND_DirAtten_t *DirAtten_p;
#endif
    int16_t nS;
    float Pos[3];
    float Dir[3];
    ivas_error error;

#ifndef NONBE_1377_REND_DIRATT_CONF
    DirAtten_p = hBinRendererTd->DirAtten_p;
#endif

    /* For each source, write the frame data to the source object*/
    for ( nS = 0; nS < num_src; nS++ )
@@ -557,11 +560,12 @@ ivas_error TDREND_Update_object_positions(
                return error;
            }

#ifndef NONBE_1377_REND_DIRATT_CONF
            if ( ( error = TDREND_MIX_SRC_SetDirAtten( hBinRendererTd, nS, DirAtten_p ) ) != IVAS_ERR_OK )
            {
                return error;
            }

#endif
            if ( ( error = TDREND_MIX_SRC_SetGain( hBinRendererTd, nS, hIsmMetaData[nS]->gain ) ) != IVAS_ERR_OK )
            {
                return error;
@@ -675,13 +679,24 @@ ivas_error ivas_td_binaural_open_ext(
    AUDIO_CONFIG inConfig,
    RENDER_CONFIG_DATA *hRendCfg, /* i  : Renderer configuration */
    LSSETUP_CUSTOM_STRUCT *customLsInput,
#ifdef NONBE_1377_REND_DIRATT_CONF
    const int32_t outFs,       /* i: output sampling rate */
    const IVAS_REND_InputId id /* i: ISM ID */
)
#else
    const int32_t outFs )
#endif
{
    int16_t nchan_transport;
    AUDIO_CONFIG transport_config;
    IVAS_FORMAT ivas_format;
    IVAS_OUTPUT_SETUP hTransSetup;
    ivas_error error;
#ifdef NONBE_1377_REND_DIRATT_CONF
    int16_t ism_number;

    ism_number = id & 0x00FF; /* Exctract ISM number from ID */
#endif

    float *distAtt = NULL;
    float *directivity = NULL;
@@ -716,7 +731,11 @@ ivas_error ivas_td_binaural_open_ext(
        distAtt = hRendCfg->distAtt;
    }

#ifdef NONBE_1377_REND_DIRATT_CONF
    return ivas_td_binaural_open_unwrap( pTDRend->hHrtfTD, outFs, nchan_transport, ivas_format, transport_config, directivity + 3 * ism_number, distAtt, hTransSetup, &pTDRend->hBinRendererTd, &pTDRend->binaural_latency_ns );
#else
    return ivas_td_binaural_open_unwrap( pTDRend->hHrtfTD, outFs, nchan_transport, ivas_format, transport_config, directivity, distAtt, hTransSetup, &pTDRend->hBinRendererTd, &pTDRend->binaural_latency_ns );
#endif
}


+5 −0
Original line number Diff line number Diff line
@@ -661,7 +661,12 @@ ivas_error ivas_td_binaural_open_ext(
    const AUDIO_CONFIG inConfig,
    RENDER_CONFIG_DATA *hRendCfg,                               /* i  : Renderer configuration                  */
    LSSETUP_CUSTOM_STRUCT *customLsInput,
#ifdef NONBE_1377_REND_DIRATT_CONF
    const int32_t outFs,                                        /* i: output sampling rate                      */
    const IVAS_REND_InputId id                                  /* i: ISM ID                                    */
#else
    const int32_t output_Fs 
#endif
);

void ivas_td_binaural_close(
+20 −0
Original line number Diff line number Diff line
@@ -1608,7 +1608,11 @@ static ivas_error setRendInputActiveIsm(

    if ( outConfig == IVAS_AUDIO_CONFIG_BINAURAL || outConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED || outConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM )
    {
#ifdef NONBE_1377_REND_DIRATT_CONF
        if ( ( error = ivas_td_binaural_open_ext( &inputIsm->tdRendWrapper, inConfig, hRendCfg, NULL, *rendCtx.pOutSampleRate, id ) ) != IVAS_ERR_OK )
#else
        if ( ( error = ivas_td_binaural_open_ext( &inputIsm->tdRendWrapper, inConfig, hRendCfg, NULL, *rendCtx.pOutSampleRate ) ) != IVAS_ERR_OK )
#endif
        {
            return error;
        }
@@ -1616,7 +1620,11 @@ static ivas_error setRendInputActiveIsm(
        /* Open TD renderer wrappers */
        for ( i = 0; i < MAX_HEAD_ROT_POSES - 1; ++i )
        {
#ifdef NONBE_1377_REND_DIRATT_CONF
            if ( ( error = ivas_td_binaural_open_ext( &inputIsm->splitTdRendWrappers[i], inConfig, hRendCfg, NULL, *inputIsm->base.ctx.pOutSampleRate, id ) ) != IVAS_ERR_OK )
#else
            if ( ( error = ivas_td_binaural_open_ext( &inputIsm->splitTdRendWrappers[i], inConfig, hRendCfg, NULL, *inputIsm->base.ctx.pOutSampleRate ) ) != IVAS_ERR_OK )
#endif
            {
                return error;
            }
@@ -1634,7 +1642,11 @@ static ivas_error setRendInputActiveIsm(
    }
    else
    {
#ifdef NONBE_1377_REND_DIRATT_CONF
        if ( ( error = ivas_td_binaural_open_ext( &inputIsm->tdRendWrapper, inConfig, hRendCfg, NULL, *rendCtx.pOutSampleRate, id ) ) != IVAS_ERR_OK )
#else
        if ( ( error = ivas_td_binaural_open_ext( &inputIsm->tdRendWrapper, inConfig, hRendCfg, NULL, *rendCtx.pOutSampleRate ) ) != IVAS_ERR_OK )
#endif
        {
            return error;
        }
@@ -2391,7 +2403,11 @@ static ivas_error initMcBinauralRendering(

    if ( useTDRend && inputMc->tdRendWrapper.hBinRendererTd == NULL )
    {
#ifdef NONBE_1377_REND_DIRATT_CONF
        if ( ( error = ivas_td_binaural_open_ext( &inputMc->tdRendWrapper, inConfig, hRendCfg, &inputMc->customLsInput, outSampleRate, 0 ) ) != IVAS_ERR_OK )
#else
        if ( ( error = ivas_td_binaural_open_ext( &inputMc->tdRendWrapper, inConfig, hRendCfg, &inputMc->customLsInput, outSampleRate ) ) != IVAS_ERR_OK )
#endif
        {
            return error;
        }
@@ -2401,7 +2417,11 @@ static ivas_error initMcBinauralRendering(
            /* Open TD renderer wrappers */
            for ( i = 0; i < MAX_HEAD_ROT_POSES - 1; ++i )
            {
#ifdef NONBE_1377_REND_DIRATT_CONF
                if ( ( error = ivas_td_binaural_open_ext( &inputMc->splitTdRendWrappers[i], inConfig, hRendCfg, &inputMc->customLsInput, outSampleRate, 0 ) ) != IVAS_ERR_OK )
#else
                if ( ( error = ivas_td_binaural_open_ext( &inputMc->splitTdRendWrappers[i], inConfig, hRendCfg, &inputMc->customLsInput, outSampleRate ) ) != IVAS_ERR_OK )
#endif
                {
                    return error;
                }