mp4_atom/moov/trak/mdia/minf/stbl/stsd/
pasp.rs1use 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}