mp4_atom/moov/trak/mdia/minf/stbl/stsd/
pasp.rs

1use crate::*;
2
3#[derive(Debug, Clone, PartialEq, Eq, Default)]
4#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
5pub struct Pasp {
6    pub h_spacing: u32,
7    pub v_spacing: u32,
8}
9
10impl Pasp {
11    pub fn new(h_spacing: u32, v_spacing: u32) -> Result<Self> {
12        Ok(Self {
13            h_spacing,
14            v_spacing,
15        })
16    }
17}
18
19impl Atom for Pasp {
20    const KIND: FourCC = FourCC::new(b"pasp");
21
22    fn decode_body<B: Buf>(buf: &mut B) -> Result<Self> {
23        let h_spacing = u32::decode(buf)?;
24        let v_spacing = u32::decode(buf)?;
25
26        Ok(Pasp {
27            h_spacing,
28            v_spacing,
29        })
30    }
31
32    fn encode_body<B: BufMut>(&self, buf: &mut B) -> Result<()> {
33        self.h_spacing.encode(buf)?;
34        self.v_spacing.encode(buf)?;
35        Ok(())
36    }
37}