Commit 534a2bb4 authored by emerit's avatar emerit
Browse files

Merge branch 'main' into update_crend

parents b0225a37 073fb11b
Loading
Loading
Loading
Loading
+36 −11
Original line number Diff line number Diff line
@@ -253,6 +253,7 @@ stages:
    - else
    -    testcase_timeout=$TESTCASE_TIMEOUT_STV
    - fi
    - HISTORY_ARTIFACT_NAME="daily_results_$(date +%Y-%m-%d)"

    - python3 ci/remove_unsupported_testcases.py $PRM_FILES
    - if [ $LEVEL_SCALING != "1.0" ];then
@@ -267,6 +268,7 @@ stages:

    - python3 scripts/parse_xml_report.py report-junit.xml $CSV_ARTIFACT_NAME
    - mkdir $IMAGES_ARTIFACT_NAME
    - mkdir $HISTORY_ARTIFACT_NAME
    - for MEASURE in MLD DIFF SSNR;do python3 scripts/create_histogram_summary.py $CSV_ARTIFACT_NAME $IMAGES_ARTIFACT_NAME/summary_"$MEASURE".csv $IMAGES_ARTIFACT_NAME/summary_"$MEASURE".png --measure $MEASURE; done
    - python3 ci/basop-pages/create_summary_page.py $SUMMARY_HTML_ARTIFACT_NAME $CI_JOB_ID $CI_JOB_NAME

@@ -278,6 +280,8 @@ stages:
    # This wildcard thingy relies on only one csv file being present per job
    -    file_previous="previous_artifacts/mld--$CI_JOB_NAME-$id_previous--sha-*.csv"
    -    python3 ci/basop-pages/create_report_pages.py $PAGES_HTML_ARTIFACT_NAME $MERGED_CSV_ARTIFACT_NAME $CSV_ARTIFACT_NAME $file_previous $CI_JOB_ID $id_previous $CI_JOB_NAME
    # Store MLD file for history, such that pages job will only pick these if found in this folder
    -    cp $CSV_ARTIFACT_NAME $HISTORY_ARTIFACT_NAME
    - else
    # create empty file for artifacts to avoid errors
    -    touch $PAGES_HTML_ARTIFACT_NAME
@@ -286,8 +290,8 @@ stages:

    - if [ $zero_errors != 1 ]; then
    -     echo "Run errors encountered!"
    # TODO: temporary only to not fail pipelines on crashes in encoder
    -     if [[ "$CI_JOB_NAME" =~ "ivas-pytest-compare_to_ref-short-enc" ]]; then
    # TODO: temporary only to not fail MR pipelines on crashes
    -     if [ $CI_PIPELINE_SOURCE == 'merge_request_event' ]; then
    -         exit $EXIT_CODE_NON_BE
    -     else
    -         exit $EXIT_CODE_FAIL
@@ -311,6 +315,7 @@ stages:
      - $MERGED_CSV_ARTIFACT_NAME
      - $SUMMARY_HTML_ARTIFACT_NAME
      - $IMAGES_ARTIFACT_NAME
      - $HISTORY_ARTIFACT_NAME
    expose_as: "pytest compare results"
    reports:
      junit:
@@ -353,10 +358,13 @@ stages:
    # this per default builds the branch and the reference and creates the reference outputs
    - *build-and-create-reference-outputs
    - exit_code=0
    - python3 -m pytest --tb=no $TEST_SUITE -v --create_cut --html=$HTML_REPORT_BRANCH --self-contained-html --junit-xml=$XML_REPORT_BRANCH --mld --ssnr --odg --ref_encoder_path $REF_ENCODER_PATH --ref_decoder_path $REF_DECODER_PATH --dut_encoder_path $DUT_ENCODER_PATH --dut_decoder_path $DUT_DECODER_PATH -n auto --testcase_timeout $testcase_timeout || exit_code=$?
    - python3 -m pytest --tb=no $TEST_SUITE -v --keep_files --create_cut --html=$HTML_REPORT_BRANCH --self-contained-html --junit-xml=$XML_REPORT_BRANCH --mld --ssnr --odg --ref_encoder_path $REF_ENCODER_PATH --ref_decoder_path $REF_DECODER_PATH --dut_encoder_path $DUT_ENCODER_PATH --dut_decoder_path $DUT_DECODER_PATH -n auto --testcase_timeout $testcase_timeout || exit_code=$?
    - zero_errors_branch=$(cat $XML_REPORT_BRANCH | grep -c 'errors="0"') || true
    - python3 scripts/parse_xml_report.py $XML_REPORT_BRANCH $CSV_BRANCH

    # Store branch outputs for comparison
    - mv tests/dut tests/dut_branch

    # create the summary based on the branch
    - mkdir $IMAGES_ARTIFACT_NAME
    - for MEASURE in MLD DIFF SSNR;do python3 scripts/create_histogram_summary.py $CSV_BRANCH $IMAGES_ARTIFACT_NAME/summary_"$MEASURE".csv $IMAGES_ARTIFACT_NAME/summary_"$MEASURE".png --measure $MEASURE; done
