mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 12:54:40 +01:00
Refactor color conversion logic in transcoding.py
This commit is contained in:
parent
92d1d09b14
commit
862049d995
1 changed files with 18 additions and 4 deletions
|
|
@ -1170,6 +1170,14 @@ def oiio_color_convert(
|
|||
# Handle the different conversion cases
|
||||
# Source view and display are known
|
||||
if source_view and source_display:
|
||||
color_convert_args = None
|
||||
ocio_display_args = None
|
||||
oiio_cmd.extend([
|
||||
"--ociodisplay:inverse=1:subimages=0",
|
||||
source_display,
|
||||
source_view
|
||||
])
|
||||
|
||||
if target_colorspace:
|
||||
# This is a two-step conversion process since there's no direct
|
||||
# display/view to colorspace command
|
||||
|
|
@ -1179,22 +1187,28 @@ def oiio_color_convert(
|
|||
elif source_display != target_display or source_view != target_view:
|
||||
# Complete display/view pair conversion
|
||||
# - go through a reference space
|
||||
color_convert_args = (target_display, target_view)
|
||||
ocio_display_args = (target_display, target_view)
|
||||
else:
|
||||
color_convert_args = None
|
||||
ocio_display_args = None
|
||||
logger.debug(
|
||||
"Source and target display/view pairs are identical."
|
||||
" No color conversion needed."
|
||||
)
|
||||
|
||||
|
||||
if color_convert_args:
|
||||
# Use colorconvert for colorspace target
|
||||
oiio_cmd.extend([
|
||||
"--ociodisplay:inverse=1:subimages=0",
|
||||
source_display,
|
||||
source_view,
|
||||
"--colorconvert:subimages=0",
|
||||
*color_convert_args
|
||||
])
|
||||
elif ocio_display_args:
|
||||
# Use ociodisplay for display/view target
|
||||
oiio_cmd.extend([
|
||||
"--ociodisplay:subimages=0",
|
||||
*ocio_display_args
|
||||
])
|
||||
|
||||
elif target_colorspace:
|
||||
# Standard color space to color space conversion
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue