Commit 077bc4b9 authored by Vidhya V P's avatar Vidhya V P
Browse files

Added fix for bit inexactness of renderer pytest

[x]Also added fix for a few ASAN warnings
parent 198a7b7f
Loading
Loading
Loading
Loading
+8 −9
Original line number Diff line number Diff line
@@ -1589,7 +1589,7 @@ void ivas_binaural_reverb_processFrame(

    return;
}
void ivas_binRenderer_2(
static void ivas_binRenderer_2(
    BINAURAL_RENDERER_HANDLE hBinRenderer, /* i/o: binaural renderer handle    */
    HEAD_TRACK_DATA_HANDLE hHeadTrackData, /* i/o: head track handle           */
#ifdef SPLIT_REND_WITH_HEAD_ROT
@@ -1747,16 +1747,14 @@ void ivas_binRenderer_2(
        }
    }
#endif


#ifdef FIX_SPLIT_REND_MERGE
    /* Obtain the binaural dmx and compute the reverb */
    if ( hBinRenderer->hReverb != NULL )
    {
        float reverbRe[BINAURAL_CHANNELS][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX];
        float reverbIm[BINAURAL_CHANNELS][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX];
        float inRe[BINAURAL_CHANNELS][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX];
        float inIm[BINAURAL_CHANNELS][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX];

        float reverbRe[BINAURAL_CHANNELS][CLDFB_SLOTS_PER_SUBFRAME][CLDFB_NO_CHANNELS_MAX];
        float reverbIm[BINAURAL_CHANNELS][CLDFB_SLOTS_PER_SUBFRAME][CLDFB_NO_CHANNELS_MAX];
        float inRe[BINAURAL_CHANNELS][CLDFB_SLOTS_PER_SUBFRAME][CLDFB_NO_CHANNELS_MAX];
        float inIm[BINAURAL_CHANNELS][CLDFB_SLOTS_PER_SUBFRAME][CLDFB_NO_CHANNELS_MAX];
        ivas_binaural_obtain_DMX( numTimeSlots, hBinRenderer, RealBuffer, ImagBuffer, inRe, inIm );

        for ( chIdx = 0; chIdx < BINAURAL_CHANNELS; chIdx++ )
@@ -1768,7 +1766,7 @@ void ivas_binRenderer_2(
            }
        }

        ivas_binaural_reverb_processFrame( hBinRenderer->hReverb, BINAURAL_CHANNELS, inRe, inIm, reverbRe, reverbIm, 0u );
        ivas_binaural_reverb_processSubframe( hBinRenderer->hReverb, BINAURAL_CHANNELS, numTimeSlots, inRe, inIm, reverbRe, reverbIm );

        /* Add the conv module and reverb module output */
        for ( chIdx = 0; chIdx < BINAURAL_CHANNELS; chIdx++ )
@@ -1791,6 +1789,7 @@ void ivas_binRenderer_2(
        }
    }

#endif
    pop_wmops();

    return;
+19 −2
Original line number Diff line number Diff line
@@ -70,7 +70,9 @@ ivas_error ivas_dec(
    float pan_left, pan_right;
    ivas_error error;
    float *p_output[MAX_OUTPUT_CHANNELS];

#ifdef FIX_BIT_EXACT
    int16_t i, j, k, l;
#endif
    error = IVAS_ERR_OK;

    push_wmops( "ivas_dec" );
@@ -761,7 +763,22 @@ ivas_error ivas_dec(
        hSplitBinRend = &st_ivas->splitBinRend;
        max_band = (int16_t) ( ( BINAURAL_MAXBANDS * output_Fs ) / 48000 );
        pcm_out = ( output_config == AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) ? 1 : 0;

#ifdef FIX_BIT_EXACT
        for ( i = 0; i < MAX_HEAD_ROT_POSES; i++ )
        {
            for ( j = 0; j < BINAURAL_CHANNELS; j++ )
            {
                for ( k = 0; k < CLDFB_NO_COL_MAX; k++ )
                {
                    for ( l = 0; l < CLDFB_NO_CHANNELS_MAX; l++ )
                    {
                        hSplitBinRend->hMultiBinCldfbData->Cldfb_RealBuffer_Binaural[i][j][k][l] = 0.0f;
                        hSplitBinRend->hMultiBinCldfbData->Cldfb_ImagBuffer_Binaural[i][j][k][l] = 0.0f;
                    }
                }
            }
        }
#endif
        ivas_renderMultiBinToSplitBinaural( &hSplitBinRend->splitrend,
                                            st_ivas->hHeadTrackData->Quaternions,
                                            st_ivas->hRenderConfig->split_rend_config.splitRendBitRate,