@@ -367,24 +375,38 @@ stages:
    - git pull
    - make clean
    - make -j
    - python3 -m pytest --tb=no $TEST_SUITE -v --create_cut --html=$HTML_REPORT_MAIN --self-contained-html --junit-xml=$XML_REPORT_MAIN --mld --ssnr --odg --ref_encoder_path $REF_ENCODER_PATH --ref_decoder_path $REF_DECODER_PATH --dut_encoder_path $DUT_ENCODER_PATH --dut_decoder_path $DUT_DECODER_PATH -n auto --testcase_timeout $testcase_timeout || true
    - python3 -m pytest --tb=no $TEST_SUITE -v --keep_files --create_cut --html=$HTML_REPORT_MAIN --self-contained-html --junit-xml=$XML_REPORT_MAIN --mld --ssnr --odg --ref_encoder_path $REF_ENCODER_PATH --ref_decoder_path $REF_DECODER_PATH --dut_encoder_path $DUT_ENCODER_PATH --dut_decoder_path $DUT_DECODER_PATH -n auto --testcase_timeout $testcase_timeout || true
    - python3 scripts/parse_xml_report.py $XML_REPORT_MAIN $CSV_MAIN

    # If outputs of main and branch are equal, have equal reports and no run errors were encountered, the job will pass.
    - diff_sba=0
    - diff_param=0
    - diff_report=0
    - python3 scripts/batch_comp_audio.py --tool pyaudio3dtools -sd tests/dut/sba_bs/raw tests/dut_branch/sba_bs/raw || diff_sba=$?
    - python3 scripts/batch_comp_audio.py --tool pyaudio3dtools -sd tests/dut/param_file/dec tests/dut_branch/param_file/dec || diff_param=$?
    - diff $CSV_BRANCH $CSV_MAIN || diff_report=$?
    - if [ $diff_param -eq 0 ] && [ $diff_sba -eq 0 ] && [ $diff_report -eq 0 ] && [ $zero_errors_branch -eq 1 ]; then
    -    echo "Output BE to main, identical report and no run errors encountered."
    -    exit 0;
    - fi

    ### compare the two csv files for regressions
    - regressions_found=0
    - python3 scripts/basop_check_for_changes_in_testcases.py $CSV_BRANCH $CSV_MAIN || regressions_found=$?

    - if [ $exit_code -eq 1 ]; then echo "Differences encountered"; exit_code=$EXIT_CODE_NON_BE; fi
    - if [ $zero_errors_branch != 1 ]; then echo "Run errors encountered!"; exit_code=$EXIT_CODE_NON_BE; fi
    - if [ $regressions_found != 0 ]; then
    -    echo "Detected regression wrt to main!"
    -    if [ $allow_regressions_flag == 0 ]; then
    -        exit $EXIT_CODE_FAIL;
    -        echo "Detected regression wrt to main, [allow regression] not set!"
    -        exit_code=$EXIT_CODE_FAIL;
    -    else
    -        exit $EXIT_CODE_NON_BE;
    -        echo "Detected regression wrt to main, [allow regression] set."
    -        exit_code=$EXIT_CODE_NON_BE;
    -    fi
    - fi
    - if [ $zero_errors_branch != 1 ]; then echo "Run errors encountered!"; exit $EXIT_CODE_NON_BE; fi
    - if [ $exit_code -eq 1 ]; then echo "Differences encountered"; exit $EXIT_CODE_NON_BE; fi
    - exit 0

    - exit $exit_code
  after_script:
    - rm -rf tests/dut tests/ref
  allow_failure:
@@ -694,7 +716,7 @@ ivas-pytest-compare_to_ref-short-dec:
    - LEVEL_SCALING=1.0
  <<: *ivas-pytest-anchor
  
ivas-pytest-compare_to_ref-short-lev-10:
ivas-pytest-compare_to_ref-short-dec-lev-10:
  extends:
    - .rules-pytest-to-ref-short
    - .test-job-linux    
@@ -1286,6 +1308,9 @@ pages:
    - *print-common-info
    - *update-scripts-repo
    - python3 ci/setup_pages.py
    # Copy logs
    - mkdir -p public/history
    - cp -r daily_results_* public/history
    - ls
    - ls public
  artifacts:
+2 −1
Original line number Diff line number Diff line
@@ -148,7 +148,8 @@ ivas_error ivas_sba_enc_reconfigure(
);

void destroy_sce_enc(
    SCE_ENC_HANDLE hSCE                                         /* i/o: SCE encoder structure                   */
    SCE_ENC_HANDLE hSCE,                                        /* i/o: SCE encoder structure                   */
    Flag is_evs                                                 /* i  : Flag to indicate EVS encoder            */  
);

