Commit 0905bf0b authored by Dominik Weckbecker's avatar Dominik Weckbecker 💬
Browse files

Merge branch 'main' into...

Merge branch 'main' into 987-parammc-and-paramupmix-binaural-room-reverb-with-head-rotation-energy-not-correct
parents b301e223 48244454
Loading
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -1225,9 +1225,7 @@ enum
#define MASA_BIT_REDUCT_PARAM                   10
#define MASA_MAXIMUM_TWO_DIR_BANDS              24
#define NBITS_HR_COH                            4
#ifdef NONBE_FIX_982_OMASA_DELAY_COMP_5MS
#define OMASA_TDREND_MATCHING_GAIN              0.7943f
#endif

#define MASA_JBM_RINGBUFFER_FRAMES              3

+1 −12
Original line number Diff line number Diff line
@@ -163,7 +163,6 @@




/* #################### End BE switches ################################## */

/* #################### Start NON-BE switches ############################ */
@@ -171,17 +170,7 @@
/* all switches in this category should start with "NONBE_" */

#define NONBE_FIX_978_MC_TDREND_REVERB                        /* Eri : activate reverb for TDREND with headtracking */
#define BE_FIX_567_DOUBLE_STEREO_DMX                          /* NTT: Fix formal issues */   
#define NONBE_FIX_567_DOUBLE_STEREO_DMX                       /* Orange: Double-precision replaced by single-precision */   
#define NONBE_FIX_947_STEREO_DMX_EVS_POC                      /* Orange: Fix clicks on POC */
#ifdef NONBE_FIX_947_STEREO_DMX_EVS_POC
#define NONBE_FIX_947_STEREO_DMX_ROMOPT                       /* Orange: ROM optimisation for POC*/  
#endif
#define NONBE_FIX_947_STEREO_DMX_EVS_PHA                      /* Orange: Fix issues on PHA */
#ifdef NONBE_FIX_947_STEREO_DMX_EVS_PHA
#define NONBE_FIX_947_STEREO_DMX_FADOPT                       /* Orange: Fading optimisation */  
#endif                                                                                     
#define NONBE_FIX_982_OMASA_DELAY_COMP_5MS                    /* FhG : issue #982 : 5ms and 20ms output different for OMASA */

#ifdef SPLIT_REND_WITH_HEAD_ROT
#define SPLIT_REND_LCLD_5MS                                   /* Dlb: LCLD 5ms framing operation  */
#endif
+0 −2
Original line number Diff line number Diff line
@@ -132,12 +132,10 @@ float inv_sqrt(
    const float x /* i  : input value                                     */
);

#ifdef NONBE_FIX_567_DOUBLE_STEREO_DMX
/*! r: inverse square root of input value (float) */
float inv_sqrtf(
    const float x /* i  : input value                                     */
);
#endif

