Commit 6a244061 authored by Dominik Weckbecker's avatar Dominik Weckbecker 💬
Browse files

port NONBE_1352_HARMONIZE_OSBA_LOUDNESS from float MR 2184

parent ec0a9888
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -208,6 +208,7 @@
#define FIX_1849_OBJ_EDITING_API
#define NONBE_FIX_1262_OSBA_STEREO
#define NONBE_1339_FIXOSBA_EXT_LOUDNESS
#define NONBE_1352_HARMONIZE_OSBA_LOUDNESS             /* FhG: do not scale OSBA inputs by 0.5 any more */


/* #################### End BASOP porting switches ############################ */
+12 −0
Original line number Diff line number Diff line
@@ -1283,6 +1283,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
        {
@@ -1312,6 +1318,12 @@ ivas_error ivas_jbm_dec_render(
                }
#endif
            }
#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 )
+16 −3
Original line number Diff line number Diff line
@@ -184,12 +184,20 @@ 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] );
                        ( 0.5f * Cldfb_ImagBuffer[b] )
#else
                        st_ivas->hSplitBinRend->hMultiBinCldfbData->Cldfb_ImagBuffer_Binaural[n][slot_idx_start + slot_idx][b] + Cldfb_ImagBuffer[b];
#endif
                }
            }
        }
@@ -206,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
            }
        }
    }
@@ -296,8 +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;
@@ -351,7 +364,7 @@ void ivas_osba_stereo_add_channels(
#endif


#ifdef NONBE_FIX_1262_OSBA_STEREO
#if defined(NONBE_FIX_1262_OSBA_STEREO) && !defined( 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 );