isobmff/boxes/
multiplexed_timed_metadata_tracks.rs

1use super::{BitRateBox, MetaDataSampleEntry};
2use crate::{IsoBox, UnknownBox};
3
4/// Boxed metadata sample entry
5///
6/// ISO/IEC 14496-12 - 12.9.4.1
7#[derive(IsoBox, Debug, PartialEq, Eq)]
8#[iso_box(box_type = b"mebx", crate_path = crate)]
9pub struct BoxedMetadataSampleEntry<'a> {
10    /// The sample entry that this box inherits from.
11    pub sample_entry: MetaDataSampleEntry,
12    /// The contained [`MetadataKeyTableBox`]. (mandatory)
13    #[iso_box(nested_box)]
14    pub keys: MetadataKeyTableBox<'a>,
15    /// The contained [`BitRateBox`]. (optional)
16    #[iso_box(nested_box(collect))]
17    pub btrt: Option<BitRateBox>,
18    /// A list of unknown boxes that were not recognized during deserialization.
19    #[iso_box(nested_box(collect_unknown))]
20    pub unknown_boxes: Vec<UnknownBox<'a>>,
21}
22
23/// Metadata key table box
24///
25/// ISO/IEC 14496-12 - 12.9.4.2
26#[derive(IsoBox, Debug, PartialEq, Eq)]
27#[iso_box(box_type = b"keys", crate_path = crate)]
28pub struct MetadataKeyTableBox<'a> {
29    /// The contained key boxes. (not further implemented)
30    #[iso_box(nested_box(collect_unknown))]
31    pub key_boxes: Vec<UnknownBox<'a>>,
32}