FFmpeg 5.1.6
Enumerations | Functions
Audio sample formats

Audio sample format enumeration and related convenience functions. More...

Enumerations

enum  AVSampleFormat {
  AV_SAMPLE_FMT_NONE = -1 , AV_SAMPLE_FMT_U8 , AV_SAMPLE_FMT_S16 , AV_SAMPLE_FMT_S32 ,
  AV_SAMPLE_FMT_FLT , AV_SAMPLE_FMT_DBL , AV_SAMPLE_FMT_U8P , AV_SAMPLE_FMT_S16P ,
  AV_SAMPLE_FMT_S32P , AV_SAMPLE_FMT_FLTP , AV_SAMPLE_FMT_DBLP , AV_SAMPLE_FMT_S64 ,
  AV_SAMPLE_FMT_S64P , AV_SAMPLE_FMT_NB
}
 Audio sample formats. More...
 

Functions

const char * av_get_sample_fmt_name (enum AVSampleFormat sample_fmt)
 Return the name of sample_fmt, or NULL if sample_fmt is not recognized. More...
 
enum AVSampleFormat av_get_sample_fmt (const char *name)
 Return a sample format corresponding to name, or AV_SAMPLE_FMT_NONE on error. More...
 
enum AVSampleFormat av_get_alt_sample_fmt (enum AVSampleFormat sample_fmt, int planar)
 Return the planar<->packed alternative form of the given sample format, or AV_SAMPLE_FMT_NONE on error. More...
 
enum AVSampleFormat av_get_packed_sample_fmt (enum AVSampleFormat sample_fmt)
 Get the packed alternative form of the given sample format. More...
 
enum AVSampleFormat av_get_planar_sample_fmt (enum AVSampleFormat sample_fmt)
 Get the planar alternative form of the given sample format. More...
 
char * av_get_sample_fmt_string (char *buf, int buf_size, enum AVSampleFormat sample_fmt)
 Generate a string corresponding to the sample format with sample_fmt, or a header if sample_fmt is negative. More...
 
int av_get_bytes_per_sample (enum AVSampleFormat sample_fmt)
 Return number of bytes per sample. More...
 
int av_sample_fmt_is_planar (enum AVSampleFormat sample_fmt)
 Check if the sample format is planar. More...
 
int av_samples_get_buffer_size (int *linesize, int nb_channels, int nb_samples, enum AVSampleFormat sample_fmt, int align)
 Get the required buffer size for the given audio parameters. More...
 

Detailed Description

Audio sample format enumeration and related convenience functions.

Enumeration Type Documentation

◆ AVSampleFormat

Audio sample formats.

  • The data described by the sample format is always in native-endian order. Sample values can be expressed by native C types, hence the lack of a signed 24-bit sample format even though it is a common raw audio data format.
  • The floating-point formats are based on full volume being in the range [-1.0, 1.0]. Any values outside this range are beyond full volume level.
  • The data layout as used in av_samples_fill_arrays() and elsewhere in FFmpeg (such as AVFrame in libavcodec) is as follows:
For planar sample formats, each audio channel is in a separate data plane, and linesize is the buffer size, in bytes, for a single plane. All data planes must be the same size. For packed sample formats, only the first data plane is used, and samples for each channel are interleaved. In this case, linesize is the buffer size, in bytes, for the 1 plane.
Enumerator
AV_SAMPLE_FMT_NONE 
AV_SAMPLE_FMT_U8 

unsigned 8 bits

AV_SAMPLE_FMT_S16 

signed 16 bits

AV_SAMPLE_FMT_S32 

signed 32 bits

AV_SAMPLE_FMT_FLT 

float

AV_SAMPLE_FMT_DBL 

double

AV_SAMPLE_FMT_U8P 

unsigned 8 bits, planar

AV_SAMPLE_FMT_S16P 

signed 16 bits, planar

AV_SAMPLE_FMT_S32P 

signed 32 bits, planar

AV_SAMPLE_FMT_FLTP 

float, planar

AV_SAMPLE_FMT_DBLP 

double, planar

AV_SAMPLE_FMT_S64 

