Skip to main content

Info

Struct Info 

Source
pub struct Info {
Show 16 fields pub crc32: Option<Crc32>, pub void: Option<Void>, pub segment_uuid: Option<SegmentUuid>, pub segment_filename: Option<SegmentFilename>, pub prev_uuid: Option<PrevUuid>, pub prev_filename: Option<PrevFilename>, pub next_uuid: Option<NextUuid>, pub next_filename: Option<NextFilename>, pub segment_family: Vec<SegmentFamily>, pub chapter_translate: Vec<ChapterTranslate>, pub timestamp_scale: TimestampScale, pub duration: Option<Duration>, pub date_utc: Option<DateUtc>, pub title: Option<Title>, pub muxing_app: MuxingApp, pub writing_app: WritingApp,
}
Expand description

Contains general information about the Segment.

Fields§

§crc32: Option<Crc32>

Optional CRC-32 element for integrity checking.

§void: Option<Void>

void element, useful for reserving space during writing.

§segment_uuid: Option<SegmentUuid>

A randomly generated unique ID to identify the Segment amongst many others (128 bits). It is equivalent to a UUID v4 [@!RFC4122] with all bits randomly (or pseudo-randomly) chosen. An actual UUID v4 value, where some bits are not random, MAY also be used. If the Segment is a part of a Linked Segment, then this Element is REQUIRED. The value of the unique ID MUST contain at least one bit set to 1.

§segment_filename: Option<SegmentFilename>

A filename corresponding to this Segment.

§prev_uuid: Option<PrevUuid>

An ID to identify the previous Segment of a Linked Segment. If the Segment is a part of a Linked Segment that uses Hard Linking (hard-linking), then either the PrevUUID or the NextUUID Element is REQUIRED. If a Segment contains a PrevUUID but not a NextUUID, then it MAY be considered as the last Segment of the Linked Segment. The PrevUUID MUST NOT be equal to the SegmentUUID.

§prev_filename: Option<PrevFilename>

A filename corresponding to the file of the previous Linked Segment. Provision of the previous filename is for display convenience, but PrevUUID SHOULD be considered authoritative for identifying the previous Segment in a Linked Segment.

§next_uuid: Option<NextUuid>

An ID to identify the next Segment of a Linked Segment. If the Segment is a part of a Linked Segment that uses Hard Linking (hard-linking), then either the PrevUUID or the NextUUID Element is REQUIRED. If a Segment contains a NextUUID but not a PrevUUID, then it MAY be considered as the first Segment of the Linked Segment. The NextUUID MUST NOT be equal to the SegmentUUID.

§next_filename: Option<NextFilename>

A filename corresponding to the file of the next Linked Segment. Provision of the next filename is for display convenience, but NextUUID SHOULD be considered authoritative for identifying the Next Segment.

§segment_family: Vec<SegmentFamily>

A unique ID that all Segments of a Linked Segment MUST share (128 bits). It is equivalent to a UUID v4 [@!RFC4122] with all bits randomly (or pseudo-randomly) chosen. An actual UUID v4 value, where some bits are not random, MAY also be used. If the Segment Info contains a ChapterTranslate element, this Element is REQUIRED.

§chapter_translate: Vec<ChapterTranslate>

The mapping between this Segment and a segment value in the given Chapter Codec. Chapter Codec may need to address different segments, but they may not know of the way to identify such segment when stored in Matroska. This element and its child elements add a way to map the internal segments known to the Chapter Codec to the Segment IDs in Matroska. This allows remuxing a file with Chapter Codec without changing the content of the codec data, just the Segment mapping.

§timestamp_scale: TimestampScale

Base unit for Segment Ticks and Track Ticks, in nanoseconds. A TimestampScale value of 1000000 means scaled timestamps in the Segment are expressed in milliseconds; see timestamps on how to interpret timestamps.

§duration: Option<Duration>

Duration of the Segment, expressed in Segment Ticks which is based on TimestampScale; see timestamp-ticks.

§date_utc: Option<DateUtc>

The date and time that the Segment was created by the muxing application or library.

§title: Option<Title>

General name of the Segment

§muxing_app: MuxingApp

Muxing application or library (example: “libmatroska-0.4.3”). Include the full name of the application or library followed by the version number.

§writing_app: WritingApp

Writing application (example: “mkvmerge-0.3.3”). Include the full name of the application followed by the version number.

Trait Implementations§

Source§

impl Clone for Info

Source§

fn clone(&self) -> Info

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Info

Source§

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

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

impl Default for Info

Source§

fn default() -> Info

Returns the “default value” for a type. Read more
Source§

impl Element for Info

Source§

const ID: VInt64

EBML ID of the element.
Source§

fn decode_body<B: Buf>(buf: &mut B) -> Result<Self>

Decode the body of the element from a buffer.
Source§

fn encode_body<B: BufMut>(&self, buf: &mut B) -> Result<()>

Encode the body of the element to a buffer.
Source§

const HAS_DEFAULT_VALUE: bool = false

Whether the element has a default value, as per Matroska specification. If true, and the element is missing in a master element, it should be treated as if it were present with the default value. If false, and the element is missing in a master element, it should be treated as an error.
Source§

impl PartialEq for Info

Source§

fn eq(&self, other: &Info) -> 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 StructuralPartialEq for Info

Auto Trait Implementations§

§

impl !Freeze for Info

§

impl RefUnwindSafe for Info

§

impl Send for Info

§

impl Sync for Info

§

impl Unpin for Info

§

impl UnsafeUnpin for Info

§

impl UnwindSafe for Info

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> AsyncReadElement for T
where T: Element,

Source§

fn async_read_element<R: AsyncRead + Unpin + ?Sized>( header: &Header, r: &mut R, ) -> impl Future<Output = Result<Self>>

Available on crate feature tokio only.
Read an element from a reader provided the header.
Source§

impl<T> AsyncReadFrom for T
where T: Element,

Source§

async fn async_read_from<R>(r: &mut R) -> Result<T, Error>
where R: AsyncRead + Unpin + ?Sized,

Available on crate feature tokio only.
Read Self from a reader.
Source§

impl<T> AsyncWriteElement for T
where T: Element,

Source§

fn async_write_element<W: AsyncWrite + Unpin + ?Sized>( &self, header: &Header, w: &mut W, ) -> impl Future<Output = Result<()>>

Available on crate feature tokio only.
Write an element to a writer asynchronously.
Source§

impl<T> AsyncWriteTo for T
where T: Encode,

Source§

async fn async_write_to<W>(&self, w: &mut W) -> Result<(), Error>
where W: AsyncWrite + Unpin + ?Sized,

Available on crate feature tokio only.
Write to a writer asynchronously.
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<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
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<T> ReadElement for T
where T: Element,

Source§

fn read_element<R: Read + ?Sized>(header: &Header, r: &mut R) -> Result<Self>

Read an element from a reader provided the header.
Source§

impl<T> ReadFrom for T
where T: Element,

Source§

fn read_from<R>(r: &mut R) -> Result<T, Error>
where R: Read + ?Sized,

Read Self from a reader.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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> WriteElement for T
where T: Element,

Source§

fn write_element<W: Write + ?Sized>( &self, header: &Header, w: &mut W, ) -> Result<()>

Write an element to a writer.
Source§

impl<T> WriteTo for T
where T: Encode,

Source§

fn write_to<W>(&self, w: &mut W) -> Result<(), Error>
where W: Write + ?Sized,

Write to a writer.