Commit 5a049722 authored by emerit's avatar emerit
Browse files

Merge branch 'main' into 744_step4_hrtf_binary_tests

parents 9faa4a2e 5f5bcd51
Loading
Loading
Loading
Loading
Loading
+31 −27
Original line number Diff line number Diff line
@@ -172,6 +172,13 @@ stages:
    - cp "$LTV_DIR"/*.met scripts/testv/
    - cp "$LTV_DIR"/*.csv scripts/testv/

.activate-Werror-linux: &activate-Werror-linux
  - sed -i.bak "s/^# \(CFLAGS += -Werror\)/\1/" Makefile
  - sed -i.bak "s/# \(set(CMAKE_C_FLAGS \"\${CMAKE_C_FLAGS} -Werror\")\)/\1/" CMakeLists.txt

.activate-WX-windows: &activate-WX-windows
  - (Get-Content -Path "CMakeLists.txt") -replace '# \(add_compile_options\("\/WX"\)\)', '$1' | Set-Content -Path "CMakeLists.txt"
  - Get-ChildItem -Path "Workspace_msvc" -Filter "*.vcxproj" | ForEach-Object { (Get-Content -Path $_.FullName) -replace '<TreatWarningAsError>false', '<TreatWarningAsError>true' | Set-Content -Path $_.FullName }

# ---------------------------------------------------------------
# Job templates
@@ -239,21 +246,6 @@ stages:
    - if [ ! -d "$TESTV_DIR" ]; then mkdir -p $TESTV_DIR; fi
    - cp -r scripts/testv/* $TESTV_DIR/

# template for build jobs to include the check for warnings
.build-job-with-check-for-warnings:
  extends: .build-job-linux
  stage: build
  allow_failure:
    exit_codes:
      - 123

.build-job-windows-with-check-for-warnings:
  extends: .build-job-windows
  stage: build
  allow_failure:
    exit_codes:
      - 123

# ---------------------------------------------------------------
# .pre jobs for setting up things
# ---------------------------------------------------------------
@@ -309,18 +301,20 @@ branch-is-up-to-date-with-main-post:

build-codec-linux-make:
  extends:
    - .build-job-with-check-for-warnings
    - .build-job-linux
    - .rules-basis
  script:
    - *print-common-info
    - *activate-Werror-linux
    - make -j

build-codec-linux-cmake:
  extends:
    - .build-job-with-check-for-warnings
    - .build-job-linux
    - .rules-basis
  script:
    - *print-common-info
    - *activate-Werror-linux
    - mkdir build
    - cd build
    - cmake ..
@@ -334,33 +328,37 @@ build-codec-instrumented-linux:
  timeout: "6 minutes"
  script:
    - *print-common-info
    - *activate-Werror-linux
    - bash ci/build_codec_instrumented_linux.sh

# make sure that the codec builds with msan, asan and usan
build-codec-sanitizers-linux:
  extends:
    - .build-job-with-check-for-warnings
    - .build-job-linux
    - .rules-basis
  script:
    - *print-common-info
    - *activate-Werror-linux
    - bash ci/build_codec_sanitizers_linux.sh

build-codec-include-split-linux-make:
  extends:
    - .build-job-with-check-for-warnings
    - .build-job-linux
    - .rules-basis
  script:
    - *print-common-info
    - *enable-split-rendering
    - *activate-Werror-linux
    - make -j INCLUDE_SPLIT=1

build-codec-include-split-linux-cmake:
  extends:
    - .build-job-with-check-for-warnings
    - .build-job-linux
    - .rules-basis
  script:
    - *print-common-info
    - *enable-split-rendering
    - *activate-Werror-linux
    - mkdir build
    - cd build
    - cmake .. -DINCLUDE_SPLIT=1
@@ -369,21 +367,21 @@ build-codec-include-split-linux-cmake:

build-codec-windows-cmake:
  extends:
    - .build-job-windows-with-check-for-warnings
    - .build-job-windows
    - .rules-basis
  script:
    - *print-common-info-windows
    - $winoutdata = $null
    - *activate-WX-windows
    - cmake -G "Visual Studio 15 2017" . -Bbuild
    - cmake --build build -j

build-codec-windows-include-split-cmake:
  extends:
    - .build-job-windows-with-check-for-warnings
    - .build-job-windows
    - .rules-basis
  script:
    - *print-common-info-windows
    - $winoutdata = $null
    - *activate-WX-windows
    - get-content .\lib_com\options.h | %{$_ -replace "/\*#define[\s]*SPLIT_REND_WITH_HEAD_ROT[\s]*\*/", "#define SPLIT_REND_WITH_HEAD_ROT"} | set-content -Path ./options_patched.h
    - rm ./lib_com/options.h
    - mv ./options_patched.h ./lib_com/options.h
@@ -392,13 +390,13 @@ build-codec-windows-include-split-cmake:

