1
0
Fork 0
forked from wry/wry

cmm: add support for compound_power_2_4

This commit is contained in:
Julian Orth 2025-12-18 18:03:35 +01:00
parent 3e3cb3114c
commit b5c0e3a07e
11 changed files with 58 additions and 7 deletions

View file

@ -12,6 +12,7 @@ pub mod wp_image_description_v1;
const UNIQUE_CM_IDS_SINCE: Version = Version(2);
const SRGB_DEPRECATED_SINCE: Version = Version(2);
const COMPOUND_POWER_2_4_SINCE: Version = Version(2);
const PRIMARIES_MUL: f64 = 1_000_000.0;
const PRIMARIES_MUL_INV: f64 = 1.0 / PRIMARIES_MUL;

View file

@ -4,8 +4,9 @@ use {
globals::{Global, GlobalName},
ifs::{
color_management::{
FEATURE_EXTENDED_TARGET_VOLUME, FEATURE_SET_MASTERING_DISPLAY_PRIMARIES,
FEATURE_SET_TF_POWER, SRGB_DEPRECATED_SINCE,
COMPOUND_POWER_2_4_SINCE, FEATURE_EXTENDED_TARGET_VOLUME,
FEATURE_SET_MASTERING_DISPLAY_PRIMARIES, FEATURE_SET_TF_POWER,
SRGB_DEPRECATED_SINCE, TRANSFER_FUNCTION_COMPOUND_POWER_2_4,
consts::{
FEATURE_PARAMETRIC, FEATURE_SET_LUMINANCES, FEATURE_SET_PRIMARIES,
FEATURE_WINDOWS_SCRGB, PRIMARIES_ADOBE_RGB, PRIMARIES_BT2020,
@ -96,6 +97,9 @@ impl WpColorManagerV1 {
}
self.send_supported_tf_named(TRANSFER_FUNCTION_ST2084_PQ);
self.send_supported_tf_named(TRANSFER_FUNCTION_ST428);
if self.version >= COMPOUND_POWER_2_4_SINCE {
self.send_supported_tf_named(TRANSFER_FUNCTION_COMPOUND_POWER_2_4);
}
self.send_supported_primaries_named(PRIMARIES_SRGB);
self.send_supported_primaries_named(PRIMARIES_PAL_M);
self.send_supported_primaries_named(PRIMARIES_PAL);

View file

@ -7,7 +7,8 @@ use {
cmm_primaries::{NamedPrimaries, Primaries},
},
ifs::color_management::{
MIN_LUM_MUL_INV, PRIMARIES_MUL_INV, SRGB_DEPRECATED_SINCE,
COMPOUND_POWER_2_4_SINCE, MIN_LUM_MUL_INV, PRIMARIES_MUL_INV, SRGB_DEPRECATED_SINCE,
TRANSFER_FUNCTION_COMPOUND_POWER_2_4,
consts::{
PRIMARIES_ADOBE_RGB, PRIMARIES_BT2020, PRIMARIES_CIE1931_XYZ, PRIMARIES_DCI_P3,
PRIMARIES_DISPLAY_P3, PRIMARIES_GENERIC_FILM, PRIMARIES_NTSC, PRIMARIES_PAL,
@ -120,6 +121,9 @@ impl WpImageDescriptionCreatorParamsV1RequestHandler for WpImageDescriptionCreat
TRANSFER_FUNCTION_EXT_SRGB if self.version < SRGB_DEPRECATED_SINCE => Eotf::Gamma22,
TRANSFER_FUNCTION_ST2084_PQ => Eotf::St2084Pq,
TRANSFER_FUNCTION_ST428 => Eotf::St428,
TRANSFER_FUNCTION_COMPOUND_POWER_2_4 if self.version >= COMPOUND_POWER_2_4_SINCE => {
Eotf::CompoundPower24
}
_ => {
return Err(WpImageDescriptionCreatorParamsV1Error::UnsupportedTf(
req.tf,

View file

@ -10,9 +10,10 @@ use {
MIN_LUM_MUL, PRIMARIES_ADOBE_RGB, PRIMARIES_BT2020, PRIMARIES_CIE1931_XYZ,
PRIMARIES_DCI_P3, PRIMARIES_DISPLAY_P3, PRIMARIES_GENERIC_FILM, PRIMARIES_MUL,
PRIMARIES_NTSC, PRIMARIES_PAL, PRIMARIES_PAL_M, PRIMARIES_SRGB,
TRANSFER_FUNCTION_BT1886, TRANSFER_FUNCTION_EXT_LINEAR, TRANSFER_FUNCTION_GAMMA22,
TRANSFER_FUNCTION_GAMMA28, TRANSFER_FUNCTION_LOG_100, TRANSFER_FUNCTION_LOG_316,
TRANSFER_FUNCTION_ST240, TRANSFER_FUNCTION_ST428, TRANSFER_FUNCTION_ST2084_PQ,
TRANSFER_FUNCTION_BT1886, TRANSFER_FUNCTION_COMPOUND_POWER_2_4,
TRANSFER_FUNCTION_EXT_LINEAR, TRANSFER_FUNCTION_GAMMA22, TRANSFER_FUNCTION_GAMMA28,
TRANSFER_FUNCTION_LOG_100, TRANSFER_FUNCTION_LOG_316, TRANSFER_FUNCTION_ST240,
TRANSFER_FUNCTION_ST428, TRANSFER_FUNCTION_ST2084_PQ,
},
leaks::Tracker,
object::{Object, Version},
@ -51,6 +52,7 @@ impl WpImageDescriptionInfoV1 {
self.send_tf_power(e);
break 'tf;
}
Eotf::CompoundPower24 => TRANSFER_FUNCTION_COMPOUND_POWER_2_4,
};
self.send_tf_named(tf);
}