all atoms for init segment
This commit is contained in:
parent
b9a7b10639
commit
9680ffd46b
1 changed files with 165 additions and 10 deletions
|
@ -10,6 +10,12 @@ struct WindowMatrix {
|
|||
w: u32,
|
||||
}
|
||||
|
||||
struct Edits {
|
||||
duration: u64,
|
||||
start: u64,
|
||||
play_rate: u32,
|
||||
}
|
||||
|
||||
struct MOOV {
|
||||
mvhd: MVHD,
|
||||
traks: [TRAK; 2],
|
||||
|
@ -19,10 +25,10 @@ struct MOOV {
|
|||
struct MVHD {
|
||||
version: u8,
|
||||
flags: u32,
|
||||
create_time: u32,
|
||||
modify_time: u32,
|
||||
create_time: u64,
|
||||
modify_time: u64,
|
||||
time_scale: u32,
|
||||
duration: u32,
|
||||
duration: u64,
|
||||
playrate: u32,
|
||||
volume: u16,
|
||||
matrix: WindowMatrix,
|
||||
|
@ -36,13 +42,13 @@ struct TRAK {
|
|||
}
|
||||
|
||||
struct TKHD {
|
||||
version: u32,
|
||||
version: u8,
|
||||
flags: u32,
|
||||
create_time: u32,
|
||||
modify_time: u32,
|
||||
create_time: u64,
|
||||
modify_time: u64,
|
||||
track_id: u32,
|
||||
time_scale: u32,
|
||||
duration: u32,
|
||||
duration: u64,
|
||||
layer: u16,
|
||||
alt_group: u16,
|
||||
volume: u16,
|
||||
|
@ -51,8 +57,157 @@ struct TKHD {
|
|||
height: u32,
|
||||
}
|
||||
|
||||
struct EDTS;
|
||||
struct EDTS {
|
||||
elst: ELST,
|
||||
}
|
||||
|
||||
struct MDIA;
|
||||
struct ELST {
|
||||
version: u8,
|
||||
flags: u32,
|
||||
num_edits: u32,
|
||||
edits: Vec<Edits>,
|
||||
}
|
||||
|
||||
struct MVEX;
|
||||
struct MDIA {
|
||||
mdhd: MDHD,
|
||||
hdlr: HDLR,
|
||||
minf: MINF,
|
||||
}
|
||||
|
||||
struct MDHD {
|
||||
version: u8,
|
||||
flags: u32,
|
||||
create_time: u64,
|
||||
modify_time: u64,
|
||||
time_scale: u32,
|
||||
duration: u64,
|
||||
language: u32,
|
||||
}
|
||||
|
||||
struct HDLR {
|
||||
version: u8,
|
||||
flags: u32,
|
||||
handler: u32,
|
||||
name: String,
|
||||
}
|
||||
|
||||
enum MINF {
|
||||
Video(MINF_V),
|
||||
Audio(MINF_A),
|
||||
}
|
||||
|
||||
struct MINF_V {
|
||||
vmhd: VMHD,
|
||||
dinf: DINF,
|
||||
stbl: STBL,
|
||||
}
|
||||
|
||||
struct VMHD {
|
||||
version: u8,
|
||||
flags: u32,
|
||||
mode: u16,
|
||||
opcolor: [u16; 3],
|
||||
}
|
||||
|
||||
struct MINF_A {
|
||||
smhd: SMHD,
|
||||
dinf: DINF,
|
||||
stbl: STBL,
|
||||
}
|
||||
|
||||
struct SMHD {
|
||||
version: u8,
|
||||
flags: u32,
|
||||
balance: u16,
|
||||
}
|
||||
|
||||
struct DINF {
|
||||
dref: DREF,
|
||||
}
|
||||
|
||||
struct DREF {
|
||||
version: u8,
|
||||
flags: u32,
|
||||
num_refs: u32,
|
||||
refs: Vec<Refs>
|
||||
}
|
||||
|
||||
enum Refs {
|
||||
RefURL(URL),
|
||||
RefURN(URN),
|
||||
}
|
||||
|
||||
struct URL {
|
||||
version: u8,
|
||||
flags: u32,
|
||||
url: String,
|
||||
}
|
||||
|
||||
struct URN {
|
||||
version: u8,
|
||||
flags: u32,
|
||||
urn: String,
|
||||
}
|
||||
|
||||
struct STBL {
|
||||
stsd: Vec<u8>,
|
||||
stts: STTS,
|
||||
stsc: STSC,
|
||||
stsz: STSZ,
|
||||
stco: STCO,
|
||||
opts: Vec<Vec<u8>>,
|
||||
}
|
||||
|
||||
struct STTS {
|
||||
version: u8,
|
||||
flags: u32,
|
||||
num_entires: u32,
|
||||
entires: Vec<STTSEntry>,
|
||||
}
|
||||
|
||||
struct STTSEntry {
|
||||
count_consec: u32,
|
||||
duration: u32,
|
||||
}
|
||||
|
||||
struct STSC {
|
||||
version: u8,
|
||||
flags: u32,
|
||||
num_entries: u32,
|
||||
entries: Vec<STSCEntry>,
|
||||
}
|
||||
|
||||
struct STSCEntry {
|
||||
chunk_idx: u32,
|
||||
samples_per: u32,
|
||||
data_ref_idx: u32,
|
||||
}
|
||||
|
||||
struct STSZ {
|
||||
version: u8,
|
||||
flags: u32,
|
||||
common_size: u32,
|
||||
num_entries: u32,
|
||||
entries: Vec<u32>,
|
||||
}
|
||||
|
||||
struct STCO {
|
||||
version: u8,
|
||||
flags: u32,
|
||||
num_entries: u32,
|
||||
entries: Vec<u32>,
|
||||
}
|
||||
|
||||
struct MVEX {
|
||||
trexs: [TREX; 2],
|
||||
}
|
||||
|
||||
struct TREX {
|
||||
version: u8,
|
||||
flags: u32,
|
||||
track_id: u32,
|
||||
default_desc_idx: u32,
|
||||
default_duration: u32,
|
||||
default_size: u32,
|
||||
default_flags: u32,
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue