FFmpeg  4.0
Macros | Enumerations | Functions
Audio channel layouts

Macros

#define AV_CH_LAYOUT_MONO   (AV_CH_FRONT_CENTER)
 
#define AV_CH_LAYOUT_STEREO   (AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT)
 
#define AV_CH_LAYOUT_2POINT1   (AV_CH_LAYOUT_STEREO|AV_CH_LOW_FREQUENCY)
 
#define AV_CH_LAYOUT_2_1   (AV_CH_LAYOUT_STEREO|AV_CH_BACK_CENTER)
 
#define AV_CH_LAYOUT_SURROUND   (AV_CH_LAYOUT_STEREO|AV_CH_FRONT_CENTER)
 
#define AV_CH_LAYOUT_3POINT1   (AV_CH_LAYOUT_SURROUND|AV_CH_LOW_FREQUENCY)
 
#define AV_CH_LAYOUT_4POINT0   (AV_CH_LAYOUT_SURROUND|AV_CH_BACK_CENTER)
 
#define AV_CH_LAYOUT_4POINT1   (AV_CH_LAYOUT_4POINT0|AV_CH_LOW_FREQUENCY)
 
#define AV_CH_LAYOUT_2_2   (AV_CH_LAYOUT_STEREO|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT)
 
#define AV_CH_LAYOUT_QUAD   (AV_CH_LAYOUT_STEREO|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT)
 
#define AV_CH_LAYOUT_5POINT0   (AV_CH_LAYOUT_SURROUND|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT)
 
#define AV_CH_LAYOUT_5POINT1   (AV_CH_LAYOUT_5POINT0|AV_CH_LOW_FREQUENCY)
 
#define AV_CH_LAYOUT_5POINT0_BACK   (AV_CH_LAYOUT_SURROUND|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT)
 
#define AV_CH_LAYOUT_5POINT1_BACK   (AV_CH_LAYOUT_5POINT0_BACK|AV_CH_LOW_FREQUENCY)
 
#define AV_CH_LAYOUT_6POINT0   (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_CENTER)
 
#define AV_CH_LAYOUT_6POINT0_FRONT   (AV_CH_LAYOUT_2_2|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER)
 
#define AV_CH_LAYOUT_HEXAGONAL   (AV_CH_LAYOUT_5POINT0_BACK|AV_CH_BACK_CENTER)
 
#define AV_CH_LAYOUT_6POINT1   (AV_CH_LAYOUT_5POINT1|AV_CH_BACK_CENTER)
 
#define AV_CH_LAYOUT_6POINT1_BACK   (AV_CH_LAYOUT_5POINT1_BACK|AV_CH_BACK_CENTER)
 
#define AV_CH_LAYOUT_6POINT1_FRONT   (AV_CH_LAYOUT_6POINT0_FRONT|AV_CH_LOW_FREQUENCY)
 
#define AV_CH_LAYOUT_7POINT0   (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT)
 
#define AV_CH_LAYOUT_7POINT0_FRONT   (AV_CH_LAYOUT_5POINT0|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER)
 
#define AV_CH_LAYOUT_7POINT1   (AV_CH_LAYOUT_5POINT1|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT)
 
#define AV_CH_LAYOUT_7POINT1_WIDE   (AV_CH_LAYOUT_5POINT1|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER)
 
#define AV_CH_LAYOUT_7POINT1_WIDE_BACK   (AV_CH_LAYOUT_5POINT1_BACK|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER)
 
#define AV_CH_LAYOUT_OCTAGONAL   (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_LEFT|AV_CH_BACK_CENTER|AV_CH_BACK_RIGHT)
 
#define AV_CH_LAYOUT_HEXADECAGONAL   (AV_CH_LAYOUT_OCTAGONAL|AV_CH_WIDE_LEFT|AV_CH_WIDE_RIGHT|AV_CH_TOP_BACK_LEFT|AV_CH_TOP_BACK_RIGHT|AV_CH_TOP_BACK_CENTER|AV_CH_TOP_FRONT_CENTER|AV_CH_TOP_FRONT_LEFT|AV_CH_TOP_FRONT_RIGHT)
 
#define AV_CH_LAYOUT_STEREO_DOWNMIX   (AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT)
 

Enumerations

