Commit 9c1f7787 authored by Jan Kiene's avatar Jan Kiene
Browse files

Merge branch 'main' into ci/test-jbm-be-neutral-dly

parents 26047a06 4a08961e
Loading
Loading
Loading
Loading
Loading
+98 −0
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ variables:
      - 'default'
      - 'pytest-compare'
      - 'pytest-compare-long'
      - 'pytest-compare-to-input'
      - 'pytest-saturation-smoke-test'
      - 'evs-26444'
      - 'sanitizer-stv'
@@ -66,6 +67,9 @@ workflow:
    - 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'
    - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'pytest-compare-to-input'
      variables:
        IVAS_PIPELINE_NAME: 'Run comparison tools against input (pass-through only): $CI_COMMIT_BRANCH'
    - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'pytest-saturation-smoke-test'
      variables:
        IVAS_PIPELINE_NAME: 'Run saturation smoke-test: $CI_COMMIT_BRANCH'
@@ -174,6 +178,14 @@ stages:
    - if: $CI_PIPELINE_SOURCE == 'schedule'
      when: never

.rules-pytest-to-input-short:
  rules:
    - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == "pytest-compare-to-input"
    - if: $CI_PIPELINE_SOURCE == 'push'
      when: never
    - if: $CI_PIPELINE_SOURCE == 'schedule'
      when: never

# TODO: only temporary as long the MR encoder tests should not compare to main
.rules-pytest-to-ref-enc-short-temp:
  rules:
@@ -471,6 +483,70 @@ stages:
      junit:
        - report-junit.xml

.ivas-pytest-compare-to-input-anchor: &ivas-pytest-compare-to-input-anchor
  stage: test
  needs: ["build-codec-linux-make"]
  timeout: "240 minutes"
  variables:
    SUMMARY_HTML_ARTIFACT_NAME: "summary_$CI_JOB_NAME.html"
    IMAGES_ARTIFACT_NAME: "images_$CI_JOB_NAME"
  script:
    - *print-common-info
    - *update-scripts-repo
    - if [ $USE_LTV -eq 1 ]; then
    -    *update-ltv-repo
    -    *copy-ltv-files-to-testv-dir
    -    testcase_timeout=$TESTCASE_TIMEOUT_LTV
    - else
    -    testcase_timeout=$TESTCASE_TIMEOUT_STV
    - fi

    - python3 ci/remove_unsupported_testcases.py $PRM_FILES
    - if [ $LEVEL_SCALING != "1.0" ];then
    -   *apply-testv-scaling
    - fi
    - *build-reference-and-dut-binaries

    ### run pytest
    - exit_code=0
    - python3 -m pytest --tb=no $TEST_SUITE -v --create_cut --html=report-ref.html --self-contained-html --junit-xml=report-junit-ref.xml --mld --ssnr --odg -n auto --testcase_timeout $testcase_timeout --dut_encoder_path $REF_ENCODER_PATH --dut_decoder_path $REF_DECODER_PATH  --compare_to_input || exit_code=$?
    - python3 -m pytest --tb=no $TEST_SUITE -v --create_cut --html=report-dut.html --self-contained-html --junit-xml=report-junit-dut.xml --mld --ssnr --odg -n auto --testcase_timeout $testcase_timeout --dut_encoder_path $DUT_ENCODER_PATH --dut_decoder_path $DUT_DECODER_PATH  --compare_to_input || exit_code=$?
    - zero_errors_ref=$(cat report-junit-ref.xml | grep -c 'errors="0"') || true
    - zero_errors_dut=$(cat report-junit-dut.xml | grep -c 'errors="0"') || true
    - python3 scripts/parse_xml_report.py report-junit-ref.xml report-ref.csv
    - python3 scripts/parse_xml_report.py report-junit-dut.xml report-dut.csv
    - python3 scripts/diff_report.py report-ref.csv report-dut.csv report-diff.csv

    # create summary
    - mkdir $IMAGES_ARTIFACT_NAME
    - for MEASURE in MLD DIFF SSNR ODG;do python3 scripts/create_histogram_summary.py report-diff.csv $IMAGES_ARTIFACT_NAME/summary_"$MEASURE".csv $IMAGES_ARTIFACT_NAME/summary_"$MEASURE".png --measure $MEASURE --diff; done
    - python3 ci/basop-pages/create_summary_page.py $SUMMARY_HTML_ARTIFACT_NAME $CI_JOB_ID $CI_JOB_NAME

    - exit 0

  allow_failure:
    exit_codes:
      - 123
  artifacts:
    name: "$CI_JOB_NAME--sha-$CI_COMMIT_SHORT_SHA--results"
    expire_in: 1 week
    when: always
    paths:
      - report-junit-ref.xml
      - report-ref.html
      - report-ref.csv
      - report-junit-dut.xml
      - report-dut.html
      - report-dut.csv
      - report-diff.csv
      - $IMAGES_ARTIFACT_NAME
      - $SUMMARY_HTML_ARTIFACT_NAME
    expose_as: "pytest compare to input results"
    reports:
      junit:
        - report-junit-ref.xml
        - report-junit-dut.xml

# ---------------------------------------------------------------
# .pre jobs for setting up things
# ---------------------------------------------------------------
@@ -762,6 +838,28 @@ ivas-pytest-compare_to_ref-short-dec-lev+10:
    - LEVEL_SCALING=3.162
  <<: *ivas-pytest-anchor

