#[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 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more