enum  AVMatrixEncoding {
  AV_MATRIX_ENCODING_NONE, AV_MATRIX_ENCODING_DOLBY, AV_MATRIX_ENCODING_DPLII, AV_MATRIX_ENCODING_DPLIIX,
  AV_MATRIX_ENCODING_DPLIIZ, AV_MATRIX_ENCODING_DOLBYEX, AV_MATRIX_ENCODING_DOLBYHEADPHONE, AV_MATRIX_ENCODING_NB
}
 

Functions

uint64_t av_get_channel_layout (const char *name)
 Return a channel layout id that matches name, or 0 if no match is found. More...
 
int av_get_extended_channel_layout (const char *name, uint64_t *channel_layout, int *nb_channels)
 Return a channel layout and the number of channels based on the specified name. More...
 
void av_get_channel_layout_string (char *buf, int buf_size, int nb_channels, uint64_t channel_layout)
 Return a description of a channel layout. More...
 
void av_bprint_channel_layout (struct AVBPrint *bp, int nb_channels, uint64_t channel_layout)
 Append a description of a channel layout to a bprint buffer. More...
 
int av_get_channel_layout_nb_channels (uint64_t channel_layout)
 Return the number of channels in the channel layout. More...
 
int64_t av_get_default_channel_layout (int nb_channels)
 Return default channel layout for a given number of channels. More...
 
int av_get_channel_layout_channel_index (uint64_t channel_layout, uint64_t channel)
 Get the index of a channel in channel_layout. More...
 
uint64_t av_channel_layout_extract_channel (uint64_t channel_layout, int index)
 Get the channel with the given index in channel_layout. More...
 
const char * av_get_channel_name (uint64_t channel)
 Get the name of a given channel. More...
 
const char * av_get_channel_description (uint64_t channel)
 Get the description of a given channel. More...
 
int av_get_standard_channel_layout (unsigned index, uint64_t *layout, const char **name)
 Get the value and name of a standard channel layout. More...
 

Detailed Description

Macro Definition Documentation

◆ AV_CH_LAYOUT_MONO

#define AV_CH_LAYOUT_MONO   (AV_CH_FRONT_CENTER)
Examples:
filtering_audio.c.

Definition at line 85 of file channel_layout.h.

Referenced by ac3_decode_frame(), ac3_decode_init(), aea_read_header(), amf_parse_object(), amr_decode_fix_avctx(), amr_handle_packet(), amr_read_header(), amr_read_packet(), amrnb_decode_init(), amrwb_decode_init(), apc_read_header(), ape_decode_init(), bfi_read_header(), cdxl_read_packet(), cin_read_header(), cinaudio_decode_init(), codec2_read_header_common(), cook_decode_init(), create_audio_stream(), create_new_audio_stream(), decode_frame(), decode_init(), dss_read_header(), dss_sp_decode_init(), encode_init(), evrc_decode_init(), fdk_aac_decode_init(), ff_flac_is_native_layout(), ff_opus_parse_extradata(), ff_put_wav_header(), flic_read_header(), flush(), flv_read_packet(), g722_decode_init(), g723_1_decode_init(), g723_1_init(), g726_reset(), genh_read_header(), get_aac_tag(), get_sindex(), gsm_init(), gsm_read_header(), idcin_read_header(), iff_read_header(), ilbc_decode_init(), imc_decode_init(), init(), init_audio(), init_filters(), iss_read_header(), libcodec2_init_decoder(), libgsm_decode_init(), libspeex_decode_init(), metasound_decode_init(), mlp_encode_init(), mmf_read_header(), mov_write_header(), mpc8_decode_init(), mpegps_read_packet(), mxg_read_header(), on2avc_decode_init(), opus_decode_init(), parse_mpeg1waveformatex(), pcm_bluray_decode_frame(), pcm_bluray_parse_header(), qcelp_decode_init(), qcp_read_header(), qdm2_decode_init(), qdmc_decode_init(), query_formats(), ra144_decode_init(), ra288_decode_init(), read_header(), read_major_sync(), rm_read_audio_stream_info(), roq_read_packet(), rso_read_header(), seq_read_header(), set_channel_info(), set_channel_params(), set_channels(), sipr_decoder_init(), smacker_read_header(), smka_decode_init(), sol_read_header(), speex_header(), str_read_packet(), tmv_read_header(), truespeech_decode_init(), twinvq_decode_init(), vid_read_packet(), vmd_read_header(), vmdaudio_decode_init(), wavpack_decode_block(), wavpack_encode_block(), wc3_read_header(), wmavoice_decode_init(), ws_snd_decode_init(), wsaud_read_header(), wv_read_block_header(), and yop_read_header().

