Loading apps/renderer.c +3 −3 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 ) { Loading lib_com/ivas_fb_mixer.c +14 −0 Original line number Diff line number Diff line Loading @@ -223,7 +223,11 @@ ivas_error ivas_FB_mixer_open( } else { #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 } for ( i = 0; i < num_chs_alloc; i++ ) Loading Loading @@ -386,7 +390,11 @@ void ivas_FB_mixer_close( } else { #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 } if ( hFbMixer != NULL ) Loading Loading @@ -502,7 +510,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++ ) Loading Loading @@ -768,7 +780,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 } } } Loading lib_com/ivas_stat_com.h +3 −0 Original line number Diff line number Diff line Loading @@ -164,6 +164,9 @@ typedef struct ivas_param_ism_data_structure int16_t flag_noisy_speech; int16_t noisy_speech_buffer[PARAM_ISM_HYS_BUF_SIZE]; #ifdef FIX_440_PARAM_ISM_DIR_NOISE int16_t flag_equal_energy; #endif } PARAM_ISM_CONFIG_DATA, *PARAM_ISM_CONFIG_HANDLE; Loading lib_com/options.h +8 −2 Original line number Diff line number Diff line Loading @@ -173,15 +173,21 @@ #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 */ #define FIX_355_REFACTOR_PARAMBIN_TO_5MS /* Nokia: Fixes issue 355 by refactoring parametric binauralizer code to 5 ms mode */ #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_445_SNS_BUGFIXES /* FhG: bug fix for spectral tilt in SNS computation + necessary update of codebooks and converison to fixedpoint-compatible tables */ #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 */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ #endif lib_dec/ivas_dec.c +13 −0 Original line number Diff line number Diff line Loading @@ -373,7 +373,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++ ) { Loading Loading
apps/renderer.c +3 −3 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 ) { Loading
lib_com/ivas_fb_mixer.c +14 −0 Original line number Diff line number Diff line Loading @@ -223,7 +223,11 @@ ivas_error ivas_FB_mixer_open( } else { #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 } for ( i = 0; i < num_chs_alloc; i++ ) Loading Loading @@ -386,7 +390,11 @@ void ivas_FB_mixer_close( } else { #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 } if ( hFbMixer != NULL ) Loading Loading @@ -502,7 +510,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++ ) Loading Loading @@ -768,7 +780,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 } } } Loading
lib_com/ivas_stat_com.h +3 −0 Original line number Diff line number Diff line Loading @@ -164,6 +164,9 @@ typedef struct ivas_param_ism_data_structure int16_t flag_noisy_speech; int16_t noisy_speech_buffer[PARAM_ISM_HYS_BUF_SIZE]; #ifdef FIX_440_PARAM_ISM_DIR_NOISE int16_t flag_equal_energy; #endif } PARAM_ISM_CONFIG_DATA, *PARAM_ISM_CONFIG_HANDLE; Loading
lib_com/options.h +8 −2 Original line number Diff line number Diff line Loading @@ -173,15 +173,21 @@ #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 */ #define FIX_355_REFACTOR_PARAMBIN_TO_5MS /* Nokia: Fixes issue 355 by refactoring parametric binauralizer code to 5 ms mode */ #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_445_SNS_BUGFIXES /* FhG: bug fix for spectral tilt in SNS computation + necessary update of codebooks and converison to fixedpoint-compatible tables */ #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 */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ #endif
lib_dec/ivas_dec.c +13 −0 Original line number Diff line number Diff line Loading @@ -373,7 +373,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++ ) { Loading