Skip to main content

AudioOnlyTranscoder

Struct AudioOnlyTranscoder 

Source
pub struct AudioOnlyTranscoder { /* private fields */ }
Expand description

Audio-only transcoder.

Accepts raw PCM samples (f32, -1.0..=1.0), applies channel mapping and level adjustments, and returns the processed output samples.

In a full pipeline this struct would wrap actual codec encode/decode calls; here it provides the configuration layer and frame-level processing hooks that the codec pipeline can call.

Implementations§

Source§

impl AudioOnlyTranscoder

Source

pub fn new(config: AudioOnlyConfig) -> Self

Creates a new AudioOnlyTranscoder from a validated config.

Source

pub fn config(&self) -> &AudioOnlyConfig

Returns the active configuration.

Source

pub fn codec_name(&self) -> &str

Returns the output codec name string.

Source

pub fn estimated_bitrate(&self) -> u32

Returns the effective output bitrate in bits per second.

If config.bitrate is 0 the codec default is returned.

Source

pub fn frames_processed(&self) -> u64

Number of audio frames processed since creation (or last reset).

Source

pub fn transcode_samples(&mut self, input: &[f32]) -> Result<Vec<f32>>

Process a block of interleaved PCM samples.

Input samples must be interleaved with the number of channels declared in the config, in f32 format. Output length equals input length after channel mapping (no sample-rate conversion is performed in this stub – that would be delegated to oximedia-audio::resample).

§Errors

Returns TranscodeError::InvalidInput when:

  • input length is not a multiple of channels
  • any individual sample is NaN or infinite
Source

pub fn reset(&mut self)

Reset internal counters (e.g. between programs).

Source

pub fn update_config( &mut self, input_codec: AudioCodecId, output_codec: AudioCodecId, sample_rate: u32, channels: u8, bitrate: u32, ) -> Result<()>

Update the config on the fly (e.g. for adaptive bitrate pipelines).

§Errors

Returns an error if the new config fails validation.

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<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more