Commit 00bf5c85 authored by Archit Tamarapu's avatar Archit Tamarapu
Browse files

Merge branch...

Merge branch '1621_ref_parammc_and_paramupmix_binaural_room_reverb_with_head_rotation_energy_not_correct' into 'float-pc'

port MR 1382 into float-pc

See merge request !1758
parents bcdf9117 5369ebb5
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -207,6 +207,7 @@
#define NONBE_FIX_1012_1013_JBM_FLUSH_BUFFER            /* FhG: issues #1012, 1013: JBM flush function uses wrong output buffer */
#define FIX_998_UNUSED_FUNCTION                         /* FhG: issue 998: delete unused funtion ivas_dirac_dec_get_response_split_order */ 
#define NONBE_FIX_1014_1015_1016_OSBA_JBM_STEREO              /* FhG: issues #1014, #1015, #1016: fix tc buffer info update in the discrete ism renderer */
#define NONBE_FIX_987_PARAMC_BINAURAL_REVERB_RENDERING       /* FhG: issue 987: solution b: downmix HOA3 to stereo a input for the reverberator */

/* #################### End BASOP porting switches ############################ */

+38 −8
Original line number Diff line number Diff line
@@ -881,6 +881,31 @@ static void ivas_binaural_obtain_DMX(
            set_zero( outRealRightPtr, CLDFB_NO_CHANNELS_MAX );
            set_zero( outImagRightPtr, CLDFB_NO_CHANNELS_MAX );

#ifdef NONBE_FIX_987_PARAMC_BINAURAL_REVERB_RENDERING
            /*Ambisonics input requires different processing*/
            if ( hBinRenderer->nInChannels == 16 )
            {
                float *inRealPtr_W, *inImagPtr_W;
                float *inRealPtr_Y, *inImagPtr_Y;

                inRealPtr_W = (float *) &( RealBuffer[0][k][0] );
                inImagPtr_W = (float *) &( ImagBuffer[0][k][0] );

                inRealPtr_Y = (float *) &( RealBuffer[1][k][0] );
                inImagPtr_Y = (float *) &( ImagBuffer[1][k][0] );

                for ( bandIdx = 0; bandIdx < hBinRenderer->conv_band; bandIdx++ )
                {
                    outRealLeftPtr[bandIdx] = inRealPtr_W[bandIdx] + inRealPtr_Y[bandIdx];
                    outImagLeftPtr[bandIdx] = inImagPtr_W[bandIdx] + inImagPtr_Y[bandIdx];

                    outRealRightPtr[bandIdx] = inRealPtr_W[bandIdx] - inRealPtr_Y[bandIdx];
                    outImagRightPtr[bandIdx] = inImagPtr_W[bandIdx] - inImagPtr_Y[bandIdx];
                }
            }
            else
#endif
            {
                for ( chIdx = 0; chIdx < hBinRenderer->nInChannels; chIdx++ )
                {
                    float foa_const = hBinRenderer->hReverb->foa_enc[chIdx][1];
@@ -899,6 +924,7 @@ static void ivas_binaural_obtain_DMX(
                }
            }
        }
    }

    return;
}
@@ -1187,7 +1213,11 @@ ivas_error ivas_binRenderer_open(
#ifdef NONBE_FIX_1058_DECODER_ERROR_WITH_REVERB_ROOM
        if ( hBinRenderer->hInputSetup->is_loudspeaker_setup == 0 )
#else
#ifdef NONBE_FIX_987_PARAMC_BINAURAL_REVERB_RENDERING
        if ( hBinRenderer->hInputSetup->is_loudspeaker_setup == 0 && hBinRenderer->nInChannels != HOA3_CHANNELS )
#else
        if ( hBinRenderer->hInputSetup->is_loudspeaker_setup == 0 )
#endif
#endif
        {
            for ( k = 0; k < 11; k++ )