Commit 14d42e67 authored by Dominik Weckbecker's avatar Dominik Weckbecker 💬
Browse files

Merge branch 'main' into FhG/b_20230405_HO-DirAC

parents 90b3ee43 9f8ea886
Loading
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -1787,7 +1787,7 @@ IsmPositionProvider *IsmPositionProvider_open(
    IsmPositionProvider *ipp;
    uint16_t i;

    ipp = (IsmPositionProvider *) malloc_( sizeof( IsmPositionProvider ) );
    ipp = (IsmPositionProvider *) malloc( sizeof( IsmPositionProvider ) );
    ipp->frameCounter = 0;
    ipp->numObjects = 0;

@@ -2182,8 +2182,8 @@ static void parseIsm(
    if ( parseUint32( line, &numberOfObjectPositionsToRead ) == 0 )
    {
        positionProvider->numPositions[idx] = numberOfObjectPositionsToRead;
        positionProvider->positions[idx] = malloc_( numberOfObjectPositionsToRead * sizeof( IVAS_REND_AudioObjectPosition ) );
        positionProvider->positionDurations[idx] = malloc_( numberOfObjectPositionsToRead * sizeof( uint16_t ) );
        positionProvider->positions[idx] = malloc( numberOfObjectPositionsToRead * sizeof( IVAS_REND_AudioObjectPosition ) );
        positionProvider->positionDurations[idx] = malloc( numberOfObjectPositionsToRead * sizeof( uint16_t ) );

        for ( i = 0; i < numberOfObjectPositionsToRead; ++i )
        {
+10 −5
Original line number Diff line number Diff line
@@ -234,8 +234,8 @@ ivas_error ivas_FB_mixer_open(
    }
    else
    {
#ifdef HODIRAC
        num_chs_alloc = max( fb_cfg->num_out_chans, fb_cfg->nchan_fb_in );
#ifdef SBA_TD_RESIDUAL
        num_chs_alloc = 1; /* only W channel processed for predicting YZX */
#else
        num_chs_alloc = fb_cfg->num_out_chans;
#endif
@@ -412,8 +412,8 @@ void ivas_FB_mixer_close(
    }
    else
    {
#ifdef HODIRAC
        num_chs_alloc = max( fb_cfg->num_out_chans, fb_cfg->nchan_fb_in );
#ifdef SBA_TD_RESIDUAL
        num_chs_alloc = 1; /* only W channel processed for predicting YZX */
#else
        num_chs_alloc = fb_cfg->num_out_chans;
#endif
@@ -439,7 +439,6 @@ void ivas_FB_mixer_close(
        {
            num_chs_alloc = 0;
        }

        else
        {
#ifdef HODIRAC
@@ -543,7 +542,11 @@ void ivas_fb_mixer_pcm_ingest(
    }
    else
    {
#ifdef SBA_TD_RESIDUAL
        num_chs_ingest = 1; /* forward Filterbank MDFT only on W */
#else
        num_chs_ingest = fb_cfg->num_out_chans;
#endif
    }

    for ( i = 0; i < fb_cfg->num_in_chans; i++ )
@@ -839,7 +842,9 @@ void ivas_fb_mixer_get_in_out_mapping(
            for ( i = 1; i < fb_cfg->num_out_chans; i++ )
            {
                in_out_mixer_map[i][0] = 1;
#ifndef SBA_TD_RESIDUAL
                in_out_mixer_map[i][order[i]] = 1;
#endif
            }
        }
    }
+8 −3
Original line number Diff line number Diff line
@@ -174,6 +174,7 @@

#define EUALER2QUAT_FIX                                 /* Dlb :fix for issue 430 issue in euler2quat, sign of quat y is inverted */
#define HR_METADATA                                     /* Nok: encode directional MASA metadata with more bits at 384k and 512k */
#define SBA_TD_RESIDUAL                                 /* Dlb : Issue 426: SBA encoder complexity optimization */

#define FIX_357_DTX_32K                                 /* Eri: issue 357 - Forced LP-CNG at 32k */
#define FIX_435_ISM_MERGE_BUG                           /* Eri: Merge bug fix for ISM NULL metadata and tcx_only cases */
@@ -181,8 +182,13 @@
#define FIX_411_EVS_BE_TESTS_ON_WINDOWS_FAILING         /* Eri: Fix incorrect use of stack variable used for channel aware config file */
#define COMBINED_FORMAT_SIGNALING                       /* VA: Introduce a signaling bit for combined format coding */

#define FIX_386_CORECODER_RECONFIG_2                    /* VA: Issue 386: Resolve remaining ToDo comments in CoreCoder reconfig. */
#define FIX_440_PARAM_ISM_DIR_NOISE                     /* FhG: Issue 440: Fix directional background noise becoming diffuse in ParamISM */

#define FIX_447_PARAMBIN_MASA_REGU_FAC                  /* Nokia: Issue 447: Fix issue by adjusting regularization factor minimum value. */
#define FIX_441_SBA_PARAMBIN_GAINS                      /* Nokia: Fix issue 441 by changing gains in SBA path of parametric binauralizer */


#define HODIRAC                                         /* FhG: Sector-based HO-DirAC method for SBA at high bitrates */

#ifdef HODIRAC
@@ -198,9 +204,8 @@
//#define HODIRAC_READ_PARAMS
#endif



 /* ################## End DEVELOPMENT switches ######################### */

/* clang-format on */

#endif
+13 −0
Original line number Diff line number Diff line
@@ -392,7 +392,20 @@ ivas_error ivas_dec(
        }
        else if ( st_ivas->ivas_format == SBA_FORMAT && ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM ) )
        {
#ifdef FIX_441_SBA_PARAMBIN_GAINS
            float gain;

            if ( nchan_remapped == 1 )
            {
                gain = 1.4454f;
            }
            else
            {
                gain = 1.3657f;
            }
#else
            float gain = 0.8414f; /* Todo: Temporary gain for roughly matching the loudness. To be tuned later together with other outputs. */
#endif

            for ( n = 0; n < nchan_remapped; n++ )
            {
+2 −0
Original line number Diff line number Diff line
@@ -1170,6 +1170,8 @@ ivas_error ivas_dirac_dec_config(
            hDirAC->dirac_md_buffer_length = ( MAX_PARAM_SPATIAL_SUBFRAMES + DELAY_DIRAC_PARAM_DEC_SFR ) * num_slots_in_subfr;
            hDirAC->dirac_bs_md_write_idx = DELAY_DIRAC_PARAM_DEC_SFR * num_slots_in_subfr;
            hDirAC->spar_to_dirac_write_idx = DELAY_DIRAC_PARAM_DEC_SFR * num_slots_in_subfr;
            hDirAC->dirac_read_idx = 0;
            hDirAC->dirac_estimator_idx = 0;
            if ( ( hDirAC->azimuth = (int16_t **) malloc( hDirAC->dirac_md_buffer_length * sizeof( int16_t * ) ) ) == NULL )
            {
                return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for DirAC\n" ) );
Loading