Skip to main content

mp4_atom/moov/trak/
mod.rs

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