◆ AV_CH_LAYOUT_STEREO

#define AV_CH_LAYOUT_STEREO   (AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT)
Examples:
encode_audio.c, filter_audio.c, muxing.c, and resampling_audio.c.

Definition at line 86 of file channel_layout.h.

Referenced by ac3_decode_frame(), ac3_decode_init(), add_stream(), adp_read_header(), aea_read_header(), afc_read_header(), amf_parse_object(), apc_read_header(), ape_decode_init(), aptx_close(), ast_read_header(), avresample_build_matrix(), bmv_aud_decode_init(), bmv_read_header(), cdxl_read_packet(), cook_decode_init(), create_new_audio_stream(), dcadec_init(), decode_frame(), decode_init(), dv_extract_audio_info(), encode_init(), fdk_aac_decode_init(), ff_flac_is_native_layout(), ff_opus_parse_extradata(), ff_put_wav_header(), flac_encode_init(), flush(), flv_read_packet(), genh_read_header(), get_aac_tag(), get_sindex(), get_stream_info(), idcin_read_header(), iff_read_header(), imc_decode_init(), init(), init_audio(), init_filter_graph(), iss_read_header(), libspeex_decode_init(), libvorbis_setup(), main(), metasound_decode_init(), mlp_encode_close(), mlp_encode_init(), mmf_read_header(), mpc7_decode_init(), mpc8_decode_init(), mpc_read_header(), nuv_header(), oma_read_header(), on2avc_decode_init(), opus_decode_init(), paf_audio_init(), parse_mpeg1waveformatex(), pcm_bluray_decode_frame(), pcm_bluray_parse_header(), qdm2_decode_init(), qdmc_decode_init(), query_formats(), read_header(), read_major_sync(), RENAME(), roq_read_packet(), s302m_parse_frame_header(), sbg_read_header(), select_channel_layout(), set_channel_info(), set_channel_params(), set_channels(), smacker_read_header(), smka_decode_init(), sol_read_header(), speex_header(), str_read_packet(), swr_build_matrix(), tmv_read_header(), twinvq_decode_init(), vmd_read_header(), vmdaudio_decode_init(), wavpack_decode_block(), wavpack_encode_block(), wsaud_read_header(), and wv_read_block_header().

◆ AV_CH_LAYOUT_2POINT1

#define AV_CH_LAYOUT_2POINT1   (AV_CH_LAYOUT_STEREO|AV_CH_LOW_FREQUENCY)

Definition at line 87 of file channel_layout.h.

Referenced by init(), and mlp_encode_init().

◆ AV_CH_LAYOUT_2_1

#define AV_CH_LAYOUT_2_1   (AV_CH_LAYOUT_STEREO|AV_CH_BACK_CENTER)

◆ AV_CH_LAYOUT_SURROUND

#define AV_CH_LAYOUT_SURROUND   (AV_CH_LAYOUT_STEREO|AV_CH_FRONT_CENTER)

◆ AV_CH_LAYOUT_3POINT1

#define AV_CH_LAYOUT_3POINT1   (AV_CH_LAYOUT_SURROUND|AV_CH_LOW_FREQUENCY)

Definition at line 90 of file channel_layout.h.

Referenced by init(), and mlp_encode_init().

◆ AV_CH_LAYOUT_4POINT0

#define AV_CH_LAYOUT_4POINT0   (AV_CH_LAYOUT_SURROUND|AV_CH_BACK_CENTER)

◆ AV_CH_LAYOUT_4POINT1

#define AV_CH_LAYOUT_4POINT1   (AV_CH_LAYOUT_4POINT0|AV_CH_LOW_FREQUENCY)

Definition at line 92 of file channel_layout.h.

Referenced by init(), and mlp_encode_init().

◆ AV_CH_LAYOUT_2_2

#define AV_CH_LAYOUT_2_2   (AV_CH_LAYOUT_STEREO|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT)

◆ AV_CH_LAYOUT_QUAD

#define AV_CH_LAYOUT_QUAD   (AV_CH_LAYOUT_STEREO|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT)

◆ AV_CH_LAYOUT_5POINT0

