pub enum ColorPolicy {
TonemapToSdr,
Passthrough,
Hdr10,
Hlg,
}Expand description
Output color policy — the gamut (which colors are representable) and the
transfer curve (SDR vs HDR), plus whether to tonemap an HDR source down. This
is the color half of the decision; bit depth is the separate BitDepth
half (though the HDR variants here imply 10-bit on their own).
The decode pump never tonemaps on its own — this policy decides.
Glossary (the jargon these variants use):
- BT.709 — the standard HD / SDR color gamut. What the vast majority of video uses; “SDR” output means BT.709.
- BT.2020 — the wide gamut used by HDR: more saturated, deeper colors.
- PQ (SMPTE ST 2084) — the HDR10 transfer curve (absolute brightness, up to 10,000 nits).
- HLG (ARIB STD-B67) — the broadcast-friendly HDR transfer curve (relative brightness; degrades gracefully on SDR screens).
- tonemap — squeeze an HDR signal’s brightness/gamut down into SDR so it looks right on ordinary (BT.709, 8-bit) screens.
Variants§
TonemapToSdr
SDR out. Tonemap HDR (PQ / HLG) sources down to 8-bit BT.709 SDR;
SDR sources pass through unchanged. The default — maximally web-compatible.
(Convenience builder: OutputSpec::web_sdr.)
Passthrough
Verbatim. Keep the source’s gamut, transfer, and bit depth as-is — no
tonemap, no re-signaling. An HDR source stays HDR (needs a 10-bit
encoder); an SDR source stays SDR. (Builder: OutputSpec::passthrough.)
Hdr10
HDR10 out. Force BT.2020 gamut + PQ transfer, 10-bit. Sets
10-bit on its own, so you do not also need BitDepth::TenBit.
(Builder: OutputSpec::hdr10.)
Hlg
HLG out. Force BT.2020 gamut + HLG transfer, 10-bit. Implies
10-bit. (Builder: OutputSpec::hlg.)
Implementations§
Trait Implementations§
Source§impl Clone for ColorPolicy
impl Clone for ColorPolicy
Source§fn clone(&self) -> ColorPolicy
fn clone(&self) -> ColorPolicy
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for ColorPolicy
Source§impl Debug for ColorPolicy
impl Debug for ColorPolicy
Source§impl Default for ColorPolicy
impl Default for ColorPolicy
Source§fn default() -> ColorPolicy
fn default() -> ColorPolicy
impl Eq for ColorPolicy
Source§impl PartialEq for ColorPolicy
impl PartialEq for ColorPolicy
Source§fn eq(&self, other: &ColorPolicy) -> bool
fn eq(&self, other: &ColorPolicy) -> bool
self and other values to be equal, and is used by ==.