Commit 16c28aba authored by Vladimir Malenovsky's avatar Vladimir Malenovsky
Browse files

Merge branch 'main' into...

Merge branch 'main' into 1235-update-of-the-wmc-tool-to-v1-7-recognizing-the-newly-added-basop-operators
parents 6a203365 091d3de7
Loading
Loading
Loading
Loading
Loading
+52 −23
Original line number Diff line number Diff line
@@ -23,7 +23,6 @@ variables:
      - 'test-long-self-test'
      - 'ivas-conformance'
      - 'ivas-conformance-linux'
      - 'check-float-reference'
      - 'check-clipping'
      - 'test-branch-vs-input-passthrough'

@@ -70,9 +69,6 @@ workflow:
      variables:
        IVAS_PIPELINE_NAME: 'Draft IVAS Conformance test -- Linux: $CI_COMMIT_BRANCH'        
    - if: $CI_PIPELINE_SOURCE == 'trigger'
    - 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 == 'check-clipping'
      variables:
        IVAS_PIPELINE_NAME: 'Check core input clipping: $CI_COMMIT_BRANCH'
@@ -277,8 +273,6 @@ stages:
      when: never      
    - if: $MANUAL_PIPELINE_TYPE == 'ivas-conformance-linux'
      when: never      
    - if: $MANUAL_PIPELINE_TYPE == 'check-float-reference'
      when: never
    - if: $MANUAL_PIPELINE_TYPE == 'check-clipping'
    - if: $MANUAL_PIPELINE_TYPE == 'test-branch-vs-input-passthrough'
      when: never
@@ -421,6 +415,16 @@ check-self-test-names-pre:
  script:
    - python3 ci/check_self_test_names.py scripts/config/self_test.prm 135

check-no-duplicates-in-self-tests:
  extends:
    - .rules-merge-request
  stage: prevalidate
  needs: []
  tags:
    - ivas-linux
  script:
    - python3 ci/find_duplicates_in_prm_files.py

branch-is-up-to-date-with-main-post:
  extends:
    - .rules-merge-request
@@ -432,8 +436,7 @@ branch-is-up-to-date-with-main-post:
    - echo $commits_behind_count
    - if [ $commits_behind_count -eq 0 ]; then exit 0; else echo "Your branch is behind main, possibly main changed during your pipeline run, run 'git merge origin/main' to update." exit 1; fi;

# for merges to basop-ci-branch, run the long test suite in reference generation mode to catch problems already here and not only in the BASOP repo
check-compatibility-with-basop-reference-branch:
.basop-ci-branch-compat-template:
  extends:
    - .test-job-linux
  rules:
@@ -441,29 +444,24 @@ check-compatibility-with-basop-reference-branch:
      changes:
        - tests/**/*
        - scripts/**/*
        - ci/**/*
    - if: ($CI_PIPELINE_SOURCE == 'web' || $CI_PIPELINE_SOURCE == 'trigger') && $MANUAL_PIPELINE_TYPE == 'check-float-reference'
    - if: $CI_PIPELINE_SOURCE == 'push'
      when: never
  tags:
    - ivas-linux-fast
  script:
  before_script:
    - git clone -b $BASOP_REFERENCE_BRANCH https://forge.3gpp.org/rep/sa4/audio/ivas-basop.git --single-branch
    - make -j -C ivas-basop
    - cp ivas-basop/IVAS_cod ./IVAS_cod_ref
    - cp ivas-basop/IVAS_dec ./IVAS_dec_ref
    - cp ivas-basop/IVAS_cod ./IVAS_cod # Not used but needed to launch the pytest
    - cp ivas-basop/IVAS_dec ./IVAS_dec # Not used but needed to launch the pytest
    - python3 ci/remove_unsupported_testcases.py scripts/config/self_test.prm
    - python3 ci/remove_unsupported_testcases.py $PARAM_FILE
    - python3 tests/create_short_testvectors.py
    - exit_code1=0
    - exit_code2=0
    - python3 -m pytest tests/codec_be_on_mr_nonselection -v --update_ref 1 --html=report.html --self-contained-html --junit-xml=report-junit.xml || exit_code1=$?
    - *update-ltv-repo
    - *copy-ltv-files-to-testv-dir

    - python3 -m pytest tests/codec_be_on_mr_nonselection --param_file $PARAM_FILE --update_ref 1 --ref_encoder_path ivas-basop/IVAS_cod --ref_decoder_path ivas-basop/IVAS_dec --html=report.html --self-contained-html --junit-xml=report-junit.xml || true
    - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true
    - if [ $zero_errors != 1 ]; then echo "Run errors encountered!"; exit $EXIT_CODE_FAIL; fi
    - exit 0
    - if [ $zero_errors != 1 ]; then echo "Run errors encountered with $PARAM_FILE !"; exit $EXIT_CODE_FAIL; fi

  artifacts:
    name: "check-float-reference--sha-$CI_COMMIT_SHORT_SHA--results"
    name: "$CI_JOB_NAME--sha-$CI_COMMIT_SHORT_SHA--results"
    when: always
    expire_in: 1 month
    paths:
