Commit 38244a54 authored by Mohammadreza Naghibzadeh's avatar Mohammadreza Naghibzadeh
Browse files

Add synth_q to decoder_tcx_ivas_fx() arguments

parent b01be322
Loading
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -9101,6 +9101,9 @@ void decoder_tcx_ivas_fx(
    Word16 Aind[],
    Word16 synth_fx[],
    Word16 synthFB_fx[],
#ifdef FIX_1793_DEC_MC_TO_MONO_SCALING_ISSUE
    Word16 *synth_q,
#endif
    const Word16 bfi,
    const Word16 frame_cnt,
    const Word16 sba_dirac_stereo_flag );
+9 −4
Original line number Diff line number Diff line
@@ -3972,8 +3972,14 @@ void decoder_tcx_ivas_fx(
    Word16 prm[],
    Word16 A_fx[], // Q: 14 - norm_s(A_fx[0])
    Word16 Aind[], // Q: 14 - norm_s(Aind[0])
#ifdef FIX_1793_DEC_MC_TO_MONO_SCALING_ISSUE
    Word16 synth_fx[],
    Word16 synthFB_fx[],
    Word16 *synth_q,
#else
    Word16 synth_fx[],   // Q_syn
    Word16 synthFB_fx[], // Q_syn
#endif
    const Word16 bfi,
    const Word16 frame_cnt,
    const Word16 sba_dirac_stereo_flag )
@@ -4080,8 +4086,7 @@ void decoder_tcx_ivas_fx(
    q_min = s_min( q_min, st->Q_syn );
    scale_sig( synth_fx, L_frame_glob, sub( q_min, q_win ) );
    scale_sig( synthFB_fx, L_frameTCX_glob, sub( q_min, q_winFB ) );
    st->Q_syn_factor = sub( q_min, st->Q_syn );
    st->Q_syn = q_min;
    *synth_q = q_min;
#else
    Scale_sig( synth_fx, L_frame_glob, sub( st->Q_syn, q_win ) );
    Scale_sig( synthFB_fx, L_frameTCX_glob, sub( st->Q_syn, q_winFB ) );
+28 −1
Original line number Diff line number Diff line
@@ -234,7 +234,9 @@ void stereo_tcx_core_dec_fx(
    Word16 *synth_fx;
    Word16 synth_bufFB_fx[OLD_SYNTH_SIZE_DEC + L_FRAME_PLUS + M];
    Word16 *synthFB_fx;

#ifdef FIX_1793_DEC_MC_TO_MONO_SCALING_ISSUE
    Word16 synth_q[2];
#endif
    Word32 psd_fx[L_FRAME16k];
    Word32 psd_part_fx[NPART_SHAPING];
    Word16 psd_part_e;
@@ -599,7 +601,13 @@ void stereo_tcx_core_dec_fx(
        }

        /* TCX decoder */
#ifdef FIX_1793_DEC_MC_TO_MONO_SCALING_ISSUE
        decoder_tcx_ivas_fx( st, prm, Aq_fx, Aind, &synth_fx[0], &synthFB_fx[0], &synth_q[0], bfi, 0, sba_dirac_stereo_flag );
        st->Q_syn_factor = sub( synth_q[0], st->Q_syn );
        st->Q_syn = synth_q[0];
#else
        decoder_tcx_ivas_fx( st, prm, Aq_fx, Aind, &synth_fx[0], &synthFB_fx[0], bfi, 0, sba_dirac_stereo_flag );
#endif
    }

    /*--------------------------------------------------------------------------------*
@@ -628,8 +636,27 @@ void stereo_tcx_core_dec_fx(
            }

            /* TCX decoder */
#ifdef FIX_1793_DEC_MC_TO_MONO_SCALING_ISSUE
            decoder_tcx_ivas_fx( st, prm, Aq_fx, Aind, &synth_fx[k * st->L_frame / 2], &synthFB_fx[k * ( hTcxDec->L_frameTCX / 2 )], &synth_q[k], bfi, k, sba_dirac_stereo_flag );
        }

        Word16 q_min, q_shift;

        q_min = s_min( synth_q[0], synth_q[1] );
        st->Q_syn_factor = sub( q_min, st->Q_syn );
        st->Q_syn = q_min;

        q_shift = sub( q_min, synth_q[0] );
        scale_sig( &synth_fx[0], shr( st->L_frame, 1 ), q_shift );
        scale_sig( &synthFB_fx[0], shr( hTcxDec->L_frameTCX, 1 ), q_shift );

        q_shift = sub( q_min, synth_q[1] );
        scale_sig( &synth_fx[shr( st->L_frame, 1 )], shr( st->L_frame, 1 ), q_shift );
        scale_sig( &synthFB_fx[shr( hTcxDec->L_frameTCX, 1 )], shr( hTcxDec->L_frameTCX, 1 ), q_shift );
#else
            decoder_tcx_ivas_fx( st, prm, Aq_fx, Aind, &synth_fx[k * st->L_frame / 2], &synthFB_fx[k * ( hTcxDec->L_frameTCX / 2 )], bfi, k, sba_dirac_stereo_flag );
        }
#endif
    }

    /*--------------------------------------------------------------------------------*