FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Enumerations | Functions
Audio channel layouts
Audio related

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_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.
 
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.
 
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.
 
int av_get_channel_layout_nb_channels (uint64_t channel_layout)
 Return the number of channels in the channel layout.
 
int64_t av_get_default_channel_layout (int nb_channels)
 Return default channel layout for a given number of channels.
 
int av_get_channel_layout_channel_index (uint64_t channel_layout, uint64_t channel)
 Get the index of a channel in channel_layout.
 
uint64_t av_channel_layout_extract_channel (uint64_t channel_layout, int index)
 Get the channel with the given index in channel_layout.
 
const char * av_get_channel_name (uint64_t channel)
 Get the name of a given channel.
 
const char * av_get_channel_description (uint64_t channel)
 Get the description of a given channel.
 
int av_get_standard_channel_layout (unsigned index, uint64_t *layout, const char **name)
 Get the value and name of a standard channel layout.
 

Detailed Description

Macro Definition Documentation

#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(), amrnb_decode_init(), amrwb_decode_init(), apc_read_header(), ape_decode_init(), bfi_read_header(), cdxl_read_packet(), cin_read_header(), cinaudio_decode_init(), cook_decode_init(), create_audio_stream(), create_new_audio_stream(), decode_frame(), decode_init(), encode_init(), evrc_decode_init(), ff_aac_ac3_parse(), ff_flac_is_native_layout(), ff_opus_parse_extradata(), flv_read_packet(), g722_decode_init(), g723_1_decode_init(), g723_1_init(), get_sindex(), gsm_init(), gsm_read_header(), idcin_read_header(), iff_read_header(), ilbc_decode_init(), imc_decode_init(), init_filters(), ipmovie_read_header(), iss_read_header(), libgsm_decode_init(), libspeex_decode_init(), metasound_decode_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(), 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().

#define AV_CH_LAYOUT_STEREO   (AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT)
Examples:
decoding_encoding.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(), ast_read_header(), auto_matrix(), avresample_build_matrix(), bmv_aud_decode_init(), bmv_read_header(), cdxl_read_packet(), cook_decode_init(), create_new_audio_stream(), dca_decode_frame(), dca_decode_init(), dca_filter_channels(), decode_frame(), decode_init(), dv_extract_audio_info(), encode_init(), ff_aac_ac3_parse(), ff_flac_is_native_layout(), ff_opus_parse_extradata(), flac_encode_init(), flv_read_packet(), get_mix_any_func_TMPL(), get_sindex(), get_stream_info(), idcin_read_header(), iff_read_header(), imc_decode_init(), init_filter_graph(), ipmovie_read_header(), iss_read_header(), libspeex_decode_init(), libvorbis_setup(), main(), metasound_decode_init(), mlp_parse(), 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(), query_formats(), read_header(), read_major_sync(), roq_read_packet(), s302m_parse_frame_header(), sbg_read_header(), select_channel_layout(), set_channel_params(), set_channels(), smacker_read_header(), smka_decode_init(), sol_read_header(), speex_header(), str_read_packet(), 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().

#define AV_CH_LAYOUT_2POINT1   (AV_CH_LAYOUT_STEREO|AV_CH_LOW_FREQUENCY)

Definition at line 87 of file channel_layout.h.

#define AV_CH_LAYOUT_2_1   (AV_CH_LAYOUT_STEREO|AV_CH_BACK_CENTER)

Definition at line 88 of file channel_layout.h.

Referenced by pcm_bluray_decode_frame(), and pcm_bluray_parse_header().

#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)

Definition at line 90 of file channel_layout.h.

#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)

Definition at line 92 of file channel_layout.h.

#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)

Definition at line 99 of file channel_layout.h.

#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.

#define AV_CH_LAYOUT_HEXAGONAL   (AV_CH_LAYOUT_5POINT0_BACK|AV_CH_BACK_CENTER)

Definition at line 101 of file channel_layout.h.

#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().

#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().

#define AV_CH_LAYOUT_6POINT1_FRONT   (AV_CH_LAYOUT_6POINT0_FRONT|AV_CH_LOW_FREQUENCY)

