Loading .gitlab-ci.yml +51 −53 Original line number Diff line number Diff line Loading @@ -544,81 +544,69 @@ renderer-smoke-test: junit: - report-junit.xml # test renderer executable with cmake + asan renderer-asan: .renderer-sanitizer-job: extends: - .test-job-linux - .rules-merge-request-to-main needs: ["build-codec-linux-cmake"] stage: test script: - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=asan -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true - cmake --build cmake-build -- -j - testcase_timeout=180 - python3 -m pytest -q -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py --testcase_timeout=$testcase_timeout timeout: "1 hour" artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" expire_in: 1 week when: always paths: - report-junit.xml expose_as: "renderer asan pytest results" - report.html reports: junit: - report-junit.xml before_script: - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=$SANITIZER_BUILD_STRING -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true - cmake --build cmake-build -- -j # rename files to fit naming convention # en- and decoder needed because of split rendering testcases - mv IVAS_cod IVAS_cod_ref - mv IVAS_dec IVAS_dec_ref - mv IVAS_rend IVAS_rend_ref - mv ISAR_post_rend ISAR_post_rend_ref - testcase_timeout=180 # test renderer executable with cmake + asan renderer-asan: extends: - .renderer-sanitizer-job variables: SANITIZER_BUILD_STRING: "asan" script: - python3 -m pytest -q --tb=no -n auto --html=report.html --self-contained-html --junit-xml=report-junit.xml tests/renderer/test_renderer.py tests/split_rendering/test_split_rendering.py --create_ref --testcase_timeout=$testcase_timeout artifacts: expose_as: "renderer asan result" # test renderer executable with cmake + msan renderer-msan: extends: - .test-job-linux - .rules-merge-request-to-main needs: ["build-codec-linux-cmake"] stage: test - .renderer-sanitizer-job variables: SANITIZER_BUILD_STRING: "msan" script: - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=msan -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true - cmake --build cmake-build -- -j - testcase_timeout=180 - python3 -m pytest -q -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py --testcase_timeout=$testcase_timeout - python3 -m pytest -q --tb=no -n auto --html=report.html --self-contained-html --junit-xml=report-junit.xml tests/renderer/test_renderer.py tests/split_rendering/test_split_rendering.py --create_ref --testcase_timeout=$testcase_timeout artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" expire_in: 1 week when: always paths: - report-junit.xml expose_as: "renderer msan pytest results" reports: junit: - report-junit.xml expose_as: "renderer msan result" # test renderer executable with cmake + usan renderer-usan: extends: - .test-job-linux - .rules-merge-request-to-main needs: ["build-codec-linux-cmake"] stage: test - .renderer-sanitizer-job variables: SANITIZER_BUILD_STRING: "usan" script: - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=usan -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true - cmake --build cmake-build -- -j - testcase_timeout=180 - UBSAN_OPTIONS=suppressions=scripts/ubsan.supp,report_error_type=1,log_path=usan_log_catchall python3 -m pytest -q -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py --testcase_timeout=$testcase_timeout - grep_exit_code=0 - touch usan_log_empty # Creates an empty file, this is to avoid "grep: usan_log_*: No such file or directory" in case no USAN failures are reported from pytest - grep UndefinedBehaviorSanitizer usan_log_* || grep_exit_code=$? - if [ $grep_exit_code != 1 ] ; then echo "Run errors in test_renderer.py with Clang undefined-behavior-sanitizer"; exit 1; fi - UBSAN_OPTIONS=suppressions=scripts/ubsan.supp,report_error_type=1 python3 -m pytest -q --tb=no -n auto --html=report.html --self-contained-html --junit-xml=report-junit.xml tests/renderer/test_renderer.py tests/split_rendering/test_split_rendering.py --create_ref --testcase_timeout=$testcase_timeout artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" expire_in: 1 week when: always paths: - report-junit.xml expose_as: "renderer usan pytest results" reports: junit: - report-junit.xml expose_as: "renderer usan result" # compare renderer bitexactness between target and source branch renderer-pytest-on-merge-request: Loading Loading @@ -759,6 +747,7 @@ split-rendering-pytest-on-merge-request: - mv IVAS_cod IVAS_cod_ref - mv IVAS_dec IVAS_dec_ref - mv IVAS_rend IVAS_rend_ref - mv ISAR_post_rend ISAR_post_rend_ref ### If ref_using_main is not set, checkout the source branch to use scripts and input from there - if [ $ref_using_main == 0 ]; then git restore lib_com/options.h; fi # Revert changes back before checking out another branch to avoid conflicts Loading Loading @@ -806,6 +795,12 @@ ivas-pytest-on-merge-request: stage: compare needs: ["build-codec-linux-cmake", "codec-smoke-test"] timeout: "14 minutes" parallel: matrix: # note: keep in sync with list in $TESTS_DIR_CODEC_BE_ON_MR - PYTEST_SCRIPT: - test_param_file.py - test_sba.py script: - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh - commits_behind_count="$(bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/get-commits-behind-count.sh)" Loading @@ -823,7 +818,7 @@ ivas-pytest-on-merge-request: ### prepare pytest # create references - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v --update_ref 1 - python3 -m pytest "$TESTS_DIR_CODEC_BE_ON_MR"/"$PYTEST_SCRIPT" -v --update_ref 1 ### Run test using branch scripts and input - if [ $ref_using_main == 1 ]; then git checkout $source_branch_commit_sha; fi Loading @@ -831,7 +826,7 @@ ivas-pytest-on-merge-request: ### run pytest - exit_code=0 - testcase_timeout=60 - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v --html=report.html --self-contained-html --junit-xml=report-junit.xml --testcase_timeout=$testcase_timeout || exit_code=$? - python3 -m pytest "$TESTS_DIR_CODEC_BE_ON_MR"/"$PYTEST_SCRIPT" -v --html=report.html --self-contained-html --junit-xml=report-junit.xml --testcase_timeout=$testcase_timeout || exit_code=$? - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - *merge-request-comparison-check Loading Loading @@ -1039,7 +1034,7 @@ check-first-frame-is-sid: expose_as: "logs-sidstart" expire_in: "5 days" .lc3plus-ensure-no-code-changes: lc3plus-ensure-no-code-changes: extends: - .test-job-linux - .rules-merge-request-to-main Loading @@ -1051,7 +1046,7 @@ check-first-frame-is-sid: - ./scripts/lc3plus_lib_setup/get_lc3plus.sh # Ensure git reports no changes - modified_files=$(git status -s) - modified_files=$(git status -su lib_lc3plus) - if [[ $modified_files ]]; then printf 'LC3plus codebase was modified!\n\n'"$modified_files"'\n\n'; exit $EXIT_CODE_FAIL; fi check-bitexactness-hrtf-rom-and-file: Loading Loading @@ -1284,6 +1279,7 @@ ivas-conformance: - cp -force IVAS_cod.exe IVAS_cod_ref.exe - cp -force IVAS_dec.exe IVAS_dec_ref.exe - cp -force IVAS_rend.exe IVAS_rend_ref.exe - cp -force ISAR_post_rend.exe ISAR_post_rend_ref.exe # Reference creation - python scripts/prepare_combined_format_inputs.py Loading Loading @@ -1349,6 +1345,7 @@ ivas-conformance: expire_in: 1 week when: always paths: - report_cmd.html - report-junit.xml - report.html - Readme_IVAS_dec.txt Loading Loading @@ -1377,6 +1374,7 @@ ivas-conformance-linux: - cp IVAS_cod IVAS_cod_ref - cp IVAS_dec IVAS_dec_ref - cp IVAS_rend IVAS_rend_ref - cp ISAR_post_rend ISAR_post_rend_ref # Reference creation - python3 scripts/prepare_combined_format_inputs.py Loading Workspace_msvc/lib_lc3plus.vcxproj +15 −17 Original line number Diff line number Diff line Loading @@ -106,7 +106,6 @@ <ClCompile Include="..\lib_lc3plus\apply_global_gain.c" /> <ClCompile Include="..\lib_lc3plus\ari_codec.c" /> <ClCompile Include="..\lib_lc3plus\attack_detector.c" /> <ClCompile Include="..\lib_lc3plus\plc_compute_stab_fac.c" /> <ClCompile Include="..\lib_lc3plus\constants.c" /> <ClCompile Include="..\lib_lc3plus\cutoff_bandwidth.c" /> <ClCompile Include="..\lib_lc3plus\dct4.c" /> Loading @@ -116,13 +115,13 @@ <ClCompile Include="..\lib_lc3plus\enc_entropy.c" /> <ClCompile Include="..\lib_lc3plus\enc_lc3_fl.c" /> <ClCompile Include="..\lib_lc3plus\estimate_global_gain.c" /> <ClCompile Include="..\lib_lc3plus\lc3plus_fft.c" /> <ClCompile Include="..\lib_lc3plus\imdct.c" /> <ClCompile Include="..\lib_lc3plus\lc3.c" /> <ClCompile Include="..\lib_lc3plus\lc3plus_fft.c" /> <ClCompile Include="..\lib_lc3plus\lc3plus.c" /> <ClCompile Include="..\lib_lc3plus\ltpf_coder.c" /> <ClCompile Include="..\lib_lc3plus\ltpf_decoder.c" /> <ClCompile Include="..\lib_lc3plus\mdct.c" /> <ClCompile Include="..\lib_lc3plus\mdct_shaping.c" /> <ClCompile Include="..\lib_lc3plus\mdct.c" /> <ClCompile Include="..\lib_lc3plus\near_nyquist_detector.c" /> <ClCompile Include="..\lib_lc3plus\noise_factor.c" /> <ClCompile Include="..\lib_lc3plus\noise_filling.c" /> Loading @@ -133,35 +132,36 @@ <ClCompile Include="..\lib_lc3plus\pc_update.c" /> <ClCompile Include="..\lib_lc3plus\per_band_energy.c" /> <ClCompile Include="..\lib_lc3plus\plc_classify.c" /> <ClCompile Include="..\lib_lc3plus\plc_compute_stab_fac.c" /> <ClCompile Include="..\lib_lc3plus\plc_damping_scrambling.c" /> <ClCompile Include="..\lib_lc3plus\plc_main.c" /> <ClCompile Include="..\lib_lc3plus\plc_noise_substitution.c" /> <ClCompile Include="..\lib_lc3plus\plc_tdc_tdac.c" /> <ClCompile Include="..\lib_lc3plus\plc_update.c" /> <ClCompile Include="..\lib_lc3plus\plc_phecu_f0_refine_first.c" /> <ClCompile Include="..\lib_lc3plus\plc_phecu_fec_hq.c" /> <ClCompile Include="..\lib_lc3plus\plc_phecu_hq_ecu.c" /> <ClCompile Include="..\lib_lc3plus\plc_phecu_lf_peak_analysis.c" /> <ClCompile Include="..\lib_lc3plus\plc_phecu_rec_frame.c" /> <ClCompile Include="..\lib_lc3plus\plc_phecu_setf0hz.c" /> <ClCompile Include="..\lib_lc3plus\plc_phecu_subst_spec.c" /> <ClCompile Include="..\lib_lc3plus\plc_phecu_spec_ana.c" /> <ClCompile Include="..\lib_lc3plus\plc_phecu_subst_spec.c" /> <ClCompile Include="..\lib_lc3plus\plc_phecu_tba_per_band_gain.c" /> <ClCompile Include="..\lib_lc3plus\plc_phecu_tba_spect_Xavg.c" /> <ClCompile Include="..\lib_lc3plus\plc_phecu_tba_trans_dect_gains.c" /> <ClCompile Include="..\lib_lc3plus\plc_phecu_trans_burst_ana_sub.c" /> <ClCompile Include="..\lib_lc3plus\plc_tdc_tdac.c" /> <ClCompile Include="..\lib_lc3plus\plc_tdc.c" /> <ClCompile Include="..\lib_lc3plus\plc_update.c" /> <ClCompile Include="..\lib_lc3plus\quantize_spec.c" /> <ClCompile Include="..\lib_lc3plus\reorder_bitstream.c" /> <ClCompile Include="..\lib_lc3plus\resamp12k8.c" /> <ClCompile Include="..\lib_lc3plus\residual_coding.c" /> <ClCompile Include="..\lib_lc3plus\residual_decoding.c" /> <ClCompile Include="..\lib_lc3plus\setup_dec_lc3.c" /> <ClCompile Include="..\lib_lc3plus\setup_enc_lc3.c" /> <ClCompile Include="..\lib_lc3plus\setup_com_lc3.c" /> <ClCompile Include="..\lib_lc3plus\setup_com_lc3plus.c" /> <ClCompile Include="..\lib_lc3plus\setup_dec_lc3plus.c" /> <ClCompile Include="..\lib_lc3plus\setup_enc_lc3plus.c" /> <ClCompile Include="..\lib_lc3plus\sns_compute_scf.c" /> <ClCompile Include="..\lib_lc3plus\sns_interpolate_scf.c" /> <ClCompile Include="..\lib_lc3plus\sns_quantize_scf.c" /> <ClCompile Include="..\lib_lc3plus\plc_tdc.c" /> <ClCompile Include="..\lib_lc3plus\tns_coder.c" /> <ClCompile Include="..\lib_lc3plus\tns_decoder.c" /> </ItemGroup> Loading @@ -169,14 +169,12 @@ <ClInclude Include="..\lib_lc3plus\clib.h" /> <ClInclude Include="..\lib_lc3plus\constants.h" /> <ClInclude Include="..\lib_lc3plus\defines.h" /> <ClInclude Include="..\lib_lc3plus\file_io.h" /> <ClInclude Include="..\lib_lc3plus\functions.h" /> <ClInclude Include="..\lib_lc3plus\lc3.h" /> <ClInclude Include="..\lib_lc3plus\setup_dec_lc3.h" /> <ClInclude Include="..\lib_lc3plus\setup_enc_lc3.h" /> <ClInclude Include="..\lib_lc3plus\lc3plus.h" /> <ClInclude Include="..\lib_lc3plus\license.h" /> <ClInclude Include="..\lib_lc3plus\setup_dec_lc3plus.h" /> <ClInclude Include="..\lib_lc3plus\setup_enc_lc3plus.h" /> <ClInclude Include="..\lib_lc3plus\structs.h" /> <ClInclude Include="..\lib_lc3plus\tinywavein_c.h" /> <ClInclude Include="..\lib_lc3plus\tinywaveout_c.h" /> <ClInclude Include="..\lib_lc3plus\util.h" /> </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> Loading Workspace_msvc/lib_rend.vcxproj +1 −0 Original line number Diff line number Diff line Loading @@ -175,6 +175,7 @@ <ClCompile Include="..\lib_rend\ivas_rom_rend.c" /> <ClCompile Include="..\lib_rend\ivas_shoebox.c" /> <ClCompile Include="..\lib_rend\ivas_td_decorr.c" /> <ClCompile Include="..\lib_rend\ivas_td_ring_buffer.c" /> <ClCompile Include="..\lib_rend\ivas_vbap.c" /> <ClCompile Include="..\lib_rend\lib_rend.c" /> </ItemGroup> Loading Workspace_msvc/lib_rend.vcxproj.filters +2 −71 Original line number Diff line number Diff line Loading @@ -32,30 +32,12 @@ <ClCompile Include="..\lib_rend\ivas_hrtf.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_lc3plus_common.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_lc3plus_dec.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_lc3plus_enc.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_limiter.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_masa_merge.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_mcmasa_ana.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_MSPred.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_NoiseGen.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_objectRenderer.c"> <Filter>rend_c</Filter> </ClCompile> Loading Loading @@ -83,15 +65,6 @@ <ClCompile Include="..\lib_rend\ivas_output_init.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_PerceptualModel.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_PredDecoder.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_PredEncoder.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_render_config.c"> <Filter>rend_c</Filter> </ClCompile> Loading @@ -113,9 +86,6 @@ <ClCompile Include="..\lib_rend\ivas_reverb_utils.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_RMSEnvGrouping.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_rom_binaural_crend_head.c"> <Filter>rend_c</Filter> </ClCompile> Loading @@ -134,24 +104,6 @@ <ClCompile Include="..\lib_rend\ivas_sba_rendering.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_splitRend_lcld_dec.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_splitRend_lcld_enc.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_splitRenderer_utils.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_splitRendererPLC.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_splitRendererPost.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_splitRendererPre.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_shoebox.c"> <Filter>rend_c</Filter> </ClCompile> Loading @@ -161,30 +113,15 @@ <ClCompile Include="..\lib_rend\ivas_vbap.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_lcld_rom_tables.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_lcld_decoder.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_lcld_encoder.c"> <ClCompile Include="..\lib_rend\ivas_td_decorr.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_td_decorr.c"> <ClCompile Include="..\lib_rend\ivas_td_ring_buffer.c"> <Filter>rend_c</Filter> </ClCompile> </ItemGroup> <ItemGroup> <ClInclude Include="..\lib_rend\lib_rend.h" /> <ClInclude Include="..\lib_rend\ivas_lc3plus_common.h"> <Filter>rend_h</Filter> </ClInclude> <ClInclude Include="..\lib_rend\ivas_lc3plus_enc.h"> <Filter>rend_h</Filter> </ClInclude> <ClInclude Include="..\lib_rend\ivas_lc3plus_dec.h"> <Filter>rend_h</Filter> </ClInclude> <ClInclude Include="..\lib_rend\ivas_prot_rend.h"> <Filter>rend_h</Filter> </ClInclude> Loading @@ -203,12 +140,6 @@ <ClInclude Include="..\lib_rend\ivas_rom_TdBinauralRenderer.h"> <Filter>rend_h</Filter> </ClInclude> <ClInclude Include="..\lib_rend\ivas_lcld_prot.h"> <Filter>rend_h</Filter> </ClInclude> <ClInclude Include="..\lib_rend\ivas_lcld_rom_tables.h"> <Filter>rend_h</Filter> </ClInclude> </ItemGroup> <ItemGroup> <Filter Include="rend_h"> Loading apps/decoder.c +6 −2 Original line number Diff line number Diff line Loading @@ -1866,13 +1866,13 @@ static ivas_error initOnFirstGoodFrame( return error; } int16_t *zeroBuf = malloc( pcmFrameSize * sizeof( int16_t ) ); /* Write zeros to the output audio buffer */ int16_t *zeroBuf = calloc( pcmFrameSize, sizeof( int16_t ) ); if ( zeroBuf == NULL ) { fprintf( stdout, "Error: Unable to allocate memory for output buffer.\n" ); return IVAS_ERR_FAILED_ALLOC; } memset( zeroBuf, 0, pcmFrameSize * sizeof( int16_t ) ); for ( int16_t i = 0; i < numInitialBadFrames; ++i ) { Loading Loading @@ -3623,7 +3623,11 @@ static ivas_error decodeVoIP( goto cleanup; } #ifdef FIX_1119_SPLIT_RENDERING_VOIP if ( nSamplesFlushed && !isSplitCoded ) #else if ( nSamplesFlushed ) #endif { /* Write current frame */ if ( ( error = AudioFileWriter_write( afWriter, pcmBuf, nSamplesFlushed * nOutChannels ) ) != IVAS_ERR_OK ) Loading Loading
.gitlab-ci.yml +51 −53 Original line number Diff line number Diff line Loading @@ -544,81 +544,69 @@ renderer-smoke-test: junit: - report-junit.xml # test renderer executable with cmake + asan renderer-asan: .renderer-sanitizer-job: extends: - .test-job-linux - .rules-merge-request-to-main needs: ["build-codec-linux-cmake"] stage: test script: - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=asan -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true - cmake --build cmake-build -- -j - testcase_timeout=180 - python3 -m pytest -q -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py --testcase_timeout=$testcase_timeout timeout: "1 hour" artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" expire_in: 1 week when: always paths: - report-junit.xml expose_as: "renderer asan pytest results" - report.html reports: junit: - report-junit.xml before_script: - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=$SANITIZER_BUILD_STRING -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true - cmake --build cmake-build -- -j # rename files to fit naming convention # en- and decoder needed because of split rendering testcases - mv IVAS_cod IVAS_cod_ref - mv IVAS_dec IVAS_dec_ref - mv IVAS_rend IVAS_rend_ref - mv ISAR_post_rend ISAR_post_rend_ref - testcase_timeout=180 # test renderer executable with cmake + asan renderer-asan: extends: - .renderer-sanitizer-job variables: SANITIZER_BUILD_STRING: "asan" script: - python3 -m pytest -q --tb=no -n auto --html=report.html --self-contained-html --junit-xml=report-junit.xml tests/renderer/test_renderer.py tests/split_rendering/test_split_rendering.py --create_ref --testcase_timeout=$testcase_timeout artifacts: expose_as: "renderer asan result" # test renderer executable with cmake + msan renderer-msan: extends: - .test-job-linux - .rules-merge-request-to-main needs: ["build-codec-linux-cmake"] stage: test - .renderer-sanitizer-job variables: SANITIZER_BUILD_STRING: "msan" script: - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=msan -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true - cmake --build cmake-build -- -j - testcase_timeout=180 - python3 -m pytest -q -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py --testcase_timeout=$testcase_timeout - python3 -m pytest -q --tb=no -n auto --html=report.html --self-contained-html --junit-xml=report-junit.xml tests/renderer/test_renderer.py tests/split_rendering/test_split_rendering.py --create_ref --testcase_timeout=$testcase_timeout artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" expire_in: 1 week when: always paths: - report-junit.xml expose_as: "renderer msan pytest results" reports: junit: - report-junit.xml expose_as: "renderer msan result" # test renderer executable with cmake + usan renderer-usan: extends: - .test-job-linux - .rules-merge-request-to-main needs: ["build-codec-linux-cmake"] stage: test - .renderer-sanitizer-job variables: SANITIZER_BUILD_STRING: "usan" script: - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=usan -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true - cmake --build cmake-build -- -j - testcase_timeout=180 - UBSAN_OPTIONS=suppressions=scripts/ubsan.supp,report_error_type=1,log_path=usan_log_catchall python3 -m pytest -q -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py --testcase_timeout=$testcase_timeout - grep_exit_code=0 - touch usan_log_empty # Creates an empty file, this is to avoid "grep: usan_log_*: No such file or directory" in case no USAN failures are reported from pytest - grep UndefinedBehaviorSanitizer usan_log_* || grep_exit_code=$? - if [ $grep_exit_code != 1 ] ; then echo "Run errors in test_renderer.py with Clang undefined-behavior-sanitizer"; exit 1; fi - UBSAN_OPTIONS=suppressions=scripts/ubsan.supp,report_error_type=1 python3 -m pytest -q --tb=no -n auto --html=report.html --self-contained-html --junit-xml=report-junit.xml tests/renderer/test_renderer.py tests/split_rendering/test_split_rendering.py --create_ref --testcase_timeout=$testcase_timeout artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" expire_in: 1 week when: always paths: - report-junit.xml expose_as: "renderer usan pytest results" reports: junit: - report-junit.xml expose_as: "renderer usan result" # compare renderer bitexactness between target and source branch renderer-pytest-on-merge-request: Loading Loading @@ -759,6 +747,7 @@ split-rendering-pytest-on-merge-request: - mv IVAS_cod IVAS_cod_ref - mv IVAS_dec IVAS_dec_ref - mv IVAS_rend IVAS_rend_ref - mv ISAR_post_rend ISAR_post_rend_ref ### If ref_using_main is not set, checkout the source branch to use scripts and input from there - if [ $ref_using_main == 0 ]; then git restore lib_com/options.h; fi # Revert changes back before checking out another branch to avoid conflicts Loading Loading @@ -806,6 +795,12 @@ ivas-pytest-on-merge-request: stage: compare needs: ["build-codec-linux-cmake", "codec-smoke-test"] timeout: "14 minutes" parallel: matrix: # note: keep in sync with list in $TESTS_DIR_CODEC_BE_ON_MR - PYTEST_SCRIPT: - test_param_file.py - test_sba.py script: - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh - commits_behind_count="$(bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/get-commits-behind-count.sh)" Loading @@ -823,7 +818,7 @@ ivas-pytest-on-merge-request: ### prepare pytest # create references - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v --update_ref 1 - python3 -m pytest "$TESTS_DIR_CODEC_BE_ON_MR"/"$PYTEST_SCRIPT" -v --update_ref 1 ### Run test using branch scripts and input - if [ $ref_using_main == 1 ]; then git checkout $source_branch_commit_sha; fi Loading @@ -831,7 +826,7 @@ ivas-pytest-on-merge-request: ### run pytest - exit_code=0 - testcase_timeout=60 - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v --html=report.html --self-contained-html --junit-xml=report-junit.xml --testcase_timeout=$testcase_timeout || exit_code=$? - python3 -m pytest "$TESTS_DIR_CODEC_BE_ON_MR"/"$PYTEST_SCRIPT" -v --html=report.html --self-contained-html --junit-xml=report-junit.xml --testcase_timeout=$testcase_timeout || exit_code=$? - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - *merge-request-comparison-check Loading Loading @@ -1039,7 +1034,7 @@ check-first-frame-is-sid: expose_as: "logs-sidstart" expire_in: "5 days" .lc3plus-ensure-no-code-changes: lc3plus-ensure-no-code-changes: extends: - .test-job-linux - .rules-merge-request-to-main Loading @@ -1051,7 +1046,7 @@ check-first-frame-is-sid: - ./scripts/lc3plus_lib_setup/get_lc3plus.sh # Ensure git reports no changes - modified_files=$(git status -s) - modified_files=$(git status -su lib_lc3plus) - if [[ $modified_files ]]; then printf 'LC3plus codebase was modified!\n\n'"$modified_files"'\n\n'; exit $EXIT_CODE_FAIL; fi check-bitexactness-hrtf-rom-and-file: Loading Loading @@ -1284,6 +1279,7 @@ ivas-conformance: - cp -force IVAS_cod.exe IVAS_cod_ref.exe - cp -force IVAS_dec.exe IVAS_dec_ref.exe - cp -force IVAS_rend.exe IVAS_rend_ref.exe - cp -force ISAR_post_rend.exe ISAR_post_rend_ref.exe # Reference creation - python scripts/prepare_combined_format_inputs.py Loading Loading @@ -1349,6 +1345,7 @@ ivas-conformance: expire_in: 1 week when: always paths: - report_cmd.html - report-junit.xml - report.html - Readme_IVAS_dec.txt Loading Loading @@ -1377,6 +1374,7 @@ ivas-conformance-linux: - cp IVAS_cod IVAS_cod_ref - cp IVAS_dec IVAS_dec_ref - cp IVAS_rend IVAS_rend_ref - cp ISAR_post_rend ISAR_post_rend_ref # Reference creation - python3 scripts/prepare_combined_format_inputs.py Loading
Workspace_msvc/lib_lc3plus.vcxproj +15 −17 Original line number Diff line number Diff line Loading @@ -106,7 +106,6 @@ <ClCompile Include="..\lib_lc3plus\apply_global_gain.c" /> <ClCompile Include="..\lib_lc3plus\ari_codec.c" /> <ClCompile Include="..\lib_lc3plus\attack_detector.c" /> <ClCompile Include="..\lib_lc3plus\plc_compute_stab_fac.c" /> <ClCompile Include="..\lib_lc3plus\constants.c" /> <ClCompile Include="..\lib_lc3plus\cutoff_bandwidth.c" /> <ClCompile Include="..\lib_lc3plus\dct4.c" /> Loading @@ -116,13 +115,13 @@ <ClCompile Include="..\lib_lc3plus\enc_entropy.c" /> <ClCompile Include="..\lib_lc3plus\enc_lc3_fl.c" /> <ClCompile Include="..\lib_lc3plus\estimate_global_gain.c" /> <ClCompile Include="..\lib_lc3plus\lc3plus_fft.c" /> <ClCompile Include="..\lib_lc3plus\imdct.c" /> <ClCompile Include="..\lib_lc3plus\lc3.c" /> <ClCompile Include="..\lib_lc3plus\lc3plus_fft.c" /> <ClCompile Include="..\lib_lc3plus\lc3plus.c" /> <ClCompile Include="..\lib_lc3plus\ltpf_coder.c" /> <ClCompile Include="..\lib_lc3plus\ltpf_decoder.c" /> <ClCompile Include="..\lib_lc3plus\mdct.c" /> <ClCompile Include="..\lib_lc3plus\mdct_shaping.c" /> <ClCompile Include="..\lib_lc3plus\mdct.c" /> <ClCompile Include="..\lib_lc3plus\near_nyquist_detector.c" /> <ClCompile Include="..\lib_lc3plus\noise_factor.c" /> <ClCompile Include="..\lib_lc3plus\noise_filling.c" /> Loading @@ -133,35 +132,36 @@ <ClCompile Include="..\lib_lc3plus\pc_update.c" /> <ClCompile Include="..\lib_lc3plus\per_band_energy.c" /> <ClCompile Include="..\lib_lc3plus\plc_classify.c" /> <ClCompile Include="..\lib_lc3plus\plc_compute_stab_fac.c" /> <ClCompile Include="..\lib_lc3plus\plc_damping_scrambling.c" /> <ClCompile Include="..\lib_lc3plus\plc_main.c" /> <ClCompile Include="..\lib_lc3plus\plc_noise_substitution.c" /> <ClCompile Include="..\lib_lc3plus\plc_tdc_tdac.c" /> <ClCompile Include="..\lib_lc3plus\plc_update.c" /> <ClCompile Include="..\lib_lc3plus\plc_phecu_f0_refine_first.c" /> <ClCompile Include="..\lib_lc3plus\plc_phecu_fec_hq.c" /> <ClCompile Include="..\lib_lc3plus\plc_phecu_hq_ecu.c" /> <ClCompile Include="..\lib_lc3plus\plc_phecu_lf_peak_analysis.c" /> <ClCompile Include="..\lib_lc3plus\plc_phecu_rec_frame.c" /> <ClCompile Include="..\lib_lc3plus\plc_phecu_setf0hz.c" /> <ClCompile Include="..\lib_lc3plus\plc_phecu_subst_spec.c" /> <ClCompile Include="..\lib_lc3plus\plc_phecu_spec_ana.c" /> <ClCompile Include="..\lib_lc3plus\plc_phecu_subst_spec.c" /> <ClCompile Include="..\lib_lc3plus\plc_phecu_tba_per_band_gain.c" /> <ClCompile Include="..\lib_lc3plus\plc_phecu_tba_spect_Xavg.c" /> <ClCompile Include="..\lib_lc3plus\plc_phecu_tba_trans_dect_gains.c" /> <ClCompile Include="..\lib_lc3plus\plc_phecu_trans_burst_ana_sub.c" /> <ClCompile Include="..\lib_lc3plus\plc_tdc_tdac.c" /> <ClCompile Include="..\lib_lc3plus\plc_tdc.c" /> <ClCompile Include="..\lib_lc3plus\plc_update.c" /> <ClCompile Include="..\lib_lc3plus\quantize_spec.c" /> <ClCompile Include="..\lib_lc3plus\reorder_bitstream.c" /> <ClCompile Include="..\lib_lc3plus\resamp12k8.c" /> <ClCompile Include="..\lib_lc3plus\residual_coding.c" /> <ClCompile Include="..\lib_lc3plus\residual_decoding.c" /> <ClCompile Include="..\lib_lc3plus\setup_dec_lc3.c" /> <ClCompile Include="..\lib_lc3plus\setup_enc_lc3.c" /> <ClCompile Include="..\lib_lc3plus\setup_com_lc3.c" /> <ClCompile Include="..\lib_lc3plus\setup_com_lc3plus.c" /> <ClCompile Include="..\lib_lc3plus\setup_dec_lc3plus.c" /> <ClCompile Include="..\lib_lc3plus\setup_enc_lc3plus.c" /> <ClCompile Include="..\lib_lc3plus\sns_compute_scf.c" /> <ClCompile Include="..\lib_lc3plus\sns_interpolate_scf.c" /> <ClCompile Include="..\lib_lc3plus\sns_quantize_scf.c" /> <ClCompile Include="..\lib_lc3plus\plc_tdc.c" /> <ClCompile Include="..\lib_lc3plus\tns_coder.c" /> <ClCompile Include="..\lib_lc3plus\tns_decoder.c" /> </ItemGroup> Loading @@ -169,14 +169,12 @@ <ClInclude Include="..\lib_lc3plus\clib.h" /> <ClInclude Include="..\lib_lc3plus\constants.h" /> <ClInclude Include="..\lib_lc3plus\defines.h" /> <ClInclude Include="..\lib_lc3plus\file_io.h" /> <ClInclude Include="..\lib_lc3plus\functions.h" /> <ClInclude Include="..\lib_lc3plus\lc3.h" /> <ClInclude Include="..\lib_lc3plus\setup_dec_lc3.h" /> <ClInclude Include="..\lib_lc3plus\setup_enc_lc3.h" /> <ClInclude Include="..\lib_lc3plus\lc3plus.h" /> <ClInclude Include="..\lib_lc3plus\license.h" /> <ClInclude Include="..\lib_lc3plus\setup_dec_lc3plus.h" /> <ClInclude Include="..\lib_lc3plus\setup_enc_lc3plus.h" /> <ClInclude Include="..\lib_lc3plus\structs.h" /> <ClInclude Include="..\lib_lc3plus\tinywavein_c.h" /> <ClInclude Include="..\lib_lc3plus\tinywaveout_c.h" /> <ClInclude Include="..\lib_lc3plus\util.h" /> </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> Loading
Workspace_msvc/lib_rend.vcxproj +1 −0 Original line number Diff line number Diff line Loading @@ -175,6 +175,7 @@ <ClCompile Include="..\lib_rend\ivas_rom_rend.c" /> <ClCompile Include="..\lib_rend\ivas_shoebox.c" /> <ClCompile Include="..\lib_rend\ivas_td_decorr.c" /> <ClCompile Include="..\lib_rend\ivas_td_ring_buffer.c" /> <ClCompile Include="..\lib_rend\ivas_vbap.c" /> <ClCompile Include="..\lib_rend\lib_rend.c" /> </ItemGroup> Loading
Workspace_msvc/lib_rend.vcxproj.filters +2 −71 Original line number Diff line number Diff line Loading @@ -32,30 +32,12 @@ <ClCompile Include="..\lib_rend\ivas_hrtf.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_lc3plus_common.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_lc3plus_dec.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_lc3plus_enc.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_limiter.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_masa_merge.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_mcmasa_ana.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_MSPred.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_NoiseGen.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_objectRenderer.c"> <Filter>rend_c</Filter> </ClCompile> Loading Loading @@ -83,15 +65,6 @@ <ClCompile Include="..\lib_rend\ivas_output_init.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_PerceptualModel.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_PredDecoder.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_PredEncoder.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_render_config.c"> <Filter>rend_c</Filter> </ClCompile> Loading @@ -113,9 +86,6 @@ <ClCompile Include="..\lib_rend\ivas_reverb_utils.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_RMSEnvGrouping.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_rom_binaural_crend_head.c"> <Filter>rend_c</Filter> </ClCompile> Loading @@ -134,24 +104,6 @@ <ClCompile Include="..\lib_rend\ivas_sba_rendering.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_splitRend_lcld_dec.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_splitRend_lcld_enc.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_splitRenderer_utils.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_splitRendererPLC.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_splitRendererPost.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_splitRendererPre.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_shoebox.c"> <Filter>rend_c</Filter> </ClCompile> Loading @@ -161,30 +113,15 @@ <ClCompile Include="..\lib_rend\ivas_vbap.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_lcld_rom_tables.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_lcld_decoder.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_lcld_encoder.c"> <ClCompile Include="..\lib_rend\ivas_td_decorr.c"> <Filter>rend_c</Filter> </ClCompile> <ClCompile Include="..\lib_rend\ivas_td_decorr.c"> <ClCompile Include="..\lib_rend\ivas_td_ring_buffer.c"> <Filter>rend_c</Filter> </ClCompile> </ItemGroup> <ItemGroup> <ClInclude Include="..\lib_rend\lib_rend.h" /> <ClInclude Include="..\lib_rend\ivas_lc3plus_common.h"> <Filter>rend_h</Filter> </ClInclude> <ClInclude Include="..\lib_rend\ivas_lc3plus_enc.h"> <Filter>rend_h</Filter> </ClInclude> <ClInclude Include="..\lib_rend\ivas_lc3plus_dec.h"> <Filter>rend_h</Filter> </ClInclude> <ClInclude Include="..\lib_rend\ivas_prot_rend.h"> <Filter>rend_h</Filter> </ClInclude> Loading @@ -203,12 +140,6 @@ <ClInclude Include="..\lib_rend\ivas_rom_TdBinauralRenderer.h"> <Filter>rend_h</Filter> </ClInclude> <ClInclude Include="..\lib_rend\ivas_lcld_prot.h"> <Filter>rend_h</Filter> </ClInclude> <ClInclude Include="..\lib_rend\ivas_lcld_rom_tables.h"> <Filter>rend_h</Filter> </ClInclude> </ItemGroup> <ItemGroup> <Filter Include="rend_h"> Loading
apps/decoder.c +6 −2 Original line number Diff line number Diff line Loading @@ -1866,13 +1866,13 @@ static ivas_error initOnFirstGoodFrame( return error; } int16_t *zeroBuf = malloc( pcmFrameSize * sizeof( int16_t ) ); /* Write zeros to the output audio buffer */ int16_t *zeroBuf = calloc( pcmFrameSize, sizeof( int16_t ) ); if ( zeroBuf == NULL ) { fprintf( stdout, "Error: Unable to allocate memory for output buffer.\n" ); return IVAS_ERR_FAILED_ALLOC; } memset( zeroBuf, 0, pcmFrameSize * sizeof( int16_t ) ); for ( int16_t i = 0; i < numInitialBadFrames; ++i ) { Loading Loading @@ -3623,7 +3623,11 @@ static ivas_error decodeVoIP( goto cleanup; } #ifdef FIX_1119_SPLIT_RENDERING_VOIP if ( nSamplesFlushed && !isSplitCoded ) #else if ( nSamplesFlushed ) #endif { /* Write current frame */ if ( ( error = AudioFileWriter_write( afWriter, pcmBuf, nSamplesFlushed * nOutChannels ) ) != IVAS_ERR_OK ) Loading