Skip to main content

Video

Struct Video 

Source
pub struct Video {
Show 18 fields pub crc32: Option<Crc32>, pub void: Option<Void>, pub flag_interlaced: FlagInterlaced, pub field_order: FieldOrder, pub stereo_mode: StereoMode, pub alpha_mode: AlphaMode, pub pixel_width: PixelWidth, pub pixel_height: PixelHeight, pub pixel_crop_bottom: PixelCropBottom, pub pixel_crop_top: PixelCropTop, pub pixel_crop_left: PixelCropLeft, pub pixel_crop_right: PixelCropRight, pub display_width: Option<DisplayWidth>, pub display_height: Option<DisplayHeight>, pub display_unit: DisplayUnit, pub uncompressed_fourcc: Option<UncompressedFourcc>, pub colour: Option<Colour>, pub projection: Option<Projection>,
}
Expand description

Video settings.

Fields§

§crc32: Option<Crc32>

Optional CRC-32 element for integrity checking.

§void: Option<Void>

void element, useful for reserving space during writing.

§flag_interlaced: FlagInterlaced

Specify whether the video frames in this track are interlaced.

  • 0 - undetermined,
  • 1 - interlaced,
  • 2 - progressive
§field_order: FieldOrder

Specify the field ordering of video frames in this track. If FlagInterlaced is not set to 1, this Element MUST be ignored.

  • 0 - progressive,
  • 1 - tff,
  • 2 - undetermined,
  • 6 - bff,
  • 9 - bff(swapped),
  • 14 - tff(swapped)
§stereo_mode: StereoMode

Stereo-3D video mode. There are some more details in notes.

  • 0 - mono,
  • 1 - side by side (left eye first),
  • 2 - top - bottom (right eye is first),
  • 3 - top - bottom (left eye is first),
  • 4 - checkboard (right eye is first),
  • 5 - checkboard (left eye is first),
  • 6 - row interleaved (right eye is first),
  • 7 - row interleaved (left eye is first),
  • 8 - column interleaved (right eye is first),
  • 9 - column interleaved (left eye is first),
  • 10 - anaglyph (cyan/red),
  • 11 - side by side (right eye first),
  • 12 - anaglyph (green/magenta),
  • 13 - both eyes laced in one Block (left eye is first),
  • 14 - both eyes laced in one Block (right eye is first)
§alpha_mode: AlphaMode

Indicate whether the BlockAdditional Element with BlockAddID of “1” contains Alpha data, as defined by to the Codec Mapping for the CodecID. Undefined values SHOULD NOT be used as the behavior of known implementations is different (considered either as 0 or 1).

  • 0 - none,
  • 1 - present
§pixel_width: PixelWidth

Width of the encoded video frames in pixels.

§pixel_height: PixelHeight

Height of the encoded video frames in pixels.

§pixel_crop_bottom: PixelCropBottom

The number of video pixels to remove at the bottom of the image.

§pixel_crop_top: PixelCropTop

The number of video pixels to remove at the top of the image.

§pixel_crop_left: PixelCropLeft

The number of video pixels to remove on the left of the image.

§pixel_crop_right: PixelCropRight

The number of video pixels to remove on the right of the image.

§display_width: Option<DisplayWidth>

Width of the video frames to display. Applies to the video frame after cropping (PixelCrop* Elements). If the DisplayUnit of the same TrackEntry is 0, then the default value for DisplayWidth is equal to PixelWidth - PixelCropLeft - PixelCropRight, else there is no default value.

§display_height: Option<DisplayHeight>

Height of the video frames to display. Applies to the video frame after cropping (PixelCrop* Elements). If the DisplayUnit of the same TrackEntry is 0, then the default value for DisplayHeight is equal to PixelHeight - PixelCropTop - PixelCropBottom, else there is no default value.

§display_unit: DisplayUnit

How DisplayWidth & DisplayHeight are interpreted.

  • 0 - pixels,
  • 1 - centimeters,
  • 2 - inches,
  • 3 - display aspect ratio,
  • 4 - unknown
§uncompressed_fourcc: Option<UncompressedFourcc>

Specify the uncompressed pixel format used for the Track’s data as a FourCC. This value is similar in scope to the biCompression value of AVI’s BITMAPINFO [@?AVIFormat]. There is no definitive list of FourCC values, nor an official registry. Some common values for YUV pixel formats can be found at [@?MSYUV8], [@?MSYUV16] and [@?FourCC-YUV]. Some common values for uncompressed RGB pixel formats can be found at [@?MSRGB] and [@?FourCC-RGB]. UncompressedFourCC MUST be set in TrackEntry, when the CodecID Element of the TrackEntry is set to “V_UNCOMPRESSED”.

§colour: Option<Colour>

Settings describing the colour format.

§projection: Option<Projection>

Describes the video projection details. Used to render spherical, VR videos or flipping videos horizontally/vertically.

Trait Implementations§

Source§

impl Clone for Video

Source§

fn clone(&self) -> Video

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 Video

Source§

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

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

impl Default for Video

Source§

fn default() -> Video

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

impl Element for Video

Source§

const ID: VInt64

EBML ID of the element.
Source§

fn decode_body(buf: &mut &[u8]) -> 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 Video

Source§

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

Auto Trait Implementations§

§

impl Freeze for Video

§

impl RefUnwindSafe for Video

§

impl Send for Video

§

impl Sync for Video

§

impl Unpin for Video

§

impl UnsafeUnpin for Video

§

impl UnwindSafe for Video

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.