mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 12:54:40 +01:00
Fix passing sequence to oiiotool
This commit is contained in:
parent
7b91c0da1e
commit
ea5f1c81d6
2 changed files with 18 additions and 10 deletions
|
|
@ -1011,6 +1011,7 @@ def convert_colorspace(
|
|||
display=None,
|
||||
additional_command_args=None,
|
||||
frames=None,
|
||||
frame_padding=None,
|
||||
parallel_frames=False,
|
||||
logger=None,
|
||||
):
|
||||
|
|
@ -1020,7 +1021,7 @@ def convert_colorspace(
|
|||
input_path (str): Path that should be converted. It is expected that
|
||||
contains single file or image sequence of same type
|
||||
(sequence in format 'file.FRAMESTART-FRAMEEND#.ext', see oiio docs,
|
||||
eg `big.1-3#.tif` or `big.%04d.ext` with `frames` argument)
|
||||
eg `big.1-3#.tif` or `big.1-3%d.ext` with `frames` argument)
|
||||
output_path (str): Path to output filename.
|
||||
(must follow format of 'input_path', eg. single file or
|
||||
sequence in 'file.FRAMESTART-FRAMEEND#.ext', `output.1-3#.tif`)
|
||||
|
|
@ -1036,9 +1037,11 @@ def convert_colorspace(
|
|||
depth for .dpx)
|
||||
frames (Optional[str]): Complex frame range to process. This requires
|
||||
input path and output path to use frame token placeholder like
|
||||
e.g. file.%04d.exr
|
||||
`#` or `%d`, e.g. file.#.exr
|
||||
parallel_frames (bool): If True, process frames in parallel inside
|
||||
the `oiiotool` process. Only supported in OIIO 2.5.20.0+.
|
||||
frame_padding (Optional[int]): Frame padding to use for the input and
|
||||
output when using a sequence filepath.
|
||||
logger (logging.Logger): Logger used for logging.
|
||||
Raises:
|
||||
ValueError: if misconfigured
|
||||
|
|
@ -1066,6 +1069,12 @@ def convert_colorspace(
|
|||
oiio_cmd.extend([
|
||||
"--frames", frames,
|
||||
])
|
||||
|
||||
if frame_padding:
|
||||
oiio_cmd.extend([
|
||||
"--framepadding", frame_padding,
|
||||
])
|
||||
|
||||
if parallel_frames:
|
||||
oiio_cmd.extend([
|
||||
"--parallel-frames"
|
||||
|
|
|
|||
|
|
@ -162,15 +162,16 @@ class ExtractOIIOTranscode(publish.Extractor):
|
|||
if isinstance(file_name, clique.Collection):
|
||||
# Support sequences with holes by supplying
|
||||
# dedicated `--frames` argument to `oiiotool`
|
||||
# Create `filename` string like "file.%04d.exr"
|
||||
file_name = file_name.format("{head}{padding}{tail}")
|
||||
# Create `filename` string like "file.#.exr"
|
||||
# Create `frames` string like "1001-1002,1004,1010-1012
|
||||
frames: str = file_name.format("{ranges}").replace(
|
||||
" ", "")
|
||||
file_name = file_name.format("{head}#{tail}")
|
||||
frames = file_name.format("{ranges}").replace(" ", "")
|
||||
frame_padding = file_name.padding
|
||||
parallel_frames = True
|
||||
elif isinstance(file_name, str):
|
||||
# Single file
|
||||
frames = None
|
||||
frame_padding = None
|
||||
parallel_frames = False
|
||||
else:
|
||||
raise TypeError(
|
||||
|
|
@ -194,6 +195,7 @@ class ExtractOIIOTranscode(publish.Extractor):
|
|||
display,
|
||||
additional_command_args,
|
||||
frames=frames,
|
||||
frame_padding=frame_padding,
|
||||
parallel_frames=parallel_frames,
|
||||
logger=self.log
|
||||
)
|
||||
|
|
@ -279,10 +281,7 @@ class ExtractOIIOTranscode(publish.Extractor):
|
|||
"""Returns original individual filepaths or list of a single two-tuple
|
||||
representating sequence filename with its frames.
|
||||
|
||||
Uses clique to find frame sequence, in this case it merges all frames
|
||||
into sequence format (`%04d`) together with all its frames to support
|
||||
both regular sequences and sequences with holes.
|
||||
|
||||
Uses clique to find frame sequence, and return the collections instead.
|
||||
If sequence not detected in input filenames, it returns original list.
|
||||
|
||||
Args:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue