Commit 83938b65 authored by kinuthia's avatar kinuthia
Browse files

Merge branch 'main' into 1353-6-dof-headtracking-not-described-in-readme-txt

parents b3a9f5f9 05645dec
Loading
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -3491,14 +3491,20 @@ static void parseCombinedFormatInput(
        inConfig->numAmbisonicsBuses = 1;
        inConfig->ambisonicsBuses[0].audioConfig = audioConfig;
        inConfig->ambisonicsBuses[0].inputChannelIndex = inConfig->numAudioObjects;
#ifdef NONBE_1352_HARMONIZE_OSBA_LOUDNESS
        inConfig->ambisonicsBuses[0].gain_dB = 0.f;
#else
        inConfig->ambisonicsBuses[0].gain_dB = -6.f;
#endif
        *configString += 4;

#ifndef NONBE_1352_HARMONIZE_OSBA_LOUDNESS
        /* Modify input gain for objects too */
        for ( int16_t i = 0; i < inConfig->numAudioObjects; ++i )
        {
            inConfig->audioObjects[i].gain_dB = -6.f;
        }
#endif
    }
    else if ( audioConfig == IVAS_AUDIO_CONFIG_MASA1 || audioConfig == IVAS_AUDIO_CONFIG_MASA2 )
    {
+1 −0
Original line number Diff line number Diff line
@@ -175,6 +175,7 @@
#define NONBE_1122_KEEP_EVS_MODE_UNCHANGED              /* FhG: Disables fix for issue 1122 in EVS mode to keep BE tests green. This switch should be removed once the 1122 fix is added to EVS via a CR.  */
#define NONBE_FIX_TCX5_INTERLEAVING_FOR_FS_IN_UNEQUAL_FS_OUT /* FhG: apply correct TCX5 grouping/interleaving when input_fs != output_fs */
#define NONBE_1339_FIXOSBA_EXT_LOUDNESS                 /* FhG: issue 1339: apply scaling with EXT output in OSBA high-BR mode */
#define NONBE_1352_HARMONIZE_OSBA_LOUDNESS             /* FhG: do not scale OSBA inputs by 0.5 any more */

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

+13 −1
Original line number Diff line number Diff line
@@ -1110,7 +1110,7 @@ ivas_error ivas_jbm_dec_render(
                {
                    mvr2r( p_tc[n], p_output[n], *nSamplesRendered );
                }
#ifdef NONBE_1339_FIXOSBA_EXT_LOUDNESS
#if defined( NONBE_1339_FIXOSBA_EXT_LOUDNESS ) && !defined( NONBE_1352_HARMONIZE_OSBA_LOUDNESS )
                for ( n = 0; n < st_ivas->hDecoderConfig->nchan_out; n++ )
                {
                    v_multc( p_output[n], 0.5f, p_output[n], *nSamplesRendered );
@@ -1128,6 +1128,12 @@ ivas_error ivas_jbm_dec_render(
        else if ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM )
        {
            ivas_dirac_dec_binaural_render( st_ivas, nSamplesAskedLocal, nSamplesRendered, nSamplesAvailableNext, nchan_remapped, p_output );
#ifdef NONBE_1352_HARMONIZE_OSBA_LOUDNESS
            for ( n = 0; n < st_ivas->hDecoderConfig->nchan_out; n++ )
            {
                v_multc( p_output[n], 2.0f, p_output[n], *nSamplesRendered );
            }
#endif
        }
        else
        {
@@ -1150,6 +1156,12 @@ ivas_error ivas_jbm_dec_render(
                    set_zero( p_output[n], *nSamplesRendered );
                }
            }
#ifdef NONBE_1352_HARMONIZE_OSBA_LOUDNESS
            for ( n = 0; n < st_ivas->hDecoderConfig->nchan_out; n++ )
            {
                v_multc( p_output[n], 2.0f, p_output[n], *nSamplesRendered );
            }
#endif
        }
    }
    else if ( st_ivas->ivas_format == MC_FORMAT )
+18 −1
Original line number Diff line number Diff line
@@ -183,12 +183,21 @@ ivas_error ivas_osba_dirac_td_binaural_jbm(
                for ( b = 0; b < num_cldfb_bands; b++ )
                {
                    st_ivas->hSplitBinRend->hMultiBinCldfbData->Cldfb_RealBuffer_Binaural[n][slot_idx_start + slot_idx][b] =
#ifndef NONBE_1352_HARMONIZE_OSBA_LOUDNESS
                        ( 0.5f * st_ivas->hSplitBinRend->hMultiBinCldfbData->Cldfb_RealBuffer_Binaural[n][slot_idx_start + slot_idx][b] ) +
                        ( 0.5f * Cldfb_RealBuffer[b] );

#else
                        st_ivas->hSplitBinRend->hMultiBinCldfbData->Cldfb_RealBuffer_Binaural[n][slot_idx_start + slot_idx][b] +
                        Cldfb_RealBuffer[b];
#endif
                    st_ivas->hSplitBinRend->hMultiBinCldfbData->Cldfb_ImagBuffer_Binaural[n][slot_idx_start + slot_idx][b] =
#ifndef NONBE_1352_HARMONIZE_OSBA_LOUDNESS
                        ( 0.5f * st_ivas->hSplitBinRend->hMultiBinCldfbData->Cldfb_ImagBuffer_Binaural[n][slot_idx_start + slot_idx][b] ) +
                        ( 0.5f * Cldfb_ImagBuffer[b] );
#else
                        st_ivas->hSplitBinRend->hMultiBinCldfbData->Cldfb_ImagBuffer_Binaural[n][slot_idx_start + slot_idx][b] +
                        Cldfb_ImagBuffer[b];
#endif
                }
            }
        }
@@ -205,7 +214,11 @@ ivas_error ivas_osba_dirac_td_binaural_jbm(
            int16_t i;
            for ( i = 0; i < nSamplesAsked; i++ )
            {
#ifndef NONBE_1352_HARMONIZE_OSBA_LOUDNESS
                output_f[n][i] = 0.5f * output_f[channel_offset + n][i] + 0.5f * p_sepobj[n][i];
#else
                output_f[n][i] = output_f[channel_offset + n][i] + p_sepobj[n][i];
#endif
            }
        }
    }
@@ -295,7 +308,9 @@ ivas_error ivas_osba_render_sf(
            v_add( p_output[n], p_output_ism[n], p_output[n], *nSamplesRendered );
        }

#ifndef NONBE_1352_HARMONIZE_OSBA_LOUDNESS
        v_multc( p_output[n], 0.5f, p_output[n], *nSamplesRendered );
#endif
    }

    return IVAS_ERR_OK;
@@ -338,10 +353,12 @@ void ivas_osba_stereo_add_channels(
        }
    }

#ifndef NONBE_1352_HARMONIZE_OSBA_LOUDNESS
    for ( n = 0; n < nchan_out; n++ )
    {
        v_multc( output_f[n], 0.5f, output_f[n], n_samples_to_render );
    }
#endif

    return;
}