Loading .gitlab-ci.yml +40 −1 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ variables: - 'ivas-conformance' - 'ivas-conformance-linux' - 'check-float-reference' - 'test-branch-vs-input-passthrough' GIT_CLEAN_FLAGS: -ffdxq TESTCASE_TIMEOUT_STV_SANITIZERS: 180 TESTCASE_TIMEOUT_LTV_SANITIZERS: 1200 Loading Loading @@ -69,7 +70,9 @@ workflow: - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'check-float-reference' variables: IVAS_PIPELINE_NAME: 'check-float-reference: $CI_COMMIT_BRANCH' - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'test-branch-vs-input-passthrough' variables: IVAS_PIPELINE_NAME: 'Pass-through comparison vs input: $CI_COMMIT_BRANCH' stages: - .pre Loading Loading @@ -265,6 +268,8 @@ stages: when: never - if: $MANUAL_PIPELINE_TYPE == 'check-float-reference' when: never - if: $MANUAL_PIPELINE_TYPE == 'test-branch-vs-input-passthrough' when: never - when: on_success .rules-merge-request: Loading Loading @@ -1639,6 +1644,40 @@ test-long-self-test: junit: - report-junit-ltv.xml test-branch-vs-input-passthrough: tags: - ivas-linux stage: compare timeout: "30 minutes" # TBD rules: - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'test-branch-vs-input-passthrough' allow_failure: exit_codes: - 123 script: - *print-common-info - make -j - exit_code=0 - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v --html=report.html --self-contained-html --junit-xml=report-junit.xml --compare_to_input --mld --ssnr --odg || exit_code=$? - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - python3 scripts/parse_xml_report.py report-junit.xml report.csv - if [ $zero_errors != 1 ]; then echo "Run errors encountered!"; exit $EXIT_CODE_FAIL; fi - if [ $exit_code -eq 1 ]; then echo "Differences encountered."; exit $EXIT_CODE_NON_BE; fi - exit 0 artifacts: name: "test-branch-vs-input-passthrough--sha-$CI_COMMIT_SHORT_SHA--results" when: always expire_in: 4 mos paths: - report-junit.xml - report.html - report.csv expose_as: "test-branch-vs-input-passthrough results" reports: junit: - report-junit.xml # --------------------------------------------------------------- # Scheduled jobs on main Loading apps/decoder.c +2 −0 Original line number Diff line number Diff line Loading @@ -732,7 +732,9 @@ int main( fprintf( stderr, "Failed to get acoustic environment with ID: %d\n\n", aeID ); goto cleanup; } #ifndef FIX_587_DEFAULT_REVERB renderConfig.roomAcoustics.override = true; #endif } /* ISAR frame size is set from command line, not renderer config file. Loading apps/renderer.c +2 −0 Original line number Diff line number Diff line Loading @@ -1044,7 +1044,9 @@ int main( fprintf( stderr, "Failed to get acoustic environment with ID: %d\n\n", aeID ); exit( -1 ); } #ifndef FIX_587_DEFAULT_REVERB renderConfig.roomAcoustics.override = 1; #endif } /* ISAR frame size is set from command line, not renderer config file. Loading lib_com/bitstream.c +14 −14 Original line number Diff line number Diff line Loading @@ -1428,7 +1428,6 @@ uint16_t get_indice_1( return st->bit_stream[pos]; } #define WMC_TOOL_SKIP /*-------------------------------------------------------------------* * reset_indices_enc() Loading Loading @@ -1468,6 +1467,7 @@ void reset_indices_dec( return; } /*-------------------------------------------------------------------* * write_indices_to_stream() * Loading Loading @@ -1838,6 +1838,7 @@ void convertBytestreamToSerial( } } /*-------------------------------------------------------------------* * decoder_selectCodec() * Loading Loading @@ -2515,8 +2516,8 @@ void ivas_set_bitstream_pointers( return; } #ifdef DEBUGGING /*-------------------------------------------------------------------* * preview_indices() * Loading Loading @@ -2786,14 +2787,15 @@ ivas_error preview_indices( return error; } #endif #endif /*-------------------------------------------------------------------* * read_indices() * * Read indices from an ITU-T G.192 bitstream to the buffer * Simulate packet losses by inserting frame erasures * Detect SID, NO_DATA, BFI, etc. and set bitstream pointers * Set ivas_total_brate * Note: each bit is represented in bitsream buffer as a uint16_t of value 0 or 1 *-------------------------------------------------------------------*/ /*! r: 1 = reading OK, 0 = problem */ Loading Loading @@ -2838,8 +2840,8 @@ ivas_error read_indices( /* convert the frame length to total bitrate */ total_brate = (int32_t) ( num_bits * FRAMES_PER_SEC ); /* verify that a valid num bits value is present in the G.192 file */ /* only AMRWB, EVS or IVAS bitrates or 0(NO DATA) are allowed in G.192 file frame reading */ /* verify that a valid num bits value is present */ /* only AMRWB, EVS or IVAS bitrates or 0(NO DATA) are allowed */ if ( st_ivas->ivas_format != MONO_FORMAT ) { k = 0; Loading @@ -2858,7 +2860,7 @@ ivas_error read_indices( } else if ( k == SIZE_IVAS_BRATE_TBL ) { return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Error, illegal bitrate (%d) in the G.192 frame ! Exiting ! \n", total_brate ); return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Error, illegal bitrate (%d) detected! Exiting ! \n", total_brate ); } else { Loading @@ -2871,12 +2873,12 @@ ivas_error read_indices( if ( rate2EVSmode( total_brate, NULL ) < 0 ) /* negative value means that a valid rate was not found */ { return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Error, illegal bitrate (%d) in the G.192 frame ! Exiting ! \n", total_brate ); return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Error, illegal bitrate (%d) detected! Exiting ! \n", total_brate ); } } /* G.192 RX DTX handler*/ /* handle SID_FIRST, SID_BAD, SPEECH_LOST, NO_DATA as properly as possible for the ITU-T G.192 format */ /* RX DTX handler*/ /* handle SID_FIRST, SID_BAD, SPEECH_LOST, NO_DATA */ /* (total_brate, bfi , st_CNG) = rx_handler(received frame type, [previous frame type], past CNG state, past core) */ curr_ft_good_sp = 0; curr_ft_bad_sp = 0; Loading Loading @@ -3036,7 +3038,6 @@ ivas_error read_indices( /* GOOD frame */ if ( st_ivas->bfi == 0 || st_ivas->bfi == FRAMEMODE_FUTURE ) { /* GOOD frame - convert ITU-T G.192 words to short values */ st_ivas->hDecoderConfig->ivas_total_brate = total_brate; } Loading @@ -3050,6 +3051,7 @@ ivas_error read_indices( return error; } /*-------------------------------------------------------------------* * get_rfFrameType() * Loading Loading @@ -3467,5 +3469,3 @@ void dtx_read_padding_bits( return; } #undef WMC_TOOL_SKIP lib_com/common_api_types.h +2 −0 Original line number Diff line number Diff line Loading @@ -312,7 +312,9 @@ typedef enum typedef struct _IVAS_ROOM_ACOUSTICS_CONFIG { #ifndef FIX_587_DEFAULT_REVERB int16_t override; #endif int16_t nBands; /* Number of frequency bands for which reverb properties are provided, integer, range [2..256] */ float pFc_input[IVAS_CLDFB_NO_CHANNELS_MAX]; /* Center frequencies for which following values are provided: */ float pAcoustic_rt60[IVAS_CLDFB_NO_CHANNELS_MAX]; /* - The room's T60 per center frequency */ Loading Loading
.gitlab-ci.yml +40 −1 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ variables: - 'ivas-conformance' - 'ivas-conformance-linux' - 'check-float-reference' - 'test-branch-vs-input-passthrough' GIT_CLEAN_FLAGS: -ffdxq TESTCASE_TIMEOUT_STV_SANITIZERS: 180 TESTCASE_TIMEOUT_LTV_SANITIZERS: 1200 Loading Loading @@ -69,7 +70,9 @@ workflow: - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'check-float-reference' variables: IVAS_PIPELINE_NAME: 'check-float-reference: $CI_COMMIT_BRANCH' - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'test-branch-vs-input-passthrough' variables: IVAS_PIPELINE_NAME: 'Pass-through comparison vs input: $CI_COMMIT_BRANCH' stages: - .pre Loading Loading @@ -265,6 +268,8 @@ stages: when: never - if: $MANUAL_PIPELINE_TYPE == 'check-float-reference' when: never - if: $MANUAL_PIPELINE_TYPE == 'test-branch-vs-input-passthrough' when: never - when: on_success .rules-merge-request: Loading Loading @@ -1639,6 +1644,40 @@ test-long-self-test: junit: - report-junit-ltv.xml test-branch-vs-input-passthrough: tags: - ivas-linux stage: compare timeout: "30 minutes" # TBD rules: - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'test-branch-vs-input-passthrough' allow_failure: exit_codes: - 123 script: - *print-common-info - make -j - exit_code=0 - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v --html=report.html --self-contained-html --junit-xml=report-junit.xml --compare_to_input --mld --ssnr --odg || exit_code=$? - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - python3 scripts/parse_xml_report.py report-junit.xml report.csv - if [ $zero_errors != 1 ]; then echo "Run errors encountered!"; exit $EXIT_CODE_FAIL; fi - if [ $exit_code -eq 1 ]; then echo "Differences encountered."; exit $EXIT_CODE_NON_BE; fi - exit 0 artifacts: name: "test-branch-vs-input-passthrough--sha-$CI_COMMIT_SHORT_SHA--results" when: always expire_in: 4 mos paths: - report-junit.xml - report.html - report.csv expose_as: "test-branch-vs-input-passthrough results" reports: junit: - report-junit.xml # --------------------------------------------------------------- # Scheduled jobs on main Loading
apps/decoder.c +2 −0 Original line number Diff line number Diff line Loading @@ -732,7 +732,9 @@ int main( fprintf( stderr, "Failed to get acoustic environment with ID: %d\n\n", aeID ); goto cleanup; } #ifndef FIX_587_DEFAULT_REVERB renderConfig.roomAcoustics.override = true; #endif } /* ISAR frame size is set from command line, not renderer config file. Loading
apps/renderer.c +2 −0 Original line number Diff line number Diff line Loading @@ -1044,7 +1044,9 @@ int main( fprintf( stderr, "Failed to get acoustic environment with ID: %d\n\n", aeID ); exit( -1 ); } #ifndef FIX_587_DEFAULT_REVERB renderConfig.roomAcoustics.override = 1; #endif } /* ISAR frame size is set from command line, not renderer config file. Loading
lib_com/bitstream.c +14 −14 Original line number Diff line number Diff line Loading @@ -1428,7 +1428,6 @@ uint16_t get_indice_1( return st->bit_stream[pos]; } #define WMC_TOOL_SKIP /*-------------------------------------------------------------------* * reset_indices_enc() Loading Loading @@ -1468,6 +1467,7 @@ void reset_indices_dec( return; } /*-------------------------------------------------------------------* * write_indices_to_stream() * Loading Loading @@ -1838,6 +1838,7 @@ void convertBytestreamToSerial( } } /*-------------------------------------------------------------------* * decoder_selectCodec() * Loading Loading @@ -2515,8 +2516,8 @@ void ivas_set_bitstream_pointers( return; } #ifdef DEBUGGING /*-------------------------------------------------------------------* * preview_indices() * Loading Loading @@ -2786,14 +2787,15 @@ ivas_error preview_indices( return error; } #endif #endif /*-------------------------------------------------------------------* * read_indices() * * Read indices from an ITU-T G.192 bitstream to the buffer * Simulate packet losses by inserting frame erasures * Detect SID, NO_DATA, BFI, etc. and set bitstream pointers * Set ivas_total_brate * Note: each bit is represented in bitsream buffer as a uint16_t of value 0 or 1 *-------------------------------------------------------------------*/ /*! r: 1 = reading OK, 0 = problem */ Loading Loading @@ -2838,8 +2840,8 @@ ivas_error read_indices( /* convert the frame length to total bitrate */ total_brate = (int32_t) ( num_bits * FRAMES_PER_SEC ); /* verify that a valid num bits value is present in the G.192 file */ /* only AMRWB, EVS or IVAS bitrates or 0(NO DATA) are allowed in G.192 file frame reading */ /* verify that a valid num bits value is present */ /* only AMRWB, EVS or IVAS bitrates or 0(NO DATA) are allowed */ if ( st_ivas->ivas_format != MONO_FORMAT ) { k = 0; Loading @@ -2858,7 +2860,7 @@ ivas_error read_indices( } else if ( k == SIZE_IVAS_BRATE_TBL ) { return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Error, illegal bitrate (%d) in the G.192 frame ! Exiting ! \n", total_brate ); return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Error, illegal bitrate (%d) detected! Exiting ! \n", total_brate ); } else { Loading @@ -2871,12 +2873,12 @@ ivas_error read_indices( if ( rate2EVSmode( total_brate, NULL ) < 0 ) /* negative value means that a valid rate was not found */ { return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Error, illegal bitrate (%d) in the G.192 frame ! Exiting ! \n", total_brate ); return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Error, illegal bitrate (%d) detected! Exiting ! \n", total_brate ); } } /* G.192 RX DTX handler*/ /* handle SID_FIRST, SID_BAD, SPEECH_LOST, NO_DATA as properly as possible for the ITU-T G.192 format */ /* RX DTX handler*/ /* handle SID_FIRST, SID_BAD, SPEECH_LOST, NO_DATA */ /* (total_brate, bfi , st_CNG) = rx_handler(received frame type, [previous frame type], past CNG state, past core) */ curr_ft_good_sp = 0; curr_ft_bad_sp = 0; Loading Loading @@ -3036,7 +3038,6 @@ ivas_error read_indices( /* GOOD frame */ if ( st_ivas->bfi == 0 || st_ivas->bfi == FRAMEMODE_FUTURE ) { /* GOOD frame - convert ITU-T G.192 words to short values */ st_ivas->hDecoderConfig->ivas_total_brate = total_brate; } Loading @@ -3050,6 +3051,7 @@ ivas_error read_indices( return error; } /*-------------------------------------------------------------------* * get_rfFrameType() * Loading Loading @@ -3467,5 +3469,3 @@ void dtx_read_padding_bits( return; } #undef WMC_TOOL_SKIP
lib_com/common_api_types.h +2 −0 Original line number Diff line number Diff line Loading @@ -312,7 +312,9 @@ typedef enum typedef struct _IVAS_ROOM_ACOUSTICS_CONFIG { #ifndef FIX_587_DEFAULT_REVERB int16_t override; #endif int16_t nBands; /* Number of frequency bands for which reverb properties are provided, integer, range [2..256] */ float pFc_input[IVAS_CLDFB_NO_CHANNELS_MAX]; /* Center frequencies for which following values are provided: */ float pAcoustic_rt60[IVAS_CLDFB_NO_CHANNELS_MAX]; /* - The room's T60 per center frequency */ Loading