Commit 08e7e9b9 authored by multrus's avatar multrus
Browse files

Merge branch '1843_fix_io_qfactor_init' into 'main'

Resolve 1843 - Add initialization of Crend io_qfactor

See merge request !2073
parents 5778d723 b935ad75
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -83,6 +83,7 @@
#define FIX_1766_TCX2ACELP_BWE_ISSUE                         /* VA : Fix rare BWE issue when switching from TCX to ACELP */
#define FIX_1781_SPECTRAL_GAPS                               /* FhG: Change internal calculation of tcx_noise_factor_ivas_fx() to 32-bit*/
#define FIX_ISSUE_1811_EXCEEDING_W_SHIFTS                    /* FhG: limit exceeding 64bit shifts */
#define FIX_1843_IO_QFACTOR_INIT                             /* FhG: initialize CRend's io_qfactor also in IVAS_rend */


/* #################### Start BASOP porting switches ############################ */
+37 −1
Original line number Diff line number Diff line
@@ -246,8 +246,11 @@ static void freeMasaExtRenderer( MASA_EXT_REND_HANDLE *hMasaExtRendOut );
static void intermidiate_ext_dirac_render( MASA_EXT_REND_HANDLE hMasaExtRend, Word16 to_fix );

static ivas_error renderSbaToMultiBinauralCldfb( input_sba *sbaInput, Word32 Cldfb_Out_Real[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], Word32 Cldfb_Out_Imag[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], const Word16 low_res_pre_rend_rot, const Word16 num_subframes, const Word16 Q_in );

#ifdef FIX_1843_IO_QFACTOR_INIT
static ivas_error renderSbaToMultiBinaural( input_sba *sbaInput, const AUDIO_CONFIG outConfig, Word32 out[][L_FRAME48k], const Word16 *pq_fact );
#else
static ivas_error renderSbaToMultiBinaural( input_sba *sbaInput, const AUDIO_CONFIG outConfig, Word32 out[][L_FRAME48k] );
#endif


/*-------------------------------------------------------------------*
@@ -6080,6 +6083,9 @@ static ivas_error renderIsmToBinauralRoom(

    move16();

#ifdef FIX_1843_IO_QFACTOR_INIT
    *ismInput->crendWrapper->p_io_qfactor = *exp;
#endif
    /* render 7_1_4 with BRIRs */
    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 ) )
    {
@@ -6820,6 +6826,9 @@ static ivas_error renderMcToBinaural(
        CREND_HANDLE hCrend;
        hCrend = mcInput->crendWrapper->hCrend[0];

#ifdef FIX_1843_IO_QFACTOR_INIT
        *mcInput->crendWrapper->p_io_qfactor = exp;
#endif
        /* call CREND */
        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 ) )
        {
@@ -6941,6 +6950,9 @@ static ivas_error renderMcToBinauralRoom(
        CREND_HANDLE hCrend;
        hCrend = mcInput->crendWrapper->hCrend[0];

#ifdef FIX_1843_IO_QFACTOR_INIT
        *mcInput->crendWrapper->p_io_qfactor = exp;
#endif
        /* call CREND */
        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 ) )
        {
@@ -7053,6 +7065,9 @@ static ivas_error renderMcCustomLsToBinauralRoom(
    CREND_HANDLE hCrend;
    hCrend = mcInput->crendWrapper->hCrend[0];

#ifdef FIX_1843_IO_QFACTOR_INIT
    *mcInput->crendWrapper->p_io_qfactor = exp;
#endif
    /* call CREND */
    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 ) )
    {
@@ -7292,6 +7307,9 @@ static ivas_error renderMcToSplitBinaural(

            copyBufferTo2dArray_fx( tmpRotBuffer, tmpRendBuffer );

#ifdef FIX_1843_IO_QFACTOR_INIT
            *mcInput->crendWrapper->p_io_qfactor = exp;
#endif
            /* call CREND (rotation already performed) */
            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 ) )
            {
@@ -7475,7 +7493,12 @@ static void renderSbaToSba(
static ivas_error renderSbaToMultiBinaural(
    input_sba *sbaInput,
    const AUDIO_CONFIG outConfig,
#ifdef FIX_1843_IO_QFACTOR_INIT
    Word32 out[][L_FRAME48k],
    const Word16 *pq_fact )
#else
    Word32 out[][L_FRAME48k] )
#endif
{
    Word32 tmpCrendBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k];
    Word32 *p_tmpCrendBuffer[MAX_OUTPUT_CHANNELS];
@@ -7560,6 +7583,9 @@ static ivas_error renderSbaToMultiBinaural(

        assert( sbaInput->crendWrapper->hCrend[0]->hReverb == NULL );

#ifdef FIX_1843_IO_QFACTOR_INIT
        *sbaInput->crendWrapper->p_io_qfactor = *pq_fact;
#endif
        /* call CREND */
        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 ) )
        {
@@ -7632,7 +7658,11 @@ static ivas_error renderSbaToSplitBinaural(
    }
    else
    {
#ifdef FIX_1843_IO_QFACTOR_INIT
        IF( ( error = renderSbaToMultiBinaural( sbaInput, outConfig, tmpCrendBuffer, outAudio.pq_fact ) ) != IVAS_ERR_OK )
#else
        IF( ( error = renderSbaToMultiBinaural( sbaInput, outConfig, tmpCrendBuffer ) ) != IVAS_ERR_OK )
#endif
        {
            return error;
        }
@@ -7731,6 +7761,9 @@ static ivas_error renderSbaToBinaural(
        CREND_HANDLE hCrend;
        hCrend = sbaInput->crendWrapper->hCrend[0];

#ifdef FIX_1843_IO_QFACTOR_INIT
        *sbaInput->crendWrapper->p_io_qfactor = *outAudio.pq_fact;
#endif
        /* call CREND */
        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 ) )
        {
@@ -7843,6 +7876,9 @@ static ivas_error renderSbaToBinauralRoom(
    }
    copyBufferTo2dArray_fx( tmpMcBuffer, tmpCrendBuffer );

#ifdef FIX_1843_IO_QFACTOR_INIT
    *sbaInput->crendWrapper->p_io_qfactor = *outAudio.pq_fact;
#endif
    /* call CREND */
    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 ) )
    {