Commit ad42735e authored by vaclav's avatar vaclav
Browse files

Merge remote-tracking branch 'remotes/origin/main' into...

Merge remote-tracking branch 'remotes/origin/main' into 231-spar-inter-frame-vs-intra-frame-memory_exampleVE
parents 4eff311a 7c560c29
Loading
Loading
Loading
Loading
Loading
+12 −8
Original line number Diff line number Diff line
@@ -4,7 +4,6 @@
IVAS_cod
IVAS_dec
IVAS_rend
IVAS_crend_unit_test
obj/
*.a
*.o
@@ -17,7 +16,6 @@ build*/**/*
IVAS_cod.exe
IVAS_dec.exe
IVAS_rend.exe
IVAS_crend_unit_test.exe
*.user
.vs/
Debug_*/
@@ -25,12 +23,6 @@ Release_*/
*.obj
*.pdb

# Unittests
scripts/ivas_pytests/tests/unit_tests/crend/IVAS_crend_unit_test
scripts/ivas_pytests/tests/unit_tests/crend/IVAS_crend_unit_test.exe
scripts/ivas_pytests/tests/unit_tests/crend/Debug_*/
scripts/ivas_pytests/tests/unit_tests/crend/Release_*/

# Standalone TD object renderer
scripts/td_object_renderer/object_renderer_standalone/renderer_standalone
scripts/td_object_renderer/object_renderer_standalone/renderer_standalone.exe
@@ -72,3 +64,15 @@ Externals/

# coan output files that are created when cleaning out switches
coan_out_*
/COMPLEXITY
/res
/tv
/wmops
/Workspace_msvc/renderer.args.json
/Workspace_msvc/encoder.args.json
/Workspace_msvc/decoder.args.json
/scripts/mem_analysis_enc_VBR_5k9.csv
/scripts/mem_analysis_enc_STEREO_sw.png
/scripts/mem_analysis_enc_STEREO_sw.csv
/scripts/mem_analysis_enc_STEREO_16k4_DTX.csv
*.pwv
+176 −14
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@ variables:
  LTV_DIR: "/usr/local/ltv"
  BUILD_OUTPUT: "build_output.txt"
  EVS_BE_TEST_DIR: "/usr/local/be_2_evs_test"
  EVS_BE_WIN_TEST_DIR: "C:/Users/gitlab-runner/testvec"
  SANITIZER_TESTS: "CLANG1 CLANG2"
  OUT_FORMATS_CHANNEL_BASED: "stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4"
  OUT_FORMATS_SCENE_BASED: "FOA HOA2 HOA3"
@@ -12,8 +13,6 @@ variables:

default:
  interruptible: true # Make all jobs by default interruptible
  artifacts:
    expire_in: 2 weeks

# This sets when pipelines are created. Jobs have more specific rules to restrict them.
workflow:
@@ -21,7 +20,7 @@ workflow:
    # see https://docs.gitlab.com/ee/ci/yaml/workflow.html#switch-between-branch-pipelines-and-merge-request-pipelines
    - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS && $CI_PIPELINE_SOURCE == "push"
      when: never
    - if: $CI_PIPELINE_SOURCE == 'merge_request_event' # Runs for merge requests
    - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
    - if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Pushes to main
    - if: $CI_PIPELINE_SOURCE == 'schedule' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Scheduled in main
    - if: $CI_PIPELINE_SOURCE == 'web' # for testing
@@ -49,6 +48,13 @@ stages:
    echo "Commit time was $CI_COMMIT_TIMESTAMP"
    date | xargs echo "System time is"

.print-common-info-windows: &print-common-info-windows
  - |
    echo "Printing common information for build job."
    echo "Current job is run on commit $CI_COMMIT_SHA"
    echo "Commit time was $CI_COMMIT_TIMESTAMP"
    ("echo 'System time is'", "Get-Date -Format 'dddd dd/MM/yyyy HH:mm K'") | Invoke-Expression

.get-previous-merge-commit-sha: &get-previous-merge-commit-sha
  - previous_merge_commit=$(git --no-pager log --merges HEAD~1 -n 1 --pretty=format:%H)

