Skip to main content

ContainerFormat

Enum ContainerFormat 

Source
pub enum ContainerFormat {
    Matroska,
    WebM,
    Mp4,
    Ogg,
    Wav,
    Flac,
    MpegTs,
    WebVtt,
    Srt,
    Y4m,
}
Expand description

Supported container formats (patent-free).

OxiMedia focuses on patent-free, royalty-free container formats. The Mp4 variant is supported only for AV1/VP9 content.

Variants§

§

Matroska

Matroska container (.mkv).

Full-featured container supporting multiple audio/video/subtitle tracks, chapters, attachments, and rich metadata.

§

WebM

WebM container (.webm).

Matroska subset optimized for web delivery, supporting VP8/VP9/AV1 video and Vorbis/Opus audio.

§

Mp4

ISOBMFF/MP4 container (.mp4, .m4a, .m4v).

Only supported for AV1 and VP9 content to maintain patent-free status.

§

Ogg

Ogg container (.ogg, .opus, .oga).

Xiph.org container format, commonly used for Vorbis and Opus audio, as well as Theora video.

§

Wav

WAV/RIFF container (.wav).

Simple audio container for PCM and other uncompressed audio formats.

§

Flac

FLAC native container (.flac).

Native container for FLAC lossless audio, supporting metadata and seek tables.

§

MpegTs

MPEG Transport Stream (.ts, .m2ts, .mts).

Transport stream format commonly used for broadcast and streaming. Supports multiplexed video, audio, and subtitle streams with precise timing via Program Clock Reference (PCR). Only patent-free codecs (AV1, VP9, VP8, Opus, FLAC) are supported.

§

WebVtt

WebVTT subtitle format (.vtt).

Text-based subtitle format commonly used for web video.

§

Srt

SubRip subtitle format (.srt).

Simple text-based subtitle format widely supported.

§

Y4m

YUV4MPEG2 container (.y4m).

Simple uncompressed video sequence format widely used for testing and piping raw YUV video between tools. Supports various chroma subsampling modes (420, 422, 444, mono).

Implementations§

Source§

impl ContainerFormat

Source

pub const fn file_extensions(self) -> &'static [&'static str]

Returns the common file extensions for this container format.

§Examples
use oximedia_container::ContainerFormat;

let exts = ContainerFormat::Matroska.file_extensions();
assert!(exts.contains(&"mkv"));
assert!(exts.contains(&"mka"));
Source

pub const fn mime_type(self) -> &'static str

Returns the primary MIME type for this container format.

§Examples
use oximedia_container::ContainerFormat;

assert_eq!(ContainerFormat::WebM.mime_type(), "video/webm");
assert_eq!(ContainerFormat::Ogg.mime_type(), "audio/ogg");
Source

pub const fn name(self) -> &'static str

Returns the format name as a human-readable string.

§Examples
use oximedia_container::ContainerFormat;

assert_eq!(ContainerFormat::Matroska.name(), "Matroska");
assert_eq!(ContainerFormat::WebM.name(), "WebM");
Source

pub const fn supports_video(self) -> bool

Returns true if this format supports video streams.

§Examples
use oximedia_container::ContainerFormat;

assert!(ContainerFormat::Matroska.supports_video());
assert!(!ContainerFormat::Flac.supports_video());
Source

pub const fn supports_audio(self) -> bool

Returns true if this format supports audio streams.

Source

pub const fn supports_subtitles(self) -> bool

Returns true if this format supports subtitle streams.

Trait Implementations§

Source§

impl Clone for ContainerFormat

Source§

fn clone(&self) -> ContainerFormat

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 ContainerFormat

Source§

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

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

impl Display for ContainerFormat

Source§

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

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

impl From<ContainerFormat> for MetadataFormat

Source§

fn from(format: ContainerFormat) -> Self

Converts to this type from the input type.
Source§

impl Hash for ContainerFormat

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for ContainerFormat

Source§

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

Source§

impl Eq for ContainerFormat

Source§

impl StructuralPartialEq for ContainerFormat

Auto Trait Implementations§

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> 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> Same for T

Source§

type Output = T

Should always be Self
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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. 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.