mp4_atom/moov/trak/
mod.rs

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