Commit 91aa6d7c authored by Marek Szczerba's avatar Marek Szczerba
Browse files

Merge branch 'main' into...

Merge branch 'main' into '1158-rendering-using-fastconv-to-binaural_room_reverb-uses-brir-convolution'
parents f7dd18eb 0aa04e8d
Loading
Loading
Loading
Loading
Loading
+52 −1
Original line number Diff line number Diff line
@@ -23,9 +23,11 @@ variables:
      - 'test-long-self-test'
      - 'ivas-conformance'
      - 'ivas-conformance-linux'
      - 'check-float-reference'
  GIT_CLEAN_FLAGS: -ffdxq
  TESTCASE_TIMEOUT_STV_SANITIZERS: 180
  TESTCASE_TIMEOUT_LTV_SANITIZERS: 1200
  BASOP_REFERENCE_BRANCH: "ivas-float-update"


default:
@@ -63,6 +65,10 @@ workflow:
    - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'ivas-conformance-linux'
      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'
    

stages:
@@ -257,6 +263,8 @@ stages:
      when: never      
    - if: $MANUAL_PIPELINE_TYPE == 'ivas-conformance-linux'
      when: never      
    - if: $MANUAL_PIPELINE_TYPE == 'check-float-reference'
      when: never
    - when: on_success

.rules-merge-request:
@@ -396,7 +404,6 @@ check-self-test-names-pre:
  script:
    - python3 ci/check_self_test_names.py scripts/config/self_test.prm 135


branch-is-up-to-date-with-main-post:
  extends:
    - .rules-merge-request
@@ -408,6 +415,50 @@ 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:
  extends:
    - .test-job-linux
  rules:
    - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "basop-ci-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:
    - 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
    - python3 ci/remove_unsupported_testcases.py scripts/config/self_test.prm
    - 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 -m create_ref --html=report1.html --self-contained-html --junit-xml=report-junit1.xml || exit_code1=$?
    - python3 -m pytest tests/codec_be_on_mr_nonselection -v --update_ref 1 -m create_ref_part2 --html=report2.html --self-contained-html --junit-xml=report-junit2.xml || exit_code2=$?
    - zero_errors=$(cat report-junit1.xml report-junit2.xml | grep -c 'errors="0"') || true
    - if [ $zero_errors != 1 ]; then echo "Run errors encountered!"; exit $EXIT_CODE_FAIL; fi
    - exit 0
  artifacts:
    name: "check-float-reference--sha-$CI_COMMIT_SHORT_SHA--results"
    when: always
    expire_in: 1 month
    paths:
      - report-junit1.xml
      - report-junit2.xml
      - report1.html
      - report2.html
    expose_as: "check-float-reference results"
    reports:
      junit:
        - report-junit1.xml
        - report-junit2.xml

# ---------------------------------------------------------------
# Build jobs
# ---------------------------------------------------------------
+1 −0
Original line number Diff line number Diff line
@@ -175,6 +175,7 @@
#define FIX_1157_OBSOLETE_DMX_TABLE                     /* FhG: remove obsolte ParamMC DMX table ivas_param_mc_dmx_fac_CICP19_4tc[] */
#define FIX_1135_EXT_RENDERER_HANDLES                   /* VA: issue 1135: Memory usage reduction in external renderer: Allocate only handles that are really needed. */
#define FIX_1158_FASTCONV_REVERB_HRTF                   /* Philips: issue 1158: Rendering with FastConv to BINAURAL_ROOM_REVERB uses BRIR convolution instead of HRTF */
#define FIX_1159_SPLIT_RENDERING_CONFIG                 /* VA: issue 1159: Execute split rendering config only for split rendering outputs. */

/* #################### End BE switches ################################## */

+9 −2
Original line number Diff line number Diff line
@@ -2230,10 +2230,17 @@ ivas_error IVAS_DEC_FeedRenderConfig(
        hRenderConfig->split_rend_config.poseCorrectionMode = ISAR_SPLIT_REND_POSE_CORRECTION_MODE_NONE;
    }

#ifdef FIX_1159_SPLIT_RENDERING_CONFIG
    if ( is_split_rendering_enabled( hIvasDec->st_ivas->hDecoderConfig, hRenderConfig ) )
    {
#endif
        if ( ( error = isar_split_rend_validate_config( &hRenderConfig->split_rend_config, ( hIvasDec->st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) ? 1 : 0 ) ) != IVAS_ERR_OK )
        {
            return error;
        }
#ifdef FIX_1159_SPLIT_RENDERING_CONFIG
    }
