Commit 116dd54e authored by Archit Tamarapu's avatar Archit Tamarapu
Browse files

[tests] simplify pytest functions and cleanup, add tests vs internal (decoder) renderer

parent 9ebeea99
Loading
Loading
Loading
Loading
+54 −54
Original line number Diff line number Diff line
@@ -9,7 +9,6 @@ variables:
  EXIT_CODE_NON_BE: 123
  EXIT_CODE_FAIL: 1


# This sets when pipelines are created. Jobs have more specific rules to restrict them.
workflow:
  rules:
@@ -44,8 +43,8 @@ stages:
.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)

.merge_request_comparison_setup: &merge_request_comparison_setup
  ### build test binaries, initial clean for paranoia reasons
.merge_request_comparison_setup:
  &merge_request_comparison_setup ### build test binaries, initial clean for paranoia reasons
  - make clean
  - mkdir build
  - cd build
@@ -125,7 +124,6 @@ stages:
  rules:
    - if: $CI_PIPELINE_SOURCE == 'schedule' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH


# templates to define stages and platforms
.test-job-linux:
  tags:
@@ -137,7 +135,6 @@ stages:
  tags:
    - ivas-linux


# template for test jobs on linux that need the TESTV_DIR
.test-job-linux-needs-testv-dir:
  extends: .test-job-linux
@@ -153,7 +150,6 @@ stages:
    exit_codes:
      - 123


# ---------------------------------------------------------------
# Validation jobs
# ---------------------------------------------------------------
@@ -172,7 +168,6 @@ check-if-branch-is-up-to-date-with-main:
    - echo $commits_behind_count
    - if [ $commits_behind_count -eq 0 ]; then exit 0; else exit 1; fi;


# ---------------------------------------------------------------
# Build jobs
# ---------------------------------------------------------------
@@ -238,7 +233,6 @@ build-codec-sanitizers-linux:
    - *print-common-info
    - bash ci/build_codec_sanitizers_linux.sh


# ---------------------------------------------------------------
# Test jobs for merge requests
# ---------------------------------------------------------------
@@ -263,8 +257,7 @@ codec-smoke-test:
      - out/logs/
      - smoke_test_output.txt
      - smoke_test_output_plc.txt
    expose_as: 'Smoke test results'

    expose_as: "Smoke test results"

# code selftest testvectors with memory-sanitizer binaries
msan-on-merge-request-linux:
@@ -285,8 +278,7 @@ msan-on-merge-request-linux:
    paths:
      - scripts/ref/logs/
      - test_output.txt
    expose_as: 'Msan selftest results'

    expose_as: "Msan selftest results"

# code selftest testvectors with address-sanitizer binaries
asan-on-merge-request-linux:
@@ -307,7 +299,7 @@ asan-on-merge-request-linux:
    paths:
      - scripts/ref/logs/
      - test_output.txt
    expose_as: 'Asan selftest results'
    expose_as: "Asan selftest results"

# test external renderer executable
external-renderer-make-pytest:
@@ -320,7 +312,7 @@ external-renderer-make-pytest:
    - make -j IVAS_rend
    - make -j unittests
    - make -j --directory scripts/td_object_renderer/object_renderer_standalone
    - python3 -m pytest tests/renderer/test_renderer.py -q --log-level ERROR -n auto -rA
    - python3 -m pytest -q --log-level ERROR -n auto -rA tests/renderer/test_renderer.py

# test external renderer executable with cmake + asan
external-renderer-cmake-asan-pytest:
@@ -333,7 +325,7 @@ external-renderer-cmake-asan-pytest:
    - python3 ci/disable_ram_counting.py
    - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=asan -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true
    - cmake --build cmake-build -- -j
    - python3 -m pytest tests/renderer/test_renderer.py -q --log-level ERROR -n auto -rA
    - python3 -m pytest -q --log-level ERROR -n auto -rA tests/renderer/test_renderer.py