@@ -475,6 +473,38 @@ check-compatibility-with-basop-reference-branch:
      junit:
        - report-junit.xml

check-compatibility-with-basop-reference-branch-stv:
  extends:
    - .basop-ci-branch-compat-template
  variables:
    PARAM_FILE: scripts/config/self_test.prm
  script:
    - exit 0

check-compatibility-with-basop-reference-branch-ltv:
  extends:
    - .basop-ci-branch-compat-template
  variables:
    PARAM_FILE: scripts/config/self_test_ltv.prm
  script:
    - exit 0

check-compatibility-with-basop-reference-branch-encoder-stv:
  extends:
    - .basop-ci-branch-compat-template
  variables:
    PARAM_FILE: scripts/config/self_test_basop_encoder.prm
  script:
    - exit 0

check-compatibility-with-basop-reference-branch-encoder-ltv:
  extends:
    - .basop-ci-branch-compat-template
  variables:
    PARAM_FILE: scripts/config/self_test_ltv_basop_encoder.prm
  script:
    - exit 0

# ---------------------------------------------------------------
# Build jobs
# ---------------------------------------------------------------
@@ -508,7 +538,6 @@ build-codec-instrumented-linux:
  timeout: "10 minutes"
  script:
    - *print-common-info
    - *activate-Werror-linux
    - ./scripts/prepare_instrumentation.sh
    - make -j -C scripts/c-code_instrument

