Loading .gitignore +75 −0 Original line number Diff line number Diff line Loading @@ -88,3 +88,78 @@ coan_out_* /scripts/mem_analysis_enc_STEREO_sw.csv /scripts/mem_analysis_enc_STEREO_16k4_DTX.csv *.pwv /dcr_ism1 /bwe_clicks_ism1 /BWD_issue /.ipynb_checkpoints /scripts/.ipynb_checkpoints /scripts/wmops_analysis /scripts/wmops_analysis_new /tcx_hq_problem_ism1 /scripts/dly_error_profiles/dly_profile_19_.dat /build.txt /bit.64k /bit.32k /bit /binaural_loudness.ipynb /tmp.txt /syn.wav /syn.ref /syn.64k.0.csv /syn.64k /syn.32k /stvST32c_-stereo_32000_32.bit /split_renderer_config_768_3dof_cldfbpc.txt /split_out_sba_lcld_20ms_out.wav /split_out_sba_lcld_20ms.pkt /split_out_mc_lc3plus_20ms_out.wav /split_out_mc_lc3plus_20ms.pkt /run_ivas_codec.sh /report.html /report-junit.xm /out.wav /ltv48_1ISM.cut14.wav.0.csv /ltv48_1ISM.cut14.pcm /ltv48_1ISM.cut14.dec.pcm.0.csv /ltv48_1ISM.cut14.64k.dec.pcm.0.csv /ltv48_1ISM.cut14.64k.dec.pcm /ltv48_1ISM.cut14.32k.dec.pcm /IvasBuilder.txt /ivas.192 /ism_loudness_stv48_48kHz.md /ism_loudness_stv48_32kHz.md /ism_loudness_sel48_48kHz.md /ism_loudness_old.xlsx /ism_loudness_ltv48_ISM4.md /ism_loudness_ltv48_ISM3.md /ism_loudness_ltv48_ISM2.md /ism_loudness_ltv48_ISM1.md /ism_loudness_ltv48_48kHz.md /ism_loudness.xlsx /ism_loudness.py /HOA2_to_BINAURAL_ROOM_REVERBNone_rend_config_combined_20msNone_0-1000_2-500_1-500.wav /git_blame_string.sh /get_license_table.py /enc_out_mc.pkt /enc_out.pkt /cut_ism.py /scripts/Vlad_mergeNewsletters.py /scripts/Vlad_extract_max_num_ind.py /scripts/tables_obj.txt /scripts/tables_exe.txt /scripts/requirements.txt /scripts/parseNewsletterWmops.py /scripts/output.xlsx /scripts/functions_obj.txt /scripts/functions_exe.txt /scripts/dep_tree.txt /scripts/cmplx_evs_in_ivas.xlsx /scripts/bit /scripts/binaural_loudness.ipynb /scripts/config/Vlad_self_test_ltv.prm /scripts/config/Vlad_self_test.prm /scripts/config/Vlad_ci_linux_ltv.json /scripts/config/Vlad_ci_linux.json /cmake-build /bit.fix /syn .gitlab-ci.yml +6 −18 Original line number Diff line number Diff line Loading @@ -1076,29 +1076,17 @@ check-first-frame-is-sid: script: - *print-common-info - *update-ltv-repo # Temporary fix to test only SID start config files in this job # this rm makes check-for-testvectors only check for the signals we actually need in this test - rm scripts/config/ci_linux_ltv.json scripts/config/ci_linux.json - *check-for-testvectors - cmake . - make -j - exit_code_no_sba=0 - exit_code_hoa=0 - exit_code_foa=0 # run all modes and cut bitstream to start with an SID. Use stereo output to limit runtime, test is only about decoding - ism_md_cmd="--ism_metadata_files /usr/local/ltv/ltvISM1.csv /usr/local/ltv/ltvISM2.csv /usr/local/ltv/ltvISM3.csv /usr/local/ltv/ltvISM4.csv" - modes=$(scripts/runIvasCodec.py -l | grep dtx | grep -vE "FOA|HOA" ) - scripts/runIvasCodec.py -z console -p scripts/config/ci_linux_sidstart_test.json -m $modes -s --bs_length 200 -U 0:20 --oc stereo $ism_md_cmd --timeout 10 || exit_code_no_sba=$? - modes=$(scripts/runIvasCodec.py -l | grep dtx | grep -E "HOA") - scripts/runIvasCodec.py -z console -p scripts/config/ci_linux_sidstart_test.json -m $modes -s --bs_length 100 -U 70:80 --oc stereo --timeout 10 || exit_code_hoa=$? - modes=$(scripts/runIvasCodec.py -l | grep dtx | grep "FOA") - scripts/runIvasCodec.py -z console -p scripts/config/ci_linux_sidstart_test.json -m $modes -s --bs_length 100 -U 75:110 --oc stereo --timeout 10 || exit_code_foa=$? - bash ci/run-first-frame-is-sid-test.sh - if [ $exit_code_no_sba -ne 0 ] || [ $exit_code_hoa -ne 0 ] || [ $exit_code_foa -ne 0 ]; then exit 1; fi artifacts: paths: - out/logs - logs_enc - logs_dec_msan - logs_dec_asan - logs_dec_usan when: always name: "$CI_JOB_NAME--$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--sidstart" expose_as: "logs-sidstart" Loading CMakeLists.txt +2 −2 Original line number Diff line number Diff line Loading @@ -74,14 +74,14 @@ if(UNIX) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address") elseif("${CLANG}" MATCHES "3" OR "${CLANG}" MATCHES "usan") # NOTE: keep in sync with list in Makefile set(USAN_CHECKS_ENABLE set(USAN_CHECKS_LIST undefined # Default checks # Extra checks float-divide-by-zero implicit-conversion local-bounds ) list(JOIN USAN_CHECKS_ENABLE "," USAN_CHECKS_ENABLE) string(JOIN , USAN_CHECKS_ENABLE ${USAN_CHECKS_LIST}) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=${USAN_CHECKS_ENABLE} -fsanitize-recover=${USAN_CHECKS_ENABLE}") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=${USAN_CHECKS_ENABLE} -fsanitize-recover=${USAN_CHECKS_ENABLE}") Loading apps/decoder.c +9 −18 Original line number Diff line number Diff line Loading @@ -67,8 +67,10 @@ static #endif int32_t frame = 0; /* Counter of frames */ #ifdef DEBUGGING #define MIN_NUM_BITS_ACTIVE_FRAME 56 #define NUM_BITS_SID_IVAS_5K2 104 #endif #define MAX_OUTPUT_PCM_BUFFER_SIZE ( ( IVAS_MAX_OUTPUT_CHANNELS + IVAS_MAX_NUM_OBJECTS ) * IVAS_MAX_FRAME_SIZE ) #define ORIENT_TRK_NONE ( 0 ) Loading @@ -77,12 +79,7 @@ static #define ORIENT_TRK_REF_VEC ( 3 ) #define ORIENT_TRK_REF_VEC_LEV ( 4 ) #ifdef VARIABLE_SPEED_DECODING #define VARIABLE_SPEED_FETCH_FRAMESIZE_MS 20 #endif #define JBM_FRONTEND_FETCH_FRAMESIZE_MS 20 #define HEADROTATION_FETCH_FRAMESIZE_MS 5 #define DEFAULT_FETCH_FRAMESIZE_MS 20 /*------------------------------------------------------------------------------------------* Loading Loading @@ -206,9 +203,7 @@ int main( #ifdef DEBUG_SBA_AUDIO_DUMP int16_t numOutChannels, numTransportChannels, pca_ingest_channels; #endif #endif #ifdef DEBUGGING dbgargs( &argc, argv ); #endif #ifdef WMOPS Loading Loading @@ -1257,7 +1252,6 @@ static bool parseCmdlIVAS_dec( } #endif #endif /* #ifdef DEBUGGING */ else if ( strcmp( argv_to_upper, "-MIME" ) == 0 ) { arg->inputFormat = IVAS_DEC_INPUT_FORMAT_MIME; Loading @@ -1282,6 +1276,7 @@ static bool parseCmdlIVAS_dec( { int32_t tmp; i++; if ( i < argc - 3 ) { if ( !is_digits_only( argv[i] ) ) Loading Loading @@ -1313,7 +1308,6 @@ static bool parseCmdlIVAS_dec( } else if ( strcmp( argv_to_upper, "-OTR" ) == 0 ) { strncpy( argv_to_upper, argv[i + 1], sizeof( argv_to_upper ) - 1 ); argv_to_upper[sizeof( argv_to_upper ) - 1] = '\0'; to_upper( argv_to_upper ); Loading Loading @@ -1964,7 +1958,6 @@ static ivas_error initOnFirstGoodFrame( } else { if ( *pRemainingDelayNumSamples < *numOutSamples ) { if ( ( error = AudioFileWriter_write( *ppAfWriter, zeroBuf, *numOutSamples * *pNumOutChannels - ( *pRemainingDelayNumSamples * *pNumOutChannels ) ) ) != IVAS_ERR_OK ) Loading Loading @@ -2153,6 +2146,7 @@ static ivas_error decodeG192( fprintf( stderr, "\nError in IVAS_DEC_is_split_rendering_coded_out, code: %d\n", error ); return error; } IVAS_RENDER_CONFIG_DATA renderConfig; RenderConfigReader *renderConfigReader = NULL; Loading Loading @@ -2461,9 +2455,6 @@ static ivas_error decodeG192( fprintf( stderr, "\nError in IVAS_DEC_GetSplitBinauralBitstream: %s\n", IVAS_DEC_GetErrorMessage( error ) ); goto cleanup; } nSamplesRendered += nSamplesRendered_loop; nSamplesToRender -= nSamplesRendered_loop; } else { Loading @@ -2472,9 +2463,10 @@ static ivas_error decodeG192( fprintf( stderr, "\nError in IVAS_DEC_GetSamples: %s\n", IVAS_DEC_GetErrorMessage( error ) ); goto cleanup; } } nSamplesRendered += nSamplesRendered_loop; nSamplesToRender -= nSamplesRendered_loop; } if ( needNewFrame ) { Loading Loading @@ -3424,7 +3416,6 @@ static ivas_error decodeVoIP( #endif } int16_t nSamplesFlushed = 0; /* flush remaining audio */ Loading ci/complexity_measurements/check_for_changes.py 0 → 100644 +45 −0 Original line number Diff line number Diff line import argparse import csv import sys import numpy as np THRESH = 0.01 COLS = [ [3, 5, 7, 9], # wmops_all [3,5,7,8,10,12,13,15,17], # ram_all [3,5,7,9,11,13,15,17,19], # rom_all ] def main(args): linewise_logfiles = [args.wmops_logfile, args.ram_logfile, args.rom_logfile] changes_found_linewise = any([check_linewise_logfile(f, c) for f, c in zip(linewise_logfiles, COLS)]) if changes_found_linewise: print("Global max of WMOPS, RAM or ROM changed") return int(changes_found_linewise) def check_linewise_logfile(filepath, cols): with open(filepath) as f: contents = [line for line in csv.reader(f, delimiter=" ")] curr = contents[-1] prev = contents[-2] change_ratios = [abs(float(curr[i]) / float(prev[i]) - 1) > THRESH for i in cols] changes_found = any(change_ratios) return changes_found if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument("wmops_logfile") parser.add_argument("ram_logfile") parser.add_argument("rom_logfile") args = parser.parse_args() sys.exit(main(args)) Loading
.gitignore +75 −0 Original line number Diff line number Diff line Loading @@ -88,3 +88,78 @@ coan_out_* /scripts/mem_analysis_enc_STEREO_sw.csv /scripts/mem_analysis_enc_STEREO_16k4_DTX.csv *.pwv /dcr_ism1 /bwe_clicks_ism1 /BWD_issue /.ipynb_checkpoints /scripts/.ipynb_checkpoints /scripts/wmops_analysis /scripts/wmops_analysis_new /tcx_hq_problem_ism1 /scripts/dly_error_profiles/dly_profile_19_.dat /build.txt /bit.64k /bit.32k /bit /binaural_loudness.ipynb /tmp.txt /syn.wav /syn.ref /syn.64k.0.csv /syn.64k /syn.32k /stvST32c_-stereo_32000_32.bit /split_renderer_config_768_3dof_cldfbpc.txt /split_out_sba_lcld_20ms_out.wav /split_out_sba_lcld_20ms.pkt /split_out_mc_lc3plus_20ms_out.wav /split_out_mc_lc3plus_20ms.pkt /run_ivas_codec.sh /report.html /report-junit.xm /out.wav /ltv48_1ISM.cut14.wav.0.csv /ltv48_1ISM.cut14.pcm /ltv48_1ISM.cut14.dec.pcm.0.csv /ltv48_1ISM.cut14.64k.dec.pcm.0.csv /ltv48_1ISM.cut14.64k.dec.pcm /ltv48_1ISM.cut14.32k.dec.pcm /IvasBuilder.txt /ivas.192 /ism_loudness_stv48_48kHz.md /ism_loudness_stv48_32kHz.md /ism_loudness_sel48_48kHz.md /ism_loudness_old.xlsx /ism_loudness_ltv48_ISM4.md /ism_loudness_ltv48_ISM3.md /ism_loudness_ltv48_ISM2.md /ism_loudness_ltv48_ISM1.md /ism_loudness_ltv48_48kHz.md /ism_loudness.xlsx /ism_loudness.py /HOA2_to_BINAURAL_ROOM_REVERBNone_rend_config_combined_20msNone_0-1000_2-500_1-500.wav /git_blame_string.sh /get_license_table.py /enc_out_mc.pkt /enc_out.pkt /cut_ism.py /scripts/Vlad_mergeNewsletters.py /scripts/Vlad_extract_max_num_ind.py /scripts/tables_obj.txt /scripts/tables_exe.txt /scripts/requirements.txt /scripts/parseNewsletterWmops.py /scripts/output.xlsx /scripts/functions_obj.txt /scripts/functions_exe.txt /scripts/dep_tree.txt /scripts/cmplx_evs_in_ivas.xlsx /scripts/bit /scripts/binaural_loudness.ipynb /scripts/config/Vlad_self_test_ltv.prm /scripts/config/Vlad_self_test.prm /scripts/config/Vlad_ci_linux_ltv.json /scripts/config/Vlad_ci_linux.json /cmake-build /bit.fix /syn
.gitlab-ci.yml +6 −18 Original line number Diff line number Diff line Loading @@ -1076,29 +1076,17 @@ check-first-frame-is-sid: script: - *print-common-info - *update-ltv-repo # Temporary fix to test only SID start config files in this job # this rm makes check-for-testvectors only check for the signals we actually need in this test - rm scripts/config/ci_linux_ltv.json scripts/config/ci_linux.json - *check-for-testvectors - cmake . - make -j - exit_code_no_sba=0 - exit_code_hoa=0 - exit_code_foa=0 # run all modes and cut bitstream to start with an SID. Use stereo output to limit runtime, test is only about decoding - ism_md_cmd="--ism_metadata_files /usr/local/ltv/ltvISM1.csv /usr/local/ltv/ltvISM2.csv /usr/local/ltv/ltvISM3.csv /usr/local/ltv/ltvISM4.csv" - modes=$(scripts/runIvasCodec.py -l | grep dtx | grep -vE "FOA|HOA" ) - scripts/runIvasCodec.py -z console -p scripts/config/ci_linux_sidstart_test.json -m $modes -s --bs_length 200 -U 0:20 --oc stereo $ism_md_cmd --timeout 10 || exit_code_no_sba=$? - modes=$(scripts/runIvasCodec.py -l | grep dtx | grep -E "HOA") - scripts/runIvasCodec.py -z console -p scripts/config/ci_linux_sidstart_test.json -m $modes -s --bs_length 100 -U 70:80 --oc stereo --timeout 10 || exit_code_hoa=$? - modes=$(scripts/runIvasCodec.py -l | grep dtx | grep "FOA") - scripts/runIvasCodec.py -z console -p scripts/config/ci_linux_sidstart_test.json -m $modes -s --bs_length 100 -U 75:110 --oc stereo --timeout 10 || exit_code_foa=$? - bash ci/run-first-frame-is-sid-test.sh - if [ $exit_code_no_sba -ne 0 ] || [ $exit_code_hoa -ne 0 ] || [ $exit_code_foa -ne 0 ]; then exit 1; fi artifacts: paths: - out/logs - logs_enc - logs_dec_msan - logs_dec_asan - logs_dec_usan when: always name: "$CI_JOB_NAME--$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--sidstart" expose_as: "logs-sidstart" Loading
CMakeLists.txt +2 −2 Original line number Diff line number Diff line Loading @@ -74,14 +74,14 @@ if(UNIX) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address") elseif("${CLANG}" MATCHES "3" OR "${CLANG}" MATCHES "usan") # NOTE: keep in sync with list in Makefile set(USAN_CHECKS_ENABLE set(USAN_CHECKS_LIST undefined # Default checks # Extra checks float-divide-by-zero implicit-conversion local-bounds ) list(JOIN USAN_CHECKS_ENABLE "," USAN_CHECKS_ENABLE) string(JOIN , USAN_CHECKS_ENABLE ${USAN_CHECKS_LIST}) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=${USAN_CHECKS_ENABLE} -fsanitize-recover=${USAN_CHECKS_ENABLE}") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=${USAN_CHECKS_ENABLE} -fsanitize-recover=${USAN_CHECKS_ENABLE}") Loading
apps/decoder.c +9 −18 Original line number Diff line number Diff line Loading @@ -67,8 +67,10 @@ static #endif int32_t frame = 0; /* Counter of frames */ #ifdef DEBUGGING #define MIN_NUM_BITS_ACTIVE_FRAME 56 #define NUM_BITS_SID_IVAS_5K2 104 #endif #define MAX_OUTPUT_PCM_BUFFER_SIZE ( ( IVAS_MAX_OUTPUT_CHANNELS + IVAS_MAX_NUM_OBJECTS ) * IVAS_MAX_FRAME_SIZE ) #define ORIENT_TRK_NONE ( 0 ) Loading @@ -77,12 +79,7 @@ static #define ORIENT_TRK_REF_VEC ( 3 ) #define ORIENT_TRK_REF_VEC_LEV ( 4 ) #ifdef VARIABLE_SPEED_DECODING #define VARIABLE_SPEED_FETCH_FRAMESIZE_MS 20 #endif #define JBM_FRONTEND_FETCH_FRAMESIZE_MS 20 #define HEADROTATION_FETCH_FRAMESIZE_MS 5 #define DEFAULT_FETCH_FRAMESIZE_MS 20 /*------------------------------------------------------------------------------------------* Loading Loading @@ -206,9 +203,7 @@ int main( #ifdef DEBUG_SBA_AUDIO_DUMP int16_t numOutChannels, numTransportChannels, pca_ingest_channels; #endif #endif #ifdef DEBUGGING dbgargs( &argc, argv ); #endif #ifdef WMOPS Loading Loading @@ -1257,7 +1252,6 @@ static bool parseCmdlIVAS_dec( } #endif #endif /* #ifdef DEBUGGING */ else if ( strcmp( argv_to_upper, "-MIME" ) == 0 ) { arg->inputFormat = IVAS_DEC_INPUT_FORMAT_MIME; Loading @@ -1282,6 +1276,7 @@ static bool parseCmdlIVAS_dec( { int32_t tmp; i++; if ( i < argc - 3 ) { if ( !is_digits_only( argv[i] ) ) Loading Loading @@ -1313,7 +1308,6 @@ static bool parseCmdlIVAS_dec( } else if ( strcmp( argv_to_upper, "-OTR" ) == 0 ) { strncpy( argv_to_upper, argv[i + 1], sizeof( argv_to_upper ) - 1 ); argv_to_upper[sizeof( argv_to_upper ) - 1] = '\0'; to_upper( argv_to_upper ); Loading Loading @@ -1964,7 +1958,6 @@ static ivas_error initOnFirstGoodFrame( } else { if ( *pRemainingDelayNumSamples < *numOutSamples ) { if ( ( error = AudioFileWriter_write( *ppAfWriter, zeroBuf, *numOutSamples * *pNumOutChannels - ( *pRemainingDelayNumSamples * *pNumOutChannels ) ) ) != IVAS_ERR_OK ) Loading Loading @@ -2153,6 +2146,7 @@ static ivas_error decodeG192( fprintf( stderr, "\nError in IVAS_DEC_is_split_rendering_coded_out, code: %d\n", error ); return error; } IVAS_RENDER_CONFIG_DATA renderConfig; RenderConfigReader *renderConfigReader = NULL; Loading Loading @@ -2461,9 +2455,6 @@ static ivas_error decodeG192( fprintf( stderr, "\nError in IVAS_DEC_GetSplitBinauralBitstream: %s\n", IVAS_DEC_GetErrorMessage( error ) ); goto cleanup; } nSamplesRendered += nSamplesRendered_loop; nSamplesToRender -= nSamplesRendered_loop; } else { Loading @@ -2472,9 +2463,10 @@ static ivas_error decodeG192( fprintf( stderr, "\nError in IVAS_DEC_GetSamples: %s\n", IVAS_DEC_GetErrorMessage( error ) ); goto cleanup; } } nSamplesRendered += nSamplesRendered_loop; nSamplesToRender -= nSamplesRendered_loop; } if ( needNewFrame ) { Loading Loading @@ -3424,7 +3416,6 @@ static ivas_error decodeVoIP( #endif } int16_t nSamplesFlushed = 0; /* flush remaining audio */ Loading
ci/complexity_measurements/check_for_changes.py 0 → 100644 +45 −0 Original line number Diff line number Diff line import argparse import csv import sys import numpy as np THRESH = 0.01 COLS = [ [3, 5, 7, 9], # wmops_all [3,5,7,8,10,12,13,15,17], # ram_all [3,5,7,9,11,13,15,17,19], # rom_all ] def main(args): linewise_logfiles = [args.wmops_logfile, args.ram_logfile, args.rom_logfile] changes_found_linewise = any([check_linewise_logfile(f, c) for f, c in zip(linewise_logfiles, COLS)]) if changes_found_linewise: print("Global max of WMOPS, RAM or ROM changed") return int(changes_found_linewise) def check_linewise_logfile(filepath, cols): with open(filepath) as f: contents = [line for line in csv.reader(f, delimiter=" ")] curr = contents[-1] prev = contents[-2] change_ratios = [abs(float(curr[i]) / float(prev[i]) - 1) > THRESH for i in cols] changes_found = any(change_ratios) return changes_found if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument("wmops_logfile") parser.add_argument("ram_logfile") parser.add_argument("rom_logfile") args = parser.parse_args() sys.exit(main(args))