mp4_atom/moov/udta/
cprt.rs1use crate::*;
2
3#[derive(Debug, Clone, PartialEq, Eq, Default)]
4#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
5pub struct Cprt {
6 pub language: String,
7 pub notice: String,
8}
9
10impl AtomExt for Cprt {
11 type Ext = ();
12
13 const KIND_EXT: FourCC = FourCC::new(b"cprt");
14
15 fn decode_body_ext<B: Buf>(buf: &mut B, _ext: ()) -> Result<Self> {
16 let language_code = u16::decode(buf)?;
17 let language = language_string(language_code);
18
19 Ok(Cprt {
20 language,
21 notice: String::decode(buf)?,
22 })
23 }
24
25 fn encode_body_ext<B: BufMut>(&self, buf: &mut B) -> Result<()> {
26 let language_code = language_code(&self.language);
27 language_code.encode(buf)?;
28 self.notice.as_str().encode(buf)?;
29 Ok(())
30 }
31}