Skip to main content

Agc

Struct Agc 

Source
pub struct Agc {
    pub blocks: u64,
    pub frozen_blocks: u64,
    pub last_level_dbfs: f32,
    /* private fields */
}
Expand description

One gain per block, moved toward the target at the attack or release rate, applied in f32 with rounding and saturation.

The block level is its RMS in dBFS; the correction is target − (level + gain), limited to what the rate allows in one block duration and to the gain range. Because the whole block gets one gain, blocks should be 10–30 ms.

Fields§

§blocks: u64

Blocks processed.

§frozen_blocks: u64

Blocks whose level was below the noise floor (gain frozen).

§last_level_dbfs: f32

Level of the last input block in dBFS.

Implementations§

Source§

impl Agc

Source

pub fn new(cfg: AgcConfig) -> Self

An AGC starting at 0 dB gain.

Source

pub fn gain_db(&self) -> f32

The gain being applied, in dB.

Source

pub fn config(&self) -> &AgcConfig

The configuration.

Trait Implementations§

Source§

impl Clone for Agc

Source§

fn clone(&self) -> Agc

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 Debug for Agc

Source§

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

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

impl Default for Agc

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Element for Agc

Source§

fn output_format(&self, input: PcmFormat) -> Result<PcmFormat>

The format this element emits for blocks in input, or Err(Unsupported) if it cannot take input at all.
Source§

fn process(&mut self, input: PcmBlock<'_>, out: &mut [u8]) -> Result<usize>

Process one block into out, returning the bytes written — a whole number of output frames, possibly zero.
Source§

fn reset(&mut self)

Forget all state (filter memories, gains, phases).
Source§

fn max_output_bytes(&self, input: PcmFormat, input_bytes: usize) -> usize

Upper bound on the bytes process writes for an input block of input_bytes bytes in input. Defaults to input_bytes (same-size elements); resamplers and channel converters override it.

Auto Trait Implementations§

§

impl Freeze for Agc

§

impl RefUnwindSafe for Agc

§

impl Send for Agc

§

impl Sync for Agc

§

impl Unpin for Agc

§

impl UnsafeUnpin for Agc

§

impl UnwindSafe for Agc

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> 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 = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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.