async_mp4/types/
sample.rs1use std::ops::Deref;
2use fixed::types::I16F16;
3use crate::mp4_data;
4
5mp4_data! {
6 #[derive(Default, Debug, Copy, Clone, Eq, PartialEq, Hash)]
7 pub struct SampleEntry {
8 pub _r1: [u8; 6],
9 pub data_reference_index: u16
10 }
11}
12
13mp4_data! {
14 #[derive(Default, Debug, Copy, Clone, Eq, PartialEq, Hash)]
15 pub struct VisualSampleEntry {
16 pub sample_entry: SampleEntry,
17 pub _r1: [u32; 4],
18 pub width: u16,
19 pub height: u16,
20 pub horizresolution: I16F16,
21 pub vertresolution: I16F16,
22 pub _r2: u32,
23 pub framecount: u16,
24 pub compressorname: [u8; 32],
25 pub depth: u16,
26 pub _r3: u16,
27 }
28}
29
30impl Deref for VisualSampleEntry {
31 type Target = SampleEntry;
32
33 fn deref(&self) -> &Self::Target {
34 &self.sample_entry
35 }
36}
37
38mp4_data! {
39 #[derive(Default, Debug, Copy, Clone, Eq, PartialEq, Hash)]
40 pub struct AudioSampleEntry {
41 pub sample_entry: SampleEntry,
42 pub _r1: [u32; 2],
43 pub channel_count: u16,
44 pub sample_size: u16,
45 pub _r2: [u16; 2],
46 pub sample_rate: I16F16,
47 }
48}
49
50impl Deref for AudioSampleEntry {
51 type Target = SampleEntry;
52
53 fn deref(&self) -> &Self::Target {
54 &self.sample_entry
55 }
56}