Commit fec202a8 authored by norvell's avatar norvell
Browse files

Merge branch '1377-fix-offset-renderer-configuration' into 'main'

Fix offset in renderer directivity, found in BASOP. This syncs the code with the BASOP

See merge request !2241
parents 9a1b24e7 dfdff212
Loading
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -1228,6 +1228,9 @@ int main(
    {
        masaIds[i] = 0u;
    }
#ifdef NONBE_1377_REND_DIRATT_CONF
    IVAS_REND_SetObjectIDs( hIvasRend );
#endif

    for ( i = 0; i < args.inConfig.numMultiChannelBuses; ++i )
    {
+3 −7
Original line number Diff line number Diff line
@@ -681,7 +681,7 @@ ivas_error ivas_td_binaural_open_ext(
    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 */
    const int16_t object_id /* i: Object ID */
)
#else
    const int32_t outFs )
@@ -692,9 +692,6 @@ ivas_error ivas_td_binaural_open_ext(
    IVAS_FORMAT ivas_format;
    IVAS_OUTPUT_SETUP hTransSetup;
    ivas_error error;
#ifdef NONBE_1377_REND_DIRATT_CONF
    int16_t ism_number;
#endif

    float *distAtt = NULL;
    float *directivity = NULL;
@@ -726,8 +723,7 @@ ivas_error ivas_td_binaural_open_ext(
    if ( NULL != hRendCfg )
    {
#ifdef NONBE_1377_REND_DIRATT_CONF
        ism_number = id & 0x00FF; /* Exctract ISM number from ID */
        directivity = hRendCfg->directivity + 3 * ism_number;
        directivity = hRendCfg->directivity + 3 * object_id;
#else
        directivity = hRendCfg->directivity;
#endif
+2 −2
Original line number Diff line number Diff line
@@ -662,8 +662,8 @@ ivas_error ivas_td_binaural_open_ext(
    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                                    */
    const int32_t output_Fs,                                    /* i: output sampling rate                      */
    const int16_t object_id                                     /* i: Object ID                                 */
#else
    const int32_t output_Fs 
#endif
+34 −3
Original line number Diff line number Diff line
@@ -122,6 +122,9 @@ typedef struct
    float nonDiegeticPanGain;
    OMASA_ANA_HANDLE hOMasa;
    uint16_t total_num_objects;
#ifdef NONBE_1377_REND_DIRATT_CONF
    int16_t object_id;
#endif
    float ism_metadata_delay_ms;
} input_ism;

@@ -1609,7 +1612,7 @@ 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 )
        if ( ( error = ivas_td_binaural_open_ext( &inputIsm->tdRendWrapper, inConfig, hRendCfg, NULL, *rendCtx.pOutSampleRate, inputIsm->object_id ) ) != IVAS_ERR_OK )
#else
        if ( ( error = ivas_td_binaural_open_ext( &inputIsm->tdRendWrapper, inConfig, hRendCfg, NULL, *rendCtx.pOutSampleRate ) ) != IVAS_ERR_OK )
#endif
@@ -1621,7 +1624,7 @@ static ivas_error setRendInputActiveIsm(
        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 )
            if ( ( error = ivas_td_binaural_open_ext( &inputIsm->splitTdRendWrappers[i], inConfig, hRendCfg, NULL, *inputIsm->base.ctx.pOutSampleRate, inputIsm->object_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
@@ -1643,7 +1646,7 @@ 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 )
        if ( ( error = ivas_td_binaural_open_ext( &inputIsm->tdRendWrapper, inConfig, hRendCfg, NULL, *rendCtx.pOutSampleRate, inputIsm->object_id ) ) != IVAS_ERR_OK )
#else
        if ( ( error = ivas_td_binaural_open_ext( &inputIsm->tdRendWrapper, inConfig, hRendCfg, NULL, *rendCtx.pOutSampleRate ) ) != IVAS_ERR_OK )
#endif
@@ -3959,6 +3962,34 @@ ivas_error IVAS_REND_ConfigureCustomInputLoudspeakerLayout(
    return IVAS_ERR_OK;
}

#ifdef NONBE_1377_REND_DIRATT_CONF
/*-------------------------------------------------------------------*
 * IVAS_REND_SetObjectIDs()
 *
 *
 *-------------------------------------------------------------------*/

ivas_error IVAS_REND_SetObjectIDs(
    IVAS_REND_HANDLE hIvasRend /* i/o: Renderer handle            */
)
{
    int16_t i;

    /* Validate function arguments */
    if ( hIvasRend == NULL )
    {
        return IVAS_ERR_UNEXPECTED_NULL_POINTER;
    }

    for ( i = 0; i < RENDERER_MAX_ISM_INPUTS; i++ )
    {
        hIvasRend->inputsIsm[i].object_id = i;
    }

    return IVAS_ERR_OK;
}
#endif


/*-------------------------------------------------------------------*
 * IVAS_REND_SetInputGain()
+6 −0
Original line number Diff line number Diff line
@@ -152,6 +152,12 @@ ivas_error IVAS_REND_ConfigureCustomInputLoudspeakerLayout(
    const IVAS_CUSTOM_LS_DATA layout                /* i  : custom loudspeaker layout for input                 */
);

#ifdef NONBE_1377_REND_DIRATT_CONF
ivas_error IVAS_REND_SetObjectIDs(
    IVAS_REND_HANDLE hIvasRend                      /* i/o: Renderer handle                                     */
);
#endif

ivas_error IVAS_REND_SetInputGain(
    IVAS_REND_HANDLE hIvasRend,                     /* i/o: Renderer handle                                     */
    const IVAS_REND_InputId inputId,                /* i  : ID of the input                                     */