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}
19
20impl Atom for Trak {
21    const KIND: FourCC = FourCC::new(b"trak");
22
23    nested! {
24        required: [ Tkhd, Mdia ],
25        optional: [ Edts, Meta ],
26        multiple: [],
27    }
28}