Loading...
Searching...
No Matches
Audio sample formats
libavutil » Audio related

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.
enum AVSampleFormat | av_get_sample_fmt (const char *name)
| Return a sample format corresponding to name, or AV_SAMPLE_FMT_NONE on error.
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.
enum AVSampleFormat | av_get_packed_sample_fmt (enum AVSampleFormat sample_fmt)
| Get the packed alternative form of the given sample format.
enum AVSampleFormat | av_get_planar_sample_fmt (enum AVSampleFormat sample_fmt)
| Get the planar alternative form of the given sample format.
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.
int | av_get_bytes_per_sample (enum AVSampleFormat sample_fmt)
| Return number of bytes per sample.
int | av_sample_fmt_is_planar (enum AVSampleFormat sample_fmt)
| Check if the sample format is planar.
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.

## Detailed Description

Audio sample format enumeration and related convenience functions.

## Enumeration Type Documentation

## AVSampleFormat

enum 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, decode_filter_audio.c, demux_decode.c, encode_audio.c, filter_audio.c, resample_audio.c, and transcode.c.

Referenced by get_format_from_sample_fmt(), get_format_from_sample_fmt(), 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 demux_decode.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

  buf | the buffer where to write the string
  buf_size | the size of buf
  sample_fmt | the 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_fmt | the sample format

Returns
  number of bytes per sample or zero if unknown for the given sample format

Examples
  decode_audio.c, demux_decode.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_fmt | the sample format to inspect

Returns
  1 if the sample format is planar, 0 if it is interleaved

Examples
  decode_audio.c, demux_decode.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] | linesize | calculated linesize, may be NULL
  | nb_channels | the number of channels
  | nb_samples | the number of samples in a single channel
  | sample_fmt | the sample format
  | align | buffer size alignment (0 = default, 1 = no alignment)

Returns
  required buffer size, or negative error code on failure

Examples
  resample_audio.c.

Referenced by main().