AV module

AudioResampler

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

AudioResampler

#include <icy/av/audioresampler.h>

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

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

the conversion context


iparams

AudioCodec iparams

input audio parameters


oparams

AudioCodec oparams

output audio parameters


outSamples

uint8_t ** outSamples

the output samples buffer


outNumSamples

int outNumSamples

the number of samples currently in the output buffer


outBufferSize

int outBufferSize

the number of bytes currently in the buffer


maxNumSamples

int maxNumSamples

the maximum number of samples that can be stored in


inSampleFmt

enum AVSampleFormat inSampleFmt

input sample format


outSampleFmt

enum AVSampleFormat outSampleFmt

output sample format

Public Methods

ReturnNameDescription
AudioResampler
AudioResamplerDeleted constructor.
AudioResamplerDeleted constructor.
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, const AudioCodec & oparams)

AudioResampler

AudioResampler(const AudioResampler &) = delete

Deleted constructor.


AudioResampler

AudioResampler(AudioResampler &&) = delete

Deleted constructor.


open

void open()

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()

Free the libswresample context and release the output sample buffer.


resample

int resample(uint8_t ** inSamples, int inNumSamples)

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.

Parameters

  • inSamples Pointer to the input sample buffer array.

  • inNumSamples The number of input samples per channel.

Returns

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