Commit 83665b32 authored by emerit's avatar emerit
Browse files

Merge branch 'main' into float-1530-Non-diegetic_panning_of_mono_to_stereo_is_3LKFS_quieter

parents 9e601d58 d2574125
Loading
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -292,14 +292,27 @@ void scale_st(
void blend_subfr2(
    float *sigIn1,
    float *sigIn2,
#ifdef FIX_FLOAT_1533_BLEND_SUBFR2
    int16_t L_subfr,
#endif
    float *sigOut )
{
#ifdef FIX_FLOAT_1533_BLEND_SUBFR2
    float fac1 = 1.f - ( 1.f / L_subfr );
    float fac2 = 0.f + ( 1.f / L_subfr );
    float step = 1.f / ( L_subfr / 2 );
#else
    float fac1 = 1.f - ( 1.f / L_SUBFR );
    float fac2 = 0.f + ( 1.f / L_SUBFR );
    float step = 1.f / ( L_SUBFR / 2 );
#endif
    int16_t i;

#ifdef FIX_FLOAT_1533_BLEND_SUBFR2
    for ( i = 0; i < L_subfr / 2; i++ )
#else
    for ( i = 0; i < L_SUBFR / 2; i++ )
#endif
    {
        sigOut[i] = fac1 * sigIn1[i] + fac2 * sigIn2[i];
        fac1 -= step;
+3 −0
Original line number Diff line number Diff line
@@ -164,6 +164,7 @@
#define FIX_2235_TD_RENDERER_WORD16                     /* Eri: For float: small synch with BASOP, removing unnecessary abs. BASOP: Use Word16 in TD renderer without converting to Word32 */
#define FIX_FLOAT_1526_DIRAC_MEM_LEAK                   /* FhG: potential memory leak in DirAC handles in case of format switching */
#define ALIGN_ACELP_CORE                                /* VA: align ACELP core functions with BASOP */
#define FIX_1532_MSAN_ERR_AMR_FIRST_FRAME_IS_SID        /* FhG: fix msan complaint in AMR-WB when first frame is an SID */

/* #################### End BE switches ################################## */

@@ -172,6 +173,8 @@
#define FIX_FLOAT_1493_MASA_ENCODE_STABILITY_IMPROVE    /* Nokia: float issue 1493: Improves float decision stability in MASA encoding by adjusting reduction code */

#define FIX_2432_ISM_SPIKES_16KHZ                       /* VA: basop issue 2432: fix spikes in ISM decoding at 16kHz output sampling rate */
#define FIX_FLOAT_1518                                  /* FhG: fix issue 1518: loudness differences in OSBA decoding to mono or stereo output */
#define FIX_FLOAT_1533_BLEND_SUBFR2                     /* FhG: float issue 1533: correct blending in blend_subfr2() */

#define FIX_1530_Codec_Level_Harmonization_Non_diegetic_panning /* FhG: Adjust non-diegetic panning law to harmonize codec levels with 3GPP reference software */
/* ##################### End NON-BE switches ########################### */
+4 −1
Original line number Diff line number Diff line
@@ -10045,6 +10045,9 @@ int16_t tbe_celp_exc_offset(
void blend_subfr2(
    float *sigIn1, /* i  : input signal for fade-out */
    float *sigIn2, /* i  : input signal for fade-in  */
#ifdef FIX_FLOAT_1533_BLEND_SUBFR2
    int16_t L_subfr, /* i  : subframe length           */
#endif
    float *sigOut /* o  : output signal             */
);

+4 −0
Original line number Diff line number Diff line
@@ -1091,7 +1091,11 @@ ivas_error acelp_core_dec(
            syn_filt( Aq, M, temp_buf + M + L_SUBFR, temp_buf, L_SUBFR, st->hPFstat->mem_stp + L_SYN_MEM - M, 0 );
            scale_st( syn, temp_buf, &st->hPFstat->gain_prec, L_SUBFR, -1 );
            mvr2r( temp_buf, syn, L_SUBFR / 2 );
#ifdef FIX_FLOAT_1533_BLEND_SUBFR2
            blend_subfr2( temp_buf + L_SUBFR / 2, syn + L_SUBFR / 2, L_SUBFR, syn + L_SUBFR / 2 );
#else
            blend_subfr2( temp_buf + L_SUBFR / 2, syn + L_SUBFR / 2, syn + L_SUBFR / 2 );
#endif
        }
        st->hPFstat->on = 0;
    }
+4 −0
Original line number Diff line number Diff line
@@ -201,7 +201,11 @@ ivas_error acelp_core_switch_dec(
            syn_filt( Aq, M, old_exc, bpf_error_signal, L_SUBFR, st->hPFstat->mem_stp + L_SYN_MEM - M, 0 );
            scale_st( synth_intFreq, bpf_error_signal, &st->hPFstat->gain_prec, L_SUBFR, -1 );
            mvr2r( bpf_error_signal, synth_intFreq, L_SUBFR / 2 );
#ifdef FIX_FLOAT_1533_BLEND_SUBFR2
            blend_subfr2( bpf_error_signal + L_SUBFR / 2, synth_intFreq + L_SUBFR / 2, L_SUBFR, synth_intFreq + L_SUBFR / 2 );
#else
            blend_subfr2( bpf_error_signal + L_SUBFR / 2, synth_intFreq + L_SUBFR / 2, synth_intFreq + L_SUBFR / 2 );
#endif
        }
        st->hPFstat->on = 0;

Loading