macro_rules! box_database {
($($boxenum:ident $boxtype:expr),*,) => {
#[derive(Debug, Clone, Copy, PartialEq)]
pub enum BoxType {
$($boxenum),*,
UnknownBox(u32),
}
impl From<u32> for BoxType {
fn from(t: u32) -> BoxType {
use self::BoxType::*;
match t {
$($boxtype => $boxenum),*,
_ => UnknownBox(t),
}
}
}
}
}
box_database!(
FileTypeBox 0x66747970, MovieBox 0x6d6f6f76, MovieHeaderBox 0x6d766864, TrackBox 0x7472616b, TrackHeaderBox 0x746b6864, EditBox 0x65647473, MediaBox 0x6d646961, EditListBox 0x656c7374, MediaHeaderBox 0x6d646864, HandlerBox 0x68646c72, MediaInformationBox 0x6d696e66, SampleTableBox 0x7374626c, SampleDescriptionBox 0x73747364, TimeToSampleBox 0x73747473, SampleToChunkBox 0x73747363, SampleSizeBox 0x7374737a, ChunkOffsetBox 0x7374636f, ChunkLargeOffsetBox 0x636f3634, SyncSampleBox 0x73747373, AVCSampleEntry 0x61766331, AVC3SampleEntry 0x61766333, AVCConfigurationBox 0x61766343, MP4AudioSampleEntry 0x6d703461, ESDBox 0x65736473, VP8SampleEntry 0x76703038, VP9SampleEntry 0x76703039, VPCodecConfigurationBox 0x76706343, OpusSampleEntry 0x4f707573, OpusSpecificBox 0x644f7073, ProtectedVisualSampleEntry 0x656e6376, ProtectedAudioSampleEntry 0x656e6361, );