Loading .gitlab-ci.yml +66 −61 Original line number Diff line number Diff line variables: # note: GitLab cannot reference variables defined by users in the include ref:, we need to use a YAML anchor for this # see https://docs.gitlab.com/ci/yaml/includes/#use-variables-with-include for more information IVAS_CODEC_CI_REF: &IVAS_CODEC_CI_REF 4eb4c0dfbdc845280a9994b5f7540f69c737537b IVAS_CODEC_CI_REF: &IVAS_CODEC_CI_REF main include: - local: .gitlab-ci/variables.yml Loading Loading @@ -352,6 +352,13 @@ build-codec-instrumented-linux: - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh - ./scripts/prepare_instrumentation.sh - make -j -C scripts/c-code_instrument artifacts: when: always access: all expire_in: "30 days" paths: - wmc_tool_output.txt # make sure that the codec builds with msan, asan and usan build-codec-sanitizers-linux: Loading Loading @@ -419,7 +426,7 @@ codec-smoke-test: - if cat smoke_test_output_hrtf.txt | grep -c "failed"; then echo "Smoke test with external hrtf files failed"; ret_val=1; fi - exit $ret_val artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" expire_in: 1 week when: always paths: Loading Loading @@ -477,7 +484,7 @@ pytest-compare-20ms-and-5ms-rendering: needs: ["build-codec-linux-cmake", "build-codec-linux-make", "build-codec-instrumented-linux", "build-codec-sanitizers-linux"] script: - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/float/disable-limiter.sh - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/disable-limiter.sh - make clean - make -j ### prepare pytest Loading @@ -501,7 +508,7 @@ pytest-compare-20ms-and-5ms-rendering: - if [ $exit_code10 -ne 0 ]; then echo "Non-bitexact cases encountered with 10ms rendering!"; exit_code=1; fi - if [ $exit_code -ne 0 ]; then exit $EXIT_CODE_FAIL; fi artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" expire_in: 1 week when: always expose_as: "pytest 5ms and 10ms vs 20ms results" Loading Loading @@ -537,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 @@ -730,6 +725,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 @@ -777,6 +773,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 @@ -794,7 +796,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 @@ -802,7 +804,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 @@ -811,7 +813,7 @@ ivas-pytest-on-merge-request: exit_codes: - 123 artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" expire_in: 1 week when: always paths: Loading Loading @@ -862,7 +864,7 @@ ivas-interop-on-merge-request: exit_codes: - 123 artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" expire_in: 1 week when: always paths: Loading Loading @@ -914,7 +916,7 @@ evs-pytest-on-merge-request: exit_codes: - 123 artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" expire_in: 1 week when: always paths: Loading Loading @@ -1010,7 +1012,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 @@ -1022,7 +1024,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 @@ -1196,7 +1198,7 @@ codec-comparison-on-main-push: exit_codes: - 123 artifacts: name: "main-push--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" name: "main-push--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" expire_in: 1 week when: always paths: Loading Loading @@ -1255,6 +1257,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 @@ -1320,6 +1323,7 @@ ivas-conformance: expire_in: 1 week when: always paths: - report_cmd.html - report-junit.xml - report.html - Readme_IVAS_dec.txt Loading Loading @@ -1348,6 +1352,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 +16 −4 Original line number Diff line number Diff line Loading @@ -1617,6 +1617,18 @@ static bool parseCmdlIVAS_dec( return false; } #ifdef SUPPORT_JBM_TRACEFILE /* Validate options that depend on other options */ if ( arg->jbmTraceFilename != NULL && arg->delayCompensationEnabled /* This decMode check should be removed once timestamp sync issues between JBM trace and audio are fixed in EVS */ && arg->decMode != IVAS_DEC_MODE_EVS ) { fprintf( stderr, "Error: Writing to a JBM trace file requires delay compensation to be disabled with -no_delay_cmp\n\n" ); usage_dec(); return false; } #endif return true; } Loading Loading @@ -1653,7 +1665,8 @@ static void usage_dec( void ) fprintf( stdout, " EVS RTP Payload Format. The SDP parameter hf_only is required.\n" ); fprintf( stdout, " Reading RFC4867 AMR/AMR-WB RTP payload format is not supported.\n" ); #ifdef SUPPORT_JBM_TRACEFILE fprintf( stdout, "-Tracefile TF : VoIP mode: Generate trace file named TF\n" ); fprintf( stdout, "-Tracefile TF : VoIP mode: Generate trace file named TF. Requires -no_delay_cmp to\n" ); fprintf( stdout, " be enabled so that trace contents remain in sync with audio output.\n" ); #endif #ifdef DEBUGGING #ifdef VARIABLE_SPEED_DECODING Loading Loading @@ -1858,13 +1871,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 @@ -1888,7 +1901,6 @@ static ivas_error initOnFirstGoodFrame( } else { if ( *pRemainingDelayNumSamples < *numOutSamples ) { if ( ( error = AudioFileWriter_write( *ppAfWriter, zeroBuf, *numOutSamples * *pNumOutChannels - ( *pRemainingDelayNumSamples * *pNumOutChannels ) ) ) != IVAS_ERR_OK ) Loading Loading
.gitlab-ci.yml +66 −61 Original line number Diff line number Diff line variables: # note: GitLab cannot reference variables defined by users in the include ref:, we need to use a YAML anchor for this # see https://docs.gitlab.com/ci/yaml/includes/#use-variables-with-include for more information IVAS_CODEC_CI_REF: &IVAS_CODEC_CI_REF 4eb4c0dfbdc845280a9994b5f7540f69c737537b IVAS_CODEC_CI_REF: &IVAS_CODEC_CI_REF main include: - local: .gitlab-ci/variables.yml Loading Loading @@ -352,6 +352,13 @@ build-codec-instrumented-linux: - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh - ./scripts/prepare_instrumentation.sh - make -j -C scripts/c-code_instrument artifacts: when: always access: all expire_in: "30 days" paths: - wmc_tool_output.txt # make sure that the codec builds with msan, asan and usan build-codec-sanitizers-linux: Loading Loading @@ -419,7 +426,7 @@ codec-smoke-test: - if cat smoke_test_output_hrtf.txt | grep -c "failed"; then echo "Smoke test with external hrtf files failed"; ret_val=1; fi - exit $ret_val artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" expire_in: 1 week when: always paths: Loading Loading @@ -477,7 +484,7 @@ pytest-compare-20ms-and-5ms-rendering: needs: ["build-codec-linux-cmake", "build-codec-linux-make", "build-codec-instrumented-linux", "build-codec-sanitizers-linux"] script: - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/float/disable-limiter.sh - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/disable-limiter.sh - make clean - make -j ### prepare pytest Loading @@ -501,7 +508,7 @@ pytest-compare-20ms-and-5ms-rendering: - if [ $exit_code10 -ne 0 ]; then echo "Non-bitexact cases encountered with 10ms rendering!"; exit_code=1; fi - if [ $exit_code -ne 0 ]; then exit $EXIT_CODE_FAIL; fi artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" expire_in: 1 week when: always expose_as: "pytest 5ms and 10ms vs 20ms results" Loading Loading @@ -537,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 @@ -730,6 +725,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 @@ -777,6 +773,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 @@ -794,7 +796,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 @@ -802,7 +804,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 @@ -811,7 +813,7 @@ ivas-pytest-on-merge-request: exit_codes: - 123 artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" expire_in: 1 week when: always paths: Loading Loading @@ -862,7 +864,7 @@ ivas-interop-on-merge-request: exit_codes: - 123 artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" expire_in: 1 week when: always paths: Loading Loading @@ -914,7 +916,7 @@ evs-pytest-on-merge-request: exit_codes: - 123 artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" expire_in: 1 week when: always paths: Loading Loading @@ -1010,7 +1012,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 @@ -1022,7 +1024,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 @@ -1196,7 +1198,7 @@ codec-comparison-on-main-push: exit_codes: - 123 artifacts: name: "main-push--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" name: "main-push--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" expire_in: 1 week when: always paths: Loading Loading @@ -1255,6 +1257,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 @@ -1320,6 +1323,7 @@ ivas-conformance: expire_in: 1 week when: always paths: - report_cmd.html - report-junit.xml - report.html - Readme_IVAS_dec.txt Loading Loading @@ -1348,6 +1352,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 +16 −4 Original line number Diff line number Diff line Loading @@ -1617,6 +1617,18 @@ static bool parseCmdlIVAS_dec( return false; } #ifdef SUPPORT_JBM_TRACEFILE /* Validate options that depend on other options */ if ( arg->jbmTraceFilename != NULL && arg->delayCompensationEnabled /* This decMode check should be removed once timestamp sync issues between JBM trace and audio are fixed in EVS */ && arg->decMode != IVAS_DEC_MODE_EVS ) { fprintf( stderr, "Error: Writing to a JBM trace file requires delay compensation to be disabled with -no_delay_cmp\n\n" ); usage_dec(); return false; } #endif return true; } Loading Loading @@ -1653,7 +1665,8 @@ static void usage_dec( void ) fprintf( stdout, " EVS RTP Payload Format. The SDP parameter hf_only is required.\n" ); fprintf( stdout, " Reading RFC4867 AMR/AMR-WB RTP payload format is not supported.\n" ); #ifdef SUPPORT_JBM_TRACEFILE fprintf( stdout, "-Tracefile TF : VoIP mode: Generate trace file named TF\n" ); fprintf( stdout, "-Tracefile TF : VoIP mode: Generate trace file named TF. Requires -no_delay_cmp to\n" ); fprintf( stdout, " be enabled so that trace contents remain in sync with audio output.\n" ); #endif #ifdef DEBUGGING #ifdef VARIABLE_SPEED_DECODING Loading Loading @@ -1858,13 +1871,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 @@ -1888,7 +1901,6 @@ static ivas_error initOnFirstGoodFrame( } else { if ( *pRemainingDelayNumSamples < *numOutSamples ) { if ( ( error = AudioFileWriter_write( *ppAfWriter, zeroBuf, *numOutSamples * *pNumOutChannels - ( *pRemainingDelayNumSamples * *pNumOutChannels ) ) ) != IVAS_ERR_OK ) Loading