@@ -130,7 +136,7 @@ stages:
.rules-merge-request:
  extends: .rules-basis
  rules:
    - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
    - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main" # only have MR pipelines for MRs to main
    - if: $CI_PIPELINE_SOURCE == 'push'
      when: never

@@ -156,6 +162,11 @@ stages:
  tags:
    - ivas-linux

.build-job-windows:
  stage: build
  timeout: "4 minutes"
  tags:
    - ivas-windows

# template for test jobs on linux that need the TESTV_DIR
.test-job-linux-needs-testv-dir:
@@ -172,6 +183,12 @@ stages:
    exit_codes:
      - 123

.build-job-windows-with-check-for-warnings:
  extends: .build-job-windows
  stage: build
  allow_failure:
    exit_codes:
      - 123


# ---------------------------------------------------------------
@@ -249,6 +266,7 @@ build-codec-instrumented-linux:
  extends:
    - .build-job-linux
    - .rules-basis
  timeout: "6 minutes"
  script:
    - *print-common-info
    - bash ci/build_codec_instrumented_linux.sh
@@ -262,6 +280,31 @@ build-codec-sanitizers-linux:
    - *print-common-info
    - bash ci/build_codec_sanitizers_linux.sh

build-codec-windows-cmake:
  extends:
    - .build-job-windows-with-check-for-warnings
    - .rules-basis
  script:
    - *print-common-info-windows
    - $winoutdata = $null
    - cmake -G "Visual Studio 15 2017" . -Bbuild
    - cmake --build build -j | tee -variable winoutdata
    - $winoutdata | Out-File $BUILD_OUTPUT -Encoding Utf8
    - ("& python ci/check_for_warnings.py '$BUILD_OUTPUT'") | Invoke-Expression
    - ("exit $LASTEXITCODE") | Invoke-Expression

build-codec-windows-msbuild:
  extends:
    - .build-job-windows-with-check-for-warnings
    - .rules-basis
  script:
    - *print-common-info-windows
    - $winoutdata = $null
    - MSBuild.exe .\Workspace_msvc\Workspace_msvc.sln /property:Configuration=Debug | tee -variable winoutdata
    - $winoutdata | Out-File $BUILD_OUTPUT -Encoding Utf8
    - ("& python ci/check_for_warnings.py '$BUILD_OUTPUT'") | Invoke-Expression
    - ("exit $LASTEXITCODE") | Invoke-Expression

# ---------------------------------------------------------------
# Test jobs for merge requests
# ---------------------------------------------------------------
@@ -271,7 +314,7 @@ codec-smoke-test:
  extends:
    - .test-job-linux-needs-testv-dir
    - .rules-merge-request
  timeout: "5 minutes"
  timeout: "10 minutes"
  stage: test
  needs: ["build-codec-linux-cmake"]
  script:
@@ -284,6 +327,7 @@ codec-smoke-test:
    - if cat smoke_test_output_hrtf.txt | grep -c "failed"; then echo "Smoke test with external hrtf files failed"; exit 1; fi
  artifacts:
    name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results"
    expire_in: 1 week
    paths:
      - smoke_test_output.txt
      - smoke_test_output_plc.txt
@@ -308,6 +352,7 @@ codec-msan:
    - if [ $run_errors != 0 ] ; then echo "Run errors in self_test.py with Clang memory-sanitizer"; exit 1; fi
  artifacts:
    name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results"
    expire_in: 1 week
    paths:
      - scripts/ref/logs/
      - test_output.txt
@@ -330,6 +375,7 @@ codec-asan:
    - if [ $run_errors != 0 ] ; then echo "Run errors in self_test.py with Clang address-sanitizer"; exit 1; fi
  artifacts:
    name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results"
    expire_in: 1 week
    paths:
      - scripts/ref/logs/
      - test_output.txt
@@ -347,6 +393,7 @@ renderer-smoke-test:
    - python3 -m pytest -q -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py
  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
@@ -370,6 +417,7 @@ renderer-asan:
    
  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
@@ -393,6 +441,7 @@ renderer-msan:
  
  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
@@ -446,6 +495,7 @@ renderer-pytest-on-merge-request:
      - 123
  artifacts:
    name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results"
    expire_in: 2 week
    when: always
    paths:
      - report-junit.xml
