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" },
65 [36] = {
"TSL",
"top side left" },
66 [37] = {
"TSR",
"top side right" },
67 [38] = {
"BFC",
"bottom front center" },
68 [39] = {
"BFL",
"bottom front left" },
69 [40] = {
"BFR",
"bottom front right" },
130 return (int64_t)1 <<
i;
133 i = strtol(
name, &end, 10);
135 if (!errno && (end + 1 -
name == name_len && *end ==
'c'))
140 if (!errno && end -
name == name_len)
148 const char *name_end =
name + strlen(
name);
149 int64_t
layout = 0, layout_single;
151 for (n =
name; n < name_end; n = e + 1) {
152 for (e = n; e < name_end && *e !=
'+' && *e !=
'|'; e++);
173 nb = strtol(
name, &end, 10);
174 if (!errno && *end ==
'C' && *(end + 1) ==
'\0' && nb > 0 && nb < 64) {
199 if (channel_layout) {
202 for (
i = 0, ch = 0;
i < 64;
i++) {
203 if ((channel_layout & (UINT64_C(1) <<
i))) {
242 if (!(channel_layout &
channel) ||
254 for (
i = 0;
i < 64;
i++)
278 for (
i = 0;
i < 64;
i++) {
279 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
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
#define FF_ARRAY_ELEMS(a)
#define AV_CH_LAYOUT_22POINT2
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.
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)
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
static const struct @289 channel_layout_map[]