Loading lib_com/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -215,10 +215,12 @@ #define FIX_618_STEREO_SW_DIV_BY_ZERO /* VA: fix issue 618 - UBSAN: division-by-zero in stereo bitrate switching */ #define FIX_625_IDX_OOB /* FhG: Fix index out-of-bounds UBSAN error (issue 625) */ #define FIX_613_DIRAC_NULL_PTR_USAN /* Nokia: Issue #613: USAN in DirAC decoder setup */ #define FIX_647_SILENT_W_PARAMBIN /* Nokia: Issue #647: Fix silent W SH inputs in parametric binauralizer */ #define MASA_AND_OBJECTS /* Nokia: Combination of MASA and objects */ #define FIX_653_BUG_IN_SKIP_MATRIX /* Dlb: fix for issue #653, bug in the ivas_spar_get_skip_mat function*/ #define FIX_663_PARAM_ISM_EXT /* FhG: Issue 663: ParamISM EXT output improvement */ #define FIX_673_OMASA_OBJ_MD_SYNC /* Nokia: Fix issue 673 by updating metadata in the third subframe to account for audio delay. */ /* ################## End BE DEVELOPMENT switches ######################### */ Loading lib_dec/ivas_objectRenderer_internal.c +4 −0 Original line number Diff line number Diff line Loading @@ -110,7 +110,11 @@ ivas_error ivas_td_binaural_renderer( #ifdef MASA_AND_OBJECTS if ( st_ivas->ivas_format == MASA_ISM_FORMAT ) { #ifdef FIX_673_OMASA_OBJ_MD_SYNC ism_md_subframe_update = 2; #else ism_md_subframe_update = 0; // ToDo (for Mikko-Ville): verify whether it should not be 2 #endif } #endif Loading lib_rend/ivas_dirac_dec_binaural_functions.c +21 −0 Original line number Diff line number Diff line Loading @@ -55,6 +55,9 @@ #define CLDFB_HALF_BIN_FREQUENCY_OFFSET 0.5f #define IVAS_TDET_DUCK_MULT_FAC_PARA_BIN ( 2.0f ) #define IVAS_TDET_DUCK_MULT_FAC_PARA_BIN_LOW_BR ( 3.0f ) #ifdef FIX_647_SILENT_W_PARAMBIN #define SBA_CARDI_TARGET_ENERGY_GAIN 0.5f #endif #ifdef MASA_AND_OBJECTS #define STEREO_PREPROCESS_IIR_FACTOR ( 0.9f ) Loading Loading @@ -1231,18 +1234,36 @@ static void ivas_dirac_dec_binaural_formulate_input_covariance_matrices( if ( ivas_format == SBA_FORMAT && nchan_transport == 2 ) { float tempRe, tempIm; #ifdef FIX_647_SILENT_W_PARAMBIN float subFrameSumEne[CLDFB_NO_CHANNELS_MAX]; v_multc( subFrameTotalEne, SBA_CARDI_TARGET_ENERGY_GAIN, subFrameTotalEne, nBins ); set_zero( subFrameSumEne, CLDFB_NO_CHANNELS_MAX ); #else set_zero( subFrameTotalEne, CLDFB_NO_CHANNELS_MAX ); #endif for ( slot = 0; slot < hSpatParamRendCom->subframe_nbslots[subframe]; slot++ ) { for ( bin = 0; bin < nBins; bin++ ) { tempRe = inRe[0][slot][bin] + inRe[1][slot][bin]; tempIm = inIm[0][slot][bin] + inIm[1][slot][bin]; #ifdef FIX_647_SILENT_W_PARAMBIN subFrameSumEne[bin] += tempRe * tempRe + tempIm * tempIm; #else subFrameTotalEne[bin] += tempRe * tempRe + tempIm * tempIm; #endif } } #ifdef FIX_647_SILENT_W_PARAMBIN for ( bin = 0; bin < nBins; bin++ ) { subFrameTotalEne[bin] = max( subFrameTotalEne[bin], subFrameSumEne[bin] ); } #endif } /* Temporal IIR-type smoothing of covariance matrices. Also apply encoding quality based smoothing factor. */ Loading Loading
lib_com/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -215,10 +215,12 @@ #define FIX_618_STEREO_SW_DIV_BY_ZERO /* VA: fix issue 618 - UBSAN: division-by-zero in stereo bitrate switching */ #define FIX_625_IDX_OOB /* FhG: Fix index out-of-bounds UBSAN error (issue 625) */ #define FIX_613_DIRAC_NULL_PTR_USAN /* Nokia: Issue #613: USAN in DirAC decoder setup */ #define FIX_647_SILENT_W_PARAMBIN /* Nokia: Issue #647: Fix silent W SH inputs in parametric binauralizer */ #define MASA_AND_OBJECTS /* Nokia: Combination of MASA and objects */ #define FIX_653_BUG_IN_SKIP_MATRIX /* Dlb: fix for issue #653, bug in the ivas_spar_get_skip_mat function*/ #define FIX_663_PARAM_ISM_EXT /* FhG: Issue 663: ParamISM EXT output improvement */ #define FIX_673_OMASA_OBJ_MD_SYNC /* Nokia: Fix issue 673 by updating metadata in the third subframe to account for audio delay. */ /* ################## End BE DEVELOPMENT switches ######################### */ Loading
lib_dec/ivas_objectRenderer_internal.c +4 −0 Original line number Diff line number Diff line Loading @@ -110,7 +110,11 @@ ivas_error ivas_td_binaural_renderer( #ifdef MASA_AND_OBJECTS if ( st_ivas->ivas_format == MASA_ISM_FORMAT ) { #ifdef FIX_673_OMASA_OBJ_MD_SYNC ism_md_subframe_update = 2; #else ism_md_subframe_update = 0; // ToDo (for Mikko-Ville): verify whether it should not be 2 #endif } #endif Loading
lib_rend/ivas_dirac_dec_binaural_functions.c +21 −0 Original line number Diff line number Diff line Loading @@ -55,6 +55,9 @@ #define CLDFB_HALF_BIN_FREQUENCY_OFFSET 0.5f #define IVAS_TDET_DUCK_MULT_FAC_PARA_BIN ( 2.0f ) #define IVAS_TDET_DUCK_MULT_FAC_PARA_BIN_LOW_BR ( 3.0f ) #ifdef FIX_647_SILENT_W_PARAMBIN #define SBA_CARDI_TARGET_ENERGY_GAIN 0.5f #endif #ifdef MASA_AND_OBJECTS #define STEREO_PREPROCESS_IIR_FACTOR ( 0.9f ) Loading Loading @@ -1231,18 +1234,36 @@ static void ivas_dirac_dec_binaural_formulate_input_covariance_matrices( if ( ivas_format == SBA_FORMAT && nchan_transport == 2 ) { float tempRe, tempIm; #ifdef FIX_647_SILENT_W_PARAMBIN float subFrameSumEne[CLDFB_NO_CHANNELS_MAX]; v_multc( subFrameTotalEne, SBA_CARDI_TARGET_ENERGY_GAIN, subFrameTotalEne, nBins ); set_zero( subFrameSumEne, CLDFB_NO_CHANNELS_MAX ); #else set_zero( subFrameTotalEne, CLDFB_NO_CHANNELS_MAX ); #endif for ( slot = 0; slot < hSpatParamRendCom->subframe_nbslots[subframe]; slot++ ) { for ( bin = 0; bin < nBins; bin++ ) { tempRe = inRe[0][slot][bin] + inRe[1][slot][bin]; tempIm = inIm[0][slot][bin] + inIm[1][slot][bin]; #ifdef FIX_647_SILENT_W_PARAMBIN subFrameSumEne[bin] += tempRe * tempRe + tempIm * tempIm; #else subFrameTotalEne[bin] += tempRe * tempRe + tempIm * tempIm; #endif } } #ifdef FIX_647_SILENT_W_PARAMBIN for ( bin = 0; bin < nBins; bin++ ) { subFrameTotalEne[bin] = max( subFrameTotalEne[bin], subFrameSumEne[bin] ); } #endif } /* Temporal IIR-type smoothing of covariance matrices. Also apply encoding quality based smoothing factor. */ Loading