Loading .gitlab-ci.yml +44 −1 Original line number Diff line number Diff line Loading @@ -24,11 +24,14 @@ variables: - 'ivas-conformance' - 'ivas-conformance-linux' - 'check-float-reference' - 'check-clipping' - 'test-branch-vs-input-passthrough' GIT_CLEAN_FLAGS: -ffdxq TESTCASE_TIMEOUT_STV_SANITIZERS: 180 TESTCASE_TIMEOUT_LTV_SANITIZERS: 1200 TESTCASE_TIMEOUT_LTV_SANITIZERS: 2400 BASOP_REFERENCE_BRANCH: "ivas-float-update" SCALE_FACTOR: "3.162" default: Loading Loading @@ -70,6 +73,9 @@ workflow: - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'check-float-reference' variables: IVAS_PIPELINE_NAME: 'check-float-reference: $CI_COMMIT_BRANCH' - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'check-clipping' variables: IVAS_PIPELINE_NAME: 'Check core input clipping: $CI_COMMIT_BRANCH' - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'test-branch-vs-input-passthrough' variables: IVAS_PIPELINE_NAME: 'Pass-through comparison vs input: $CI_COMMIT_BRANCH' Loading Loading @@ -125,6 +131,11 @@ stages: # automatically disable #DEBUGGING macro in options.h using /**/-comment - sed -i.bak -e "s/^[[:space:]]*\(#define[[:space:]]*DEBUGGING\)/\/\*\1\*\//g" lib_com/options.h .enable-debugging-macro: &enable-debugging-macro # automatically enable #DEBUGGING macro in options.h using either /**/-comment or //-comment - sed -i.bak -e "s/\/\*\ *\(#define\ *DEBUGGING\ *\)\*\//\1/g" lib_com/options.h - sed -i.bak -e "s/\/\/\ *\(#define\ *DEBUGGING\ *\)/\1/g" lib_com/options.h .merge-request-comparison-setup-codec: &merge-request-comparison-setup-codec ### build test binaries, initial clean for paranoia reasons - *disable-debugging-macro Loading Loading @@ -268,6 +279,7 @@ stages: when: never - if: $MANUAL_PIPELINE_TYPE == 'check-float-reference' when: never - if: $MANUAL_PIPELINE_TYPE == 'check-clipping' - if: $MANUAL_PIPELINE_TYPE == 'test-branch-vs-input-passthrough' when: never - when: on_success Loading Loading @@ -1644,6 +1656,36 @@ test-long-self-test: junit: - report-junit-ltv.xml check-clipping: tags: - ivas-linux stage: test timeout: "30 minutes" rules: - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'check-clipping' allow_failure: exit_codes: - 123 script: - *print-common-info - *enable-debugging-macro - make -j - tests/scale_pcm.py ./scripts/testv/ $SCALE_FACTOR # Default: 3.162 (+10 dB). Can be set in manual trigger. - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v --update_ref 1 --html=report.html --self-contained-html --junit-xml=report-junit.xml --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec - python3 scripts/parse_xml_report.py report-junit.xml report.csv --clipping artifacts: name: "check-clipping--sha-$CI_COMMIT_SHORT_SHA--results" when: always expire_in: 2 weeks paths: - report-junit.xml - report.html - report.csv expose_as: "check-clipping results" reports: junit: - report-junit.xml test-branch-vs-input-passthrough: tags: - ivas-linux Loading Loading @@ -1679,6 +1721,7 @@ test-branch-vs-input-passthrough: junit: - report-junit.xml # --------------------------------------------------------------- # Scheduled jobs on main # --------------------------------------------------------------- Loading apps/decoder.c +0 −27 Original line number Diff line number Diff line Loading @@ -453,27 +453,6 @@ int main( } } #ifndef FIX_1158_FASTCONV_REVERB_HRTF /*------------------------------------------------------------------------------------------* * Open renderer configuration reader file *------------------------------------------------------------------------------------------*/ if ( arg.renderConfigEnabled ) { /* sanity check */ if ( arg.outputConfig != IVAS_AUDIO_CONFIG_BINAURAL && arg.outputConfig != IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR && arg.outputConfig != IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB && arg.outputConfig != IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED && arg.outputConfig != IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM && arg.non_diegetic_pan_enabled == false ) { fprintf( stderr, "\nError: Renderer configuration file cannot be used in this output configuration.\n\n" ); goto cleanup; } if ( ( error = RenderConfigReader_open( arg.renderConfigFilename, &renderConfigReader ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nError: Can't open Renderer configuration file %s \n\n", arg.renderConfigFilename ); goto cleanup; } } #endif /*------------------------------------------------------------------------------------------* * Configure the decoder Loading Loading @@ -636,15 +615,11 @@ int main( } } #else #ifdef FIX_VOIP_FUNCTIONS if ( ( error = IVAS_DEC_PrintConfig( hIvasDec, 1, arg.voipMode ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nIVAS_DEC_PrintConfig failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); goto cleanup; } #else IVAS_DEC_PrintConfig( hIvasDec, 1, arg.voipMode ); #endif #endif /*-------------------------------------------------------------------* Loading @@ -669,13 +644,11 @@ int main( goto cleanup; } #ifdef FIX_1158_FASTCONV_REVERB_HRTF if ( ( error = RenderConfigReader_open( arg.renderConfigFilename, &renderConfigReader ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nError: Can't open Renderer configuration file %s \n\n", arg.renderConfigFilename ); goto cleanup; } #endif if ( RenderConfigReader_read( renderConfigReader, arg.renderConfigFilename, &renderConfig ) != IVAS_ERR_OK ) { Loading apps/encoder.c +8 −0 Original line number Diff line number Diff line Loading @@ -195,6 +195,8 @@ int main( #ifdef DEBUG_SBA int16_t numTransportChannels = 1; #endif int32_t noClipping; float maxOverload, minOverload; #endif #ifdef DEBUGGING Loading Loading @@ -792,6 +794,12 @@ int main( } #ifdef DEBUGGING if ( ( noClipping = IVAS_ENC_GetNoCLipping( hIvasEnc, &maxOverload, &minOverload ) ) > 0 ) { fprintf( stdout, "Core input overload detected: %d samples!!!\n", noClipping ); fprintf( stdout, "Max overload value: %f \n", maxOverload ); fprintf( stdout, "Min overload value: %f \n\n", minOverload ); } print_snr(); #endif /*------------------------------------------------------------------------------------------* Loading lib_com/options.h +3 −3 Original line number Diff line number Diff line Loading @@ -172,9 +172,7 @@ #define TMP_FIX_1119_SPLIT_RENDERING_VOIP /* FhG: Add error check for unsupported config: split rendering with VoIP mode */ #define FIX_1158_FASTCONV_REVERB_HRTF /* Philips: issue 1158: Rendering with FastConv to BINAURAL_ROOM_REVERB uses BRIR convolution instead of HRTF */ #define FIX_587_DEFAULT_REVERB /* Philips: issue 587: inconsistent default reverb parameters across renderers */ #define FIX_VOIP_FUNCTIONS /* VA: fix data type mismatch in IVAS_DEC_VoIP_SetScale() + add sanity checks to API functions */ /* #################### End BE switches ################################## */ Loading @@ -184,8 +182,10 @@ #define NONBE_FIX_1174_MCMASA_LBR_LOOP_ERROR /* Nokia: Fix issue 1174 by removing the unnecessary inner loop causing problems. */ #define NONBE_FIX_1176_OSBA_REVERB_JBM_ASAN_ERROR /* Ericsson: Issue 1176, fix in TDREND_firfilt for subframes shorter than the filter length */ #define NONBE_FIX_1197_OMASA_META_BUFFER /* Nokia: OMASA ISM_MASA_MODE_PARAM_ONE_OBJ history zero in rateswitching */ #define FIX_1139_REV_COLORATION_SHORT_T60 /* Nokia,FhG: Fix issue 1139, prevent sound coloration artefacts at very low reverberation times */ /* ##################### End NON-BE switches ########################### */ Loading lib_com/prot.h +11 −0 Original line number Diff line number Diff line Loading @@ -222,6 +222,17 @@ void mvs2s( const int16_t n /* i : vector size */ ); #ifdef DEBUGGING /*! r: number of overload samples */ uint32_t check_clipping( const float x[], /* i : input vector */ const int16_t n, /* i : vector size */ float *maxOverload, /* i/o: max overload value */ float *minOverload /* i/o: max overload value */ ); #endif /*! r: number of clipped samples */ uint32_t mvr2s( const float x[], /* i : input vector */ int16_t y[], /* o : output vector */ Loading Loading
.gitlab-ci.yml +44 −1 Original line number Diff line number Diff line Loading @@ -24,11 +24,14 @@ variables: - 'ivas-conformance' - 'ivas-conformance-linux' - 'check-float-reference' - 'check-clipping' - 'test-branch-vs-input-passthrough' GIT_CLEAN_FLAGS: -ffdxq TESTCASE_TIMEOUT_STV_SANITIZERS: 180 TESTCASE_TIMEOUT_LTV_SANITIZERS: 1200 TESTCASE_TIMEOUT_LTV_SANITIZERS: 2400 BASOP_REFERENCE_BRANCH: "ivas-float-update" SCALE_FACTOR: "3.162" default: Loading Loading @@ -70,6 +73,9 @@ workflow: - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'check-float-reference' variables: IVAS_PIPELINE_NAME: 'check-float-reference: $CI_COMMIT_BRANCH' - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'check-clipping' variables: IVAS_PIPELINE_NAME: 'Check core input clipping: $CI_COMMIT_BRANCH' - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'test-branch-vs-input-passthrough' variables: IVAS_PIPELINE_NAME: 'Pass-through comparison vs input: $CI_COMMIT_BRANCH' Loading Loading @@ -125,6 +131,11 @@ stages: # automatically disable #DEBUGGING macro in options.h using /**/-comment - sed -i.bak -e "s/^[[:space:]]*\(#define[[:space:]]*DEBUGGING\)/\/\*\1\*\//g" lib_com/options.h .enable-debugging-macro: &enable-debugging-macro # automatically enable #DEBUGGING macro in options.h using either /**/-comment or //-comment - sed -i.bak -e "s/\/\*\ *\(#define\ *DEBUGGING\ *\)\*\//\1/g" lib_com/options.h - sed -i.bak -e "s/\/\/\ *\(#define\ *DEBUGGING\ *\)/\1/g" lib_com/options.h .merge-request-comparison-setup-codec: &merge-request-comparison-setup-codec ### build test binaries, initial clean for paranoia reasons - *disable-debugging-macro Loading Loading @@ -268,6 +279,7 @@ stages: when: never - if: $MANUAL_PIPELINE_TYPE == 'check-float-reference' when: never - if: $MANUAL_PIPELINE_TYPE == 'check-clipping' - if: $MANUAL_PIPELINE_TYPE == 'test-branch-vs-input-passthrough' when: never - when: on_success Loading Loading @@ -1644,6 +1656,36 @@ test-long-self-test: junit: - report-junit-ltv.xml check-clipping: tags: - ivas-linux stage: test timeout: "30 minutes" rules: - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'check-clipping' allow_failure: exit_codes: - 123 script: - *print-common-info - *enable-debugging-macro - make -j - tests/scale_pcm.py ./scripts/testv/ $SCALE_FACTOR # Default: 3.162 (+10 dB). Can be set in manual trigger. - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v --update_ref 1 --html=report.html --self-contained-html --junit-xml=report-junit.xml --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec - python3 scripts/parse_xml_report.py report-junit.xml report.csv --clipping artifacts: name: "check-clipping--sha-$CI_COMMIT_SHORT_SHA--results" when: always expire_in: 2 weeks paths: - report-junit.xml - report.html - report.csv expose_as: "check-clipping results" reports: junit: - report-junit.xml test-branch-vs-input-passthrough: tags: - ivas-linux Loading Loading @@ -1679,6 +1721,7 @@ test-branch-vs-input-passthrough: junit: - report-junit.xml # --------------------------------------------------------------- # Scheduled jobs on main # --------------------------------------------------------------- Loading
apps/decoder.c +0 −27 Original line number Diff line number Diff line Loading @@ -453,27 +453,6 @@ int main( } } #ifndef FIX_1158_FASTCONV_REVERB_HRTF /*------------------------------------------------------------------------------------------* * Open renderer configuration reader file *------------------------------------------------------------------------------------------*/ if ( arg.renderConfigEnabled ) { /* sanity check */ if ( arg.outputConfig != IVAS_AUDIO_CONFIG_BINAURAL && arg.outputConfig != IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR && arg.outputConfig != IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB && arg.outputConfig != IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED && arg.outputConfig != IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM && arg.non_diegetic_pan_enabled == false ) { fprintf( stderr, "\nError: Renderer configuration file cannot be used in this output configuration.\n\n" ); goto cleanup; } if ( ( error = RenderConfigReader_open( arg.renderConfigFilename, &renderConfigReader ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nError: Can't open Renderer configuration file %s \n\n", arg.renderConfigFilename ); goto cleanup; } } #endif /*------------------------------------------------------------------------------------------* * Configure the decoder Loading Loading @@ -636,15 +615,11 @@ int main( } } #else #ifdef FIX_VOIP_FUNCTIONS if ( ( error = IVAS_DEC_PrintConfig( hIvasDec, 1, arg.voipMode ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nIVAS_DEC_PrintConfig failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); goto cleanup; } #else IVAS_DEC_PrintConfig( hIvasDec, 1, arg.voipMode ); #endif #endif /*-------------------------------------------------------------------* Loading @@ -669,13 +644,11 @@ int main( goto cleanup; } #ifdef FIX_1158_FASTCONV_REVERB_HRTF if ( ( error = RenderConfigReader_open( arg.renderConfigFilename, &renderConfigReader ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nError: Can't open Renderer configuration file %s \n\n", arg.renderConfigFilename ); goto cleanup; } #endif if ( RenderConfigReader_read( renderConfigReader, arg.renderConfigFilename, &renderConfig ) != IVAS_ERR_OK ) { Loading
apps/encoder.c +8 −0 Original line number Diff line number Diff line Loading @@ -195,6 +195,8 @@ int main( #ifdef DEBUG_SBA int16_t numTransportChannels = 1; #endif int32_t noClipping; float maxOverload, minOverload; #endif #ifdef DEBUGGING Loading Loading @@ -792,6 +794,12 @@ int main( } #ifdef DEBUGGING if ( ( noClipping = IVAS_ENC_GetNoCLipping( hIvasEnc, &maxOverload, &minOverload ) ) > 0 ) { fprintf( stdout, "Core input overload detected: %d samples!!!\n", noClipping ); fprintf( stdout, "Max overload value: %f \n", maxOverload ); fprintf( stdout, "Min overload value: %f \n\n", minOverload ); } print_snr(); #endif /*------------------------------------------------------------------------------------------* Loading
lib_com/options.h +3 −3 Original line number Diff line number Diff line Loading @@ -172,9 +172,7 @@ #define TMP_FIX_1119_SPLIT_RENDERING_VOIP /* FhG: Add error check for unsupported config: split rendering with VoIP mode */ #define FIX_1158_FASTCONV_REVERB_HRTF /* Philips: issue 1158: Rendering with FastConv to BINAURAL_ROOM_REVERB uses BRIR convolution instead of HRTF */ #define FIX_587_DEFAULT_REVERB /* Philips: issue 587: inconsistent default reverb parameters across renderers */ #define FIX_VOIP_FUNCTIONS /* VA: fix data type mismatch in IVAS_DEC_VoIP_SetScale() + add sanity checks to API functions */ /* #################### End BE switches ################################## */ Loading @@ -184,8 +182,10 @@ #define NONBE_FIX_1174_MCMASA_LBR_LOOP_ERROR /* Nokia: Fix issue 1174 by removing the unnecessary inner loop causing problems. */ #define NONBE_FIX_1176_OSBA_REVERB_JBM_ASAN_ERROR /* Ericsson: Issue 1176, fix in TDREND_firfilt for subframes shorter than the filter length */ #define NONBE_FIX_1197_OMASA_META_BUFFER /* Nokia: OMASA ISM_MASA_MODE_PARAM_ONE_OBJ history zero in rateswitching */ #define FIX_1139_REV_COLORATION_SHORT_T60 /* Nokia,FhG: Fix issue 1139, prevent sound coloration artefacts at very low reverberation times */ /* ##################### End NON-BE switches ########################### */ Loading
lib_com/prot.h +11 −0 Original line number Diff line number Diff line Loading @@ -222,6 +222,17 @@ void mvs2s( const int16_t n /* i : vector size */ ); #ifdef DEBUGGING /*! r: number of overload samples */ uint32_t check_clipping( const float x[], /* i : input vector */ const int16_t n, /* i : vector size */ float *maxOverload, /* i/o: max overload value */ float *minOverload /* i/o: max overload value */ ); #endif /*! r: number of clipped samples */ uint32_t mvr2s( const float x[], /* i : input vector */ int16_t y[], /* o : output vector */ Loading