mp4_atom/moov/trak/mdia/minf/stbl/
mod.rs

1mod 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}