FFmpeg 5.1.6
Typedefs | Functions
Audio FIFO Buffer

Typedefs

typedef struct AVAudioFifo AVAudioFifo
 Context for an Audio FIFO Buffer. More...
 

Functions

void av_audio_fifo_free (AVAudioFifo *af)
 Free an AVAudioFifo. More...
 
AVAudioFifoav_audio_fifo_alloc (enum AVSampleFormat sample_fmt, int channels, int nb_samples)
 Allocate an AVAudioFifo. More...
 
av_warn_unused_result int av_audio_fifo_realloc (AVAudioFifo *af, int nb_samples)
 Reallocate an AVAudioFifo. More...
 
int av_audio_fifo_write (AVAudioFifo *af, void **data, int nb_samples)
 Write data to an AVAudioFifo. More...
 
int av_audio_fifo_peek (AVAudioFifo *af, void **data, int nb_samples)
 Peek data from an AVAudioFifo. More...
 
int av_audio_fifo_peek_at (AVAudioFifo *af, void **data, int nb_samples, int offset)
 Peek data from an AVAudioFifo. More...
 
int av_audio_fifo_read (AVAudioFifo *af, void **data, int nb_samples)
 Read data from an AVAudioFifo. More...
 
int av_audio_fifo_drain (AVAudioFifo *af, int nb_samples)
 Drain data from an AVAudioFifo. More...
 
void av_audio_fifo_reset (AVAudioFifo *af)
 Reset the AVAudioFifo buffer. More...
 
int av_audio_fifo_size (AVAudioFifo *af)
 Get the current number of samples in the AVAudioFifo available for reading. More...
 
int av_audio_fifo_space (AVAudioFifo *af)
 Get the current number of samples in the AVAudioFifo available for writing. More...
 

Detailed Description

Typedef Documentation

◆ AVAudioFifo

typedef struct AVAudioFifo AVAudioFifo

Context for an Audio FIFO Buffer.

  • Operates at the sample level rather than the byte level.
  • Supports multiple channels with either planar or packed sample format.
  • Automatic reallocation when writing to a full buffer.

Definition at line 48 of file audio_fifo.h.

Function Documentation

◆ av_audio_fifo_free()

void av_audio_fifo_free ( AVAudioFifo af)

Free an AVAudioFifo.

Parameters
afAVAudioFifo to free
Examples
transcode_aac.c.

Referenced by main().

◆ av_audio_fifo_alloc()

AVAudioFifo * av_audio_fifo_alloc ( enum AVSampleFormat  sample_fmt,
int  channels,
int  nb_samples 
)

Allocate an AVAudioFifo.

Parameters
sample_fmtsample format
channelsnumber of channels
nb_samplesinitial allocation size, in samples
Returns
newly allocated AVAudioFifo, or NULL on error
Examples
transcode_aac.c.

Referenced by init_fifo().

◆ av_audio_fifo_realloc()

av_warn_unused_result int av_audio_fifo_realloc ( AVAudioFifo af,
int  nb_samples 
)

Reallocate an AVAudioFifo.

Parameters
afAVAudioFifo to reallocate
nb_samplesnew allocation size, in samples
Returns
0 if OK, or negative AVERROR code on failure
Examples
transcode_aac.c.

Referenced by add_samples_to_fifo().

◆ av_audio_fifo_write()

int av_audio_fifo_write ( AVAudioFifo af,
void **  data,
int  nb_samples 
)

Write data to an AVAudioFifo.

The AVAudioFifo will be reallocated automatically if the available space is less than nb_samples.

See also
enum AVSampleFormat The documentation for AVSampleFormat describes the data layout.
Parameters
afAVAudioFifo to write to
dataaudio data plane pointers
nb_samplesnumber of samples to write
Returns
number of samples actually written, or negative AVERROR code on failure. If successful, the number of samples actually written will always be nb_samples.
Examples
transcode_aac.c.

Referenced by add_samples_to_fifo().

◆ av_audio_fifo_peek()

int av_audio_fifo_peek ( AVAudioFifo af,
void **  data,
int  nb_samples 
)

Peek data from an AVAudioFifo.

See also
enum AVSampleFormat The documentation for AVSampleFormat describes the data layout.
Parameters
afAVAudioFifo to read from
dataaudio data plane pointers
nb_samplesnumber of samples to peek
Returns
number of samples actually peek, or negative AVERROR code on failure. The number of samples actually peek will not be greater than nb_samples, and will only be less than nb_samples if av_audio_fifo_size is less than nb_samples.

◆ av_audio_fifo_peek_at()

int av_audio_fifo_peek_at ( AVAudioFifo af,
void **  data,
int  nb_samples,
int  offset 
)

Peek data from an AVAudioFifo.

See also
enum AVSampleFormat The documentation for AVSampleFormat describes the data layout.
Parameters
afAVAudioFifo to read from
dataaudio data plane pointers
nb_samplesnumber of samples to peek
offsetoffset from current read position
Returns
number of samples actually peek, or negative AVERROR code on failure. The number of samples actually peek will not be greater than nb_samples, and will only be less than nb_samples if av_audio_fifo_size is less than nb_samples.

◆ av_audio_fifo_read()

int av_audio_fifo_read ( AVAudioFifo af,
void **  data,
int  nb_samples 
)

Read data from an AVAudioFifo.

See also
enum AVSampleFormat The documentation for AVSampleFormat describes the data layout.
Parameters
afAVAudioFifo to read from
dataaudio data plane pointers
nb_samplesnumber of samples to read
Returns
number of samples actually read, or negative AVERROR code on failure. The number of samples actually read will not be greater than nb_samples, and will only be less than nb_samples if av_audio_fifo_size is less than nb_samples.
Examples
transcode_aac.c.

Referenced by load_encode_and_write().

◆ av_audio_fifo_drain()

int av_audio_fifo_drain ( AVAudioFifo af,
int  nb_samples 
)

Drain data from an AVAudioFifo.

Removes the data without reading it.

Parameters
afAVAudioFifo to drain
nb_samplesnumber of samples to drain
Returns
0 if OK, or negative AVERROR code on failure

◆ av_audio_fifo_reset()

void av_audio_fifo_reset ( AVAudioFifo af)

Reset the AVAudioFifo buffer.

This empties all data in the buffer.

Parameters
afAVAudioFifo to reset

◆ av_audio_fifo_size()

int av_audio_fifo_size ( AVAudioFifo af)

Get the current number of samples in the AVAudioFifo available for reading.

Parameters
afthe AVAudioFifo to query
Returns
number of samples available for reading
Examples
transcode_aac.c.

Referenced by add_samples_to_fifo(), load_encode_and_write(), and main().

◆ av_audio_fifo_space()

int av_audio_fifo_space ( AVAudioFifo af)

Get the current number of samples in the AVAudioFifo available for writing.

Parameters
afthe AVAudioFifo to query
Returns
number of samples available for writing