Loading .gitlab-ci.yml +38 −17 Original line number Diff line number Diff line Loading @@ -287,6 +287,7 @@ msan-on-merge-request-linux: needs: ["build-codec-sanitizers-linux"] script: - *print-common-info - python3 ci/disable_ram_counting.py - make clean - make -j CLANG=1 - python3 scripts/self_test.py --create | tee test_output.txt Loading @@ -308,6 +309,7 @@ asan-on-merge-request-linux: needs: ["build-codec-sanitizers-linux"] script: - *print-common-info - python3 ci/disable_ram_counting.py - make clean - make -j CLANG=2 - python3 scripts/self_test.py --create | tee test_output.txt Loading @@ -331,7 +333,7 @@ external-renderer-make-pytest: - make -j IVAS_rend - make -j unittests - make -j --directory scripts/td_object_renderer/object_renderer_standalone - python3 -m pytest -q --log-level ERROR -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py - python3 -m pytest -q -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" when: always Loading @@ -353,7 +355,8 @@ external-renderer-cmake-asan-pytest: - python3 ci/disable_ram_counting.py - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=asan -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true - cmake --build cmake-build -- -j - python3 -m pytest -q --log-level ERROR -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py - python3 -m pytest -q -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" when: always Loading @@ -375,7 +378,8 @@ external-renderer-cmake-msan-pytest: - python3 ci/disable_ram_counting.py - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=msan -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true - cmake --build cmake-build -- -j - python3 -m pytest -q --log-level ERROR -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py - python3 -m pytest -q -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" when: always Loading @@ -397,7 +401,7 @@ external-renderer-cmake-msan-pytest: script: - cmake -B cmake-build -G "Unix Makefiles" -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true -DDEC_TO_REND_FLOAT_DUMP=true - cmake --build cmake-build -- -j - python3 -m pytest -q --log-level ERROR -n 1 -rA --junit-xml=report-junit.xml tests/renderer/test_renderer_vs_decoder.py - python3 -m pytest -q -n 1 -rA --junit-xml=report-junit.xml tests/renderer/test_renderer_vs_decoder.py artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" when: always Loading Loading @@ -963,6 +967,7 @@ coverage-test-on-main-scheduled: - sed -i "s/IVAS FORMAT/IVAS $in_format to $out_format/g" ${public_dir}/index.html # do separately here to avoid overwrite complaints by mv - mv -f ci/complexity_measurements/style.css ${public_dir}/ - ls $public_dir .complexity-template: extends: Loading Loading @@ -1075,6 +1080,12 @@ complexity-StereoDmxEVS-stereo-in-mono-out: # Other jobs # --------------------------------------------------------------- # helper for pages job .unzip-or-cat: &unzip-or-cat - unzip -t $ARTIFACTS >> /dev/null - if [ $? -eq 0 ]; then unzip -o $ARTIFACTS; rm $ARTIFACTS; else cat $ARTIFACTS; rm $ARTIFACTS; fi # job that sets up gitlab pages website # is run on a separate schedule and collects artifacts from other jobs (currently # only the complexity measurements) multiple times a day Loading @@ -1091,39 +1102,49 @@ pages: - branch=$CI_COMMIT_REF_NAME - mkdir public - ARTIFACTS=artifacts.zip ### fetch artifacts from latest run of complexity jobs - job_id=$(python3 ci/get_id_of_last_job_occurence.py $branch complexity-stereo-in-stereo-out) - echo $job_id - echo "$API_URL_BASE/$job_id/artifacts" - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output artifacts_comp_stereo.zip - cat artifacts_comp_stereo.zip - unzip -o artifacts_comp_stereo.zip - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output $ARTIFACTS - *unzip-or-cat - mv complexity-stereo-in-stereo-out-public ./public/ - job_id=$(python3 ci/get_id_of_last_job_occurence.py $branch complexity-ism-in-binaural-out) - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output artifacts_comp_ism.zip - unzip -o artifacts_comp_ism.zip - echo $job_id - echo "$API_URL_BASE/$job_id/artifacts" - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output $ARTIFACTS - *unzip-or-cat - mv complexity-ism-in-binaural-out-public ./public/ - job_id=$(python3 ci/get_id_of_last_job_occurence.py $branch complexity-sba-hoa3-in-hoa3-out) - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output artifacts_comp_sba.zip - unzip -o artifacts_comp_sba.zip - echo $job_id - echo "$API_URL_BASE/$job_id/artifacts" - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output $ARTIFACTS - *unzip-or-cat - mv complexity-sba-hoa3-in-hoa3-out-public ./public/ - job_id=$(python3 ci/get_id_of_last_job_occurence.py $branch complexity-mc-in-7_1_4-out) - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output artifacts_comp_mc.zip - unzip -o artifacts_comp_mc.zip - echo $job_id - echo "$API_URL_BASE/$job_id/artifacts" - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output $ARTIFACTS - *unzip-or-cat - mv complexity-mc-in-7_1_4-out-public ./public/ - job_id=$(python3 ci/get_id_of_last_job_occurence.py $branch complexity-masa-in-7_1_4-out) - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output artifacts_comp_masa.zip - unzip -o artifacts_comp_masa.zip - echo $job_id - echo "$API_URL_BASE/$job_id/artifacts" - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output $ARTIFACTS - *unzip-or-cat - mv complexity-masa-in-7_1_4-out-public ./public/ - job_id=$(python3 ci/get_id_of_last_job_occurence.py $branch complexity-StereoDmxEVS-stereo-in-mono-out) - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output artifacts_comp_StereoDmxEVS.zip - unzip -o artifacts_comp_StereoDmxEVS.zip - echo $job_id - echo "$API_URL_BASE/$job_id/artifacts" - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output $ARTIFACTS - *unzip-or-cat - mv complexity-StereoDmxEVS-stereo-in-mono-out-public ./public/ - cp ci/index-pages.html public/index.html Loading apps/decoder.c +2 −14 Original line number Diff line number Diff line Loading @@ -71,15 +71,7 @@ static int32_t frame = 0; /* Counter of frames */ #define MIN_NUM_BITS_ACTIVE_FRAME 56 #ifdef REMOVE_SID_HARM_LEFTOVERS #define NUM_BITS_SID_IVAS_5K2 104 #else #define NUM_BITS_SID_IVAS_4K4 88 #define NUM_BITS_SID_IVAS_7K8 156 #define NUM_BITS_SID_IVAS_9K3 186 #define NUM_BITS_SID_IVAS_10K2 204 #endif #define META_LINE_LENGTH 200 #define MAX_FRAME_SIZE ( 48000 / 50 ) #define MAX_NUM_OUTPUT_CHANNELS 16 #define MAX_OUTPUT_PCM_BUFFER_SIZE ( MAX_NUM_OUTPUT_CHANNELS * MAX_FRAME_SIZE ) Loading Loading @@ -354,11 +346,7 @@ int main( fprintf( stderr, "\nError: input bitstream file %s couldn't be read\n\n", arg.inputBitstreamFilename ); goto cleanup; } #ifdef REMOVE_SID_HARM_LEFTOVERS } while ( bfi || num_bits < MIN_NUM_BITS_ACTIVE_FRAME || num_bits == NUM_BITS_SID_IVAS_5K2 ); #else } while ( bfi || num_bits < MIN_NUM_BITS_ACTIVE_FRAME || num_bits == NUM_BITS_SID_IVAS_4K4 || num_bits == NUM_BITS_SID_IVAS_7K8 || num_bits == NUM_BITS_SID_IVAS_9K3 || num_bits == NUM_BITS_SID_IVAS_10K2 ); #endif BS_Reader_Rewind( hBsReader ); Loading apps/encoder.c +26 −10 Original line number Diff line number Diff line Loading @@ -1273,8 +1273,15 @@ static bool parseCmdlIVAS_enc( arg->inputFormat = IVAS_ENC_INPUT_ISM; i++; if ( i < argc - 5 ) if ( i < argc - 4 ) { if ( !is_digits_only( argv[i] ) ) { fprintf( stderr, "Error: Number of ISM channels must be an integer number!\n\n" ); usage_enc(); return false; } if ( sscanf( argv[i], "%d", &tmp ) > 0 ) { i++; Loading @@ -1286,6 +1293,12 @@ static bool parseCmdlIVAS_enc( usage_enc(); return false; } else if ( tmp > IVAS_MAX_NUM_OBJECTS ) { fprintf( stderr, "Error: Too high number of ISM channels specified!\n\n" ); usage_enc(); return false; } else { arg->inputFormatConfig.ism.numObjects = (int16_t) tmp; Loading Loading @@ -1317,7 +1330,7 @@ static bool parseCmdlIVAS_enc( } else { fprintf( stderr, "Error: not enough arguments\n\n" ); fprintf( stderr, "Error: not enough metadata arguments specified!\n\n" ); usage_enc(); return false; } Loading @@ -1329,17 +1342,14 @@ static bool parseCmdlIVAS_enc( arg->inputFormat = IVAS_ENC_INPUT_SBA; /* SBA configuration */ if ( i < argc - 4 ) { if ( sscanf( argv[i], "%d", &tmp ) > 0 ) if ( i < argc - 4 && is_number( argv[i] ) && sscanf( argv[i], "%d", &tmp ) > 0 ) { i++; } } else { tmp = -1; /* this is to avoid a compilation warning */ fprintf( stderr, "Error: SBA order not specified!\n\n" ); fprintf( stderr, "Error: SBA order must be specified, expecting a number!\n\n" ); usage_enc(); return false; } Loading Loading @@ -1371,6 +1381,13 @@ static bool parseCmdlIVAS_enc( if ( i < argc - 4 ) { if ( !is_digits_only( argv[i] ) ) { fprintf( stderr, "Error: Number of MASA channels must be an integer number!\n\n" ); usage_enc(); return false; } if ( sscanf( argv[i], "%d", &tmp ) > 0 ) { i++; Loading @@ -1385,7 +1402,7 @@ static bool parseCmdlIVAS_enc( arg->inputFormatConfig.masaVariant = IVAS_ENC_MASA_2CH; break; default: fprintf( stderr, "Error: MASA channels must for the moment be 1 or 2.\n\n" ); fprintf( stderr, "Error: MASA channels must be 1 or 2.\n\n" ); usage_enc(); return false; } Loading @@ -1410,7 +1427,6 @@ static bool parseCmdlIVAS_enc( if ( i < argc - 4 ) { if ( strcmp( to_upper( argv[i] ), "5_1" ) == 0 ) { arg->inputFormatConfig.mcLayout = IVAS_ENC_MC_5_1; Loading apps/renderer.c +17 −44 Original line number Diff line number Diff line Loading @@ -31,7 +31,6 @@ *******************************************************************************************************/ #include "options.h" #include "debug.h" #include "audio_file_reader.h" #include "audio_file_writer.h" #include "cmdl_tools.h" Loading @@ -49,6 +48,9 @@ #include "PROM_Size_lib_rend.h" #include "wmops.h" #endif #ifdef DEBUGGING #include "debug.h" #endif #ifdef RAM_COUNTING_TOOL #include "mem_count.h" #endif Loading @@ -60,7 +62,6 @@ #include <stdio.h> #include <string.h> #ifdef EXT_RENDERER #ifndef count_malloc #ifdef RAM_COUNTING_TOOL #define count_malloc( n1 ) MALLOC_FCT_CALL( n1 ) Loading Loading @@ -424,12 +425,8 @@ static int16_t getTotalNumInChannels( IVAS_REND_HANDLE hIvasRend, IVAS_REND_InputId mcIds[RENDERER_MAX_MC_INPUTS], IVAS_REND_InputId ismIds[RENDERER_MAX_ISM_INPUTS], IVAS_REND_InputId sbaIds[RENDERER_MAX_SBA_INPUTS] #ifdef NOKIA_MASA_EXTERNAL_RENDERER , IVAS_REND_InputId masaIds[RENDERER_MAX_MASA_INPUTS] #endif ) IVAS_REND_InputId sbaIds[RENDERER_MAX_SBA_INPUTS], IVAS_REND_InputId masaIds[RENDERER_MAX_MASA_INPUTS] ) { int16_t totalNumInChannels = 0; int16_t i, numInputChannels; Loading Loading @@ -484,7 +481,6 @@ static int16_t getTotalNumInChannels( totalNumInChannels += numInputChannels; } #ifdef NOKIA_MASA_EXTERNAL_RENDERER for ( i = 0; i < RENDERER_MAX_MASA_INPUTS; ++i ) { if ( masaIds[i] == 0 ) Loading @@ -500,7 +496,6 @@ static int16_t getTotalNumInChannels( } totalNumInChannels += numInputChannels; } #endif return totalNumInChannels; } Loading Loading @@ -674,9 +669,7 @@ int main( IVAS_REND_InputId mcIds[RENDERER_MAX_MC_INPUTS] = { 0 }; IVAS_REND_InputId ismIds[RENDERER_MAX_ISM_INPUTS] = { 0 }; IVAS_REND_InputId sbaIds[RENDERER_MAX_SBA_INPUTS] = { 0 }; #ifdef NOKIA_MASA_EXTERNAL_RENDERER IVAS_REND_InputId masaIds[RENDERER_MAX_MASA_INPUTS] = { 0 }; #endif if ( ( error = IVAS_REND_Open( &hIvasRend, args.sampleRate, args.outConfig.audioConfig ) ) != IVAS_ERR_OK ) { Loading Loading @@ -785,7 +778,6 @@ int main( } } #ifdef NOKIA_MASA_EXTERNAL_RENDERER for ( i = 0; i < args.inConfig.numMasaBuses; ++i ) { if ( ( error = IVAS_REND_AddInput( hIvasRend, args.inConfig.masaBuses[i].audioConfig, &masaIds[i] ) ) != IVAS_ERR_OK ) Loading @@ -800,13 +792,8 @@ int main( exit( -1 ); } } #endif #ifdef NOKIA_MASA_EXTERNAL_RENDERER const int16_t totalNumInChannels = getTotalNumInChannels( hIvasRend, mcIds, ismIds, sbaIds, masaIds ); #else const int16_t totalNumInChannels = getTotalNumInChannels( hIvasRend, mcIds, ismIds, sbaIds ); #endif if ( AudioFileReader_getNumChannels( audioReader ) != 0 /* If input file is raw PCM, audio reader has no info about number of channels */ && totalNumInChannels != AudioFileReader_getNumChannels( audioReader ) ) Loading Loading @@ -903,18 +890,6 @@ int main( } #endif #ifndef NOKIA_MASA_EXTERNAL_RENDERER for ( i = 0; i < RENDERER_MAX_MASA_INPUTS; ++i ) { if ( masaReaders[i] != NULL ) { MasaFileReader_readNextFrame( masaReaders[i] ); /* TODO: Feed MASA metadata here once MASA inputs are supported. For now avoid unused var warning */ (void) hMasaMetadata; } } #endif ObjectPositionBuffer mtdBuffer; IsmPositionProvider_getNextFrame( positionProvider, &mtdBuffer ); Loading Loading @@ -980,7 +955,6 @@ int main( } } #ifdef NOKIA_MASA_EXTERNAL_RENDERER for ( i = 0; i < args.inConfig.numMasaBuses; ++i ) { if ( ( error = IVAS_REND_GetInputNumChannels( hIvasRend, masaIds[i], &numChannels ) ) != IVAS_ERR_OK ) Loading Loading @@ -1008,7 +982,6 @@ int main( } } } #endif IVAS_REND_GetSamples( hIvasRend, outBuffer ); Loading Loading @@ -2459,6 +2432,7 @@ static void convertOutputBuffer( int16_t *intBuffer ) { int16_t chnl, smpl, i; float temp; i = 0; Loading @@ -2466,7 +2440,17 @@ static void convertOutputBuffer( { for ( chnl = 0; chnl < numChannels; ++chnl ) { intBuffer[i] = (int16_t) roundf( floatBuffer[chnl * numSamplesPerChannel + smpl] ); temp = floatBuffer[chnl * numSamplesPerChannel + smpl]; temp = (float) floor( temp + 0.5f ); if ( temp > MAX16B_FLT ) { temp = MAX16B_FLT; } else if ( temp < MIN16B_FLT ) { temp = MIN16B_FLT; } intBuffer[i] = (int16_t) temp; ++i; } Loading @@ -2474,14 +2458,3 @@ static void convertOutputBuffer( return; } #else int main( int argc, char **argv ) { (void) argc; (void) argv; fprintf( stderr, "Enable EXT_RENDERER in options.h to use the external renderer.\n" ); return 0; } #endif ci/run_scheduled_sanitizer_test.py +9 −5 Original line number Diff line number Diff line Loading @@ -115,7 +115,7 @@ def run_check(modes: list, out_formats: list, tests: list, run_fec: bool = True) ) ) with open(CONSOLE_OUT_FILE, "a") as f: with open(CONSOLE_OUT_FILE, "w") as f: proc = subprocess.Popen( cmd_no_fec, stdout=subprocess.PIPE, stderr=subprocess.PIPE ) Loading Loading @@ -174,9 +174,13 @@ def run_check(modes: list, out_formats: list, tests: list, run_fec: bool = True) ) ) proc = subprocess.Popen(cmd_fec, stdout=subprocess.PIPE, stderr=subprocess.PIPE) with open(CONSOLE_OUT_FILE, "a") as f: proc = subprocess.Popen( cmd_fec, stdout=subprocess.PIPE, stderr=subprocess.PIPE ) for c in iter(lambda: proc.stdout.read(1), b""): sys.stdout.buffer.write(c) f.write(c.decode("utf8")) proc.wait() returncode_fec = proc.returncode Loading Loading
.gitlab-ci.yml +38 −17 Original line number Diff line number Diff line Loading @@ -287,6 +287,7 @@ msan-on-merge-request-linux: needs: ["build-codec-sanitizers-linux"] script: - *print-common-info - python3 ci/disable_ram_counting.py - make clean - make -j CLANG=1 - python3 scripts/self_test.py --create | tee test_output.txt Loading @@ -308,6 +309,7 @@ asan-on-merge-request-linux: needs: ["build-codec-sanitizers-linux"] script: - *print-common-info - python3 ci/disable_ram_counting.py - make clean - make -j CLANG=2 - python3 scripts/self_test.py --create | tee test_output.txt Loading @@ -331,7 +333,7 @@ external-renderer-make-pytest: - make -j IVAS_rend - make -j unittests - make -j --directory scripts/td_object_renderer/object_renderer_standalone - python3 -m pytest -q --log-level ERROR -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py - python3 -m pytest -q -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" when: always Loading @@ -353,7 +355,8 @@ external-renderer-cmake-asan-pytest: - python3 ci/disable_ram_counting.py - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=asan -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true - cmake --build cmake-build -- -j - python3 -m pytest -q --log-level ERROR -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py - python3 -m pytest -q -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" when: always Loading @@ -375,7 +378,8 @@ external-renderer-cmake-msan-pytest: - python3 ci/disable_ram_counting.py - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=msan -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true - cmake --build cmake-build -- -j - python3 -m pytest -q --log-level ERROR -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py - python3 -m pytest -q -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" when: always Loading @@ -397,7 +401,7 @@ external-renderer-cmake-msan-pytest: script: - cmake -B cmake-build -G "Unix Makefiles" -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true -DDEC_TO_REND_FLOAT_DUMP=true - cmake --build cmake-build -- -j - python3 -m pytest -q --log-level ERROR -n 1 -rA --junit-xml=report-junit.xml tests/renderer/test_renderer_vs_decoder.py - python3 -m pytest -q -n 1 -rA --junit-xml=report-junit.xml tests/renderer/test_renderer_vs_decoder.py artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" when: always Loading Loading @@ -963,6 +967,7 @@ coverage-test-on-main-scheduled: - sed -i "s/IVAS FORMAT/IVAS $in_format to $out_format/g" ${public_dir}/index.html # do separately here to avoid overwrite complaints by mv - mv -f ci/complexity_measurements/style.css ${public_dir}/ - ls $public_dir .complexity-template: extends: Loading Loading @@ -1075,6 +1080,12 @@ complexity-StereoDmxEVS-stereo-in-mono-out: # Other jobs # --------------------------------------------------------------- # helper for pages job .unzip-or-cat: &unzip-or-cat - unzip -t $ARTIFACTS >> /dev/null - if [ $? -eq 0 ]; then unzip -o $ARTIFACTS; rm $ARTIFACTS; else cat $ARTIFACTS; rm $ARTIFACTS; fi # job that sets up gitlab pages website # is run on a separate schedule and collects artifacts from other jobs (currently # only the complexity measurements) multiple times a day Loading @@ -1091,39 +1102,49 @@ pages: - branch=$CI_COMMIT_REF_NAME - mkdir public - ARTIFACTS=artifacts.zip ### fetch artifacts from latest run of complexity jobs - job_id=$(python3 ci/get_id_of_last_job_occurence.py $branch complexity-stereo-in-stereo-out) - echo $job_id - echo "$API_URL_BASE/$job_id/artifacts" - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output artifacts_comp_stereo.zip - cat artifacts_comp_stereo.zip - unzip -o artifacts_comp_stereo.zip - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output $ARTIFACTS - *unzip-or-cat - mv complexity-stereo-in-stereo-out-public ./public/ - job_id=$(python3 ci/get_id_of_last_job_occurence.py $branch complexity-ism-in-binaural-out) - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output artifacts_comp_ism.zip - unzip -o artifacts_comp_ism.zip - echo $job_id - echo "$API_URL_BASE/$job_id/artifacts" - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output $ARTIFACTS - *unzip-or-cat - mv complexity-ism-in-binaural-out-public ./public/ - job_id=$(python3 ci/get_id_of_last_job_occurence.py $branch complexity-sba-hoa3-in-hoa3-out) - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output artifacts_comp_sba.zip - unzip -o artifacts_comp_sba.zip - echo $job_id - echo "$API_URL_BASE/$job_id/artifacts" - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output $ARTIFACTS - *unzip-or-cat - mv complexity-sba-hoa3-in-hoa3-out-public ./public/ - job_id=$(python3 ci/get_id_of_last_job_occurence.py $branch complexity-mc-in-7_1_4-out) - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output artifacts_comp_mc.zip - unzip -o artifacts_comp_mc.zip - echo $job_id - echo "$API_URL_BASE/$job_id/artifacts" - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output $ARTIFACTS - *unzip-or-cat - mv complexity-mc-in-7_1_4-out-public ./public/ - job_id=$(python3 ci/get_id_of_last_job_occurence.py $branch complexity-masa-in-7_1_4-out) - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output artifacts_comp_masa.zip - unzip -o artifacts_comp_masa.zip - echo $job_id - echo "$API_URL_BASE/$job_id/artifacts" - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output $ARTIFACTS - *unzip-or-cat - mv complexity-masa-in-7_1_4-out-public ./public/ - job_id=$(python3 ci/get_id_of_last_job_occurence.py $branch complexity-StereoDmxEVS-stereo-in-mono-out) - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output artifacts_comp_StereoDmxEVS.zip - unzip -o artifacts_comp_StereoDmxEVS.zip - echo $job_id - echo "$API_URL_BASE/$job_id/artifacts" - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output $ARTIFACTS - *unzip-or-cat - mv complexity-StereoDmxEVS-stereo-in-mono-out-public ./public/ - cp ci/index-pages.html public/index.html Loading
apps/decoder.c +2 −14 Original line number Diff line number Diff line Loading @@ -71,15 +71,7 @@ static int32_t frame = 0; /* Counter of frames */ #define MIN_NUM_BITS_ACTIVE_FRAME 56 #ifdef REMOVE_SID_HARM_LEFTOVERS #define NUM_BITS_SID_IVAS_5K2 104 #else #define NUM_BITS_SID_IVAS_4K4 88 #define NUM_BITS_SID_IVAS_7K8 156 #define NUM_BITS_SID_IVAS_9K3 186 #define NUM_BITS_SID_IVAS_10K2 204 #endif #define META_LINE_LENGTH 200 #define MAX_FRAME_SIZE ( 48000 / 50 ) #define MAX_NUM_OUTPUT_CHANNELS 16 #define MAX_OUTPUT_PCM_BUFFER_SIZE ( MAX_NUM_OUTPUT_CHANNELS * MAX_FRAME_SIZE ) Loading Loading @@ -354,11 +346,7 @@ int main( fprintf( stderr, "\nError: input bitstream file %s couldn't be read\n\n", arg.inputBitstreamFilename ); goto cleanup; } #ifdef REMOVE_SID_HARM_LEFTOVERS } while ( bfi || num_bits < MIN_NUM_BITS_ACTIVE_FRAME || num_bits == NUM_BITS_SID_IVAS_5K2 ); #else } while ( bfi || num_bits < MIN_NUM_BITS_ACTIVE_FRAME || num_bits == NUM_BITS_SID_IVAS_4K4 || num_bits == NUM_BITS_SID_IVAS_7K8 || num_bits == NUM_BITS_SID_IVAS_9K3 || num_bits == NUM_BITS_SID_IVAS_10K2 ); #endif BS_Reader_Rewind( hBsReader ); Loading
apps/encoder.c +26 −10 Original line number Diff line number Diff line Loading @@ -1273,8 +1273,15 @@ static bool parseCmdlIVAS_enc( arg->inputFormat = IVAS_ENC_INPUT_ISM; i++; if ( i < argc - 5 ) if ( i < argc - 4 ) { if ( !is_digits_only( argv[i] ) ) { fprintf( stderr, "Error: Number of ISM channels must be an integer number!\n\n" ); usage_enc(); return false; } if ( sscanf( argv[i], "%d", &tmp ) > 0 ) { i++; Loading @@ -1286,6 +1293,12 @@ static bool parseCmdlIVAS_enc( usage_enc(); return false; } else if ( tmp > IVAS_MAX_NUM_OBJECTS ) { fprintf( stderr, "Error: Too high number of ISM channels specified!\n\n" ); usage_enc(); return false; } else { arg->inputFormatConfig.ism.numObjects = (int16_t) tmp; Loading Loading @@ -1317,7 +1330,7 @@ static bool parseCmdlIVAS_enc( } else { fprintf( stderr, "Error: not enough arguments\n\n" ); fprintf( stderr, "Error: not enough metadata arguments specified!\n\n" ); usage_enc(); return false; } Loading @@ -1329,17 +1342,14 @@ static bool parseCmdlIVAS_enc( arg->inputFormat = IVAS_ENC_INPUT_SBA; /* SBA configuration */ if ( i < argc - 4 ) { if ( sscanf( argv[i], "%d", &tmp ) > 0 ) if ( i < argc - 4 && is_number( argv[i] ) && sscanf( argv[i], "%d", &tmp ) > 0 ) { i++; } } else { tmp = -1; /* this is to avoid a compilation warning */ fprintf( stderr, "Error: SBA order not specified!\n\n" ); fprintf( stderr, "Error: SBA order must be specified, expecting a number!\n\n" ); usage_enc(); return false; } Loading Loading @@ -1371,6 +1381,13 @@ static bool parseCmdlIVAS_enc( if ( i < argc - 4 ) { if ( !is_digits_only( argv[i] ) ) { fprintf( stderr, "Error: Number of MASA channels must be an integer number!\n\n" ); usage_enc(); return false; } if ( sscanf( argv[i], "%d", &tmp ) > 0 ) { i++; Loading @@ -1385,7 +1402,7 @@ static bool parseCmdlIVAS_enc( arg->inputFormatConfig.masaVariant = IVAS_ENC_MASA_2CH; break; default: fprintf( stderr, "Error: MASA channels must for the moment be 1 or 2.\n\n" ); fprintf( stderr, "Error: MASA channels must be 1 or 2.\n\n" ); usage_enc(); return false; } Loading @@ -1410,7 +1427,6 @@ static bool parseCmdlIVAS_enc( if ( i < argc - 4 ) { if ( strcmp( to_upper( argv[i] ), "5_1" ) == 0 ) { arg->inputFormatConfig.mcLayout = IVAS_ENC_MC_5_1; Loading
apps/renderer.c +17 −44 Original line number Diff line number Diff line Loading @@ -31,7 +31,6 @@ *******************************************************************************************************/ #include "options.h" #include "debug.h" #include "audio_file_reader.h" #include "audio_file_writer.h" #include "cmdl_tools.h" Loading @@ -49,6 +48,9 @@ #include "PROM_Size_lib_rend.h" #include "wmops.h" #endif #ifdef DEBUGGING #include "debug.h" #endif #ifdef RAM_COUNTING_TOOL #include "mem_count.h" #endif Loading @@ -60,7 +62,6 @@ #include <stdio.h> #include <string.h> #ifdef EXT_RENDERER #ifndef count_malloc #ifdef RAM_COUNTING_TOOL #define count_malloc( n1 ) MALLOC_FCT_CALL( n1 ) Loading Loading @@ -424,12 +425,8 @@ static int16_t getTotalNumInChannels( IVAS_REND_HANDLE hIvasRend, IVAS_REND_InputId mcIds[RENDERER_MAX_MC_INPUTS], IVAS_REND_InputId ismIds[RENDERER_MAX_ISM_INPUTS], IVAS_REND_InputId sbaIds[RENDERER_MAX_SBA_INPUTS] #ifdef NOKIA_MASA_EXTERNAL_RENDERER , IVAS_REND_InputId masaIds[RENDERER_MAX_MASA_INPUTS] #endif ) IVAS_REND_InputId sbaIds[RENDERER_MAX_SBA_INPUTS], IVAS_REND_InputId masaIds[RENDERER_MAX_MASA_INPUTS] ) { int16_t totalNumInChannels = 0; int16_t i, numInputChannels; Loading Loading @@ -484,7 +481,6 @@ static int16_t getTotalNumInChannels( totalNumInChannels += numInputChannels; } #ifdef NOKIA_MASA_EXTERNAL_RENDERER for ( i = 0; i < RENDERER_MAX_MASA_INPUTS; ++i ) { if ( masaIds[i] == 0 ) Loading @@ -500,7 +496,6 @@ static int16_t getTotalNumInChannels( } totalNumInChannels += numInputChannels; } #endif return totalNumInChannels; } Loading Loading @@ -674,9 +669,7 @@ int main( IVAS_REND_InputId mcIds[RENDERER_MAX_MC_INPUTS] = { 0 }; IVAS_REND_InputId ismIds[RENDERER_MAX_ISM_INPUTS] = { 0 }; IVAS_REND_InputId sbaIds[RENDERER_MAX_SBA_INPUTS] = { 0 }; #ifdef NOKIA_MASA_EXTERNAL_RENDERER IVAS_REND_InputId masaIds[RENDERER_MAX_MASA_INPUTS] = { 0 }; #endif if ( ( error = IVAS_REND_Open( &hIvasRend, args.sampleRate, args.outConfig.audioConfig ) ) != IVAS_ERR_OK ) { Loading Loading @@ -785,7 +778,6 @@ int main( } } #ifdef NOKIA_MASA_EXTERNAL_RENDERER for ( i = 0; i < args.inConfig.numMasaBuses; ++i ) { if ( ( error = IVAS_REND_AddInput( hIvasRend, args.inConfig.masaBuses[i].audioConfig, &masaIds[i] ) ) != IVAS_ERR_OK ) Loading @@ -800,13 +792,8 @@ int main( exit( -1 ); } } #endif #ifdef NOKIA_MASA_EXTERNAL_RENDERER const int16_t totalNumInChannels = getTotalNumInChannels( hIvasRend, mcIds, ismIds, sbaIds, masaIds ); #else const int16_t totalNumInChannels = getTotalNumInChannels( hIvasRend, mcIds, ismIds, sbaIds ); #endif if ( AudioFileReader_getNumChannels( audioReader ) != 0 /* If input file is raw PCM, audio reader has no info about number of channels */ && totalNumInChannels != AudioFileReader_getNumChannels( audioReader ) ) Loading Loading @@ -903,18 +890,6 @@ int main( } #endif #ifndef NOKIA_MASA_EXTERNAL_RENDERER for ( i = 0; i < RENDERER_MAX_MASA_INPUTS; ++i ) { if ( masaReaders[i] != NULL ) { MasaFileReader_readNextFrame( masaReaders[i] ); /* TODO: Feed MASA metadata here once MASA inputs are supported. For now avoid unused var warning */ (void) hMasaMetadata; } } #endif ObjectPositionBuffer mtdBuffer; IsmPositionProvider_getNextFrame( positionProvider, &mtdBuffer ); Loading Loading @@ -980,7 +955,6 @@ int main( } } #ifdef NOKIA_MASA_EXTERNAL_RENDERER for ( i = 0; i < args.inConfig.numMasaBuses; ++i ) { if ( ( error = IVAS_REND_GetInputNumChannels( hIvasRend, masaIds[i], &numChannels ) ) != IVAS_ERR_OK ) Loading Loading @@ -1008,7 +982,6 @@ int main( } } } #endif IVAS_REND_GetSamples( hIvasRend, outBuffer ); Loading Loading @@ -2459,6 +2432,7 @@ static void convertOutputBuffer( int16_t *intBuffer ) { int16_t chnl, smpl, i; float temp; i = 0; Loading @@ -2466,7 +2440,17 @@ static void convertOutputBuffer( { for ( chnl = 0; chnl < numChannels; ++chnl ) { intBuffer[i] = (int16_t) roundf( floatBuffer[chnl * numSamplesPerChannel + smpl] ); temp = floatBuffer[chnl * numSamplesPerChannel + smpl]; temp = (float) floor( temp + 0.5f ); if ( temp > MAX16B_FLT ) { temp = MAX16B_FLT; } else if ( temp < MIN16B_FLT ) { temp = MIN16B_FLT; } intBuffer[i] = (int16_t) temp; ++i; } Loading @@ -2474,14 +2458,3 @@ static void convertOutputBuffer( return; } #else int main( int argc, char **argv ) { (void) argc; (void) argv; fprintf( stderr, "Enable EXT_RENDERER in options.h to use the external renderer.\n" ); return 0; } #endif
ci/run_scheduled_sanitizer_test.py +9 −5 Original line number Diff line number Diff line Loading @@ -115,7 +115,7 @@ def run_check(modes: list, out_formats: list, tests: list, run_fec: bool = True) ) ) with open(CONSOLE_OUT_FILE, "a") as f: with open(CONSOLE_OUT_FILE, "w") as f: proc = subprocess.Popen( cmd_no_fec, stdout=subprocess.PIPE, stderr=subprocess.PIPE ) Loading Loading @@ -174,9 +174,13 @@ def run_check(modes: list, out_formats: list, tests: list, run_fec: bool = True) ) ) proc = subprocess.Popen(cmd_fec, stdout=subprocess.PIPE, stderr=subprocess.PIPE) with open(CONSOLE_OUT_FILE, "a") as f: proc = subprocess.Popen( cmd_fec, stdout=subprocess.PIPE, stderr=subprocess.PIPE ) for c in iter(lambda: proc.stdout.read(1), b""): sys.stdout.buffer.write(c) f.write(c.decode("utf8")) proc.wait() returncode_fec = proc.returncode Loading