Commit 788c16aa authored by Dominik Weckbecker's avatar Dominik Weckbecker 💬
Browse files

Merge branch '977_Output-gain-mismatch-for-different-bit-rates-in-OSBA' into 'main'

[non-BE]Fixing the output gain for BRs 192kbps and below so that it matches the same...

See merge request !1341
parents 30d00063 419a04b4
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -176,6 +176,7 @@
#define NONBE_FIX_949_MC_5MS_FRAMING                          /* Dlb: issue 949: fix for issue 949, distorted output in MC mode with 5ms framing*/
#define NONBE_FIX_952_MC_PARAMUPMIX_5MS                       /* Dlb : issue 952 : Differences between 5ms and 20ms rendering for ParamUpmix*/
#define NONBE_FIX_968_ISM_BRIR_WITH_HEADROTATION_5MS_FIX      /* FhG : issue #968: differences between 5ms and 20ms rendering for discrete ISM with BRIR and head rotation*/
#define NONBE_FIX_977_OSBA_GAIN_MISMATCH                      /* Dlb : issue 977 : Output gain mismatch for different bit rates in OSBA */

/* ##################### End NON-BE switches ########################### */

+8 −0
Original line number Diff line number Diff line
@@ -72,7 +72,11 @@ static void ivas_merge_sba_transports(
    {
        for ( j = 0; j < input_frame; j++ )
        {
#ifdef NONBE_FIX_977_OSBA_GAIN_MISMATCH
            data_out_f[i][j] = 0.5f * ( data_in_f1[i][j] + data_in_f2[i][j] );
#else
            data_out_f[i][j] = ( data_in_f1[i][j] + data_in_f2[i][j] );
#endif
        }
    }

@@ -443,7 +447,9 @@ static void ivas_osba_render_ism_to_sba(
    int16_t azimuth, elevation;
    float gains[MAX_INPUT_CHANNELS];
    float g1, g2;
#ifndef NONBE_FIX_977_OSBA_GAIN_MISMATCH
    float output_gain;
#endif

    int16_t nchan_sba;

@@ -478,6 +484,7 @@ static void ivas_osba_render_ism_to_sba(
    }

    /* Gain with loudness-matching gains */
#ifndef NONBE_FIX_977_OSBA_GAIN_MISMATCH
    output_gain = 0.7499f;
    for ( j = 0; j < nchan_sba; j++ )
    {
@@ -486,6 +493,7 @@ static void ivas_osba_render_ism_to_sba(
            data_out_f[j][k] *= output_gain;
        }
    }
#endif

    return;
}