Loading scripts/pyivastest/IvasModeCollector.py +2 −4 Original line number Diff line number Diff line Loading @@ -157,7 +157,8 @@ class IvasModeCollector(IvasBaseClass.IvasBaseClass): self.format_select_list = [] self.bw_select_list = [] self.global_item_list = [] self.global_metadata_file_list = [] self.global_ism_metadata = list() self.global_masa_metadata = None self.global_bitstream_processing = None self.flat_mode_list = None self.filter = None Loading Loading @@ -482,9 +483,6 @@ class IvasModeCollector(IvasBaseClass.IvasBaseClass): def set_global_item_list(self, global_item_list): self.global_item_list = [os.path.abspath(f) for f in global_item_list] def set_global_metadata_file_list(self, metadata_file_list): self.global_metadata_file_list = metadata_file_list def add_format_output_config(self, ivas_format, oc_dict): """ Loading scripts/pyivastest/IvasModeRunner.py +35 −84 Original line number Diff line number Diff line Loading @@ -430,12 +430,12 @@ class IvasModeRunner(IvasModeCollector.IvasModeCollector): return self.lock.release() metadata_file_names = [] metadata_file_names = list() # TODO: is this still needed - what case does this cover? if isinstance(in_file_name, list): metadata_file_names = in_file_name[1:] in_file_name = in_file_name[0] elif self.global_metadata_file_list: metadata_file_names = deepcopy(self.global_metadata_file_list) self.logger.info("Encoding Mode {} input file {}".format(mode, in_file_name)) config["lock"].release() self.lock.acquire() Loading Loading @@ -625,89 +625,40 @@ class IvasModeRunner(IvasModeCollector.IvasModeCollector): # build the encoder commandline enc_options = enc_dec_cmd["encmodeoption"] # metadata handling if enc_dec_cmd["nummetadata"] > 0: for cur_metadata_idx in range(enc_dec_cmd["nummetadata"]): fallback = False if len(metadata_file_names) == 1: # try for a filename with format patterns metadata_file_name = metadata_file_names[0] if metadata_file_name != "NULL": metadata_file_name = str.format( metadata_file_name, item=item_base_name, mdi=cur_metadata_idx, ) elif len(metadata_file_names) >= (cur_metadata_idx + 1): metadata_file_name = str.format( metadata_file_names[cur_metadata_idx], item=item_base_name, mdi=cur_metadata_idx, ) else: fallback = True # metadata is either explicitly taken from the respective command line args or, # if not given, the default pattern form the config is used to get filenames in # the same dir as the input file. NULL for ISM MD has to be explicitly given, # otherwise this may hapen without the user being aware and lead to unexpected results. # If the default filenames from the configs do not point to existing files, the # codec will complain later nummetadata = enc_dec_cmd["nummetadata"] if nummetadata > 0: md_files = list() if not fallback and not os.path.exists(metadata_file_name): # maybe we need to attach the indir mdf_for_log = metadata_file_name metadata_file_name = os.path.join(in_dir, metadata_file_name) if not os.path.exists(metadata_file_name): self.logger.warning( "Given metadata file {} for item {} does not exists, trying default pattern!".format( mdf_for_log, enc_file_name ) ) fallback = True is_combined_format = "OMASA" in in_format or "OSBA" in in_format if fallback: if "ISM" in in_format: md_files.extend(self.global_ism_metadata) if len(enc_dec_cmd["metadatafilenames"]) == 1: # try for a filename with format patterns metadata_file_name = enc_dec_cmd["metadatafilenames"][0] if metadata_file_name != "NULL": metadata_file_name = str.format( metadata_file_name, item=item_base_name, mdi=cur_metadata_idx + 1, ) elif len(enc_dec_cmd["metadatafilenames"]) >= ( cur_metadata_idx + 1 ): metadata_file_name = enc_dec_cmd["metadatafilenames"][ cur_metadata_idx ] if metadata_file_name != "NULL": metadata_file_name = str.format( metadata_file_name, item=item_base_name, mdi=cur_metadata_idx, ) else: self.logger.warning( "Falling back to NULL for metadata file {} of item {}!".format( cur_metadata_idx, enc_file_name ) ) # if no md files explicitly given, try default pattern from config if len(md_files) == 0: num_ism_metadata = nummetadata - int(is_combined_format) default = os.path.join(in_dir, enc_dec_cmd["metadatafilenames"][0]) for i in range(num_ism_metadata): md_f = default.format(item=item_base_name, mdi=i + 1) md_files.append(md_f) metadata_file_name = "NULL" if "MASA" in in_format: masa_md = self.global_masa_metadata if metadata_file_name != "NULL" and not os.path.exists( metadata_file_name ): # maybe we need to attach the indir metadata_file_name = os.path.join( in_dir, metadata_file_name ) if not os.path.exists(metadata_file_name): self.logger.warning( "Falling back to NULL for metadata file {} of item {}!".format( cur_metadata_idx, enc_file_name ) ) metadata_file_name = "NULL" # if not explicitly given, try default pattern from config if masa_md is None: default = os.path.join(in_dir, enc_dec_cmd["metadatafilenames"][0 + int(is_combined_format)]) masa_md = default.format(item=item_base_name) md_files.append(masa_md) enc_options.append(metadata_file_name) enc_options.extend(md_files) enc_options.extend(enc_dec_cmd["encoptions"]) enc_options.extend(self.encoder_cmdline_options) Loading scripts/pyivastest/IvasScriptsCommon.py +17 −6 Original line number Diff line number Diff line Loading @@ -200,12 +200,18 @@ class IvasScriptArgParser(argparse.ArgumentParser): action=ParseItems, ) self.add_argument( "--metadata_files", metavar="MDFILE", help="List of common metadata files", "--ism_metadata_files", metavar="ISM_MDFILE", help="List of ISM metadata files", nargs="*", default=[], ) self.add_argument( "--masa_metadata_file", metavar="MASA_MDFILE", help="MASA metadata file", default=None, ) self.add_argument( "-S", "--srin", Loading Loading @@ -664,9 +670,14 @@ def runner_setup(runner, args): runner.set_format_select_list(args["formats"]) if args["item_list"]: runner.set_global_item_list(args["item_list"]) if args["metadata_files"]: metadata_files = [os.path.abspath(f) for f in args["metadata_files"]] runner.set_global_metadata_file_list(metadata_files) metadata_files = list() if args["ism_metadata_files"] != []: metadata_files.extend([os.path.abspath(f) for f in args["ism_metadata_files"]]) runner.global_ism_metadata = metadata_files if args["masa_metadata_file"] is not None: runner.global_masa_metadata = os.path.abspath(args["masa_metadata_file"]) if args["decoder_only"]: runner.run_encoder = False if args["info"]: Loading Loading
scripts/pyivastest/IvasModeCollector.py +2 −4 Original line number Diff line number Diff line Loading @@ -157,7 +157,8 @@ class IvasModeCollector(IvasBaseClass.IvasBaseClass): self.format_select_list = [] self.bw_select_list = [] self.global_item_list = [] self.global_metadata_file_list = [] self.global_ism_metadata = list() self.global_masa_metadata = None self.global_bitstream_processing = None self.flat_mode_list = None self.filter = None Loading Loading @@ -482,9 +483,6 @@ class IvasModeCollector(IvasBaseClass.IvasBaseClass): def set_global_item_list(self, global_item_list): self.global_item_list = [os.path.abspath(f) for f in global_item_list] def set_global_metadata_file_list(self, metadata_file_list): self.global_metadata_file_list = metadata_file_list def add_format_output_config(self, ivas_format, oc_dict): """ Loading
scripts/pyivastest/IvasModeRunner.py +35 −84 Original line number Diff line number Diff line Loading @@ -430,12 +430,12 @@ class IvasModeRunner(IvasModeCollector.IvasModeCollector): return self.lock.release() metadata_file_names = [] metadata_file_names = list() # TODO: is this still needed - what case does this cover? if isinstance(in_file_name, list): metadata_file_names = in_file_name[1:] in_file_name = in_file_name[0] elif self.global_metadata_file_list: metadata_file_names = deepcopy(self.global_metadata_file_list) self.logger.info("Encoding Mode {} input file {}".format(mode, in_file_name)) config["lock"].release() self.lock.acquire() Loading Loading @@ -625,89 +625,40 @@ class IvasModeRunner(IvasModeCollector.IvasModeCollector): # build the encoder commandline enc_options = enc_dec_cmd["encmodeoption"] # metadata handling if enc_dec_cmd["nummetadata"] > 0: for cur_metadata_idx in range(enc_dec_cmd["nummetadata"]): fallback = False if len(metadata_file_names) == 1: # try for a filename with format patterns metadata_file_name = metadata_file_names[0] if metadata_file_name != "NULL": metadata_file_name = str.format( metadata_file_name, item=item_base_name, mdi=cur_metadata_idx, ) elif len(metadata_file_names) >= (cur_metadata_idx + 1): metadata_file_name = str.format( metadata_file_names[cur_metadata_idx], item=item_base_name, mdi=cur_metadata_idx, ) else: fallback = True # metadata is either explicitly taken from the respective command line args or, # if not given, the default pattern form the config is used to get filenames in # the same dir as the input file. NULL for ISM MD has to be explicitly given, # otherwise this may hapen without the user being aware and lead to unexpected results. # If the default filenames from the configs do not point to existing files, the # codec will complain later nummetadata = enc_dec_cmd["nummetadata"] if nummetadata > 0: md_files = list() if not fallback and not os.path.exists(metadata_file_name): # maybe we need to attach the indir mdf_for_log = metadata_file_name metadata_file_name = os.path.join(in_dir, metadata_file_name) if not os.path.exists(metadata_file_name): self.logger.warning( "Given metadata file {} for item {} does not exists, trying default pattern!".format( mdf_for_log, enc_file_name ) ) fallback = True is_combined_format = "OMASA" in in_format or "OSBA" in in_format if fallback: if "ISM" in in_format: md_files.extend(self.global_ism_metadata) if len(enc_dec_cmd["metadatafilenames"]) == 1: # try for a filename with format patterns metadata_file_name = enc_dec_cmd["metadatafilenames"][0] if metadata_file_name != "NULL": metadata_file_name = str.format( metadata_file_name, item=item_base_name, mdi=cur_metadata_idx + 1, ) elif len(enc_dec_cmd["metadatafilenames"]) >= ( cur_metadata_idx + 1 ): metadata_file_name = enc_dec_cmd["metadatafilenames"][ cur_metadata_idx ] if metadata_file_name != "NULL": metadata_file_name = str.format( metadata_file_name, item=item_base_name, mdi=cur_metadata_idx, ) else: self.logger.warning( "Falling back to NULL for metadata file {} of item {}!".format( cur_metadata_idx, enc_file_name ) ) # if no md files explicitly given, try default pattern from config if len(md_files) == 0: num_ism_metadata = nummetadata - int(is_combined_format) default = os.path.join(in_dir, enc_dec_cmd["metadatafilenames"][0]) for i in range(num_ism_metadata): md_f = default.format(item=item_base_name, mdi=i + 1) md_files.append(md_f) metadata_file_name = "NULL" if "MASA" in in_format: masa_md = self.global_masa_metadata if metadata_file_name != "NULL" and not os.path.exists( metadata_file_name ): # maybe we need to attach the indir metadata_file_name = os.path.join( in_dir, metadata_file_name ) if not os.path.exists(metadata_file_name): self.logger.warning( "Falling back to NULL for metadata file {} of item {}!".format( cur_metadata_idx, enc_file_name ) ) metadata_file_name = "NULL" # if not explicitly given, try default pattern from config if masa_md is None: default = os.path.join(in_dir, enc_dec_cmd["metadatafilenames"][0 + int(is_combined_format)]) masa_md = default.format(item=item_base_name) md_files.append(masa_md) enc_options.append(metadata_file_name) enc_options.extend(md_files) enc_options.extend(enc_dec_cmd["encoptions"]) enc_options.extend(self.encoder_cmdline_options) Loading
scripts/pyivastest/IvasScriptsCommon.py +17 −6 Original line number Diff line number Diff line Loading @@ -200,12 +200,18 @@ class IvasScriptArgParser(argparse.ArgumentParser): action=ParseItems, ) self.add_argument( "--metadata_files", metavar="MDFILE", help="List of common metadata files", "--ism_metadata_files", metavar="ISM_MDFILE", help="List of ISM metadata files", nargs="*", default=[], ) self.add_argument( "--masa_metadata_file", metavar="MASA_MDFILE", help="MASA metadata file", default=None, ) self.add_argument( "-S", "--srin", Loading Loading @@ -664,9 +670,14 @@ def runner_setup(runner, args): runner.set_format_select_list(args["formats"]) if args["item_list"]: runner.set_global_item_list(args["item_list"]) if args["metadata_files"]: metadata_files = [os.path.abspath(f) for f in args["metadata_files"]] runner.set_global_metadata_file_list(metadata_files) metadata_files = list() if args["ism_metadata_files"] != []: metadata_files.extend([os.path.abspath(f) for f in args["ism_metadata_files"]]) runner.global_ism_metadata = metadata_files if args["masa_metadata_file"] is not None: runner.global_masa_metadata = os.path.abspath(args["masa_metadata_file"]) if args["decoder_only"]: runner.run_encoder = False if args["info"]: Loading