#[non_exhaustive]pub struct CodecParameters {
pub codec_id: CodecId,
pub media_type: MediaType,
pub sample_rate: Option<u32>,
pub channels: Option<u16>,
pub sample_format: Option<SampleFormat>,
pub width: Option<u32>,
pub height: Option<u32>,
pub pixel_format: Option<PixelFormat>,
pub frame_rate: Option<Rational>,
pub extradata: Vec<u8>,
pub bit_rate: Option<u64>,
pub options: CodecOptions,
}Expand description
Codec-level parameters shared between demuxer/muxer and en/decoder.
Marked #[non_exhaustive] — construction via struct-literal
syntax is not supported. Use the audio /
video constructors (or functional-update
CodecParameters { ..base } syntax) so new fields can be added
without another semver break.
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.codec_id: CodecId§media_type: MediaType§sample_rate: Option<u32>§channels: Option<u16>§sample_format: Option<SampleFormat>§width: Option<u32>§height: Option<u32>§pixel_format: Option<PixelFormat>§frame_rate: Option<Rational>§extradata: Vec<u8>Per-codec setup bytes (e.g., SPS/PPS, OpusHead). Format defined by codec.
bit_rate: Option<u64>§options: CodecOptionsCodec-specific tuning knobs (e.g. {"interlace": "true"} for PNG’s
Adam7 encode, {"crf": "23"} for h264). Empty by default. The shape
is declared by each codec’s options struct — see
crate::options. Parsed once at encoder/decoder construction;
the hot path never touches this.
Implementations§
Source§impl CodecParameters
impl CodecParameters
pub fn audio(codec_id: CodecId) -> Self
Sourcepub fn matches_core(&self, other: &CodecParameters) -> bool
pub fn matches_core(&self, other: &CodecParameters) -> bool
True when self and other have the same codec_id and core
format parameters (sample_rate/channels/sample_format for audio,
width/height/pixel_format for video). Extradata and bitrate
differences are tolerated — many containers rewrite extradata
losslessly during a copy operation.
pub fn video(codec_id: CodecId) -> Self
Sourcepub fn subtitle(codec_id: CodecId) -> Self
pub fn subtitle(codec_id: CodecId) -> Self
Construct subtitle codec parameters. No format-specific fields
are populated — subtitle codecs typically only carry an opaque
extradata blob (the format’s header / style block) and the
codec id.
Sourcepub fn data(codec_id: CodecId) -> Self
pub fn data(codec_id: CodecId) -> Self
Construct generic data-stream codec parameters (timed metadata,
chapters, etc.). Like Self::subtitle, no format-specific
fields are populated.
Trait Implementations§
Source§impl Clone for CodecParameters
impl Clone for CodecParameters
Source§fn clone(&self) -> CodecParameters
fn clone(&self) -> CodecParameters
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more