Struct IsobmffFile

Source
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>§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>>§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>§unknown_boxes: Vec<UnknownBox<'a>>

Any unknown boxes that were not recognized during deserialization.

§mfra: Option<MovieFragmentRandomAccessBox>

Trait Implementations§

Source§

impl<'a> Debug for IsobmffFile<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'a> Deserialize<'a> for IsobmffFile<'a>

Source§

fn deserialize<R>(reader: R) -> Result<Self>
where R: ZeroCopyReader<'a>,

Deserialize a value from the given zero-copy reader.
Source§

impl<'a> DeserializeSeed<'a, BoxHeader> for IsobmffFile<'a>

Source§

fn deserialize_seed<R>(reader: R, seed: BoxHeader) -> Result<Self>
where R: ZeroCopyReader<'a>,

Deserialize a value from the given zero-copy reader using the provided seed.
Source§

impl IsoBox for IsobmffFile<'_>

Source§

const TYPE: BoxType

The box type of this box.
Source§

fn add_header_size(payload_size: usize) -> usize

This function calculates the header size, adds it to the given payload size and return the result. Read more
Source§

fn serialize_box_header<W>(&self, _writer: W) -> Result<()>
where W: Write,

Serializes the box header returned by IsoBox::box_header to the given writer.
Source§

fn box_header(&self) -> BoxHeader

Constructs a BoxHeader for this box.
Source§

impl<'a> IsoSized for IsobmffFile<'a>

Source§

fn size(&self) -> usize

Returns the size of the type when serialized.
Source§

impl<'a> PartialEq for IsobmffFile<'a>

Source§

fn eq(&self, other: &IsobmffFile<'a>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<'a> Serialize for IsobmffFile<'a>

Source§

fn serialize<W>(&self, writer: W) -> Result<()>
where W: Write,

Serialize the value into the given writer.
Source§

impl<'a> Eq for IsobmffFile<'a>

Source§

impl<'a> StructuralPartialEq for IsobmffFile<'a>

Auto Trait Implementations§

§

impl<'a> !Freeze for IsobmffFile<'a>

§

impl<'a> RefUnwindSafe for IsobmffFile<'a>

§

impl<'a> Send for IsobmffFile<'a>

§

impl<'a> Sync for IsobmffFile<'a>

§

impl<'a> Unpin for IsobmffFile<'a>

§

impl<'a> UnwindSafe for IsobmffFile<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Az for T

Source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

Source§

fn cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> CheckedAs for T

Source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

Source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<Src, Dst> LosslessTryInto<Dst> for Src
where Dst: LosslessTryFrom<Src>,

Source§

fn lossless_try_into(self) -> Option<Dst>

Performs the conversion.
Source§

impl<Src, Dst> LossyInto<Dst> for Src
where Dst: LossyFrom<Src>,

Source§

fn lossy_into(self) -> Dst

Performs the conversion.
Source§

impl<T> OverflowingAs for T

Source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

Source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> SaturatingAs for T

Source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

Source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> UnwrappedAs for T

Source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

Source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> WrappingAs for T

Source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

Source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.