Commit defe9447 authored by multrus's avatar multrus
Browse files

port float MR 1861

parent 3f8110ec
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -137,6 +137,7 @@
#define FIX_1053_REVERB_RECONFIGURATION
#define TMP_FIX_1119_SPLIT_RENDERING_VOIP               /* FhG: Add error check for unsupported config: split rendering with VoIP mode */
#define FIX_1113_EXTREND_ISAR                           /* FhG: issue 1113: fix external renderer asserts for FOA/HOA2 and CLDFB config */
#define NONBE_1203_MDCT2DFT_SWITCHING                   /* VA: issue 1203: fix severe artifacts during MDCT to DFT stereo switching when MDCT ITD is not used */

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

+17 −0
Original line number Diff line number Diff line
@@ -573,6 +573,9 @@ void stereo_td_itd_mdct_stereo_fx(
    Word16 DFT_e[CPE_CHANNELS];
    Word16 DFT_tmp_e[CPE_CHANNELS][STEREO_DFT_N_MAX_ENC];
    STEREO_MDCT_ENC_DATA_HANDLE hStereoMdct;
#ifdef NONBE_1203_MDCT2DFT_SWITCHING
    Word16 dft_ovl;
#endif

    test();
    IF( hCPE->hStereoMdct != NULL && hCPE->hStereoMdct->hItd != NULL )
@@ -611,6 +614,20 @@ void stereo_td_itd_mdct_stereo_fx(
        /* Time Domain ITD compensation using extrapolation */
        stereo_td_itd_fx( hStereoMdct->hItd, NULL, NULL, 1, hStereoMdct->hDft_ana->dft_ovl, hCPE->hCoreCoder, input_frame, hCPE->input_mem_fx, hCPE->q_input_mem );
    }
#ifdef NONBE_1203_MDCT2DFT_SWITCHING
    ELSE IF( hCPE->input_mem_fx[0] != NULL )
    {
        dft_ovl = extract_l( Mpy_32_32( imult3216( input_frame, STEREO_DFT_OVL_MAX ), 2236963 ) ); // 1/L_FRAME48k = 2236963 (Q31)

        FOR( i = 0; i < CPE_CHANNELS; i++ )
        {
            Copy_Scale_sig32_16( hCPE->hCoreCoder[i]->input32_fx + input_frame - dft_ovl, hCPE->input_mem_fx[i], dft_ovl, 0 ); /* sts[n]->q_inp32 - 16 */
            hCPE->q_input_mem[i] = sub( hCPE->hCoreCoder[i]->q_inp32, 16 );
            move16();
        }
    }
#endif


    return;
}
+4 −1
Original line number Diff line number Diff line
@@ -649,6 +649,9 @@ void stereo_switching_enc_fx(
    dft_ovl = extract_l( Mpy_32_32( imult3216( input_frame, STEREO_DFT_OVL_MAX ), 2236963 ) ); // 1/L_FRAME48k = 2236963 (Q31)

    /* update DFT analysis overlap memory */
#ifdef NONBE_1203_MDCT2DFT_SWITCHING
    /* note: in MDCT stereo, the update is done in stereo_td_itd_mdct_stereo() */
#endif
    test();
    test();
    IF( GT_16( hCPE->element_mode, IVAS_CPE_DFT ) && hCPE->input_mem_fx[0] != NULL && NE_16( hCPE->element_mode, IVAS_CPE_MDCT ) )