#[non_exhaustive]pub enum ChannelLayout {
Mono,
Stereo,
Stereo2_1,
Surround3_0,
Quad,
Surround5_0,
Surround5_1,
Surround6_1,
Surround7_1,
Other(u32),
}Expand description
Audio channel layout representing the speaker configuration.
This enum covers common channel layouts used in audio/video files.
For uncommon layouts, use Other with the channel count.
§Common Layouts
- Mono: Single channel (1.0)
- Stereo: Left + Right (2.0)
- Surround 5.1: FL + FR + FC + LFE + BL + BR (standard home theater)
- Surround 7.1: 5.1 + SL + SR (extended surround)
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Mono
Mono (1 channel)
Stereo
Stereo (2 channels: Left, Right)
Stereo2_1
2.1 (3 channels: Left, Right, LFE)
Surround3_0
3.0 (3 channels: Left, Right, Center)
Quad
4.0 Quad (4 channels: FL, FR, BL, BR)
Surround5_0
5.0 (5 channels: FL, FR, FC, BL, BR)
Surround5_1
5.1 (6 channels: FL, FR, FC, LFE, BL, BR)
Surround6_1
6.1 (7 channels: FL, FR, FC, LFE, BC, SL, SR)
Surround7_1
7.1 (8 channels: FL, FR, FC, LFE, BL, BR, SL, SR)
Other(u32)
Other layout with specified channel count
Implementations§
Source§impl ChannelLayout
impl ChannelLayout
Sourcepub const fn channels(&self) -> u32
pub const fn channels(&self) -> u32
Returns the number of audio channels in this layout.
§Examples
use ff_format::channel::ChannelLayout;
assert_eq!(ChannelLayout::Mono.channels(), 1);
assert_eq!(ChannelLayout::Stereo.channels(), 2);
assert_eq!(ChannelLayout::Surround5_1.channels(), 6);
assert_eq!(ChannelLayout::Surround7_1.channels(), 8);
assert_eq!(ChannelLayout::Other(10).channels(), 10);Sourcepub const fn name(&self) -> &'static str
pub const fn name(&self) -> &'static str
Returns the layout name as a human-readable string.
§Examples
use ff_format::channel::ChannelLayout;
assert_eq!(ChannelLayout::Mono.name(), "mono");
assert_eq!(ChannelLayout::Stereo.name(), "stereo");
assert_eq!(ChannelLayout::Surround5_1.name(), "5.1");Sourcepub const fn is_mono(&self) -> bool
pub const fn is_mono(&self) -> bool
Returns true if this is a mono layout.
§Examples
use ff_format::channel::ChannelLayout;
assert!(ChannelLayout::Mono.is_mono());
assert!(!ChannelLayout::Stereo.is_mono());Sourcepub const fn is_stereo(&self) -> bool
pub const fn is_stereo(&self) -> bool
Returns true if this is a stereo layout.
§Examples
use ff_format::channel::ChannelLayout;
assert!(ChannelLayout::Stereo.is_stereo());
assert!(!ChannelLayout::Mono.is_stereo());Sourcepub const fn is_surround(&self) -> bool
pub const fn is_surround(&self) -> bool
Returns true if this is a surround sound layout (more than 2 channels).
§Examples
use ff_format::channel::ChannelLayout;
assert!(ChannelLayout::Surround5_1.is_surround());
assert!(ChannelLayout::Surround7_1.is_surround());
assert!(!ChannelLayout::Stereo.is_surround());Sourcepub const fn has_lfe(&self) -> bool
pub const fn has_lfe(&self) -> bool
Returns true if this layout includes an LFE (subwoofer) channel.
§Examples
use ff_format::channel::ChannelLayout;
assert!(ChannelLayout::Stereo2_1.has_lfe());
assert!(ChannelLayout::Surround5_1.has_lfe());
assert!(!ChannelLayout::Surround5_0.has_lfe());Sourcepub const fn from_channels(channels: u32) -> Self
pub const fn from_channels(channels: u32) -> Self
Creates a ChannelLayout from a channel count.
This tries to match common layouts, falling back to Other for
uncommon channel counts.
§Examples
use ff_format::channel::ChannelLayout;
assert_eq!(ChannelLayout::from_channels(1), ChannelLayout::Mono);
assert_eq!(ChannelLayout::from_channels(2), ChannelLayout::Stereo);
assert_eq!(ChannelLayout::from_channels(6), ChannelLayout::Surround5_1);
assert_eq!(ChannelLayout::from_channels(10), ChannelLayout::Other(10));Trait Implementations§
Source§impl Clone for ChannelLayout
impl Clone for ChannelLayout
Source§fn clone(&self) -> ChannelLayout
fn clone(&self) -> ChannelLayout
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for ChannelLayout
Source§impl Debug for ChannelLayout
impl Debug for ChannelLayout
Source§impl Default for ChannelLayout
impl Default for ChannelLayout
Source§impl Display for ChannelLayout
impl Display for ChannelLayout
impl Eq for ChannelLayout
Source§impl From<u32> for ChannelLayout
impl From<u32> for ChannelLayout
Source§impl Hash for ChannelLayout
impl Hash for ChannelLayout
Source§impl PartialEq for ChannelLayout
impl PartialEq for ChannelLayout
Source§fn eq(&self, other: &ChannelLayout) -> bool
fn eq(&self, other: &ChannelLayout) -> bool
self and other values to be equal, and is used by ==.