mp4_atom/moov/trak/edts/
mod.rs1mod elst;
2pub use elst::*;
3
4use crate::*;
5
6#[derive(Debug, Clone, PartialEq, Eq, Default)]
7#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
8pub struct Edts {
9 pub elst: Option<Elst>,
10}
11
12impl Atom for Edts {
13 const KIND: FourCC = FourCC::new(b"edts");
14
15 nested! {
16 required: [],
17 optional: [ Elst ],
18 multiple: [],
19 }
20}
21
22#[cfg(test)]
23mod tests {
24 use super::*;
25
26 #[test]
29 fn test_edts_trailing_padding() {
30 let mut buf = Vec::new();
31 Edts::default().encode(&mut buf).unwrap();
32 buf.extend_from_slice(&[0, 0, 0, 0]);
33 let size = (buf.len() as u32).to_be_bytes();
34 buf[0..4].copy_from_slice(&size);
35
36 let edts = Edts::decode(&mut buf.as_slice()).expect("trailing padding must be tolerated");
37 assert_eq!(edts, Edts::default());
38 }
39}