#[non_exhaustive]pub struct CodecMetadata {
pub bit_depth: Option<i32>,
pub chroma_subsampling: Option<String>,
pub coded_frame_rate: Option<FrameRate>,
pub color_primaries: Option<ColorPrimaries>,
pub height: Option<i32>,
pub level: Option<String>,
pub matrix_coefficients: Option<MatrixCoefficients>,
pub profile: Option<String>,
pub scan_type: Option<String>,
pub transfer_characteristics: Option<TransferCharacteristics>,
pub width: Option<i32>,
}Expand description
Codec-specific parameters parsed from the video essence headers. This information provides detailed technical specifications about how the video was encoded, including profile settings, resolution details, and color space information that can help you understand the source video characteristics and make informed encoding decisions.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.bit_depth: Option<i32>The number of bits used per color component in the video essence such as 8, 10, or 12 bits. Standard range (SDR) video typically uses 8-bit, while 10-bit is common for high dynamic range (HDR).
chroma_subsampling: Option<String>The chroma subsampling format used in the video encoding, such as “4:2:0” or “4:4:4”. This describes how color information is sampled relative to brightness information. Different subsampling ratios affect video quality and file size, with “4:4:4” providing the highest color fidelity and “4:2:0” being most common for standard video.
coded_frame_rate: Option<FrameRate>The frame rate of the video or audio track, expressed as a fraction with numerator and denominator values.
color_primaries: Option<ColorPrimaries>The color space primaries of the video track, defining the red, green, and blue color coordinates used for the video. This information helps ensure accurate color reproduction during playback and transcoding.
height: Option<i32>The height in pixels as coded by the codec. This represents the actual encoded video height as specified in the video stream headers.
level: Option<String>The codec level or tier that specifies the maximum processing requirements and capabilities. Levels define constraints such as maximum bit rate, frame rate, and resolution.
matrix_coefficients: Option<MatrixCoefficients>The color space matrix coefficients of the video track, defining how RGB color values are converted to and from YUV color space. This affects color accuracy during encoding and decoding processes.
profile: Option<String>The codec profile used to encode the video. Profiles define specific feature sets and capabilities within a codec standard. For example, H.264 profiles include Baseline, Main, and High, each supporting different encoding features and complexity levels.
scan_type: Option<String>The scanning method specified in the video essence, indicating whether the video uses progressive or interlaced scanning.
transfer_characteristics: Option<TransferCharacteristics>The color space transfer characteristics of the video track, defining the relationship between linear light values and the encoded signal values. This affects brightness and contrast reproduction.
width: Option<i32>The width in pixels as coded by the codec. This represents the actual encoded video width as specified in the video stream headers.
Implementations§
Source§impl CodecMetadata
impl CodecMetadata
Sourcepub fn bit_depth(&self) -> Option<i32>
pub fn bit_depth(&self) -> Option<i32>
The number of bits used per color component in the video essence such as 8, 10, or 12 bits. Standard range (SDR) video typically uses 8-bit, while 10-bit is common for high dynamic range (HDR).
Sourcepub fn chroma_subsampling(&self) -> Option<&str>
pub fn chroma_subsampling(&self) -> Option<&str>
The chroma subsampling format used in the video encoding, such as “4:2:0” or “4:4:4”. This describes how color information is sampled relative to brightness information. Different subsampling ratios affect video quality and file size, with “4:4:4” providing the highest color fidelity and “4:2:0” being most common for standard video.
Sourcepub fn coded_frame_rate(&self) -> Option<&FrameRate>
pub fn coded_frame_rate(&self) -> Option<&FrameRate>
The frame rate of the video or audio track, expressed as a fraction with numerator and denominator values.
Sourcepub fn color_primaries(&self) -> Option<&ColorPrimaries>
pub fn color_primaries(&self) -> Option<&ColorPrimaries>
The color space primaries of the video track, defining the red, green, and blue color coordinates used for the video. This information helps ensure accurate color reproduction during playback and transcoding.
Sourcepub fn height(&self) -> Option<i32>
pub fn height(&self) -> Option<i32>
The height in pixels as coded by the codec. This represents the actual encoded video height as specified in the video stream headers.
Sourcepub fn level(&self) -> Option<&str>
pub fn level(&self) -> Option<&str>
The codec level or tier that specifies the maximum processing requirements and capabilities. Levels define constraints such as maximum bit rate, frame rate, and resolution.
Sourcepub fn matrix_coefficients(&self) -> Option<&MatrixCoefficients>
pub fn matrix_coefficients(&self) -> Option<&MatrixCoefficients>
The color space matrix coefficients of the video track, defining how RGB color values are converted to and from YUV color space. This affects color accuracy during encoding and decoding processes.
Sourcepub fn profile(&self) -> Option<&str>
pub fn profile(&self) -> Option<&str>
The codec profile used to encode the video. Profiles define specific feature sets and capabilities within a codec standard. For example, H.264 profiles include Baseline, Main, and High, each supporting different encoding features and complexity levels.
Sourcepub fn scan_type(&self) -> Option<&str>
pub fn scan_type(&self) -> Option<&str>
The scanning method specified in the video essence, indicating whether the video uses progressive or interlaced scanning.
Sourcepub fn transfer_characteristics(&self) -> Option<&TransferCharacteristics>
pub fn transfer_characteristics(&self) -> Option<&TransferCharacteristics>
The color space transfer characteristics of the video track, defining the relationship between linear light values and the encoded signal values. This affects brightness and contrast reproduction.
Source§impl CodecMetadata
impl CodecMetadata
Sourcepub fn builder() -> CodecMetadataBuilder
pub fn builder() -> CodecMetadataBuilder
Creates a new builder-style object to manufacture CodecMetadata.
Trait Implementations§
Source§impl Clone for CodecMetadata
impl Clone for CodecMetadata
Source§fn clone(&self) -> CodecMetadata
fn clone(&self) -> CodecMetadata
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CodecMetadata
impl Debug for CodecMetadata
Source§impl PartialEq for CodecMetadata
impl PartialEq for CodecMetadata
Source§fn eq(&self, other: &CodecMetadata) -> bool
fn eq(&self, other: &CodecMetadata) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for CodecMetadata
Auto Trait Implementations§
impl Freeze for CodecMetadata
impl RefUnwindSafe for CodecMetadata
impl Send for CodecMetadata
impl Sync for CodecMetadata
impl Unpin for CodecMetadata
impl UnsafeUnpin for CodecMetadata
impl UnwindSafe for CodecMetadata
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<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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 moreSource§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);