Commit 2c015be8 authored by Jan Kiene's avatar Jan Kiene
Browse files

Merge branch 'ci/dmx-comparison-manual-job' into 'main'

[CI] dmx comparison manual job

See merge request !1054
parents 20d2c151 e93decbd
Loading
Loading
Loading
Loading
+78 −5
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ variables:
  INSTR_DIR: "scripts/c-code_instrument"
  BUILD_WITH_DEBUG_MODE_INFO: ""
  ENCODER_TEST: ""
  COMPARE_DMX: ""
  SKIP_REGRESSION_CHECK: ""
  MANUAL_PIPELINE_TYPE:
    description: "Type for the manual pipeline run. Use 'pytest-compare' to run comparison test against reference float codec."
@@ -39,6 +40,7 @@ variables:
    options:
      - 'default'
      - 'pytest-compare'
      - 'pytest-compare-enc-dmx'
      - 'pytest-compare-long'
      - 'pytest-compare-to-input'
      - 'pytest-saturation-smoke-test'
@@ -72,6 +74,9 @@ workflow:
    - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'pytest-compare'
      variables:
        IVAS_PIPELINE_NAME: 'Run comparison tools against float ref: $CI_COMMIT_BRANCH'
    - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'pytest-compare-enc-dmx'
      variables:
        IVAS_PIPELINE_NAME: 'Run encoder dmx comparison against float ref: $CI_COMMIT_BRANCH'
    - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'pytest-compare-long'
      variables:
        IVAS_PIPELINE_NAME: 'Run comparison tools against float ref (long test vectors): $CI_COMMIT_BRANCH'
@@ -141,6 +146,7 @@ stages:
  - git checkout $REFERENCE_BRANCH
  - git pull
  - *activate-debug-mode-info-if-set
  - cat lib_com/options.h
  - make clean
  - make -j
  - mv ./IVAS_cod ./$REF_ENCODER_PATH
@@ -167,9 +173,18 @@ stages:
  - python3 tests/create_short_testvectors.py
  # create references
  - exit_code=0

  - enc_stats_arg=""
  - if [ "$ENCODER_TEST" = "true" ]; then enc_stats_arg="--enc_stats"; fi
  - python3 -m pytest $TEST_SUITE -v --update_ref 1 $enc_stats_arg --create_ref -n auto --ref_encoder_path $REF_ENCODER_PATH --ref_decoder_path $REF_DECODER_PATH --dut_encoder_path $DUT_ENCODER_PATH --dut_decoder_path $DUT_DECODER_PATH || exit_code=$?
  - if [ "$ENCODER_TEST" = "true" ]; then
  -   enc_stats_arg="--enc_stats"
  - fi

  - enc_dmx_arg=""
  - if [ "$COMPARE_DMX" = "true" ]; then
  -   enc_dmx_arg="--compare_enc_dmx"
  - fi

  - python3 -m pytest $TEST_SUITE -v --update_ref 1 $enc_stats_arg $enc_dmx_arg --create_ref -n auto --ref_encoder_path $REF_ENCODER_PATH --ref_decoder_path $REF_DECODER_PATH --dut_encoder_path $DUT_ENCODER_PATH --dut_decoder_path $DUT_DECODER_PATH || exit_code=$?

.update-scripts-repo: &update-scripts-repo
  - cd $SCRIPTS_DIR
@@ -223,6 +238,14 @@ stages:
    - if: $CI_PIPELINE_SOURCE == 'schedule'
      when: never

.rules-pytest-to-ref-enc-sort-dmx:
  rules:
    - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == "pytest-compare-enc-dmx"
    - if: $CI_PIPELINE_SOURCE == 'push'
      when: never
    - if: $CI_PIPELINE_SOURCE == 'schedule'
      when: never

.rules-pytest-to-main-short:
  rules:
    - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main" # only have MR pipelines for MRs to main
