Commit 4b719fcc authored by Archit Tamarapu's avatar Archit Tamarapu
Browse files

- rename switch to FIX_1139_REV_COLORATION_SHORT_T60

- update ivas_binaural_reverb_init() and remove _parambin version
parent 591b7947
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -181,7 +181,7 @@

#define NONBE_FIX_1174_MCMASA_LBR_LOOP_ERROR            /* Nokia: Fix issue 1174 by removing the unnecessary inner loop causing problems. */

#define FIX_1139_PARAM_REV_COLORATION_SHORT_T60         /* Nokia: Fix issue 1139, prevent sound coloration artefacts at very low reverberation times */
#define FIX_1139_REV_COLORATION_SHORT_T60               /* Nokia,FhG: Fix issue 1139, prevent sound coloration artefacts at very low reverberation times */

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

+13 −1
Original line number Diff line number Diff line
@@ -1214,7 +1214,19 @@ ivas_error ivas_binRenderer_open(
    /* Allocate memories needed for reverb module */
    if ( st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM || ( st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV && st_ivas->hOutSetup.output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) )
    {
        if ( ( error = ivas_binaural_reverb_init( &( hBinRenderer->hReverb ), st_ivas->hHrtfStatistics, hBinRenderer->conv_band, hBinRenderer->timeSlots, &( st_ivas->hRenderConfig->roomAcoustics ), st_ivas->hDecoderConfig->output_Fs, st_ivas->hHrtfFastConv->fastconvReverberationTimes, st_ivas->hHrtfFastConv->fastconvReverberationEneCorrections ) ) != IVAS_ERR_OK )
        if ( ( error = ivas_binaural_reverb_init( &( hBinRenderer->hReverb ),
                                                  st_ivas->hHrtfStatistics,
                                                  hBinRenderer->conv_band,
                                                  hBinRenderer->timeSlots,
                                                  &( st_ivas->hRenderConfig->roomAcoustics ),
                                                  st_ivas->hDecoderConfig->output_Fs,
                                                  st_ivas->hHrtfFastConv->fastconvReverberationTimes,
                                                  st_ivas->hHrtfFastConv->fastconvReverberationEneCorrections
#ifdef FIX_1139_REV_COLORATION_SHORT_T60
                                                  ,
                                                  hBinRenderer->earlyPartEneCorrection
#endif
                                                  ) ) != IVAS_ERR_OK )
        {
            return error;
        }
+26 −2
Original line number Diff line number Diff line
@@ -2842,7 +2842,19 @@ ivas_error IVAS_DEC_FeedRenderConfig(
    if ( hIvasDec->st_ivas->hDiracDecBin[0] != NULL && hIvasDec->st_ivas->hDiracDecBin[0]->hReverb != NULL )
    {
        ivas_binaural_reverb_close( &( hIvasDec->st_ivas->hDiracDecBin[0]->hReverb ) );
        if ( ( error = ivas_binaural_reverb_init( &( hIvasDec->st_ivas->hDiracDecBin[0]->hReverb ), hIvasDec->st_ivas->hHrtfStatistics, hIvasDec->st_ivas->hSpatParamRendCom->num_freq_bands, CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES, &( hRenderConfig->roomAcoustics ), hIvasDec->st_ivas->hDecoderConfig->output_Fs, NULL, NULL ) ) != IVAS_ERR_OK )
        if ( ( error = ivas_binaural_reverb_init( &( hIvasDec->st_ivas->hDiracDecBin[0]->hReverb ),
                                                  hIvasDec->st_ivas->hHrtfStatistics,
                                                  hIvasDec->st_ivas->hSpatParamRendCom->num_freq_bands,
                                                  CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES,
                                                  &( hRenderConfig->roomAcoustics ),
                                                  hIvasDec->st_ivas->hDecoderConfig->output_Fs,
                                                  NULL,
                                                  NULL
#ifdef FIX_1139_REV_COLORATION_SHORT_T60
                                                  ,
                                                  NULL
#endif
                                                  ) ) != IVAS_ERR_OK )
        {
            return error;
        }
@@ -2851,7 +2863,19 @@ ivas_error IVAS_DEC_FeedRenderConfig(
    if ( hIvasDec->st_ivas->hBinRenderer != NULL && hIvasDec->st_ivas->hBinRenderer->hReverb != NULL )
    {
        ivas_binaural_reverb_close( &( hIvasDec->st_ivas->hBinRenderer->hReverb ) );
        if ( ( error = ivas_binaural_reverb_init( &( hIvasDec->st_ivas->hBinRenderer->hReverb ), hIvasDec->st_ivas->hHrtfStatistics, hIvasDec->st_ivas->hBinRenderer->conv_band, hIvasDec->st_ivas->hBinRenderer->timeSlots, &( hRenderConfig->roomAcoustics ), hIvasDec->st_ivas->hDecoderConfig->output_Fs, NULL, NULL ) ) != IVAS_ERR_OK )
        if ( ( error = ivas_binaural_reverb_init( &( hIvasDec->st_ivas->hBinRenderer->hReverb ),
                                                  hIvasDec->st_ivas->hHrtfStatistics,
                                                  hIvasDec->st_ivas->hBinRenderer->conv_band,
                                                  hIvasDec->st_ivas->hBinRenderer->timeSlots,
                                                  &( hRenderConfig->roomAcoustics ),
                                                  hIvasDec->st_ivas->hDecoderConfig->output_Fs,
                                                  NULL,
                                                  NULL
#ifdef FIX_1139_REV_COLORATION_SHORT_T60
                                                  ,
                                                  NULL
#endif
                                                  ) ) != IVAS_ERR_OK )
        {
            return error;
        }
+12 −12
Original line number Diff line number Diff line
@@ -235,19 +235,19 @@ ivas_error ivas_dirac_dec_init_binaural_data(

            if ( hDiracDecBin->hReverb == NULL && pos_idx == 0 ) /* open reverb only for the main direction */
            {
#ifdef FIX_1139_PARAM_REV_COLORATION_SHORT_T60
                if ( ( error = ivas_binaural_reverb_init_for_parambin( &hDiracDecBin->hReverb,
                if ( ( error = ivas_binaural_reverb_init( &hDiracDecBin->hReverb,
                                                          st_ivas->hHrtfStatistics,
                                                          nBins,
                                                          CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES,
                                                          &( st_ivas->hRenderConfig->roomAcoustics ),
                                                          output_Fs,
                                                          ( *phHrtfParambin )->parametricReverberationTimes,
                                                                       ( *phHrtfParambin )->parametricReverberationEneCorrections,
                                                                       hDiracDecBin->earlyPartEneCorrection ) ) != IVAS_ERR_OK )
#else
                if ( ( error = ivas_binaural_reverb_init( &hDiracDecBin->hReverb, st_ivas->hHrtfStatistics, nBins, CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES, &( st_ivas->hRenderConfig->roomAcoustics ), output_Fs, ( *phHrtfParambin )->parametricReverberationTimes, ( *phHrtfParambin )->parametricReverberationEneCorrections ) ) != IVAS_ERR_OK )
                                                          ( *phHrtfParambin )->parametricReverberationEneCorrections
#ifdef FIX_1139_REV_COLORATION_SHORT_T60
                                                          ,
                                                          hDiracDecBin->earlyPartEneCorrection
#endif
                                                          ) ) != IVAS_ERR_OK )
                {
                    return error;
                }
+4 −14
Original line number Diff line number Diff line
@@ -938,21 +938,11 @@ ivas_error ivas_binaural_reverb_init(
    const int32_t sampling_rate,                                /* i  : sampling rate                           */
    const float *defaultTimes,                                  /* i  : default reverberation times             */
    const float *defaultEne                                     /* i  : default reverberation energies          */
);

#ifdef FIX_1139_PARAM_REV_COLORATION_SHORT_T60
ivas_error ivas_binaural_reverb_init_for_parambin(
    REVERB_STRUCT_HANDLE *hReverbPr,                            /* i/o: binaural reverb handle                  */
    const HRTFS_STATISTICS_HANDLE hHrtfStatistics,              /* i  : HRTF statistics handle                  */
    const int16_t numBins,                                      /* i  : number of CLDFB bins                    */
    const int16_t numCldfbSlotsPerFrame,                        /* i  : number of CLDFB slots per frame         */
    const IVAS_ROOM_ACOUSTICS_CONFIG_DATA *roomAcoustics,       /* i/o: room acoustics parameters               */
    const int32_t sampling_rate,                                /* i  : sampling rate                           */
    const float *defaultTimes,                                  /* i  : default reverberation times             */
    const float *defaultEne,                                    /* i  : default reverberation energies          */
    float *earlyEne                                             /* i/o: early part energies to be modified      */
);
    #ifdef FIX_1139_REV_COLORATION_SHORT_T60
    ,
    float *earlyEne                                             /* i/o: Early part energies to be modified      */
    #endif
);

void ivas_binaural_reverb_close(
    REVERB_STRUCT_HANDLE *hReverb                               /* i/o: binaural reverb handle                  */
Loading