void destroy_cpe_enc(
+1 −1
Original line number Diff line number Diff line
@@ -120,7 +120,7 @@
#define FIX_TMP_714
#define BASOP_NOGLOB_TMP_715
#define EVS_FUNC_MODIFIED
#define EVS_FLOAT_ENC
//#define EVS_FLOAT_ENC
#define FIX_667_DISABLE_INITIAL_PLC_SUPPRESSION
#define IVAS_CNST
#define REMOVE_IVAS_UNUSED_PARAMETERS_WARNING  /*temporary operation on unused EVS parameters to remove warnings, these parameters will be used in IVAS */
+1 −1
Original line number Diff line number Diff line
@@ -211,7 +211,7 @@ ivas_error ivas_corecoder_enc_reconfig(
                mvr2r( st_ivas->hSCE[sce_id]->hCoreCoder[0]->input_buff, input_buff[sce_id], len_inp_memory );
            }

            destroy_sce_enc( st_ivas->hSCE[sce_id] );
            destroy_sce_enc( st_ivas->hSCE[sce_id], ( EQ_16( st_ivas->hEncoderConfig->element_mode_init, EVS_MONO ) && !st_ivas->hEncoderConfig->stereo_dmx_evs ) );
            st_ivas->hSCE[sce_id] = NULL;
        }

+33 −15
Original line number Diff line number Diff line
@@ -735,20 +735,29 @@ ivas_error ivas_init_encoder(
    if ( ivas_format == MONO_FORMAT )
    {
        st_ivas->nSCE = 1; /* in mono, there is always only one SCE */
        move16();
        st_ivas->nCPE = 0;
        move16();
        st_ivas->nchan_transport = 1;
        move16();
        sce_id = 0;
#ifdef EVS_FLOAT_ENC
        if ( ( error = create_sce_enc( st_ivas, sce_id, ivas_total_brate ) ) != IVAS_ERR_OK )
        move16();

        test();
        IF( NE_16( st_ivas->hEncoderConfig->element_mode_init, EVS_MONO ) || st_ivas->hEncoderConfig->stereo_dmx_evs )
        {
            IF( NE_32( ( error = create_sce_enc( st_ivas, sce_id, ivas_total_brate ) ), IVAS_ERR_OK ) )
            {
                return error;
            }
#else
        if ( ( error = create_evs_sce_enc( st_ivas, sce_id, ivas_total_brate ) ) != IVAS_ERR_OK )
        }
        ELSE
        {
            IF( NE_32( ( error = create_evs_sce_enc( st_ivas, sce_id, ivas_total_brate ) ), IVAS_ERR_OK ) )
            {
                return error;
            }
#endif
        }

        /* prepare stereo downmix for EVS */
        if ( hEncoderConfig->stereo_dmx_evs == 1 )
@@ -1357,20 +1366,29 @@ ivas_error ivas_init_encoder_fx(
    IF( EQ_16( ivas_format, MONO_FORMAT ) )
    {
        st_ivas->nSCE = 1; /* in mono, there is always only one SCE */
        move16();
        st_ivas->nCPE = 0;
        move16();
        st_ivas->nchan_transport = 1;
        move16();
        sce_id = 0;
#ifndef EVS_FLOAT_ENC
        if ( ( error = create_evs_sce_enc( st_ivas, sce_id, ivas_total_brate ) ) != IVAS_ERR_OK )
        move16();

        test();
        IF( EQ_16( st_ivas->hEncoderConfig->element_mode_init, EVS_MONO ) && !st_ivas->hEncoderConfig->stereo_dmx_evs )
        {
            IF( NE_32( ( error = create_evs_sce_enc( st_ivas, sce_id, ivas_total_brate ) ), IVAS_ERR_OK ) )
            {
                return error;
            }
#else
        IF( ( error = create_sce_enc_fx( st_ivas, sce_id, ivas_total_brate ) ) != IVAS_ERR_OK )
        }
        ELSE
        {
            IF( NE_32( ( error = create_sce_enc_fx( st_ivas, sce_id, ivas_total_brate ) ), IVAS_ERR_OK ) )
            {
                return error;
            }
#endif
        }

        /* prepare stereo downmix for EVS */
        IF( hEncoderConfig->stereo_dmx_evs == 1 )
@@ -2024,7 +2042,7 @@ void ivas_destroy_enc(
    {
        if ( st_ivas->hSCE[i] != NULL )
        {
            destroy_sce_enc( st_ivas->hSCE[i] );
            destroy_sce_enc( st_ivas->hSCE[i], ( EQ_16( st_ivas->hEncoderConfig->element_mode_init, EVS_MONO ) && !st_ivas->hEncoderConfig->stereo_dmx_evs ) );
            st_ivas->hSCE[i] = NULL;
        }
    }
Loading