+11 −3
Original line number Diff line number Diff line
@@ -3775,13 +3775,17 @@ static ivas_error IVAS_DEC_LoadHrtfFromFile(

        if ( binaural_renderer == IVAS_BIN_RENDERER_TYPE_TDREND || binaural_renderer_sec == IVAS_BIN_RENDERER_TYPE_TDREND || binaural_renderer == IVAS_BIN_RENDERER_TYPE_DEFAULT )
        {
            if ( ( error = IVAS_DEC_GetHrtfHandle( hIvasDec, &hHrtfBinary->hHrtfTD ) ) != IVAS_ERR_OK )
            if ( ( error = IVAS_DEC_GetHrtfTDrendHandle( hIvasDec, &hHrtfBinary->hHrtfTD ) ) != IVAS_ERR_OK )
            {
                fprintf( stderr, "\nIVAS_DEC_GetHrtfHandle failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) );
                fprintf( stderr, "\nIVAS_DEC_GetHrtfTDrendHandle failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) );
                return error;
            }

#ifdef FIX_1228_SAMPLING_RATE_MISMATCH_IN_HRTF_FILE
            if ( ( error = load_TDrend_HRTF_binary( *hHrtfBinary->hHrtfTD, output_Fs, hHrtfBinary->hrtfReader ) ) != IVAS_ERR_OK )
#else
            if ( ( error = load_HRTF_binary( *hHrtfBinary->hHrtfTD, hHrtfBinary->hrtfReader ) ) != IVAS_ERR_OK )
#endif
            {
                if ( error != IVAS_ERR_BINARY_FILE_WITHOUT_BINAURAL_RENDERER_DATA )
                {
@@ -3881,11 +3885,15 @@ static ivas_error IVAS_DEC_LoadHrtfFromFile(
        }
    }

#ifdef FIX_1228_SAMPLING_RATE_MISMATCH_IN_HRTF_FILE
    if ( hHrtfBinary->hHrtfStatistics == NULL && ( binaural_renderer == IVAS_BIN_RENDERER_TYPE_FASTCONV || binaural_renderer == IVAS_BIN_RENDERER_TYPE_CREND ) && OutputConfig == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB )
#else
    if ( hHrtfBinary->hHrtfStatistics == NULL )
#endif
    {
        if ( ( error = IVAS_DEC_GetHrtfStatisticsHandle( hIvasDec, &hHrtfBinary->hHrtfStatistics ) ) != IVAS_ERR_OK )
        {
            fprintf( stderr, "\nIVAS_DEC_GetHrtfHandle failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) );
            fprintf( stderr, "\nIVAS_DEC_GetHrtfStatisticsHandle failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) );
            return error;
        }

+4 −0
Original line number Diff line number Diff line
@@ -910,7 +910,11 @@ int main(
                goto cleanup;
            }

#ifdef FIX_1228_SAMPLING_RATE_MISMATCH_IN_HRTF_FILE
            if ( ( error = load_TDrend_HRTF_binary( *hHrtfTD, args.sampleRate, hrtfFileReader ) ) != IVAS_ERR_OK )
#else
            if ( ( error = load_HRTF_binary( *hHrtfTD, hrtfFileReader ) ) != IVAS_ERR_OK )
#endif
            {
                if ( error != IVAS_ERR_BINARY_FILE_WITHOUT_BINAURAL_RENDERER_DATA )
                {
+1 −1
Original line number Diff line number Diff line
@@ -425,7 +425,7 @@ def create_display_strings(

        displays.append(display)

    if which == "wmops_per_op":
    if which == "wmops_per_op" and has_comparison:
        # flot.js' "stack: true" depends on the order of data arrays
        # reorder here instead of reworking above loop
        displays_encs = displays[0].split(", \n")
+15 −5
Original line number Diff line number Diff line
@@ -29,11 +29,11 @@
# the United Nations Convention on Contracts on the International Sales of Goods.

function usage {
  echo "Usage: $0 \"ivas-format(s)\" \"output-format(s)\" \"mode{full(default)|mem_only}\" \"repo{float(default)|basop}\" "
  echo "Usage: $0 \"ivas-format(s)\" \"output-format(s)\" \"mode{full(default)|mem_only}\" \"repo{float(default)|basop}\" [wmops_ref_logfile]"
  exit 1
}

if [ $# -ne 2 ] && [ $# -ne 3 ] && [ $# -ne 4 ]; then
if [ $# -ne 2 ] && [ $# -ne 3 ] && [ $# -ne 4 ] && [ $# -ne 5 ]; then
  usage
fi

@@ -50,7 +50,7 @@ if [ $# -ge 3 ]; then
fi

repo_arg_script=""
if [ $# -eq 4 ]; then
if [ $# -ge 4 ]; then
  if [ "$4" = "basop" ]; then
    repo_arg_script="--basop"
  elif [ "$4" != "float" ]; then
@@ -58,6 +58,11 @@ if [ $# -eq 4 ]; then
  fi
fi

wmops_ref_logfile=""
if [ $# -eq 5 ]; then
  wmops_ref_logfile=$5
fi

date=$(date +%Y%m%d)                           # used for log-file file ending
shortDate=$(date "+%b %d" | sed -e "s/\ /_/g") # stored in the log-file
fullDate=$(date "+%c" | sed -e "s/\ /_/g")     # stored in the log-file
@@ -81,7 +86,7 @@ ret_val=0
mode_arg=""
# for OSBA, there are just too many modes... -> only select HOA3 ones
if [ "$ivas_format" == "OSBA" ]; then
  osba_hoa3_modes=$(./scripts/runIvasCodec.py -C OSBA -l | grep "HOA3" | grep -v "planar")
  osba_hoa3_modes=$(./scripts/runIvasCodec.py -C OSBA -l | grep "HOA3" | grep -v "Planar")
  mode_arg="-m $osba_hoa3_modes"
fi

@@ -106,7 +111,12 @@ ${scriptDir}/mergeNewsletterRom.py ${wmopsFilenameFlc}_PROM.csv ${wmopsFilenameF
${scriptDir}/parseNewsletterRom.py ${wmopsFilenameFlc}_PROM.csv ${wmopsFilenameFlc}_TROM.csv ${wmopsFilenameFlcLast}_ROM.csv ${commit_sha} ${shortDate} ${fullDate} >>${destDir}/wmops/log_rom_all.txt

# generate javascript code from log files
# pass the ref log for comparison only if arg is given
if [ "$wmops_ref_logfile" != "" ]; then
  python3 ci/complexity_measurements/genWebpageData.py ${destDir}/wmops/log_wmops_all.txt ${wmopsFilenameFlc}_WMOPS.csv ${destDir}/wmops/log_rom_all.txt ${destDir}/wmops/log_ram_all.txt --wmops_per_op_log_for_comparison $wmops_ref_logfile
else
  python3 ci/complexity_measurements/genWebpageData.py ${destDir}/wmops/log_wmops_all.txt ${wmopsFilenameFlc}_WMOPS.csv ${destDir}/wmops/log_rom_all.txt ${destDir}/wmops/log_ram_all.txt
fi

python3 ${scriptDir}/check_for_changes.py ${destDir}/wmops/log_wmops_all.txt ${destDir}/wmops/log_ram_all.txt ${destDir}/wmops/log_rom_all.txt
if [ "$?" != "0" ]; then
Loading