#endif

    return IVAS_ERR_OK;
}
+19 −10
Original line number Diff line number Diff line
@@ -609,7 +609,9 @@ static ivas_error validateOutputSampleRate(
        /* Otherwise rendering to binaural, support the same set as IVAS decoder */
        switch ( sampleRate )
        {
#ifndef FIX_1159_SPLIT_RENDERING_CONFIG
            case 8000:
#endif
            case 16000:
            case 32000:
            case 48000:
@@ -2930,7 +2932,7 @@ ivas_error IVAS_REND_Open(
    {
        if ( ( hIvasRend->splitRendWrapper = (SPLIT_REND_WRAPPER *) malloc( sizeof( SPLIT_REND_WRAPPER ) ) ) == NULL )
        {
            return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate memory for IVAS decoder handle" );
            return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate memory for IVAS renderer handle" );
        }

        isar_init_split_rend_handles( hIvasRend->splitRendWrapper );
@@ -4253,7 +4255,7 @@ ivas_error IVAS_REND_InitConfig(
 *-------------------------------------------------------------------*/

ivas_error IVAS_REND_GetRenderConfig(
    IVAS_REND_HANDLE hIvasRend,            /* i/o: IVAS decoder handle         */
    IVAS_REND_HANDLE hIvasRend,            /* i/o: IVAS renderer handle        */
    const IVAS_RENDER_CONFIG_HANDLE hRCout /* o  : Render configuration handle */
)
{
@@ -4316,7 +4318,7 @@ ivas_error IVAS_REND_GetRenderConfig(
 *-------------------------------------------------------------------*/

ivas_error IVAS_REND_FeedRenderConfig(
    IVAS_REND_HANDLE hIvasRend,                /* i/o: IVAS decoder handle         */
    IVAS_REND_HANDLE hIvasRend,                /* i/o: IVAS renderer handle        */
    const IVAS_RENDER_CONFIG_DATA renderConfig /* i  : Render configuration struct */
)
{
@@ -4466,10 +4468,17 @@ ivas_error IVAS_REND_FeedRenderConfig(

    hRenderConfig->split_rend_config.codec = renderConfig.split_rend_config.codec;

#ifdef FIX_1159_SPLIT_RENDERING_CONFIG
    if ( hIvasRend->outputConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED || hIvasRend->outputConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM )
    {
#endif
        if ( ( error = isar_split_rend_validate_config( &hRenderConfig->split_rend_config, ( hIvasRend->outputConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) ? 1 : 0 ) ) != IVAS_ERR_OK )
        {
            return error;
        }
#ifdef FIX_1159_SPLIT_RENDERING_CONFIG
    }
#endif

    /* Must re-initialize split rendering config in case renderer config is updated after adding renderer inputs */
    /* if its not initialized yet then no need to re-initialize, initialization will happen while adding inputs*/
@@ -7975,7 +7984,7 @@ int32_t IVAS_REND_GetCntFramesLimited(
 *---------------------------------------------------------------------*/

ivas_error IVAS_REND_GetHrtfHandle(
    IVAS_REND_HANDLE hIvasRend,    /* i/o: IVAS decoder handle      */
    IVAS_REND_HANDLE hIvasRend,    /* i/o: IVAS renderer handle     */
    IVAS_DEC_HRTF_HANDLE **hHrtfTD /* o  : HRTF handle              */
)
{
@@ -7997,7 +8006,7 @@ ivas_error IVAS_REND_GetHrtfHandle(
 *---------------------------------------------------------------------*/

ivas_error IVAS_REND_GetHrtfCRendHandle(
    IVAS_REND_HANDLE hIvasRend,             /* i/o: IVAS decoder handle      */
    IVAS_REND_HANDLE hIvasRend,             /* i/o: IVAS renderer handle     */
    IVAS_DEC_HRTF_CREND_HANDLE **hSetOfHRTF /* o  : Set of HRTF handle       */
)
{
@@ -8019,7 +8028,7 @@ ivas_error IVAS_REND_GetHrtfCRendHandle(
 *---------------------------------------------------------------------*/

ivas_error IVAS_REND_GetHrtfFastConvHandle(
    IVAS_REND_HANDLE hIvasRend,                   /* i/o: IVAS decoder handle    */
    IVAS_REND_HANDLE hIvasRend,                   /* i/o: IVAS renderer handle   */
    IVAS_DEC_HRTF_FASTCONV_HANDLE **hHrtfFastConv /* o  : FASTCONV HRTF handle   */
)
{
@@ -8041,7 +8050,7 @@ ivas_error IVAS_REND_GetHrtfFastConvHandle(
 *---------------------------------------------------------------------*/

ivas_error IVAS_REND_GetHrtfParamBinHandle(
    IVAS_REND_HANDLE hIvasRend,                   /* i/o: IVAS decoder handle                 */
    IVAS_REND_HANDLE hIvasRend,                   /* i/o: IVAS renderer handle                */
    IVAS_DEC_HRTF_PARAMBIN_HANDLE **hHrtfParambin /* o  : Parametric binauralizer HRTF handle */
)
{
@@ -8062,7 +8071,7 @@ ivas_error IVAS_REND_GetHrtfParamBinHandle(
 *---------------------------------------------------------------------*/

ivas_error IVAS_REND_GetHrtfStatisticsHandle(
    IVAS_REND_HANDLE hIvasRend,                       /* i/o: IVAS decoder handle     */
    IVAS_REND_HANDLE hIvasRend,                       /* i/o: IVAS renderer handle    */
    IVAS_DEC_HRTF_STATISTICS_HANDLE **hHrtfStatistics /* o  : HRTF statistics handle  */
)
{
+2 −2
Original line number Diff line number Diff line
@@ -243,12 +243,12 @@ ivas_error IVAS_REND_InitConfig(
);

ivas_error IVAS_REND_GetRenderConfig(
    IVAS_REND_HANDLE hIvasRend,                     /* i/o: IVAS decoder handle                                 */
    IVAS_REND_HANDLE hIvasRend,                     /* i/o: IVAS renderer handle                                */
    const IVAS_RENDER_CONFIG_HANDLE hRCout          /* o  : Render configuration handle                         */
);

ivas_error IVAS_REND_FeedRenderConfig(
    IVAS_REND_HANDLE hIvasRend,                     /* i/o: IVAS decoder handle                                 */
    IVAS_REND_HANDLE hIvasRend,                     /* i/o: IVAS renderer handle                                */
    const IVAS_RENDER_CONFIG_DATA renderConfig      /* i  : Render configuration struct                         */
);

Loading