Loading .gitlab-ci.yml +2 −2 Original line number Diff line number Diff line Loading @@ -282,7 +282,7 @@ build-codec-sanitizers-linux: - *print-common-info - bash ci/build_codec_sanitizers_linux.sh build-codec-windows-cmake: .build-codec-windows-cmake: extends: - .build-job-windows-with-check-for-warnings - .rules-basis Loading @@ -295,7 +295,7 @@ build-codec-windows-cmake: - ("& python ci/check_for_warnings.py '$BUILD_OUTPUT'") | Invoke-Expression - ("exit $LASTEXITCODE") | Invoke-Expression build-codec-windows-msbuild: .build-codec-windows-msbuild: extends: - .build-job-windows-with-check-for-warnings - .rules-basis Loading lib_com/ivas_ism_com.c +21 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,10 @@ #define BETA_ISM_LOW_IMP 0.6f #define BETA_ISM_MEDIUM_IMP 0.8f #ifdef FIX_562_ISM2_64KBPS #define MAX_BRATE_TCX_32k 48000 #endif /*-------------------------------------------------------------------* * bitbudget_to_brate() Loading Loading @@ -346,6 +350,23 @@ ivas_error ivas_ism_config( bits_CoreCoder[ch] = tmp; } #ifdef FIX_562_ISM2_64KBPS /* limitaton to avoid too high bitrate in one active TCX channel */ if ( element_brate[0] >= SCE_CORE_16k_LOW_LIMIT && element_brate[0] <= IVAS_32k ) { diff = 0; limit_high = MAX_BRATE_TCX_32k / FRAMES_PER_SEC; for ( ch = 0; ch < n_ISms; ch++ ) { tmp = (int16_t) min( bits_CoreCoder[ch], limit_high ); diff += bits_CoreCoder[ch] - tmp; bits_CoreCoder[ch] = tmp; } } #endif if ( diff > 0 ) { ch = 0; Loading lib_com/options.h +7 −0 Original line number Diff line number Diff line Loading @@ -169,6 +169,13 @@ #define FIX_558_PLC_DISCONT /* FhG: issue 558: fix discontinuities in DFT Stereo when switching from TCX concealment to ACELP */ #define FIX_564 /* Nokia: Issue 564: Fix gains in JBM path for SBA with parametric binaural renderer */ #define FIX_566_2DIR_MASA_384K /* Nokia: Issued 566: Bugfix in 384k MASA metadata encoding of second direction */ #define FIX_565_SBA_BURST_IN_FEC /* VA: Issue 565: Fix noise burst during FEC, due to wrong total_brate initialization */ #define FIX_562_ISM2_64KBPS /* VA: issue 562: fix ISM2 at 64kbps issue */ #define FIX_559_EXTL_IGF_MISMATCH /* VA: issue 559: fix mismatch between st->extl and st->igf observed as crash in PlanarSBA bitrate switching */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ Loading lib_dec/FEC.c +8 −2 Original line number Diff line number Diff line Loading @@ -331,8 +331,11 @@ void FEC_exc_estim( /*-----------------------------------------------------------------* * Replicate the last spectrum in case the last good frame was coded by GSC *-----------------------------------------------------------------*/ #ifndef FIX_565_SBA_BURST_IN_FEC if ( ( st->last_coder_type == AUDIO || st->last_good == INACTIVE_CLAS ) && st->total_brate <= ACELP_24k40 && !st->Opt_AMR_WB ) #else if ( ( st->last_coder_type == AUDIO || st->last_good == INACTIVE_CLAS ) && st->total_brate <= MAX_GSC_INACTIVE_BRATE && !st->Opt_AMR_WB ) #endif { /* Replication of the last spectrum, with a slight downscaling of its dynamic */ st->GSC_noisy_speech = st->Last_GSC_noisy_speech_flag; Loading Loading @@ -404,8 +407,11 @@ void FEC_exc_estim( /*-----------------------------------------------------------------* * Total excitation *-----------------------------------------------------------------*/ #ifndef FIX_565_SBA_BURST_IN_FEC if ( ( st->last_coder_type == AUDIO || st->last_good == INACTIVE_CLAS ) && st->total_brate <= ACELP_24k40 && !st->Opt_AMR_WB ) #else if ( ( st->last_coder_type == AUDIO || st->last_good == INACTIVE_CLAS ) && st->total_brate <= MAX_GSC_INACTIVE_BRATE && !st->Opt_AMR_WB ) #endif { /* For GSC - the excitation is already computed */ mvr2r( exc, exc2, st->L_frame ); Loading lib_dec/ivas_ism_metadata_dec.c +5 −0 Original line number Diff line number Diff line Loading @@ -542,7 +542,12 @@ ivas_error ivas_ism_metadata_dec( if ( ism_mode == ISM_MODE_DISC ) { #ifdef FIX_532_ISM_MD_INACTIVE #ifdef FIX_562_ISM2_64KBPS if ( ism_imp[ch] == ISM_NO_META && ( ( total_brate[ch] < ACELP_8k00 && element_brate[ch] < SCE_CORE_16k_LOW_LIMIT ) || ( total_brate[ch] <= ACELP_16k_LOW_LIMIT && element_brate[ch] >= SCE_CORE_16k_LOW_LIMIT ) ) ) #else if ( ism_imp[ch] == ISM_NO_META && total_brate[ch] < ACELP_8k00 ) #endif #else if ( hIsmMeta[ch]->ism_metadata_flag == 0 && localVAD[ch] == 0 && ism_metadata_flag_global ) #endif Loading Loading
.gitlab-ci.yml +2 −2 Original line number Diff line number Diff line Loading @@ -282,7 +282,7 @@ build-codec-sanitizers-linux: - *print-common-info - bash ci/build_codec_sanitizers_linux.sh build-codec-windows-cmake: .build-codec-windows-cmake: extends: - .build-job-windows-with-check-for-warnings - .rules-basis Loading @@ -295,7 +295,7 @@ build-codec-windows-cmake: - ("& python ci/check_for_warnings.py '$BUILD_OUTPUT'") | Invoke-Expression - ("exit $LASTEXITCODE") | Invoke-Expression build-codec-windows-msbuild: .build-codec-windows-msbuild: extends: - .build-job-windows-with-check-for-warnings - .rules-basis Loading
lib_com/ivas_ism_com.c +21 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,10 @@ #define BETA_ISM_LOW_IMP 0.6f #define BETA_ISM_MEDIUM_IMP 0.8f #ifdef FIX_562_ISM2_64KBPS #define MAX_BRATE_TCX_32k 48000 #endif /*-------------------------------------------------------------------* * bitbudget_to_brate() Loading Loading @@ -346,6 +350,23 @@ ivas_error ivas_ism_config( bits_CoreCoder[ch] = tmp; } #ifdef FIX_562_ISM2_64KBPS /* limitaton to avoid too high bitrate in one active TCX channel */ if ( element_brate[0] >= SCE_CORE_16k_LOW_LIMIT && element_brate[0] <= IVAS_32k ) { diff = 0; limit_high = MAX_BRATE_TCX_32k / FRAMES_PER_SEC; for ( ch = 0; ch < n_ISms; ch++ ) { tmp = (int16_t) min( bits_CoreCoder[ch], limit_high ); diff += bits_CoreCoder[ch] - tmp; bits_CoreCoder[ch] = tmp; } } #endif if ( diff > 0 ) { ch = 0; Loading
lib_com/options.h +7 −0 Original line number Diff line number Diff line Loading @@ -169,6 +169,13 @@ #define FIX_558_PLC_DISCONT /* FhG: issue 558: fix discontinuities in DFT Stereo when switching from TCX concealment to ACELP */ #define FIX_564 /* Nokia: Issue 564: Fix gains in JBM path for SBA with parametric binaural renderer */ #define FIX_566_2DIR_MASA_384K /* Nokia: Issued 566: Bugfix in 384k MASA metadata encoding of second direction */ #define FIX_565_SBA_BURST_IN_FEC /* VA: Issue 565: Fix noise burst during FEC, due to wrong total_brate initialization */ #define FIX_562_ISM2_64KBPS /* VA: issue 562: fix ISM2 at 64kbps issue */ #define FIX_559_EXTL_IGF_MISMATCH /* VA: issue 559: fix mismatch between st->extl and st->igf observed as crash in PlanarSBA bitrate switching */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ Loading
lib_dec/FEC.c +8 −2 Original line number Diff line number Diff line Loading @@ -331,8 +331,11 @@ void FEC_exc_estim( /*-----------------------------------------------------------------* * Replicate the last spectrum in case the last good frame was coded by GSC *-----------------------------------------------------------------*/ #ifndef FIX_565_SBA_BURST_IN_FEC if ( ( st->last_coder_type == AUDIO || st->last_good == INACTIVE_CLAS ) && st->total_brate <= ACELP_24k40 && !st->Opt_AMR_WB ) #else if ( ( st->last_coder_type == AUDIO || st->last_good == INACTIVE_CLAS ) && st->total_brate <= MAX_GSC_INACTIVE_BRATE && !st->Opt_AMR_WB ) #endif { /* Replication of the last spectrum, with a slight downscaling of its dynamic */ st->GSC_noisy_speech = st->Last_GSC_noisy_speech_flag; Loading Loading @@ -404,8 +407,11 @@ void FEC_exc_estim( /*-----------------------------------------------------------------* * Total excitation *-----------------------------------------------------------------*/ #ifndef FIX_565_SBA_BURST_IN_FEC if ( ( st->last_coder_type == AUDIO || st->last_good == INACTIVE_CLAS ) && st->total_brate <= ACELP_24k40 && !st->Opt_AMR_WB ) #else if ( ( st->last_coder_type == AUDIO || st->last_good == INACTIVE_CLAS ) && st->total_brate <= MAX_GSC_INACTIVE_BRATE && !st->Opt_AMR_WB ) #endif { /* For GSC - the excitation is already computed */ mvr2r( exc, exc2, st->L_frame ); Loading
lib_dec/ivas_ism_metadata_dec.c +5 −0 Original line number Diff line number Diff line Loading @@ -542,7 +542,12 @@ ivas_error ivas_ism_metadata_dec( if ( ism_mode == ISM_MODE_DISC ) { #ifdef FIX_532_ISM_MD_INACTIVE #ifdef FIX_562_ISM2_64KBPS if ( ism_imp[ch] == ISM_NO_META && ( ( total_brate[ch] < ACELP_8k00 && element_brate[ch] < SCE_CORE_16k_LOW_LIMIT ) || ( total_brate[ch] <= ACELP_16k_LOW_LIMIT && element_brate[ch] >= SCE_CORE_16k_LOW_LIMIT ) ) ) #else if ( ism_imp[ch] == ISM_NO_META && total_brate[ch] < ACELP_8k00 ) #endif #else if ( hIsmMeta[ch]->ism_metadata_flag == 0 && localVAD[ch] == 0 && ism_metadata_flag_global ) #endif Loading