build-codec-windows-msbuild:
  extends:
    - .build-job-windows-with-check-for-warnings
    - .build-job-windows
    - .rules-basis
  script:
    - *print-common-info-windows
    - $winoutdata = $null
    - *activate-WX-windows
    - py .\scripts\strip_split_rendering.py
    - MSBuild.exe .\Workspace_msvc\Workspace_msvc.sln /property:Configuration=Debug | tee -variable winoutdata
    - MSBuild.exe .\Workspace_msvc\Workspace_msvc.sln /property:Configuration=Debug

# ---------------------------------------------------------------
# Test jobs for merge requests
@@ -1807,11 +1805,17 @@ coverage-test-on-main-scheduled:
    - python3 -m pytest -q -n auto tests/renderer/test_renderer.py --create_ref
    - python3 -m pytest -q -n auto tests/renderer/test_renderer.py --create_cut    
    - lcov -c -d obj -o coverage_stv.info # extract coverage of short test vectors here
    # remove apps and lib_util files from coverage
    - lcov -r coverage_stv.info "*apps*" -o coverage_stv.info
    - lcov -r coverage_stv.info "*lib_util*" -o coverage_stv.info
    - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR/test_param_file.py -v -n auto --update_ref 1 -m create_ref --param_file scripts/config/self_test_evs.prm --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec
    - bash ci/smoke_test.sh coverage
    - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR/test_param_file.py -v -n auto --update_ref 1 -m create_ref --param_file scripts/config/self_test_ltv.prm --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec
    - bash ci/ivas_voip_be_test.sh coverage
    - lcov -c -d obj -o coverage.info
    # remove apps and lib_util files from coverage
    - lcov -r coverage.info "*apps*" -o coverage.info
    - lcov -r coverage.info "*lib_util*" -o coverage.info
    - commit_sha=$(git rev-parse HEAD)
    - genhtml coverage.info -o coverage -t "Coverage on main @ $commit_sha"
    - genhtml coverage_stv.info -o coverage_stv -t "Coverage on main -- short test vectors @ $commit_sha"
+7 −2
Original line number Diff line number Diff line
@@ -60,7 +60,10 @@ if(UNIX)
  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ffp-contract=off")  # disable floating point operation contraction
  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pedantic -Wcast-qual -Wall -W -Wextra -Wno-long-long")
  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes")
  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror -Wno-unused-parameter")
  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-parameter")
  # to be uncommented in CI
  # set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror")

  # CLANG
  if(CLANG)
    find_program(clangBin NAMES /home/amm-archiv/soft/Linux/clang/current/bin/clang clang REQUIRED)
@@ -113,7 +116,9 @@ elseif(WIN32)
    /MP
  )
  if(NOT INCLUDE_SPLIT)
    add_compile_options("/W4" "/WX")
    add_compile_options("/W4")
    # to be uncommented in CI
    # add_compile_options("/WX")
  endif()
endif()

+2 −1
Original line number Diff line number Diff line
@@ -57,8 +57,9 @@ endif
# C compiler flags
CFLAGS   += -std=c99 -pedantic -Wcast-qual -Wall -W -Wextra -Wno-long-long     \
            -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes  \
            -Werror \
            -Wno-implicit-fallthrough -ffp-contract=off
# to be uncommented in CI
# CFLAGS += -Werror

