Loading scripts/IvasBuildAndRunChecks.py +37 −2 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import os.path import sys import platform import pyivastest.constants as constants from pyivastest import IvasScriptsCommon Loading @@ -39,6 +40,19 @@ from pyivastest.IvasSvnBuilder import * RET_CODE_FAILURE = 101 bin_ext = "" if platform.system() == "Windows": bin_ext = ".exe" default_encdec_bin_path = constants.WC_BASE_DIR default_enc = os.path.realpath( os.path.join(default_encdec_bin_path, "IVAS_cod" + bin_ext) ) default_dec = os.path.realpath( os.path.join(default_encdec_bin_path, "IVAS_dec" + bin_ext) ) default_out = os.path.join(".", "out") # change that to something else? class IvasBuildAndRunChecks(IvasScriptsCommon.IvasScript): def __init__(self): Loading Loading @@ -100,9 +114,25 @@ class IvasBuildAndRunChecks(IvasScriptsCommon.IvasScript): help="pass the '-s' argument to the wmc tool to only measure memory", action="store_true", ) self.parser.add_argument( "--basop", help="build the basop version for instrumentation", action="store_true", ) self.parser.add_argument( "-e", "--enc", help="Encoder binary to use instead of instrumenting and building it anew", default=None, ) self.parser.add_argument( "-d", "--dec", help="Decoder binary to use instead of instrumenting and building it anew", default=None, ) def run(self): self.parse_args() if self.args["error"] or self.args["exit"]: exit() Loading Loading @@ -142,6 +172,8 @@ class IvasBuildAndRunChecks(IvasScriptsCommon.IvasScript): sample_rate_dec_out=self.args["srout"], enable_logging=True, logger_name="{}.br".format(self.logger.name), enc_ext=self.args["enc"], dec_ext=self.args["dec"], ) elif self.args["srcdir"]: Loading @@ -152,6 +184,8 @@ class IvasBuildAndRunChecks(IvasScriptsCommon.IvasScript): sample_rate_dec_out=self.args["srout"], enable_logging=True, logger_name="{}.br".format(self.logger.name), enc_ext=self.args["enc"], dec_ext=self.args["dec"], ) modes = self.args["formats"] Loading @@ -165,6 +199,7 @@ class IvasBuildAndRunChecks(IvasScriptsCommon.IvasScript): formats_fname=self.args["format_file"], max_workers=self.args["max_workers"], mem_only=self.args["wmc_tool_mem_only"], basop=self.args["basop"], ) else: br.add_check( Loading @@ -181,7 +216,7 @@ class IvasBuildAndRunChecks(IvasScriptsCommon.IvasScript): br.build_and_run_dict[check]["analyzer"], self.args ) if self.args["rebuild"] == True: if self.args["rebuild"]: br.force_build = True checks_ret_val = list() Loading scripts/pyivastest/IvasSvnBuilder.py +43 −1 Original line number Diff line number Diff line Loading @@ -227,6 +227,7 @@ class IvasBuilder(IvasBaseClass): defines_to_disable=[], instrumented=False, mem_only=False, basop=False, ): """ Loading Loading @@ -274,7 +275,11 @@ class IvasBuilder(IvasBaseClass): os.path.join(self.src_dir, "scripts", "prepare_instrumentation.sh") ] if mem_only: instrument_cmd.append("-m") instrument_cmd.append("mem_only") if basop: instrument_cmd.append("-p") instrument_cmd.append("basop") build_log.write(" ".join(instrument_cmd)) build_log.write("\n") build_result = subprocess.run( Loading Loading @@ -644,6 +649,7 @@ class IvasSvnBuilder(IvasBuilder): defines_to_disable=[], instrumented=False, mem_only=False, basop=False, ): """ Loading Loading @@ -673,6 +679,7 @@ class IvasSvnBuilder(IvasBuilder): defines_to_disable=defines_to_disable, instrumented=instrumented, mem_only=mem_only, basop=basop, ) Loading @@ -695,6 +702,8 @@ class IvasBuilderAndRunner(IvasBaseClass): console_logger_level="", logger_name="IvasBuilderAndRunner", log_level=logging.DEBUG, enc_ext=None, dec_ext=None, ): super().__init__( enable_logging=enable_logging, Loading Loading @@ -729,6 +738,8 @@ class IvasBuilderAndRunner(IvasBaseClass): self.sample_rate_enc_in = sample_rate_enc_in self.sample_rate_dec_out = sample_rate_dec_out self.force_build = False self.enc_ext = enc_ext self.dec_ext = dec_ext @classmethod def fromSvn( Loading Loading @@ -781,6 +792,7 @@ class IvasBuilderAndRunner(IvasBaseClass): max_workers=1, timeout=None, mem_only=False, basop=False, ): """ Loading Loading @@ -826,6 +838,7 @@ class IvasBuilderAndRunner(IvasBaseClass): self.build_and_run_dict[cfg_name]["instrumented"] = instrumented self.build_and_run_dict[cfg_name]["mem_only"] = mem_only self.build_and_run_dict[cfg_name]["make_options"] = make_options self.build_and_run_dict[cfg_name]["basop"] = basop else: self.logger.console("Adding config {}".format(cfg_name), logging.INFO) run_dir = os.path.join(self.builder.src_dir, cfg_name) Loading Loading @@ -871,6 +884,7 @@ class IvasBuilderAndRunner(IvasBaseClass): "mem_only": mem_only, "make_options": make_options, "analyzer": new_analyzer, "basop": basop, } } self.build_and_run_dict.update(cfg_dict) Loading Loading @@ -1054,6 +1068,7 @@ class IvasBuilderAndRunner(IvasBaseClass): defines_to_disable=cfg["defines_to_disable"], instrumented=cfg["instrumented"], mem_only=cfg["mem_only"], basop=cfg["basop"], ) self.build_and_run_dict[cfg_name]["runner"].encoder = self.builder.encoder self.build_and_run_dict[cfg_name]["runner"].decoder = self.builder.decoder Loading @@ -1079,11 +1094,23 @@ class IvasBuilderAndRunner(IvasBaseClass): if self.builder.src_dir == "": self.builder.get_svn_source() run_dir = os.path.join(self.builder.src_dir, cfg_name) # if both encoder and decoder are given as external binaries, create dir and copy both, this skips the build later if self.dec_ext is not None and self.enc_ext is not None: os.makedirs(run_dir, exist_ok=True) shutil.copy( self.enc_ext, os.path.join(run_dir, os.path.basename(self.enc_ext)) ) shutil.copy( self.dec_ext, os.path.join(run_dir, os.path.basename(self.dec_ext)) ) if not os.path.exists(run_dir) or self.force_build: # we have to build first self.build(cfg_name) else: # check if binaries are in the directory # first, copy external binaries # test for EVS vs IVAS if os.path.exists( os.path.join( Loading Loading @@ -1119,6 +1146,20 @@ class IvasBuilderAndRunner(IvasBaseClass): ) ) self.build(cfg_name) # if one of the external binaries was given, copy it over, overwriting the existing one # we should not get here if both are given, then building is skipped altogether if self.enc_ext is not None: shutil.copy( self.enc_ext, os.path.join(run_dir, os.path.basename(self.enc_ext)), ) if self.dec_ext is not None: shutil.copy( self.dec_ext, os.path.join(run_dir, os.path.basename(self.dec_ext)), ) self.build_and_run_dict[cfg_name]["runner"].dir_name = run_dir self.build_and_run_dict[cfg_name]["analyzer"].dir = run_dir self.build_and_run_dict[cfg_name]["runner"].run() Loading Loading @@ -1196,7 +1237,6 @@ class IvasBuilderAndRunner(IvasBaseClass): max_workers=1, usan_supp_file=None, ): n_cpus = cpu_count() # do not use all cores to avoid weird getting-stuck issues observed on Mac... make_options = ["-j", f"{n_cpus - 2}"] Loading Loading @@ -1255,6 +1295,7 @@ class IvasBuilderAndRunner(IvasBaseClass): formats_fname="", max_workers=1, mem_only=False, basop=False, ): """ Loading Loading @@ -1288,6 +1329,7 @@ class IvasBuilderAndRunner(IvasBaseClass): formats_fname=formats_fname, max_workers=max_workers, mem_only=mem_only, basop=basop, ) # TODO: this is used nowhere, is this still needed? Loading scripts/smoke_test_complexity_basop.sh 0 → 100755 +235 −0 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 " smoke_test_complexity_basop.sh [--max_cores nMaxCores -e encPath -d decPath]" echo echo " nMaxCores - the number of CPUs to use (default 42)" echo " encPath - path to IVAS_cod" echo " decPath - path to IVAS_dec" exit } if [ ! -d "lib_com" ]; then echo "not in root directory! - please run in IVAS root" exit 1 fi MAX_CORES="42" ENC_PATH="" DEC_PATH="" while getopts ":-:e:d:" OPTIONS; do case ${OPTIONS} in -) case "${OPTARG}" in max_cores) MAX_CORES="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 )) ;; esac;; e) ENC_PATH=${OPTARG} ;; d) DEC_PATH=${OPTARG} ;; h | *) usage ;; esac done enc_cmd="" dec_cmd="" if [ "$ENC_PATH" != "" ]; then enc_cmd="-e $ENC_PATH" fi if [ "$DEC_PATH" != "" ]; then dec_cmd="-d $DEC_PATH" fi cfg=./scripts/config/ci_linux_ltv.json 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" duration_arg="" complexity_cmd="--checks COMPLEXITY --wmc_tool_mem_only --basop --create_complexity_tables" max_num_workers="--max_workers $MAX_CORES" # prepare combined format test signals echo "\n======================= 0. preparing combined format test inputs =======================\n\n" ./scripts/prepare_combined_format_inputs.py # Modes mono_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^mono) FOA_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^FOA) HOA2_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^HOA2) HOA3_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^HOA3) PlanarFOA_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^PlanarFOA) PlanarHOA2_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^PlanarHOA2) PlanarHOA3_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^PlanarHOA3) MASA_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^MASA) MC_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^MC) stereo_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^stereo) stereoDmx_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^StereoDmx) OMASA_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^OMASA) OSBA_ISM1_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^OSBA_ISM1) OSBA_ISM2_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^OSBA_ISM2) OSBA_ISM3_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^OSBA_ISM3) OSBA_ISM4_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^OSBA_ISM4) ISM1_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^ISM1) ISM2_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^ISM2) ISM3_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^ISM3) ISM4_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^ISM4) ISM_plus1_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^ISM+1) ISM_plus2_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^ISM+2) ISM_plus3_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^ISM+3) ISM_plus4_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^ISM+4) echo "\n======================= 1. Mono =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_mono_no_fec -m $mono_modes -p $cfg $duration_arg $max_num_workers | tee smoke_test_output_mono.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 2. FOA =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_FOA_no_fec -m $FOA_modes -p $cfg $duration_arg $max_num_workers | tee smoke_test_output_FOA.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 3. HOA2 =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_HOA2_no_fec -m $HOA2_modes -p $cfg $duration_arg $max_num_workers | tee smoke_test_output_HOA2.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 4. HOA3 =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_HOA3_no_fec -m $HOA3_modes -p $cfg $duration_arg $max_num_workers | tee smoke_test_output_HOA3.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 5. PlanarFOA =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_PlanarFOA_no_fec -m $PlanarFOA_modes -p $cfg $duration_arg $max_num_workers | tee smoke_test_output_PlanarFOA.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 6. PlanarHOA2 =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_PlanarHOA2_no_fec -m $PlanarHOA2_modes -p $cfg $duration_arg $max_num_workers | tee smoke_test_output_PlanarHOA2.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 7. PlanarHOA3 =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_PlanarHOA3_no_fec -m $PlanarHOA3_modes -p $cfg $duration_arg $max_num_workers | tee smoke_test_output_PlanarHOA3.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 8. MASA =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_MASA_no_fec -m $MASA_modes -p $cfg $duration_arg $max_num_workers | tee smoke_test_output_MASA.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 9. MC =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_MC_no_fec -m $MC_modes -p $cfg $duration_arg $max_num_workers | tee smoke_test_output_MC.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 10. stereo =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_stereo_no_fec -m $stereo_modes -p $cfg $duration_arg $max_num_workers | tee smoke_test_output_stereo.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 11. stereoDmx =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_stereoDmx_no_fec -m $stereoDmx_modes -p $cfg $duration_arg $max_num_workers | tee smoke_test_output_stereoDmx.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 12. OMASA =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_OMASA_no_fec -m $OMASA_modes -p $cfg $duration_arg $max_num_workers | tee smoke_test_output_OMASA.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 13. OSBA ISM1 =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_OSBA_ISM1_no_fec -m $OSBA_ISM1_modes -p $cfg $duration_arg $max_num_workers | tee smoke_test_output_OSBA_ISM1.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 14. OSBA ISM2 =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_OSBA_ISM2_no_fec -m $OSBA_ISM2_modes -p $cfg $duration_arg $max_num_workers | tee smoke_test_output_OSBA_ISM2.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 15. OSBA ISM3 =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_OSBA_ISM3_no_fec -m $OSBA_ISM3_modes -p $cfg $duration_arg $max_num_workers | tee smoke_test_output_OSBA_ISM3.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 16. OSBA ISM4 =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_OSBA_ISM4_no_fec -m $OSBA_ISM4_modes -p $cfg $duration_arg $max_num_workers | tee smoke_test_output_OSBA_ISM4.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 17. ISM1 =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_ISM1_no_fec -m $ISM1_modes -p $cfg $duration_arg $ism_md_cmd $max_num_workers | tee smoke_test_output_ISM1.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 18. ISM2 =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_ISM2_no_fec -m $ISM2_modes -p $cfg $duration_arg $ism_md_cmd $max_num_workers | tee smoke_test_output_ISM2.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 19. ISM3 =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_ISM3_no_fec -m $ISM3_modes -p $cfg $duration_arg $ism_md_cmd $max_num_workers | tee smoke_test_output_ISM3.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 20. ISM4 =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_ISM4_no_fec -m $ISM4_modes -p $cfg $duration_arg $ism_md_cmd $max_num_workers | tee smoke_test_output_ISM4.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 21. ISM1 + extended metadata =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_ISM_plus1_no_fec -m $ISM_plus1_modes -p $cfg $duration_arg $ism_md_cmd $max_num_workers | tee smoke_test_output_ISM_plus1.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 22. ISM2 + extended metadata =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_ISM_plus2_no_fec -m $ISM_plus2_modes -p $cfg $duration_arg $ism_md_cmd $max_num_workers | tee smoke_test_output_ISM_plus2.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 23. ISM3 + extended metadata =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_ISM_plus3_no_fec -m $ISM_plus3_modes -p $cfg $duration_arg $ism_md_cmd $max_num_workers | tee smoke_test_output_ISM_plus3.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 24. ISM4 + extended metadata =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_ISM_plus4_no_fec -m $ISM_plus4_modes -p $cfg $duration_arg $ism_md_cmd $max_num_workers | tee smoke_test_output_ISM_plus4.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ Loading
scripts/IvasBuildAndRunChecks.py +37 −2 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import os.path import sys import platform import pyivastest.constants as constants from pyivastest import IvasScriptsCommon Loading @@ -39,6 +40,19 @@ from pyivastest.IvasSvnBuilder import * RET_CODE_FAILURE = 101 bin_ext = "" if platform.system() == "Windows": bin_ext = ".exe" default_encdec_bin_path = constants.WC_BASE_DIR default_enc = os.path.realpath( os.path.join(default_encdec_bin_path, "IVAS_cod" + bin_ext) ) default_dec = os.path.realpath( os.path.join(default_encdec_bin_path, "IVAS_dec" + bin_ext) ) default_out = os.path.join(".", "out") # change that to something else? class IvasBuildAndRunChecks(IvasScriptsCommon.IvasScript): def __init__(self): Loading Loading @@ -100,9 +114,25 @@ class IvasBuildAndRunChecks(IvasScriptsCommon.IvasScript): help="pass the '-s' argument to the wmc tool to only measure memory", action="store_true", ) self.parser.add_argument( "--basop", help="build the basop version for instrumentation", action="store_true", ) self.parser.add_argument( "-e", "--enc", help="Encoder binary to use instead of instrumenting and building it anew", default=None, ) self.parser.add_argument( "-d", "--dec", help="Decoder binary to use instead of instrumenting and building it anew", default=None, ) def run(self): self.parse_args() if self.args["error"] or self.args["exit"]: exit() Loading Loading @@ -142,6 +172,8 @@ class IvasBuildAndRunChecks(IvasScriptsCommon.IvasScript): sample_rate_dec_out=self.args["srout"], enable_logging=True, logger_name="{}.br".format(self.logger.name), enc_ext=self.args["enc"], dec_ext=self.args["dec"], ) elif self.args["srcdir"]: Loading @@ -152,6 +184,8 @@ class IvasBuildAndRunChecks(IvasScriptsCommon.IvasScript): sample_rate_dec_out=self.args["srout"], enable_logging=True, logger_name="{}.br".format(self.logger.name), enc_ext=self.args["enc"], dec_ext=self.args["dec"], ) modes = self.args["formats"] Loading @@ -165,6 +199,7 @@ class IvasBuildAndRunChecks(IvasScriptsCommon.IvasScript): formats_fname=self.args["format_file"], max_workers=self.args["max_workers"], mem_only=self.args["wmc_tool_mem_only"], basop=self.args["basop"], ) else: br.add_check( Loading @@ -181,7 +216,7 @@ class IvasBuildAndRunChecks(IvasScriptsCommon.IvasScript): br.build_and_run_dict[check]["analyzer"], self.args ) if self.args["rebuild"] == True: if self.args["rebuild"]: br.force_build = True checks_ret_val = list() Loading
scripts/pyivastest/IvasSvnBuilder.py +43 −1 Original line number Diff line number Diff line Loading @@ -227,6 +227,7 @@ class IvasBuilder(IvasBaseClass): defines_to_disable=[], instrumented=False, mem_only=False, basop=False, ): """ Loading Loading @@ -274,7 +275,11 @@ class IvasBuilder(IvasBaseClass): os.path.join(self.src_dir, "scripts", "prepare_instrumentation.sh") ] if mem_only: instrument_cmd.append("-m") instrument_cmd.append("mem_only") if basop: instrument_cmd.append("-p") instrument_cmd.append("basop") build_log.write(" ".join(instrument_cmd)) build_log.write("\n") build_result = subprocess.run( Loading Loading @@ -644,6 +649,7 @@ class IvasSvnBuilder(IvasBuilder): defines_to_disable=[], instrumented=False, mem_only=False, basop=False, ): """ Loading Loading @@ -673,6 +679,7 @@ class IvasSvnBuilder(IvasBuilder): defines_to_disable=defines_to_disable, instrumented=instrumented, mem_only=mem_only, basop=basop, ) Loading @@ -695,6 +702,8 @@ class IvasBuilderAndRunner(IvasBaseClass): console_logger_level="", logger_name="IvasBuilderAndRunner", log_level=logging.DEBUG, enc_ext=None, dec_ext=None, ): super().__init__( enable_logging=enable_logging, Loading Loading @@ -729,6 +738,8 @@ class IvasBuilderAndRunner(IvasBaseClass): self.sample_rate_enc_in = sample_rate_enc_in self.sample_rate_dec_out = sample_rate_dec_out self.force_build = False self.enc_ext = enc_ext self.dec_ext = dec_ext @classmethod def fromSvn( Loading Loading @@ -781,6 +792,7 @@ class IvasBuilderAndRunner(IvasBaseClass): max_workers=1, timeout=None, mem_only=False, basop=False, ): """ Loading Loading @@ -826,6 +838,7 @@ class IvasBuilderAndRunner(IvasBaseClass): self.build_and_run_dict[cfg_name]["instrumented"] = instrumented self.build_and_run_dict[cfg_name]["mem_only"] = mem_only self.build_and_run_dict[cfg_name]["make_options"] = make_options self.build_and_run_dict[cfg_name]["basop"] = basop else: self.logger.console("Adding config {}".format(cfg_name), logging.INFO) run_dir = os.path.join(self.builder.src_dir, cfg_name) Loading Loading @@ -871,6 +884,7 @@ class IvasBuilderAndRunner(IvasBaseClass): "mem_only": mem_only, "make_options": make_options, "analyzer": new_analyzer, "basop": basop, } } self.build_and_run_dict.update(cfg_dict) Loading Loading @@ -1054,6 +1068,7 @@ class IvasBuilderAndRunner(IvasBaseClass): defines_to_disable=cfg["defines_to_disable"], instrumented=cfg["instrumented"], mem_only=cfg["mem_only"], basop=cfg["basop"], ) self.build_and_run_dict[cfg_name]["runner"].encoder = self.builder.encoder self.build_and_run_dict[cfg_name]["runner"].decoder = self.builder.decoder Loading @@ -1079,11 +1094,23 @@ class IvasBuilderAndRunner(IvasBaseClass): if self.builder.src_dir == "": self.builder.get_svn_source() run_dir = os.path.join(self.builder.src_dir, cfg_name) # if both encoder and decoder are given as external binaries, create dir and copy both, this skips the build later if self.dec_ext is not None and self.enc_ext is not None: os.makedirs(run_dir, exist_ok=True) shutil.copy( self.enc_ext, os.path.join(run_dir, os.path.basename(self.enc_ext)) ) shutil.copy( self.dec_ext, os.path.join(run_dir, os.path.basename(self.dec_ext)) ) if not os.path.exists(run_dir) or self.force_build: # we have to build first self.build(cfg_name) else: # check if binaries are in the directory # first, copy external binaries # test for EVS vs IVAS if os.path.exists( os.path.join( Loading Loading @@ -1119,6 +1146,20 @@ class IvasBuilderAndRunner(IvasBaseClass): ) ) self.build(cfg_name) # if one of the external binaries was given, copy it over, overwriting the existing one # we should not get here if both are given, then building is skipped altogether if self.enc_ext is not None: shutil.copy( self.enc_ext, os.path.join(run_dir, os.path.basename(self.enc_ext)), ) if self.dec_ext is not None: shutil.copy( self.dec_ext, os.path.join(run_dir, os.path.basename(self.dec_ext)), ) self.build_and_run_dict[cfg_name]["runner"].dir_name = run_dir self.build_and_run_dict[cfg_name]["analyzer"].dir = run_dir self.build_and_run_dict[cfg_name]["runner"].run() Loading Loading @@ -1196,7 +1237,6 @@ class IvasBuilderAndRunner(IvasBaseClass): max_workers=1, usan_supp_file=None, ): n_cpus = cpu_count() # do not use all cores to avoid weird getting-stuck issues observed on Mac... make_options = ["-j", f"{n_cpus - 2}"] Loading Loading @@ -1255,6 +1295,7 @@ class IvasBuilderAndRunner(IvasBaseClass): formats_fname="", max_workers=1, mem_only=False, basop=False, ): """ Loading Loading @@ -1288,6 +1329,7 @@ class IvasBuilderAndRunner(IvasBaseClass): formats_fname=formats_fname, max_workers=max_workers, mem_only=mem_only, basop=basop, ) # TODO: this is used nowhere, is this still needed? Loading
scripts/smoke_test_complexity_basop.sh 0 → 100755 +235 −0 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 " smoke_test_complexity_basop.sh [--max_cores nMaxCores -e encPath -d decPath]" echo echo " nMaxCores - the number of CPUs to use (default 42)" echo " encPath - path to IVAS_cod" echo " decPath - path to IVAS_dec" exit } if [ ! -d "lib_com" ]; then echo "not in root directory! - please run in IVAS root" exit 1 fi MAX_CORES="42" ENC_PATH="" DEC_PATH="" while getopts ":-:e:d:" OPTIONS; do case ${OPTIONS} in -) case "${OPTARG}" in max_cores) MAX_CORES="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 )) ;; esac;; e) ENC_PATH=${OPTARG} ;; d) DEC_PATH=${OPTARG} ;; h | *) usage ;; esac done enc_cmd="" dec_cmd="" if [ "$ENC_PATH" != "" ]; then enc_cmd="-e $ENC_PATH" fi if [ "$DEC_PATH" != "" ]; then dec_cmd="-d $DEC_PATH" fi cfg=./scripts/config/ci_linux_ltv.json 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" duration_arg="" complexity_cmd="--checks COMPLEXITY --wmc_tool_mem_only --basop --create_complexity_tables" max_num_workers="--max_workers $MAX_CORES" # prepare combined format test signals echo "\n======================= 0. preparing combined format test inputs =======================\n\n" ./scripts/prepare_combined_format_inputs.py # Modes mono_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^mono) FOA_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^FOA) HOA2_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^HOA2) HOA3_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^HOA3) PlanarFOA_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^PlanarFOA) PlanarHOA2_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^PlanarHOA2) PlanarHOA3_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^PlanarHOA3) MASA_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^MASA) MC_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^MC) stereo_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^stereo) stereoDmx_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^StereoDmx) OMASA_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^OMASA) OSBA_ISM1_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^OSBA_ISM1) OSBA_ISM2_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^OSBA_ISM2) OSBA_ISM3_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^OSBA_ISM3) OSBA_ISM4_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^OSBA_ISM4) ISM1_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^ISM1) ISM2_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^ISM2) ISM3_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^ISM3) ISM4_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^ISM4) ISM_plus1_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^ISM+1) ISM_plus2_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^ISM+2) ISM_plus3_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^ISM+3) ISM_plus4_modes=$(./scripts/IvasBuildAndRunChecks.py -l | grep ^ISM+4) echo "\n======================= 1. Mono =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_mono_no_fec -m $mono_modes -p $cfg $duration_arg $max_num_workers | tee smoke_test_output_mono.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 2. FOA =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_FOA_no_fec -m $FOA_modes -p $cfg $duration_arg $max_num_workers | tee smoke_test_output_FOA.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 3. HOA2 =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_HOA2_no_fec -m $HOA2_modes -p $cfg $duration_arg $max_num_workers | tee smoke_test_output_HOA2.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 4. HOA3 =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_HOA3_no_fec -m $HOA3_modes -p $cfg $duration_arg $max_num_workers | tee smoke_test_output_HOA3.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 5. PlanarFOA =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_PlanarFOA_no_fec -m $PlanarFOA_modes -p $cfg $duration_arg $max_num_workers | tee smoke_test_output_PlanarFOA.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 6. PlanarHOA2 =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_PlanarHOA2_no_fec -m $PlanarHOA2_modes -p $cfg $duration_arg $max_num_workers | tee smoke_test_output_PlanarHOA2.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 7. PlanarHOA3 =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_PlanarHOA3_no_fec -m $PlanarHOA3_modes -p $cfg $duration_arg $max_num_workers | tee smoke_test_output_PlanarHOA3.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 8. MASA =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_MASA_no_fec -m $MASA_modes -p $cfg $duration_arg $max_num_workers | tee smoke_test_output_MASA.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 9. MC =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_MC_no_fec -m $MC_modes -p $cfg $duration_arg $max_num_workers | tee smoke_test_output_MC.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 10. stereo =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_stereo_no_fec -m $stereo_modes -p $cfg $duration_arg $max_num_workers | tee smoke_test_output_stereo.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 11. stereoDmx =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_stereoDmx_no_fec -m $stereoDmx_modes -p $cfg $duration_arg $max_num_workers | tee smoke_test_output_stereoDmx.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 12. OMASA =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_OMASA_no_fec -m $OMASA_modes -p $cfg $duration_arg $max_num_workers | tee smoke_test_output_OMASA.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 13. OSBA ISM1 =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_OSBA_ISM1_no_fec -m $OSBA_ISM1_modes -p $cfg $duration_arg $max_num_workers | tee smoke_test_output_OSBA_ISM1.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 14. OSBA ISM2 =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_OSBA_ISM2_no_fec -m $OSBA_ISM2_modes -p $cfg $duration_arg $max_num_workers | tee smoke_test_output_OSBA_ISM2.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 15. OSBA ISM3 =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_OSBA_ISM3_no_fec -m $OSBA_ISM3_modes -p $cfg $duration_arg $max_num_workers | tee smoke_test_output_OSBA_ISM3.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 16. OSBA ISM4 =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_OSBA_ISM4_no_fec -m $OSBA_ISM4_modes -p $cfg $duration_arg $max_num_workers | tee smoke_test_output_OSBA_ISM4.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 17. ISM1 =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_ISM1_no_fec -m $ISM1_modes -p $cfg $duration_arg $ism_md_cmd $max_num_workers | tee smoke_test_output_ISM1.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 18. ISM2 =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_ISM2_no_fec -m $ISM2_modes -p $cfg $duration_arg $ism_md_cmd $max_num_workers | tee smoke_test_output_ISM2.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 19. ISM3 =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_ISM3_no_fec -m $ISM3_modes -p $cfg $duration_arg $ism_md_cmd $max_num_workers | tee smoke_test_output_ISM3.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 20. ISM4 =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_ISM4_no_fec -m $ISM4_modes -p $cfg $duration_arg $ism_md_cmd $max_num_workers | tee smoke_test_output_ISM4.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 21. ISM1 + extended metadata =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_ISM_plus1_no_fec -m $ISM_plus1_modes -p $cfg $duration_arg $ism_md_cmd $max_num_workers | tee smoke_test_output_ISM_plus1.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 22. ISM2 + extended metadata =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_ISM_plus2_no_fec -m $ISM_plus2_modes -p $cfg $duration_arg $ism_md_cmd $max_num_workers | tee smoke_test_output_ISM_plus2.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 23. ISM3 + extended metadata =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_ISM_plus3_no_fec -m $ISM_plus3_modes -p $cfg $duration_arg $ism_md_cmd $max_num_workers | tee smoke_test_output_ISM_plus3.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/ echo "\n======================= 24. ISM4 + extended metadata =======================\n\n" ./scripts/IvasBuildAndRunChecks.py $enc_cmd $dec_cmd $complexity_cmd ltv_complexity_ISM_plus4_no_fec -m $ISM_plus4_modes -p $cfg $duration_arg $ism_md_cmd $max_num_workers | tee smoke_test_output_ISM_plus4.txt rm -r ./COMPLEXITY/dec/ rm -r ./COMPLEXITY/enc/ rm -r ./COMPLEXITY/pcm/