mp4_atom/moov/trak/mdia/minf/stbl/
mod.rs1mod co64;
2mod ctts;
3mod saiz;
4mod sbgp;
5mod sgpd;
6mod stco;
7mod stsc;
8mod stsd;
9mod stss;
10mod stsz;
11mod stts;
12mod subs;
13
14pub use co64::*;
15pub use ctts::*;
16pub use saiz::*;
17pub use sbgp::*;
18pub use sgpd::*;
19pub use stco::*;
20pub use stsc::*;
21pub use stsd::*;
22pub use stss::*;
23pub use stsz::*;
24pub use stts::*;
25pub use subs::*;
26
27use crate::*;
28
29#[derive(Debug, Clone, PartialEq, Eq, Default)]
30#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
31pub struct Stbl {
32 pub stsd: Stsd,
33 pub stts: Stts,
34 pub ctts: Option<Ctts>,
35 pub stss: Option<Stss>,
36 pub stsc: Stsc,
37 pub stsz: Stsz,
38 pub stco: Option<Stco>,
39 pub co64: Option<Co64>,
40 pub sbgp: Vec<Sbgp>,
41 pub sgpd: Vec<Sgpd>,
42 pub subs: Vec<Subs>,
43 pub saiz: Vec<Saiz>,
44 pub saio: Vec<Saio>,
45}
46
47impl Atom for Stbl {
48 const KIND: FourCC = FourCC::new(b"stbl");
49
50 nested! {
51 required: [ Stsd, Stts, Stsc, Stsz ],
52 optional: [ Ctts, Stss, Stco, Co64 ],
53 multiple: [ Sbgp, Sgpd, Subs, Saiz, Saio ],
54 }
55}