Loading .gitlab-ci.yml +40 −1 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ variables: - 'ivas-conformance' - 'ivas-conformance-linux' - 'check-float-reference' - 'test-branch-vs-input-passthrough' GIT_CLEAN_FLAGS: -ffdxq TESTCASE_TIMEOUT_STV_SANITIZERS: 180 TESTCASE_TIMEOUT_LTV_SANITIZERS: 1200 Loading Loading @@ -69,7 +70,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 == 'test-branch-vs-input-passthrough' variables: IVAS_PIPELINE_NAME: 'Pass-through comparison vs input: $CI_COMMIT_BRANCH' stages: - .pre Loading Loading @@ -265,6 +268,8 @@ stages: when: never - if: $MANUAL_PIPELINE_TYPE == 'check-float-reference' when: never - if: $MANUAL_PIPELINE_TYPE == 'test-branch-vs-input-passthrough' when: never - when: on_success .rules-merge-request: Loading Loading @@ -1639,6 +1644,40 @@ test-long-self-test: junit: - report-junit-ltv.xml test-branch-vs-input-passthrough: tags: - ivas-linux stage: compare timeout: "30 minutes" # TBD rules: - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'test-branch-vs-input-passthrough' allow_failure: exit_codes: - 123 script: - *print-common-info - make -j - exit_code=0 - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v --html=report.html --self-contained-html --junit-xml=report-junit.xml --compare_to_input --mld --ssnr --odg || exit_code=$? - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - python3 scripts/parse_xml_report.py report-junit.xml report.csv - if [ $zero_errors != 1 ]; then echo "Run errors encountered!"; exit $EXIT_CODE_FAIL; fi - if [ $exit_code -eq 1 ]; then echo "Differences encountered."; exit $EXIT_CODE_NON_BE; fi - exit 0 artifacts: name: "test-branch-vs-input-passthrough--sha-$CI_COMMIT_SHORT_SHA--results" when: always expire_in: 4 mos paths: - report-junit.xml - report.html - report.csv expose_as: "test-branch-vs-input-passthrough results" reports: junit: - report-junit.xml # --------------------------------------------------------------- # Scheduled jobs on main Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -182,6 +182,7 @@ #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 */ /* ##################### End NON-BE switches ########################### */ Loading lib_rend/ivas_objectRenderer_sfx.c +6 −1 Original line number Diff line number Diff line Loading @@ -261,8 +261,13 @@ void TDREND_firfilt( /* Handle memory */ p_signal = buffer + filterlength - 1; mvr2r( mem, buffer, filterlength - 1 ); /* Insert memory */ #ifdef NONBE_FIX_1176_OSBA_REVERB_JBM_ASAN_ERROR mvr2r( signal, p_signal, subframe_length ); /* Insert current frame */ mvr2r( p_signal + subframe_length - filterlength + 1, mem, filterlength - 1 ); /* Update memory for next frame */ #else mvr2r( signal, buffer + filterlength - 1, subframe_length ); /* Insert current frame */ mvr2r( signal + subframe_length - filterlength + 1, mem, filterlength - 1 ); /* Update memory for next frame */ #endif /* Convolution */ for ( i = 0; i < subframe_length; i++ ) Loading scripts/parse_xml_report.py +14 −3 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ EVS_FORMATS = { "EVS_JBM_dec": r"Readme_JBM_dec", } NO_FORMATS = {"Default": r".*"} IVAS_CATEGORIES = { "Normal operation": r".*", Loading @@ -48,6 +49,8 @@ EVS_CATEGORIES = { "JBM": r"JBM", } NO_CATEGORIES = {"N/A": r".*"} # Main routine if __name__ == "__main__": parser = argparse.ArgumentParser( Loading @@ -64,15 +67,23 @@ if __name__ == "__main__": action="store_true", help="Parse using EVS 26.444 formats", ) parser.add_argument( "--skip_formats", action="store_true", help="Parse without formats and categories. Suitable for general tests which do not match the IVAS categories.", ) args = parser.parse_args() xml_report = args.xml_report csv_file = args.csv_file FORMATS = IVAS_FORMATS CATEGORIES = IVAS_CATEGORIES if args.evs: FORMATS = EVS_FORMATS CATEGORIES = EVS_CATEGORIES else: FORMATS = IVAS_FORMATS CATEGORIES = IVAS_CATEGORIES if args.skip_formats: FORMATS = NO_FORMATS CATEGORIES = NO_CATEGORIES tree = ElementTree.parse(xml_report) testsuite = tree.find(".//testsuite") Loading scripts/pyaudio3dtools/audioarray.py +3 −2 Original line number Diff line number Diff line Loading @@ -397,6 +397,7 @@ def compare( tmpfile_ref = Path(tmpdir).joinpath("ref.wav") tmpfile_test = Path(tmpdir).joinpath("test.wav") ### need to resample to 48kHz for MLD computation to be correct if fs != 48000: ref_tmp = np.clip( Loading @@ -409,8 +410,8 @@ def compare( ref_tmp = ref.copy() test_tmp = test.copy() wavfile.write(str(tmpfile_ref), fs, ref_tmp.astype(np.int16)) wavfile.write(str(tmpfile_test), fs, test_tmp.astype(np.int16)) wavfile.write(str(tmpfile_ref), 48000, ref_tmp.astype(np.int16)) wavfile.write(str(tmpfile_test), 48000, test_tmp.astype(np.int16)) cmd = [ str(wdiff), Loading Loading
.gitlab-ci.yml +40 −1 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ variables: - 'ivas-conformance' - 'ivas-conformance-linux' - 'check-float-reference' - 'test-branch-vs-input-passthrough' GIT_CLEAN_FLAGS: -ffdxq TESTCASE_TIMEOUT_STV_SANITIZERS: 180 TESTCASE_TIMEOUT_LTV_SANITIZERS: 1200 Loading Loading @@ -69,7 +70,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 == 'test-branch-vs-input-passthrough' variables: IVAS_PIPELINE_NAME: 'Pass-through comparison vs input: $CI_COMMIT_BRANCH' stages: - .pre Loading Loading @@ -265,6 +268,8 @@ stages: when: never - if: $MANUAL_PIPELINE_TYPE == 'check-float-reference' when: never - if: $MANUAL_PIPELINE_TYPE == 'test-branch-vs-input-passthrough' when: never - when: on_success .rules-merge-request: Loading Loading @@ -1639,6 +1644,40 @@ test-long-self-test: junit: - report-junit-ltv.xml test-branch-vs-input-passthrough: tags: - ivas-linux stage: compare timeout: "30 minutes" # TBD rules: - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'test-branch-vs-input-passthrough' allow_failure: exit_codes: - 123 script: - *print-common-info - make -j - exit_code=0 - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v --html=report.html --self-contained-html --junit-xml=report-junit.xml --compare_to_input --mld --ssnr --odg || exit_code=$? - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - python3 scripts/parse_xml_report.py report-junit.xml report.csv - if [ $zero_errors != 1 ]; then echo "Run errors encountered!"; exit $EXIT_CODE_FAIL; fi - if [ $exit_code -eq 1 ]; then echo "Differences encountered."; exit $EXIT_CODE_NON_BE; fi - exit 0 artifacts: name: "test-branch-vs-input-passthrough--sha-$CI_COMMIT_SHORT_SHA--results" when: always expire_in: 4 mos paths: - report-junit.xml - report.html - report.csv expose_as: "test-branch-vs-input-passthrough results" reports: junit: - report-junit.xml # --------------------------------------------------------------- # Scheduled jobs on main Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -182,6 +182,7 @@ #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 */ /* ##################### End NON-BE switches ########################### */ Loading
lib_rend/ivas_objectRenderer_sfx.c +6 −1 Original line number Diff line number Diff line Loading @@ -261,8 +261,13 @@ void TDREND_firfilt( /* Handle memory */ p_signal = buffer + filterlength - 1; mvr2r( mem, buffer, filterlength - 1 ); /* Insert memory */ #ifdef NONBE_FIX_1176_OSBA_REVERB_JBM_ASAN_ERROR mvr2r( signal, p_signal, subframe_length ); /* Insert current frame */ mvr2r( p_signal + subframe_length - filterlength + 1, mem, filterlength - 1 ); /* Update memory for next frame */ #else mvr2r( signal, buffer + filterlength - 1, subframe_length ); /* Insert current frame */ mvr2r( signal + subframe_length - filterlength + 1, mem, filterlength - 1 ); /* Update memory for next frame */ #endif /* Convolution */ for ( i = 0; i < subframe_length; i++ ) Loading
scripts/parse_xml_report.py +14 −3 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ EVS_FORMATS = { "EVS_JBM_dec": r"Readme_JBM_dec", } NO_FORMATS = {"Default": r".*"} IVAS_CATEGORIES = { "Normal operation": r".*", Loading @@ -48,6 +49,8 @@ EVS_CATEGORIES = { "JBM": r"JBM", } NO_CATEGORIES = {"N/A": r".*"} # Main routine if __name__ == "__main__": parser = argparse.ArgumentParser( Loading @@ -64,15 +67,23 @@ if __name__ == "__main__": action="store_true", help="Parse using EVS 26.444 formats", ) parser.add_argument( "--skip_formats", action="store_true", help="Parse without formats and categories. Suitable for general tests which do not match the IVAS categories.", ) args = parser.parse_args() xml_report = args.xml_report csv_file = args.csv_file FORMATS = IVAS_FORMATS CATEGORIES = IVAS_CATEGORIES if args.evs: FORMATS = EVS_FORMATS CATEGORIES = EVS_CATEGORIES else: FORMATS = IVAS_FORMATS CATEGORIES = IVAS_CATEGORIES if args.skip_formats: FORMATS = NO_FORMATS CATEGORIES = NO_CATEGORIES tree = ElementTree.parse(xml_report) testsuite = tree.find(".//testsuite") Loading
scripts/pyaudio3dtools/audioarray.py +3 −2 Original line number Diff line number Diff line Loading @@ -397,6 +397,7 @@ def compare( tmpfile_ref = Path(tmpdir).joinpath("ref.wav") tmpfile_test = Path(tmpdir).joinpath("test.wav") ### need to resample to 48kHz for MLD computation to be correct if fs != 48000: ref_tmp = np.clip( Loading @@ -409,8 +410,8 @@ def compare( ref_tmp = ref.copy() test_tmp = test.copy() wavfile.write(str(tmpfile_ref), fs, ref_tmp.astype(np.int16)) wavfile.write(str(tmpfile_test), fs, test_tmp.astype(np.int16)) wavfile.write(str(tmpfile_ref), 48000, ref_tmp.astype(np.int16)) wavfile.write(str(tmpfile_test), 48000, test_tmp.astype(np.int16)) cmd = [ str(wdiff), Loading