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