Go to the documentation of this file.
40 [0] = {
"FL",
"front left" },
41 [1] = {
"FR",
"front right" },
42 [2] = {
"FC",
"front center" },
43 [3] = {
"LFE",
"low frequency" },
44 [4] = {
"BL",
"back left" },
45 [5] = {
"BR",
"back right" },
46 [6] = {
"FLC",
"front left-of-center" },
47 [7] = {
"FRC",
"front right-of-center" },
48 [8] = {
"BC",
"back center" },
49 [9] = {
"SL",
"side left" },
50 [10] = {
"SR",
"side right" },
51 [11] = {
"TC",
"top center" },
52 [12] = {
"TFL",
"top front left" },
53 [13] = {
"TFC",
"top front center" },
54 [14] = {
"TFR",
"top front right" },
55 [15] = {
"TBL",
"top back left" },
56 [16] = {
"TBC",
"top back center" },
57 [17] = {
"TBR",
"top back right" },
58 [29] = {
"DL",
"downmix left" },
59 [30] = {
"DR",
"downmix right" },
60 [31] = {
"WL",
"wide left" },
61 [32] = {
"WR",
"wide right" },
62 [33] = {
"SDL",
"surround direct left" },
63 [34] = {
"SDR",
"surround direct right" },
64 [35] = {
"LFE2",
"low frequency 2" },
124 return (int64_t)1 <<
i;
129 if (!errno && (
end + 1 -
name == name_len && *
end ==
'c'))
134 if (!errno &&
end -
name == name_len)
142 const char *name_end =
name + strlen(
name);
143 int64_t
layout = 0, layout_single;
145 for (n =
name; n < name_end; n = e + 1) {
146 for (e = n; e < name_end && *e !=
'+' && *e !=
'|'; e++);
168 if (!errno && *
end ==
'C' && *(
end + 1) ==
'\0' && nb > 0 && nb < 64) {
193 if (channel_layout) {
196 for (
i = 0, ch = 0;
i < 64;
i++) {
197 if ((channel_layout & (UINT64_C(1) <<
i))) {
222 return av_popcount64(channel_layout);
236 if (!(channel_layout &
channel) ||
248 for (
i = 0;
i < 64;
i++)
272 for (
i = 0;
i < 64;
i++) {
273 if ((1ULL <<
i) & channel_layout && !
index--)
#define AV_CH_LAYOUT_7POINT0
#define AV_CH_LAYOUT_6POINT1
#define AV_CH_LAYOUT_7POINT1_WIDE_BACK
#define AV_CH_LAYOUT_5POINT0_BACK
Filter the word “frame” indicates either a video frame or a group of audio as stored in an AVFrame structure Format for each input and each output the list of supported formats For video that means pixel format For audio that means channel sample they are references to shared objects When the negotiation mechanism computes the intersection of the formats supported at each end of a all references to both lists are replaced with a reference to the intersection And when a single format is eventually chosen for a link amongst the remaining all references to the list are updated That means that if a filter requires that its input and output have the same format amongst a supported all it has to do is use a reference to the same list of formats query_formats can leave some formats unset and return AVERROR(EAGAIN) to cause the negotiation mechanism toagain later. That can be used by filters with complex requirements to use the format negotiated on one link to set the formats supported on another. Frame references ownership and permissions
#define AV_CH_LAYOUT_HEXADECAGONAL
#define AVERROR_EOF
End of file.
#define AV_CH_LAYOUT_MONO
static av_cold int end(AVCodecContext *avctx)
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.
#define AV_CH_LAYOUT_HEXAGONAL
#define AV_CH_LAYOUT_6POINT0_FRONT
#define AV_CH_LAYOUT_6POINT1_FRONT
uint64_t av_get_channel_layout(const char *name)
Return a channel layout id that matches name, or 0 if no match is found.
#define AV_CH_LAYOUT_6POINT0
#define AV_CH_LAYOUT_STEREO
#define AV_CH_LAYOUT_QUAD
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.
#define AV_CH_LAYOUT_7POINT0_FRONT
#define AV_CH_LAYOUT_STEREO_DOWNMIX
const char * av_get_channel_name(uint64_t channel)
Get the name of a given channel.
#define AV_CH_LAYOUT_5POINT1
static const struct channel_name channel_names[]
int av_get_standard_channel_layout(unsigned index, uint64_t *layout, const char **name)
Get the value and name of a standard channel layout.
int av_get_channel_layout_nb_channels(uint64_t channel_layout)
Return the number of channels in the channel layout.
#define AV_CH_LAYOUT_5POINT1_BACK
#define AV_CH_LAYOUT_3POINT1
void av_bprint_init_for_buffer(AVBPrint *buf, char *buffer, unsigned size)
Init a print buffer using a pre-existing buffer.
#define AV_CH_LAYOUT_OCTAGONAL
#define AV_CH_LAYOUT_5POINT0
#define i(width, name, range_min, range_max)
#define AV_CH_LAYOUT_2POINT1
uint64_t av_channel_layout_extract_channel(uint64_t channel_layout, int index)
Get the channel with the given index in channel_layout.
int av_get_channel_layout_channel_index(uint64_t channel_layout, uint64_t channel)
Get the index of a channel in channel_layout.
#define AV_CH_LAYOUT_7POINT1
#define AV_CH_LAYOUT_4POINT1
#define AV_CH_LAYOUT_7POINT1_WIDE
#define AV_CH_LAYOUT_SURROUND
static uint64_t get_channel_layout_single(const char *name, int name_len)
void av_bprintf(AVBPrint *buf, const char *fmt,...)
const char * av_get_channel_description(uint64_t channel)
Get the description of a given channel.
#define FF_ARRAY_ELEMS(a)
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.
static const char * get_channel_name(int channel_id)
static const struct @283 channel_layout_map[]
int64_t av_get_default_channel_layout(int nb_channels)
Return default channel layout for a given number of channels.
#define AV_CH_LAYOUT_4POINT0
#define AV_CH_LAYOUT_6POINT1_BACK