signed 64 bits

AV_SAMPLE_FMT_S64P 

signed 64 bits, planar

AV_SAMPLE_FMT_NB 

Number of sample formats. DO NOT USE if linking dynamically.

Definition at line 55 of file samplefmt.h.

Function Documentation

◆ av_get_sample_fmt_name()

const char * av_get_sample_fmt_name ( enum AVSampleFormat  sample_fmt)

Return the name of sample_fmt, or NULL if sample_fmt is not recognized.

Examples
decode_audio.c, demuxing_decoding.c, encode_audio.c, filter_audio.c, filtering_audio.c, resampling_audio.c, and transcoding.c.

Referenced by get_format_from_sample_fmt(), init_filter(), init_filter_graph(), init_filters(), and main().

◆ av_get_sample_fmt()

enum AVSampleFormat av_get_sample_fmt ( const char *  name)

Return a sample format corresponding to name, or AV_SAMPLE_FMT_NONE on error.

◆ av_get_alt_sample_fmt()

enum AVSampleFormat av_get_alt_sample_fmt ( enum AVSampleFormat  sample_fmt,
int  planar 
)

Return the planar<->packed alternative form of the given sample format, or AV_SAMPLE_FMT_NONE on error.

If the passed sample_fmt is already in the requested planar/packed format, the format returned is the same as the input.

◆ av_get_packed_sample_fmt()

enum AVSampleFormat av_get_packed_sample_fmt ( enum AVSampleFormat  sample_fmt)

Get the packed alternative form of the given sample format.

If the passed sample_fmt is already in packed format, the format returned is the same as the input.

Returns
the packed alternative form of the given sample format or AV_SAMPLE_FMT_NONE on error.
Examples
decode_audio.c, and demuxing_decoding.c.

Referenced by main().

◆ av_get_planar_sample_fmt()

enum AVSampleFormat av_get_planar_sample_fmt ( enum AVSampleFormat  sample_fmt)

Get the planar alternative form of the given sample format.

If the passed sample_fmt is already in planar format, the format returned is the same as the input.

Returns
the planar alternative form of the given sample format or AV_SAMPLE_FMT_NONE on error.

◆ av_get_sample_fmt_string()

char * av_get_sample_fmt_string ( char *  buf,
int  buf_size,
enum AVSampleFormat  sample_fmt 
)

Generate a string corresponding to the sample format with sample_fmt, or a header if sample_fmt is negative.

Parameters
bufthe buffer where to write the string
buf_sizethe size of buf
sample_fmtthe number of the sample format to print the corresponding info string, or a negative value to print the corresponding header.
Returns
the pointer to the filled buffer or NULL if sample_fmt is unknown or in case of other errors

◆ av_get_bytes_per_sample()

int av_get_bytes_per_sample ( enum AVSampleFormat  sample_fmt)

Return number of bytes per sample.

Parameters
sample_fmtthe sample format
Returns
number of bytes per sample or zero if unknown for the given sample format
Examples
decode_audio.c, demuxing_decoding.c, and filter_audio.c.

Referenced by decode(), output_audio_frame(), and process_output().

◆ av_sample_fmt_is_planar()

int av_sample_fmt_is_planar ( enum AVSampleFormat  sample_fmt)

Check if the sample format is planar.

Parameters
sample_fmtthe sample format to inspect
Returns
1 if the sample format is planar, 0 if it is interleaved
Examples
decode_audio.c, demuxing_decoding.c, and filter_audio.c.

Referenced by main(), and process_output().

◆ av_samples_get_buffer_size()

int av_samples_get_buffer_size ( int *  linesize,
int  nb_channels,
int  nb_samples,
enum AVSampleFormat  sample_fmt,
int  align 
)

Get the required buffer size for the given audio parameters.

Parameters
[out]linesizecalculated linesize, may be NULL
nb_channelsthe number of channels
nb_samplesthe number of samples in a single channel
sample_fmtthe sample format
alignbuffer size alignment (0 = default, 1 = no alignment)
Returns
required buffer size, or negative error code on failure
Examples
resampling_audio.c.

Referenced by main().