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

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