pub struct RungCodecInvariant {Show 14 fields
pub seq_profile: u8,
pub seq_level_idx_0: u8,
pub seq_tier_0: u8,
pub bit_depth: u8,
pub monochrome: bool,
pub chroma_subsampling_x: bool,
pub chroma_subsampling_y: bool,
pub color_primaries: u8,
pub transfer_characteristics: u8,
pub matrix_coefficients: u8,
pub color_range: bool,
pub max_frame_width_minus1: u32,
pub max_frame_height_minus1: u32,
pub still_picture: bool,
}Expand description
Mandatory AV1 sequence-header fields that every encoder contributing segments to a single rendition MUST agree on.
Why these specific fields: each is part of the codec-init contract
that the player sets up once from av1C and expects to hold for
every segment. The decoder re-parses the inline OBU sequence
header in each segment’s IDR; if its parsed values disagree with
the av1C from init.mp4 on any of these fields, strict decoders
(dav1d in conformance mode, Safari AVFoundation, hls.js+libdav1d)
will reject the segment. Optional fields not listed here (timing
info presence, decoder model presence, film grain present flag,
operating-point details) are tolerated by every major player; we
deliberately don’t check them so that NVENC + QSV + AMF + rav1e
can co-exist on one rendition without cosmetic byte differences
triggering false rejections.
First worker on a rung SETS the invariant. Subsequent workers (helpers from any vendor) COMPARE; mismatch fails the run loudly instead of silently corrupting output.
Fields§
§seq_profile: u8§seq_level_idx_0: u8§seq_tier_0: u8§bit_depth: u8§monochrome: bool§chroma_subsampling_x: bool§chroma_subsampling_y: bool§color_primaries: u8§transfer_characteristics: u8§matrix_coefficients: u8§color_range: bool§max_frame_width_minus1: u32§max_frame_height_minus1: u32§still_picture: boolImplementations§
Source§impl RungCodecInvariant
impl RungCodecInvariant
pub fn from_sequence_header(sh: &Av1SequenceHeader) -> Self
Trait Implementations§
Source§impl Clone for RungCodecInvariant
impl Clone for RungCodecInvariant
Source§fn clone(&self) -> RungCodecInvariant
fn clone(&self) -> RungCodecInvariant
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 RungCodecInvariant
impl Debug for RungCodecInvariant
impl Eq for RungCodecInvariant
Source§impl PartialEq for RungCodecInvariant
impl PartialEq for RungCodecInvariant
Source§fn eq(&self, other: &RungCodecInvariant) -> bool
fn eq(&self, other: &RungCodecInvariant) -> bool
self and other values to be equal, and is used by ==.