FFmpeg
4.4.5
libavfilter
tests
formats.c
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2007 Bobby Bingham
3
*
4
* This file is part of FFmpeg.
5
*
6
* FFmpeg is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU Lesser General Public
8
* License as published by the Free Software Foundation; either
9
* version 2.1 of the License, or (at your option) any later version.
10
*
11
* FFmpeg is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* Lesser General Public License for more details.
15
*
16
* You should have received a copy of the GNU Lesser General Public
17
* License along with FFmpeg; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
*/
20
21
#include "
libavfilter/formats.c
"
22
23
#undef printf
24
25
const
int64_t
avfilter_all_channel_layouts
[] = {
26
AV_CH_FRONT_CENTER
,
27
AV_CH_FRONT_CENTER
|
AV_CH_LOW_FREQUENCY
,
28
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
,
29
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_LOW_FREQUENCY
,
30
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_FRONT_CENTER
,
31
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_FRONT_CENTER
|
AV_CH_LOW_FREQUENCY
,
32
AV_CH_FRONT_CENTER
|
AV_CH_BACK_LEFT
|
AV_CH_BACK_RIGHT
,
33
AV_CH_FRONT_CENTER
|
AV_CH_LOW_FREQUENCY
|
AV_CH_BACK_LEFT
|
AV_CH_BACK_RIGHT
,
34
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_BACK_LEFT
|
AV_CH_BACK_RIGHT
,
35
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_LOW_FREQUENCY
|
AV_CH_BACK_LEFT
|
AV_CH_BACK_RIGHT
,
36
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_FRONT_CENTER
|
AV_CH_BACK_LEFT
|
AV_CH_BACK_RIGHT
,
37
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_FRONT_CENTER
|
AV_CH_LOW_FREQUENCY
|
AV_CH_BACK_LEFT
|
AV_CH_BACK_RIGHT
,
38
AV_CH_FRONT_CENTER
|
AV_CH_BACK_CENTER
,
39
AV_CH_FRONT_CENTER
|
AV_CH_LOW_FREQUENCY
|
AV_CH_BACK_CENTER
,
40
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_BACK_CENTER
,
41
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_LOW_FREQUENCY
|
AV_CH_BACK_CENTER
,
42
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_FRONT_CENTER
|
AV_CH_BACK_CENTER
,
43
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_FRONT_CENTER
|
AV_CH_LOW_FREQUENCY
|
AV_CH_BACK_CENTER
,
44
AV_CH_FRONT_CENTER
|
AV_CH_SIDE_LEFT
|
AV_CH_SIDE_RIGHT
,
45
AV_CH_FRONT_CENTER
|
AV_CH_LOW_FREQUENCY
|
AV_CH_SIDE_LEFT
|
AV_CH_SIDE_RIGHT
,
46
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_SIDE_LEFT
|
AV_CH_SIDE_RIGHT
,
47
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_LOW_FREQUENCY
|
AV_CH_SIDE_LEFT
|
AV_CH_SIDE_RIGHT
,
48
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_FRONT_CENTER
|
AV_CH_SIDE_LEFT
|
AV_CH_SIDE_RIGHT
,
49
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_FRONT_CENTER
|
AV_CH_LOW_FREQUENCY
|
AV_CH_SIDE_LEFT
|
AV_CH_SIDE_RIGHT
,
50
AV_CH_FRONT_CENTER
|
AV_CH_BACK_LEFT
|
AV_CH_BACK_RIGHT
|
AV_CH_SIDE_LEFT
|
AV_CH_SIDE_RIGHT
,
51
AV_CH_FRONT_CENTER
|
AV_CH_LOW_FREQUENCY
|
AV_CH_BACK_LEFT
|
AV_CH_BACK_RIGHT
|
AV_CH_SIDE_LEFT
|
AV_CH_SIDE_RIGHT
,
52
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_BACK_LEFT
|
AV_CH_BACK_RIGHT
|
AV_CH_SIDE_LEFT
|
AV_CH_SIDE_RIGHT
,
53
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_LOW_FREQUENCY
|
AV_CH_BACK_LEFT
|
AV_CH_BACK_RIGHT
|
AV_CH_SIDE_LEFT
|
AV_CH_SIDE_RIGHT
,
54
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_FRONT_CENTER
|
AV_CH_BACK_LEFT
|
AV_CH_BACK_RIGHT
|
AV_CH_SIDE_LEFT
|
AV_CH_SIDE_RIGHT
,
55
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_FRONT_CENTER
|
AV_CH_LOW_FREQUENCY
|
AV_CH_BACK_LEFT
|
AV_CH_BACK_RIGHT
|
AV_CH_SIDE_LEFT
|
AV_CH_SIDE_RIGHT
,
56
AV_CH_FRONT_CENTER
|
AV_CH_BACK_CENTER
|
AV_CH_SIDE_LEFT
|
AV_CH_SIDE_RIGHT
,
57
AV_CH_FRONT_CENTER
|
AV_CH_LOW_FREQUENCY
|
AV_CH_BACK_CENTER
|
AV_CH_SIDE_LEFT
|
AV_CH_SIDE_RIGHT
,
58
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_BACK_CENTER
|
AV_CH_SIDE_LEFT
|
AV_CH_SIDE_RIGHT
,
59
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_LOW_FREQUENCY
|
AV_CH_BACK_CENTER
|
AV_CH_SIDE_LEFT
|
AV_CH_SIDE_RIGHT
,
60
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_FRONT_CENTER
|
AV_CH_BACK_CENTER
|
AV_CH_SIDE_LEFT
|
AV_CH_SIDE_RIGHT
,
61
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_FRONT_CENTER
|
AV_CH_LOW_FREQUENCY
|
AV_CH_BACK_CENTER
|
AV_CH_SIDE_LEFT
|
AV_CH_SIDE_RIGHT
,
62
AV_CH_FRONT_CENTER
|
AV_CH_STEREO_LEFT
|
AV_CH_STEREO_RIGHT
,
63
AV_CH_FRONT_CENTER
|
AV_CH_LOW_FREQUENCY
|
AV_CH_STEREO_LEFT
|
AV_CH_STEREO_RIGHT
,
64
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_STEREO_LEFT
|
AV_CH_STEREO_RIGHT
,
65
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_LOW_FREQUENCY
|
AV_CH_STEREO_LEFT
|
AV_CH_STEREO_RIGHT
,
66
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_FRONT_CENTER
|
AV_CH_STEREO_LEFT
|
AV_CH_STEREO_RIGHT
,
67
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_FRONT_CENTER
|
AV_CH_LOW_FREQUENCY
|
AV_CH_STEREO_LEFT
|
AV_CH_STEREO_RIGHT
,
68
AV_CH_FRONT_CENTER
|
AV_CH_BACK_LEFT
|
AV_CH_BACK_RIGHT
|
AV_CH_STEREO_LEFT
|
AV_CH_STEREO_RIGHT
,
69
AV_CH_FRONT_CENTER
|
AV_CH_LOW_FREQUENCY
|
AV_CH_BACK_LEFT
|
AV_CH_BACK_RIGHT
|
AV_CH_STEREO_LEFT
|
AV_CH_STEREO_RIGHT
,
70
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_BACK_LEFT
|
AV_CH_BACK_RIGHT
|
AV_CH_STEREO_LEFT
|
AV_CH_STEREO_RIGHT
,
71
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_LOW_FREQUENCY
|
AV_CH_BACK_LEFT
|
AV_CH_BACK_RIGHT
|
AV_CH_STEREO_LEFT
|
AV_CH_STEREO_RIGHT
,
72
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_FRONT_CENTER
|
AV_CH_BACK_LEFT
|
AV_CH_BACK_RIGHT
|
AV_CH_STEREO_LEFT
|
AV_CH_STEREO_RIGHT
,
73
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_FRONT_CENTER
|
AV_CH_LOW_FREQUENCY
|
AV_CH_BACK_LEFT
|
AV_CH_BACK_RIGHT
|
AV_CH_STEREO_LEFT
|
AV_CH_STEREO_RIGHT
,
74
AV_CH_FRONT_CENTER
|
AV_CH_BACK_CENTER
|
AV_CH_STEREO_LEFT
|
AV_CH_STEREO_RIGHT
,
75
AV_CH_FRONT_CENTER
|
AV_CH_LOW_FREQUENCY
|
AV_CH_BACK_CENTER
|
AV_CH_STEREO_LEFT
|
AV_CH_STEREO_RIGHT
,
76
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_BACK_CENTER
|
AV_CH_STEREO_LEFT
|
AV_CH_STEREO_RIGHT
,
77
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_LOW_FREQUENCY
|
AV_CH_BACK_CENTER
|
AV_CH_STEREO_LEFT
|
AV_CH_STEREO_RIGHT
,
78
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_FRONT_CENTER
|
AV_CH_BACK_CENTER
|
AV_CH_STEREO_LEFT
|
AV_CH_STEREO_RIGHT
,
79
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_FRONT_CENTER
|
AV_CH_LOW_FREQUENCY
|
AV_CH_BACK_CENTER
|
AV_CH_STEREO_LEFT
|
AV_CH_STEREO_RIGHT
,
80
AV_CH_FRONT_CENTER
|
AV_CH_SIDE_LEFT
|
AV_CH_SIDE_RIGHT
|
AV_CH_STEREO_LEFT
|
AV_CH_STEREO_RIGHT
,
81
AV_CH_FRONT_CENTER
|
AV_CH_LOW_FREQUENCY
|
AV_CH_SIDE_LEFT
|
AV_CH_SIDE_RIGHT
|
AV_CH_STEREO_LEFT
|
AV_CH_STEREO_RIGHT
,
82
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_SIDE_LEFT
|
AV_CH_SIDE_RIGHT
|
AV_CH_STEREO_LEFT
|
AV_CH_STEREO_RIGHT
,
83
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_LOW_FREQUENCY
|
AV_CH_SIDE_LEFT
|
AV_CH_SIDE_RIGHT
|
AV_CH_STEREO_LEFT
|
AV_CH_STEREO_RIGHT
,
84
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_FRONT_CENTER
|
AV_CH_SIDE_LEFT
|
AV_CH_SIDE_RIGHT
|
AV_CH_STEREO_LEFT
|
AV_CH_STEREO_RIGHT
,
85
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_FRONT_CENTER
|
AV_CH_LOW_FREQUENCY
|
AV_CH_SIDE_LEFT
|
AV_CH_SIDE_RIGHT
|
AV_CH_STEREO_LEFT
|
AV_CH_STEREO_RIGHT
,
86
AV_CH_FRONT_CENTER
|
AV_CH_BACK_LEFT
|
AV_CH_BACK_RIGHT
|
AV_CH_SIDE_LEFT
|
AV_CH_SIDE_RIGHT
|
AV_CH_STEREO_LEFT
|
AV_CH_STEREO_RIGHT
,
87
AV_CH_FRONT_CENTER
|
AV_CH_LOW_FREQUENCY
|
AV_CH_BACK_LEFT
|
AV_CH_BACK_RIGHT
|
AV_CH_SIDE_LEFT
|
AV_CH_SIDE_RIGHT
|
AV_CH_STEREO_LEFT
|
AV_CH_STEREO_RIGHT
,
88
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_BACK_LEFT
|
AV_CH_BACK_RIGHT
|
AV_CH_SIDE_LEFT
|
AV_CH_SIDE_RIGHT
|
AV_CH_STEREO_LEFT
|
AV_CH_STEREO_RIGHT
,
89
AV_CH_FRONT_CENTER
|
AV_CH_BACK_CENTER
|
AV_CH_SIDE_LEFT
|
AV_CH_SIDE_RIGHT
|
AV_CH_STEREO_LEFT
|
AV_CH_STEREO_RIGHT
,
90
AV_CH_FRONT_CENTER
|
AV_CH_LOW_FREQUENCY
|
AV_CH_BACK_CENTER
|
AV_CH_SIDE_LEFT
|
AV_CH_SIDE_RIGHT
|
AV_CH_STEREO_LEFT
|
AV_CH_STEREO_RIGHT
,
91
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_BACK_CENTER
|
AV_CH_SIDE_LEFT
|
AV_CH_SIDE_RIGHT
|
AV_CH_STEREO_LEFT
|
AV_CH_STEREO_RIGHT
,
92
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_LOW_FREQUENCY
|
AV_CH_BACK_CENTER
|
AV_CH_SIDE_LEFT
|
AV_CH_SIDE_RIGHT
|
AV_CH_STEREO_LEFT
|
AV_CH_STEREO_RIGHT
,
93
AV_CH_FRONT_LEFT
|
AV_CH_FRONT_RIGHT
|
AV_CH_FRONT_CENTER
|
AV_CH_BACK_CENTER
|
AV_CH_SIDE_LEFT
|
AV_CH_SIDE_RIGHT
|
AV_CH_STEREO_LEFT
|
AV_CH_STEREO_RIGHT
,
94
-1
95
};
96
97
int
main
(
void
)
98
{
99
const
int64_t
*cl;
100
char
buf[512];
101
int
i
;
102
const
char
*teststrings[] ={
103
"blah"
,
104
"1"
,
105
"2"
,
106
"-1"
,
107
"60"
,
108
"65"
,
109
"1c"
,
110
"2c"
,
111
"-1c"
,
112
"60c"
,
113
"65c"
,
114
"2C"
,
115
"60C"
,
116
"65C"
,
117
"5.1"
,
118
"stereo"
,
119
"1+1+1+1"
,
120
"1c+1c+1c+1c"
,
121
"2c+1c"
,
122
"0x3"
,
123
};
124
125
for
(cl =
avfilter_all_channel_layouts
; *cl != -1; cl++) {
126
av_get_channel_layout_string
(buf,
sizeof
(buf), -1, *cl);
127
printf(
"%s\n"
, buf);
128
}
129
130
for
(
i
= 0;
i
<
FF_ARRAY_ELEMS
(teststrings);
i
++) {
131
int64_t
layout
= -1;
132
int
count = -1;
133
int
ret;
134
ret =
ff_parse_channel_layout
(&
layout
, &count, teststrings[
i
],
NULL
);
135
136
printf (
"%d = ff_parse_channel_layout(%016"
PRIX64
", %2d, %s);\n"
, ret ? -1 : 0,
layout
, count, teststrings[
i
]);
137
}
138
139
return
0;
140
}
layout
uint64_t layout
Definition:
channel_layout.c:82
NULL
#define NULL
Definition:
coverity.c:32
int64_t
long long int64_t
Definition:
coverity.c:34
formats.c
ff_parse_channel_layout
int ff_parse_channel_layout(int64_t *ret, int *nret, const char *arg, void *log_ctx)
Parse a channel layout or a corresponding integer representation.
Definition:
formats.c:644
av_get_channel_layout_string
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.
Definition:
channel_layout.c:217
AV_CH_SIDE_LEFT
#define AV_CH_SIDE_LEFT
Definition:
channel_layout.h:58
AV_CH_FRONT_RIGHT
#define AV_CH_FRONT_RIGHT
Definition:
channel_layout.h:50
AV_CH_BACK_CENTER
#define AV_CH_BACK_CENTER
Definition:
channel_layout.h:57
AV_CH_BACK_RIGHT
#define AV_CH_BACK_RIGHT
Definition:
channel_layout.h:54
AV_CH_FRONT_CENTER
#define AV_CH_FRONT_CENTER
Definition:
channel_layout.h:51
AV_CH_SIDE_RIGHT
#define AV_CH_SIDE_RIGHT
Definition:
channel_layout.h:59
AV_CH_BACK_LEFT
#define AV_CH_BACK_LEFT
Definition:
channel_layout.h:53
AV_CH_LOW_FREQUENCY
#define AV_CH_LOW_FREQUENCY
Definition:
channel_layout.h:52
AV_CH_STEREO_RIGHT
#define AV_CH_STEREO_RIGHT
See AV_CH_STEREO_LEFT.
Definition:
channel_layout.h:68
AV_CH_STEREO_LEFT
#define AV_CH_STEREO_LEFT
Stereo downmix.
Definition:
channel_layout.h:67
AV_CH_FRONT_LEFT
#define AV_CH_FRONT_LEFT
Definition:
channel_layout.h:49
i
int i
Definition:
input.c:407
FF_ARRAY_ELEMS
#define FF_ARRAY_ELEMS(a)
Definition:
sinewin_tablegen.c:29
main
int main(void)
Definition:
formats.c:97
avfilter_all_channel_layouts
const int64_t avfilter_all_channel_layouts[]
Definition:
formats.c:25
Generated on Sun Apr 20 2025 09:08:45 for FFmpeg by
1.9.1