# test external renderer executable with cmake + msan
external-renderer-cmake-msan-pytest:
@@ -346,7 +338,19 @@ external-renderer-cmake-msan-pytest:
    - python3 ci/disable_ram_counting.py
    - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=msan  -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true
    - cmake --build cmake-build -- -j
    - python3 -m pytest tests/renderer/test_renderer.py -q --log-level ERROR -n auto -rA
    - python3 -m pytest -q --log-level ERROR -n auto -rA tests/renderer/test_renderer.py

# test external renderer executable with cmake vs decoder renderer
external-renderer-make-vs-decoder-pytest:
  extends:
    - .test-job-linux
    - .rules-merge-request
  needs: ["build-codec-linux-cmake"]
  stage: test
  script:
    - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=msan  -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true -DDEC_TO_REND_FLOAT_DUMP
    - cmake --build cmake-build -- -j
    - python3 -m pytest -q --log-level ERROR -n 1 -rA tests/renderer/test_renderer_vs_decoder.py

# compare bit exactness between target and source branch
ivas-pytest-on-merge-request:
@@ -385,7 +389,7 @@ ivas-pytest-on-merge-request:
    when: always
    paths:
      - report-junit.xml
    expose_as: 'pytest ivas results'
    expose_as: "pytest ivas results"
    reports:
      junit:
        - report-junit.xml
@@ -423,12 +427,11 @@ evs-pytest-on-merge-request:
    when: always
    paths:
      - report-junit-evs.xml
    expose_as: 'pytest evs results'
    expose_as: "pytest evs results"
    reports:
      junit:
        - report-junit-evs.xml


# ---------------------------------------------------------------
# Test jobs for main branch
# ---------------------------------------------------------------
@@ -460,7 +463,6 @@ be-2-evs-linux:
    - cd evs_be_test
    - python3 ../ci/run_evs_be_test.py


codec-comparison-on-main-push:
  extends:
    - .test-job-linux
@@ -531,11 +533,10 @@ codec-comparison-on-main-push:
    when: always
    paths:
      - report-junit.xml
    expose_as: 'Results of comparison to previous merge commit'
    expose_as: "Results of comparison to previous merge commit"
    reports:
      junit: report-junit.xml


# ---------------------------------------------------------------
# Scheduled jobs on main
# ---------------------------------------------------------------
@@ -736,4 +737,3 @@ pull-from-3gpp-forge:

    # Push to mirror, include tags. Option `-o ci.skip` tells GitLab to skip CI for the pushed commits (assumed already tested upstream)
    - git push --tags -o ci.skip "https://${GITLAB_USER_LOGIN}:${MIRROR_ACCESS_TOKEN}@${CI_REPOSITORY_URL#*@}" "HEAD:${CI_COMMIT_BRANCH}"
+306 −20
Original line number Diff line number Diff line
@@ -35,9 +35,33 @@ TEST_VECTOR_DIR = TESTS_DIR.joinpath("data")

OUTPUT_PATH_REF = TESTS_DIR.joinpath("ref")
OUTPUT_PATH_CUT = TESTS_DIR.joinpath("cut")
OUTPUT_PATH_REF = TESTS_DIR.joinpath("/home/amm-er/tmu/external_renderer/ref")
OUTPUT_PATH_CUT = TESTS_DIR.joinpath("/home/amm-er/tmu/external_renderer/cut")

CUSTOM_LAYOUT_DIR = SCRIPTS_DIR.joinpath("ls_layouts")
HR_TRAJECTORY_DIR = SCRIPTS_DIR.joinpath("trajectories")
TESTV_DIR = SCRIPTS_DIR.joinpath("testv")

""" Encoder commandline template """
IVAS_COD_CMD = [
    str(TESTS_DIR.parent.parent.joinpath("IVAS_cod")),
    "",  # 1 -> mode
    "",  # 2 -> options for mode
    "",  # 3 -> bitrate
    "48",  # 4 -> input fs
    "",  # 5 -> input file
    "",  # 6 -> bitstream file
]

""" Decoder commandline template """
IVAS_DEC_CMD = [
    str(TESTS_DIR.parent.parent.joinpath("IVAS_dec")),
    "-no_delay_cmp",
    "",  # 2 -> output format,
    "48",  # 3 -> output fs
    "",  # 4 -> bitstream file
    "",  # 5 -> output file
]

