Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -171,6 +171,7 @@ #define NONBE_FIX_225_MASA_EXT_REND /* Nokia: Resolve #225: Complete MASA external renderer implementation */ #define NONBE_FIX_897_USAN_WITH_MASA_RENDERING /* Nokia: issue #897: USAN null pointer in MASA external renderer to Ambisonics */ #define NONBE_FIX_811_DFT_DOUBLE_TO_FLOAT /* FhG: issue 811: change double precision functions to float in DFT Stereo */ #define NONBE_FIX_DISCRETE_ISM_NOISE_SEED_HANDLING /* FhG: fix handling of common and differing noise seeds in SCEs for ISM DTX */ /* ##################### End NON-BE switches ########################### */ Loading lib_dec/fd_cng_dec.c +12 −0 Original line number Diff line number Diff line Loading @@ -1104,10 +1104,17 @@ void generate_comfort_noise_dec( c2 = (float) sqrt( 1 - hFdCngCom->coherence ); seed2 = &( hFdCngCom->seed2 ); #ifdef NONBE_FIX_DISCRETE_ISM_NOISE_SEED_HANDLING if ( st->element_mode == IVAS_CPE_MDCT && st->idchan == 1 ) { seed2 = &( hFdCngCom->seed3 ); } #else if ( ( st->element_mode == IVAS_CPE_MDCT && st->idchan == 1 ) || ( st->element_mode == IVAS_SCE && st->cng_ism_flag ) ) { seed2 = &( hFdCngCom->seed3 ); } #endif /* Generate Gaussian random noise in real and imaginary parts of the FFT bins Amplitudes are adjusted to the estimated noise level cngNoiseLevel in each bin */ Loading Loading @@ -1354,11 +1361,16 @@ void generate_comfort_noise_dec_hf( float scale = CLDFB_SCALING / hFdCngCom->scalingFactor; int16_t *seed2 = &( hFdCngCom->seed ); float tmp1, tmp2, c1 = 0.f, c2 = 0.f; if ( cng_coh_flag ) { #ifdef NONBE_FIX_DISCRETE_ISM_NOISE_SEED_HANDLING seed2 = &( hFdCngCom->seed2 ); #else seed2 = &( hFdCngCom->seed3 ); #endif c1 = (float) sqrt( hFdCngCom->coherence ); c2 = (float) sqrt( 1 - hFdCngCom->coherence ); Loading lib_dec/ivas_init_dec.c +14 −0 Original line number Diff line number Diff line Loading @@ -1338,10 +1338,24 @@ ivas_error ivas_init_decoder( st_ivas->hISMDTX.sce_id_dtx = 0; #ifdef NONBE_FIX_DISCRETE_ISM_NOISE_SEED_HANDLING if ( st_ivas->ism_mode == ISM_MODE_PARAM ) { st_ivas->hSCE[0]->hCoreCoder[0]->hFdCngDec->hFdCngCom->seed2 = st_ivas->hSCE[0]->hCoreCoder[0]->hFdCngDec->hFdCngCom->seed3; } else if ( st_ivas->ism_mode == ISM_MODE_DISC ) { for ( sce_id = 0; sce_id < st_ivas->nSCE; ++sce_id ) { st_ivas->hSCE[sce_id]->hCoreCoder[0]->hFdCngDec->hFdCngCom->seed2 = 2 + sce_id; } } #else if ( st_ivas->ism_mode == ISM_MODE_PARAM ) { st_ivas->hSCE[1]->hCoreCoder[0]->hFdCngDec->hFdCngCom->seed3 = st_ivas->hSCE[0]->hCoreCoder[0]->hFdCngDec->hFdCngCom->seed2; } #endif } else if ( st_ivas->ivas_format == SBA_FORMAT ) { Loading lib_dec/ivas_ism_dtx_dec.c +11 −0 Original line number Diff line number Diff line Loading @@ -135,6 +135,17 @@ ivas_error ivas_ism_dtx_dec( } } #ifdef NONBE_FIX_DISCRETE_ISM_NOISE_SEED_HANDLING /* synch common seed between SCEs */ if ( st_ivas->ism_mode == ISM_MODE_DISC ) { for ( ch = 0; ch < nchan_ism; ++ch ) { st_ivas->hSCE[ch]->hCoreCoder[0]->hFdCngDec->hFdCngCom->seed = st_ivas->hSCE[st_ivas->hISMDTX.sce_id_dtx]->hCoreCoder[0]->hFdCngDec->hFdCngCom->seed; } } #endif update_last_metadata( nchan_ism, st_ivas->hIsmMetaData, md_diff_flag ); st_ivas->hISMDTX.ism_dtx_hangover_cnt = 0; Loading Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -171,6 +171,7 @@ #define NONBE_FIX_225_MASA_EXT_REND /* Nokia: Resolve #225: Complete MASA external renderer implementation */ #define NONBE_FIX_897_USAN_WITH_MASA_RENDERING /* Nokia: issue #897: USAN null pointer in MASA external renderer to Ambisonics */ #define NONBE_FIX_811_DFT_DOUBLE_TO_FLOAT /* FhG: issue 811: change double precision functions to float in DFT Stereo */ #define NONBE_FIX_DISCRETE_ISM_NOISE_SEED_HANDLING /* FhG: fix handling of common and differing noise seeds in SCEs for ISM DTX */ /* ##################### End NON-BE switches ########################### */ Loading
lib_dec/fd_cng_dec.c +12 −0 Original line number Diff line number Diff line Loading @@ -1104,10 +1104,17 @@ void generate_comfort_noise_dec( c2 = (float) sqrt( 1 - hFdCngCom->coherence ); seed2 = &( hFdCngCom->seed2 ); #ifdef NONBE_FIX_DISCRETE_ISM_NOISE_SEED_HANDLING if ( st->element_mode == IVAS_CPE_MDCT && st->idchan == 1 ) { seed2 = &( hFdCngCom->seed3 ); } #else if ( ( st->element_mode == IVAS_CPE_MDCT && st->idchan == 1 ) || ( st->element_mode == IVAS_SCE && st->cng_ism_flag ) ) { seed2 = &( hFdCngCom->seed3 ); } #endif /* Generate Gaussian random noise in real and imaginary parts of the FFT bins Amplitudes are adjusted to the estimated noise level cngNoiseLevel in each bin */ Loading Loading @@ -1354,11 +1361,16 @@ void generate_comfort_noise_dec_hf( float scale = CLDFB_SCALING / hFdCngCom->scalingFactor; int16_t *seed2 = &( hFdCngCom->seed ); float tmp1, tmp2, c1 = 0.f, c2 = 0.f; if ( cng_coh_flag ) { #ifdef NONBE_FIX_DISCRETE_ISM_NOISE_SEED_HANDLING seed2 = &( hFdCngCom->seed2 ); #else seed2 = &( hFdCngCom->seed3 ); #endif c1 = (float) sqrt( hFdCngCom->coherence ); c2 = (float) sqrt( 1 - hFdCngCom->coherence ); Loading
lib_dec/ivas_init_dec.c +14 −0 Original line number Diff line number Diff line Loading @@ -1338,10 +1338,24 @@ ivas_error ivas_init_decoder( st_ivas->hISMDTX.sce_id_dtx = 0; #ifdef NONBE_FIX_DISCRETE_ISM_NOISE_SEED_HANDLING if ( st_ivas->ism_mode == ISM_MODE_PARAM ) { st_ivas->hSCE[0]->hCoreCoder[0]->hFdCngDec->hFdCngCom->seed2 = st_ivas->hSCE[0]->hCoreCoder[0]->hFdCngDec->hFdCngCom->seed3; } else if ( st_ivas->ism_mode == ISM_MODE_DISC ) { for ( sce_id = 0; sce_id < st_ivas->nSCE; ++sce_id ) { st_ivas->hSCE[sce_id]->hCoreCoder[0]->hFdCngDec->hFdCngCom->seed2 = 2 + sce_id; } } #else if ( st_ivas->ism_mode == ISM_MODE_PARAM ) { st_ivas->hSCE[1]->hCoreCoder[0]->hFdCngDec->hFdCngCom->seed3 = st_ivas->hSCE[0]->hCoreCoder[0]->hFdCngDec->hFdCngCom->seed2; } #endif } else if ( st_ivas->ivas_format == SBA_FORMAT ) { Loading
lib_dec/ivas_ism_dtx_dec.c +11 −0 Original line number Diff line number Diff line Loading @@ -135,6 +135,17 @@ ivas_error ivas_ism_dtx_dec( } } #ifdef NONBE_FIX_DISCRETE_ISM_NOISE_SEED_HANDLING /* synch common seed between SCEs */ if ( st_ivas->ism_mode == ISM_MODE_DISC ) { for ( ch = 0; ch < nchan_ism; ++ch ) { st_ivas->hSCE[ch]->hCoreCoder[0]->hFdCngDec->hFdCngCom->seed = st_ivas->hSCE[st_ivas->hISMDTX.sce_id_dtx]->hCoreCoder[0]->hFdCngDec->hFdCngCom->seed; } } #endif update_last_metadata( nchan_ism, st_ivas->hIsmMetaData, md_diff_flag ); st_ivas->hISMDTX.ism_dtx_hangover_cnt = 0; Loading