ivas-pytest-compare-to-input-short-dec:
  extends:
    - .rules-pytest-to-input-short
    - .test-job-linux
  before_script:
    - USE_LTV=0
    - DUT_ENCODER_PATH=./$REF_ENCODER_PATH
    - TEST_SUITE="$SHORT_TEST_SUITE"
    - LEVEL_SCALING=1.0
  <<: *ivas-pytest-compare-to-input-anchor

ivas-pytest-compare-to-input-short-enc:
  extends:
    - .rules-pytest-to-input-short
    - .test-job-linux
  before_script:
    - USE_LTV=0
    - DUT_DECODER_PATH=./$REF_DECODER_PATH
    - TEST_SUITE="$SHORT_TEST_SUITE"
    - LEVEL_SCALING=1.0
  <<: *ivas-pytest-compare-to-input-anchor

ivas-pytest-dec-msan-short:
  extends:
    - .test-job-linux
+18 −0
Original line number Diff line number Diff line
# Basic info

<!--- Add commit SHA used to reproduce -->

- Encoder (float):
- Decoder:

# Bug description

# Ways to reproduce

(Clear steps or refer to a failing automated test, e.g. with a pipeline link)

<!--- Below are labels that will be added but are not shown in description. This is a template to help fill them.
      Add further information to the first row and remove and add labels as necessary.  -->

/label ~Priority:: ~Company: ~Lib: ~Module:
/label ~Type:Bug ~Status::ToDo
+7 −1
Original line number Diff line number Diff line
@@ -61,7 +61,9 @@ static void cldfb_init_proto_and_twiddles( HANDLE_CLDFB_FILTER_BANK hs );

static void cldfb_init_proto_and_twiddles_enc( HANDLE_CLDFB_FILTER_BANK hs );

#ifndef IVAS_FLOAT_FIXED
static float GetEnergyCldfb_ivas( float *energyValuesSum, float *energyLookahead, float **realValues, float **imagValues, const int16_t numberBands, int16_t numberCols, TEC_ENC_HANDLE hTecEnc );
#endif

/*-------------------------------------------------------------------*
 * cplxMult()
@@ -1917,6 +1919,7 @@ void resampleCldfb_ivas_fx(
}
#endif

#ifndef IVAS_FLOAT_FIXED
/*-------------------------------------------------------------------*
 * analysisCLDFBEncoder()
 *
@@ -1947,6 +1950,7 @@ void analysisCldfbEncoder_ivas(

    return;
}
#endif

void analysisCldfbEncoder_ivas_fx(
    Encoder_State *st, /* i/o: encoder state structure   */
@@ -2005,6 +2009,8 @@ void analysisCldfbEncoder_ivas_fx(

    return;
}

#ifndef IVAS_FLOAT_FIXED
/*-------------------------------------------------------------------*
 * GetEnergyCldfb_ivas()
 *
@@ -2078,6 +2084,7 @@ static float GetEnergyCldfb_ivas(

    return 65535.0f;
}
#endif


/*-------------------------------------------------------------------*
@@ -3126,7 +3133,6 @@ static void cldfb_init_proto_and_twiddles_enc(
                hs->rot_vec_syn_delay_re_fx = NULL;
                hs->rot_vec_syn_delay_im_fx = NULL;
                hs->p_filter_sf = (Word16) 17051;
                hs->q_scale = norm_s( (Word16) CLDFB80_40_SCALE );
                hs->scale = cldfb_scale_2_5ms[4];
                hs->p_filter = CLDFB80_40_fx;
#endif
+1 −0
Original line number Diff line number Diff line
@@ -1481,6 +1481,7 @@ enum
#define LOW_RATE_HQ_CORE                    1                       /* Signal use of Low Rate MDCT core */
#define LOW_RATE_HQ_CORE_TRAN               2                       /* Signal use of Low Rate MDCT core Tran SWB */
#define NORM_MDCT_FACTOR                    L_FRAME8k               /* Normalize Low Rate MDCT coefficients to this frame size */
#define SQRT_NORM_MDCT_FACTOR_Q27           (1697734891)               /* Normalize Low Rate MDCT coefficients to this frame size */
#define BANDS_MAX                           ( 4 * 8 )
#define MAX_GQLEVS                          32                      /* Max fine gain levels */
#define BITS_DE_CMODE                       1
+7 −7
Original line number Diff line number Diff line
@@ -119,13 +119,13 @@ typedef struct _IVAS_ENC_CHANNEL_AWARE_CONFIG
typedef struct _IVAS_ISM_METADATA
{
#ifdef IVAS_FLOAT_FIXED
    Word32 azimuth_fx;
    Word32 elevation_fx;
    Word16 radius_fx;
    Word32 spread_fx;
    Word32 gainFactor_fx;
    Word32 yaw_fx;
    Word32 pitch_fx;
    Word32 azimuth_fx;    /* Q22 */
    Word32 elevation_fx;  /* Q22 */
    Word16 radius_fx;     /* Q9 */
    Word32 spread_fx;     /* Q22 */
    Word32 gainFactor_fx; /* Q31 */
    Word32 yaw_fx;        /* Q22 */
    Word32 pitch_fx;      /* Q22 */
#endif
    float azimuth;
    float elevation;
Loading