Enum aws_sdk_mediaconvert::types::ColorSpace
source · #[non_exhaustive]pub enum ColorSpace {
Follow,
Hdr10,
Hlg2020,
P3D65Hdr,
P3D65Sdr,
P3Dci,
Rec601,
Rec709,
Unknown(UnknownVariantValue),
}
Expand description
When writing a match expression against ColorSpace
, it is important to ensure
your code is forward-compatible. That is, if a match arm handles a case for a
feature that is supported by the service but has not been represented as an enum
variant in a current version of SDK, your code should continue to work when you
upgrade SDK to a future version in which the enum does include a variant for that
feature.
Here is an example of how you can make a match expression forward-compatible:
# let colorspace = unimplemented!();
match colorspace {
ColorSpace::Follow => { /* ... */ },
ColorSpace::Hdr10 => { /* ... */ },
ColorSpace::Hlg2020 => { /* ... */ },
ColorSpace::P3D65Hdr => { /* ... */ },
ColorSpace::P3D65Sdr => { /* ... */ },
ColorSpace::P3Dci => { /* ... */ },
ColorSpace::Rec601 => { /* ... */ },
ColorSpace::Rec709 => { /* ... */ },
other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
_ => { /* ... */ },
}
The above code demonstrates that when colorspace
represents
NewFeature
, the execution path will lead to the second last match arm,
even though the enum does not contain a variant ColorSpace::NewFeature
in the current version of SDK. The reason is that the variable other
,
created by the @
operator, is bound to
ColorSpace::Unknown(UnknownVariantValue("NewFeature".to_owned()))
and calling as_str
on it yields "NewFeature"
.
This match expression is forward-compatible when executed with a newer
version of SDK where the variant ColorSpace::NewFeature
is defined.
Specifically, when colorspace
represents NewFeature
,
the execution path will hit the second last match arm as before by virtue of
calling as_str
on ColorSpace::NewFeature
also yielding "NewFeature"
.
Explicitly matching on the Unknown
variant should
be avoided for two reasons:
- The inner data
UnknownVariantValue
is opaque, and no further information can be extracted. - It might inadvertently shadow other intended match arms. If your input video has accurate color space metadata, or if you don’t know about color space: Keep the default value, Follow. MediaConvert will automatically detect your input color space. If your input video has metadata indicating the wrong color space, or has missing metadata: Specify the accurate color space here. If your input video is HDR 10 and the SMPTE ST 2086 Mastering Display Color Volume static metadata isn’t present in your video stream, or if that metadata is present but not accurate: Choose Force HDR 10. Specify correct values in the input HDR 10 metadata settings. For more information about HDR jobs, see https://docs.aws.amazon.com/console/mediaconvert/hdr. When you specify an input color space, MediaConvert uses the following color space metadata, which includes color primaries, transfer characteristics, and matrix coefficients:
- HDR 10: BT.2020, PQ, BT.2020 non-constant
- HLG 2020: BT.2020, HLG, BT.2020 non-constant
- P3DCI (Theater): DCIP3, SMPTE 428M, BT.709
- P3D65 (SDR): Display P3, sRGB, BT.709
- P3D65 (HDR): Display P3, PQ, BT.709
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Follow
Hdr10
Hlg2020
P3D65Hdr
P3D65Sdr
P3Dci
Rec601
Rec709
Unknown(UnknownVariantValue)
Unknown
. See the docs on this enum for the correct way to handle unknown variants.Unknown
contains new variants that have been added since this code was generated.
Implementations§
source§impl ColorSpace
impl ColorSpace
source§impl ColorSpace
impl ColorSpace
sourcepub fn try_parse(value: &str) -> Result<Self, UnknownVariantError>
pub fn try_parse(value: &str) -> Result<Self, UnknownVariantError>
Parses the enum value while disallowing unknown variants.
Unknown variants will result in an error.
Trait Implementations§
source§impl AsRef<str> for ColorSpace
impl AsRef<str> for ColorSpace
source§impl Clone for ColorSpace
impl Clone for ColorSpace
source§fn clone(&self) -> ColorSpace
fn clone(&self) -> ColorSpace
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for ColorSpace
impl Debug for ColorSpace
source§impl Display for ColorSpace
impl Display for ColorSpace
source§impl From<&str> for ColorSpace
impl From<&str> for ColorSpace
source§impl FromStr for ColorSpace
impl FromStr for ColorSpace
source§impl Hash for ColorSpace
impl Hash for ColorSpace
source§impl Ord for ColorSpace
impl Ord for ColorSpace
source§fn cmp(&self, other: &ColorSpace) -> Ordering
fn cmp(&self, other: &ColorSpace) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
source§impl PartialEq for ColorSpace
impl PartialEq for ColorSpace
source§fn eq(&self, other: &ColorSpace) -> bool
fn eq(&self, other: &ColorSpace) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd for ColorSpace
impl PartialOrd for ColorSpace
source§fn partial_cmp(&self, other: &ColorSpace) -> Option<Ordering>
fn partial_cmp(&self, other: &ColorSpace) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moreimpl Eq for ColorSpace
impl StructuralPartialEq for ColorSpace
Auto Trait Implementations§
impl Freeze for ColorSpace
impl RefUnwindSafe for ColorSpace
impl Send for ColorSpace
impl Sync for ColorSpace
impl Unpin for ColorSpace
impl UnwindSafe for ColorSpace
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more