pub struct Eac3SyncInfo {
pub strmtyp: u8,
pub substreamid: u8,
pub frmsiz: u16,
pub fscod: u8,
pub fscod2: u8,
pub numblkscod: u8,
pub acmod: u8,
pub lfeon: bool,
pub bsid: u8,
pub dialnorm: u8,
pub bsmod: u8,
}Expand description
Parsed E-AC-3 sync-header fields needed to populate the MP4 dec3
AudioSpecificConfig box per ETSI TS 102 366 §F.6 (EC3SpecificBox).
Independent-substream subset only — no dependent substream fields are
extracted (num_dep_sub defaults to 0). Vanilla 5.1 E-AC-3 is the
dominant case in the wild and fits this profile.
Fields§
§strmtyp: u8strmtyp (2 bits). 0 = independent. We only support strmtyp=0 frames (Squad-26 scope; dependent / independent-substream-w/-deps deferred).
substreamid: u8substreamid (3 bits) — 0 for vanilla E-AC-3.
frmsiz: u16frmsiz (11 bits): frame size in 16-bit words minus one (frame size in bytes = (frmsiz + 1) * 2). Squad-26 uses this only to derive data_rate for the dec3 box.
fscod: u8fscod (2 bits): 0=48k 1=44.1k 2=32k 3=use_fscod2 (reduced-rate).
fscod2: u8fscod2 (2 bits): only valid when fscod==3. 0=24k 1=22.05k 2=16k.
numblkscod: u8numblkscod (2 bits): 0..=3 → 1/2/3/6 audio blocks per frame.
acmod: u8acmod (3 bits): channel layout — same encoding as AC-3 (Table F.4).
lfeon: boollfeon (1 bit): LFE channel present.
bsid: u8bsid (5 bits): always 16 for E-AC-3 (11..=16 reserved for AC-3 extensions; we only emit bsid==16 in dec3).
dialnorm: u8dialnorm (5 bits) — informational; dec3 doesn’t carry it.
bsmod: u8bsmod (3 bits) — only present when compre==1 / dialnorm valid; we emit zero when absent (matches ffmpeg behaviour).
Trait Implementations§
Source§impl Clone for Eac3SyncInfo
impl Clone for Eac3SyncInfo
Source§fn clone(&self) -> Eac3SyncInfo
fn clone(&self) -> Eac3SyncInfo
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for Eac3SyncInfo
Source§impl Debug for Eac3SyncInfo
impl Debug for Eac3SyncInfo
impl Eq for Eac3SyncInfo
Source§impl PartialEq for Eac3SyncInfo
impl PartialEq for Eac3SyncInfo
Source§fn eq(&self, other: &Eac3SyncInfo) -> bool
fn eq(&self, other: &Eac3SyncInfo) -> bool
self and other values to be equal, and is used by ==.