mp4_atom/moov/trak/
mod.rs

1mod edts;
2mod mdia;
3mod senc;
4mod tkhd;
5
6pub use edts::*;
7pub use mdia::*;
8pub use senc::*;
9pub use tkhd::*;
10
11use crate::*;
12
13#[derive(Debug, Clone, PartialEq, Eq, Default)]
14#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
15pub struct Trak {
16    pub tkhd: Tkhd,
17    pub edts: Option<Edts>,
18    pub meta: Option<Meta>, // TODO is this suppose to be here?
19    pub mdia: Mdia,
20    pub senc: Option<Senc>,
21    pub udta: Option<Udta>,
22}
23
24impl Atom for Trak {
25    const KIND: FourCC = FourCC::new(b"trak");
26
27    nested! {
28        required: [ Tkhd, Mdia ],
29        optional: [ Edts, Meta, Senc, Udta ],
30        multiple: [],
31    }
32}