Definition at line 104 of file channel_layout.h.

#define AV_CH_LAYOUT_7POINT0   (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT)

Definition at line 105 of file channel_layout.h.

Referenced by pcm_bluray_decode_frame(), and pcm_bluray_parse_header().

Definition at line 106 of file channel_layout.h.

#define AV_CH_LAYOUT_7POINT1   (AV_CH_LAYOUT_5POINT1|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT)

Definition at line 108 of file channel_layout.h.

Definition at line 109 of file channel_layout.h.

Definition at line 110 of file channel_layout.h.

#define AV_CH_LAYOUT_STEREO_DOWNMIX   (AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT)

Enumeration Type Documentation

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 113 of file channel_layout.h.

Function Documentation

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, optionally 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).
Warning
Starting from the next major bump the trailing character 'c' to specify a number of channels will be required, while a channel layout mask could also be specified as a decimal number (if and only if not followed by "c").

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

Definition at line 183 of file channel_layout.c.

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

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.

If nb_channels is <= 0, it is guessed from the channel_layout.

Parameters
bufput here the string containing the channel layout
buf_sizesize in bytes of the buffer

Definition at line 223 of file channel_layout.c.

Referenced by audio_decode_frame(), auto_matrix(), avcodec_open2(), avcodec_string(), channelmap_config_input(), channelmap_init(), clean_layout(), config_output(), config_props(), decode_audio(), dprint_options(), ff_alsa_open(), ff_audio_mix_set_matrix(), ff_tlog_link(), filter_frame(), guess_channel_layout(), guess_input_channel_layout(), init_filter_graph(), init_filters(), libvorbis_setup(), main(), print_digraph(), print_link_prop(), query_formats(), and swr_init().

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 189 of file channel_layout.c.

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

int av_get_channel_layout_nb_channels ( uint64_t  channel_layout)

Return the number of channels in the channel layout.

Definition at line 232 of file channel_layout.c.

Referenced by add_stream(), audio_decode_frame(), audio_encode_example(), audio_open(), auto_matrix(), av_bprint_channel_layout(), av_buffersrc_add_frame_flags(), av_channel_layout_extract_channel(), av_get_channel_description(), av_get_channel_layout_channel_index(), av_get_channel_name(), available_samples(), avcodec_open2(), avpriv_flac_parse_streaminfo(), avresample_build_matrix(), avresample_get_matrix(), avresample_open(), avresample_set_channel_mapping(), avresample_set_matrix(), buffer_offset(), calc_ptr_alignment(), channelmap_config_input(), channelmap_filter_frame(), channelmap_init(), config_audio_output(), config_output(), config_props(), cook_decode_init(), dca_decode_frame(), ff_default_get_audio_buffer(), ff_filter_frame_framed(), ff_init_buffer_info(), ff_merge_channel_layouts(), ff_mov_get_channel_layout_tag(), ff_parse_channel_layout(), filter_frame(), get_audio_buffer(), get_channel(), get_stream_info(), get_valid_channel_layout(), init(), init_audio(), join_init(), main(), mov_read_dec3(), open_output_file(), opt_channel_layout(), parse_dsd_prop(), pick_format(), print_frame(), process_output(), pulse_write_header(), query_formats(), return_audio_frame(), sane_layout(), select_channel_layout(), send_silence(), swap_channel_layouts_on_filter(), swr_alloc_set_opts(), swr_init(), swr_set_matrix(), swri_rematrix(), swri_rematrix_init(), swri_rematrix_init_x86(), and thd_channel_layout_extract_channel().

int64_t av_get_default_channel_layout ( int  nb_channels)
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 245 of file channel_layout.c.

Referenced by channelmap_config_input(), channelmap_init(), join_config_output(), parse_maps(), and read_restart_header().

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 277 of file channel_layout.c.

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

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 255 of file channel_layout.c.

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

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 266 of file channel_layout.c.

Referenced by show_layouts().

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 291 of file channel_layout.c.

Referenced by show_layouts().