Commit 741d04bb authored by vaclav's avatar vaclav
Browse files

port FIX_911_REMOVE_CREND_DUPLICATION

parent f9a567b8
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -181,6 +181,7 @@
#define SPLIT_REND_POSE_CORRECTION_UNUSED_BITS
#define ISAR_BITSTREAM_UPDATE_LC3PLUS                   /* FhG: Multiple improvements to the ISAR bitstream when LC3plus is used. See MR 1456 for details. */
#endif
#define FIX_911_REMOVE_CREND_DUPLICATION                /* VA: issue 911: resolve duplication of CRend binaural external renderer function */

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

+2 −0
Original line number Diff line number Diff line
@@ -2045,6 +2045,7 @@ static ivas_error ivas_rend_crendConvolver(
    return IVAS_ERR_OK;
}

#ifndef FIX_911_REMOVE_CREND_DUPLICATION
/*-----------------------------------------------------------------------------------------*
 * Function ivas_rend_crend_Process()
 *
@@ -2214,6 +2215,7 @@ ivas_error ivas_rend_crendProcess(
    pop_wmops();
    return IVAS_ERR_OK;
}
#endif

/*-----------------------------------------------------------------------------------------*
 * Function ivas_rend_crendProcessSubframe()
+3 −0
Original line number Diff line number Diff line
@@ -1252,6 +1252,8 @@ ivas_error ivas_rend_initCrendWrapper(
    CREND_WRAPPER_HANDLE *pCrend 
#endif
);

#ifndef FIX_911_REMOVE_CREND_DUPLICATION
ivas_error ivas_rend_crendProcess(
    const CREND_WRAPPER *pCrend,
    const AUDIO_CONFIG inConfig,
@@ -1269,6 +1271,7 @@ ivas_error ivas_rend_crendProcess(
    const Word16 num_subframes                                 /* i  : number of subframes to render */