@@ -496,6 +546,7 @@ ivas-pytest-on-merge-request:
      - 123
  artifacts:
    name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results"
    expire_in: 2 week
    when: always
    paths:
      - report-junit.xml
@@ -542,6 +593,7 @@ evs-pytest-on-merge-request:
      - 123
  artifacts:
    name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results"
    expire_in: 2 week
    when: always
    paths:
      - report-junit-evs.xml
@@ -600,16 +652,67 @@ clang-format-check:

    - exit $format_problems
  artifacts:
    expire_in: 2 days
    paths:
      - tmp-formatting-fix/
    when: on_failure
    name: "$ARTIFACT_BASE_NAME"
    expose_as: 'formatting patch'

# check for crashes if first received frame on decoder side is an SID
.check-first-frame-is-sid:
  extends:
    - .test-job-linux-needs-testv-dir
    - .rules-merge-request
  tags:
    - ivas-linux
  stage: test
  needs: ["build-codec-linux-cmake"]
  script:
    - *print-common-info
    - *update-ltv-repo
    - cmake .
    - make -j

    # TODO: for some MASA modes, we currently do not have testvectors that actually trigger DTX
    - modes=$(scripts/runIvasCodec.py -l | grep dtx | grep -v MASA)
    - echo $modes
    - scripts/runIvasCodec.py -p scripts/config/ci_linux_sidstart_test.json -m $modes -s --bs_length 500
  artifacts:
    paths:
      - out/logs
    when: on_failure
    name: "$CI_JOB_NAME--$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--sidstart"
    expose_as: "logs-sidstart"

# ---------------------------------------------------------------
# Test jobs for main branch
# ---------------------------------------------------------------

# check bitexactness to EVS windows binaries
.be-2-evs-windows: # Temporarily disabled -- Ericsson Windows runner used for HL activities which the reduces capacity for this job. To be resumed after selection
  extends:
    - .rules-main-push
  tags:
    - ivas-windows
  stage: test
  needs: ["build-codec-windows-msbuild"]
  timeout: "20 minutes" # To be revisited
  script:
    - *print-common-info-windows

    - $winoutdata = $null
    - MSBuild.exe .\Workspace_msvc\Workspace_msvc.sln /property:Configuration=Release | tee -variable winoutdata
    - $winoutdata | Out-File $BUILD_OUTPUT -Encoding Utf8

    # copy over to never change the testvector dir
    - cp -r $EVS_BE_WIN_TEST_DIR ./evs_be_win_test
    - cp IVAS_cod.exe ./evs_be_win_test/bin/IVAS_cod.exe
    - cp IVAS_dec.exe ./evs_be_win_test/bin/IVAS_dec.exe

    - cd evs_be_win_test
    - python ../ci/run_evs_be_win_test.py

# check bitexactness to EVS
be-2-evs-linux:
  extends:
@@ -708,6 +811,7 @@ codec-comparison-on-main-push:
      - 123
  artifacts:
    name: "main-push--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results"
    expire_in: 2 week
    when: always
    paths:
      - report-junit.xml
@@ -729,6 +833,7 @@ codec-comparison-on-main-push:
    - sanitizer_test_main
  artifacts:
    name: "$CI_JOB_NAME--main--sha-$CI_COMMIT_SHORT_SHA"
    expire_in: 1 week
    when: always
    paths:
      - ep_015.g192
@@ -740,13 +845,13 @@ codec-comparison-on-main-push:
.sanitizer-test-schedule-A:
  extends:
    - .sanitizer-test-template
  timeout: 2 hours 30 minutes


sanitizer-test-mono:
  extends: .sanitizer-test-schedule-A
  rules:
    - if: $SANITIZER_SCHEDULE_A
  timeout: 2 hour
  script:
    - *update-ltv-repo
    - python3 ci/run_scheduled_sanitizer_test.py mono mono --tests $SANITIZER_TESTS
@@ -756,7 +861,8 @@ sanitizer-test-stereo:
  rules:
    - if: $SANITIZER_SCHEDULE_A
      when: delayed
      start_in: 2 hours 30 minutes
      start_in: 2 hour
  timeout: 2 hour
  script:
    - *update-ltv-repo
    - python3 ci/run_scheduled_sanitizer_test.py stereo $OUT_FORMATS_CHANNEL_BASED --tests $SANITIZER_TESTS