#define AV_CH_LAYOUT_5POINT0   (AV_CH_LAYOUT_SURROUND|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT)

◆ AV_CH_LAYOUT_5POINT1

#define AV_CH_LAYOUT_5POINT1   (AV_CH_LAYOUT_5POINT0|AV_CH_LOW_FREQUENCY)

◆ AV_CH_LAYOUT_5POINT0_BACK

#define AV_CH_LAYOUT_5POINT0_BACK   (AV_CH_LAYOUT_SURROUND|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT)

◆ AV_CH_LAYOUT_5POINT1_BACK

#define AV_CH_LAYOUT_5POINT1_BACK   (AV_CH_LAYOUT_5POINT0_BACK|AV_CH_LOW_FREQUENCY)

◆ AV_CH_LAYOUT_6POINT0

#define AV_CH_LAYOUT_6POINT0   (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_CENTER)

Definition at line 99 of file channel_layout.h.

Referenced by get_aac_tag().

◆ AV_CH_LAYOUT_6POINT0_FRONT

#define AV_CH_LAYOUT_6POINT0_FRONT   (AV_CH_LAYOUT_2_2|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER)

Definition at line 100 of file channel_layout.h.

◆ AV_CH_LAYOUT_HEXAGONAL

#define AV_CH_LAYOUT_HEXAGONAL   (AV_CH_LAYOUT_5POINT0_BACK|AV_CH_BACK_CENTER)

Definition at line 101 of file channel_layout.h.

Referenced by main().

◆ AV_CH_LAYOUT_6POINT1

#define AV_CH_LAYOUT_6POINT1   (AV_CH_LAYOUT_5POINT1|AV_CH_BACK_CENTER)

Definition at line 102 of file channel_layout.h.

Referenced by ff_flac_is_native_layout(), and get_aac_tag().

◆ AV_CH_LAYOUT_6POINT1_BACK

#define AV_CH_LAYOUT_6POINT1_BACK   (AV_CH_LAYOUT_5POINT1_BACK|AV_CH_BACK_CENTER)

Definition at line 103 of file channel_layout.h.

Referenced by set_channel_params().

◆ AV_CH_LAYOUT_6POINT1_FRONT

#define AV_CH_LAYOUT_6POINT1_FRONT   (AV_CH_LAYOUT_6POINT0_FRONT|AV_CH_LOW_FREQUENCY)

Definition at line 104 of file channel_layout.h.

◆ AV_CH_LAYOUT_7POINT0

#define AV_CH_LAYOUT_7POINT0   (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT)

◆ AV_CH_LAYOUT_7POINT0_FRONT

Definition at line 106 of file channel_layout.h.

◆ AV_CH_LAYOUT_7POINT1

#define AV_CH_LAYOUT_7POINT1   (AV_CH_LAYOUT_5POINT1|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT)

◆ AV_CH_LAYOUT_7POINT1_WIDE

Definition at line 108 of file channel_layout.h.

◆ AV_CH_LAYOUT_7POINT1_WIDE_BACK

Definition at line 109 of file channel_layout.h.

Referenced by get_aac_tag().

◆ AV_CH_LAYOUT_OCTAGONAL

Definition at line 110 of file channel_layout.h.

Referenced by get_aac_tag().

◆ AV_CH_LAYOUT_HEXADECAGONAL

Definition at line 111 of file channel_layout.h.

◆ AV_CH_LAYOUT_STEREO_DOWNMIX

#define AV_CH_LAYOUT_STEREO_DOWNMIX   (AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT)

Enumeration Type Documentation

◆ AVMatrixEncoding

Enumerator
AV_MATRIX_ENCODING_NONE 
AV_MATRIX_ENCODING_DOLBY 
AV_MATRIX_ENCODING_DPLII 
AV_MATRIX_ENCODING_DPLIIX 
AV_MATRIX_ENCODING_DPLIIZ 
AV_MATRIX_ENCODING_DOLBYEX 
AV_MATRIX_ENCODING_DOLBYHEADPHONE 
AV_MATRIX_ENCODING_NB 

Definition at line 114 of file channel_layout.h.

Function Documentation

◆ av_get_channel_layout()

uint64_t av_get_channel_layout ( const char *  name)

Return a channel layout id that matches name, or 0 if no match is found.

