Trait Decoder

Source
pub trait Decoder<S>: Debug
where S: SampleType,
{ // Required methods fn get_channels(&self) -> u16; fn decode_frame(&mut self) -> Result<Option<Vec<S>>, AudioReadError>; fn seek(&mut self, seek_from: SeekFrom) -> Result<(), AudioReadError>; fn get_cur_frame_index(&mut self) -> Result<u64, AudioReadError>; // Provided methods fn decode_mono(&mut self) -> Result<Option<S>, AudioReadError> { ... } fn decode_stereo(&mut self) -> Result<Option<(S, S)>, AudioReadError> { ... } fn decode_frames( &mut self, num_frames: usize, ) -> Result<Vec<Vec<S>>, AudioReadError> { ... } fn decode_monos( &mut self, num_monos: usize, ) -> Result<Vec<S>, AudioReadError> { ... } fn decode_stereos( &mut self, num_stereos: usize, ) -> Result<Vec<(S, S)>, AudioReadError> { ... } fn set_downmixer(&mut self, _downmixer: &Downmixer) { ... } fn get_downmixer(&self) -> Option<Downmixer> { ... } }
Expand description
  • Decodes audio into samples of the caller-provided format S.

Required Methods§

Source

fn get_channels(&self) -> u16

Get num channels

Source

fn decode_frame(&mut self) -> Result<Option<Vec<S>>, AudioReadError>

Decode one audio frame. An audio frame is each channel has one sample. This method supports > 2 channels.

Source

fn seek(&mut self, seek_from: SeekFrom) -> Result<(), AudioReadError>

Seek to a specific audio frame. An audio frame is each channel has one sample.

Source

fn get_cur_frame_index(&mut self) -> Result<u64, AudioReadError>

Get current frame index.

Provided Methods§

Source

fn decode_mono(&mut self) -> Result<Option<S>, AudioReadError>

Decode a mono sample, multiple channels will be mixed into one channel.

Source

fn decode_stereo(&mut self) -> Result<Option<(S, S)>, AudioReadError>

Decode a stereo sample with left and right samples, if the audio has > 2 channels, this method fails.

Source

fn decode_frames( &mut self, num_frames: usize, ) -> Result<Vec<Vec<S>>, AudioReadError>

Decode multiple audio frames. This method supports > 2 channels.

Source

fn decode_monos(&mut self, num_monos: usize) -> Result<Vec<S>, AudioReadError>

Decode multiple mono samples, multiple channels will be mixed into one channel.

Source

fn decode_stereos( &mut self, num_stereos: usize, ) -> Result<Vec<(S, S)>, AudioReadError>

Decode multiple stereo samples with left and right samples, if the audio has > 2 channels, this method fails.

Source

fn set_downmixer(&mut self, _downmixer: &Downmixer)

Set the downmixer

Source

fn get_downmixer(&self) -> Option<Downmixer>

Get the downmixer

Implementors§

Source§

impl<S> Decoder<S> for FlacDecoderWrap<'_>
where S: SampleType,

Source§

impl<S> Decoder<S> for Mp3Decoder
where S: SampleType,

Source§

impl<S> Decoder<S> for OggVorbisDecoderWrap
where S: SampleType,

Source§

impl<S> Decoder<S> for OpusDecoder
where S: SampleType,

Source§

impl<S> Decoder<S> for PcmDecoder<S>
where S: SampleType,

Source§

impl<S> Decoder<S> for PcmXLawDecoderWrap
where S: SampleType,

Source§

impl<S, D> Decoder<S> for AdpcmDecoderWrap<D>
where S: SampleType, D: AdpcmDecoder,