#[repr(transparent)]pub struct FormatFlags(pub u32);Tuple Fields§
§0: u32Implementations§
Source§impl FormatFlags
impl FormatFlags
Source§impl FormatFlags
ios app audio - IS_BIG_ENDIAN | IS_SIGNED_INTEGER | IS_PACKED
mic - IS_SIGNED_INTEGER | IS_PACKED
These are the standard AudioFormatFlags for use in the mFormatFlags field of the
AudioStreamBasicDescription structure.
Typically, when an ASBD is being used, the fields describe the complete layout
of the sample data in the buffers that are represented by this description -
where typically those buffers are represented by an AudioBuffer that is
contained in an AudioBufferList.
impl FormatFlags
ios app audio - IS_BIG_ENDIAN | IS_SIGNED_INTEGER | IS_PACKED mic - IS_SIGNED_INTEGER | IS_PACKED These are the standard AudioFormatFlags for use in the mFormatFlags field of the AudioStreamBasicDescription structure. Typically, when an ASBD is being used, the fields describe the complete layout of the sample data in the buffers that are represented by this description - where typically those buffers are represented by an AudioBuffer that is contained in an AudioBufferList.
However, when an ASBD has the kAudioFormatFlagIsNonInterleaved flag, the AudioBufferList has a different structure and semantic. In this case, the ASBD fields will describe the format of ONE of the AudioBuffers that are contained in the list, AND each AudioBuffer in the list is determined to have a single (mono) channel of audio data. Then, the ASBD’s mChannelsPerFrame will indicate the total number of AudioBuffers that are contained within the AudioBufferList - where each buffer contains one channel. This is used primarily with the AudioUnit (and AudioConverter) representation of this list - and won’t be found in the AudioHardware usage of this structure.
Sourcepub const IS_BIG_ENDIAN: Self
pub const IS_BIG_ENDIAN: Self
Set for big endian, clear for little endian.
Sourcepub const IS_SIGNED_INTEGER: Self
pub const IS_SIGNED_INTEGER: Self
Set for signed integer, clear for unsigned integer. This is only valid if AudioFormatFlags::IS_FLOAT is clear.
Sourcepub const IS_PACKED: Self
pub const IS_PACKED: Self
Set if the sample bits occupy the entire available bits for the channel, clear if they are high or low aligned within the channel. Note that even if this flag is clear, it is implied that this flag is set if the AudioStreamBasicDescription is filled out such that the fields have the following relationship: ((bits_per_sample / 8) * channels_per_frame) == bytes_per_frame
Sourcepub const IS_ALIGNED_HIGH: Self
pub const IS_ALIGNED_HIGH: Self
Set if the sample bits are placed into the high bits of the channel, clear for low bit placement. This is only valid if kAudioFormatFlagIsPacked is clear.
Sourcepub const IS_NON_INTERLEAVED: Self
pub const IS_NON_INTERLEAVED: Self
Set if the samples for each channel are located contiguously and the channels are layed out end to end, clear if the samples for each frame are layed out contiguously and the frames layed out end to end.
Sourcepub const IS_NON_MIXABLE: Self
pub const IS_NON_MIXABLE: Self
Set to indicate when a format is non-mixable. Note that this flag is only used when interacting with the HAL’s stream format information. It is not a valid flag for any other uses.
Sourcepub const ALL_CLEAR: Self
pub const ALL_CLEAR: Self
Set if all the flags would be clear in order to preserve 0 as the wild card value.
pub const LINEAR_PCM_IS_FLOAT: Self = Self::IS_FLOAT
pub const LINEAR_PCM_IS_BIG_ENDIAN: Self = Self::IS_BIG_ENDIAN
pub const LINEAR_PCM_IS_SIGNED_INTEGER: Self = Self::IS_SIGNED_INTEGER
pub const LINEAR_PCM_IS_PACKED: Self = Self::IS_PACKED
pub const LINEAR_PCM_IS_ALIGNED_HIGH: Self = Self::IS_ALIGNED_HIGH
pub const LINEAR_PCM_IS_NON_INTERLEAVED: Self = Self::IS_NON_INTERLEAVED
pub const LINEAR_PCM_IS_NON_MIXABLE: Self = Self::IS_NON_MIXABLE
pub const NATIVE_ENDIAN: Self
pub const NATIVE_FLOAT_PACKED: Self
Sourcepub const LINEAR_PCM_SAMPLE_FRACTION_SHIFT: Self
pub const LINEAR_PCM_SAMPLE_FRACTION_SHIFT: Self
The linear PCM flags contain a 6-bit bitfield indicating that an integer format is to be interpreted as fixed point. The value indicates the number of bits are used to represent the fractional portion of each sample value. This constant indicates the bit position (counting from the right) of the bitfield in mFormatFlags.
Sourcepub const LINEAR_PCM_SAMPLE_FRACTION_MASK: Self
pub const LINEAR_PCM_SAMPLE_FRACTION_MASK: Self
number_fractional_bits = (mFormatFlags & kLinearPCMFormatFlagsSampleFractionMask) >> kLinearPCMFormatFlagsSampleFractionShift
pub const LINEAR_PCM_ARE_ALL_CLEAR: Self = Self::ALL_CLEAR
Sourcepub const APPLE_LOSSLESS_16_BIT_SOURCE_DATA: Self
pub const APPLE_LOSSLESS_16_BIT_SOURCE_DATA: Self
This flag is set for Apple Lossless data that was sourced from 16 bit native endian signed integer data.
Sourcepub const APPLE_LOSSLESS_20_BIT_SOURCE_DATA: Self
pub const APPLE_LOSSLESS_20_BIT_SOURCE_DATA: Self
This flag is set for Apple Lossless data that was sourced from 20 bit native endian signed integer data aligned high in 24 bits.
Sourcepub const APPLE_LOSSLESS_24_BIT_SOURCE_DATA: Self
pub const APPLE_LOSSLESS_24_BIT_SOURCE_DATA: Self
his flag is set for Apple Lossless data that was sourced from 24 bit native endian signed integer data.
Sourcepub const APPLE_LOSSLESS_32_BIT_SOURCE_DATA: Self
pub const APPLE_LOSSLESS_32_BIT_SOURCE_DATA: Self
This flag is set for Apple Lossless data that was sourced from 32 bit native endian signed integer data.
Trait Implementations§
Source§impl Binary for FormatFlags
impl Binary for FormatFlags
Source§impl BitAnd for FormatFlags
impl BitAnd for FormatFlags
Source§impl BitAndAssign for FormatFlags
impl BitAndAssign for FormatFlags
Source§fn bitand_assign(&mut self, rhs: Self)
fn bitand_assign(&mut self, rhs: Self)
&= operation. Read moreSource§impl BitOr for FormatFlags
impl BitOr for FormatFlags
Source§impl BitOrAssign for FormatFlags
impl BitOrAssign for FormatFlags
Source§fn bitor_assign(&mut self, rhs: Self)
fn bitor_assign(&mut self, rhs: Self)
|= operation. Read moreSource§impl BitXor for FormatFlags
impl BitXor for FormatFlags
Source§impl BitXorAssign for FormatFlags
impl BitXorAssign for FormatFlags
Source§fn bitxor_assign(&mut self, rhs: Self)
fn bitxor_assign(&mut self, rhs: Self)
^= operation. Read moreSource§impl Clone for FormatFlags
impl Clone for FormatFlags
Source§fn clone(&self) -> FormatFlags
fn clone(&self) -> FormatFlags
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 FormatFlags
Source§impl Debug for FormatFlags
impl Debug for FormatFlags
Source§impl Default for FormatFlags
impl Default for FormatFlags
Source§fn default() -> FormatFlags
fn default() -> FormatFlags
Source§impl Display for FormatFlags
impl Display for FormatFlags
impl Eq for FormatFlags
Source§impl From<u32> for FormatFlags
impl From<u32> for FormatFlags
Source§impl Hash for FormatFlags
impl Hash for FormatFlags
Source§impl Not for FormatFlags
impl Not for FormatFlags
Source§impl PartialEq for FormatFlags
impl PartialEq for FormatFlags
Source§fn eq(&self, other: &FormatFlags) -> bool
fn eq(&self, other: &FormatFlags) -> bool
self and other values to be equal, and is used by ==.