Commit 2d1d4dde authored by emerit's avatar emerit
Browse files

Merge branch 'main' into fix_hrtf_processing_scripts_for_3rd_party_sofa_support

parents f6a9bc07 46645488
Loading
Loading
Loading
Loading
+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
@@ -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:
@@ -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:
@@ -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
@@ -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"
@@ -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:
@@ -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
@@ -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)"
@@ -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
@@ -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
@@ -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:
@@ -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:
@@ -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:
@@ -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
@@ -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:
@@ -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:
@@ -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
@@ -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  
@@ -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
+15 −17
Original line number Diff line number Diff line
@@ -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" />
@@ -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" />
@@ -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>
@@ -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" />
+1 −0
Original line number Diff line number Diff line
@@ -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>
+2 −71
Original line number Diff line number Diff line
@@ -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>
@@ -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>
@@ -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>
@@ -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>
@@ -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>
@@ -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">
+16 −4
Original line number Diff line number Diff line
@@ -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;
}

@@ -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
@@ -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 )
    {
@@ -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