@@ -766,7 +872,8 @@ sanitizer-test-stereodmxevs:
  rules:
    - if: $SANITIZER_SCHEDULE_A
      when: delayed
      start_in: 5 hours
      start_in: 4 hours
  timeout: 2 hour
  script:
    - *update-ltv-repo
    - python3 ci/run_scheduled_sanitizer_test.py StereoDmxEVS mono --tests $SANITIZER_TESTS
@@ -776,7 +883,8 @@ sanitizer-test-ism1:
  rules:
    - if: $SANITIZER_SCHEDULE_A
      when: delayed
      start_in: 7 hours 30 minutes
      start_in: 6 hours
  timeout: 2 hours
  script:
    - *update-ltv-repo
    - python3 ci/run_scheduled_sanitizer_test.py ISM1 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS
@@ -786,7 +894,8 @@ sanitizer-test-ism2:
  rules:
    - if: $SANITIZER_SCHEDULE_A
      when: delayed
      start_in: 10 hours
      start_in: 8 hours
  timeout: 3 hours
  script:
    - *update-ltv-repo
    - python3 ci/run_scheduled_sanitizer_test.py ISM2 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS
@@ -796,7 +905,8 @@ sanitizer-test-ism3:
  rules:
    - if: $SANITIZER_SCHEDULE_A
      when: delayed
      start_in: 12 hours 30 minutes
      start_in: 11 hours
  timeout: 3 hour
  script:
    - *update-ltv-repo
    - python3 ci/run_scheduled_sanitizer_test.py ISM3 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS
@@ -806,7 +916,8 @@ sanitizer-test-ism4:
  rules:
    - if: $SANITIZER_SCHEDULE_A
      when: delayed
      start_in: 15 hours
      start_in: 14 hours
  timeout: 4 hours
  script:
    - *update-ltv-repo
    - python3 ci/run_scheduled_sanitizer_test.py ISM4 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS
@@ -816,7 +927,8 @@ sanitizer-test-masa:
  rules:
    - if: $SANITIZER_SCHEDULE_A
      when: delayed
      start_in: 17 hours 30 minutes
      start_in: 18 hours
  timeout: 3 hours
  script:
    - *update-ltv-repo
    - python3 ci/run_scheduled_sanitizer_test.py MASA $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS
@@ -901,6 +1013,55 @@ sanitizer-test-planarsba:
    - *update-ltv-repo
    - python3 ci/run_scheduled_sanitizer_test.py PlanarSBA $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS

### --- sanitizer schedule D ---

.sanitizer-test-schedule-D:
  extends:
    - .sanitizer-test-template

sanitizer-test-ism+1:
  extends: .sanitizer-test-schedule-D
  rules:
    - if: $SANITIZER_SCHEDULE_D
  timeout: 2 hours
  script:
    - *update-ltv-repo
    - python3 ci/run_scheduled_sanitizer_test.py ISM+1 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS

sanitizer-test-ism+2:
  extends: .sanitizer-test-schedule-D
  rules:
    - if: $SANITIZER_SCHEDULE_D
      when: delayed
      start_in: 2 hours
  timeout: 3 hours
  script:
    - *update-ltv-repo
    - python3 ci/run_scheduled_sanitizer_test.py ISM+2 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS

sanitizer-test-ism+3:
  extends: .sanitizer-test-schedule-D
  rules:
    - if: $SANITIZER_SCHEDULE_D
      when: delayed
      start_in: 5 hours
  timeout: 3 hour
  script:
    - *update-ltv-repo
    - python3 ci/run_scheduled_sanitizer_test.py ISM+3 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS

sanitizer-test-ism+4:
  extends: .sanitizer-test-schedule-D
  rules:
    - if: $SANITIZER_SCHEDULE_D
      when: delayed
      start_in: 8 hours
  timeout: 4 hours
  script:
    - *update-ltv-repo
    - python3 ci/run_scheduled_sanitizer_test.py ISM+4 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS


