async-mp4 0.1.1

Async Mp4 Muxer and Demuxer in pure rust
Documentation
use std::ops::Deref;
use fixed::types::I16F16;
use crate::mp4_data;

mp4_data! {
    #[derive(Default, Debug, Copy, Clone, Eq, PartialEq, Hash)]
    pub struct SampleEntry {
        pub _r1: [u8; 6],
        pub data_reference_index: u16
    }
}

mp4_data! {
    #[derive(Default, Debug, Copy, Clone, Eq, PartialEq, Hash)]
    pub struct VisualSampleEntry {
        pub sample_entry: SampleEntry,
        pub _r1: [u32; 4],
        pub width: u16,
        pub height: u16,
        pub horizresolution: I16F16,
        pub vertresolution: I16F16,
        pub _r2: u32,
        pub framecount: u16,
        pub compressorname: [u8; 32],
        pub depth: u16,
        pub _r3: u16,
    }
}

impl Deref for VisualSampleEntry {
    type Target = SampleEntry;

    fn deref(&self) -> &Self::Target {
        &self.sample_entry
    }
}

mp4_data! {
    #[derive(Default, Debug, Copy, Clone, Eq, PartialEq, Hash)]
    pub struct AudioSampleEntry {
        pub sample_entry: SampleEntry,
        pub _r1: [u32; 2],
        pub channel_count: u16,
        pub sample_size: u16,
        pub _r2: [u16; 2],
        pub sample_rate: I16F16,
    }
}

impl Deref for AudioSampleEntry {
    type Target = SampleEntry;

    fn deref(&self) -> &Self::Target {
        &self.sample_entry
    }
}