pub struct IsobmffFile<'a> {Show 15 fields
pub ftyp: Option<FileTypeBox>,
pub etyp: Vec<ExtendedTypeBox<'a>>,
pub otyp: Vec<OriginalFileTypeBox<'a>>,
pub pdin: Option<ProgressiveDownloadInfoBox>,
pub moov: Option<MovieBox<'a>>,
pub moof: Vec<MovieFragmentBox<'a>>,
pub mdat: Vec<MediaDataBox<'a>>,
pub imda: Vec<IdentifiedMediaDataBox<'a>>,
pub meta: Option<MetaBox<'a>>,
pub styp: Vec<SegmentTypeBox>,
pub sidx: Vec<SegmentIndexBox>,
pub ssix: Vec<SubsegmentIndexBox>,
pub prft: Vec<ProducerReferenceTimeBox>,
pub unknown_boxes: Vec<UnknownBox<'a>>,
pub mfra: Option<MovieFragmentRandomAccessBox>,
}Expand description
Represents an ISO Base Media File Format (ISOBMFF) file.
This encapsulates all boxes that may be present in an ISOBMFF file. You can also use the boxes directly for more fine-grained control.
Fields§
§ftyp: Option<FileTypeBox>Optional FileTypeBox.
According to the official specification the FileTypeBox is mandatory
but in reality some files do not contain it. (e.g. recording of live streams)
etyp: Vec<ExtendedTypeBox<'a>>A list of ExtendedTypeBoxes.
otyp: Vec<OriginalFileTypeBox<'a>>A list of OriginalFileTypeBoxes.
pdin: Option<ProgressiveDownloadInfoBox>Optional ProgressiveDownloadInfoBox.
moov: Option<MovieBox<'a>>Optional MovieBox.
According to the official specification the MovieBox is mandatory,
but in reality some files (e.g. HEIF) do not contain it.
Apparently it is possible for derived specifications to change the
rules of the base specification.
See: https://github.com/MPEGGroup/FileFormatConformance/issues/154
moof: Vec<MovieFragmentBox<'a>>A list of MovieFragmentBoxes.
mdat: Vec<MediaDataBox<'a>>A list of MediaDataBoxes.
imda: Vec<IdentifiedMediaDataBox<'a>>A list of IdentifiedMediaDataBoxes.
meta: Option<MetaBox<'a>>Optional MetaBox.
styp: Vec<SegmentTypeBox>A list of SegmentTypeBoxes.
sidx: Vec<SegmentIndexBox>A list of SegmentIndexBoxes.
ssix: Vec<SubsegmentIndexBox>A list of SubsegmentIndexBoxes.
prft: Vec<ProducerReferenceTimeBox>A list of ProducerReferenceTimeBoxes.
unknown_boxes: Vec<UnknownBox<'a>>Any unknown boxes that were not recognized during deserialization.
mfra: Option<MovieFragmentRandomAccessBox>Optional MovieFragmentRandomAccessBox.
Trait Implementations§
Source§impl<'a> Debug for IsobmffFile<'a>
impl<'a> Debug for IsobmffFile<'a>
Source§impl<'a> Deserialize<'a> for IsobmffFile<'a>
impl<'a> Deserialize<'a> for IsobmffFile<'a>
Source§fn deserialize<R>(reader: R) -> Result<Self>where
R: ZeroCopyReader<'a>,
fn deserialize<R>(reader: R) -> Result<Self>where
R: ZeroCopyReader<'a>,
Source§impl<'a> DeserializeSeed<'a, BoxHeader> for IsobmffFile<'a>
impl<'a> DeserializeSeed<'a, BoxHeader> for IsobmffFile<'a>
Source§fn deserialize_seed<R>(reader: R, seed: BoxHeader) -> Result<Self>where
R: ZeroCopyReader<'a>,
fn deserialize_seed<R>(reader: R, seed: BoxHeader) -> Result<Self>where
R: ZeroCopyReader<'a>,
Source§impl IsoBox for IsobmffFile<'_>
impl IsoBox for IsobmffFile<'_>
Source§fn add_header_size(payload_size: usize) -> usize
fn add_header_size(payload_size: usize) -> usize
Source§fn serialize_box_header<W>(&self, _writer: W) -> Result<()>where
W: Write,
fn serialize_box_header<W>(&self, _writer: W) -> Result<()>where
W: Write,
IsoBox::box_header to the given writer.Source§fn box_header(&self) -> BoxHeader
fn box_header(&self) -> BoxHeader
BoxHeader for this box.