Commit 1d3c50d9 authored by emerit's avatar emerit
Browse files

Merge branch 'main' into fix_hrtf_processing_scripts_for_3rd_party_sofa_support

parents 3e784c68 91e47672
Loading
Loading
Loading
Loading
+40 −1
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ variables:
      - 'ivas-conformance'
      - 'ivas-conformance-linux'
      - 'check-float-reference'
      - 'test-branch-vs-input-passthrough'
  GIT_CLEAN_FLAGS: -ffdxq
  TESTCASE_TIMEOUT_STV_SANITIZERS: 180
  TESTCASE_TIMEOUT_LTV_SANITIZERS: 1200
@@ -69,7 +70,9 @@ workflow:
    - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'check-float-reference'
      variables:
        IVAS_PIPELINE_NAME: 'check-float-reference: $CI_COMMIT_BRANCH'
    
    - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'test-branch-vs-input-passthrough'
      variables:
        IVAS_PIPELINE_NAME: 'Pass-through comparison vs input: $CI_COMMIT_BRANCH'

stages:
  - .pre
@@ -265,6 +268,8 @@ stages:
      when: never      
    - if: $MANUAL_PIPELINE_TYPE == 'check-float-reference'
      when: never
    - if: $MANUAL_PIPELINE_TYPE == 'test-branch-vs-input-passthrough'
      when: never
    - when: on_success

.rules-merge-request:
@@ -1639,6 +1644,40 @@ test-long-self-test:
      junit:
        - report-junit-ltv.xml

test-branch-vs-input-passthrough:
  tags:
    - ivas-linux
  stage: compare
  timeout: "30 minutes" # TBD
  rules:
    - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'test-branch-vs-input-passthrough'
  allow_failure:
    exit_codes:
      - 123
  script:
    - *print-common-info
    - make -j

    - exit_code=0
    - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v --html=report.html --self-contained-html --junit-xml=report-junit.xml --compare_to_input --mld --ssnr --odg || exit_code=$?
    - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true
    - python3 scripts/parse_xml_report.py report-junit.xml report.csv
    - if [ $zero_errors != 1 ]; then echo "Run errors encountered!"; exit $EXIT_CODE_FAIL; fi
    - if [ $exit_code -eq 1 ]; then echo "Differences encountered."; exit $EXIT_CODE_NON_BE; fi
    - exit 0

  artifacts:
    name: "test-branch-vs-input-passthrough--sha-$CI_COMMIT_SHORT_SHA--results"
    when: always
    expire_in: 4 mos
    paths:
      - report-junit.xml
      - report.html
      - report.csv
    expose_as: "test-branch-vs-input-passthrough results"
    reports:
      junit:
        - report-junit.xml

# ---------------------------------------------------------------
# Scheduled jobs on main
+1 −0
Original line number Diff line number Diff line
@@ -182,6 +182,7 @@


#define NONBE_FIX_1174_MCMASA_LBR_LOOP_ERROR            /* Nokia: Fix issue 1174 by removing the unnecessary inner loop causing problems. */
#define NONBE_FIX_1176_OSBA_REVERB_JBM_ASAN_ERROR       /* Ericsson: Issue 1176, fix in TDREND_firfilt for subframes shorter than the filter length */

/* ##################### End NON-BE switches ########################### */

+6 −1
Original line number Diff line number Diff line
@@ -261,8 +261,13 @@ void TDREND_firfilt(
    /* Handle memory */
    p_signal = buffer + filterlength - 1;
    mvr2r( mem, buffer, filterlength - 1 ); /* Insert memory */
#ifdef NONBE_FIX_1176_OSBA_REVERB_JBM_ASAN_ERROR
    mvr2r( signal, p_signal, subframe_length );                                    /* Insert current frame */
    mvr2r( p_signal + subframe_length - filterlength + 1, mem, filterlength - 1 ); /* Update memory for next frame */
#else
    mvr2r( signal, buffer + filterlength - 1, subframe_length );                 /* Insert current frame */
    mvr2r( signal + subframe_length - filterlength + 1, mem, filterlength - 1 ); /* Update memory for next frame */
#endif

    /* Convolution */
    for ( i = 0; i < subframe_length; i++ )
+14 −3
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ EVS_FORMATS = {
    "EVS_JBM_dec": r"Readme_JBM_dec",
}

NO_FORMATS = {"Default": r".*"}

IVAS_CATEGORIES = {
    "Normal operation": r".*",
@@ -48,6 +49,8 @@ EVS_CATEGORIES = {
    "JBM": r"JBM",
}

NO_CATEGORIES = {"N/A": r".*"}

# Main routine
if __name__ == "__main__":
    parser = argparse.ArgumentParser(
@@ -64,15 +67,23 @@ if __name__ == "__main__":
        action="store_true",
        help="Parse using EVS 26.444 formats",
    )
    parser.add_argument(
        "--skip_formats",
        action="store_true",
        help="Parse without formats and categories. Suitable for general tests which do not match the IVAS categories.",
    )
    args = parser.parse_args()
    xml_report = args.xml_report
    csv_file = args.csv_file
    FORMATS = IVAS_FORMATS
    CATEGORIES = IVAS_CATEGORIES
    if args.evs:
        FORMATS = EVS_FORMATS
        CATEGORIES = EVS_CATEGORIES
    else:
        FORMATS = IVAS_FORMATS
        CATEGORIES = IVAS_CATEGORIES
    if args.skip_formats:
        FORMATS = NO_FORMATS
        CATEGORIES = NO_CATEGORIES

    tree = ElementTree.parse(xml_report)

    testsuite = tree.find(".//testsuite")
+3 −2
Original line number Diff line number Diff line
@@ -397,6 +397,7 @@ def compare(
                tmpfile_ref = Path(tmpdir).joinpath("ref.wav")
                tmpfile_test = Path(tmpdir).joinpath("test.wav")


                ### need to resample to 48kHz for MLD computation to be correct
                if fs != 48000:
                    ref_tmp = np.clip(
@@ -409,8 +410,8 @@ def compare(
                    ref_tmp = ref.copy()
                    test_tmp = test.copy()

                wavfile.write(str(tmpfile_ref), fs, ref_tmp.astype(np.int16))
                wavfile.write(str(tmpfile_test), fs, test_tmp.astype(np.int16))
                wavfile.write(str(tmpfile_ref), 48000, ref_tmp.astype(np.int16))
                wavfile.write(str(tmpfile_test), 48000, test_tmp.astype(np.int16))

                cmd = [
                    str(wdiff),
Loading