# libs to link
LDLIBS   += -lm
+5 −8
Original line number Diff line number Diff line
@@ -715,7 +715,6 @@ int main(
#ifndef NONBE_FIX_BINARY_BINAURAL_READING
        IVAS_DEC_HRTF_HANDLE hHrtfTD = NULL;
#endif

        if ( ( error = IVAS_DEC_GetHrtfHandle( hIvasDec, &hHrtfTD ) ) != IVAS_ERR_OK )
        {
            fprintf( stderr, "\nIVAS_DEC_GetHrtfHandle failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) );
@@ -730,11 +729,13 @@ int main(
#ifdef FIX_OLD_BINARY_FORMAT
                hrtfFileReader_close( &hrtfReader );
                strcat( arg.hrtfFileName, "new" );

                if ( hrtfFileReader_open( arg.hrtfFileName, &hrtfReader ) != IVAS_ERR_OK )
                {
                    fprintf( stderr, "\nError in loading HRTF binary file %s \n\n", arg.hrtfFileName );
                    goto cleanup;
                }

                if ( ( error = load_HRTF_binary( *hHrtfTD, hrtfReader ) ) != IVAS_ERR_OK )
                {
                    if ( error != IVAS_ERR_BINARY_FILE_WITHOUT_BINAURAL_RENDERER_DATA )
@@ -785,7 +786,7 @@ int main(
#endif

#ifndef NONBE_FIX_BINARY_BINAURAL_READING
        IVAS_DEC_HRTF_CREND_HANDLE *hSetOfHRTF = NULL;
        IVAS_DEC_HRTF_CREND_HANDLE hSetOfHRTF = NULL;
#endif
        if ( ( error = IVAS_DEC_GetHrtfCRendHandle( hIvasDec, &hSetOfHRTF ) ) != IVAS_ERR_OK )
        {
@@ -807,7 +808,7 @@ int main(
            }
        }
#else
        if ( ( error = create_SetOfHRTF_from_binary( *hSetOfHRTF, hrtfReader, arg.output_Fs ) ) != IVAS_ERR_OK )
        if ( ( error = create_SetOfHRTF_from_binary( hSetOfHRTF, hrtfReader, arg.output_Fs ) ) != IVAS_ERR_OK )
        {
            fprintf( stderr, "\nError in loading HRTF binary file %s for CRend \n\n", arg.hrtfFileName );
            goto cleanup;
@@ -960,18 +961,14 @@ cleanup:
#ifdef NONBE_FIX_BINARY_BINAURAL_READING
        destroy_td_hrtf( hHrtfTD );
#else
        dealloc_HRTF_binary( *hHrtfTD );
        dealloc_HRTF_binary( hHrtfTD );
#endif

#ifndef NONBE_FIX_BINARY_BINAURAL_READING
        IVAS_DEC_HRTF_CREND_HANDLE hSetOfHRTF = NULL;
#endif
        IVAS_DEC_GetHrtfCRendHandle( hIvasDec, &hSetOfHRTF );
#ifdef NONBE_FIX_BINARY_BINAURAL_READING
        destroy_SetOfHRTF( hSetOfHRTF );
#else
        destroy_SetOfHRTF( *hSetOfHRTF );
#endif
    }

    IVAS_DEC_Close( &hIvasDec );
+1 −21
Original line number Diff line number Diff line
@@ -194,19 +194,11 @@ ivas_error ivas_dirac_config(

    if ( ivas_format == SBA_FORMAT || ivas_format == SBA_ISM_FORMAT )
    {
#ifdef NONBE_FIX_907_VLBR_DIRAC_BAND_MAPPING
        ivas_dirac_config_bands( band_grouping, IVAS_MAX_NUM_BANDS, (int16_t) ( Fs * INV_CLDFB_BANDWIDTH + 0.5f ), dirac_to_spar_md_bands, hQMetaData->useLowerBandRes, hConfig->enc_param_start_band, hFbMdft, 1 );
#else
        ivas_dirac_config_bands( band_grouping, IVAS_MAX_NUM_BANDS, (int16_t) ( Fs * INV_CLDFB_BANDWIDTH + 0.5f ), dirac_to_spar_md_bands, hQMetaData->useLowerBandRes, hConfig->enc_param_start_band, hFbMdft );
#endif
    }
    else
    {
#ifdef NONBE_FIX_907_VLBR_DIRAC_BAND_MAPPING
        ivas_dirac_config_bands( band_grouping, hConfig->nbands, (int16_t) ( Fs * INV_CLDFB_BANDWIDTH + 0.5f ), NULL, 0, 0, hFbMdft, 1 );
#else
        ivas_dirac_config_bands( band_grouping, hConfig->nbands, (int16_t) ( Fs * INV_CLDFB_BANDWIDTH + 0.5f ), NULL, 0, 0, hFbMdft );
#endif
    }

    return error;
@@ -219,7 +211,6 @@ ivas_error ivas_dirac_config(
 * DirAC Configuration freq. band function; used also in MASA decoder
 *------------------------------------------------------------------------*/

#ifdef NONBE_FIX_907_VLBR_DIRAC_BAND_MAPPING
void ivas_dirac_config_bands(
    int16_t *band_grouping, /* o  : band grouping                          */
    const int16_t nbands,   /* i  : number of bands                        */
@@ -229,16 +220,6 @@ void ivas_dirac_config_bands(
    const int16_t enc_param_start_band,
    IVAS_FB_MIXER_HANDLE hFbMdft,
    const int8_t BandGroupLowRes )
#else
void ivas_dirac_config_bands(
    int16_t *band_grouping, /* o  : band grouping                          */
    const int16_t nbands,   /* i  : number of bands                        */
    const int16_t max_band, /* i  : maximal band index +1                  */
    int16_t *dirac_to_spar_md_bands,
    const int8_t useLowerBandRes,
    const int16_t enc_param_start_band,
    IVAS_FB_MIXER_HANDLE hFbMdft )
#endif
{
    int16_t i;
    {
@@ -289,9 +270,8 @@ void ivas_dirac_config_bands(
            {
                int16_t step = DIRAC_LOW_BANDRES_STEP;
                int16_t reduced_band;
#ifdef NONBE_FIX_907_VLBR_DIRAC_BAND_MAPPING

                if ( BandGroupLowRes )
#endif
                {
                    for ( band = enc_param_start_band + 2, reduced_band = enc_param_start_band + 1; band <= DIRAC_MAX_NBANDS; band += step, reduced_band++ )
                    {
Loading