#endif
);
#endif
ivas_error ivas_rend_crendProcessSubframe(
    const CREND_WRAPPER *pCrend,                                /* i/o: Crend wrapper handle                    */
    const AUDIO_CONFIG inConfig,                                /* i  : input audio configuration               */
+42 −1
Original line number Diff line number Diff line
@@ -5985,10 +5985,14 @@ static ivas_error renderIsmToBinauralRoom(

#ifdef SPLIT_REND_WITH_HEAD_ROT
    /* render 7_1_4 with BRIRs */
#ifdef FIX_911_REMOVE_CREND_DUPLICATION
    IF( NE_32( ( error = ivas_rend_crendProcessSubframe( ismInput->crendWrapper, IVAS_AUDIO_CONFIG_7_1_4, IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR, NULL, NULL, NULL, NULL, NULL, p_tmpRendBuffer, p_tmpRendBuffer, ismInput->base.inputBuffer.config.numSamplesPerChannel, *ismInput->base.ctx.pOutSampleRate, 0 ) ), IVAS_ERR_OK ) )
#else
    IF( NE_32( ( error = ivas_rend_crendProcess( ismInput->crendWrapper, IVAS_AUDIO_CONFIG_7_1_4, IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR,
                                                 NULL, NULL, NULL, NULL, p_tmpRendBuffer, *ismInput->base.ctx.pOutSampleRate,
                                                 getNumSubframesInBuffer( &outAudio, *ismInput->base.ctx.pOutSampleRate ), 0 ) ),
               IVAS_ERR_OK ) )
#endif
#else
    /* render 7_1_4 with BRIRs */
    IF( NE_32( ( error = ivas_rend_crendProcess( ismInput->crendWrapper, IVAS_AUDIO_CONFIG_7_1_4, IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR,
@@ -6805,9 +6809,13 @@ static ivas_error renderMcToBinaural(

        /* call CREND */
#ifdef SPLIT_REND_WITH_HEAD_ROT
#ifdef FIX_911_REMOVE_CREND_DUPLICATION
        IF( NE_32( ( error = ivas_rend_crendProcessSubframe( mcInput->crendWrapper, mcInput->base.inConfig, outConfig, NULL, NULL, NULL, NULL, NULL, p_tmpRendBuffer_fx, p_tmpRendBuffer_fx, mcInput->base.inputBuffer.config.numSamplesPerChannel, *mcInput->base.ctx.pOutSampleRate, 0 ) ), IVAS_ERR_OK ) )
#else
        IF( NE_32( ( error = ivas_rend_crendProcess( mcInput->crendWrapper, mcInput->base.inConfig, outConfig, NULL, NULL, NULL, NULL, p_tmpRendBuffer_fx, *mcInput->base.ctx.pOutSampleRate,
                                                     getNumSubframesInBuffer( &outAudio, *mcInput->base.ctx.pOutSampleRate ), 0 ) ),
                   IVAS_ERR_OK ) )
#endif
#else
        IF( NE_32( ( error = ivas_rend_crendProcess( mcInput->crendWrapper, mcInput->base.inConfig, outConfig, NULL, NULL, NULL, NULL, p_tmpRendBuffer_fx, *mcInput->base.ctx.pOutSampleRate,
                                                     getNumSubframesInBuffer( &outAudio, *mcInput->base.ctx.pOutSampleRate ) ) ),
@@ -6816,6 +6824,7 @@ static ivas_error renderMcToBinaural(
        {
            return error;
        }

        IF( hCrend->hReverb != NULL )
        {
            exp = sub( exp, 2 );
@@ -6951,9 +6960,13 @@ static ivas_error renderMcToBinauralRoom(

        /* call CREND */
#ifdef SPLIT_REND_WITH_HEAD_ROT
#ifdef FIX_911_REMOVE_CREND_DUPLICATION
        IF( NE_32( ( error = ivas_rend_crendProcessSubframe( mcInput->crendWrapper, mcInput->base.inConfig, outConfig, NULL, NULL, NULL, NULL, NULL, p_tmpRendBuffer, p_tmpRendBuffer, mcInput->base.inputBuffer.config.numSamplesPerChannel, *mcInput->base.ctx.pOutSampleRate, 0 ) ), IVAS_ERR_OK ) )
#else
        IF( NE_32( ( error = ivas_rend_crendProcess( mcInput->crendWrapper, mcInput->base.inConfig, outConfig, NULL, NULL, NULL, NULL, p_tmpRendBuffer, *mcInput->base.ctx.pOutSampleRate,
                                                     getNumSubframesInBuffer( &outAudio, *mcInput->base.ctx.pOutSampleRate ), 0 ) ),
                   IVAS_ERR_OK ) )
#endif
#else
        IF( NE_32( ( error = ivas_rend_crendProcess( mcInput->crendWrapper, mcInput->base.inConfig, outConfig, NULL, NULL, NULL, NULL, p_tmpRendBuffer, *mcInput->base.ctx.pOutSampleRate,
                                                     getNumSubframesInBuffer( &outAudio, *mcInput->base.ctx.pOutSampleRate ) ) ),
@@ -6962,6 +6975,7 @@ static ivas_error renderMcToBinauralRoom(
        {
            return error;
        }

        IF( hCrend->hReverb != NULL )
        {
            exp = sub( exp, Q2 );
@@ -7082,11 +7096,16 @@ static ivas_error renderMcCustomLsToBinauralRoom(
#else
    hCrend = mcInput->crendWrapper->hCrend;
#endif

    /* call CREND */
#ifdef SPLIT_REND_WITH_HEAD_ROT
#ifdef FIX_911_REMOVE_CREND_DUPLICATION
    IF( NE_32( ( error = ivas_rend_crendProcessSubframe( mcInput->crendWrapper, IVAS_AUDIO_CONFIG_7_1_4, outConfig, NULL, NULL, NULL, NULL, NULL, p_tmpCrendBuffer, p_tmpCrendBuffer, mcInput->base.inputBuffer.config.numSamplesPerChannel, *mcInput->base.ctx.pOutSampleRate, 0 ) ), IVAS_ERR_OK ) )
#else
    IF( NE_32( ( error = ivas_rend_crendProcess( mcInput->crendWrapper, IVAS_AUDIO_CONFIG_7_1_4, outConfig, NULL, NULL, NULL, NULL,
                                                 p_tmpCrendBuffer, *mcInput->base.ctx.pOutSampleRate, getNumSubframesInBuffer( &outAudio, *mcInput->base.ctx.pOutSampleRate ), 0 ) ),
               IVAS_ERR_OK ) )
#endif
#else
    IF( NE_32( ( error = ivas_rend_crendProcess( mcInput->crendWrapper, IVAS_AUDIO_CONFIG_7_1_4, outConfig, NULL, NULL, NULL, NULL,
                                                 p_tmpCrendBuffer, *mcInput->base.ctx.pOutSampleRate, getNumSubframesInBuffer( &outAudio, *mcInput->base.ctx.pOutSampleRate ) ) ),
@@ -7095,6 +7114,7 @@ static ivas_error renderMcCustomLsToBinauralRoom(
    {
        return error;
    }

    IF( hCrend->hReverb != NULL )
    {
        exp = sub( exp, 2 );
@@ -7341,9 +7361,16 @@ static ivas_error renderMcToSplitBinaural(
            copyBufferTo2dArray_fx( tmpRotBuffer, tmpRendBuffer );

            /* call CREND (rotation already performed) */
#ifdef FIX_911_REMOVE_CREND_DUPLICATION
            IF( NE_32( ( error = ivas_rend_crendProcessSubframe( mcInput->crendWrapper, mcInput->base.inConfig, outConfig, NULL, NULL, NULL, NULL, NULL, p_tmpRendBuffer, p_tmpRendBuffer, mcInput->base.inputBuffer.config.numSamplesPerChannel, *mcInput->base.ctx.pOutSampleRate, pos_idx ) ), IVAS_ERR_OK ) )
#else
            IF( NE_32( ( error = ivas_rend_crendProcess( mcInput->crendWrapper, mcInput->base.inConfig, outConfig, NULL, NULL, NULL, NULL,
                                                         p_tmpRendBuffer, *mcInput->base.ctx.pOutSampleRate, getNumSubframesInBuffer( &tmpRotBuffer, *mcInput->base.ctx.pOutSampleRate ), pos_idx ) ),
                       IVAS_ERR_OK ) )
#endif
            {
                return error;
            }

            IF( EQ_16( pos_idx, 0 ) )
            {
@@ -7614,9 +7641,13 @@ static ivas_error renderSbaToMultiBinaural(
        assert( sbaInput->crendWrapper->hCrend[0]->hReverb == NULL );

        /* call CREND */
#ifdef FIX_911_REMOVE_CREND_DUPLICATION
        IF( NE_32( ( error = ivas_rend_crendProcessSubframe( sbaInput->crendWrapper, sbaInput->base.inConfig, outConfig, NULL, NULL, NULL, NULL, NULL, p_tmpCrendBuffer, p_tmpCrendBuffer, sbaInput->base.inputBuffer.config.numSamplesPerChannel, *sbaInput->base.ctx.pOutSampleRate, pos_idx ) ), IVAS_ERR_OK ) )
#else
        IF( NE_32( ( error = ivas_rend_crendProcess( sbaInput->crendWrapper, sbaInput->base.inConfig, outConfig, NULL, NULL, NULL, NULL, p_tmpCrendBuffer, *sbaInput->base.ctx.pOutSampleRate,
                                                     getNumSubframesInBuffer( &tmpRotBuffer, *sbaInput->base.ctx.pOutSampleRate ), pos_idx ) ),
                   IVAS_ERR_OK ) )
#endif
        {
            return error;
        }
@@ -7806,9 +7837,13 @@ static ivas_error renderSbaToBinaural(

        /* call CREND */
#ifdef SPLIT_REND_WITH_HEAD_ROT
#ifdef FIX_911_REMOVE_CREND_DUPLICATION
        IF( NE_32( ( error = ivas_rend_crendProcessSubframe( sbaInput->crendWrapper, sbaInput->base.inConfig, outConfig, NULL, NULL, NULL, NULL, NULL, output_fx, output_fx, sbaInput->base.inputBuffer.config.numSamplesPerChannel, *sbaInput->base.ctx.pOutSampleRate, 0 ) ), IVAS_ERR_OK ) )
#else
        IF( NE_32( ( error = ivas_rend_crendProcess( sbaInput->crendWrapper, sbaInput->base.inConfig, outConfig, NULL, NULL, NULL, NULL, output_fx, *sbaInput->base.ctx.pOutSampleRate,
                                                     getNumSubframesInBuffer( &outAudio, *sbaInput->base.ctx.pOutSampleRate ), 0 ) ),
                   IVAS_ERR_OK ) )
#endif
#else
        IF( NE_32( ( error = ivas_rend_crendProcess( sbaInput->crendWrapper, sbaInput->base.inConfig, outConfig, NULL, NULL, NULL, NULL, output_fx, *sbaInput->base.ctx.pOutSampleRate,
                                                     getNumSubframesInBuffer( &outAudio, *sbaInput->base.ctx.pOutSampleRate ) ) ),
@@ -7817,6 +7852,7 @@ static ivas_error renderSbaToBinaural(
        {
            return error;
        }

        IF( hCrend->hReverb != NULL )
        {
            *outAudio.pq_fact = sub( *outAudio.pq_fact, Q2 );
@@ -7938,10 +7974,14 @@ static ivas_error renderSbaToBinauralRoom(

    /* call CREND */
#ifdef SPLIT_REND_WITH_HEAD_ROT
#ifdef FIX_911_REMOVE_CREND_DUPLICATION
    IF( NE_32( ( error = ivas_rend_crendProcessSubframe( sbaInput->crendWrapper, IVAS_AUDIO_CONFIG_7_1_4, outConfig, NULL, NULL, NULL, NULL, NULL, p_tmpCrendBuffer, p_tmpCrendBuffer, sbaInput->base.inputBuffer.config.numSamplesPerChannel, *sbaInput->base.ctx.pOutSampleRate, 0 ) ), IVAS_ERR_OK ) )
#else
    IF( NE_32( ( error = ivas_rend_crendProcess( sbaInput->crendWrapper, IVAS_AUDIO_CONFIG_7_1_4, outConfig,
                                                 NULL, NULL, NULL, NULL, p_tmpCrendBuffer, *sbaInput->base.ctx.pOutSampleRate,
                                                 getNumSubframesInBuffer( &outAudio, *sbaInput->base.ctx.pOutSampleRate ), 0 ) ),
               IVAS_ERR_OK ) )
#endif
#else
    IF( NE_32( ( error = ivas_rend_crendProcess( sbaInput->crendWrapper, IVAS_AUDIO_CONFIG_7_1_4, outConfig,
                                                 NULL, NULL, NULL, NULL, p_tmpCrendBuffer, *sbaInput->base.ctx.pOutSampleRate,
@@ -7951,6 +7991,7 @@ static ivas_error renderSbaToBinauralRoom(
    {
        return error;
    }

    IF( hCrend->hReverb != NULL )
    {
        *outAudio.pq_fact = sub( *outAudio.pq_fact, 2 );