Loading .gitlab-ci.yml +17 −15 Original line number Diff line number Diff line Loading @@ -1012,11 +1012,13 @@ voip-be-on-merge-request: - .test-job-linux-needs-testv-dir - .rules-merge-request stage: test needs: ["build-codec-linux-make", "codec-smoke-test"] needs: ["build-codec-linux-make"] timeout: "10 minutes" script: - *print-common-info - bash ci/ivas_voip_be_test.sh - make clean - make -j - python3 -m pytest tests/test_be_for_jbm_neutral_dly_profile.py clang-format-check: extends: Loading Loading @@ -2205,7 +2207,7 @@ coverage-test-on-main-scheduled: - 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 - python3 -m pytest tests/test_be_for_jbm_neutral_dly_profile.py - lcov -c -d obj -o coverage.info # remove apps and lib_util files from coverage - lcov -r coverage.info "*apps*" -o coverage.info Loading Loading @@ -2289,8 +2291,8 @@ complexity-stereo-in-stereo-out: - *complexity-measurements-setup - in_format=stereo - out_format=stereo - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" - ret_val=$? - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" || ret_val=$? - *complexity-measurements-prepare-artifacts - exit $ret_val Loading @@ -2307,8 +2309,8 @@ complexity-ism-in-binaural-out: - *complexity-measurements-setup - in_format=ISM - out_format=BINAURAL - bash ci/complexity_measurements/getWmops.sh "ISM+1 ISM+2 ISM+3 ISM+4" "$out_format" - ret_val=$? - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "ISM+1 ISM+2 ISM+3 ISM+4" "$out_format" || ret_val=$? - *complexity-measurements-prepare-artifacts - exit $ret_val Loading @@ -2325,8 +2327,8 @@ complexity-sba-hoa3-in-hoa3-out: - *complexity-measurements-setup - in_format=HOA3 - out_format=HOA3 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" - ret_val=$? - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" || ret_val=$? - *complexity-measurements-prepare-artifacts - exit $ret_val Loading @@ -2343,8 +2345,8 @@ complexity-mc-in-7_1_4-out: - *complexity-measurements-setup - in_format=MC - out_format=7_1_4 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" - ret_val=$? - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" || ret_val=$? - *complexity-measurements-prepare-artifacts - exit $ret_val Loading @@ -2361,8 +2363,8 @@ complexity-masa-in-7_1_4-out: - *complexity-measurements-setup - in_format=MASA - out_format=7_1_4 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" - ret_val=$? - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" || ret_val=$? - *complexity-measurements-prepare-artifacts - exit $ret_val Loading @@ -2379,8 +2381,8 @@ complexity-StereoDmxEVS-stereo-in-mono-out: - *complexity-measurements-setup - in_format=StereoDmxEVS - out_format=mono - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" - ret_val=$? - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" || ret_val=$? - *complexity-measurements-prepare-artifacts - exit $ret_val Loading ci/complexity_measurements/check_for_changes.py +4 −1 Original line number Diff line number Diff line import argparse import csv import sys import numpy as np THRESH = 0.01 Loading Loading @@ -32,6 +31,10 @@ def check_linewise_logfile(filepath, cols): change_ratios = [abs(float(curr[i]) / float(prev[i]) - 1) > THRESH for i in cols] changes_found = any(change_ratios) if changes_found: print("Previous log line:", prev) print("Current log line:", curr) return changes_found Loading ci/ivas_voip_be_test.shdeleted 100755 → 0 +0 −145 Original line number Diff line number Diff line #! /usr/bin/bash # (C) 2022-2024 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, # Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., # Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, # Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other # contributors to this repository. All Rights Reserved. # This software is protected by copyright law and by international treaties. # The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, # Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., # Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, # Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other # contributors to this repository retain full ownership rights in their respective contributions in # the software. This notice grants no license of any kind, including but not limited to patent # license, nor is any license granted by implication, estoppel or otherwise. # Contributors are required to enter into the IVAS codec Public Collaboration agreement before making # contributions. # This software is provided "AS IS", without any express or implied warranties. The software is in the # development stage. It is intended exclusively for experts who have experience with such software and # solely for the purpose of inspection. All implied warranties of non-infringement, merchantability # and fitness for a particular purpose are hereby disclaimed and excluded. # Any dispute, controversy or claim arising under or in relation to providing this software shall be # submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in # accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and # the United Nations Convention on Contracts on the International Sales of Goods. function usage { echo echo "Usage:" echo " ivas_voip_be_test.sh [MODE]" echo echo " MODE - test (default) or coverage" exit } if [ ! -d "lib_com" ]; then echo "not in root directory! - please run in IVAS root" exit 1 fi if [ -z "$1" ] || [ "$1" == "test" ]; then WORKERS="" BUILD=1 COVERAGE=0 elif [ "$1" == "coverage" ]; then WORKERS="-t 1" BUILD=0 COVERAGE=1 else usage fi if [ $BUILD -eq 1 ];then make clean make all -j fi # Configuration modes=('HOA3_b128_wb_cbr' 'MC_7_1_b96_fb_cbr' 'ISM2_b48_fb_cbr') output_formats=('STEREO' 'FOA' '7_1' 'HOA3') limit_input_to_x_seconds=30 verbosity_cmd="-z console" cfg=./scripts/config/ci_linux.json dly_profile=./scripts/dly_error_profiles/dly_error_profile_0.dat output_dir_default="out" output_dir_voip="out_voip" # Run the same modes in VoIP and non-VoIP mode with a neutral delay profile ./scripts/runIvasCodec.py $verbosity_cmd -p $cfg $WORKERS -U $limit_input_to_x_seconds -m "${modes[@]}" --oc "${output_formats[@]}" -o $output_dir_default | tee voip_be_test_output.txt ./scripts/runIvasCodec.py $verbosity_cmd -p $cfg $WORKERS -U $limit_input_to_x_seconds -m "${modes[@]}" --oc "${output_formats[@]}" -o $output_dir_voip -J "$dly_profile" | tee -a voip_be_test_output.txt # Check if Python scripts above failed. They return status 0 even when running a mode fails, so we have to parse log file if grep -iq failed voip_be_test_output.txt ; then echo "Run errors in runIvasCodec.py" exit 1 fi if [ $COVERAGE -eq 1 ];then # Coverage analysis requires only running the codec and may exit before the comparison part exit 0 fi # Set up Python path python_audio_module_path=$(pwd)/scripts export PYTHONPATH=$python_audio_module_path:$PYTHONPATH python_audiofile_script_path=$python_audio_module_path/pyaudio3dtools/audiofile.py # Trim JBM delay from VoIP output files output_dir_voip_dec="$output_dir_voip"/dec output_dir_voip_dec_trimmed="$output_dir_voip"/dec_trimmed if [[ ! -d $output_dir_voip_dec_trimmed ]]; then mkdir $output_dir_voip_dec_trimmed fi for cut in "$output_dir_voip_dec"/*.wav; do output_path=${cut/$output_dir_voip_dec/$output_dir_voip_dec_trimmed} output_path=${output_path/".wav"/".raw"} python3 "$python_audiofile_script_path" pre-trim 60 "$cut" "$output_path" | tee -a voip_be_test_output.txt done # Convert non-VoIP output from wav to pcm (comparison script doesn't support wav) output_dir_default_dec="$output_dir_default"/dec output_dir_default_dec_pcm="$output_dir_default"/dec_pcm if [[ ! -d $output_dir_default_dec_pcm ]]; then mkdir $output_dir_default_dec_pcm fi for ref in "$output_dir_default_dec"/*.wav; do output_path=${ref/$output_dir_default_dec/$output_dir_default_dec_pcm} output_path=${output_path/".wav"/".raw"} python3 "$python_audiofile_script_path" convert "$ref" "$output_path" | tee -a voip_be_test_output.txt done # Assert BE between non-VoIP and VoIP modes all_be=1 cmp_tool_path=$(pwd)/tests/cmp_pcm.py for ref in "$output_dir_default_dec_pcm"/*; do cut=${ref/$output_dir_default_dec_pcm/$output_dir_voip_dec_trimmed} cut=${cut/".dec."/"_jbm_dly_error_profile_0_dat.dec."} # Print paths of compared files, since the script doesn't do it printf "\nComparing %s and %s\n" "$ref" "$cut" | tee -a voip_be_test_output.txt printout=$($cmp_tool_path "$ref" "$cut") if [ $? -ne 0 ]; then all_be=0 fi printf "%s\n" "$printout" | tee -a voip_be_test_output.txt done if [ $all_be -eq 1 ]; then printf "\n\nAll tested conditions are bit-exact\n" | tee -a voip_be_test_output.txt else printf "\n\nBitexactness problems found!\n" | tee -a voip_be_test_output.txt exit 1; fi lib_com/ivas_cnst.h +0 −3 Original line number Diff line number Diff line Loading @@ -179,9 +179,6 @@ typedef enum typedef enum { #ifndef FIX_1101_CLEANING_JBM_CALL TC_BUFFER_MODE_NONE = 0, #endif TC_BUFFER_MODE_RENDERER, TC_BUFFER_MODE_BUFFER } TC_BUFFER_MODE; Loading lib_com/ivas_prot.h +11 −5 Original line number Diff line number Diff line Loading @@ -84,7 +84,13 @@ void ivas_write_format( void ivas_write_format_sid( const IVAS_FORMAT ivas_format, /* i : IVAS format */ const int16_t element_mode, /* i : element bitrate */ #ifdef NONBE_FIX_1052_SBA_EXT_FIX BSTR_ENC_HANDLE hBstr, /* i/o: encoder bitstream handle */ const int16_t sba_order, /* i : Ambisonic (SBA) order */ const int16_t sba_planar /* i : SBA planar flag */ #else BSTR_ENC_HANDLE hBstr /* i/o: encoder bitstream handle */ #endif ); ivas_error create_sce_enc( Loading Loading @@ -3492,7 +3498,7 @@ int16_t ivas_sba_get_nchan_metadata( const int32_t ivas_total_brate /* i : IVAS total bitrate */ ); /*! r: number of bits in SPAR SID frame */ /*! r: number of bits in SBA SPAR SID frame */ int16_t ivas_sba_spar_sid_bitlen( const int16_t nchan_transport /* i : number of transport channels */ ); Loading Loading
.gitlab-ci.yml +17 −15 Original line number Diff line number Diff line Loading @@ -1012,11 +1012,13 @@ voip-be-on-merge-request: - .test-job-linux-needs-testv-dir - .rules-merge-request stage: test needs: ["build-codec-linux-make", "codec-smoke-test"] needs: ["build-codec-linux-make"] timeout: "10 minutes" script: - *print-common-info - bash ci/ivas_voip_be_test.sh - make clean - make -j - python3 -m pytest tests/test_be_for_jbm_neutral_dly_profile.py clang-format-check: extends: Loading Loading @@ -2205,7 +2207,7 @@ coverage-test-on-main-scheduled: - 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 - python3 -m pytest tests/test_be_for_jbm_neutral_dly_profile.py - lcov -c -d obj -o coverage.info # remove apps and lib_util files from coverage - lcov -r coverage.info "*apps*" -o coverage.info Loading Loading @@ -2289,8 +2291,8 @@ complexity-stereo-in-stereo-out: - *complexity-measurements-setup - in_format=stereo - out_format=stereo - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" - ret_val=$? - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" || ret_val=$? - *complexity-measurements-prepare-artifacts - exit $ret_val Loading @@ -2307,8 +2309,8 @@ complexity-ism-in-binaural-out: - *complexity-measurements-setup - in_format=ISM - out_format=BINAURAL - bash ci/complexity_measurements/getWmops.sh "ISM+1 ISM+2 ISM+3 ISM+4" "$out_format" - ret_val=$? - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "ISM+1 ISM+2 ISM+3 ISM+4" "$out_format" || ret_val=$? - *complexity-measurements-prepare-artifacts - exit $ret_val Loading @@ -2325,8 +2327,8 @@ complexity-sba-hoa3-in-hoa3-out: - *complexity-measurements-setup - in_format=HOA3 - out_format=HOA3 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" - ret_val=$? - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" || ret_val=$? - *complexity-measurements-prepare-artifacts - exit $ret_val Loading @@ -2343,8 +2345,8 @@ complexity-mc-in-7_1_4-out: - *complexity-measurements-setup - in_format=MC - out_format=7_1_4 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" - ret_val=$? - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" || ret_val=$? - *complexity-measurements-prepare-artifacts - exit $ret_val Loading @@ -2361,8 +2363,8 @@ complexity-masa-in-7_1_4-out: - *complexity-measurements-setup - in_format=MASA - out_format=7_1_4 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" - ret_val=$? - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" || ret_val=$? - *complexity-measurements-prepare-artifacts - exit $ret_val Loading @@ -2379,8 +2381,8 @@ complexity-StereoDmxEVS-stereo-in-mono-out: - *complexity-measurements-setup - in_format=StereoDmxEVS - out_format=mono - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" - ret_val=$? - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" || ret_val=$? - *complexity-measurements-prepare-artifacts - exit $ret_val Loading
ci/complexity_measurements/check_for_changes.py +4 −1 Original line number Diff line number Diff line import argparse import csv import sys import numpy as np THRESH = 0.01 Loading Loading @@ -32,6 +31,10 @@ def check_linewise_logfile(filepath, cols): change_ratios = [abs(float(curr[i]) / float(prev[i]) - 1) > THRESH for i in cols] changes_found = any(change_ratios) if changes_found: print("Previous log line:", prev) print("Current log line:", curr) return changes_found Loading
ci/ivas_voip_be_test.shdeleted 100755 → 0 +0 −145 Original line number Diff line number Diff line #! /usr/bin/bash # (C) 2022-2024 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, # Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., # Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, # Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other # contributors to this repository. All Rights Reserved. # This software is protected by copyright law and by international treaties. # The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, # Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., # Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, # Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other # contributors to this repository retain full ownership rights in their respective contributions in # the software. This notice grants no license of any kind, including but not limited to patent # license, nor is any license granted by implication, estoppel or otherwise. # Contributors are required to enter into the IVAS codec Public Collaboration agreement before making # contributions. # This software is provided "AS IS", without any express or implied warranties. The software is in the # development stage. It is intended exclusively for experts who have experience with such software and # solely for the purpose of inspection. All implied warranties of non-infringement, merchantability # and fitness for a particular purpose are hereby disclaimed and excluded. # Any dispute, controversy or claim arising under or in relation to providing this software shall be # submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in # accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and # the United Nations Convention on Contracts on the International Sales of Goods. function usage { echo echo "Usage:" echo " ivas_voip_be_test.sh [MODE]" echo echo " MODE - test (default) or coverage" exit } if [ ! -d "lib_com" ]; then echo "not in root directory! - please run in IVAS root" exit 1 fi if [ -z "$1" ] || [ "$1" == "test" ]; then WORKERS="" BUILD=1 COVERAGE=0 elif [ "$1" == "coverage" ]; then WORKERS="-t 1" BUILD=0 COVERAGE=1 else usage fi if [ $BUILD -eq 1 ];then make clean make all -j fi # Configuration modes=('HOA3_b128_wb_cbr' 'MC_7_1_b96_fb_cbr' 'ISM2_b48_fb_cbr') output_formats=('STEREO' 'FOA' '7_1' 'HOA3') limit_input_to_x_seconds=30 verbosity_cmd="-z console" cfg=./scripts/config/ci_linux.json dly_profile=./scripts/dly_error_profiles/dly_error_profile_0.dat output_dir_default="out" output_dir_voip="out_voip" # Run the same modes in VoIP and non-VoIP mode with a neutral delay profile ./scripts/runIvasCodec.py $verbosity_cmd -p $cfg $WORKERS -U $limit_input_to_x_seconds -m "${modes[@]}" --oc "${output_formats[@]}" -o $output_dir_default | tee voip_be_test_output.txt ./scripts/runIvasCodec.py $verbosity_cmd -p $cfg $WORKERS -U $limit_input_to_x_seconds -m "${modes[@]}" --oc "${output_formats[@]}" -o $output_dir_voip -J "$dly_profile" | tee -a voip_be_test_output.txt # Check if Python scripts above failed. They return status 0 even when running a mode fails, so we have to parse log file if grep -iq failed voip_be_test_output.txt ; then echo "Run errors in runIvasCodec.py" exit 1 fi if [ $COVERAGE -eq 1 ];then # Coverage analysis requires only running the codec and may exit before the comparison part exit 0 fi # Set up Python path python_audio_module_path=$(pwd)/scripts export PYTHONPATH=$python_audio_module_path:$PYTHONPATH python_audiofile_script_path=$python_audio_module_path/pyaudio3dtools/audiofile.py # Trim JBM delay from VoIP output files output_dir_voip_dec="$output_dir_voip"/dec output_dir_voip_dec_trimmed="$output_dir_voip"/dec_trimmed if [[ ! -d $output_dir_voip_dec_trimmed ]]; then mkdir $output_dir_voip_dec_trimmed fi for cut in "$output_dir_voip_dec"/*.wav; do output_path=${cut/$output_dir_voip_dec/$output_dir_voip_dec_trimmed} output_path=${output_path/".wav"/".raw"} python3 "$python_audiofile_script_path" pre-trim 60 "$cut" "$output_path" | tee -a voip_be_test_output.txt done # Convert non-VoIP output from wav to pcm (comparison script doesn't support wav) output_dir_default_dec="$output_dir_default"/dec output_dir_default_dec_pcm="$output_dir_default"/dec_pcm if [[ ! -d $output_dir_default_dec_pcm ]]; then mkdir $output_dir_default_dec_pcm fi for ref in "$output_dir_default_dec"/*.wav; do output_path=${ref/$output_dir_default_dec/$output_dir_default_dec_pcm} output_path=${output_path/".wav"/".raw"} python3 "$python_audiofile_script_path" convert "$ref" "$output_path" | tee -a voip_be_test_output.txt done # Assert BE between non-VoIP and VoIP modes all_be=1 cmp_tool_path=$(pwd)/tests/cmp_pcm.py for ref in "$output_dir_default_dec_pcm"/*; do cut=${ref/$output_dir_default_dec_pcm/$output_dir_voip_dec_trimmed} cut=${cut/".dec."/"_jbm_dly_error_profile_0_dat.dec."} # Print paths of compared files, since the script doesn't do it printf "\nComparing %s and %s\n" "$ref" "$cut" | tee -a voip_be_test_output.txt printout=$($cmp_tool_path "$ref" "$cut") if [ $? -ne 0 ]; then all_be=0 fi printf "%s\n" "$printout" | tee -a voip_be_test_output.txt done if [ $all_be -eq 1 ]; then printf "\n\nAll tested conditions are bit-exact\n" | tee -a voip_be_test_output.txt else printf "\n\nBitexactness problems found!\n" | tee -a voip_be_test_output.txt exit 1; fi
lib_com/ivas_cnst.h +0 −3 Original line number Diff line number Diff line Loading @@ -179,9 +179,6 @@ typedef enum typedef enum { #ifndef FIX_1101_CLEANING_JBM_CALL TC_BUFFER_MODE_NONE = 0, #endif TC_BUFFER_MODE_RENDERER, TC_BUFFER_MODE_BUFFER } TC_BUFFER_MODE; Loading
lib_com/ivas_prot.h +11 −5 Original line number Diff line number Diff line Loading @@ -84,7 +84,13 @@ void ivas_write_format( void ivas_write_format_sid( const IVAS_FORMAT ivas_format, /* i : IVAS format */ const int16_t element_mode, /* i : element bitrate */ #ifdef NONBE_FIX_1052_SBA_EXT_FIX BSTR_ENC_HANDLE hBstr, /* i/o: encoder bitstream handle */ const int16_t sba_order, /* i : Ambisonic (SBA) order */ const int16_t sba_planar /* i : SBA planar flag */ #else BSTR_ENC_HANDLE hBstr /* i/o: encoder bitstream handle */ #endif ); ivas_error create_sce_enc( Loading Loading @@ -3492,7 +3498,7 @@ int16_t ivas_sba_get_nchan_metadata( const int32_t ivas_total_brate /* i : IVAS total bitrate */ ); /*! r: number of bits in SPAR SID frame */ /*! r: number of bits in SBA SPAR SID frame */ int16_t ivas_sba_spar_sid_bitlen( const int16_t nchan_transport /* i : number of transport channels */ ); Loading