AV module

AudioResampler

Converts audio samples between different formats, sample rates, and channel layouts.

#include <icy/av/audioresampler.h>

struct AudioResampler

Defined in src/av/include/icy/av/audioresampler.h:39

Public Attributes

ReturnNameDescription
SwrContext *ctxthe conversion context
AudioCodeciparamsinput audio parameters
AudioCodecoparamsoutput audio parameters
uint8_t **outSamplesthe output samples buffer
intoutNumSamplesthe number of samples currently in the output buffer
intoutBufferSizethe number of bytes currently in the buffer
intmaxNumSamplesthe maximum number of samples that can be stored in
enum AVSampleFormatinSampleFmtinput sample format
enum AVSampleFormatoutSampleFmtoutput sample format

ctx

SwrContext * ctx

Defined in src/av/include/icy/av/audioresampler.h:69

the conversion context


iparams

AudioCodec iparams

Type: AudioCodec

Defined in src/av/include/icy/av/audioresampler.h:71

input audio parameters


oparams

AudioCodec oparams

Type: AudioCodec

Defined in src/av/include/icy/av/audioresampler.h:72

output audio parameters


outSamples

uint8_t ** outSamples

Defined in src/av/include/icy/av/audioresampler.h:73

the output samples buffer


outNumSamples

int outNumSamples

Defined in src/av/include/icy/av/audioresampler.h:74

the number of samples currently in the output buffer


outBufferSize

int outBufferSize

Defined in src/av/include/icy/av/audioresampler.h:75

the number of bytes currently in the buffer


maxNumSamples

int maxNumSamples

Defined in src/av/include/icy/av/audioresampler.h:76

the maximum number of samples that can be stored in


inSampleFmt

enum AVSampleFormat inSampleFmt

Defined in src/av/include/icy/av/audioresampler.h:77

input sample format


outSampleFmt

enum AVSampleFormat outSampleFmt

Defined in src/av/include/icy/av/audioresampler.h:78

output sample format

Public Methods

ReturnNameDescription
AudioResampler
~AudioResampler noexcept
AudioResamplerDeleted constructor.
AudioResampler &operator=Deleted assignment operator.
AudioResamplerDeleted constructor.
AudioResampler &operator=Deleted assignment operator.
voidopenInitialise the libswresample context using iparams and oparams. Throws std::runtime_error if the context is already open or if required parameters (channels, sample rate, format) are missing.
voidcloseFree the libswresample context and release the output sample buffer.
intresampleConvert the input samples to the output format. NOTE: Input buffers must be contiguous, therefore only interleaved input formats are accepted at this point.

AudioResampler

AudioResampler(const AudioCodec & iparams = AudioCodec(), const AudioCodec & oparams = AudioCodec())

Defined in src/av/include/icy/av/audioresampler.h:41


~AudioResampler

noexcept

~AudioResampler() noexcept

Defined in src/av/include/icy/av/audioresampler.h:43


AudioResampler

AudioResampler(const AudioResampler &) = delete

Defined in src/av/include/icy/av/audioresampler.h:45

Deleted constructor.


operator=

AudioResampler & operator=(const AudioResampler &) = delete

Defined in src/av/include/icy/av/audioresampler.h:46

Deleted assignment operator.


AudioResampler

AudioResampler(AudioResampler &&) = delete

Defined in src/av/include/icy/av/audioresampler.h:47

Deleted constructor.


operator=

AudioResampler & operator=(AudioResampler &&) = delete

Defined in src/av/include/icy/av/audioresampler.h:48

Deleted assignment operator.


open

void open()

Defined in src/av/include/icy/av/audioresampler.h:53

Initialise the libswresample context using iparams and oparams. Throws std::runtime_error if the context is already open or if required parameters (channels, sample rate, format) are missing.


close

void close()

Defined in src/av/include/icy/av/audioresampler.h:56

Free the libswresample context and release the output sample buffer.


resample

int resample(uint8_t ** inSamples, int inNumSamples)

Defined in src/av/include/icy/av/audioresampler.h:67

Convert the input samples to the output format. NOTE: Input buffers must be contiguous, therefore only interleaved input formats are accepted at this point.

Converted samples are accessible via the outSamples class member.

Returns

The number of converted samples, or zero if samples were internally buffered.

Parameters

ParameterTypeDescription
inSamplesuint8_t **Pointer to the input sample buffer array.
inNumSamplesintThe number of input samples per channel.