# GCOV/LCOV coverage analysis of self_test suite
coverage-test-on-main-scheduled:
  extends:
@@ -985,6 +1146,7 @@ coverage-test-on-main-scheduled:
  stage: test
  artifacts:
    name: "$CI_JOB_NAME--$CI_COMMIT_REF_NAME--sha-$CI_COMMIT_SHA"
    expire_in: 1 week
    paths:
      - $CI_JOB_NAME-public

@@ -1015,7 +1177,7 @@ complexity-ism-in-binaural-out:
    - *complexity-measurements-setup
    - in_format=ISM
    - out_format=BINAURAL
    - bash ci/complexity_measurements/getWmops.sh "ISM1 ISM2 ISM3 ISM4" "$out_format"
    - bash ci/complexity_measurements/getWmops.sh "ISM+1 ISM+2 ISM+3 ISM+4" "$out_format"
    - *complexity-measurements-prepare-artifacts

complexity-sba-hoa3-in-hoa3-out:
+1 −1
Original line number Diff line number Diff line
@@ -244,9 +244,9 @@
    <ClCompile Include="..\lib_com\ivas_entropy_coder_common.c" />
    <ClCompile Include="..\lib_com\ivas_fb_mixer.c" />
    <ClCompile Include="..\lib_com\ivas_filters.c" />
    <ClCompile Include="..\lib_com\ivas_ism_com.c" />
    <ClCompile Include="..\lib_com\ivas_mcmasa_com.c" />
    <ClCompile Include="..\lib_com\ivas_dirac_com.c" />
    <ClCompile Include="..\lib_com\ivas_ism_config.c" />
    <ClCompile Include="..\lib_com\ivas_masa_com.c" />
    <ClCompile Include="..\lib_com\ivas_mct_com.c" />
    <ClCompile Include="..\lib_com\ivas_mc_com.c" />
+3 −3
Original line number Diff line number Diff line
@@ -379,9 +379,6 @@
    <ClCompile Include="..\lib_com\swb_bwe_com_lr.c">
      <Filter>common_evs_c</Filter>
    </ClCompile>
    <ClCompile Include="..\lib_com\ivas_ism_config.c">
      <Filter>common_ivas_c</Filter>
    </ClCompile>
    <ClCompile Include="..\lib_com\ivas_qmetadata_com.c">
      <Filter>common_ivas_c</Filter>
    </ClCompile>
@@ -466,6 +463,9 @@
    <ClCompile Include="..\lib_com\ivas_td_decorr.c">
      <Filter>common_ivas_c</Filter>
    </ClCompile>
    <ClCompile Include="..\lib_com\ivas_ism_com.c">
      <Filter>common_ivas_c</Filter>
    </ClCompile>
  </ItemGroup>
  <ItemGroup>
    <ClInclude Include="..\lib_com\basop_proto_func.h">
+2 −0
Original line number Diff line number Diff line
@@ -282,6 +282,7 @@
    <ClCompile Include="..\lib_dec\ivas_ism_metadata_dec.c" />
    <ClCompile Include="..\lib_dec\ivas_ism_param_dec.c" />
    <ClCompile Include="..\lib_dec\ivas_ism_renderer.c" />
    <ClCompile Include="..\lib_dec\ivas_jbm_dec.c" />
    <ClCompile Include="..\lib_dec\ivas_lfe_dec.c" />
    <ClCompile Include="..\lib_dec\ivas_lfe_plc.c" />
    <ClCompile Include="..\lib_dec\ivas_ls_custom_dec.c" />
@@ -290,6 +291,7 @@
    <ClCompile Include="..\lib_dec\ivas_mct_core_dec.c" />
    <ClCompile Include="..\lib_dec\ivas_mct_dec.c" />
    <ClCompile Include="..\lib_dec\ivas_mct_dec_mct.c" />
    <ClCompile Include="..\lib_dec\ivas_mc_paramupmix_dec.c" />
    <ClCompile Include="..\lib_dec\ivas_mc_param_dec.c" />
    <ClCompile Include="..\lib_dec\ivas_mdct_core_dec.c" />
    <ClCompile Include="..\lib_dec\ivas_mono_dmx_renderer.c" />
Loading