Home
AV module

AudioContext

Base context for audio encoding and decoding via FFmpeg.

AudioContext

#include <icy/av/audiocontext.h>
struct AudioContext

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

Subclassed by: AudioDecoder, AudioEncoder

Base context for audio encoding and decoding via FFmpeg.

List of all members

NameKindOwner
emittervariableDeclared here
iparamsvariableDeclared here
oparamsvariableDeclared here
streamvariableDeclared here
ctxvariableDeclared here
codecvariableDeclared here
framevariableDeclared here
resamplervariableDeclared here
outputFrameSizevariableDeclared here
timevariableDeclared here
ptsvariableDeclared here
secondsvariableDeclared here
errorvariableDeclared here
AudioContextfunctionDeclared here
~AudioContextfunctionDeclared here
AudioContextfunctionDeclared here
operator=functionDeclared here
AudioContextfunctionDeclared here
operator=functionDeclared here
createfunctionDeclared here
openfunctionDeclared here
closefunctionDeclared here
decodefunctionDeclared here
encodefunctionDeclared here
encodefunctionDeclared here
encodefunctionDeclared here
flushfunctionDeclared here
recreateResamplerfunctionDeclared here

Public Attributes

ReturnNameDescription
PacketSignalemitter
AudioCodeciparamsinput parameters
AudioCodecoparamsoutput parameters
AVStream *streamencoder or decoder stream
AVCodecContext *ctxencoder or decoder context
const AVCodec *codecencoder or decoder codec
AVFrame *framelast encoded or decoded frame
std::unique_ptr< AudioResampler >resampleraudio resampler
intoutputFrameSizeencoder or decoder output frame size
int64_ttimestream time in codec time base
int64_tptslast packet pts value
doublesecondsaudio time in seconds
std::stringerrorerror message

emitter

PacketSignal emitter

Defined in src/av/include/icy/av/audiocontext.h:92


iparams

AudioCodec iparams

Defined in src/av/include/icy/av/audiocontext.h:94

input parameters


oparams

AudioCodec oparams

Defined in src/av/include/icy/av/audiocontext.h:95

output parameters


stream

AVStream * stream

Defined in src/av/include/icy/av/audiocontext.h:96

encoder or decoder stream


ctx

AVCodecContext * ctx

Defined in src/av/include/icy/av/audiocontext.h:97

encoder or decoder context


codec

const AVCodec * codec

Defined in src/av/include/icy/av/audiocontext.h:98

encoder or decoder codec


frame

AVFrame * frame

Defined in src/av/include/icy/av/audiocontext.h:99

last encoded or decoded frame


resampler

std::unique_ptr< AudioResampler > resampler

Defined in src/av/include/icy/av/audiocontext.h:100

audio resampler


outputFrameSize

int outputFrameSize

Defined in src/av/include/icy/av/audiocontext.h:101

encoder or decoder output frame size


time

int64_t time

Defined in src/av/include/icy/av/audiocontext.h:102

stream time in codec time base


pts

int64_t pts

Defined in src/av/include/icy/av/audiocontext.h:103

last packet pts value


seconds

double seconds

Defined in src/av/include/icy/av/audiocontext.h:104

audio time in seconds


error

std::string error

Defined in src/av/include/icy/av/audiocontext.h:105

error message

Public Methods

ReturnNameDescription
AudioContext
AudioContextDeleted constructor.
AudioContextDeleted constructor.
voidcreate virtualInitialise the AVCodecContext with codec-specific defaults. Implemented by AudioEncoder and AudioDecoder.
voidopen virtualOpen the codec and create the resampler if input/output parameters differ. Throws std::runtime_error if the codec context has not been created.
voidclose virtualClose the codec context, free the frame, and reset timestamps.
booldecode virtualDecode a compressed audio packet and emit the resulting samples.
boolencode virtualEncode a buffer of interleaved audio samples.
boolencode virtualEncode a buffer of planar audio samples.
boolencode virtualEncode a single AVFrame.
voidflush virtualFlush any frames buffered inside the codec and emit remaining output.
boolrecreateResampler virtualRecreate the AudioResampler using the current iparams and oparams. Called automatically by open() when format conversion is required.

AudioContext

AudioContext()

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


AudioContext

AudioContext(const AudioContext &) = delete

Defined in src/av/include/icy/av/audiocontext.h:44

Deleted constructor.


AudioContext

AudioContext(AudioContext &&) = delete

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

Deleted constructor.


create

virtual

virtual void create()

Defined in src/av/include/icy/av/audiocontext.h:51

Initialise the AVCodecContext with codec-specific defaults. Implemented by AudioEncoder and AudioDecoder.

Reimplemented by

open

virtual

virtual void open()

Defined in src/av/include/icy/av/audiocontext.h:55

Open the codec and create the resampler if input/output parameters differ. Throws std::runtime_error if the codec context has not been created.


close

virtual

virtual void close()

Defined in src/av/include/icy/av/audiocontext.h:58

Close the codec context, free the frame, and reset timestamps.

Reimplemented by

decode

virtual

virtual bool decode(AVPacket & ipacket)

Defined in src/av/include/icy/av/audiocontext.h:63

Decode a compressed audio packet and emit the resulting samples.

Parameters

  • ipacket The compressed audio packet to decode.

Returns

True if one or more decoded frames were emitted, false otherwise.

Reimplemented by

encode

virtual

virtual bool encode(uint8_t * samples, int numSamples, int64_t pts)

Defined in src/av/include/icy/av/audiocontext.h:70

Encode a buffer of interleaved audio samples.

Parameters

  • samples Pointer to the interleaved sample buffer.

  • numSamples Number of samples per channel.

  • pts Presentation timestamp in stream time base units.

Returns

True if an encoded packet was produced and emitted.

Reimplemented by

encode

virtual

virtual bool encode(uint8_t * samples, int numSamples, int64_t pts)

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

Encode a buffer of planar audio samples.

Parameters

  • samples Array of per-channel sample buffers (up to 4 planes).

  • numSamples Number of samples per channel.

  • pts Presentation timestamp in stream time base units.

Returns

True if an encoded packet was produced and emitted.

Reimplemented by

encode

virtual

virtual bool encode(AVFrame * iframe)

Defined in src/av/include/icy/av/audiocontext.h:82

Encode a single AVFrame.

Parameters

  • iframe The source audio frame; must have all fields set correctly.

Returns

True if an encoded packet was produced and emitted.

Reimplemented by

flush

virtual

virtual void flush()

Defined in src/av/include/icy/av/audiocontext.h:85

Flush any frames buffered inside the codec and emit remaining output.

Reimplemented by

recreateResampler

virtual

virtual bool recreateResampler()

Defined in src/av/include/icy/av/audiocontext.h:90

Recreate the AudioResampler using the current iparams and oparams. Called automatically by open() when format conversion is required.

Returns

True if the resampler was successfully created.