""" Renderer commandline template """
RENDERER_CMD = [
@@ -52,7 +76,7 @@ RENDERER_CMD = [
    "",  # 8 -> output format
    "-fs",
    "48",  # 10 -> input fs
    # "--no_delay_cmp",
    "--no_delay_cmp",
    # "-ndl",
    "-q",
]
@@ -71,7 +95,9 @@ TDRENDERER_CMD = [

""" CREND commandline template """
RENDERER_CREND_CMD = [
    str(SCRIPTS_DIR.joinpath("ivas_pytests/tests/unit_tests/crend/IVAS_crend_unit_test")),
    str(
        SCRIPTS_DIR.joinpath("ivas_pytests/tests/unit_tests/crend/IVAS_crend_unit_test")
    ),
    "-test",
    "1",
    "-sr",
@@ -162,6 +188,40 @@ FORMAT_TO_METADATA_FILES = {
    "MASA2": [str(TEST_VECTOR_DIR.joinpath("stv_IVASMASAQ_2dir2TC.met"))],
}

FORMAT_TO_IVAS = {
    "MONO": ["", ""],
    "STEREO": ["-stereo", ""],
    "FOA": ["-sba", "1"],
    "HOA2": ["-sba", "2"],
    "HOA3": ["-sba", "3"],
    "5_1": ["-mc", "5_1"],
    "7_1": ["-mc", "7_1"],
    "5_1_2": ["-mc", "5_1_2"],
    "5_1_4": ["-mc", "5_1_4"],
    "7_1_4": ["-mc", "7_1_4"],
    "ISM1": ["-ism", "1"],
    "ISM2": ["-ism", "2"],
    "ISM3": ["-ism", "3"],
    "ISM4": ["-ism", "4"],
}

FORMAT_TO_IVAS_BR = {
    "MONO": "128000",
    "STEREO": "256000",
    "FOA": "512000",
    "HOA2": "512000",
    "HOA3": "512000",
    "5_1": "512000",
    "7_1": "512000",
    "5_1_2": "512000",
    "5_1_4": "512000",
    "7_1_4": "512000",
    "ISM1": "256000",
    "ISM2": "256000",
    "ISM3": "256000",
    "ISM4": "256000",
}

FORMAT_TO_CREND_FORMAT = {
    "MONO": "0",
    "STEREO": "1",
@@ -199,14 +259,9 @@ OUTPUT_FORMATS = [

""" Custom loudspeaker input/output """
CUSTOM_LS_TO_TEST = [
    # "cicp1",
    # "cicp2",
    "t_design_4",
    # "4d0",
    "4d4",
    "itu_4+5+1",
    "custom1",
    # "cicp20",
    "16ch_8+4+4",
]

@@ -215,21 +270,252 @@ METADATA_SCENES_TO_TEST = ["mixed_scene", "mixed_scene_simple"]
METADATA_SCENES_TO_TEST_NO_BE = ["masa_scene"]

""" Binaural rendering """
INPUT_FORMATS_BINAURAL = OUTPUT_FORMATS[2:]
INPUT_FORMATS_BINAURAL.extend(
    [
        "ISM1",
        "ISM2",
        "ISM3",
        "ISM4",
        # "MASA1",
        # "MASA2",
    ]
)
OUTPUT_FORMATS_BINAURAL = ["BINAURAL", "BINAURAL_ROOM"]
HR_TRAJECTORIES_TO_TEST = [
    # "const000",
    "full_circle_in_15s",
    # "full_circle_in_15s-Euler",
    "rotate_yaw_pitch_roll1",
]

""" Per-testcase xfail SNR thresholds (dB) """
pass_snr = {
    ####################################################################
    #
    # External Renderer vs Standalone and pyaudio3dtools renderers tests
    #
    ####################################################################
    # Crend used internally, comparison to pyaudio3dtools has bad SNR
    # Crend unit test does not support Quaternion files
    "test_ambisonics_binaural_headrotation[FOA-BINAURAL_ROOM-full_circle_in_15s]": 0,
    "test_ambisonics_binaural_headrotation[FOA-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0,
    "test_ambisonics_binaural_headrotation[HOA2-BINAURAL-full_circle_in_15s]": 18,
    "test_ambisonics_binaural_headrotation[HOA2-BINAURAL_ROOM-full_circle_in_15s]": 0,
    "test_ambisonics_binaural_headrotation[HOA2-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0,
    "test_ambisonics_binaural_headrotation[HOA2-BINAURAL-rotate_yaw_pitch_roll1]": 4,
    "test_ambisonics_binaural_headrotation[HOA3-BINAURAL-full_circle_in_15s]": 15,
    "test_ambisonics_binaural_headrotation[HOA3-BINAURAL_ROOM-full_circle_in_15s]": 0,
    "test_ambisonics_binaural_headrotation[HOA3-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0,
    "test_ambisonics_binaural_headrotation[HOA3-BINAURAL-rotate_yaw_pitch_roll1]": 3,
    # TODO needs debugging
    "test_ambisonics_binaural_static[FOA-BINAURAL_ROOM]": 0,
    "test_ambisonics_binaural_static[HOA2-BINAURAL_ROOM]": 0,
    "test_ambisonics_binaural_static[HOA3-BINAURAL_ROOM]": 0,
    # TD Object Renderer used internally, comparison to pyaudio3dtools has bad SNR
    # TD Object Renderer standalone does not support custom LS
    "test_custom_ls_input_binaural[16ch_8+4+4-BINAURAL]": 0,
    "test_custom_ls_input_binaural[16ch_8+4+4-BINAURAL_ROOM]": 0,
    "test_custom_ls_input_binaural[4d4-BINAURAL]": 0,
    "test_custom_ls_input_binaural[4d4-BINAURAL_ROOM]": 0,
    "test_custom_ls_input_binaural_headrotation[16ch_8+4+4-BINAURAL-full_circle_in_15s]": 0,
    "test_custom_ls_input_binaural_headrotation[16ch_8+4+4-BINAURAL_ROOM-full_circle_in_15s]": 0,
    "test_custom_ls_input_binaural_headrotation[16ch_8+4+4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0,
    "test_custom_ls_input_binaural_headrotation[16ch_8+4+4-BINAURAL-rotate_yaw_pitch_roll1]": 0,
    "test_custom_ls_input_binaural_headrotation[4d4-BINAURAL-full_circle_in_15s]": 0,
    "test_custom_ls_input_binaural_headrotation[4d4-BINAURAL_ROOM-full_circle_in_15s]": 0,
    "test_custom_ls_input_binaural_headrotation[4d4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0,
    "test_custom_ls_input_binaural_headrotation[4d4-BINAURAL-rotate_yaw_pitch_roll1]": 0,
    "test_custom_ls_input_binaural_headrotation[itu_4+5+1-BINAURAL-full_circle_in_15s]": 0,
    "test_custom_ls_input_binaural_headrotation[itu_4+5+1-BINAURAL_ROOM-full_circle_in_15s]": 3,
    "test_custom_ls_input_binaural_headrotation[itu_4+5+1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 3,
    "test_custom_ls_input_binaural_headrotation[itu_4+5+1-BINAURAL-rotate_yaw_pitch_roll1]": 0,
    "test_custom_ls_input_binaural_headrotation[t_design_4-BINAURAL-full_circle_in_15s]": 0,
    "test_custom_ls_input_binaural_headrotation[t_design_4-BINAURAL_ROOM-full_circle_in_15s]": 0,
    "test_custom_ls_input_binaural_headrotation[t_design_4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0,
    "test_custom_ls_input_binaural_headrotation[t_design_4-BINAURAL-rotate_yaw_pitch_roll1]": 0,
    "test_custom_ls_input_binaural[itu_4+5+1-BINAURAL]": 0,
    "test_custom_ls_input_binaural[itu_4+5+1-BINAURAL_ROOM]": 3,
    "test_custom_ls_input_binaural[t_design_4-BINAURAL]": 0,
    "test_custom_ls_input_binaural[t_design_4-BINAURAL_ROOM]": 0,
    # Crend used internally, comparison to pyaudio3dtools has bad SNR
    # Crend unit test does not support ISM rendering or Quaternion files
    "test_ism_binaural_headrotation[ISM1-BINAURAL_ROOM-full_circle_in_15s]": 9,
    "test_ism_binaural_headrotation[ISM1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 4,
    "test_ism_binaural_headrotation[ISM2-BINAURAL_ROOM-full_circle_in_15s]": 10,
    "test_ism_binaural_headrotation[ISM2-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 3,
    "test_ism_binaural_headrotation[ISM2-BINAURAL-rotate_yaw_pitch_roll1]": 24,
    "test_ism_binaural_headrotation[ISM3-BINAURAL_ROOM-full_circle_in_15s]": 10,
    "test_ism_binaural_headrotation[ISM3-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 4,
    "test_ism_binaural_headrotation[ISM3-BINAURAL-rotate_yaw_pitch_roll1]": 24,
    "test_ism_binaural_headrotation[ISM4-BINAURAL_ROOM-full_circle_in_15s]": 10,
    "test_ism_binaural_headrotation[ISM4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 4,
    "test_ism_binaural_headrotation[ISM4-BINAURAL-rotate_yaw_pitch_roll1]": 24,
    "test_ism_binaural_static[ISM1-BINAURAL_ROOM]": 23,
    "test_ism_binaural_static[ISM2-BINAURAL_ROOM]": 21,
    "test_ism_binaural_static[ISM3-BINAURAL_ROOM]": 21,
    "test_ism_binaural_static[ISM4-BINAURAL_ROOM]": 21,
    # TODO needs debugging, minor differences could be due to crossfades or metadata position casts
    "test_ism[ISM1-5_1_2]": 48,
    "test_ism[ISM1-5_1_4]": 48,
    "test_ism[ISM1-5_1]": 48,
    "test_ism[ISM1-7_1_4]": 46,
    "test_ism[ISM1-7_1]": 45,
    "test_ism[ISM1-FOA]": 44,
    "test_ism[ISM1-HOA2]": 40,
    "test_ism[ISM1-HOA3]": 37,
    "test_ism[ISM1-STEREO]": 54,
    "test_ism[ISM2-5_1_2]": 46,
    "test_ism[ISM2-5_1_4]": 45,
    "test_ism[ISM2-5_1]": 47,
    "test_ism[ISM2-7_1_4]": 43,
    "test_ism[ISM2-7_1]": 45,
    "test_ism[ISM2-FOA]": 41,
    "test_ism[ISM2-HOA2]": 37,
    "test_ism[ISM2-HOA3]": 34,
    "test_ism[ISM2-STEREO]": 55,
    "test_ism[ISM3-5_1_2]": 44,
    "test_ism[ISM3-5_1_4]": 43,
    "test_ism[ISM3-5_1]": 45,
    "test_ism[ISM3-7_1_4]": 42,
    "test_ism[ISM3-7_1]": 44,
    "test_ism[ISM3-FOA]": 39,
    "test_ism[ISM3-HOA2]": 36,
    "test_ism[ISM3-HOA3]": 33,
    "test_ism[ISM3-STEREO]": 54,
    "test_ism[ISM4-5_1_2]": 44,
    "test_ism[ISM4-5_1_4]": 44,
    "test_ism[ISM4-5_1]": 46,
    "test_ism[ISM4-7_1_4]": 43,
    "test_ism[ISM4-7_1]": 44,
    "test_ism[ISM4-FOA]": 40,
    "test_ism[ISM4-HOA2]": 36,
    "test_ism[ISM4-HOA3]": 33,
    "test_ism[ISM4-STEREO]": 57,
    # Crend used internally, comparison to pyaudio3dtools has bad SNR
    # Crend unit test does not support Quaternion files
    "test_multichannel_binaural_headrotation[5_1_2-BINAURAL-full_circle_in_15s]": 8,
    "test_multichannel_binaural_headrotation[5_1_2-BINAURAL_ROOM-full_circle_in_15s]": 2,
    "test_multichannel_binaural_headrotation[5_1_2-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 2,
    "test_multichannel_binaural_headrotation[5_1_2-BINAURAL-rotate_yaw_pitch_roll1]": 1,
    "test_multichannel_binaural_headrotation[5_1_4-BINAURAL-full_circle_in_15s]": 8,
    "test_multichannel_binaural_headrotation[5_1_4-BINAURAL_ROOM-full_circle_in_15s]": 2,
    "test_multichannel_binaural_headrotation[5_1_4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 2,
    "test_multichannel_binaural_headrotation[5_1_4-BINAURAL-rotate_yaw_pitch_roll1]": 1,
    "test_multichannel_binaural_headrotation[5_1-BINAURAL-full_circle_in_15s]": 7,
    "test_multichannel_binaural_headrotation[5_1-BINAURAL_ROOM-full_circle_in_15s]": 3,
    "test_multichannel_binaural_headrotation[5_1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 3,
    "test_multichannel_binaural_headrotation[5_1-BINAURAL-rotate_yaw_pitch_roll1]": 6,
    "test_multichannel_binaural_headrotation[7_1_4-BINAURAL-full_circle_in_15s]": 7,
    "test_multichannel_binaural_headrotation[7_1_4-BINAURAL_ROOM-full_circle_in_15s]": 2,
    "test_multichannel_binaural_headrotation[7_1_4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 2,
    "test_multichannel_binaural_headrotation[7_1_4-BINAURAL-rotate_yaw_pitch_roll1]": 1,
    "test_multichannel_binaural_headrotation[7_1-BINAURAL-full_circle_in_15s]": 8,
    "test_multichannel_binaural_headrotation[7_1-BINAURAL_ROOM-full_circle_in_15s]": 2,
    "test_multichannel_binaural_headrotation[7_1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 2,
    "test_multichannel_binaural_headrotation[7_1-BINAURAL-rotate_yaw_pitch_roll1]": 8,
    #####################################
    #
    # External vs Internal Renderer tests
    #
    #####################################
    # TODO conversion to 7_1_4 might be different (as indicated by next section of tests), needs debugging
    "test_ism_binaural_headrotation_vs_decoder[ISM1-BINAURAL_ROOM-full_circle_in_15s]": 15,
    "test_ism_binaural_headrotation_vs_decoder[ISM1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 15,
    "test_ism_binaural_headrotation_vs_decoder[ISM2-BINAURAL_ROOM-full_circle_in_15s]": 12,
    "test_ism_binaural_headrotation_vs_decoder[ISM2-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 13,
    "test_ism_binaural_headrotation_vs_decoder[ISM2-BINAURAL-rotate_yaw_pitch_roll1]": 84,
    "test_ism_binaural_headrotation_vs_decoder[ISM3-BINAURAL_ROOM-full_circle_in_15s]": 12,
    "test_ism_binaural_headrotation_vs_decoder[ISM3-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 13,
    "test_ism_binaural_headrotation_vs_decoder[ISM3-BINAURAL-rotate_yaw_pitch_roll1]": 78,
    "test_ism_binaural_headrotation_vs_decoder[ISM4-BINAURAL_ROOM-full_circle_in_15s]": 12,
    "test_ism_binaural_headrotation_vs_decoder[ISM4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 13,
    "test_ism_binaural_headrotation_vs_decoder[ISM4-BINAURAL-rotate_yaw_pitch_roll1]": 85,
    "test_ism_binaural_static_vs_decoder[ISM1-BINAURAL_ROOM]": 15,
    "test_ism_binaural_static_vs_decoder[ISM2-BINAURAL_ROOM]": 12,
    "test_ism_binaural_static_vs_decoder[ISM3-BINAURAL_ROOM]": 12,
    "test_ism_binaural_static_vs_decoder[ISM4-BINAURAL_ROOM]": 12,
    # TODO loudspeaker and ambisonics rendering could be due to crossfades or metadata position rounding
    "test_ism_vs_decoder[ISM1-5_1_2]": 26,
    "test_ism_vs_decoder[ISM1-5_1]": 26,
    "test_ism_vs_decoder[ISM1-5_1_4]": 26,
    "test_ism_vs_decoder[ISM1-7_1]": 26,
    "test_ism_vs_decoder[ISM1-7_1_4]": 26,
    "test_ism_vs_decoder[ISM1-FOA]": 27,
    "test_ism_vs_decoder[ISM1-HOA2]": 26,
    "test_ism_vs_decoder[ISM1-HOA3]": 26,
    "test_ism_vs_decoder[ISM1-STEREO]": 8,
    "test_ism_vs_decoder[ISM2-5_1_2]": 32,
    "test_ism_vs_decoder[ISM2-5_1_4]": 31,
    "test_ism_vs_decoder[ISM2-5_1]": 6,
    "test_ism_vs_decoder[ISM2-7_1_4]": 31,
    "test_ism_vs_decoder[ISM2-7_1]": 5,
    "test_ism_vs_decoder[ISM2-FOA]": 32,
    "test_ism_vs_decoder[ISM2-HOA2]": 31,
    "test_ism_vs_decoder[ISM2-HOA3]": 30,
    "test_ism_vs_decoder[ISM2-STEREO]": 17,
    "test_ism_vs_decoder[ISM3-5_1_2]": 32,
    "test_ism_vs_decoder[ISM3-5_1_4]": 32,
    "test_ism_vs_decoder[ISM3-5_1]": 8,
    "test_ism_vs_decoder[ISM3-7_1_4]": 31,
    "test_ism_vs_decoder[ISM3-7_1]": 7,
    "test_ism_vs_decoder[ISM3-FOA]": 32,
    "test_ism_vs_decoder[ISM3-HOA2]": 32,
    "test_ism_vs_decoder[ISM3-HOA3]": 30,
    "test_ism_vs_decoder[ISM3-MONO]": 77,
    "test_ism_vs_decoder[ISM3-STEREO]": 14,
    "test_ism_vs_decoder[ISM4-5_1_2]": 31,
    "test_ism_vs_decoder[ISM4-5_1_4]": 31,
    "test_ism_vs_decoder[ISM4-5_1]": 8,
    "test_ism_vs_decoder[ISM4-7_1_4]": 30,
    "test_ism_vs_decoder[ISM4-7_1]": 7,
    "test_ism_vs_decoder[ISM4-FOA]": 31,
    "test_ism_vs_decoder[ISM4-HOA2]": 31,
    "test_ism_vs_decoder[ISM4-HOA3]": 30,
    "test_ism_vs_decoder[ISM4-MONO]": 77,
    "test_ism_vs_decoder[ISM4-STEREO]": 14,
    # TODO needs debugging
    "test_multichannel_binaural_headrotation_vs_decoder[5_1_2-BINAURAL-full_circle_in_15s]": 4,
    "test_multichannel_binaural_headrotation_vs_decoder[5_1_2-BINAURAL_ROOM-full_circle_in_15s]": 6,
    "test_multichannel_binaural_headrotation_vs_decoder[5_1_2-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0,
    "test_multichannel_binaural_headrotation_vs_decoder[5_1_2-BINAURAL-rotate_yaw_pitch_roll1]": 0,
    "test_multichannel_binaural_headrotation_vs_decoder[5_1_4-BINAURAL-full_circle_in_15s]": 4,
    "test_multichannel_binaural_headrotation_vs_decoder[5_1_4-BINAURAL_ROOM-full_circle_in_15s]": 7,
    "test_multichannel_binaural_headrotation_vs_decoder[5_1_4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0,
    "test_multichannel_binaural_headrotation_vs_decoder[5_1_4-BINAURAL-rotate_yaw_pitch_roll1]": 0,
    "test_multichannel_binaural_headrotation_vs_decoder[5_1-BINAURAL_ROOM-full_circle_in_15s]": 5,
    "test_multichannel_binaural_headrotation_vs_decoder[5_1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0,
    "test_multichannel_binaural_headrotation_vs_decoder[7_1_4-BINAURAL-full_circle_in_15s]": 4,
    "test_multichannel_binaural_headrotation_vs_decoder[7_1_4-BINAURAL_ROOM-full_circle_in_15s]": 5,
    "test_multichannel_binaural_headrotation_vs_decoder[7_1_4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0,
    "test_multichannel_binaural_headrotation_vs_decoder[7_1_4-BINAURAL-rotate_yaw_pitch_roll1]": 0,
    "test_multichannel_binaural_headrotation_vs_decoder[7_1-BINAURAL_ROOM-full_circle_in_15s]": 5,
    "test_multichannel_binaural_headrotation_vs_decoder[7_1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0,
    # TODO needs debugging
    "test_multichannel_binaural_static_vs_decoder[5_1_2-BINAURAL_ROOM]": 18,
    "test_multichannel_binaural_static_vs_decoder[5_1_4-BINAURAL_ROOM]": 18,
    "test_multichannel_binaural_static_vs_decoder[5_1-BINAURAL_ROOM]": 18,
    "test_multichannel_binaural_static_vs_decoder[7_1_4-BINAURAL_ROOM]": 18,
    "test_multichannel_binaural_static_vs_decoder[7_1-BINAURAL_ROOM]": 19,
    # TODO Mono downmix significantly different, needs a fix
    "test_multichannel_vs_decoder[5_1_2-MONO]": 1,
    "test_multichannel_vs_decoder[5_1_4-MONO]": 1,
    "test_multichannel_vs_decoder[5_1-MONO]": 1,
    "test_multichannel_vs_decoder[7_1_4-MONO]": 1,
    "test_multichannel_vs_decoder[7_1-MONO]": 1,
    "test_multichannel_vs_decoder[STEREO-MONO]": 17,
    # TODO Stereo downmix differs slightly, needs debugging
    "test_multichannel_vs_decoder[5_1_2-STEREO]": 44,
    "test_multichannel_vs_decoder[5_1_4-STEREO]": 48,
    "test_multichannel_vs_decoder[5_1-STEREO]": 48,
    "test_multichannel_vs_decoder[7_1_4-STEREO]": 46,
    "test_multichannel_vs_decoder[7_1-STEREO]": 44,
    # TODO minor differences, needs debugging
    "test_multichannel_vs_decoder[5_1_2-5_1_4]": 63,
    "test_multichannel_vs_decoder[5_1_2-5_1]": 63,
    "test_multichannel_vs_decoder[5_1_2-7_1_4]": 63,
    "test_multichannel_vs_decoder[5_1_2-7_1]": 63,
    "test_multichannel_vs_decoder[5_1_4-5_1_2]": 63,
    "test_multichannel_vs_decoder[5_1_4-5_1]": 62,
    "test_multichannel_vs_decoder[5_1_4-7_1_4]": 61,
    "test_multichannel_vs_decoder[5_1_4-7_1]": 62,
    "test_multichannel_vs_decoder[5_1-5_1_2]": 62,
    "test_multichannel_vs_decoder[5_1-5_1_4]": 62,
    "test_multichannel_vs_decoder[5_1-7_1_4]": 62,
    "test_multichannel_vs_decoder[5_1-7_1]": 62,
    "test_multichannel_vs_decoder[7_1_4-5_1_2]": 63,
    "test_multichannel_vs_decoder[7_1_4-5_1_4]": 63,
    "test_multichannel_vs_decoder[7_1_4-5_1]": 63,
    "test_multichannel_vs_decoder[7_1_4-7_1]": 62,
    "test_multichannel_vs_decoder[7_1-5_1_2]": 63,
    "test_multichannel_vs_decoder[7_1-5_1_4]": 63,
    "test_multichannel_vs_decoder[7_1-5_1]": 63,
    "test_multichannel_vs_decoder[7_1-7_1_4]": 63,
}
+119 −600

File changed.

Preview size limit exceeded, changes collapsed.

+128 −0

File added.

Preview size limit exceeded, changes collapsed.

+439 −0

File added.

Preview size limit exceeded, changes collapsed.