Commit 5d7a06a6 authored by Archit Tamarapu's avatar Archit Tamarapu
Browse files

Merge branch 'float-1521-sba-stereo-loudness' into 'main'

[non-be][rend-non-be][fix] SBA to stereo rendering loudness

See merge request !2612
parents 01809a5c 6451192b
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -174,6 +174,7 @@
/* any switch which is non-be wrt. TS 26.258 V3.0 */

#define USE_RTPDUMP                                     /* FhG: RTPDUMP format (rtptools standard) instead of custom format */
#define FIX_1521_SBA_LOUDNESS_STEREO                    /* FhG: issue 1521: Fix loudness for SBA to stereo rendering */
#define FIX_1540_EXPOSE_PT_IN_RTP_HEADER_API            /* Expose Payload Type setting in RTP Header */
#define FIX_2500_RENDCONF_REFACTOR                      /* Eri: Basop issue #2500: Renderer configuration range check before conversion to fixed point. Harmonize between BASOP/float */
#define FIX_BASOP_2023_TDREND_DISTATT_PRECISION         /* Eri: Basop issue 2023: Distance attenuation scaling, synch with BASOP updates and adding clamping of distance att input and listener position  */
+19 −0
Original line number Diff line number Diff line
@@ -910,10 +910,29 @@ void ivas_sba_dirac_stereo_dec(
    synchro_synthesis( st_ivas->hDecoderConfig->ivas_total_brate, hCPE, output, output_frame, 1 /*st_ivas->sba_dirac_stereo_flag*/ );

    /* output scaling */
#ifdef FIX_1521_SBA_LOUDNESS_STEREO
    if ( !sba_mono_flag )
#else
    if ( !sba_mono_flag && !( st_ivas->ivas_format == SBA_ISM_FORMAT && st_ivas->ism_mode == ISM_MODE_NONE ) )
#endif
    {
#ifdef FIX_1521_SBA_LOUDNESS_STEREO
        if ( st_ivas->ivas_format == SBA_ISM_FORMAT && st_ivas->ism_mode == ISM_MODE_NONE )
        {
            /* low bitrate OSBA needs a makeup gain of 2.f to compensate for the encoder side
                INV_SQRT2 * 2 = SQRT2  */
            v_multc( output[0], SQRT2, output[0], output_frame );
            v_multc( output[1], SQRT2, output[1], output_frame );
        }
        else
        {
            v_multc( output[0], INV_SQRT2, output[0], output_frame );
            v_multc( output[1], INV_SQRT2, output[1], output_frame );
        }
#else
        v_multc( output[0], 0.5f, output[0], output_frame );
        v_multc( output[1], 0.5f, output[1], output_frame );
#endif
    }

    /* delay HB synth */
+7 −0
Original line number Diff line number Diff line
@@ -129,10 +129,17 @@ ivas_error ivas_sba_get_hoa_dec_matrix(
    }
    else if ( hOutSetup.output_config == IVAS_AUDIO_CONFIG_STEREO )
    {
#ifdef FIX_1521_SBA_LOUDNESS_STEREO
        ( *hoa_dec_mtx )[0] = INV_SQRT2;
        ( *hoa_dec_mtx )[1] = INV_SQRT2;
        ( *hoa_dec_mtx )[SBA_NHARM_HOA3] = INV_SQRT2;
        ( *hoa_dec_mtx )[SBA_NHARM_HOA3 + 1] = -INV_SQRT2;
#else
        ( *hoa_dec_mtx )[0] = 0.5f;
        ( *hoa_dec_mtx )[1] = 0.5f;
        ( *hoa_dec_mtx )[SBA_NHARM_HOA3] = 0.5f;
        ( *hoa_dec_mtx )[SBA_NHARM_HOA3 + 1] = -0.5f;
#endif
    }
    else if ( hOutSetup.is_loudspeaker_setup )
    {