name can be one or several of the following notations, separated by '+' or '|':

  • the name of an usual channel layout (mono, stereo, 4.0, quad, 5.0, 5.0(side), 5.1, 5.1(side), 7.1, 7.1(wide), downmix);
  • the name of a single channel (FL, FR, FC, LFE, BL, BR, FLC, FRC, BC, SL, SR, TC, TFL, TFC, TFR, TBL, TBC, TBR, DL, DR);
  • a number of channels, in decimal, followed by 'c', yielding the default channel layout for that number of channels (
    See also
    av_get_default_channel_layout);
  • a channel layout mask, in hexadecimal starting with "0x" (see the AV_CH_* macros).

Example: "stereo+FC" = "2c+FC" = "2c+1c" = "0x7"

Definition at line 139 of file channel_layout.c.

Referenced by av_get_extended_channel_layout(), av_opt_set(), channelmap_init(), get_channel(), init(), init_audio(), join_init(), opt_channel_layout(), and parse_channel_name().

◆ av_get_extended_channel_layout()

int av_get_extended_channel_layout ( const char *  name,
uint64_t *  channel_layout,
int nb_channels 
)

Return a channel layout and the number of channels based on the specified name.

This function is similar to (

See also
av_get_channel_layout), but can also parse unknown channel layout specifications.
Parameters
[in]namechannel layout specification string
[out]channel_layoutparsed channel layout (0 if unknown)
[out]nb_channelsnumber of channels
Returns
0 on success, AVERROR(EINVAL) if the parsing fails.

Definition at line 155 of file channel_layout.c.

Referenced by ff_parse_channel_layout(), and init().

◆ av_get_channel_layout_string()

void av_get_channel_layout_string ( char *  buf,
int  buf_size,
int  nb_channels,
uint64_t  channel_layout 
)

◆ av_bprint_channel_layout()

void av_bprint_channel_layout ( struct AVBPrint *  bp,
int  nb_channels,
uint64_t  channel_layout 
)

Append a description of a channel layout to a bprint buffer.

Definition at line 177 of file channel_layout.c.

Referenced by av_get_channel_layout_string(), config_output(), show_frame(), and show_stream().

◆ av_get_channel_layout_nb_channels()

int av_get_channel_layout_nb_channels ( uint64_t  channel_layout)

◆ av_get_default_channel_layout()

int64_t av_get_default_channel_layout ( int  nb_channels)

◆ av_get_channel_layout_channel_index()

int av_get_channel_layout_channel_index ( uint64_t  channel_layout,
uint64_t  channel 
)

Get the index of a channel in channel_layout.

Parameters
channela channel layout describing exactly one channel which must be present in channel_layout.
Returns
index of channel in channel_layout on success, a negative AVERROR on error.

Definition at line 233 of file channel_layout.c.

Referenced by ac3_decode_frame(), channelmap_config_input(), channelmap_init(), config_input(), config_output(), init(), join_config_output(), parse_maps(), and read_restart_header().

◆ av_channel_layout_extract_channel()

uint64_t av_channel_layout_extract_channel ( uint64_t  channel_layout,
int  index 
)

Get the channel with the given index in channel_layout.

Definition at line 265 of file channel_layout.c.

Referenced by config_audio_output(), convert_coeffs(), filter_frame(), generate_kernel(), guess_map_any(), init(), join_config_output(), join_init(), query_formats(), and swr_build_matrix().

◆ av_get_channel_name()

const char* av_get_channel_name ( uint64_t  channel)

Get the name of a given channel.

Returns
channel name on success, NULL on error.

Definition at line 243 of file channel_layout.c.

Referenced by channelmap_config_input(), dump_paramchange(), filter_frame(), init(), join_config_output(), show_layouts(), and swr_build_matrix().

◆ av_get_channel_description()

const char* av_get_channel_description ( uint64_t  channel)

Get the description of a given channel.

Parameters
channela channel layout with a single channel
Returns
channel description on success, NULL on error

Definition at line 254 of file channel_layout.c.

Referenced by show_layouts().

◆ av_get_standard_channel_layout()

int av_get_standard_channel_layout ( unsigned  index,
uint64_t *  layout,
const char **  name 
)

Get the value and name of a standard channel layout.

Parameters
[in]indexindex in an internal list, starting at 0
[out]layoutchannel layout mask
[out]namename of the layout
Returns
0 if the layout exists, <0 if index is beyond the limits

Definition at line 279 of file channel_layout.c.

Referenced by show_layouts().