pub struct Av1Invariant {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
AV1 sequence-header invariant — every encoder contributing segments to a single rendition MUST agree on these fields.
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, strict decoders
(dav1d in conformance mode, Safari AVFoundation, hls.js+libdav1d) reject the
segment. Optional fields (timing info, decoder model, film grain present,
operating points) are tolerated by every major player; we deliberately don’t
check them so NVENC + QSV + AMF + rav1e co-exist on one rendition without
cosmetic byte differences triggering false rejections.
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 Av1Invariant
impl Av1Invariant
pub fn from_sequence_header(sh: &Av1SequenceHeader) -> Self
Trait Implementations§
Source§impl Clone for Av1Invariant
impl Clone for Av1Invariant
Source§fn clone(&self) -> Av1Invariant
fn clone(&self) -> Av1Invariant
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 Av1Invariant
impl Debug for Av1Invariant
impl Eq for Av1Invariant
Source§impl PartialEq for Av1Invariant
impl PartialEq for Av1Invariant
Source§fn eq(&self, other: &Av1Invariant) -> bool
fn eq(&self, other: &Av1Invariant) -> bool
self and other values to be equal, and is used by ==.