@@ -299,6 +322,7 @@ stages:
    SUMMARY_HTML_ARTIFACT_NAME: "summary_$CI_JOB_NAME.html"
    IMAGES_ARTIFACT_NAME: "images_$CI_JOB_NAME"
  script:
    - set -euxo pipefail
    - *print-common-info
    - *update-scripts-repo
    - if [ $USE_LTV -eq 1 ]; then
@@ -314,11 +338,20 @@ stages:
    -   *apply-testv-scaling
    - fi

    - if [ "$ENCODER_TEST" = "true" ]; then BUILD_WITH_DEBUG_MODE_INFO="true"; fi
    - if [ "$COMPARE_DMX" = "true" ] || [ "$ENCODER_TEST" = "true" ]; then
    -   BUILD_WITH_DEBUG_MODE_INFO="true"
    - fi
    - *build-and-create-reference-outputs

    - comp_args="--mld --ssnr --odg"
    - if [ "$ENCODER_TEST" = "true" ]; then comp_args="${comp_args} --enc_stats"; fi
    - if [ "$ENCODER_TEST" = "true" ]; then
    -   comp_args="${comp_args} --enc_stats"
    - fi

    # DMX comparison only in manual job with no other metrics
    - if [ "$COMPARE_DMX" = "true" ]; then
    -   comp_args="--compare_enc_dmx"
    - fi
    - echo "$comp_args"

    ### run pytest
@@ -871,6 +904,46 @@ ivas-pytest-compare_to_ref-short-enc-lev+10:
    - LEVEL_SCALING=3.162
  <<: *ivas-pytest-anchor

# encoder dmx comparison jobs
ivas-pytest-compare_to_ref-dmx-short-enc:
  extends:
    - .rules-pytest-to-ref-enc-sort-dmx
    - .test-job-linux
  before_script:
    - USE_LTV=0
    - ENCODER_TEST="true"
    - COMPARE_DMX="true"
    - DUT_DECODER_PATH=./$REF_DECODER_PATH
    - TEST_SUITE="$SHORT_TEST_SUITE_ENCODER"
    - LEVEL_SCALING=1.0
  <<: *ivas-pytest-anchor

ivas-pytest-compare_to_ref-dmx-short-enc-lev-10:
  extends:
    - .rules-pytest-to-ref-enc-sort-dmx
    - .test-job-linux
  before_script:
    - USE_LTV=0
    - ENCODER_TEST="true"
    - COMPARE_DMX="true"
    - DUT_DECODER_PATH=./$REF_DECODER_PATH
    - TEST_SUITE="$SHORT_TEST_SUITE_ENCODER"
    - LEVEL_SCALING=0.3162
  <<: *ivas-pytest-anchor

ivas-pytest-compare_to_ref-dmx-short-enc-lev+10:
  extends:
    - .rules-pytest-to-ref-enc-sort-dmx
    - .test-job-linux
  before_script:
    - USE_LTV=0
    - ENCODER_TEST="true"
    - COMPARE_DMX="true"
    - DUT_DECODER_PATH=./$REF_DECODER_PATH
    - TEST_SUITE="$SHORT_TEST_SUITE_ENCODER"
    - LEVEL_SCALING=3.162
  <<: *ivas-pytest-anchor

ivas-pytest-enc-msan:
  extends:
    - .test-job-linux
+3 −0
Original line number Diff line number Diff line
@@ -1749,6 +1749,9 @@ ivas_error IVAS_ENC_EncodeFrameToSerial(
        }
        ELSE
        {
#ifdef DEBUG_MODE_INFO
            dbgwrite( inputBuffer, sizeof( int16_t ), inputBufferSize, 1, strcat( fname( debug_dir, "ivas_input_dmx", 0, 1, ENC ), ".pcm" ) );
#endif
            hCoreCoder->input_frame_fx = inputBufferSize;
            move32();
            IF( NE_32( ( error = evs_enc_fx( hCoreCoder, inputBuffer, hCoreCoder->mem_hp20_in_fx, inputBufferSize ) ), IVAS_ERR_OK ) )