/*! r: output random value */
int16_t own_random(
+0 −2
Original line number Diff line number Diff line
@@ -768,7 +768,6 @@ float inv_sqrt(
    return (float) ( 1.0 / sqrt( x ) );
}

#ifdef NONBE_FIX_567_DOUBLE_STEREO_DMX
/*---------------------------------------------------------------------*
 * inv_sqrtf()
 *
@@ -782,7 +781,6 @@ float inv_sqrtf(
{
    return ( 1.0f / sqrtf( x ) );
}
#endif

/*-------------------------------------------------------------------*
 * conv()
+39 −5
Original line number Diff line number Diff line
@@ -2056,17 +2056,36 @@ void ivas_binRenderer(
#endif

#ifdef NONBE_FIX_987_PARAMC_BINAURAL_REVERB_RENDERING

#ifdef SPLIT_REND_WITH_HEAD_ROT
    if ( output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB )
    {
        for ( pos_idx = 0; pos_idx < num_poses; pos_idx++ )
        {
            for ( chIdx = 0; chIdx < BINAURAL_CHANNELS; chIdx++ )
            {
                for ( k = 0; k < numTimeSlots; k++ )
                {
                    v_multc( Cldfb_RealBuffer_Binaural[pos_idx][chIdx][k], 0.5f, Cldfb_RealBuffer_Binaural[pos_idx][chIdx][k], hBinRenderer->conv_band );
                    v_multc( Cldfb_ImagBuffer_Binaural[pos_idx][chIdx][k], 0.5f, Cldfb_ImagBuffer_Binaural[pos_idx][chIdx][k], hBinRenderer->conv_band );
                }
            }
        }
    }
#else
    if ( output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB )
    {
        for ( chIdx = 0; chIdx < BINAURAL_CHANNELS; chIdx++ )
        {
            for ( k = 0; k < numTimeSlots; k++ )
            {
                v_multc( Cldfb_RealBuffer_Binaural[chIdx][k], 0.5f, Cldfb_RealBuffer_Binaural[chIdx][k], CLDFB_NO_CHANNELS_MAX );
                v_multc( Cldfb_ImagBuffer_Binaural[chIdx][k], 0.5f, Cldfb_ImagBuffer_Binaural[chIdx][k], CLDFB_NO_CHANNELS_MAX );
                v_multc( Cldfb_RealBuffer_Binaural[chIdx][k], 0.5f, Cldfb_RealBuffer_Binaural[chIdx][k], hBinRenderer->conv_band );
                v_multc( Cldfb_ImagBuffer_Binaural[chIdx][k], 0.5f, Cldfb_ImagBuffer_Binaural[chIdx][k], hBinRenderer->conv_band );
            }
        }
    }
#endif

#endif

    /* Obtain the binaural dmx and compute the reverb */
@@ -2132,7 +2151,12 @@ void ivas_rend_CldfbMultiBinRendProcess(
    float Cldfb_Out_Real[MAX_HEAD_ROT_POSES * BINAURAL_CHANNELS][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], /* o  : Binaural signals */
    float Cldfb_Out_Imag[MAX_HEAD_ROT_POSES * BINAURAL_CHANNELS][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX],
    const int16_t low_res_pre_rend_rot,
    const int16_t num_subframes )
    const int16_t num_subframes
#ifdef NONBE_FIX_987_PARAMC_BINAURAL_REVERB_RENDERING
    ,
    AUDIO_CONFIG output_config /* i : output configuration */
#endif
)
{
    int16_t slot_idx, ch_idx, idx, pose_idx, i, j;
    int16_t sf_idx;
@@ -2182,9 +2206,19 @@ void ivas_rend_CldfbMultiBinRendProcess(
#endif

#ifdef SPLIT_REND_WITH_HEAD_ROT_DEBUG
        ivas_binRenderer( hCldfbRend, pMultiBinPoseData, *pCombinedOrientationData, MAX_PARAM_SPATIAL_SUBFRAMES, &head_track_post, Cldfb_RealBuffer_Binaural, Cldfb_ImagBuffer_Binaural, Cldfb_RealBuffer_sfIn, Cldfb_ImagBuffer_sfIn );
        ivas_binRenderer( hCldfbRend, pMultiBinPoseData, *pCombinedOrientationData, MAX_PARAM_SPATIAL_SUBFRAMES, &head_track_post, Cldfb_RealBuffer_Binaural, Cldfb_ImagBuffer_Binaural, Cldfb_RealBuffer_sfIn, Cldfb_ImagBuffer_sfIn
#ifdef NONBE_FIX_987_PARAMC_BINAURAL_REVERB_RENDERING
                          ,
                          output_config
#endif
        );
#else
        ivas_binRenderer( hCldfbRend, pMultiBinPoseData, *pCombinedOrientationData, MAX_PARAM_SPATIAL_SUBFRAMES, Cldfb_RealBuffer_Binaural, Cldfb_ImagBuffer_Binaural, Cldfb_RealBuffer_sfIn, Cldfb_ImagBuffer_sfIn );
        ivas_binRenderer( hCldfbRend, pMultiBinPoseData, *pCombinedOrientationData, MAX_PARAM_SPATIAL_SUBFRAMES, Cldfb_RealBuffer_Binaural, Cldfb_ImagBuffer_Binaural, Cldfb_RealBuffer_sfIn, Cldfb_ImagBuffer_sfIn
#ifdef NONBE_FIX_987_PARAMC_BINAURAL_REVERB_RENDERING
                          ,
                          output_config
#endif
        );
#endif
        for ( pose_idx = 0; pose_idx < hCldfbRend->numPoses; pose_idx++ )
        {
Loading