Skip to main content

CodecBitRateControlMode

Enum CodecBitRateControlMode 

Source
#[repr(u32)]
pub enum CodecBitRateControlMode { Constant = 0, LongTermAverage = 1, VariableConstrained = 2, Variable = 3, }
Expand description

Constants defining various bit rate control modes to be used with kAudioCodecPropertyBitRateControlMode. These modes are only applicable to encoders that can produce variable packet sizes, such as AAC.

Variants§

§

Constant = 0

The encoder maintains a constant bit rate suitable for use over a transmission channel when decoding in real-time with a fixed end-to-end audio delay.
Note that while a constant bit rate is maintained in this mode, the number of bits allocated to encode each fixed length of audio data may be variable (ie. packet sizes are variable). E.g., MP3 and MPEG-AAC use a bit reservoir mechanism to meet that constraint.

§

LongTermAverage = 1

The provided target bit rate is achieved over a long term average (typically after the first 1000 packets). This mode is similar to BitRateControlMode::Constant in the sense that the target bit rate will be maintained in a long term average. However, it does not provide constant delay when using constant bit rate transmission. This mode offers a better sound quality than BitRateControlMode::Constant can, that is, a more efficient encoding is performed.

§

VariableConstrained = 2

Encoder dynamically allocates the bit resources according to the characteristics of the underlying signal. However, some constraints are applied in order to limit the variation of the bit rate.

§

Variable = 3

Similar to the VBR constrained mode, however the packet size is virtually unconstrained. The coding process targets constant sound quality, and the sound quality level is set by kAudioCodecPropertySoundQualityForVBR. This mode usually provides the best tradeoff between quality and bit rate.

Trait Implementations§

Source§

impl Clone for BitRateControlMode

Source§

fn clone(&self) -> BitRateControlMode

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for BitRateControlMode

Source§

impl Debug for BitRateControlMode

Source§

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

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

impl Eq for BitRateControlMode

Source§

impl PartialEq for BitRateControlMode

Source§

fn eq(&self, other: &BitRateControlMode) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · 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 BitRateControlMode

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

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.