Skip to content

Commit

Permalink
Implement initial support for "AMF" components.
Browse files Browse the repository at this point in the history
Signed-off-by: Thomas Mansencal <[email protected]>
  • Loading branch information
KelSolaar committed Aug 19, 2023
1 parent f9e9003 commit ccf11e8
Show file tree
Hide file tree
Showing 15 changed files with 603 additions and 158 deletions.
3 changes: 2 additions & 1 deletion docs/opencolorio_config_aces.config.rst
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ Reference Configuration
classify_aces_ctl_transforms
discover_aces_ctl_transforms
filter_ctl_transforms
generate_amf_components
print_aces_taxonomy
unclassify_ctl_transforms

Expand Down Expand Up @@ -100,7 +101,7 @@ Reference Configuration
.. autosummary::
:toctree: generated/

ColorspaceDescriptionStyle
DescriptionStyle
version_config_mapping_file
generate_config_aces

Expand Down
4 changes: 2 additions & 2 deletions opencolorio_config_aces/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
version_config_mapping_file,
)
from .config import (
ColorspaceDescriptionStyle,
DescriptionStyle,
generate_config_aces,
)
from .config import generate_config_cg, generate_config_studio
Expand Down Expand Up @@ -114,7 +114,7 @@
"version_config_mapping_file",
]
__all__ += [
"ColorspaceDescriptionStyle",
"DescriptionStyle",
"generate_config_aces",
]
__all__ += ["generate_config_cg", "generate_config_studio"]
Expand Down
52 changes: 49 additions & 3 deletions opencolorio_config_aces/clf/discover/classify.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@
from collections import defaultdict
from collections.abc import Mapping

from opencolorio_config_aces.config.reference.discover.classify import (
ACESTransformID,
)
from opencolorio_config_aces.utilities import (
attest,
message_box,
Expand Down Expand Up @@ -475,6 +478,8 @@ class CLFTransform:
*CLF* transform family, e.g. *aces*
genus : unicode, optional
*CLF* transform genus, e.g. *undefined*
siblings : array_like, optional
*CLF* transform siblings, e.g. inverse transform.
Attributes
----------
Expand All @@ -497,7 +502,10 @@ class CLFTransform:
__ne__
"""

def __init__(self, path, family=None, genus=None):
def __init__(self, path, family=None, genus=None, siblings=None):
if siblings is None:
siblings = []

self._path = os.path.abspath(os.path.normpath(path))

self._code = None
Expand All @@ -510,6 +518,7 @@ def __init__(self, path, family=None, genus=None):

self._family = family
self._genus = genus
self._siblings = siblings

self._parse()

Expand Down Expand Up @@ -692,6 +701,24 @@ def genus(self):

return self._genus

@property
def siblings(self):
"""
Getter property for the *CLF* transform siblings, e.g. inverse
transform.
Returns
-------
unicode
*CLF* transform siblings.
Notes
-----
- This property is read only.
"""

return self._siblings

def __getattr__(self, item):
"""
Reimplement the :meth:`object.__getattr__` so that unsuccessful
Expand Down Expand Up @@ -809,7 +836,9 @@ def _parse(self):
iter(information.findall("./ACEStransformID")), None
)
if aces_transform_id is not None:
self._information["ACEStransformID"] = aces_transform_id.text
self._information["ACEStransformID"] = ACESTransformID(
aces_transform_id.text
)

builtin_transform = next(
iter(information.findall("./BuiltinTransform")), None
Expand Down Expand Up @@ -999,7 +1028,12 @@ def stem(path):
clf_transform_pairs[basename][
"inverse_transform"
] = clf_transforms[1]

clf_transform_pairs[basename]["forward_transform"].siblings.append(
clf_transform_pairs[basename]["inverse_transform"]
)
clf_transform_pairs[basename]["inverse_transform"].siblings.append(
clf_transform_pairs[basename]["forward_transform"]
)
return clf_transform_pairs


Expand Down Expand Up @@ -1295,12 +1329,24 @@ def print_clf_taxonomy():
clf_transform.source,
clf_transform.target,
)
logger.info(
'\t\tCLFtransformID : "%s"',
clf_transform.clf_transform_id.clf_transform_id,
)
elif isinstance(clf_transform, CLFTransformPair):
logger.info(
'\t\t"%s" <--> "%s"',
clf_transform.forward_transform.source,
clf_transform.forward_transform.target,
)
logger.info(
'\t\tACEStransformID : "%s"',
clf_transform.forward_transform.clf_transform_id.clf_transform_id,
)
logger.info(
'\t\tACEStransformID : "%s"',
clf_transform.inverse_transform.clf_transform_id.clf_transform_id,
)


if __name__ == "__main__":
Expand Down
2 changes: 1 addition & 1 deletion opencolorio_config_aces/clf/transforms/arri/generate.py
Original file line number Diff line number Diff line change
Expand Up @@ -341,7 +341,7 @@ def _generate_logc4_transforms(output_directory):

# Generate ARRI LogC4 to ACES 2065-1 Transform
name = "ARRI_LogC4_to_ACES2065-1"
aces_id = "urn:ampas:aces:transformId:v1.5:IDT.ARRI.LogC4.a1.v1"
aces_id = "urn:ampas:aces:transformId:v1.5:IDT.ARRI.ARRI-LogC4.a1.v1"
input_descriptor = "ARRI LogC4"
output_descriptor = "ACES2065-1"
clf_transform_id = format_clf_transform_id(FAMILY, GENUS, name, VERSION)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<InputDescriptor>ARRI LogC4</InputDescriptor>
<OutputDescriptor>ACES2065-1</OutputDescriptor>
<Info>
<ACEStransformID>urn:ampas:aces:transformId:v1.5:IDT.ARRI.LogC4.a1.v1</ACEStransformID>
<ACEStransformID>urn:ampas:aces:transformId:v1.5:IDT.ARRI.ARRI-LogC4.a1.v1</ACEStransformID>
</Info>
<Log inBitDepth="32f" outBitDepth="32f" style="cameraLogToLin">
<LogParams base="2" linSideSlope="2231.82630906769" linSideOffset="64" logSideSlope="0.0647954196341293" logSideOffset="-0.295908392682586" linSideBreak="-0.0180569961199113" />
Expand Down
6 changes: 4 additions & 2 deletions opencolorio_config_aces/config/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
discover_aces_ctl_transforms,
filter_ctl_transforms,
filter_nodes,
generate_amf_components,
node_to_ctl_transform,
plot_aces_conversion_graph,
print_aces_taxonomy,
Expand All @@ -38,7 +39,7 @@
version_config_mapping_file,
)
from .reference import (
ColorspaceDescriptionStyle,
DescriptionStyle,
generate_config_aces,
)
from .cg import generate_config_cg
Expand Down Expand Up @@ -73,6 +74,7 @@
"discover_aces_ctl_transforms",
"filter_ctl_transforms",
"filter_nodes",
"generate_amf_components",
"node_to_ctl_transform",
"plot_aces_conversion_graph",
"print_aces_taxonomy",
Expand All @@ -81,7 +83,7 @@
"version_config_mapping_file",
]
__all__ += [
"ColorspaceDescriptionStyle",
"DescriptionStyle",
"generate_config_aces",
]
__all__ += ["generate_config_cg"]
Expand Down
Loading

0 comments on commit ccf11e8

Please sign in to comment.