Commit ddd5346b authored by norvell's avatar norvell
Browse files

Cleanup around CONF_DISTATT

parent 7b73ca37
Loading
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -467,26 +467,29 @@ int main(
            goto cleanup;
        }

#ifdef CONF_DISTATT
        if ( ( error = RenderConfigReader_getDirectivity( renderConfigReader, arg.directivityPatternId, renderConfig.directivity_fx ) ) != IVAS_ERR_OK )
#else
        if ( ( error = RenderConfigReader_getDirectivity( renderConfigReader, arg.directivityPatternId, renderConfig.directivity ) ) != IVAS_ERR_OK )
#endif
        {
            fprintf( stderr, "Failed to get directivity patterns for one or more of IDs: %d %d %d %d\n\n", arg.directivityPatternId[0], arg.directivityPatternId[1], arg.directivityPatternId[2], arg.directivityPatternId[3] );
            goto cleanup;
        }
#ifndef CONF_DISTATT
        FOR( Word16 i = 0; i < 4; i++ )
        {
            renderConfig.directivity_fx[i * 3] = (Word16) ( renderConfig.directivity[i * 3] * ( 1u << 6 ) );
            renderConfig.directivity_fx[i * 3 + 1] = (Word16) ( renderConfig.directivity[i * 3 + 1] * ( 1u << 6 ) );
            renderConfig.directivity_fx[i * 3 + 2] = (Word16) ( renderConfig.directivity[i * 3 + 2] * ( ( 1u << 15 ) - 1 ) );
        }
#endif
#ifdef CONF_DISTATT
        if ( ( error = RenderConfigReader_getDistanceAttenuation( renderConfigReader, renderConfig.distAtt ) ) != IVAS_ERR_OK )
        if ( ( error = RenderConfigReader_getDistanceAttenuation( renderConfigReader, renderConfig.distAtt_fx ) ) != IVAS_ERR_OK )
        {
            fprintf( stderr, "Failed to get Distance Attenuation \n\n" );
            goto cleanup;
        }
        renderConfig.distAtt_fx[0] = (Word32) ( renderConfig.distAtt[0] * ( 1u << 27 ) );
        renderConfig.distAtt_fx[1] = (Word32) ( renderConfig.distAtt[1] * ( 1u << 30 ) );
        renderConfig.distAtt_fx[2] = (Word32) ( renderConfig.distAtt[2] * ( 1u << 30 ) );
#endif
        if ( ( arg.outputConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED ||
               arg.outputConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) )
+28 −2
Original line number Diff line number Diff line
@@ -2893,12 +2893,19 @@ ivas_error RenderConfigReader_getAcousticEnvironment(
ivas_error RenderConfigReader_getDirectivity(
    RenderConfigReader *pRenderConfigReader, /* i  : RenderConfigReader handle              */
    uint16_t *id,                            /* i  : Directivity pattern ID                 */
#ifdef CONF_DISTATT
    Word16 *directivity_fx /* o  : Target directivity                     */
#else
    float *directivity /* o  : Target directivity                     */
#endif
)
{
    uint16_t n, m;
    uint16_t last_specified_id;
    bool idExists;
#ifdef CONF_DISTATT
    float directivity[12];
#endif

    if ( pRenderConfigReader == NULL )
    {
@@ -2956,6 +2963,17 @@ ivas_error RenderConfigReader_getDirectivity(
            }
        }
    }

#ifdef CONF_DISTATT
    /* Convert to Word16 */
    FOR( n = 0; n < 4; n++ )
    {
        directivity_fx[n * 3] = (Word16) ( directivity[n * 3] * ( 1u << 6 ) );
        directivity_fx[n * 3 + 1] = (Word16) ( directivity[n * 3 + 1] * ( 1u << 6 ) );
        directivity_fx[n * 3 + 2] = (Word16) ( directivity[n * 3 + 2] * ( ( 1u << 15 ) - 1 ) );
    }
#endif

    return IVAS_ERR_OK;
}

@@ -2968,9 +2986,12 @@ ivas_error RenderConfigReader_getDirectivity(

ivas_error RenderConfigReader_getDistanceAttenuation(
    RenderConfigReader *pRenderConfigReader, /* i  : RenderConfigReader handle              */
    float *distAtt                           /* o  : Distance attenuation                   */

    Word32 *distAtt_fx /* o  : Distance attenuation                   */
)
{
    float distAtt[3];

    if ( pRenderConfigReader->distAtt[0] == -1 )
    {
        distAtt[0] = 15.75f;
@@ -2984,6 +3005,11 @@ ivas_error RenderConfigReader_getDistanceAttenuation(
        distAtt[2] = pRenderConfigReader->distAtt[2];
    }

    /* Convert to Word32 */
    distAtt_fx[0] = (Word32) ( distAtt[0] * ( 1u << 27 ) );
    distAtt_fx[1] = (Word32) ( distAtt[1] * ( 1u << 30 ) );
    distAtt_fx[2] = (Word32) ( distAtt[2] * ( 1u << 30 ) );

    return IVAS_ERR_OK;
}
#endif
+6 −2
Original line number Diff line number Diff line
@@ -60,12 +60,16 @@ ivas_error RenderConfigReader_getAcousticEnvironment(
ivas_error RenderConfigReader_getDirectivity(
    RenderConfigReader *pRenderConfigReader, /* i  : RenderConfigReader handle              */
    uint16_t *pId,                           /* i  : Directivity pattern ID                 */
#ifdef CONF_DISTATT
    Word16 *directivity_fx /* o  : Target directivity                     */
#else
    float *directivity /* o  : Target directivity                     */
#endif
);
#ifdef CONF_DISTATT
ivas_error RenderConfigReader_getDistanceAttenuation(
    RenderConfigReader *pRenderConfigReader, /* i  : RenderConfigReader handle              */
    float *distAtt                           /* o  : Distance attenuation                   */
    Word32 *distAtt_fx                       /* o  : Distance attenuation                   */
);
#endif
/* Verifies configuration parameters                                                        */