camenduru commited on
Commit
8ead80b
1 Parent(s): 07313ec

thanks to ffmpeg ❤

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
.gitattributes CHANGED
@@ -1,35 +1,30 @@
1
- *.7z filter=lfs diff=lfs merge=lfs -text
2
- *.arrow filter=lfs diff=lfs merge=lfs -text
3
- *.bin filter=lfs diff=lfs merge=lfs -text
4
- *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
- *.ftz filter=lfs diff=lfs merge=lfs -text
7
- *.gz filter=lfs diff=lfs merge=lfs -text
8
- *.h5 filter=lfs diff=lfs merge=lfs -text
9
- *.joblib filter=lfs diff=lfs merge=lfs -text
10
- *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
- *.model filter=lfs diff=lfs merge=lfs -text
13
- *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
- *.onnx filter=lfs diff=lfs merge=lfs -text
17
- *.ot filter=lfs diff=lfs merge=lfs -text
18
- *.parquet filter=lfs diff=lfs merge=lfs -text
19
- *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
- *.pkl filter=lfs diff=lfs merge=lfs -text
22
- *.pt filter=lfs diff=lfs merge=lfs -text
23
- *.pth filter=lfs diff=lfs merge=lfs -text
24
- *.rar filter=lfs diff=lfs merge=lfs -text
25
- *.safetensors filter=lfs diff=lfs merge=lfs -text
26
- saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
- *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
- *.tflite filter=lfs diff=lfs merge=lfs -text
30
- *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
- *.xz filter=lfs diff=lfs merge=lfs -text
33
- *.zip filter=lfs diff=lfs merge=lfs -text
34
- *.zst filter=lfs diff=lfs merge=lfs -text
35
- *tfevents* filter=lfs diff=lfs merge=lfs -text
 
1
+ *.pnm -diff -text
2
+ tests/ref/fate/sub-scc eol=crlf
3
+ ffmpeg_g filter=lfs diff=lfs merge=lfs -text
4
+ libavcodec/cbs_h2645.o filter=lfs diff=lfs merge=lfs -text
5
+ libavcodec/h264qpel.o filter=lfs diff=lfs merge=lfs -text
6
+ libavcodec/libavcodec.so filter=lfs diff=lfs merge=lfs -text
7
+ libavcodec/libavcodec.so.60 filter=lfs diff=lfs merge=lfs -text
8
+ libavcodec/vp8.o filter=lfs diff=lfs merge=lfs -text
9
+ libavcodec/vp9dsp_10bpp.o filter=lfs diff=lfs merge=lfs -text
10
+ libavcodec/vp9dsp_8bpp.o filter=lfs diff=lfs merge=lfs -text
11
+ libavcodec/vp9recon.o filter=lfs diff=lfs merge=lfs -text
12
+ libavcodec/x86/hevcdsp_init.o filter=lfs diff=lfs merge=lfs -text
13
+ libavfilter/libavfilter.so filter=lfs diff=lfs merge=lfs -text
14
+ libavfilter/libavfilter.so.9 filter=lfs diff=lfs merge=lfs -text
15
+ libavfilter/vf_bilateral_cuda.ptx.gz filter=lfs diff=lfs merge=lfs -text
16
+ libavfilter/vf_bwdif_cuda.ptx.gz filter=lfs diff=lfs merge=lfs -text
17
+ libavfilter/vf_chromakey_cuda.ptx.gz filter=lfs diff=lfs merge=lfs -text
18
+ libavfilter/vf_colorspace_cuda.ptx.gz filter=lfs diff=lfs merge=lfs -text
19
+ libavfilter/vf_lut3d.o filter=lfs diff=lfs merge=lfs -text
20
+ libavfilter/vf_overlay_cuda.ptx.gz filter=lfs diff=lfs merge=lfs -text
21
+ libavfilter/vf_scale_cuda.ptx.gz filter=lfs diff=lfs merge=lfs -text
22
+ libavfilter/vf_thumbnail_cuda.ptx.gz filter=lfs diff=lfs merge=lfs -text
23
+ libavfilter/vf_yadif_cuda.ptx.gz filter=lfs diff=lfs merge=lfs -text
24
+ libavformat/libavformat.so filter=lfs diff=lfs merge=lfs -text
25
+ libavformat/libavformat.so.60 filter=lfs diff=lfs merge=lfs -text
26
+ libavutil/libavutil.so filter=lfs diff=lfs merge=lfs -text
27
+ libavutil/libavutil.so.58 filter=lfs diff=lfs merge=lfs -text
28
+ libswscale/libswscale.so filter=lfs diff=lfs merge=lfs -text
29
+ libswscale/libswscale.so.7 filter=lfs diff=lfs merge=lfs -text
30
+ libswscale/output.o filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
.gitignore ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.a
2
+ *.o
3
+ *.o.*
4
+ *.d
5
+ *.def
6
+ *.dll
7
+ *.dylib
8
+ *.exe
9
+ *.exp
10
+ *.gcda
11
+ *.gcno
12
+ *.h.c
13
+ *.ilk
14
+ *.lib
15
+ *.pc
16
+ *.pdb
17
+ *.so
18
+ *.so.*
19
+ *.swp
20
+ *.ver
21
+ *.version
22
+ *.metal.air
23
+ *.metallib
24
+ *.metallib.c
25
+ *.ptx
26
+ *.ptx.c
27
+ *.ptx.gz
28
+ *_g
29
+ \#*
30
+ .\#*
31
+ /.config
32
+ /.version
33
+ /ffmpeg
34
+ /ffplay
35
+ /ffprobe
36
+ /config.asm
37
+ /config.h
38
+ /config_components.h
39
+ /coverage.info
40
+ /lcov/
41
+ /src
42
+ /mapfile
43
+ /tools/python/__pycache__/
.mailmap ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <jeebjp@gmail.com> <jan.ekstrom@aminocom.com>
2
+ <sw@jkqxz.net> <mrt@jkqxz.net>
3
+ <u@pkh.me> <cboesch@gopro.com>
4
+ <zhilizhao@tencent.com> <quinkblack@foxmail.com>
5
+ <zhilizhao@tencent.com> <wantlamy@gmail.com>
6
+ <modmaker@google.com> <modmaker-at-google.com@ffmpeg.org>
7
+ <stebbins@jetheaddev.com> <jstebbins@jetheaddev.com>
8
+ <barryjzhao@tencent.com> <mypopydev@gmail.com>
9
+ <barryjzhao@tencent.com> <jun.zhao@intel.com>
10
+ <josh@itanimul.li> <joshdk@obe.tv>
11
+ <michael@niedermayer.cc> <michaelni@gmx.at>
12
+ <linjie.justin.fu@gmail.com> <linjie.fu@intel.com>
13
+ <linjie.justin.fu@gmail.com> <fulinjie@zju.edu.cn>
14
+ <ceffmpeg@gmail.com> <cehoyos@ag.or.at>
15
+ <ceffmpeg@gmail.com> <cehoyos@rainbow.studorg.tuwien.ac.at>
16
+ <ffmpeg@gyani.pro> <gyandoshi@gmail.com>
17
+ <atomnuker@gmail.com> <rpehlivanov@obe.tv>
18
+ <lizhong1008@gmail.com> <zhong.li@intel.com>
19
+ <lizhong1008@gmail.com> <zhongli_dev@126.com>
20
+ <andreas.rheinhardt@gmail.com> <andreas.rheinhardt@googlemail.com>
21
+ rcombs <rcombs@rcombs.me> <rodger.combs@gmail.com>
22
+ <thilo.borgmann@mail.de> <thilo.borgmann@googlemail.com>
23
+ <liuqi05@kuaishou.com> <lq@chinaffmpeg.org>
24
+ <ruiling.song83@gmail.com> <ruiling.song@intel.com>
.travis.yml ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ language: c
2
+ sudo: false
3
+ os:
4
+ - linux
5
+ - osx
6
+ addons:
7
+ apt:
8
+ packages:
9
+ - nasm
10
+ - diffutils
11
+ compiler:
12
+ - clang
13
+ - gcc
14
+ matrix:
15
+ exclude:
16
+ - os: osx
17
+ compiler: gcc
18
+ cache:
19
+ directories:
20
+ - ffmpeg-samples
21
+ before_install:
22
+ - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew update; fi
23
+ install:
24
+ - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew install nasm; fi
25
+ script:
26
+ - mkdir -p ffmpeg-samples
27
+ - ./configure --samples=ffmpeg-samples --cc=$CC
28
+ - make -j 8
29
+ - make fate-rsync
30
+ - make check -j 8
.version ADDED
File without changes
CONTRIBUTING.md ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ # Note to Github users
2
+ Patches should be submitted to the [ffmpeg-devel mailing list](https://ffmpeg.org/mailman/listinfo/ffmpeg-devel) using `git format-patch` or `git send-email`. Github pull requests should be avoided because they are not part of our review process and **will be ignored**.
3
+
4
+ See [https://ffmpeg.org/developer.html#Contributing](https://ffmpeg.org/developer.html#Contributing) for more information.
COPYING.GPLv2 ADDED
@@ -0,0 +1,339 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ GNU GENERAL PUBLIC LICENSE
2
+ Version 2, June 1991
3
+
4
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
5
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
6
+ Everyone is permitted to copy and distribute verbatim copies
7
+ of this license document, but changing it is not allowed.
8
+
9
+ Preamble
10
+
11
+ The licenses for most software are designed to take away your
12
+ freedom to share and change it. By contrast, the GNU General Public
13
+ License is intended to guarantee your freedom to share and change free
14
+ software--to make sure the software is free for all its users. This
15
+ General Public License applies to most of the Free Software
16
+ Foundation's software and to any other program whose authors commit to
17
+ using it. (Some other Free Software Foundation software is covered by
18
+ the GNU Lesser General Public License instead.) You can apply it to
19
+ your programs, too.
20
+
21
+ When we speak of free software, we are referring to freedom, not
22
+ price. Our General Public Licenses are designed to make sure that you
23
+ have the freedom to distribute copies of free software (and charge for
24
+ this service if you wish), that you receive source code or can get it
25
+ if you want it, that you can change the software or use pieces of it
26
+ in new free programs; and that you know you can do these things.
27
+
28
+ To protect your rights, we need to make restrictions that forbid
29
+ anyone to deny you these rights or to ask you to surrender the rights.
30
+ These restrictions translate to certain responsibilities for you if you
31
+ distribute copies of the software, or if you modify it.
32
+
33
+ For example, if you distribute copies of such a program, whether
34
+ gratis or for a fee, you must give the recipients all the rights that
35
+ you have. You must make sure that they, too, receive or can get the
36
+ source code. And you must show them these terms so they know their
37
+ rights.
38
+
39
+ We protect your rights with two steps: (1) copyright the software, and
40
+ (2) offer you this license which gives you legal permission to copy,
41
+ distribute and/or modify the software.
42
+
43
+ Also, for each author's protection and ours, we want to make certain
44
+ that everyone understands that there is no warranty for this free
45
+ software. If the software is modified by someone else and passed on, we
46
+ want its recipients to know that what they have is not the original, so
47
+ that any problems introduced by others will not reflect on the original
48
+ authors' reputations.
49
+
50
+ Finally, any free program is threatened constantly by software
51
+ patents. We wish to avoid the danger that redistributors of a free
52
+ program will individually obtain patent licenses, in effect making the
53
+ program proprietary. To prevent this, we have made it clear that any
54
+ patent must be licensed for everyone's free use or not licensed at all.
55
+
56
+ The precise terms and conditions for copying, distribution and
57
+ modification follow.
58
+
59
+ GNU GENERAL PUBLIC LICENSE
60
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61
+
62
+ 0. This License applies to any program or other work which contains
63
+ a notice placed by the copyright holder saying it may be distributed
64
+ under the terms of this General Public License. The "Program", below,
65
+ refers to any such program or work, and a "work based on the Program"
66
+ means either the Program or any derivative work under copyright law:
67
+ that is to say, a work containing the Program or a portion of it,
68
+ either verbatim or with modifications and/or translated into another
69
+ language. (Hereinafter, translation is included without limitation in
70
+ the term "modification".) Each licensee is addressed as "you".
71
+
72
+ Activities other than copying, distribution and modification are not
73
+ covered by this License; they are outside its scope. The act of
74
+ running the Program is not restricted, and the output from the Program
75
+ is covered only if its contents constitute a work based on the
76
+ Program (independent of having been made by running the Program).
77
+ Whether that is true depends on what the Program does.
78
+
79
+ 1. You may copy and distribute verbatim copies of the Program's
80
+ source code as you receive it, in any medium, provided that you
81
+ conspicuously and appropriately publish on each copy an appropriate
82
+ copyright notice and disclaimer of warranty; keep intact all the
83
+ notices that refer to this License and to the absence of any warranty;
84
+ and give any other recipients of the Program a copy of this License
85
+ along with the Program.
86
+
87
+ You may charge a fee for the physical act of transferring a copy, and
88
+ you may at your option offer warranty protection in exchange for a fee.
89
+
90
+ 2. You may modify your copy or copies of the Program or any portion
91
+ of it, thus forming a work based on the Program, and copy and
92
+ distribute such modifications or work under the terms of Section 1
93
+ above, provided that you also meet all of these conditions:
94
+
95
+ a) You must cause the modified files to carry prominent notices
96
+ stating that you changed the files and the date of any change.
97
+
98
+ b) You must cause any work that you distribute or publish, that in
99
+ whole or in part contains or is derived from the Program or any
100
+ part thereof, to be licensed as a whole at no charge to all third
101
+ parties under the terms of this License.
102
+
103
+ c) If the modified program normally reads commands interactively
104
+ when run, you must cause it, when started running for such
105
+ interactive use in the most ordinary way, to print or display an
106
+ announcement including an appropriate copyright notice and a
107
+ notice that there is no warranty (or else, saying that you provide
108
+ a warranty) and that users may redistribute the program under
109
+ these conditions, and telling the user how to view a copy of this
110
+ License. (Exception: if the Program itself is interactive but
111
+ does not normally print such an announcement, your work based on
112
+ the Program is not required to print an announcement.)
113
+
114
+ These requirements apply to the modified work as a whole. If
115
+ identifiable sections of that work are not derived from the Program,
116
+ and can be reasonably considered independent and separate works in
117
+ themselves, then this License, and its terms, do not apply to those
118
+ sections when you distribute them as separate works. But when you
119
+ distribute the same sections as part of a whole which is a work based
120
+ on the Program, the distribution of the whole must be on the terms of
121
+ this License, whose permissions for other licensees extend to the
122
+ entire whole, and thus to each and every part regardless of who wrote it.
123
+
124
+ Thus, it is not the intent of this section to claim rights or contest
125
+ your rights to work written entirely by you; rather, the intent is to
126
+ exercise the right to control the distribution of derivative or
127
+ collective works based on the Program.
128
+
129
+ In addition, mere aggregation of another work not based on the Program
130
+ with the Program (or with a work based on the Program) on a volume of
131
+ a storage or distribution medium does not bring the other work under
132
+ the scope of this License.
133
+
134
+ 3. You may copy and distribute the Program (or a work based on it,
135
+ under Section 2) in object code or executable form under the terms of
136
+ Sections 1 and 2 above provided that you also do one of the following:
137
+
138
+ a) Accompany it with the complete corresponding machine-readable
139
+ source code, which must be distributed under the terms of Sections
140
+ 1 and 2 above on a medium customarily used for software interchange; or,
141
+
142
+ b) Accompany it with a written offer, valid for at least three
143
+ years, to give any third party, for a charge no more than your
144
+ cost of physically performing source distribution, a complete
145
+ machine-readable copy of the corresponding source code, to be
146
+ distributed under the terms of Sections 1 and 2 above on a medium
147
+ customarily used for software interchange; or,
148
+
149
+ c) Accompany it with the information you received as to the offer
150
+ to distribute corresponding source code. (This alternative is
151
+ allowed only for noncommercial distribution and only if you
152
+ received the program in object code or executable form with such
153
+ an offer, in accord with Subsection b above.)
154
+
155
+ The source code for a work means the preferred form of the work for
156
+ making modifications to it. For an executable work, complete source
157
+ code means all the source code for all modules it contains, plus any
158
+ associated interface definition files, plus the scripts used to
159
+ control compilation and installation of the executable. However, as a
160
+ special exception, the source code distributed need not include
161
+ anything that is normally distributed (in either source or binary
162
+ form) with the major components (compiler, kernel, and so on) of the
163
+ operating system on which the executable runs, unless that component
164
+ itself accompanies the executable.
165
+
166
+ If distribution of executable or object code is made by offering
167
+ access to copy from a designated place, then offering equivalent
168
+ access to copy the source code from the same place counts as
169
+ distribution of the source code, even though third parties are not
170
+ compelled to copy the source along with the object code.
171
+
172
+ 4. You may not copy, modify, sublicense, or distribute the Program
173
+ except as expressly provided under this License. Any attempt
174
+ otherwise to copy, modify, sublicense or distribute the Program is
175
+ void, and will automatically terminate your rights under this License.
176
+ However, parties who have received copies, or rights, from you under
177
+ this License will not have their licenses terminated so long as such
178
+ parties remain in full compliance.
179
+
180
+ 5. You are not required to accept this License, since you have not
181
+ signed it. However, nothing else grants you permission to modify or
182
+ distribute the Program or its derivative works. These actions are
183
+ prohibited by law if you do not accept this License. Therefore, by
184
+ modifying or distributing the Program (or any work based on the
185
+ Program), you indicate your acceptance of this License to do so, and
186
+ all its terms and conditions for copying, distributing or modifying
187
+ the Program or works based on it.
188
+
189
+ 6. Each time you redistribute the Program (or any work based on the
190
+ Program), the recipient automatically receives a license from the
191
+ original licensor to copy, distribute or modify the Program subject to
192
+ these terms and conditions. You may not impose any further
193
+ restrictions on the recipients' exercise of the rights granted herein.
194
+ You are not responsible for enforcing compliance by third parties to
195
+ this License.
196
+
197
+ 7. If, as a consequence of a court judgment or allegation of patent
198
+ infringement or for any other reason (not limited to patent issues),
199
+ conditions are imposed on you (whether by court order, agreement or
200
+ otherwise) that contradict the conditions of this License, they do not
201
+ excuse you from the conditions of this License. If you cannot
202
+ distribute so as to satisfy simultaneously your obligations under this
203
+ License and any other pertinent obligations, then as a consequence you
204
+ may not distribute the Program at all. For example, if a patent
205
+ license would not permit royalty-free redistribution of the Program by
206
+ all those who receive copies directly or indirectly through you, then
207
+ the only way you could satisfy both it and this License would be to
208
+ refrain entirely from distribution of the Program.
209
+
210
+ If any portion of this section is held invalid or unenforceable under
211
+ any particular circumstance, the balance of the section is intended to
212
+ apply and the section as a whole is intended to apply in other
213
+ circumstances.
214
+
215
+ It is not the purpose of this section to induce you to infringe any
216
+ patents or other property right claims or to contest validity of any
217
+ such claims; this section has the sole purpose of protecting the
218
+ integrity of the free software distribution system, which is
219
+ implemented by public license practices. Many people have made
220
+ generous contributions to the wide range of software distributed
221
+ through that system in reliance on consistent application of that
222
+ system; it is up to the author/donor to decide if he or she is willing
223
+ to distribute software through any other system and a licensee cannot
224
+ impose that choice.
225
+
226
+ This section is intended to make thoroughly clear what is believed to
227
+ be a consequence of the rest of this License.
228
+
229
+ 8. If the distribution and/or use of the Program is restricted in
230
+ certain countries either by patents or by copyrighted interfaces, the
231
+ original copyright holder who places the Program under this License
232
+ may add an explicit geographical distribution limitation excluding
233
+ those countries, so that distribution is permitted only in or among
234
+ countries not thus excluded. In such case, this License incorporates
235
+ the limitation as if written in the body of this License.
236
+
237
+ 9. The Free Software Foundation may publish revised and/or new versions
238
+ of the General Public License from time to time. Such new versions will
239
+ be similar in spirit to the present version, but may differ in detail to
240
+ address new problems or concerns.
241
+
242
+ Each version is given a distinguishing version number. If the Program
243
+ specifies a version number of this License which applies to it and "any
244
+ later version", you have the option of following the terms and conditions
245
+ either of that version or of any later version published by the Free
246
+ Software Foundation. If the Program does not specify a version number of
247
+ this License, you may choose any version ever published by the Free Software
248
+ Foundation.
249
+
250
+ 10. If you wish to incorporate parts of the Program into other free
251
+ programs whose distribution conditions are different, write to the author
252
+ to ask for permission. For software which is copyrighted by the Free
253
+ Software Foundation, write to the Free Software Foundation; we sometimes
254
+ make exceptions for this. Our decision will be guided by the two goals
255
+ of preserving the free status of all derivatives of our free software and
256
+ of promoting the sharing and reuse of software generally.
257
+
258
+ NO WARRANTY
259
+
260
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261
+ FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262
+ OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263
+ PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264
+ OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266
+ TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267
+ PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268
+ REPAIR OR CORRECTION.
269
+
270
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272
+ REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273
+ INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274
+ OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275
+ TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276
+ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277
+ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278
+ POSSIBILITY OF SUCH DAMAGES.
279
+
280
+ END OF TERMS AND CONDITIONS
281
+
282
+ How to Apply These Terms to Your New Programs
283
+
284
+ If you develop a new program, and you want it to be of the greatest
285
+ possible use to the public, the best way to achieve this is to make it
286
+ free software which everyone can redistribute and change under these terms.
287
+
288
+ To do so, attach the following notices to the program. It is safest
289
+ to attach them to the start of each source file to most effectively
290
+ convey the exclusion of warranty; and each file should have at least
291
+ the "copyright" line and a pointer to where the full notice is found.
292
+
293
+ <one line to give the program's name and a brief idea of what it does.>
294
+ Copyright (C) <year> <name of author>
295
+
296
+ This program is free software; you can redistribute it and/or modify
297
+ it under the terms of the GNU General Public License as published by
298
+ the Free Software Foundation; either version 2 of the License, or
299
+ (at your option) any later version.
300
+
301
+ This program is distributed in the hope that it will be useful,
302
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
303
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304
+ GNU General Public License for more details.
305
+
306
+ You should have received a copy of the GNU General Public License along
307
+ with this program; if not, write to the Free Software Foundation, Inc.,
308
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
309
+
310
+ Also add information on how to contact you by electronic and paper mail.
311
+
312
+ If the program is interactive, make it output a short notice like this
313
+ when it starts in an interactive mode:
314
+
315
+ Gnomovision version 69, Copyright (C) year name of author
316
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
317
+ This is free software, and you are welcome to redistribute it
318
+ under certain conditions; type `show c' for details.
319
+
320
+ The hypothetical commands `show w' and `show c' should show the appropriate
321
+ parts of the General Public License. Of course, the commands you use may
322
+ be called something other than `show w' and `show c'; they could even be
323
+ mouse-clicks or menu items--whatever suits your program.
324
+
325
+ You should also get your employer (if you work as a programmer) or your
326
+ school, if any, to sign a "copyright disclaimer" for the program, if
327
+ necessary. Here is a sample; alter the names:
328
+
329
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
330
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
331
+
332
+ <signature of Ty Coon>, 1 April 1989
333
+ Ty Coon, President of Vice
334
+
335
+ This General Public License does not permit incorporating your program into
336
+ proprietary programs. If your program is a subroutine library, you may
337
+ consider it more useful to permit linking proprietary applications with the
338
+ library. If this is what you want to do, use the GNU Lesser General
339
+ Public License instead of this License.
COPYING.GPLv3 ADDED
@@ -0,0 +1,674 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ GNU GENERAL PUBLIC LICENSE
2
+ Version 3, 29 June 2007
3
+
4
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
5
+ Everyone is permitted to copy and distribute verbatim copies
6
+ of this license document, but changing it is not allowed.
7
+
8
+ Preamble
9
+
10
+ The GNU General Public License is a free, copyleft license for
11
+ software and other kinds of works.
12
+
13
+ The licenses for most software and other practical works are designed
14
+ to take away your freedom to share and change the works. By contrast,
15
+ the GNU General Public License is intended to guarantee your freedom to
16
+ share and change all versions of a program--to make sure it remains free
17
+ software for all its users. We, the Free Software Foundation, use the
18
+ GNU General Public License for most of our software; it applies also to
19
+ any other work released this way by its authors. You can apply it to
20
+ your programs, too.
21
+
22
+ When we speak of free software, we are referring to freedom, not
23
+ price. Our General Public Licenses are designed to make sure that you
24
+ have the freedom to distribute copies of free software (and charge for
25
+ them if you wish), that you receive source code or can get it if you
26
+ want it, that you can change the software or use pieces of it in new
27
+ free programs, and that you know you can do these things.
28
+
29
+ To protect your rights, we need to prevent others from denying you
30
+ these rights or asking you to surrender the rights. Therefore, you have
31
+ certain responsibilities if you distribute copies of the software, or if
32
+ you modify it: responsibilities to respect the freedom of others.
33
+
34
+ For example, if you distribute copies of such a program, whether
35
+ gratis or for a fee, you must pass on to the recipients the same
36
+ freedoms that you received. You must make sure that they, too, receive
37
+ or can get the source code. And you must show them these terms so they
38
+ know their rights.
39
+
40
+ Developers that use the GNU GPL protect your rights with two steps:
41
+ (1) assert copyright on the software, and (2) offer you this License
42
+ giving you legal permission to copy, distribute and/or modify it.
43
+
44
+ For the developers' and authors' protection, the GPL clearly explains
45
+ that there is no warranty for this free software. For both users' and
46
+ authors' sake, the GPL requires that modified versions be marked as
47
+ changed, so that their problems will not be attributed erroneously to
48
+ authors of previous versions.
49
+
50
+ Some devices are designed to deny users access to install or run
51
+ modified versions of the software inside them, although the manufacturer
52
+ can do so. This is fundamentally incompatible with the aim of
53
+ protecting users' freedom to change the software. The systematic
54
+ pattern of such abuse occurs in the area of products for individuals to
55
+ use, which is precisely where it is most unacceptable. Therefore, we
56
+ have designed this version of the GPL to prohibit the practice for those
57
+ products. If such problems arise substantially in other domains, we
58
+ stand ready to extend this provision to those domains in future versions
59
+ of the GPL, as needed to protect the freedom of users.
60
+
61
+ Finally, every program is threatened constantly by software patents.
62
+ States should not allow patents to restrict development and use of
63
+ software on general-purpose computers, but in those that do, we wish to
64
+ avoid the special danger that patents applied to a free program could
65
+ make it effectively proprietary. To prevent this, the GPL assures that
66
+ patents cannot be used to render the program non-free.
67
+
68
+ The precise terms and conditions for copying, distribution and
69
+ modification follow.
70
+
71
+ TERMS AND CONDITIONS
72
+
73
+ 0. Definitions.
74
+
75
+ "This License" refers to version 3 of the GNU General Public License.
76
+
77
+ "Copyright" also means copyright-like laws that apply to other kinds of
78
+ works, such as semiconductor masks.
79
+
80
+ "The Program" refers to any copyrightable work licensed under this
81
+ License. Each licensee is addressed as "you". "Licensees" and
82
+ "recipients" may be individuals or organizations.
83
+
84
+ To "modify" a work means to copy from or adapt all or part of the work
85
+ in a fashion requiring copyright permission, other than the making of an
86
+ exact copy. The resulting work is called a "modified version" of the
87
+ earlier work or a work "based on" the earlier work.
88
+
89
+ A "covered work" means either the unmodified Program or a work based
90
+ on the Program.
91
+
92
+ To "propagate" a work means to do anything with it that, without
93
+ permission, would make you directly or secondarily liable for
94
+ infringement under applicable copyright law, except executing it on a
95
+ computer or modifying a private copy. Propagation includes copying,
96
+ distribution (with or without modification), making available to the
97
+ public, and in some countries other activities as well.
98
+
99
+ To "convey" a work means any kind of propagation that enables other
100
+ parties to make or receive copies. Mere interaction with a user through
101
+ a computer network, with no transfer of a copy, is not conveying.
102
+
103
+ An interactive user interface displays "Appropriate Legal Notices"
104
+ to the extent that it includes a convenient and prominently visible
105
+ feature that (1) displays an appropriate copyright notice, and (2)
106
+ tells the user that there is no warranty for the work (except to the
107
+ extent that warranties are provided), that licensees may convey the
108
+ work under this License, and how to view a copy of this License. If
109
+ the interface presents a list of user commands or options, such as a
110
+ menu, a prominent item in the list meets this criterion.
111
+
112
+ 1. Source Code.
113
+
114
+ The "source code" for a work means the preferred form of the work
115
+ for making modifications to it. "Object code" means any non-source
116
+ form of a work.
117
+
118
+ A "Standard Interface" means an interface that either is an official
119
+ standard defined by a recognized standards body, or, in the case of
120
+ interfaces specified for a particular programming language, one that
121
+ is widely used among developers working in that language.
122
+
123
+ The "System Libraries" of an executable work include anything, other
124
+ than the work as a whole, that (a) is included in the normal form of
125
+ packaging a Major Component, but which is not part of that Major
126
+ Component, and (b) serves only to enable use of the work with that
127
+ Major Component, or to implement a Standard Interface for which an
128
+ implementation is available to the public in source code form. A
129
+ "Major Component", in this context, means a major essential component
130
+ (kernel, window system, and so on) of the specific operating system
131
+ (if any) on which the executable work runs, or a compiler used to
132
+ produce the work, or an object code interpreter used to run it.
133
+
134
+ The "Corresponding Source" for a work in object code form means all
135
+ the source code needed to generate, install, and (for an executable
136
+ work) run the object code and to modify the work, including scripts to
137
+ control those activities. However, it does not include the work's
138
+ System Libraries, or general-purpose tools or generally available free
139
+ programs which are used unmodified in performing those activities but
140
+ which are not part of the work. For example, Corresponding Source
141
+ includes interface definition files associated with source files for
142
+ the work, and the source code for shared libraries and dynamically
143
+ linked subprograms that the work is specifically designed to require,
144
+ such as by intimate data communication or control flow between those
145
+ subprograms and other parts of the work.
146
+
147
+ The Corresponding Source need not include anything that users
148
+ can regenerate automatically from other parts of the Corresponding
149
+ Source.
150
+
151
+ The Corresponding Source for a work in source code form is that
152
+ same work.
153
+
154
+ 2. Basic Permissions.
155
+
156
+ All rights granted under this License are granted for the term of
157
+ copyright on the Program, and are irrevocable provided the stated
158
+ conditions are met. This License explicitly affirms your unlimited
159
+ permission to run the unmodified Program. The output from running a
160
+ covered work is covered by this License only if the output, given its
161
+ content, constitutes a covered work. This License acknowledges your
162
+ rights of fair use or other equivalent, as provided by copyright law.
163
+
164
+ You may make, run and propagate covered works that you do not
165
+ convey, without conditions so long as your license otherwise remains
166
+ in force. You may convey covered works to others for the sole purpose
167
+ of having them make modifications exclusively for you, or provide you
168
+ with facilities for running those works, provided that you comply with
169
+ the terms of this License in conveying all material for which you do
170
+ not control copyright. Those thus making or running the covered works
171
+ for you must do so exclusively on your behalf, under your direction
172
+ and control, on terms that prohibit them from making any copies of
173
+ your copyrighted material outside their relationship with you.
174
+
175
+ Conveying under any other circumstances is permitted solely under
176
+ the conditions stated below. Sublicensing is not allowed; section 10
177
+ makes it unnecessary.
178
+
179
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
180
+
181
+ No covered work shall be deemed part of an effective technological
182
+ measure under any applicable law fulfilling obligations under article
183
+ 11 of the WIPO copyright treaty adopted on 20 December 1996, or
184
+ similar laws prohibiting or restricting circumvention of such
185
+ measures.
186
+
187
+ When you convey a covered work, you waive any legal power to forbid
188
+ circumvention of technological measures to the extent such circumvention
189
+ is effected by exercising rights under this License with respect to
190
+ the covered work, and you disclaim any intention to limit operation or
191
+ modification of the work as a means of enforcing, against the work's
192
+ users, your or third parties' legal rights to forbid circumvention of
193
+ technological measures.
194
+
195
+ 4. Conveying Verbatim Copies.
196
+
197
+ You may convey verbatim copies of the Program's source code as you
198
+ receive it, in any medium, provided that you conspicuously and
199
+ appropriately publish on each copy an appropriate copyright notice;
200
+ keep intact all notices stating that this License and any
201
+ non-permissive terms added in accord with section 7 apply to the code;
202
+ keep intact all notices of the absence of any warranty; and give all
203
+ recipients a copy of this License along with the Program.
204
+
205
+ You may charge any price or no price for each copy that you convey,
206
+ and you may offer support or warranty protection for a fee.
207
+
208
+ 5. Conveying Modified Source Versions.
209
+
210
+ You may convey a work based on the Program, or the modifications to
211
+ produce it from the Program, in the form of source code under the
212
+ terms of section 4, provided that you also meet all of these conditions:
213
+
214
+ a) The work must carry prominent notices stating that you modified
215
+ it, and giving a relevant date.
216
+
217
+ b) The work must carry prominent notices stating that it is
218
+ released under this License and any conditions added under section
219
+ 7. This requirement modifies the requirement in section 4 to
220
+ "keep intact all notices".
221
+
222
+ c) You must license the entire work, as a whole, under this
223
+ License to anyone who comes into possession of a copy. This
224
+ License will therefore apply, along with any applicable section 7
225
+ additional terms, to the whole of the work, and all its parts,
226
+ regardless of how they are packaged. This License gives no
227
+ permission to license the work in any other way, but it does not
228
+ invalidate such permission if you have separately received it.
229
+
230
+ d) If the work has interactive user interfaces, each must display
231
+ Appropriate Legal Notices; however, if the Program has interactive
232
+ interfaces that do not display Appropriate Legal Notices, your
233
+ work need not make them do so.
234
+
235
+ A compilation of a covered work with other separate and independent
236
+ works, which are not by their nature extensions of the covered work,
237
+ and which are not combined with it such as to form a larger program,
238
+ in or on a volume of a storage or distribution medium, is called an
239
+ "aggregate" if the compilation and its resulting copyright are not
240
+ used to limit the access or legal rights of the compilation's users
241
+ beyond what the individual works permit. Inclusion of a covered work
242
+ in an aggregate does not cause this License to apply to the other
243
+ parts of the aggregate.
244
+
245
+ 6. Conveying Non-Source Forms.
246
+
247
+ You may convey a covered work in object code form under the terms
248
+ of sections 4 and 5, provided that you also convey the
249
+ machine-readable Corresponding Source under the terms of this License,
250
+ in one of these ways:
251
+
252
+ a) Convey the object code in, or embodied in, a physical product
253
+ (including a physical distribution medium), accompanied by the
254
+ Corresponding Source fixed on a durable physical medium
255
+ customarily used for software interchange.
256
+
257
+ b) Convey the object code in, or embodied in, a physical product
258
+ (including a physical distribution medium), accompanied by a
259
+ written offer, valid for at least three years and valid for as
260
+ long as you offer spare parts or customer support for that product
261
+ model, to give anyone who possesses the object code either (1) a
262
+ copy of the Corresponding Source for all the software in the
263
+ product that is covered by this License, on a durable physical
264
+ medium customarily used for software interchange, for a price no
265
+ more than your reasonable cost of physically performing this
266
+ conveying of source, or (2) access to copy the
267
+ Corresponding Source from a network server at no charge.
268
+
269
+ c) Convey individual copies of the object code with a copy of the
270
+ written offer to provide the Corresponding Source. This
271
+ alternative is allowed only occasionally and noncommercially, and
272
+ only if you received the object code with such an offer, in accord
273
+ with subsection 6b.
274
+
275
+ d) Convey the object code by offering access from a designated
276
+ place (gratis or for a charge), and offer equivalent access to the
277
+ Corresponding Source in the same way through the same place at no
278
+ further charge. You need not require recipients to copy the
279
+ Corresponding Source along with the object code. If the place to
280
+ copy the object code is a network server, the Corresponding Source
281
+ may be on a different server (operated by you or a third party)
282
+ that supports equivalent copying facilities, provided you maintain
283
+ clear directions next to the object code saying where to find the
284
+ Corresponding Source. Regardless of what server hosts the
285
+ Corresponding Source, you remain obligated to ensure that it is
286
+ available for as long as needed to satisfy these requirements.
287
+
288
+ e) Convey the object code using peer-to-peer transmission, provided
289
+ you inform other peers where the object code and Corresponding
290
+ Source of the work are being offered to the general public at no
291
+ charge under subsection 6d.
292
+
293
+ A separable portion of the object code, whose source code is excluded
294
+ from the Corresponding Source as a System Library, need not be
295
+ included in conveying the object code work.
296
+
297
+ A "User Product" is either (1) a "consumer product", which means any
298
+ tangible personal property which is normally used for personal, family,
299
+ or household purposes, or (2) anything designed or sold for incorporation
300
+ into a dwelling. In determining whether a product is a consumer product,
301
+ doubtful cases shall be resolved in favor of coverage. For a particular
302
+ product received by a particular user, "normally used" refers to a
303
+ typical or common use of that class of product, regardless of the status
304
+ of the particular user or of the way in which the particular user
305
+ actually uses, or expects or is expected to use, the product. A product
306
+ is a consumer product regardless of whether the product has substantial
307
+ commercial, industrial or non-consumer uses, unless such uses represent
308
+ the only significant mode of use of the product.
309
+
310
+ "Installation Information" for a User Product means any methods,
311
+ procedures, authorization keys, or other information required to install
312
+ and execute modified versions of a covered work in that User Product from
313
+ a modified version of its Corresponding Source. The information must
314
+ suffice to ensure that the continued functioning of the modified object
315
+ code is in no case prevented or interfered with solely because
316
+ modification has been made.
317
+
318
+ If you convey an object code work under this section in, or with, or
319
+ specifically for use in, a User Product, and the conveying occurs as
320
+ part of a transaction in which the right of possession and use of the
321
+ User Product is transferred to the recipient in perpetuity or for a
322
+ fixed term (regardless of how the transaction is characterized), the
323
+ Corresponding Source conveyed under this section must be accompanied
324
+ by the Installation Information. But this requirement does not apply
325
+ if neither you nor any third party retains the ability to install
326
+ modified object code on the User Product (for example, the work has
327
+ been installed in ROM).
328
+
329
+ The requirement to provide Installation Information does not include a
330
+ requirement to continue to provide support service, warranty, or updates
331
+ for a work that has been modified or installed by the recipient, or for
332
+ the User Product in which it has been modified or installed. Access to a
333
+ network may be denied when the modification itself materially and
334
+ adversely affects the operation of the network or violates the rules and
335
+ protocols for communication across the network.
336
+
337
+ Corresponding Source conveyed, and Installation Information provided,
338
+ in accord with this section must be in a format that is publicly
339
+ documented (and with an implementation available to the public in
340
+ source code form), and must require no special password or key for
341
+ unpacking, reading or copying.
342
+
343
+ 7. Additional Terms.
344
+
345
+ "Additional permissions" are terms that supplement the terms of this
346
+ License by making exceptions from one or more of its conditions.
347
+ Additional permissions that are applicable to the entire Program shall
348
+ be treated as though they were included in this License, to the extent
349
+ that they are valid under applicable law. If additional permissions
350
+ apply only to part of the Program, that part may be used separately
351
+ under those permissions, but the entire Program remains governed by
352
+ this License without regard to the additional permissions.
353
+
354
+ When you convey a copy of a covered work, you may at your option
355
+ remove any additional permissions from that copy, or from any part of
356
+ it. (Additional permissions may be written to require their own
357
+ removal in certain cases when you modify the work.) You may place
358
+ additional permissions on material, added by you to a covered work,
359
+ for which you have or can give appropriate copyright permission.
360
+
361
+ Notwithstanding any other provision of this License, for material you
362
+ add to a covered work, you may (if authorized by the copyright holders of
363
+ that material) supplement the terms of this License with terms:
364
+
365
+ a) Disclaiming warranty or limiting liability differently from the
366
+ terms of sections 15 and 16 of this License; or
367
+
368
+ b) Requiring preservation of specified reasonable legal notices or
369
+ author attributions in that material or in the Appropriate Legal
370
+ Notices displayed by works containing it; or
371
+
372
+ c) Prohibiting misrepresentation of the origin of that material, or
373
+ requiring that modified versions of such material be marked in
374
+ reasonable ways as different from the original version; or
375
+
376
+ d) Limiting the use for publicity purposes of names of licensors or
377
+ authors of the material; or
378
+
379
+ e) Declining to grant rights under trademark law for use of some
380
+ trade names, trademarks, or service marks; or
381
+
382
+ f) Requiring indemnification of licensors and authors of that
383
+ material by anyone who conveys the material (or modified versions of
384
+ it) with contractual assumptions of liability to the recipient, for
385
+ any liability that these contractual assumptions directly impose on
386
+ those licensors and authors.
387
+
388
+ All other non-permissive additional terms are considered "further
389
+ restrictions" within the meaning of section 10. If the Program as you
390
+ received it, or any part of it, contains a notice stating that it is
391
+ governed by this License along with a term that is a further
392
+ restriction, you may remove that term. If a license document contains
393
+ a further restriction but permits relicensing or conveying under this
394
+ License, you may add to a covered work material governed by the terms
395
+ of that license document, provided that the further restriction does
396
+ not survive such relicensing or conveying.
397
+
398
+ If you add terms to a covered work in accord with this section, you
399
+ must place, in the relevant source files, a statement of the
400
+ additional terms that apply to those files, or a notice indicating
401
+ where to find the applicable terms.
402
+
403
+ Additional terms, permissive or non-permissive, may be stated in the
404
+ form of a separately written license, or stated as exceptions;
405
+ the above requirements apply either way.
406
+
407
+ 8. Termination.
408
+
409
+ You may not propagate or modify a covered work except as expressly
410
+ provided under this License. Any attempt otherwise to propagate or
411
+ modify it is void, and will automatically terminate your rights under
412
+ this License (including any patent licenses granted under the third
413
+ paragraph of section 11).
414
+
415
+ However, if you cease all violation of this License, then your
416
+ license from a particular copyright holder is reinstated (a)
417
+ provisionally, unless and until the copyright holder explicitly and
418
+ finally terminates your license, and (b) permanently, if the copyright
419
+ holder fails to notify you of the violation by some reasonable means
420
+ prior to 60 days after the cessation.
421
+
422
+ Moreover, your license from a particular copyright holder is
423
+ reinstated permanently if the copyright holder notifies you of the
424
+ violation by some reasonable means, this is the first time you have
425
+ received notice of violation of this License (for any work) from that
426
+ copyright holder, and you cure the violation prior to 30 days after
427
+ your receipt of the notice.
428
+
429
+ Termination of your rights under this section does not terminate the
430
+ licenses of parties who have received copies or rights from you under
431
+ this License. If your rights have been terminated and not permanently
432
+ reinstated, you do not qualify to receive new licenses for the same
433
+ material under section 10.
434
+
435
+ 9. Acceptance Not Required for Having Copies.
436
+
437
+ You are not required to accept this License in order to receive or
438
+ run a copy of the Program. Ancillary propagation of a covered work
439
+ occurring solely as a consequence of using peer-to-peer transmission
440
+ to receive a copy likewise does not require acceptance. However,
441
+ nothing other than this License grants you permission to propagate or
442
+ modify any covered work. These actions infringe copyright if you do
443
+ not accept this License. Therefore, by modifying or propagating a
444
+ covered work, you indicate your acceptance of this License to do so.
445
+
446
+ 10. Automatic Licensing of Downstream Recipients.
447
+
448
+ Each time you convey a covered work, the recipient automatically
449
+ receives a license from the original licensors, to run, modify and
450
+ propagate that work, subject to this License. You are not responsible
451
+ for enforcing compliance by third parties with this License.
452
+
453
+ An "entity transaction" is a transaction transferring control of an
454
+ organization, or substantially all assets of one, or subdividing an
455
+ organization, or merging organizations. If propagation of a covered
456
+ work results from an entity transaction, each party to that
457
+ transaction who receives a copy of the work also receives whatever
458
+ licenses to the work the party's predecessor in interest had or could
459
+ give under the previous paragraph, plus a right to possession of the
460
+ Corresponding Source of the work from the predecessor in interest, if
461
+ the predecessor has it or can get it with reasonable efforts.
462
+
463
+ You may not impose any further restrictions on the exercise of the
464
+ rights granted or affirmed under this License. For example, you may
465
+ not impose a license fee, royalty, or other charge for exercise of
466
+ rights granted under this License, and you may not initiate litigation
467
+ (including a cross-claim or counterclaim in a lawsuit) alleging that
468
+ any patent claim is infringed by making, using, selling, offering for
469
+ sale, or importing the Program or any portion of it.
470
+
471
+ 11. Patents.
472
+
473
+ A "contributor" is a copyright holder who authorizes use under this
474
+ License of the Program or a work on which the Program is based. The
475
+ work thus licensed is called the contributor's "contributor version".
476
+
477
+ A contributor's "essential patent claims" are all patent claims
478
+ owned or controlled by the contributor, whether already acquired or
479
+ hereafter acquired, that would be infringed by some manner, permitted
480
+ by this License, of making, using, or selling its contributor version,
481
+ but do not include claims that would be infringed only as a
482
+ consequence of further modification of the contributor version. For
483
+ purposes of this definition, "control" includes the right to grant
484
+ patent sublicenses in a manner consistent with the requirements of
485
+ this License.
486
+
487
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
488
+ patent license under the contributor's essential patent claims, to
489
+ make, use, sell, offer for sale, import and otherwise run, modify and
490
+ propagate the contents of its contributor version.
491
+
492
+ In the following three paragraphs, a "patent license" is any express
493
+ agreement or commitment, however denominated, not to enforce a patent
494
+ (such as an express permission to practice a patent or covenant not to
495
+ sue for patent infringement). To "grant" such a patent license to a
496
+ party means to make such an agreement or commitment not to enforce a
497
+ patent against the party.
498
+
499
+ If you convey a covered work, knowingly relying on a patent license,
500
+ and the Corresponding Source of the work is not available for anyone
501
+ to copy, free of charge and under the terms of this License, through a
502
+ publicly available network server or other readily accessible means,
503
+ then you must either (1) cause the Corresponding Source to be so
504
+ available, or (2) arrange to deprive yourself of the benefit of the
505
+ patent license for this particular work, or (3) arrange, in a manner
506
+ consistent with the requirements of this License, to extend the patent
507
+ license to downstream recipients. "Knowingly relying" means you have
508
+ actual knowledge that, but for the patent license, your conveying the
509
+ covered work in a country, or your recipient's use of the covered work
510
+ in a country, would infringe one or more identifiable patents in that
511
+ country that you have reason to believe are valid.
512
+
513
+ If, pursuant to or in connection with a single transaction or
514
+ arrangement, you convey, or propagate by procuring conveyance of, a
515
+ covered work, and grant a patent license to some of the parties
516
+ receiving the covered work authorizing them to use, propagate, modify
517
+ or convey a specific copy of the covered work, then the patent license
518
+ you grant is automatically extended to all recipients of the covered
519
+ work and works based on it.
520
+
521
+ A patent license is "discriminatory" if it does not include within
522
+ the scope of its coverage, prohibits the exercise of, or is
523
+ conditioned on the non-exercise of one or more of the rights that are
524
+ specifically granted under this License. You may not convey a covered
525
+ work if you are a party to an arrangement with a third party that is
526
+ in the business of distributing software, under which you make payment
527
+ to the third party based on the extent of your activity of conveying
528
+ the work, and under which the third party grants, to any of the
529
+ parties who would receive the covered work from you, a discriminatory
530
+ patent license (a) in connection with copies of the covered work
531
+ conveyed by you (or copies made from those copies), or (b) primarily
532
+ for and in connection with specific products or compilations that
533
+ contain the covered work, unless you entered into that arrangement,
534
+ or that patent license was granted, prior to 28 March 2007.
535
+
536
+ Nothing in this License shall be construed as excluding or limiting
537
+ any implied license or other defenses to infringement that may
538
+ otherwise be available to you under applicable patent law.
539
+
540
+ 12. No Surrender of Others' Freedom.
541
+
542
+ If conditions are imposed on you (whether by court order, agreement or
543
+ otherwise) that contradict the conditions of this License, they do not
544
+ excuse you from the conditions of this License. If you cannot convey a
545
+ covered work so as to satisfy simultaneously your obligations under this
546
+ License and any other pertinent obligations, then as a consequence you may
547
+ not convey it at all. For example, if you agree to terms that obligate you
548
+ to collect a royalty for further conveying from those to whom you convey
549
+ the Program, the only way you could satisfy both those terms and this
550
+ License would be to refrain entirely from conveying the Program.
551
+
552
+ 13. Use with the GNU Affero General Public License.
553
+
554
+ Notwithstanding any other provision of this License, you have
555
+ permission to link or combine any covered work with a work licensed
556
+ under version 3 of the GNU Affero General Public License into a single
557
+ combined work, and to convey the resulting work. The terms of this
558
+ License will continue to apply to the part which is the covered work,
559
+ but the special requirements of the GNU Affero General Public License,
560
+ section 13, concerning interaction through a network will apply to the
561
+ combination as such.
562
+
563
+ 14. Revised Versions of this License.
564
+
565
+ The Free Software Foundation may publish revised and/or new versions of
566
+ the GNU General Public License from time to time. Such new versions will
567
+ be similar in spirit to the present version, but may differ in detail to
568
+ address new problems or concerns.
569
+
570
+ Each version is given a distinguishing version number. If the
571
+ Program specifies that a certain numbered version of the GNU General
572
+ Public License "or any later version" applies to it, you have the
573
+ option of following the terms and conditions either of that numbered
574
+ version or of any later version published by the Free Software
575
+ Foundation. If the Program does not specify a version number of the
576
+ GNU General Public License, you may choose any version ever published
577
+ by the Free Software Foundation.
578
+
579
+ If the Program specifies that a proxy can decide which future
580
+ versions of the GNU General Public License can be used, that proxy's
581
+ public statement of acceptance of a version permanently authorizes you
582
+ to choose that version for the Program.
583
+
584
+ Later license versions may give you additional or different
585
+ permissions. However, no additional obligations are imposed on any
586
+ author or copyright holder as a result of your choosing to follow a
587
+ later version.
588
+
589
+ 15. Disclaimer of Warranty.
590
+
591
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
592
+ APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
593
+ HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
594
+ OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
595
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
596
+ PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
597
+ IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
598
+ ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
599
+
600
+ 16. Limitation of Liability.
601
+
602
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
603
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
604
+ THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
605
+ GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
606
+ USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
607
+ DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
608
+ PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
609
+ EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
610
+ SUCH DAMAGES.
611
+
612
+ 17. Interpretation of Sections 15 and 16.
613
+
614
+ If the disclaimer of warranty and limitation of liability provided
615
+ above cannot be given local legal effect according to their terms,
616
+ reviewing courts shall apply local law that most closely approximates
617
+ an absolute waiver of all civil liability in connection with the
618
+ Program, unless a warranty or assumption of liability accompanies a
619
+ copy of the Program in return for a fee.
620
+
621
+ END OF TERMS AND CONDITIONS
622
+
623
+ How to Apply These Terms to Your New Programs
624
+
625
+ If you develop a new program, and you want it to be of the greatest
626
+ possible use to the public, the best way to achieve this is to make it
627
+ free software which everyone can redistribute and change under these terms.
628
+
629
+ To do so, attach the following notices to the program. It is safest
630
+ to attach them to the start of each source file to most effectively
631
+ state the exclusion of warranty; and each file should have at least
632
+ the "copyright" line and a pointer to where the full notice is found.
633
+
634
+ <one line to give the program's name and a brief idea of what it does.>
635
+ Copyright (C) <year> <name of author>
636
+
637
+ This program is free software: you can redistribute it and/or modify
638
+ it under the terms of the GNU General Public License as published by
639
+ the Free Software Foundation, either version 3 of the License, or
640
+ (at your option) any later version.
641
+
642
+ This program is distributed in the hope that it will be useful,
643
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
644
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
645
+ GNU General Public License for more details.
646
+
647
+ You should have received a copy of the GNU General Public License
648
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
649
+
650
+ Also add information on how to contact you by electronic and paper mail.
651
+
652
+ If the program does terminal interaction, make it output a short
653
+ notice like this when it starts in an interactive mode:
654
+
655
+ <program> Copyright (C) <year> <name of author>
656
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
657
+ This is free software, and you are welcome to redistribute it
658
+ under certain conditions; type `show c' for details.
659
+
660
+ The hypothetical commands `show w' and `show c' should show the appropriate
661
+ parts of the General Public License. Of course, your program's commands
662
+ might be different; for a GUI interface, you would use an "about box".
663
+
664
+ You should also get your employer (if you work as a programmer) or school,
665
+ if any, to sign a "copyright disclaimer" for the program, if necessary.
666
+ For more information on this, and how to apply and follow the GNU GPL, see
667
+ <http://www.gnu.org/licenses/>.
668
+
669
+ The GNU General Public License does not permit incorporating your program
670
+ into proprietary programs. If your program is a subroutine library, you
671
+ may consider it more useful to permit linking proprietary applications with
672
+ the library. If this is what you want to do, use the GNU Lesser General
673
+ Public License instead of this License. But first, please read
674
+ <http://www.gnu.org/philosophy/why-not-lgpl.html>.
COPYING.LGPLv2.1 ADDED
@@ -0,0 +1,502 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ GNU LESSER GENERAL PUBLIC LICENSE
2
+ Version 2.1, February 1999
3
+
4
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
5
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
6
+ Everyone is permitted to copy and distribute verbatim copies
7
+ of this license document, but changing it is not allowed.
8
+
9
+ [This is the first released version of the Lesser GPL. It also counts
10
+ as the successor of the GNU Library Public License, version 2, hence
11
+ the version number 2.1.]
12
+
13
+ Preamble
14
+
15
+ The licenses for most software are designed to take away your
16
+ freedom to share and change it. By contrast, the GNU General Public
17
+ Licenses are intended to guarantee your freedom to share and change
18
+ free software--to make sure the software is free for all its users.
19
+
20
+ This license, the Lesser General Public License, applies to some
21
+ specially designated software packages--typically libraries--of the
22
+ Free Software Foundation and other authors who decide to use it. You
23
+ can use it too, but we suggest you first think carefully about whether
24
+ this license or the ordinary General Public License is the better
25
+ strategy to use in any particular case, based on the explanations below.
26
+
27
+ When we speak of free software, we are referring to freedom of use,
28
+ not price. Our General Public Licenses are designed to make sure that
29
+ you have the freedom to distribute copies of free software (and charge
30
+ for this service if you wish); that you receive source code or can get
31
+ it if you want it; that you can change the software and use pieces of
32
+ it in new free programs; and that you are informed that you can do
33
+ these things.
34
+
35
+ To protect your rights, we need to make restrictions that forbid
36
+ distributors to deny you these rights or to ask you to surrender these
37
+ rights. These restrictions translate to certain responsibilities for
38
+ you if you distribute copies of the library or if you modify it.
39
+
40
+ For example, if you distribute copies of the library, whether gratis
41
+ or for a fee, you must give the recipients all the rights that we gave
42
+ you. You must make sure that they, too, receive or can get the source
43
+ code. If you link other code with the library, you must provide
44
+ complete object files to the recipients, so that they can relink them
45
+ with the library after making changes to the library and recompiling
46
+ it. And you must show them these terms so they know their rights.
47
+
48
+ We protect your rights with a two-step method: (1) we copyright the
49
+ library, and (2) we offer you this license, which gives you legal
50
+ permission to copy, distribute and/or modify the library.
51
+
52
+ To protect each distributor, we want to make it very clear that
53
+ there is no warranty for the free library. Also, if the library is
54
+ modified by someone else and passed on, the recipients should know
55
+ that what they have is not the original version, so that the original
56
+ author's reputation will not be affected by problems that might be
57
+ introduced by others.
58
+
59
+ Finally, software patents pose a constant threat to the existence of
60
+ any free program. We wish to make sure that a company cannot
61
+ effectively restrict the users of a free program by obtaining a
62
+ restrictive license from a patent holder. Therefore, we insist that
63
+ any patent license obtained for a version of the library must be
64
+ consistent with the full freedom of use specified in this license.
65
+
66
+ Most GNU software, including some libraries, is covered by the
67
+ ordinary GNU General Public License. This license, the GNU Lesser
68
+ General Public License, applies to certain designated libraries, and
69
+ is quite different from the ordinary General Public License. We use
70
+ this license for certain libraries in order to permit linking those
71
+ libraries into non-free programs.
72
+
73
+ When a program is linked with a library, whether statically or using
74
+ a shared library, the combination of the two is legally speaking a
75
+ combined work, a derivative of the original library. The ordinary
76
+ General Public License therefore permits such linking only if the
77
+ entire combination fits its criteria of freedom. The Lesser General
78
+ Public License permits more lax criteria for linking other code with
79
+ the library.
80
+
81
+ We call this license the "Lesser" General Public License because it
82
+ does Less to protect the user's freedom than the ordinary General
83
+ Public License. It also provides other free software developers Less
84
+ of an advantage over competing non-free programs. These disadvantages
85
+ are the reason we use the ordinary General Public License for many
86
+ libraries. However, the Lesser license provides advantages in certain
87
+ special circumstances.
88
+
89
+ For example, on rare occasions, there may be a special need to
90
+ encourage the widest possible use of a certain library, so that it becomes
91
+ a de-facto standard. To achieve this, non-free programs must be
92
+ allowed to use the library. A more frequent case is that a free
93
+ library does the same job as widely used non-free libraries. In this
94
+ case, there is little to gain by limiting the free library to free
95
+ software only, so we use the Lesser General Public License.
96
+
97
+ In other cases, permission to use a particular library in non-free
98
+ programs enables a greater number of people to use a large body of
99
+ free software. For example, permission to use the GNU C Library in
100
+ non-free programs enables many more people to use the whole GNU
101
+ operating system, as well as its variant, the GNU/Linux operating
102
+ system.
103
+
104
+ Although the Lesser General Public License is Less protective of the
105
+ users' freedom, it does ensure that the user of a program that is
106
+ linked with the Library has the freedom and the wherewithal to run
107
+ that program using a modified version of the Library.
108
+
109
+ The precise terms and conditions for copying, distribution and
110
+ modification follow. Pay close attention to the difference between a
111
+ "work based on the library" and a "work that uses the library". The
112
+ former contains code derived from the library, whereas the latter must
113
+ be combined with the library in order to run.
114
+
115
+ GNU LESSER GENERAL PUBLIC LICENSE
116
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
117
+
118
+ 0. This License Agreement applies to any software library or other
119
+ program which contains a notice placed by the copyright holder or
120
+ other authorized party saying it may be distributed under the terms of
121
+ this Lesser General Public License (also called "this License").
122
+ Each licensee is addressed as "you".
123
+
124
+ A "library" means a collection of software functions and/or data
125
+ prepared so as to be conveniently linked with application programs
126
+ (which use some of those functions and data) to form executables.
127
+
128
+ The "Library", below, refers to any such software library or work
129
+ which has been distributed under these terms. A "work based on the
130
+ Library" means either the Library or any derivative work under
131
+ copyright law: that is to say, a work containing the Library or a
132
+ portion of it, either verbatim or with modifications and/or translated
133
+ straightforwardly into another language. (Hereinafter, translation is
134
+ included without limitation in the term "modification".)
135
+
136
+ "Source code" for a work means the preferred form of the work for
137
+ making modifications to it. For a library, complete source code means
138
+ all the source code for all modules it contains, plus any associated
139
+ interface definition files, plus the scripts used to control compilation
140
+ and installation of the library.
141
+
142
+ Activities other than copying, distribution and modification are not
143
+ covered by this License; they are outside its scope. The act of
144
+ running a program using the Library is not restricted, and output from
145
+ such a program is covered only if its contents constitute a work based
146
+ on the Library (independent of the use of the Library in a tool for
147
+ writing it). Whether that is true depends on what the Library does
148
+ and what the program that uses the Library does.
149
+
150
+ 1. You may copy and distribute verbatim copies of the Library's
151
+ complete source code as you receive it, in any medium, provided that
152
+ you conspicuously and appropriately publish on each copy an
153
+ appropriate copyright notice and disclaimer of warranty; keep intact
154
+ all the notices that refer to this License and to the absence of any
155
+ warranty; and distribute a copy of this License along with the
156
+ Library.
157
+
158
+ You may charge a fee for the physical act of transferring a copy,
159
+ and you may at your option offer warranty protection in exchange for a
160
+ fee.
161
+
162
+ 2. You may modify your copy or copies of the Library or any portion
163
+ of it, thus forming a work based on the Library, and copy and
164
+ distribute such modifications or work under the terms of Section 1
165
+ above, provided that you also meet all of these conditions:
166
+
167
+ a) The modified work must itself be a software library.
168
+
169
+ b) You must cause the files modified to carry prominent notices
170
+ stating that you changed the files and the date of any change.
171
+
172
+ c) You must cause the whole of the work to be licensed at no
173
+ charge to all third parties under the terms of this License.
174
+
175
+ d) If a facility in the modified Library refers to a function or a
176
+ table of data to be supplied by an application program that uses
177
+ the facility, other than as an argument passed when the facility
178
+ is invoked, then you must make a good faith effort to ensure that,
179
+ in the event an application does not supply such function or
180
+ table, the facility still operates, and performs whatever part of
181
+ its purpose remains meaningful.
182
+
183
+ (For example, a function in a library to compute square roots has
184
+ a purpose that is entirely well-defined independent of the
185
+ application. Therefore, Subsection 2d requires that any
186
+ application-supplied function or table used by this function must
187
+ be optional: if the application does not supply it, the square
188
+ root function must still compute square roots.)
189
+
190
+ These requirements apply to the modified work as a whole. If
191
+ identifiable sections of that work are not derived from the Library,
192
+ and can be reasonably considered independent and separate works in
193
+ themselves, then this License, and its terms, do not apply to those
194
+ sections when you distribute them as separate works. But when you
195
+ distribute the same sections as part of a whole which is a work based
196
+ on the Library, the distribution of the whole must be on the terms of
197
+ this License, whose permissions for other licensees extend to the
198
+ entire whole, and thus to each and every part regardless of who wrote
199
+ it.
200
+
201
+ Thus, it is not the intent of this section to claim rights or contest
202
+ your rights to work written entirely by you; rather, the intent is to
203
+ exercise the right to control the distribution of derivative or
204
+ collective works based on the Library.
205
+
206
+ In addition, mere aggregation of another work not based on the Library
207
+ with the Library (or with a work based on the Library) on a volume of
208
+ a storage or distribution medium does not bring the other work under
209
+ the scope of this License.
210
+
211
+ 3. You may opt to apply the terms of the ordinary GNU General Public
212
+ License instead of this License to a given copy of the Library. To do
213
+ this, you must alter all the notices that refer to this License, so
214
+ that they refer to the ordinary GNU General Public License, version 2,
215
+ instead of to this License. (If a newer version than version 2 of the
216
+ ordinary GNU General Public License has appeared, then you can specify
217
+ that version instead if you wish.) Do not make any other change in
218
+ these notices.
219
+
220
+ Once this change is made in a given copy, it is irreversible for
221
+ that copy, so the ordinary GNU General Public License applies to all
222
+ subsequent copies and derivative works made from that copy.
223
+
224
+ This option is useful when you wish to copy part of the code of
225
+ the Library into a program that is not a library.
226
+
227
+ 4. You may copy and distribute the Library (or a portion or
228
+ derivative of it, under Section 2) in object code or executable form
229
+ under the terms of Sections 1 and 2 above provided that you accompany
230
+ it with the complete corresponding machine-readable source code, which
231
+ must be distributed under the terms of Sections 1 and 2 above on a
232
+ medium customarily used for software interchange.
233
+
234
+ If distribution of object code is made by offering access to copy
235
+ from a designated place, then offering equivalent access to copy the
236
+ source code from the same place satisfies the requirement to
237
+ distribute the source code, even though third parties are not
238
+ compelled to copy the source along with the object code.
239
+
240
+ 5. A program that contains no derivative of any portion of the
241
+ Library, but is designed to work with the Library by being compiled or
242
+ linked with it, is called a "work that uses the Library". Such a
243
+ work, in isolation, is not a derivative work of the Library, and
244
+ therefore falls outside the scope of this License.
245
+
246
+ However, linking a "work that uses the Library" with the Library
247
+ creates an executable that is a derivative of the Library (because it
248
+ contains portions of the Library), rather than a "work that uses the
249
+ library". The executable is therefore covered by this License.
250
+ Section 6 states terms for distribution of such executables.
251
+
252
+ When a "work that uses the Library" uses material from a header file
253
+ that is part of the Library, the object code for the work may be a
254
+ derivative work of the Library even though the source code is not.
255
+ Whether this is true is especially significant if the work can be
256
+ linked without the Library, or if the work is itself a library. The
257
+ threshold for this to be true is not precisely defined by law.
258
+
259
+ If such an object file uses only numerical parameters, data
260
+ structure layouts and accessors, and small macros and small inline
261
+ functions (ten lines or less in length), then the use of the object
262
+ file is unrestricted, regardless of whether it is legally a derivative
263
+ work. (Executables containing this object code plus portions of the
264
+ Library will still fall under Section 6.)
265
+
266
+ Otherwise, if the work is a derivative of the Library, you may
267
+ distribute the object code for the work under the terms of Section 6.
268
+ Any executables containing that work also fall under Section 6,
269
+ whether or not they are linked directly with the Library itself.
270
+
271
+ 6. As an exception to the Sections above, you may also combine or
272
+ link a "work that uses the Library" with the Library to produce a
273
+ work containing portions of the Library, and distribute that work
274
+ under terms of your choice, provided that the terms permit
275
+ modification of the work for the customer's own use and reverse
276
+ engineering for debugging such modifications.
277
+
278
+ You must give prominent notice with each copy of the work that the
279
+ Library is used in it and that the Library and its use are covered by
280
+ this License. You must supply a copy of this License. If the work
281
+ during execution displays copyright notices, you must include the
282
+ copyright notice for the Library among them, as well as a reference
283
+ directing the user to the copy of this License. Also, you must do one
284
+ of these things:
285
+
286
+ a) Accompany the work with the complete corresponding
287
+ machine-readable source code for the Library including whatever
288
+ changes were used in the work (which must be distributed under
289
+ Sections 1 and 2 above); and, if the work is an executable linked
290
+ with the Library, with the complete machine-readable "work that
291
+ uses the Library", as object code and/or source code, so that the
292
+ user can modify the Library and then relink to produce a modified
293
+ executable containing the modified Library. (It is understood
294
+ that the user who changes the contents of definitions files in the
295
+ Library will not necessarily be able to recompile the application
296
+ to use the modified definitions.)
297
+
298
+ b) Use a suitable shared library mechanism for linking with the
299
+ Library. A suitable mechanism is one that (1) uses at run time a
300
+ copy of the library already present on the user's computer system,
301
+ rather than copying library functions into the executable, and (2)
302
+ will operate properly with a modified version of the library, if
303
+ the user installs one, as long as the modified version is
304
+ interface-compatible with the version that the work was made with.
305
+
306
+ c) Accompany the work with a written offer, valid for at
307
+ least three years, to give the same user the materials
308
+ specified in Subsection 6a, above, for a charge no more
309
+ than the cost of performing this distribution.
310
+
311
+ d) If distribution of the work is made by offering access to copy
312
+ from a designated place, offer equivalent access to copy the above
313
+ specified materials from the same place.
314
+
315
+ e) Verify that the user has already received a copy of these
316
+ materials or that you have already sent this user a copy.
317
+
318
+ For an executable, the required form of the "work that uses the
319
+ Library" must include any data and utility programs needed for
320
+ reproducing the executable from it. However, as a special exception,
321
+ the materials to be distributed need not include anything that is
322
+ normally distributed (in either source or binary form) with the major
323
+ components (compiler, kernel, and so on) of the operating system on
324
+ which the executable runs, unless that component itself accompanies
325
+ the executable.
326
+
327
+ It may happen that this requirement contradicts the license
328
+ restrictions of other proprietary libraries that do not normally
329
+ accompany the operating system. Such a contradiction means you cannot
330
+ use both them and the Library together in an executable that you
331
+ distribute.
332
+
333
+ 7. You may place library facilities that are a work based on the
334
+ Library side-by-side in a single library together with other library
335
+ facilities not covered by this License, and distribute such a combined
336
+ library, provided that the separate distribution of the work based on
337
+ the Library and of the other library facilities is otherwise
338
+ permitted, and provided that you do these two things:
339
+
340
+ a) Accompany the combined library with a copy of the same work
341
+ based on the Library, uncombined with any other library
342
+ facilities. This must be distributed under the terms of the
343
+ Sections above.
344
+
345
+ b) Give prominent notice with the combined library of the fact
346
+ that part of it is a work based on the Library, and explaining
347
+ where to find the accompanying uncombined form of the same work.
348
+
349
+ 8. You may not copy, modify, sublicense, link with, or distribute
350
+ the Library except as expressly provided under this License. Any
351
+ attempt otherwise to copy, modify, sublicense, link with, or
352
+ distribute the Library is void, and will automatically terminate your
353
+ rights under this License. However, parties who have received copies,
354
+ or rights, from you under this License will not have their licenses
355
+ terminated so long as such parties remain in full compliance.
356
+
357
+ 9. You are not required to accept this License, since you have not
358
+ signed it. However, nothing else grants you permission to modify or
359
+ distribute the Library or its derivative works. These actions are
360
+ prohibited by law if you do not accept this License. Therefore, by
361
+ modifying or distributing the Library (or any work based on the
362
+ Library), you indicate your acceptance of this License to do so, and
363
+ all its terms and conditions for copying, distributing or modifying
364
+ the Library or works based on it.
365
+
366
+ 10. Each time you redistribute the Library (or any work based on the
367
+ Library), the recipient automatically receives a license from the
368
+ original licensor to copy, distribute, link with or modify the Library
369
+ subject to these terms and conditions. You may not impose any further
370
+ restrictions on the recipients' exercise of the rights granted herein.
371
+ You are not responsible for enforcing compliance by third parties with
372
+ this License.
373
+
374
+ 11. If, as a consequence of a court judgment or allegation of patent
375
+ infringement or for any other reason (not limited to patent issues),
376
+ conditions are imposed on you (whether by court order, agreement or
377
+ otherwise) that contradict the conditions of this License, they do not
378
+ excuse you from the conditions of this License. If you cannot
379
+ distribute so as to satisfy simultaneously your obligations under this
380
+ License and any other pertinent obligations, then as a consequence you
381
+ may not distribute the Library at all. For example, if a patent
382
+ license would not permit royalty-free redistribution of the Library by
383
+ all those who receive copies directly or indirectly through you, then
384
+ the only way you could satisfy both it and this License would be to
385
+ refrain entirely from distribution of the Library.
386
+
387
+ If any portion of this section is held invalid or unenforceable under any
388
+ particular circumstance, the balance of the section is intended to apply,
389
+ and the section as a whole is intended to apply in other circumstances.
390
+
391
+ It is not the purpose of this section to induce you to infringe any
392
+ patents or other property right claims or to contest validity of any
393
+ such claims; this section has the sole purpose of protecting the
394
+ integrity of the free software distribution system which is
395
+ implemented by public license practices. Many people have made
396
+ generous contributions to the wide range of software distributed
397
+ through that system in reliance on consistent application of that
398
+ system; it is up to the author/donor to decide if he or she is willing
399
+ to distribute software through any other system and a licensee cannot
400
+ impose that choice.
401
+
402
+ This section is intended to make thoroughly clear what is believed to
403
+ be a consequence of the rest of this License.
404
+
405
+ 12. If the distribution and/or use of the Library is restricted in
406
+ certain countries either by patents or by copyrighted interfaces, the
407
+ original copyright holder who places the Library under this License may add
408
+ an explicit geographical distribution limitation excluding those countries,
409
+ so that distribution is permitted only in or among countries not thus
410
+ excluded. In such case, this License incorporates the limitation as if
411
+ written in the body of this License.
412
+
413
+ 13. The Free Software Foundation may publish revised and/or new
414
+ versions of the Lesser General Public License from time to time.
415
+ Such new versions will be similar in spirit to the present version,
416
+ but may differ in detail to address new problems or concerns.
417
+
418
+ Each version is given a distinguishing version number. If the Library
419
+ specifies a version number of this License which applies to it and
420
+ "any later version", you have the option of following the terms and
421
+ conditions either of that version or of any later version published by
422
+ the Free Software Foundation. If the Library does not specify a
423
+ license version number, you may choose any version ever published by
424
+ the Free Software Foundation.
425
+
426
+ 14. If you wish to incorporate parts of the Library into other free
427
+ programs whose distribution conditions are incompatible with these,
428
+ write to the author to ask for permission. For software which is
429
+ copyrighted by the Free Software Foundation, write to the Free
430
+ Software Foundation; we sometimes make exceptions for this. Our
431
+ decision will be guided by the two goals of preserving the free status
432
+ of all derivatives of our free software and of promoting the sharing
433
+ and reuse of software generally.
434
+
435
+ NO WARRANTY
436
+
437
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
438
+ WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
439
+ EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
440
+ OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
441
+ KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
442
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
443
+ PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
444
+ LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
445
+ THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
446
+
447
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
448
+ WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
449
+ AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
450
+ FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
451
+ CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
452
+ LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
453
+ RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
454
+ FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
455
+ SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
456
+ DAMAGES.
457
+
458
+ END OF TERMS AND CONDITIONS
459
+
460
+ How to Apply These Terms to Your New Libraries
461
+
462
+ If you develop a new library, and you want it to be of the greatest
463
+ possible use to the public, we recommend making it free software that
464
+ everyone can redistribute and change. You can do so by permitting
465
+ redistribution under these terms (or, alternatively, under the terms of the
466
+ ordinary General Public License).
467
+
468
+ To apply these terms, attach the following notices to the library. It is
469
+ safest to attach them to the start of each source file to most effectively
470
+ convey the exclusion of warranty; and each file should have at least the
471
+ "copyright" line and a pointer to where the full notice is found.
472
+
473
+ <one line to give the library's name and a brief idea of what it does.>
474
+ Copyright (C) <year> <name of author>
475
+
476
+ This library is free software; you can redistribute it and/or
477
+ modify it under the terms of the GNU Lesser General Public
478
+ License as published by the Free Software Foundation; either
479
+ version 2.1 of the License, or (at your option) any later version.
480
+
481
+ This library is distributed in the hope that it will be useful,
482
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
483
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
484
+ Lesser General Public License for more details.
485
+
486
+ You should have received a copy of the GNU Lesser General Public
487
+ License along with this library; if not, write to the Free Software
488
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
489
+
490
+ Also add information on how to contact you by electronic and paper mail.
491
+
492
+ You should also get your employer (if you work as a programmer) or your
493
+ school, if any, to sign a "copyright disclaimer" for the library, if
494
+ necessary. Here is a sample; alter the names:
495
+
496
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
497
+ library `Frob' (a library for tweaking knobs) written by James Random Hacker.
498
+
499
+ <signature of Ty Coon>, 1 April 1990
500
+ Ty Coon, President of Vice
501
+
502
+ That's all there is to it!
COPYING.LGPLv3 ADDED
@@ -0,0 +1,165 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ GNU LESSER GENERAL PUBLIC LICENSE
2
+ Version 3, 29 June 2007
3
+
4
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
5
+ Everyone is permitted to copy and distribute verbatim copies
6
+ of this license document, but changing it is not allowed.
7
+
8
+
9
+ This version of the GNU Lesser General Public License incorporates
10
+ the terms and conditions of version 3 of the GNU General Public
11
+ License, supplemented by the additional permissions listed below.
12
+
13
+ 0. Additional Definitions.
14
+
15
+ As used herein, "this License" refers to version 3 of the GNU Lesser
16
+ General Public License, and the "GNU GPL" refers to version 3 of the GNU
17
+ General Public License.
18
+
19
+ "The Library" refers to a covered work governed by this License,
20
+ other than an Application or a Combined Work as defined below.
21
+
22
+ An "Application" is any work that makes use of an interface provided
23
+ by the Library, but which is not otherwise based on the Library.
24
+ Defining a subclass of a class defined by the Library is deemed a mode
25
+ of using an interface provided by the Library.
26
+
27
+ A "Combined Work" is a work produced by combining or linking an
28
+ Application with the Library. The particular version of the Library
29
+ with which the Combined Work was made is also called the "Linked
30
+ Version".
31
+
32
+ The "Minimal Corresponding Source" for a Combined Work means the
33
+ Corresponding Source for the Combined Work, excluding any source code
34
+ for portions of the Combined Work that, considered in isolation, are
35
+ based on the Application, and not on the Linked Version.
36
+
37
+ The "Corresponding Application Code" for a Combined Work means the
38
+ object code and/or source code for the Application, including any data
39
+ and utility programs needed for reproducing the Combined Work from the
40
+ Application, but excluding the System Libraries of the Combined Work.
41
+
42
+ 1. Exception to Section 3 of the GNU GPL.
43
+
44
+ You may convey a covered work under sections 3 and 4 of this License
45
+ without being bound by section 3 of the GNU GPL.
46
+
47
+ 2. Conveying Modified Versions.
48
+
49
+ If you modify a copy of the Library, and, in your modifications, a
50
+ facility refers to a function or data to be supplied by an Application
51
+ that uses the facility (other than as an argument passed when the
52
+ facility is invoked), then you may convey a copy of the modified
53
+ version:
54
+
55
+ a) under this License, provided that you make a good faith effort to
56
+ ensure that, in the event an Application does not supply the
57
+ function or data, the facility still operates, and performs
58
+ whatever part of its purpose remains meaningful, or
59
+
60
+ b) under the GNU GPL, with none of the additional permissions of
61
+ this License applicable to that copy.
62
+
63
+ 3. Object Code Incorporating Material from Library Header Files.
64
+
65
+ The object code form of an Application may incorporate material from
66
+ a header file that is part of the Library. You may convey such object
67
+ code under terms of your choice, provided that, if the incorporated
68
+ material is not limited to numerical parameters, data structure
69
+ layouts and accessors, or small macros, inline functions and templates
70
+ (ten or fewer lines in length), you do both of the following:
71
+
72
+ a) Give prominent notice with each copy of the object code that the
73
+ Library is used in it and that the Library and its use are
74
+ covered by this License.
75
+
76
+ b) Accompany the object code with a copy of the GNU GPL and this license
77
+ document.
78
+
79
+ 4. Combined Works.
80
+
81
+ You may convey a Combined Work under terms of your choice that,
82
+ taken together, effectively do not restrict modification of the
83
+ portions of the Library contained in the Combined Work and reverse
84
+ engineering for debugging such modifications, if you also do each of
85
+ the following:
86
+
87
+ a) Give prominent notice with each copy of the Combined Work that
88
+ the Library is used in it and that the Library and its use are
89
+ covered by this License.
90
+
91
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
92
+ document.
93
+
94
+ c) For a Combined Work that displays copyright notices during
95
+ execution, include the copyright notice for the Library among
96
+ these notices, as well as a reference directing the user to the
97
+ copies of the GNU GPL and this license document.
98
+
99
+ d) Do one of the following:
100
+
101
+ 0) Convey the Minimal Corresponding Source under the terms of this
102
+ License, and the Corresponding Application Code in a form
103
+ suitable for, and under terms that permit, the user to
104
+ recombine or relink the Application with a modified version of
105
+ the Linked Version to produce a modified Combined Work, in the
106
+ manner specified by section 6 of the GNU GPL for conveying
107
+ Corresponding Source.
108
+
109
+ 1) Use a suitable shared library mechanism for linking with the
110
+ Library. A suitable mechanism is one that (a) uses at run time
111
+ a copy of the Library already present on the user's computer
112
+ system, and (b) will operate properly with a modified version
113
+ of the Library that is interface-compatible with the Linked
114
+ Version.
115
+
116
+ e) Provide Installation Information, but only if you would otherwise
117
+ be required to provide such information under section 6 of the
118
+ GNU GPL, and only to the extent that such information is
119
+ necessary to install and execute a modified version of the
120
+ Combined Work produced by recombining or relinking the
121
+ Application with a modified version of the Linked Version. (If
122
+ you use option 4d0, the Installation Information must accompany
123
+ the Minimal Corresponding Source and Corresponding Application
124
+ Code. If you use option 4d1, you must provide the Installation
125
+ Information in the manner specified by section 6 of the GNU GPL
126
+ for conveying Corresponding Source.)
127
+
128
+ 5. Combined Libraries.
129
+
130
+ You may place library facilities that are a work based on the
131
+ Library side by side in a single library together with other library
132
+ facilities that are not Applications and are not covered by this
133
+ License, and convey such a combined library under terms of your
134
+ choice, if you do both of the following:
135
+
136
+ a) Accompany the combined library with a copy of the same work based
137
+ on the Library, uncombined with any other library facilities,
138
+ conveyed under the terms of this License.
139
+
140
+ b) Give prominent notice with the combined library that part of it
141
+ is a work based on the Library, and explaining where to find the
142
+ accompanying uncombined form of the same work.
143
+
144
+ 6. Revised Versions of the GNU Lesser General Public License.
145
+
146
+ The Free Software Foundation may publish revised and/or new versions
147
+ of the GNU Lesser General Public License from time to time. Such new
148
+ versions will be similar in spirit to the present version, but may
149
+ differ in detail to address new problems or concerns.
150
+
151
+ Each version is given a distinguishing version number. If the
152
+ Library as you received it specifies that a certain numbered version
153
+ of the GNU Lesser General Public License "or any later version"
154
+ applies to it, you have the option of following the terms and
155
+ conditions either of that published version or of any later version
156
+ published by the Free Software Foundation. If the Library as you
157
+ received it does not specify a version number of the GNU Lesser
158
+ General Public License, you may choose any version of the GNU Lesser
159
+ General Public License ever published by the Free Software Foundation.
160
+
161
+ If the Library as you received it specifies that a proxy can decide
162
+ whether future versions of the GNU Lesser General Public License shall
163
+ apply, that proxy's public statement of acceptance of any version is
164
+ permanent authorization for you to choose that version for the
165
+ Library.
CREDITS ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ See the Git history of the project (https://git.ffmpeg.org/ffmpeg) to
2
+ get the names of people who have contributed to FFmpeg.
3
+
4
+ To check the log, you can type the command "git log" in the FFmpeg
5
+ source directory, or browse the online repository at
6
+ https://git.ffmpeg.org/ffmpeg
Changelog ADDED
@@ -0,0 +1,2103 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Entries are sorted chronologically from oldest to youngest within each release,
2
+ releases are sorted from youngest to oldest.
3
+
4
+ version <next>:
5
+ - libaribcaption decoder
6
+ - Playdate video decoder and demuxer
7
+ - Extend VAAPI support for libva-win32 on Windows
8
+ - afireqsrc audio source filter
9
+ - arls filter
10
+ - ffmpeg CLI new option: -readrate_initial_burst
11
+ - zoneplate video source filter
12
+ - command support in the setpts and asetpts filters
13
+ - Vulkan decode hwaccel, supporting H264, HEVC and AV1
14
+ - color_vulkan filter
15
+ - bwdif_vulkan filter
16
+ - nlmeans_vulkan filter
17
+ - RivaTuner video decoder
18
+ - xfade_vulkan filter
19
+ - vMix video decoder
20
+ - Essential Video Coding parser, muxer and demuxer
21
+ - Essential Video Coding frame merge bsf
22
+ - bwdif_cuda filter
23
+ - Microsoft RLE video encoder
24
+ - Raw AC-4 muxer and demuxer
25
+ - Raw VVC bitstream parser, muxer and demuxer
26
+ - Bitstream filter for editing metadata in VVC streams
27
+ - Bitstream filter for converting VVC from MP4 to Annex B
28
+ - scale_vt filter for videotoolbox
29
+ - transpose_vt filter for videotoolbox
30
+ - support for the P_SKIP hinting to speed up libx264 encoding
31
+ - Support HEVC,VP9,AV1 codec in enhanced flv format
32
+ - apsnr and asisdr audio filters
33
+ - OSQ demuxer and decoder
34
+ - Support HEVC,VP9,AV1 codec fourcclist in enhanced rtmp protocol
35
+
36
+
37
+ version 6.0:
38
+ - Radiance HDR image support
39
+ - ddagrab (Desktop Duplication) video capture filter
40
+ - ffmpeg -shortest_buf_duration option
41
+ - ffmpeg now requires threading to be built
42
+ - ffmpeg now runs every muxer in a separate thread
43
+ - Add new mode to cropdetect filter to detect crop-area based on motion vectors and edges
44
+ - VAAPI decoding and encoding for 10/12bit 422, 10/12bit 444 HEVC and VP9
45
+ - WBMP (Wireless Application Protocol Bitmap) image format
46
+ - a3dscope filter
47
+ - bonk decoder and demuxer
48
+ - Micronas SC-4 audio decoder
49
+ - LAF demuxer
50
+ - APAC decoder and demuxer
51
+ - Media 100i decoders
52
+ - DTS to PTS reorder bsf
53
+ - ViewQuest VQC decoder
54
+ - backgroundkey filter
55
+ - nvenc AV1 encoding support
56
+ - MediaCodec decoder via NDKMediaCodec
57
+ - MediaCodec encoder
58
+ - oneVPL support for QSV
59
+ - QSV AV1 encoder
60
+ - QSV decoding and encoding for 10/12bit 422, 10/12bit 444 HEVC and VP9
61
+ - showcwt multimedia filter
62
+ - corr video filter
63
+ - adrc audio filter
64
+ - afdelaysrc audio filter
65
+ - WADY DPCM decoder and demuxer
66
+ - CBD2 DPCM decoder
67
+ - ssim360 video filter
68
+ - ffmpeg CLI new options: -stats_enc_pre[_fmt], -stats_enc_post[_fmt],
69
+ -stats_mux_pre[_fmt]
70
+ - hstack_vaapi, vstack_vaapi and xstack_vaapi filters
71
+ - XMD ADPCM decoder and demuxer
72
+ - media100 to mjpegb bsf
73
+ - ffmpeg CLI new option: -fix_sub_duration_heartbeat
74
+ - WavArc decoder and demuxer
75
+ - CrystalHD decoders deprecated
76
+ - SDNS demuxer
77
+ - RKA decoder and demuxer
78
+ - filtergraph syntax in ffmpeg CLI now supports passing file contents
79
+ as option values, by prefixing option name with '/'
80
+ - hstack_qsv, vstack_qsv and xstack_qsv filters
81
+
82
+
83
+ version 5.1:
84
+ - add ipfs/ipns gateway support
85
+ - dialogue enhance audio filter
86
+ - dropped obsolete XvMC hwaccel
87
+ - pcm-bluray encoder
88
+ - DFPWM audio encoder/decoder and raw muxer/demuxer
89
+ - SITI filter
90
+ - Vizrt Binary Image encoder/decoder
91
+ - avsynctest source filter
92
+ - feedback video filter
93
+ - pixelize video filter
94
+ - colormap video filter
95
+ - colorchart video source filter
96
+ - multiply video filter
97
+ - PGS subtitle frame merge bitstream filter
98
+ - blurdetect filter
99
+ - tiltshelf audio filter
100
+ - QOI image format support
101
+ - ffprobe -o option
102
+ - virtualbass audio filter
103
+ - VDPAU AV1 hwaccel
104
+ - PHM image format support
105
+ - remap_opencl filter
106
+ - added chromakey_cuda filter
107
+ - added bilateral_cuda filter
108
+
109
+
110
+ version 5.0:
111
+ - ADPCM IMA Westwood encoder
112
+ - Westwood AUD muxer
113
+ - ADPCM IMA Acorn Replay decoder
114
+ - Argonaut Games CVG demuxer
115
+ - Argonaut Games CVG muxer
116
+ - Concatf protocol
117
+ - afwtdn audio filter
118
+ - audio and video segment filters
119
+ - Apple Graphics (SMC) encoder
120
+ - hsvkey and hsvhold video filters
121
+ - adecorrelate audio filter
122
+ - atilt audio filter
123
+ - grayworld video filter
124
+ - AV1 Low overhead bitstream format muxer
125
+ - swscale slice threading
126
+ - MSN Siren decoder
127
+ - scharr video filter
128
+ - apsyclip audio filter
129
+ - morpho video filter
130
+ - amr parser
131
+ - (a)latency filters
132
+ - GEM Raster image decoder
133
+ - asdr audio filter
134
+ - speex decoder
135
+ - limitdiff video filter
136
+ - xcorrelate video filter
137
+ - varblur video filter
138
+ - huesaturation video filter
139
+ - colorspectrum source video filter
140
+ - RTP packetizer for uncompressed video (RFC 4175)
141
+ - bitpacked encoder
142
+ - VideoToolbox VP9 hwaccel
143
+ - VideoToolbox ProRes hwaccel
144
+ - support loongarch.
145
+ - aspectralstats audio filter
146
+ - adynamicsmooth audio filter
147
+ - libplacebo filter
148
+ - vflip_vulkan, hflip_vulkan and flip_vulkan filters
149
+ - adynamicequalizer audio filter
150
+ - yadif_videotoolbox filter
151
+ - VideoToolbox ProRes encoder
152
+ - anlmf audio filter
153
+ - IMF demuxer (experimental)
154
+
155
+
156
+ version 4.4:
157
+ - AudioToolbox output device
158
+ - MacCaption demuxer
159
+ - PGX decoder
160
+ - chromanr video filter
161
+ - VDPAU accelerated HEVC 10/12bit decoding
162
+ - ADPCM IMA Ubisoft APM encoder
163
+ - Rayman 2 APM muxer
164
+ - AV1 encoding support SVT-AV1
165
+ - Cineform HD encoder
166
+ - ADPCM Argonaut Games encoder
167
+ - Argonaut Games ASF muxer
168
+ - AV1 Low overhead bitstream format demuxer
169
+ - RPZA video encoder
170
+ - ADPCM IMA MOFLEX decoder
171
+ - MobiClip FastAudio decoder
172
+ - MobiClip video decoder
173
+ - MOFLEX demuxer
174
+ - MODS demuxer
175
+ - PhotoCD decoder
176
+ - MCA demuxer
177
+ - AV1 decoder (Hardware acceleration used only)
178
+ - SVS demuxer
179
+ - Argonaut Games BRP demuxer
180
+ - DAT demuxer
181
+ - aax demuxer
182
+ - IPU decoder, parser and demuxer
183
+ - Intel QSV-accelerated AV1 decoding
184
+ - Argonaut Games Video decoder
185
+ - libwavpack encoder removed
186
+ - ACE demuxer
187
+ - AVS3 demuxer
188
+ - AVS3 video decoder via libuavs3d
189
+ - Cintel RAW decoder
190
+ - VDPAU accelerated VP9 10/12bit decoding
191
+ - afreqshift and aphaseshift filters
192
+ - High Voltage Software ADPCM encoder
193
+ - LEGO Racers ALP (.tun & .pcm) muxer
194
+ - AV1 VAAPI decoder
195
+ - adenorm filter
196
+ - ADPCM IMA AMV encoder
197
+ - AMV muxer
198
+ - NVDEC AV1 hwaccel
199
+ - DXVA2/D3D11VA hardware accelerated AV1 decoding
200
+ - speechnorm filter
201
+ - SpeedHQ encoder
202
+ - asupercut filter
203
+ - asubcut filter
204
+ - Microsoft Paint (MSP) version 2 decoder
205
+ - Microsoft Paint (MSP) demuxer
206
+ - AV1 monochrome encoding support via libaom >= 2.0.1
207
+ - asuperpass and asuperstop filter
208
+ - shufflepixels filter
209
+ - tmidequalizer filter
210
+ - estdif filter
211
+ - epx filter
212
+ - Dolby E parser
213
+ - shear filter
214
+ - kirsch filter
215
+ - colortemperature filter
216
+ - colorcontrast filter
217
+ - PFM encoder
218
+ - colorcorrect filter
219
+ - binka demuxer
220
+ - XBM parser
221
+ - xbm_pipe demuxer
222
+ - colorize filter
223
+ - CRI parser
224
+ - aexciter audio filter
225
+ - exposure video filter
226
+ - monochrome video filter
227
+ - setts bitstream filter
228
+ - vif video filter
229
+ - OpenEXR image encoder
230
+ - Simbiosis IMX decoder
231
+ - Simbiosis IMX demuxer
232
+ - Digital Pictures SGA demuxer and decoders
233
+ - TTML subtitle encoder and muxer
234
+ - identity video filter
235
+ - msad video filter
236
+ - gophers protocol
237
+ - RIST protocol via librist
238
+
239
+
240
+ version 4.3:
241
+ - v360 filter
242
+ - Intel QSV-accelerated MJPEG decoding
243
+ - Intel QSV-accelerated VP9 decoding
244
+ - Support for TrueHD in mp4
245
+ - Support AMD AMF encoder on Linux (via Vulkan)
246
+ - IMM5 video decoder
247
+ - ZeroMQ protocol
248
+ - support Sipro ACELP.KELVIN decoding
249
+ - streamhash muxer
250
+ - sierpinski video source
251
+ - scroll video filter
252
+ - photosensitivity filter
253
+ - anlms filter
254
+ - arnndn filter
255
+ - bilateral filter
256
+ - maskedmin and maskedmax filters
257
+ - VDPAU VP9 hwaccel
258
+ - median filter
259
+ - QSV-accelerated VP9 encoding
260
+ - AV1 encoding support via librav1e
261
+ - AV1 frame merge bitstream filter
262
+ - AV1 Annex B demuxer
263
+ - axcorrelate filter
264
+ - mvdv decoder
265
+ - mvha decoder
266
+ - MPEG-H 3D Audio support in mp4
267
+ - thistogram filter
268
+ - freezeframes filter
269
+ - Argonaut Games ADPCM decoder
270
+ - Argonaut Games ASF demuxer
271
+ - xfade video filter
272
+ - xfade_opencl filter
273
+ - afirsrc audio filter source
274
+ - pad_opencl filter
275
+ - Simon & Schuster Interactive ADPCM decoder
276
+ - Real War KVAG demuxer
277
+ - CDToons video decoder
278
+ - siren audio decoder
279
+ - Rayman 2 ADPCM decoder
280
+ - Rayman 2 APM demuxer
281
+ - cas video filter
282
+ - High Voltage Software ADPCM decoder
283
+ - LEGO Racers ALP (.tun & .pcm) demuxer
284
+ - AMQP 0-9-1 protocol (RabbitMQ)
285
+ - Vulkan support
286
+ - avgblur_vulkan, overlay_vulkan, scale_vulkan and chromaber_vulkan filters
287
+ - ADPCM IMA MTF decoder
288
+ - FWSE demuxer
289
+ - DERF DPCM decoder
290
+ - DERF demuxer
291
+ - CRI HCA decoder
292
+ - CRI HCA demuxer
293
+ - overlay_cuda filter
294
+ - switch from AvxSynth to AviSynth+ on Linux
295
+ - mv30 decoder
296
+ - Expanded styling support for 3GPP Timed Text Subtitles (movtext)
297
+ - WebP parser
298
+ - tmedian filter
299
+ - maskedthreshold filter
300
+ - Support for muxing pcm and pgs in m2ts
301
+ - Cunning Developments ADPCM decoder
302
+ - asubboost filter
303
+ - Pro Pinball Series Soundbank demuxer
304
+ - pcm_rechunk bitstream filter
305
+ - scdet filter
306
+ - NotchLC decoder
307
+ - gradients source video filter
308
+ - MediaFoundation encoder wrapper
309
+ - untile filter
310
+ - Simon & Schuster Interactive ADPCM encoder
311
+ - PFM decoder
312
+ - dblur video filter
313
+ - Real War KVAG muxer
314
+
315
+
316
+ version 4.2:
317
+ - tpad filter
318
+ - AV1 decoding support through libdav1d
319
+ - dedot filter
320
+ - chromashift and rgbashift filters
321
+ - freezedetect filter
322
+ - truehd_core bitstream filter
323
+ - dhav demuxer
324
+ - PCM-DVD encoder
325
+ - GIF parser
326
+ - vividas demuxer
327
+ - hymt decoder
328
+ - anlmdn filter
329
+ - maskfun filter
330
+ - hcom demuxer and decoder
331
+ - ARBC decoder
332
+ - libaribb24 based ARIB STD-B24 caption support (profiles A and C)
333
+ - Support decoding of HEVC 4:4:4 content in nvdec and cuviddec
334
+ - removed libndi-newtek
335
+ - agm decoder
336
+ - KUX demuxer
337
+ - AV1 frame split bitstream filter
338
+ - lscr decoder
339
+ - lagfun filter
340
+ - asoftclip filter
341
+ - Support decoding of HEVC 4:4:4 content in vdpau
342
+ - colorhold filter
343
+ - xmedian filter
344
+ - asr filter
345
+ - showspatial multimedia filter
346
+ - VP4 video decoder
347
+ - IFV demuxer
348
+ - derain filter
349
+ - deesser filter
350
+ - mov muxer writes tracks with unspecified language instead of English by default
351
+ - add support for using clang to compile CUDA kernels
352
+
353
+
354
+ version 4.1:
355
+ - deblock filter
356
+ - tmix filter
357
+ - amplify filter
358
+ - fftdnoiz filter
359
+ - aderivative and aintegral audio filters
360
+ - pal75bars and pal100bars video filter sources
361
+ - support mbedTLS based TLS
362
+ - adeclick filter
363
+ - adeclip filter
364
+ - libtensorflow backend for DNN based filters like srcnn
365
+ - vc1 decoder is now bit-exact
366
+ - ATRAC9 decoder
367
+ - lensfun wrapper filter
368
+ - colorconstancy filter
369
+ - AVS2 video decoder via libdavs2
370
+ - IMM4 video decoder
371
+ - Brooktree ProSumer video decoder
372
+ - MatchWare Screen Capture Codec decoder
373
+ - WinCam Motion Video decoder
374
+ - 1D LUT filter (lut1d)
375
+ - RemotelyAnywhere Screen Capture decoder
376
+ - cue and acue filters
377
+ - support for AV1 in MP4
378
+ - transpose_npp filter
379
+ - AVS2 video encoder via libxavs2
380
+ - amultiply filter
381
+ - Block-Matching 3d (bm3d) denoising filter
382
+ - acrossover filter
383
+ - ilbc decoder
384
+ - audio denoiser as afftdn filter
385
+ - AV1 parser
386
+ - SER demuxer
387
+ - sinc audio filter source
388
+ - chromahold filter
389
+ - setparams filter
390
+ - vibrance filter
391
+ - decoding S12M timecode in h264
392
+ - xstack filter
393
+ - pcm vidc decoder and encoder
394
+ - (a)graphmonitor filter
395
+ - yadif_cuda filter
396
+
397
+
398
+ version 4.0:
399
+ - Bitstream filters for editing metadata in H.264, HEVC and MPEG-2 streams
400
+ - Dropped support for OpenJPEG versions 2.0 and below. Using OpenJPEG now
401
+ requires 2.1 (or later) and pkg-config.
402
+ - VDA dropped (use VideoToolbox instead)
403
+ - MagicYUV encoder
404
+ - Raw AMR-NB and AMR-WB demuxers
405
+ - TiVo ty/ty+ demuxer
406
+ - Intel QSV-accelerated MJPEG encoding
407
+ - PCE support for extended channel layouts in the AAC encoder
408
+ - native aptX and aptX HD encoder and decoder
409
+ - Raw aptX and aptX HD muxer and demuxer
410
+ - NVIDIA NVDEC-accelerated H.264, HEVC, MJPEG, MPEG-1/2/4, VC1, VP8/9 hwaccel decoding
411
+ - Intel QSV-accelerated overlay filter
412
+ - mcompand audio filter
413
+ - acontrast audio filter
414
+ - OpenCL overlay filter
415
+ - video mix filter
416
+ - video normalize filter
417
+ - audio lv2 wrapper filter
418
+ - VAAPI MJPEG and VP8 decoding
419
+ - AMD AMF H.264 and HEVC encoders
420
+ - video fillborders filter
421
+ - video setrange filter
422
+ - nsp demuxer
423
+ - support LibreSSL (via libtls)
424
+ - AVX-512/ZMM support added
425
+ - Dropped support for building for Windows XP. The minimum supported Windows
426
+ version is Windows Vista.
427
+ - deconvolve video filter
428
+ - entropy video filter
429
+ - hilbert audio filter source
430
+ - aiir audio filter
431
+ - aiff: add support for CD-ROM XA ADPCM
432
+ - Removed the ffserver program
433
+ - Removed the ffmenc and ffmdec muxer and demuxer
434
+ - VideoToolbox HEVC encoder and hwaccel
435
+ - VAAPI-accelerated ProcAmp (color balance), denoise and sharpness filters
436
+ - Add android_camera indev
437
+ - codec2 en/decoding via libcodec2
438
+ - muxer/demuxer for raw codec2 files and .c2 files
439
+ - Moved nvidia codec headers into an external repository.
440
+ They can be found at http://git.videolan.org/?p=ffmpeg/nv-codec-headers.git
441
+ - native SBC encoder and decoder
442
+ - drmeter audio filter
443
+ - hapqa_extract bitstream filter
444
+ - filter_units bitstream filter
445
+ - AV1 Support through libaom
446
+ - E-AC-3 dependent frames support
447
+ - bitstream filter for extracting E-AC-3 core
448
+ - Haivision SRT protocol via libsrt
449
+ - segafilm muxer
450
+ - vfrdet filter
451
+ - SRCNN filter
452
+
453
+
454
+ version 3.4:
455
+ - deflicker video filter
456
+ - doubleweave video filter
457
+ - lumakey video filter
458
+ - pixscope video filter
459
+ - oscilloscope video filter
460
+ - config.log and other configuration files moved into ffbuild/ directory
461
+ - update cuvid/nvenc headers to Video Codec SDK 8.0.14
462
+ - afir audio filter
463
+ - scale_cuda CUDA based video scale filter
464
+ - librsvg support for svg rasterization
465
+ - crossfeed audio filter
466
+ - spec compliant VP9 muxing support in MP4
467
+ - remove the libnut muxer/demuxer wrappers
468
+ - remove the libschroedinger encoder/decoder wrappers
469
+ - surround audio filter
470
+ - sofalizer filter switched to libmysofa
471
+ - Gremlin Digital Video demuxer and decoder
472
+ - headphone audio filter
473
+ - superequalizer audio filter
474
+ - roberts video filter
475
+ - The x86 assembler default switched from yasm to nasm, pass
476
+ --x86asmexe=yasm to configure to restore the old behavior.
477
+ - additional frame format support for Interplay MVE movies
478
+ - support for decoding through D3D11VA in ffmpeg
479
+ - limiter video filter
480
+ - libvmaf video filter
481
+ - Dolby E decoder and SMPTE 337M demuxer
482
+ - unpremultiply video filter
483
+ - tlut2 video filter
484
+ - floodfill video filter
485
+ - pseudocolor video filter
486
+ - raw G.726 muxer and demuxer, left- and right-justified
487
+ - NewTek NDI input/output device
488
+ - Some video filters with several inputs now use a common set of options:
489
+ blend, libvmaf, lut3d, overlay, psnr, ssim.
490
+ They must always be used by name.
491
+ - FITS demuxer and decoder
492
+ - FITS muxer and encoder
493
+ - add --disable-autodetect build switch
494
+ - drop deprecated qtkit input device (use avfoundation instead)
495
+ - despill video filter
496
+ - haas audio filter
497
+ - SUP/PGS subtitle muxer
498
+ - convolve video filter
499
+ - VP9 tile threading support
500
+ - KMS screen grabber
501
+ - CUDA thumbnail filter
502
+ - V4L2 mem2mem HW assisted codecs
503
+ - Rockchip MPP hardware decoding
504
+ - vmafmotion video filter
505
+ - use MIME type "G726" for little-endian G.726, "AAL2-G726" for big-endian G.726
506
+
507
+
508
+ version 3.3:
509
+ - CrystalHD decoder moved to new decode API
510
+ - add internal ebur128 library, remove external libebur128 dependency
511
+ - Pro-MPEG CoP #3-R2 FEC protocol
512
+ - premultiply video filter
513
+ - Support for spherical videos
514
+ - configure now fails if autodetect-libraries are requested but not found
515
+ - PSD Decoder
516
+ - 16.8 floating point pcm decoder
517
+ - 24.0 floating point pcm decoder
518
+ - Apple Pixlet decoder
519
+ - QDMC audio decoder
520
+ - NewTek SpeedHQ decoder
521
+ - MIDI Sample Dump Standard demuxer
522
+ - readeia608 filter
523
+ - Sample Dump eXchange demuxer
524
+ - abitscope multimedia filter
525
+ - Scenarist Closed Captions demuxer and muxer
526
+ - threshold filter
527
+ - midequalizer filter
528
+ - Optimal Huffman tables for (M)JPEG encoding
529
+ - VAAPI-accelerated MPEG-2 and VP8 encoding
530
+ - FM Screen Capture Codec decoder
531
+ - native Opus encoder
532
+ - ScreenPressor decoder
533
+ - incomplete ClearVideo decoder
534
+ - Intel QSV video scaling and deinterlacing filters
535
+ - Support MOV with multiple sample description tables
536
+ - XPM decoder
537
+ - Removed the legacy X11 screen grabber, use XCB instead
538
+ - MPEG-7 Video Signature filter
539
+ - Removed asyncts filter (use af_aresample instead)
540
+ - Intel QSV-accelerated VP8 video decoding
541
+ - VAAPI-accelerated deinterlacing
542
+
543
+
544
+ version 3.2:
545
+ - libopenmpt demuxer
546
+ - tee protocol
547
+ - Changed metadata print option to accept general urls
548
+ - Alias muxer for Ogg Video (.ogv)
549
+ - VP8 in Ogg muxing
550
+ - curves filter doesn't automatically insert points at x=0 and x=1 anymore
551
+ - 16-bit support in curves filter and selectivecolor filter
552
+ - OpenH264 decoder wrapper
553
+ - MediaCodec H.264/HEVC/MPEG-4/VP8/VP9 hwaccel
554
+ - True Audio (TTA) muxer
555
+ - crystalizer audio filter
556
+ - acrusher audio filter
557
+ - bitplanenoise video filter
558
+ - floating point support in als decoder
559
+ - fifo muxer
560
+ - maskedclamp filter
561
+ - hysteresis filter
562
+ - lut2 filter
563
+ - yuvtestsrc filter
564
+ - CUDA CUVID H.263/VP8/VP9/10 bit HEVC (Dithered) Decoding
565
+ - vaguedenoiser filter
566
+ - added threads option per filter instance
567
+ - weave filter
568
+ - gblur filter
569
+ - avgblur filter
570
+ - sobel and prewitt filter
571
+ - MediaCodec HEVC/MPEG-4/VP8/VP9 decoding
572
+ - Meridian Lossless Packing (MLP) / TrueHD encoder
573
+ - Non-Local Means (nlmeans) denoising filter
574
+ - sdl2 output device and ffplay support
575
+ - sdl1 output device and sdl1 support removed
576
+ - extended mov edit list support
577
+ - libfaac encoder removed
578
+ - Matroska muxer now writes CRC32 elements by default in all Level 1 elements
579
+ - sidedata video and asidedata audio filter
580
+ - Changed mapping of rtp MIME type G726 to codec g726le.
581
+ - spec compliant VAAPI/DXVA2 VC-1 decoding of slices in frame-coded images
582
+
583
+
584
+ version 3.1:
585
+ - DXVA2-accelerated HEVC Main10 decoding
586
+ - fieldhint filter
587
+ - loop video filter and aloop audio filter
588
+ - Bob Weaver deinterlacing filter
589
+ - firequalizer filter
590
+ - datascope filter
591
+ - bench and abench filters
592
+ - ciescope filter
593
+ - protocol blacklisting API
594
+ - MediaCodec H264 decoding
595
+ - VC-2 HQ RTP payload format (draft v1) depacketizer and packetizer
596
+ - VP9 RTP payload format (draft v2) packetizer
597
+ - AudioToolbox audio decoders
598
+ - AudioToolbox audio encoders
599
+ - coreimage filter (GPU based image filtering on OSX)
600
+ - libdcadec removed
601
+ - bitstream filter for extracting DTS core
602
+ - ADPCM IMA DAT4 decoder
603
+ - musx demuxer
604
+ - aix demuxer
605
+ - remap filter
606
+ - hash and framehash muxers
607
+ - colorspace filter
608
+ - hdcd filter
609
+ - readvitc filter
610
+ - VAAPI-accelerated format conversion and scaling
611
+ - libnpp/CUDA-accelerated format conversion and scaling
612
+ - Duck TrueMotion 2.0 Real Time decoder
613
+ - Wideband Single-bit Data (WSD) demuxer
614
+ - VAAPI-accelerated H.264/HEVC/MJPEG encoding
615
+ - DTS Express (LBR) decoder
616
+ - Generic OpenMAX IL encoder with support for Raspberry Pi
617
+ - IFF ANIM demuxer & decoder
618
+ - Direct Stream Transfer (DST) decoder
619
+ - loudnorm filter
620
+ - MTAF demuxer and decoder
621
+ - MagicYUV decoder
622
+ - OpenExr improvements (tile data and B44/B44A support)
623
+ - BitJazz SheerVideo decoder
624
+ - CUDA CUVID H264/HEVC decoder
625
+ - 10-bit depth support in native utvideo decoder
626
+ - libutvideo wrapper removed
627
+ - YUY2 Lossless Codec decoder
628
+ - VideoToolbox H.264 encoder
629
+
630
+
631
+ version 3.0:
632
+ - Common Encryption (CENC) MP4 encoding and decoding support
633
+ - DXV decoding
634
+ - extrastereo filter
635
+ - ocr filter
636
+ - alimiter filter
637
+ - stereowiden filter
638
+ - stereotools filter
639
+ - rubberband filter
640
+ - tremolo filter
641
+ - agate filter
642
+ - chromakey filter
643
+ - maskedmerge filter
644
+ - Screenpresso SPV1 decoding
645
+ - chromaprint fingerprinting muxer
646
+ - ffplay dynamic volume control
647
+ - displace filter
648
+ - selectivecolor filter
649
+ - extensive native AAC encoder improvements and removal of experimental flag
650
+ - ADPCM PSX decoder
651
+ - 3dostr, dcstr, fsb, genh, vag, xvag, ads, msf, svag & vpk demuxer
652
+ - zscale filter
653
+ - wve demuxer
654
+ - zero-copy Intel QSV transcoding in ffmpeg
655
+ - shuffleframes filter
656
+ - SDX2 DPCM decoder
657
+ - vibrato filter
658
+ - innoHeim/Rsupport Screen Capture Codec decoder
659
+ - ADPCM AICA decoder
660
+ - Interplay ACM demuxer and audio decoder
661
+ - XMA1 & XMA2 decoder
662
+ - realtime filter
663
+ - anoisesrc audio filter source
664
+ - IVR demuxer
665
+ - compensationdelay filter
666
+ - acompressor filter
667
+ - support encoding 16-bit RLE SGI images
668
+ - apulsator filter
669
+ - sidechaingate audio filter
670
+ - mipsdspr1 option has been renamed to mipsdsp
671
+ - aemphasis filter
672
+ - mips32r5 option has been removed
673
+ - mips64r6 option has been removed
674
+ - DXVA2-accelerated VP9 decoding
675
+ - SOFAlizer: virtual binaural acoustics filter
676
+ - VAAPI VP9 hwaccel
677
+ - audio high-order multiband parametric equalizer
678
+ - automatic bitstream filtering
679
+ - showspectrumpic filter
680
+ - libstagefright support removed
681
+ - spectrumsynth filter
682
+ - ahistogram filter
683
+ - only seek with the right mouse button in ffplay
684
+ - toggle full screen when double-clicking with the left mouse button in ffplay
685
+ - afftfilt filter
686
+ - convolution filter
687
+ - libquvi support removed
688
+ - support for dvaudio in wav and avi
689
+ - libaacplus and libvo-aacenc support removed
690
+ - Cineform HD decoder
691
+ - new DCA decoder with full support for DTS-HD extensions
692
+ - significant performance improvements in Windows Television (WTV) demuxer
693
+ - nnedi deinterlacer
694
+ - streamselect video and astreamselect audio filter
695
+ - swaprect filter
696
+ - metadata video and ametadata audio filter
697
+ - SMPTE VC-2 HQ profile support for the Dirac decoder
698
+ - SMPTE VC-2 native encoder supporting the HQ profile
699
+
700
+
701
+ version 2.8:
702
+ - colorkey video filter
703
+ - BFSTM/BCSTM demuxer
704
+ - little-endian ADPCM_THP decoder
705
+ - Hap decoder and encoder
706
+ - DirectDraw Surface image/texture decoder
707
+ - ssim filter
708
+ - optional new ASF demuxer
709
+ - showvolume filter
710
+ - Many improvements to the JPEG 2000 decoder
711
+ - Go2Meeting decoding support
712
+ - adrawgraph audio and drawgraph video filter
713
+ - removegrain video filter
714
+ - Intel QSV-accelerated MPEG-2 video and HEVC encoding
715
+ - Intel QSV-accelerated MPEG-2 video and HEVC decoding
716
+ - Intel QSV-accelerated VC-1 video decoding
717
+ - libkvazaar HEVC encoder
718
+ - erosion, dilation, deflate and inflate video filters
719
+ - Dynamic Audio Normalizer as dynaudnorm filter
720
+ - Reverse video and areverse audio filter
721
+ - Random filter
722
+ - deband filter
723
+ - AAC fixed-point decoding
724
+ - sidechaincompress audio filter
725
+ - bitstream filter for converting HEVC from MP4 to Annex B
726
+ - acrossfade audio filter
727
+ - allyuv and allrgb video sources
728
+ - atadenoise video filter
729
+ - OS X VideoToolbox support
730
+ - aphasemeter filter
731
+ - showfreqs filter
732
+ - vectorscope filter
733
+ - waveform filter
734
+ - hstack and vstack filter
735
+ - Support DNx100 (1440x1080@8)
736
+ - VAAPI hevc hwaccel
737
+ - VDPAU hevc hwaccel
738
+ - framerate filter
739
+ - Switched default encoders for webm to VP9 and Opus
740
+ - Removed experimental flag from the JPEG 2000 encoder
741
+
742
+
743
+ version 2.7:
744
+ - FFT video filter
745
+ - TDSC decoder
746
+ - DTS lossless extension (XLL) decoding (not lossless, disabled by default)
747
+ - showwavespic filter
748
+ - DTS decoding through libdcadec
749
+ - Drop support for nvenc API before 5.0
750
+ - nvenc HEVC encoder
751
+ - Detelecine filter
752
+ - Intel QSV-accelerated H.264 encoding
753
+ - MMAL-accelerated H.264 decoding
754
+ - basic APNG encoder and muxer with default extension "apng"
755
+ - unpack DivX-style packed B-frames in MPEG-4 bitstream filter
756
+ - WebM Live Chunk Muxer
757
+ - nvenc level and tier options
758
+ - chorus filter
759
+ - Canopus HQ/HQA decoder
760
+ - Automatically rotate videos based on metadata in ffmpeg
761
+ - improved Quickdraw compatibility
762
+ - VP9 high bit-depth and extended colorspaces decoding support
763
+ - WebPAnimEncoder API when available for encoding and muxing WebP
764
+ - Direct3D11-accelerated decoding
765
+ - Support Secure Transport
766
+ - Multipart JPEG demuxer
767
+
768
+
769
+ version 2.6:
770
+ - nvenc encoder
771
+ - 10bit spp filter
772
+ - colorlevels filter
773
+ - RIFX format for *.wav files
774
+ - RTP/mpegts muxer
775
+ - non continuous cache protocol support
776
+ - tblend filter
777
+ - cropdetect support for non 8bpp, absolute (if limit >= 1) and relative (if limit < 1.0) threshold
778
+ - Camellia symmetric block cipher
779
+ - OpenH264 encoder wrapper
780
+ - VOC seeking support
781
+ - Closed caption Decoder
782
+ - fspp, uspp, pp7 MPlayer postprocessing filters ported to native filters
783
+ - showpalette filter
784
+ - Twofish symmetric block cipher
785
+ - Support DNx100 (960x720@8)
786
+ - eq2 filter ported from libmpcodecs as eq filter
787
+ - removed libmpcodecs
788
+ - Changed default DNxHD colour range in QuickTime .mov derivatives to mpeg range
789
+ - ported softpulldown filter from libmpcodecs as repeatfields filter
790
+ - dcshift filter
791
+ - RTP depacketizer for loss tolerant payload format for MP3 audio (RFC 5219)
792
+ - RTP depacketizer for AC3 payload format (RFC 4184)
793
+ - palettegen and paletteuse filters
794
+ - VP9 RTP payload format (draft 0) experimental depacketizer
795
+ - RTP depacketizer for DV (RFC 6469)
796
+ - DXVA2-accelerated HEVC decoding
797
+ - AAC ELD 480 decoding
798
+ - Intel QSV-accelerated H.264 decoding
799
+ - DSS SP decoder and DSS demuxer
800
+ - Fix stsd atom corruption in DNxHD QuickTimes
801
+ - Canopus HQX decoder
802
+ - RTP depacketization of T.140 text (RFC 4103)
803
+ - Port MIPS optimizations to 64-bit
804
+
805
+
806
+ version 2.5:
807
+ - HEVC/H.265 RTP payload format (draft v6) packetizer
808
+ - SUP/PGS subtitle demuxer
809
+ - ffprobe -show_pixel_formats option
810
+ - CAST128 symmetric block cipher, ECB mode
811
+ - STL subtitle demuxer and decoder
812
+ - libutvideo YUV 4:2:2 10bit support
813
+ - XCB-based screen-grabber
814
+ - UDP-Lite support (RFC 3828)
815
+ - xBR scaling filter
816
+ - AVFoundation screen capturing support
817
+ - ffserver supports codec private options
818
+ - creating DASH compatible fragmented MP4, MPEG-DASH segmenting muxer
819
+ - WebP muxer with animated WebP support
820
+ - zygoaudio decoding support
821
+ - APNG demuxer
822
+ - postproc visualization support
823
+
824
+
825
+ version 2.4:
826
+ - Icecast protocol
827
+ - ported lenscorrection filter from frei0r filter
828
+ - large optimizations in dctdnoiz to make it usable
829
+ - ICY metadata are now requested by default with the HTTP protocol
830
+ - support for using metadata in stream specifiers in fftools
831
+ - LZMA compression support in TIFF decoder
832
+ - H.261 RTP payload format (RFC 4587) depacketizer and experimental packetizer
833
+ - HEVC/H.265 RTP payload format (draft v6) depacketizer
834
+ - added codecview filter to visualize information exported by some codecs
835
+ - Matroska 3D support thorugh side data
836
+ - HTML generation using texi2html is deprecated in favor of makeinfo/texi2any
837
+ - silenceremove filter
838
+
839
+
840
+ version 2.3:
841
+ - AC3 fixed-point decoding
842
+ - shuffleplanes filter
843
+ - subfile protocol
844
+ - Phantom Cine demuxer
845
+ - replaygain data export
846
+ - VP7 video decoder
847
+ - Alias PIX image encoder and decoder
848
+ - Improvements to the BRender PIX image decoder
849
+ - Improvements to the XBM decoder
850
+ - QTKit input device
851
+ - improvements to OpenEXR image decoder
852
+ - support decoding 16-bit RLE SGI images
853
+ - GDI screen grabbing for Windows
854
+ - alternative rendition support for HTTP Live Streaming
855
+ - AVFoundation input device
856
+ - Direct Stream Digital (DSD) decoder
857
+ - Magic Lantern Video (MLV) demuxer
858
+ - On2 AVC (Audio for Video) decoder
859
+ - support for decoding through DXVA2 in ffmpeg
860
+ - libbs2b-based stereo-to-binaural audio filter
861
+ - libx264 reference frames count limiting depending on level
862
+ - native Opus decoder
863
+ - display matrix export and rotation API
864
+ - WebVTT encoder
865
+ - showcqt multimedia filter
866
+ - zoompan filter
867
+ - signalstats filter
868
+ - hqx filter (hq2x, hq3x, hq4x)
869
+ - flanger filter
870
+ - Image format auto-detection
871
+ - LRC demuxer and muxer
872
+ - Samba protocol (via libsmbclient)
873
+ - WebM DASH Manifest muxer
874
+ - libfribidi support in drawtext
875
+
876
+
877
+ version 2.2:
878
+
879
+ - HNM version 4 demuxer and video decoder
880
+ - Live HDS muxer
881
+ - setsar/setdar filters now support variables in ratio expressions
882
+ - elbg filter
883
+ - string validation in ffprobe
884
+ - support for decoding through VDPAU in ffmpeg (the -hwaccel option)
885
+ - complete Voxware MetaSound decoder
886
+ - remove mp3_header_compress bitstream filter
887
+ - Windows resource files for shared libraries
888
+ - aeval filter
889
+ - stereoscopic 3d metadata handling
890
+ - WebP encoding via libwebp
891
+ - ATRAC3+ decoder
892
+ - VP8 in Ogg demuxing
893
+ - side & metadata support in NUT
894
+ - framepack filter
895
+ - XYZ12 rawvideo support in NUT
896
+ - Exif metadata support in WebP decoder
897
+ - OpenGL device
898
+ - Use metadata_header_padding to control padding in ID3 tags (currently used in
899
+ MP3, AIFF, and OMA files), FLAC header, and the AVI "junk" block.
900
+ - Mirillis FIC video decoder
901
+ - Support DNx444
902
+ - libx265 encoder
903
+ - dejudder filter
904
+ - Autodetect VDA like all other hardware accelerations
905
+ - aliases and defaults for Ogg subtypes (opus, spx)
906
+
907
+
908
+ version 2.1:
909
+
910
+ - aecho filter
911
+ - perspective filter ported from libmpcodecs
912
+ - ffprobe -show_programs option
913
+ - compand filter
914
+ - RTMP seek support
915
+ - when transcoding with ffmpeg (i.e. not streamcopying), -ss is now accurate
916
+ even when used as an input option. Previous behavior can be restored with
917
+ the -noaccurate_seek option.
918
+ - ffmpeg -t option can now be used for inputs, to limit the duration of
919
+ data read from an input file
920
+ - incomplete Voxware MetaSound decoder
921
+ - read EXIF metadata from JPEG
922
+ - DVB teletext decoder
923
+ - phase filter ported from libmpcodecs
924
+ - w3fdif filter
925
+ - Opus support in Matroska
926
+ - FFV1 version 1.3 is stable and no longer experimental
927
+ - FFV1: YUVA(444,422,420) 9, 10 and 16 bit support
928
+ - changed DTS stream id in lavf mpeg ps muxer from 0x8a to 0x88, to be
929
+ more consistent with other muxers.
930
+ - adelay filter
931
+ - pullup filter ported from libmpcodecs
932
+ - ffprobe -read_intervals option
933
+ - Lossless and alpha support for WebP decoder
934
+ - Error Resilient AAC syntax (ER AAC LC) decoding
935
+ - Low Delay AAC (ER AAC LD) decoding
936
+ - mux chapters in ASF files
937
+ - SFTP protocol (via libssh)
938
+ - libx264: add ability to encode in YUVJ422P and YUVJ444P
939
+ - Fraps: use BT.709 colorspace by default for yuv, as reference fraps decoder does
940
+ - make decoding alpha optional for prores, ffv1 and vp6 by setting
941
+ the skip_alpha flag.
942
+ - ladspa wrapper filter
943
+ - native VP9 decoder
944
+ - dpx parser
945
+ - max_error_rate parameter in ffmpeg
946
+ - PulseAudio output device
947
+ - ReplayGain scanner
948
+ - Enhanced Low Delay AAC (ER AAC ELD) decoding (no LD SBR support)
949
+ - Linux framebuffer output device
950
+ - HEVC decoder
951
+ - raw HEVC, HEVC in MOV/MP4, HEVC in Matroska, HEVC in MPEG-TS demuxing
952
+ - mergeplanes filter
953
+
954
+
955
+ version 2.0:
956
+
957
+ - curves filter
958
+ - reference-counting for AVFrame and AVPacket data
959
+ - ffmpeg now fails when input options are used for output file
960
+ or vice versa
961
+ - support for Monkey's Audio versions from 3.93
962
+ - perms and aperms filters
963
+ - audio filtering support in ffplay
964
+ - 10% faster aac encoding on x86 and MIPS
965
+ - sine audio filter source
966
+ - WebP demuxing and decoding support
967
+ - ffmpeg options -filter_script and -filter_complex_script, which allow a
968
+ filtergraph description to be read from a file
969
+ - OpenCL support
970
+ - audio phaser filter
971
+ - separatefields filter
972
+ - libquvi demuxer
973
+ - uniform options syntax across all filters
974
+ - telecine filter
975
+ - interlace filter
976
+ - smptehdbars source
977
+ - inverse telecine filters (fieldmatch and decimate)
978
+ - colorbalance filter
979
+ - colorchannelmixer filter
980
+ - The matroska demuxer can now output proper verbatim ASS packets. It will
981
+ become the default at the next libavformat major bump.
982
+ - decent native animated GIF encoding
983
+ - asetrate filter
984
+ - interleave filter
985
+ - timeline editing with filters
986
+ - vidstabdetect and vidstabtransform filters for video stabilization using
987
+ the vid.stab library
988
+ - astats filter
989
+ - trim and atrim filters
990
+ - ffmpeg -t and -ss (output-only) options are now sample-accurate when
991
+ transcoding audio
992
+ - Matroska muxer can now put the index at the beginning of the file.
993
+ - extractplanes filter
994
+ - avectorscope filter
995
+ - ADPCM DTK decoder
996
+ - ADP demuxer
997
+ - RSD demuxer
998
+ - RedSpark demuxer
999
+ - ADPCM IMA Radical decoder
1000
+ - zmq filters
1001
+ - DCT denoiser filter (dctdnoiz)
1002
+ - Wavelet denoiser filter ported from libmpcodecs as owdenoise (formerly "ow")
1003
+ - Apple Intermediate Codec decoder
1004
+ - Escape 130 video decoder
1005
+ - FTP protocol support
1006
+ - V4L2 output device
1007
+ - 3D LUT filter (lut3d)
1008
+ - SMPTE 302M audio encoder
1009
+ - support for slice multithreading in libavfilter
1010
+ - Hald CLUT support (generation and filtering)
1011
+ - VC-1 interlaced B-frame support
1012
+ - support for WavPack muxing (raw and in Matroska)
1013
+ - XVideo output device
1014
+ - vignette filter
1015
+ - True Audio (TTA) encoder
1016
+ - Go2Webinar decoder
1017
+ - mcdeint filter ported from libmpcodecs
1018
+ - sab filter ported from libmpcodecs
1019
+ - ffprobe -show_chapters option
1020
+ - WavPack encoding through libwavpack
1021
+ - rotate filter
1022
+ - spp filter ported from libmpcodecs
1023
+ - libgme support
1024
+ - psnr filter
1025
+
1026
+
1027
+ version 1.2:
1028
+
1029
+ - VDPAU hardware acceleration through normal hwaccel
1030
+ - SRTP support
1031
+ - Error diffusion dither in Swscale
1032
+ - Chained Ogg support
1033
+ - Theora Midstream reconfiguration support
1034
+ - EVRC decoder
1035
+ - audio fade filter
1036
+ - filtering audio with unknown channel layout
1037
+ - allpass, bass, bandpass, bandreject, biquad, equalizer, highpass, lowpass
1038
+ and treble audio filter
1039
+ - improved showspectrum filter, with multichannel support and sox-like colors
1040
+ - histogram filter
1041
+ - tee muxer
1042
+ - il filter ported from libmpcodecs
1043
+ - support ID3v2 tags in ASF files
1044
+ - encrypted TTA stream decoding support
1045
+ - RF64 support in WAV muxer
1046
+ - noise filter ported from libmpcodecs
1047
+ - Subtitles character encoding conversion
1048
+ - blend filter
1049
+ - stereo3d filter ported from libmpcodecs
1050
+
1051
+
1052
+ version 1.1:
1053
+
1054
+ - stream disposition information printing in ffprobe
1055
+ - filter for loudness analysis following EBU R128
1056
+ - Opus encoder using libopus
1057
+ - ffprobe -select_streams option
1058
+ - Pinnacle TARGA CineWave YUV16 decoder
1059
+ - TAK demuxer, decoder and parser
1060
+ - DTS-HD demuxer
1061
+ - remove -same_quant, it hasn't worked for years
1062
+ - FFM2 support
1063
+ - X-Face image encoder and decoder
1064
+ - 24-bit FLAC encoding
1065
+ - multi-channel ALAC encoding up to 7.1
1066
+ - metadata (INFO tag) support in WAV muxer
1067
+ - subtitles raw text decoder
1068
+ - support for building DLLs using MSVC
1069
+ - LVF demuxer
1070
+ - ffescape tool
1071
+ - metadata (info chunk) support in CAF muxer
1072
+ - field filter ported from libmpcodecs
1073
+ - AVR demuxer
1074
+ - geq filter ported from libmpcodecs
1075
+ - remove ffserver daemon mode
1076
+ - AST muxer/demuxer
1077
+ - new expansion syntax for drawtext
1078
+ - BRender PIX image decoder
1079
+ - ffprobe -show_entries option
1080
+ - ffprobe -sections option
1081
+ - ADPCM IMA Dialogic decoder
1082
+ - BRSTM demuxer
1083
+ - animated GIF decoder and demuxer
1084
+ - PVF demuxer
1085
+ - subtitles filter
1086
+ - IRCAM muxer/demuxer
1087
+ - Paris Audio File demuxer
1088
+ - Virtual concatenation demuxer
1089
+ - VobSub demuxer
1090
+ - JSON captions for TED talks decoding support
1091
+ - SOX Resampler support in libswresample
1092
+ - aselect filter
1093
+ - SGI RLE 8-bit / Silicon Graphics RLE 8-bit video decoder
1094
+ - Silicon Graphics Motion Video Compressor 1 & 2 decoder
1095
+ - Silicon Graphics Movie demuxer
1096
+ - apad filter
1097
+ - Resolution & pixel format change support with multithreading for H.264
1098
+ - documentation split into per-component manuals
1099
+ - pp (postproc) filter ported from MPlayer
1100
+ - NIST Sphere demuxer
1101
+ - MPL2, VPlayer, MPlayer, AQTitle, PJS and SubViewer v1 subtitles demuxers and decoders
1102
+ - Sony Wave64 muxer
1103
+ - adobe and limelight publisher authentication in RTMP
1104
+ - data: URI scheme
1105
+ - support building on the Plan 9 operating system
1106
+ - kerndeint filter ported from MPlayer
1107
+ - histeq filter ported from VirtualDub
1108
+ - Megalux Frame demuxer
1109
+ - 012v decoder
1110
+ - Improved AVC Intra decoding support
1111
+
1112
+
1113
+ version 1.0:
1114
+
1115
+ - INI and flat output in ffprobe
1116
+ - Scene detection in libavfilter
1117
+ - Indeo Audio decoder
1118
+ - channelsplit audio filter
1119
+ - setnsamples audio filter
1120
+ - atempo filter
1121
+ - ffprobe -show_data option
1122
+ - RTMPT protocol support
1123
+ - iLBC encoding/decoding via libilbc
1124
+ - Microsoft Screen 1 decoder
1125
+ - join audio filter
1126
+ - audio channel mapping filter
1127
+ - Microsoft ATC Screen decoder
1128
+ - RTSP listen mode
1129
+ - TechSmith Screen Codec 2 decoder
1130
+ - AAC encoding via libfdk-aac
1131
+ - Microsoft Expression Encoder Screen decoder
1132
+ - RTMPS protocol support
1133
+ - RTMPTS protocol support
1134
+ - RTMPE protocol support
1135
+ - RTMPTE protocol support
1136
+ - showwaves and showspectrum filter
1137
+ - LucasArts SMUSH SANM playback support
1138
+ - LucasArts SMUSH VIMA audio decoder (ADPCM)
1139
+ - LucasArts SMUSH demuxer
1140
+ - SAMI, RealText and SubViewer demuxers and decoders
1141
+ - Heart Of Darkness PAF playback support
1142
+ - iec61883 device
1143
+ - asettb filter
1144
+ - new option: -progress
1145
+ - 3GPP Timed Text encoder/decoder
1146
+ - GeoTIFF decoder support
1147
+ - ffmpeg -(no)stdin option
1148
+ - Opus decoder using libopus
1149
+ - caca output device using libcaca
1150
+ - alphaextract and alphamerge filters
1151
+ - concat filter
1152
+ - flite filter
1153
+ - Canopus Lossless Codec decoder
1154
+ - bitmap subtitles in filters (experimental and temporary)
1155
+ - MP2 encoding via TwoLAME
1156
+ - bmp parser
1157
+ - smptebars source
1158
+ - asetpts filter
1159
+ - hue filter
1160
+ - ICO muxer
1161
+ - SubRip encoder and decoder without embedded timing
1162
+ - edge detection filter
1163
+ - framestep filter
1164
+ - ffmpeg -shortest option is now per-output file
1165
+ -pass and -passlogfile are now per-output stream
1166
+ - volume measurement filter
1167
+ - Ut Video encoder
1168
+ - Microsoft Screen 2 decoder
1169
+ - smartblur filter ported from MPlayer
1170
+ - CPiA decoder
1171
+ - decimate filter ported from MPlayer
1172
+ - RTP depacketization of JPEG
1173
+ - Smooth Streaming live segmenter muxer
1174
+ - F4V muxer
1175
+ - sendcmd and asendcmd filters
1176
+ - WebVTT demuxer and decoder (simple tags supported)
1177
+ - RTP packetization of JPEG
1178
+ - faststart option in the MOV/MP4 muxer
1179
+ - support for building with MSVC
1180
+
1181
+
1182
+ version 0.11:
1183
+
1184
+ - Fixes: CVE-2012-2772, CVE-2012-2774, CVE-2012-2775, CVE-2012-2776, CVE-2012-2777,
1185
+ CVE-2012-2779, CVE-2012-2782, CVE-2012-2783, CVE-2012-2784, CVE-2012-2785,
1186
+ CVE-2012-2786, CVE-2012-2787, CVE-2012-2788, CVE-2012-2789, CVE-2012-2790,
1187
+ CVE-2012-2791, CVE-2012-2792, CVE-2012-2793, CVE-2012-2794, CVE-2012-2795,
1188
+ CVE-2012-2796, CVE-2012-2797, CVE-2012-2798, CVE-2012-2799, CVE-2012-2800,
1189
+ CVE-2012-2801, CVE-2012-2802, CVE-2012-2803, CVE-2012-2804,
1190
+ - v408 Quicktime and Microsoft AYUV Uncompressed 4:4:4:4 encoder and decoder
1191
+ - setfield filter
1192
+ - CDXL demuxer and decoder
1193
+ - Apple ProRes encoder
1194
+ - ffprobe -count_packets and -count_frames options
1195
+ - Sun Rasterfile Encoder
1196
+ - ID3v2 attached pictures reading and writing
1197
+ - WMA Lossless decoder
1198
+ - bluray protocol
1199
+ - blackdetect filter
1200
+ - libutvideo encoder wrapper (--enable-libutvideo)
1201
+ - swapuv filter
1202
+ - bbox filter
1203
+ - XBM encoder and decoder
1204
+ - RealAudio Lossless decoder
1205
+ - ZeroCodec decoder
1206
+ - tile video filter
1207
+ - Metal Gear Solid: The Twin Snakes demuxer
1208
+ - OpenEXR image decoder
1209
+ - removelogo filter
1210
+ - drop support for ffmpeg without libavfilter
1211
+ - drawtext video filter: fontconfig support
1212
+ - ffmpeg -benchmark_all option
1213
+ - super2xsai filter ported from libmpcodecs
1214
+ - add libavresample audio conversion library for compatibility
1215
+ - MicroDVD decoder
1216
+ - Avid Meridien (AVUI) encoder and decoder
1217
+ - accept + prefix to -pix_fmt option to disable automatic conversions.
1218
+ - complete audio filtering in libavfilter and ffmpeg
1219
+ - add fps filter
1220
+ - vorbis parser
1221
+ - png parser
1222
+ - audio mix filter
1223
+ - ffv1: support (draft) version 1.3
1224
+
1225
+
1226
+ version 0.10:
1227
+
1228
+ - Fixes: CVE-2011-3929, CVE-2011-3934, CVE-2011-3935, CVE-2011-3936,
1229
+ CVE-2011-3937, CVE-2011-3940, CVE-2011-3941, CVE-2011-3944,
1230
+ CVE-2011-3945, CVE-2011-3946, CVE-2011-3947, CVE-2011-3949,
1231
+ CVE-2011-3950, CVE-2011-3951, CVE-2011-3952
1232
+ - v410 Quicktime Uncompressed 4:4:4 10-bit encoder and decoder
1233
+ - SBaGen (SBG) binaural beats script demuxer
1234
+ - OpenMG Audio muxer
1235
+ - Timecode extraction in DV and MOV
1236
+ - thumbnail video filter
1237
+ - XML output in ffprobe
1238
+ - asplit audio filter
1239
+ - tinterlace video filter
1240
+ - astreamsync audio filter
1241
+ - amerge audio filter
1242
+ - ISMV (Smooth Streaming) muxer
1243
+ - GSM audio parser
1244
+ - SMJPEG muxer
1245
+ - XWD encoder and decoder
1246
+ - Automatic thread count based on detection number of (available) CPU cores
1247
+ - y41p Brooktree Uncompressed 4:1:1 12-bit encoder and decoder
1248
+ - ffprobe -show_error option
1249
+ - Avid 1:1 10-bit RGB Packer codec
1250
+ - v308 Quicktime Uncompressed 4:4:4 encoder and decoder
1251
+ - yuv4 libquicktime packed 4:2:0 encoder and decoder
1252
+ - ffprobe -show_frames option
1253
+ - silencedetect audio filter
1254
+ - ffprobe -show_program_version, -show_library_versions, -show_versions options
1255
+ - rv34: frame-level multi-threading
1256
+ - optimized iMDCT transform on x86 using SSE for for mpegaudiodec
1257
+ - Improved PGS subtitle decoder
1258
+ - dumpgraph option to lavfi device
1259
+ - r210 and r10k encoders
1260
+ - ffwavesynth decoder
1261
+ - aviocat tool
1262
+ - ffeval tool
1263
+ - support encoding and decoding 4-channel SGI images
1264
+
1265
+
1266
+ version 0.9:
1267
+
1268
+ - openal input device added
1269
+ - boxblur filter added
1270
+ - BWF muxer
1271
+ - Flash Screen Video 2 decoder
1272
+ - lavfi input device added
1273
+ - added avconv, which is almost the same for now, except
1274
+ for a few incompatible changes in the options, which will hopefully make them
1275
+ easier to use. The changes are:
1276
+ * The options placement is now strictly enforced! While in theory the
1277
+ options for ffmpeg should be given in [input options] -i INPUT [output
1278
+ options] OUTPUT order, in practice it was possible to give output options
1279
+ before the -i and it mostly worked. Except when it didn't - the behavior was
1280
+ a bit inconsistent. In avconv, it is not possible to mix input and output
1281
+ options. All non-global options are reset after an input or output filename.
1282
+ * All per-file options are now truly per-file - they apply only to the next
1283
+ input or output file and specifying different values for different files
1284
+ will now work properly (notably -ss and -t options).
1285
+ * All per-stream options are now truly per-stream - it is possible to
1286
+ specify which stream(s) should a given option apply to. See the Stream
1287
+ specifiers section in the avconv manual for details.
1288
+ * In ffmpeg some options (like -newvideo/-newaudio/...) are irregular in the
1289
+ sense that they're specified after the output filename instead of before,
1290
+ like all other options. In avconv this irregularity is removed, all options
1291
+ apply to the next input or output file.
1292
+ * -newvideo/-newaudio/-newsubtitle options were removed. Not only were they
1293
+ irregular and highly confusing, they were also redundant. In avconv the -map
1294
+ option will create new streams in the output file and map input streams to
1295
+ them. E.g. avconv -i INPUT -map 0 OUTPUT will create an output stream for
1296
+ each stream in the first input file.
1297
+ * The -map option now has slightly different and more powerful syntax:
1298
+ + Colons (':') are used to separate file index/stream type/stream index
1299
+ instead of dots. Comma (',') is used to separate the sync stream instead
1300
+ of colon.. This is done for consistency with other options.
1301
+ + It's possible to specify stream type. E.g. -map 0:a:2 creates an
1302
+ output stream from the third input audio stream.
1303
+ + Omitting the stream index now maps all the streams of the given type,
1304
+ not just the first. E.g. -map 0:s creates output streams for all the
1305
+ subtitle streams in the first input file.
1306
+ + Since -map can now match multiple streams, negative mappings were
1307
+ introduced. Negative mappings disable some streams from an already
1308
+ defined map. E.g. '-map 0 -map -0:a:1' means 'create output streams for
1309
+ all the stream in the first input file, except for the second audio
1310
+ stream'.
1311
+ * There is a new option -c (or -codec) for choosing the decoder/encoder to
1312
+ use, which makes it possible to precisely specify target stream(s) consistently with
1313
+ other options. E.g. -c:v lib264 sets the codec for all video streams, -c:a:0
1314
+ libvorbis sets the codec for the first audio stream and -c copy copies all
1315
+ the streams without reencoding. Old -vcodec/-acodec/-scodec options are now
1316
+ aliases to -c:v/a/s
1317
+ * It is now possible to precisely specify which stream should an AVOption
1318
+ apply to. E.g. -b:v:0 2M sets the bitrate for the first video stream, while
1319
+ -b:a 128k sets the bitrate for all audio streams. Note that the old -ab 128k
1320
+ syntax is deprecated and will stop working soon.
1321
+ * -map_chapters now takes only an input file index and applies to the next
1322
+ output file. This is consistent with how all the other options work.
1323
+ * -map_metadata now takes only an input metadata specifier and applies to
1324
+ the next output file. Output metadata specifier is now part of the option
1325
+ name, similarly to the AVOptions/map/codec feature above.
1326
+ * -metadata can now be used to set metadata on streams and chapters, e.g.
1327
+ -metadata:s:1 language=eng sets the language of the first stream to 'eng'.
1328
+ This made -vlang/-alang/-slang options redundant, so they were removed.
1329
+ * -qscale option now uses stream specifiers and applies to all streams, not
1330
+ just video. I.e. plain -qscale number would now apply to all streams. To get
1331
+ the old behavior, use -qscale:v. Also there is now a shortcut -q for -qscale
1332
+ and -aq is now an alias for -q:a.
1333
+ * -vbsf/-absf/-sbsf options were removed and replaced by a -bsf option which
1334
+ uses stream specifiers. Use -bsf:v/a/s instead of the old options.
1335
+ * -itsscale option now uses stream specifiers, so its argument is only the
1336
+ scale parameter.
1337
+ * -intra option was removed, use -g 0 for the same effect.
1338
+ * -psnr option was removed, use -flags +psnr for the same effect.
1339
+ * -vf option is now an alias to the new -filter option, which uses stream specifiers.
1340
+ * -vframes/-aframes/-dframes options are now aliases to the new -frames option.
1341
+ * -vtag/-atag/-stag options are now aliases to the new -tag option.
1342
+ - XMV demuxer
1343
+ - LOAS demuxer
1344
+ - ashowinfo filter added
1345
+ - Windows Media Image decoder
1346
+ - amovie source added
1347
+ - LATM muxer/demuxer
1348
+ - Speex encoder via libspeex
1349
+ - JSON output in ffprobe
1350
+ - WTV muxer
1351
+ - Optional C++ Support (needed for libstagefright)
1352
+ - H.264 Decoding on Android via Stagefright
1353
+ - Prores decoder
1354
+ - BIN/XBIN/ADF/IDF text file decoder
1355
+ - aconvert audio filter added
1356
+ - audio support to lavfi input device added
1357
+ - libcdio-paranoia input device for audio CD grabbing
1358
+ - Apple ProRes decoder
1359
+ - CELT in Ogg demuxing
1360
+ - G.723.1 demuxer and decoder
1361
+ - libmodplug support (--enable-libmodplug)
1362
+ - VC-1 interlaced decoding
1363
+ - libutvideo wrapper (--enable-libutvideo)
1364
+ - aevalsrc audio source added
1365
+ - Ut Video decoder
1366
+ - Speex encoding via libspeex
1367
+ - 4:2:2 H.264 decoding support
1368
+ - 4:2:2 and 4:4:4 H.264 encoding with libx264
1369
+ - Pulseaudio input device
1370
+ - Prores encoder
1371
+ - Video Decoder Acceleration (VDA) HWAccel module.
1372
+ - replacement Indeo 3 decoder
1373
+ - new ffmpeg option: -map_channel
1374
+ - volume audio filter added
1375
+ - earwax audio filter added
1376
+ - libv4l2 support (--enable-libv4l2)
1377
+ - TLS/SSL and HTTPS protocol support
1378
+ - AVOptions API rewritten and documented
1379
+ - most of CODEC_FLAG2_*, some CODEC_FLAG_* and many codec-specific fields in
1380
+ AVCodecContext deprecated. Codec private options should be used instead.
1381
+ - Properly working defaults in libx264 wrapper, support for native presets.
1382
+ - Encrypted OMA files support
1383
+ - Discworld II BMV decoding support
1384
+ - VBLE Decoder
1385
+ - OS X Video Decoder Acceleration (VDA) support
1386
+ - compact and csv output in ffprobe
1387
+ - pan audio filter
1388
+ - IFF Amiga Continuous Bitmap (ACBM) decoder
1389
+ - ass filter
1390
+ - CRI ADX audio format muxer and demuxer
1391
+ - Playstation Portable PMP format demuxer
1392
+ - Microsoft Windows ICO demuxer
1393
+ - life source
1394
+ - PCM format support in OMA demuxer
1395
+ - CLJR encoder
1396
+ - new option: -report
1397
+ - Dxtory capture format decoder
1398
+ - cellauto source
1399
+ - Simple segmenting muxer
1400
+ - Indeo 4 decoder
1401
+ - SMJPEG demuxer
1402
+
1403
+
1404
+ version 0.8:
1405
+
1406
+ - many many things we forgot because we rather write code than changelogs
1407
+ - WebM support in Matroska de/muxer
1408
+ - low overhead Ogg muxing
1409
+ - MMS-TCP support
1410
+ - VP8 de/encoding via libvpx
1411
+ - Demuxer for On2's IVF format
1412
+ - Pictor/PC Paint decoder
1413
+ - HE-AAC v2 decoder
1414
+ - HE-AAC v2 encoding with libaacplus
1415
+ - libfaad2 wrapper removed
1416
+ - DTS-ES extension (XCh) decoding support
1417
+ - native VP8 decoder
1418
+ - RTSP tunneling over HTTP
1419
+ - RTP depacketization of SVQ3
1420
+ - -strict inofficial replaced by -strict unofficial
1421
+ - ffplay -exitonkeydown and -exitonmousedown options added
1422
+ - native GSM / GSM MS decoder
1423
+ - RTP depacketization of QDM2
1424
+ - ANSI/ASCII art playback system
1425
+ - Lego Mindstorms RSO de/muxer
1426
+ - libavcore added (and subsequently removed)
1427
+ - SubRip subtitle file muxer and demuxer
1428
+ - Chinese AVS encoding via libxavs
1429
+ - ffprobe -show_packets option added
1430
+ - RTP packetization of Theora and Vorbis
1431
+ - RTP depacketization of MP4A-LATM
1432
+ - RTP packetization and depacketization of VP8
1433
+ - hflip filter
1434
+ - Apple HTTP Live Streaming demuxer
1435
+ - a64 codec
1436
+ - MMS-HTTP support
1437
+ - G.722 ADPCM audio encoder/decoder
1438
+ - R10k video decoder
1439
+ - ocv_smooth filter
1440
+ - frei0r wrapper filter
1441
+ - change crop filter syntax to width:height:x:y
1442
+ - make the crop filter accept parametric expressions
1443
+ - make ffprobe accept AVFormatContext options
1444
+ - yadif filter
1445
+ - blackframe filter
1446
+ - Demuxer for Leitch/Harris' VR native stream format (LXF)
1447
+ - RTP depacketization of the X-QT QuickTime format
1448
+ - SAP (Session Announcement Protocol, RFC 2974) muxer and demuxer
1449
+ - cropdetect filter
1450
+ - ffmpeg -crop* options removed
1451
+ - transpose filter added
1452
+ - ffmpeg -force_key_frames option added
1453
+ - demuxer for receiving raw rtp:// URLs without an SDP description
1454
+ - single stream LATM/LOAS decoder
1455
+ - setpts filter added
1456
+ - Win64 support for optimized x86 assembly functions
1457
+ - MJPEG/AVI1 to JPEG/JFIF bitstream filter
1458
+ - ASS subtitle encoder and decoder
1459
+ - IEC 61937 encapsulation for E-AC-3, TrueHD, DTS-HD (for HDMI passthrough)
1460
+ - overlay filter added
1461
+ - rename aspect filter to setdar, and pixelaspect to setsar
1462
+ - IEC 61937 demuxer
1463
+ - Mobotix .mxg demuxer
1464
+ - frei0r source added
1465
+ - hqdn3d filter added
1466
+ - RTP depacketization of QCELP
1467
+ - FLAC parser added
1468
+ - gradfun filter added
1469
+ - AMR-WB decoder
1470
+ - replace the ocv_smooth filter with a more generic ocv filter
1471
+ - Windows Televison (WTV) demuxer
1472
+ - FFmpeg metadata format muxer and demuxer
1473
+ - SubRip (srt) subtitle encoder and decoder
1474
+ - floating-point AC-3 encoder added
1475
+ - Lagarith decoder
1476
+ - ffmpeg -copytb option added
1477
+ - IVF muxer added
1478
+ - Wing Commander IV movies decoder added
1479
+ - movie source added
1480
+ - Bink version 'b' audio and video decoder
1481
+ - Bitmap Brothers JV playback system
1482
+ - Apple HTTP Live Streaming protocol handler
1483
+ - sndio support for playback and record
1484
+ - Linux framebuffer input device added
1485
+ - Chronomaster DFA decoder
1486
+ - DPX image encoder
1487
+ - MicroDVD subtitle file muxer and demuxer
1488
+ - Playstation Portable PMP format demuxer
1489
+ - fieldorder video filter added
1490
+ - AAC encoding via libvo-aacenc
1491
+ - AMR-WB encoding via libvo-amrwbenc
1492
+ - xWMA demuxer
1493
+ - Mobotix MxPEG decoder
1494
+ - VP8 frame-multithreading
1495
+ - NEON optimizations for VP8
1496
+ - Lots of deprecated API cruft removed
1497
+ - fft and imdct optimizations for AVX (Sandy Bridge) processors
1498
+ - showinfo filter added
1499
+ - SMPTE 302M AES3 audio decoder
1500
+ - Apple Core Audio Format muxer
1501
+ - 9 bits and 10 bits per sample support in the H.264 decoder
1502
+ - 9 bits and 10 bits FFV1 encoding / decoding
1503
+ - split filter added
1504
+ - select filter added
1505
+ - sdl output device added
1506
+ - libmpcodecs video filter support (3 times as many filters than before)
1507
+ - mpeg2 aspect ratio dection fixed
1508
+ - libxvid aspect pickiness fixed
1509
+ - Frame multithreaded decoding
1510
+ - E-AC-3 audio encoder
1511
+ - ac3enc: add channel coupling support
1512
+ - floating-point sample format support to the ac3, eac3, dca, aac, and vorbis decoders.
1513
+ - H264/MPEG frame-level multi-threading
1514
+ - All av_metadata_* functions renamed to av_dict_* and moved to libavutil
1515
+ - 4:4:4 H.264 decoding support
1516
+ - 10-bit H.264 optimizations for x86
1517
+ - lut, lutrgb, and lutyuv filters added
1518
+ - buffersink libavfilter sink added
1519
+ - Bump libswscale for recently reported ABI break
1520
+ - New J2K encoder (via OpenJPEG)
1521
+
1522
+
1523
+ version 0.7:
1524
+
1525
+ - all the changes for 0.8, but keeping API/ABI compatibility with the 0.6 release
1526
+
1527
+
1528
+ version 0.6:
1529
+
1530
+ - PB-frame decoding for H.263
1531
+ - deprecated vhook subsystem removed
1532
+ - deprecated old scaler removed
1533
+ - VQF demuxer
1534
+ - Alpha channel scaler
1535
+ - PCX encoder
1536
+ - RTP packetization of H.263
1537
+ - RTP packetization of AMR
1538
+ - RTP depacketization of Vorbis
1539
+ - CorePNG decoding support
1540
+ - Cook multichannel decoding support
1541
+ - introduced avlanguage helpers in libavformat
1542
+ - 8088flex TMV demuxer and decoder
1543
+ - per-stream language-tags extraction in asfdec
1544
+ - V210 decoder and encoder
1545
+ - remaining GPL parts in AC-3 decoder converted to LGPL
1546
+ - QCP demuxer
1547
+ - SoX native format muxer and demuxer
1548
+ - AMR-NB decoding/encoding, AMR-WB decoding via OpenCORE libraries
1549
+ - DPX image decoder
1550
+ - Electronic Arts Madcow decoder
1551
+ - DivX (XSUB) subtitle encoder
1552
+ - nonfree libamr support for AMR-NB/WB decoding/encoding removed
1553
+ - experimental AAC encoder
1554
+ - RTP depacketization of ASF and RTSP from WMS servers
1555
+ - RTMP support in libavformat
1556
+ - noX handling for OPT_BOOL X options
1557
+ - Wave64 demuxer
1558
+ - IEC-61937 compatible Muxer
1559
+ - TwinVQ decoder
1560
+ - Bluray (PGS) subtitle decoder
1561
+ - LPCM support in MPEG-TS (HDMV RID as found on Blu-ray disks)
1562
+ - WMA Pro decoder
1563
+ - Core Audio Format demuxer
1564
+ - ATRAC1 decoder
1565
+ - MD STUDIO audio demuxer
1566
+ - RF64 support in WAV demuxer
1567
+ - MPEG-4 Audio Lossless Coding (ALS) decoder
1568
+ - -formats option split into -formats, -codecs, -bsfs, and -protocols
1569
+ - IV8 demuxer
1570
+ - CDG demuxer and decoder
1571
+ - R210 decoder
1572
+ - Auravision Aura 1 and 2 decoders
1573
+ - Deluxe Paint Animation playback system
1574
+ - SIPR decoder
1575
+ - Adobe Filmstrip muxer and demuxer
1576
+ - RTP depacketization of H.263
1577
+ - Bink demuxer and audio/video decoders
1578
+ - enable symbol versioning by default for linkers that support it
1579
+ - IFF PBM/ILBM bitmap decoder
1580
+ - concat protocol
1581
+ - Indeo 5 decoder
1582
+ - RTP depacketization of AMR
1583
+ - WMA Voice decoder
1584
+ - ffprobe tool
1585
+ - AMR-NB decoder
1586
+ - RTSP muxer
1587
+ - HE-AAC v1 decoder
1588
+ - Kega Game Video (KGV1) decoder
1589
+ - VorbisComment writing for FLAC, Ogg FLAC and Ogg Speex files
1590
+ - RTP depacketization of Theora
1591
+ - HTTP Digest authentication
1592
+ - RTMP/RTMPT/RTMPS/RTMPE/RTMPTE protocol support via librtmp
1593
+ - Psygnosis YOP demuxer and video decoder
1594
+ - spectral extension support in the E-AC-3 decoder
1595
+ - unsharp video filter
1596
+ - RTP hinting in the mov/3gp/mp4 muxer
1597
+ - Dirac in Ogg demuxing
1598
+ - seek to keyframes in Ogg
1599
+ - 4:2:2 and 4:4:4 Theora decoding
1600
+ - 35% faster VP3/Theora decoding
1601
+ - faster AAC decoding
1602
+ - faster H.264 decoding
1603
+ - RealAudio 1.0 (14.4K) encoder
1604
+
1605
+
1606
+ version 0.5:
1607
+
1608
+ - DV50 AKA DVCPRO50 encoder, decoder, muxer and demuxer
1609
+ - TechSmith Camtasia (TSCC) video decoder
1610
+ - IBM Ultimotion (ULTI) video decoder
1611
+ - Sierra Online audio file demuxer and decoder
1612
+ - Apple QuickDraw (qdrw) video decoder
1613
+ - Creative ADPCM audio decoder (16 bits as well as 8 bits schemes)
1614
+ - Electronic Arts Multimedia (WVE/UV2/etc.) file demuxer
1615
+ - Miro VideoXL (VIXL) video decoder
1616
+ - H.261 video encoder
1617
+ - QPEG video decoder
1618
+ - Nullsoft Video (NSV) file demuxer
1619
+ - Shorten audio decoder
1620
+ - LOCO video decoder
1621
+ - Apple Lossless Audio Codec (ALAC) decoder
1622
+ - Winnov WNV1 video decoder
1623
+ - Autodesk Animator Studio Codec (AASC) decoder
1624
+ - Indeo 2 video decoder
1625
+ - Fraps FPS1 video decoder
1626
+ - Snow video encoder/decoder
1627
+ - Sonic audio encoder/decoder
1628
+ - Vorbis audio decoder
1629
+ - Macromedia ADPCM decoder
1630
+ - Duck TrueMotion 2 video decoder
1631
+ - support for decoding FLX and DTA extensions in FLIC files
1632
+ - H.264 custom quantization matrices support
1633
+ - ffserver fixed, it should now be usable again
1634
+ - QDM2 audio decoder
1635
+ - Real Cooker audio decoder
1636
+ - TrueSpeech audio decoder
1637
+ - WMA2 audio decoder fixed, now all files should play correctly
1638
+ - RealAudio 14.4 and 28.8 decoders fixed
1639
+ - JPEG-LS decoder
1640
+ - build system improvements
1641
+ - tabs and trailing whitespace removed from the codebase
1642
+ - CamStudio video decoder
1643
+ - AIFF/AIFF-C audio format, encoding and decoding
1644
+ - ADTS AAC file reading and writing
1645
+ - Creative VOC file reading and writing
1646
+ - American Laser Games multimedia (*.mm) playback system
1647
+ - Zip Motion Blocks Video decoder
1648
+ - improved Theora/VP3 decoder
1649
+ - True Audio (TTA) decoder
1650
+ - AVS demuxer and video decoder
1651
+ - JPEG-LS encoder
1652
+ - Smacker demuxer and decoder
1653
+ - NuppelVideo/MythTV demuxer and RTjpeg decoder
1654
+ - KMVC decoder
1655
+ - MPEG-2 intra VLC support
1656
+ - MPEG-2 4:2:2 encoder
1657
+ - Flash Screen Video decoder
1658
+ - GXF demuxer
1659
+ - Chinese AVS decoder
1660
+ - GXF muxer
1661
+ - MXF demuxer
1662
+ - VC-1/WMV3/WMV9 video decoder
1663
+ - MacIntel support
1664
+ - AviSynth support
1665
+ - VMware video decoder
1666
+ - VP5 video decoder
1667
+ - VP6 video decoder
1668
+ - WavPack lossless audio decoder
1669
+ - Targa (.TGA) picture decoder
1670
+ - Vorbis audio encoder
1671
+ - Delphine Software .cin demuxer/audio and video decoder
1672
+ - Tiertex .seq demuxer/video decoder
1673
+ - MTV demuxer
1674
+ - TIFF picture encoder and decoder
1675
+ - GIF picture decoder
1676
+ - Intel Music Coder decoder
1677
+ - Zip Motion Blocks Video encoder
1678
+ - Musepack decoder
1679
+ - Flash Screen Video encoder
1680
+ - Theora encoding via libtheora
1681
+ - BMP encoder
1682
+ - WMA encoder
1683
+ - GSM-MS encoder and decoder
1684
+ - DCA decoder
1685
+ - DXA demuxer and decoder
1686
+ - DNxHD decoder
1687
+ - Gamecube movie (.THP) playback system
1688
+ - Blackfin optimizations
1689
+ - Interplay C93 demuxer and video decoder
1690
+ - Bethsoft VID demuxer and video decoder
1691
+ - CRYO APC demuxer
1692
+ - ATRAC3 decoder
1693
+ - V.Flash PTX decoder
1694
+ - RoQ muxer, RoQ audio encoder
1695
+ - Renderware TXD demuxer and decoder
1696
+ - extern C declarations for C++ removed from headers
1697
+ - sws_flags command line option
1698
+ - codebook generator
1699
+ - RoQ video encoder
1700
+ - QTRLE encoder
1701
+ - OS/2 support removed and restored again
1702
+ - AC-3 decoder
1703
+ - NUT muxer
1704
+ - additional SPARC (VIS) optimizations
1705
+ - Matroska muxer
1706
+ - slice-based parallel H.264 decoding
1707
+ - Monkey's Audio demuxer and decoder
1708
+ - AMV audio and video decoder
1709
+ - DNxHD encoder
1710
+ - H.264 PAFF decoding
1711
+ - Nellymoser ASAO decoder
1712
+ - Beam Software SIFF demuxer and decoder
1713
+ - libvorbis Vorbis decoding removed in favor of native decoder
1714
+ - IntraX8 (J-Frame) subdecoder for WMV2 and VC-1
1715
+ - Ogg (Theora, Vorbis and FLAC) muxer
1716
+ - The "device" muxers and demuxers are now in a new libavdevice library
1717
+ - PC Paintbrush PCX decoder
1718
+ - Sun Rasterfile decoder
1719
+ - TechnoTrend PVA demuxer
1720
+ - Linux Media Labs MPEG-4 (LMLM4) demuxer
1721
+ - AVM2 (Flash 9) SWF muxer
1722
+ - QT variant of IMA ADPCM encoder
1723
+ - VFW grabber
1724
+ - iPod/iPhone compatible mp4 muxer
1725
+ - Mimic decoder
1726
+ - MSN TCP Webcam stream demuxer
1727
+ - RL2 demuxer / decoder
1728
+ - IFF demuxer
1729
+ - 8SVX audio decoder
1730
+ - non-recursive Makefiles
1731
+ - BFI demuxer
1732
+ - MAXIS EA XA (.xa) demuxer / decoder
1733
+ - BFI video decoder
1734
+ - OMA demuxer
1735
+ - MLP/TrueHD decoder
1736
+ - Electronic Arts CMV decoder
1737
+ - Motion Pixels Video decoder
1738
+ - Motion Pixels MVI demuxer
1739
+ - removed animated GIF decoder/demuxer
1740
+ - D-Cinema audio muxer
1741
+ - Electronic Arts TGV decoder
1742
+ - Apple Lossless Audio Codec (ALAC) encoder
1743
+ - AAC decoder
1744
+ - floating point PCM encoder/decoder
1745
+ - MXF muxer
1746
+ - DV100 AKA DVCPRO HD decoder and demuxer
1747
+ - E-AC-3 support added to AC-3 decoder
1748
+ - Nellymoser ASAO encoder
1749
+ - ASS and SSA demuxer and muxer
1750
+ - liba52 wrapper removed
1751
+ - SVQ3 watermark decoding support
1752
+ - Speex decoding via libspeex
1753
+ - Electronic Arts TGQ decoder
1754
+ - RV40 decoder
1755
+ - QCELP / PureVoice decoder
1756
+ - RV30 decoder
1757
+ - hybrid WavPack support
1758
+ - R3D REDCODE demuxer
1759
+ - ALSA support for playback and record
1760
+ - Electronic Arts TQI decoder
1761
+ - OpenJPEG based JPEG 2000 decoder
1762
+ - NC (NC4600) camera file demuxer
1763
+ - Gopher client support
1764
+ - MXF D-10 muxer
1765
+ - generic metadata API
1766
+ - flash ScreenVideo2 encoder
1767
+
1768
+
1769
+ version 0.4.9-pre1:
1770
+
1771
+ - DV encoder, DV muxer
1772
+ - Microsoft RLE video decoder
1773
+ - Microsoft Video-1 decoder
1774
+ - Apple Animation (RLE) decoder
1775
+ - Apple Graphics (SMC) decoder
1776
+ - Apple Video (RPZA) decoder
1777
+ - Cinepak decoder
1778
+ - Sega FILM (CPK) file demuxer
1779
+ - Westwood multimedia support (VQA & AUD files)
1780
+ - Id Quake II CIN playback support
1781
+ - 8BPS video decoder
1782
+ - FLIC playback support
1783
+ - RealVideo 2.0 (RV20) decoder
1784
+ - Duck TrueMotion v1 (DUCK) video decoder
1785
+ - Sierra VMD demuxer and video decoder
1786
+ - MSZH and ZLIB decoder support
1787
+ - SVQ1 video encoder
1788
+ - AMR-WB support
1789
+ - PPC optimizations
1790
+ - rate distortion optimal cbp support
1791
+ - rate distorted optimal ac prediction for MPEG-4
1792
+ - rate distorted optimal lambda->qp support
1793
+ - AAC encoding with libfaac
1794
+ - Sunplus JPEG codec (SP5X) support
1795
+ - use Lagrange multiplier instead of QP for ratecontrol
1796
+ - Theora/VP3 decoding support
1797
+ - XA and ADX ADPCM codecs
1798
+ - export MPEG-2 active display area / pan scan
1799
+ - Add support for configuring with IBM XLC
1800
+ - floating point AAN DCT
1801
+ - initial support for zygo video (not complete)
1802
+ - RGB ffv1 support
1803
+ - new audio/video parser API
1804
+ - av_log() system
1805
+ - av_read_frame() and av_seek_frame() support
1806
+ - missing last frame fixes
1807
+ - seek by mouse in ffplay
1808
+ - noise reduction of DCT coefficients
1809
+ - H.263 OBMC & 4MV support
1810
+ - H.263 alternative inter vlc support
1811
+ - H.263 loop filter
1812
+ - H.263 slice structured mode
1813
+ - interlaced DCT support for MPEG-2 encoding
1814
+ - stuffing to stay above min_bitrate
1815
+ - MB type & QP visualization
1816
+ - frame stepping for ffplay
1817
+ - interlaced motion estimation
1818
+ - alternate scantable support
1819
+ - SVCD scan offset support
1820
+ - closed GOP support
1821
+ - SSE2 FDCT
1822
+ - quantizer noise shaping
1823
+ - G.726 ADPCM audio codec
1824
+ - MS ADPCM encoding
1825
+ - multithreaded/SMP motion estimation
1826
+ - multithreaded/SMP encoding for MPEG-1/MPEG-2/MPEG-4/H.263
1827
+ - multithreaded/SMP decoding for MPEG-2
1828
+ - FLAC decoder
1829
+ - Metrowerks CodeWarrior suppport
1830
+ - H.263+ custom pcf support
1831
+ - nicer output for 'ffmpeg -formats'
1832
+ - Matroska demuxer
1833
+ - SGI image format, encoding and decoding
1834
+ - H.264 loop filter support
1835
+ - H.264 CABAC support
1836
+ - nicer looking arrows for the motion vector visualization
1837
+ - improved VCD support
1838
+ - audio timestamp drift compensation
1839
+ - MPEG-2 YUV 422/444 support
1840
+ - polyphase kaiser windowed sinc and blackman nuttall windowed sinc audio resample
1841
+ - better image scaling
1842
+ - H.261 support
1843
+ - correctly interleave packets during encoding
1844
+ - VIS optimized motion compensation
1845
+ - intra_dc_precision>0 encoding support
1846
+ - support reuse of motion vectors/MB types/field select values of the source video
1847
+ - more accurate deblock filter
1848
+ - padding support
1849
+ - many optimizations and bugfixes
1850
+ - FunCom ISS audio file demuxer and according ADPCM decoding
1851
+
1852
+
1853
+ version 0.4.8:
1854
+
1855
+ - MPEG-2 video encoding (Michael)
1856
+ - Id RoQ playback subsystem (Mike Melanson and Tim Ferguson)
1857
+ - Wing Commander III Movie (.mve) file playback subsystem (Mike Melanson
1858
+ and Mario Brito)
1859
+ - Xan DPCM audio decoder (Mario Brito)
1860
+ - Interplay MVE playback subsystem (Mike Melanson)
1861
+ - Duck DK3 and DK4 ADPCM audio decoders (Mike Melanson)
1862
+
1863
+
1864
+ version 0.4.7:
1865
+
1866
+ - RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from mplayerhq
1867
+ (originally from public domain player for Amiga at http://www.honeypot.net/audio)
1868
+ - current version now also compiles with older GCC (Fabrice)
1869
+ - 4X multimedia playback system including 4xm file demuxer (Mike
1870
+ Melanson), and 4X video and audio codecs (Michael)
1871
+ - Creative YUV (CYUV) decoder (Mike Melanson)
1872
+ - FFV1 codec (our very simple lossless intra only codec, compresses much better
1873
+ than HuffYUV) (Michael)
1874
+ - ASV1 (Asus), H.264, Intel indeo3 codecs have been added (various)
1875
+ - tiny PNG encoder and decoder, tiny GIF decoder, PAM decoder (PPM with
1876
+ alpha support), JPEG YUV colorspace support. (Fabrice Bellard)
1877
+ - ffplay has been replaced with a newer version which uses SDL (optionally)
1878
+ for multiplatform support (Fabrice)
1879
+ - Sorenson Version 3 codec (SVQ3) support has been added (decoding only) - donated
1880
+ by anonymous
1881
+ - AMR format has been added (Johannes Carlsson)
1882
+ - 3GP support has been added (Johannes Carlsson)
1883
+ - VP3 codec has been added (Mike Melanson)
1884
+ - more MPEG-1/2 fixes
1885
+ - better multiplatform support, MS Visual Studio fixes (various)
1886
+ - AltiVec optimizations (Magnus Damn and others)
1887
+ - SH4 processor support has been added (BERO)
1888
+ - new public interfaces (avcodec_get_pix_fmt) (Roman Shaposhnick)
1889
+ - VOB streaming support (Brian Foley)
1890
+ - better MP3 autodetection (Andriy Rysin)
1891
+ - qpel encoding (Michael)
1892
+ - 4mv+b frames encoding finally fixed (Michael)
1893
+ - chroma ME (Michael)
1894
+ - 5 comparison functions for ME (Michael)
1895
+ - B-frame encoding speedup (Michael)
1896
+ - WMV2 codec (unfinished - Michael)
1897
+ - user specified diamond size for EPZS (Michael)
1898
+ - Playstation STR playback subsystem, still experimental (Mike and Michael)
1899
+ - ASV2 codec (Michael)
1900
+ - CLJR decoder (Alex)
1901
+
1902
+ .. And lots more new enhancements and fixes.
1903
+
1904
+
1905
+ version 0.4.6:
1906
+
1907
+ - completely new integer only MPEG audio layer 1/2/3 decoder rewritten
1908
+ from scratch
1909
+ - Recoded DCT and motion vector search with gcc (no longer depends on nasm)
1910
+ - fix quantization bug in AC3 encoder
1911
+ - added PCM codecs and format. Corrected WAV/AVI/ASF PCM issues
1912
+ - added prototype ffplay program
1913
+ - added GOB header parsing on H.263/H.263+ decoder (Juanjo)
1914
+ - bug fix on MCBPC tables of H.263 (Juanjo)
1915
+ - bug fix on DC coefficients of H.263 (Juanjo)
1916
+ - added Advanced Prediction Mode on H.263/H.263+ decoder (Juanjo)
1917
+ - now we can decode H.263 streams found in QuickTime files (Juanjo)
1918
+ - now we can decode H.263 streams found in VIVO v1 files(Juanjo)
1919
+ - preliminary RTP "friendly" mode for H.263/H.263+ coding. (Juanjo)
1920
+ - added GOB header for H.263/H.263+ coding on RTP mode (Juanjo)
1921
+ - now H.263 picture size is returned on the first decoded frame (Juanjo)
1922
+ - added first regression tests
1923
+ - added MPEG-2 TS demuxer
1924
+ - new demux API for libav
1925
+ - more accurate and faster IDCT (Michael)
1926
+ - faster and entropy-controlled motion search (Michael)
1927
+ - two pass video encoding (Michael)
1928
+ - new video rate control (Michael)
1929
+ - added MSMPEG4V1, MSMPEGV2 and WMV1 support (Michael)
1930
+ - great performance improvement of video encoders and decoders (Michael)
1931
+ - new and faster bit readers and vlc parsers (Michael)
1932
+ - high quality encoding mode: tries all macroblock/VLC types (Michael)
1933
+ - added DV video decoder
1934
+ - preliminary RTP/RTSP support in ffserver and libavformat
1935
+ - H.263+ AIC decoding/encoding support (Juanjo)
1936
+ - VCD MPEG-PS mode (Juanjo)
1937
+ - PSNR stuff (Juanjo)
1938
+ - simple stats output (Juanjo)
1939
+ - 16-bit and 15-bit RGB/BGR/GBR support (Bisqwit)
1940
+
1941
+
1942
+ version 0.4.5:
1943
+
1944
+ - some header fixes (Zdenek Kabelac <kabi at informatics.muni.cz>)
1945
+ - many MMX optimizations (Nick Kurshev <nickols_k at mail.ru>)
1946
+ - added configure system (actually a small shell script)
1947
+ - added MPEG audio layer 1/2/3 decoding using LGPL'ed mpglib by
1948
+ Michael Hipp (temporary solution - waiting for integer only
1949
+ decoder)
1950
+ - fixed VIDIOCSYNC interrupt
1951
+ - added Intel H.263 decoding support ('I263' AVI fourCC)
1952
+ - added Real Video 1.0 decoding (needs further testing)
1953
+ - simplified image formats again. Added PGM format (=grey
1954
+ pgm). Renamed old PGM to PGMYUV.
1955
+ - fixed msmpeg4 slice issues (tell me if you still find problems)
1956
+ - fixed OpenDivX bugs with newer versions (added VOL header decoding)
1957
+ - added support for MPlayer interface
1958
+ - added macroblock skip optimization
1959
+ - added MJPEG decoder
1960
+ - added mmx/mmxext IDCT from libmpeg2
1961
+ - added pgmyuvpipe, ppm, and ppm_pipe formats (original patch by Celer
1962
+ <celer at shell.scrypt.net>)
1963
+ - added pixel format conversion layer (e.g. for MJPEG or PPM)
1964
+ - added deinterlacing option
1965
+ - MPEG-1/2 fixes
1966
+ - MPEG-4 vol header fixes (Jonathan Marsden <snmjbm at pacbell.net>)
1967
+ - ARM optimizations (Lionel Ulmer <lionel.ulmer at free.fr>).
1968
+ - Windows porting of file converter
1969
+ - added MJPEG raw format (input/output)
1970
+ - added JPEG image format support (input/output)
1971
+
1972
+
1973
+ version 0.4.4:
1974
+
1975
+ - fixed some std header definitions (Bjorn Lindgren
1976
+ <bjorn.e.lindgren at telia.com>).
1977
+ - added MPEG demuxer (MPEG-1 and 2 compatible).
1978
+ - added ASF demuxer
1979
+ - added prototype RM demuxer
1980
+ - added AC3 decoding (done with libac3 by Aaron Holtzman)
1981
+ - added decoding codec parameter guessing (.e.g. for MPEG, because the
1982
+ header does not include them)
1983
+ - fixed header generation in MPEG-1, AVI and ASF muxer: wmplayer can now
1984
+ play them (only tested video)
1985
+ - fixed H.263 white bug
1986
+ - fixed phase rounding in img resample filter
1987
+ - add MMX code for polyphase img resample filter
1988
+ - added CPU autodetection
1989
+ - added generic title/author/copyright/comment string handling (ASF and RM
1990
+ use them)
1991
+ - added SWF demux to extract MP3 track (not usable yet because no MP3
1992
+ decoder)
1993
+ - added fractional frame rate support
1994
+ - codecs are no longer searched by read_header() (should fix ffserver
1995
+ segfault)
1996
+
1997
+
1998
+ version 0.4.3:
1999
+
2000
+ - BGR24 patch (initial patch by Jeroen Vreeken <pe1rxq at amsat.org>)
2001
+ - fixed raw yuv output
2002
+ - added motion rounding support in MPEG-4
2003
+ - fixed motion bug rounding in MSMPEG4
2004
+ - added B-frame handling in video core
2005
+ - added full MPEG-1 decoding support
2006
+ - added partial (frame only) MPEG-2 support
2007
+ - changed the FOURCC code for H.263 to "U263" to be able to see the
2008
+ +AVI/H.263 file with the UB Video H.263+ decoder. MPlayer works with
2009
+ this +codec ;) (JuanJo).
2010
+ - Halfpel motion estimation after MB type selection (JuanJo)
2011
+ - added pgm and .Y.U.V output format
2012
+ - suppressed 'img:' protocol. Simply use: /tmp/test%d.[pgm|Y] as input or
2013
+ output.
2014
+ - added pgmpipe I/O format (original patch from Martin Aumueller
2015
+ <lists at reserv.at>, but changed completely since we use a format
2016
+ instead of a protocol)
2017
+
2018
+
2019
+ version 0.4.2:
2020
+
2021
+ - added H.263/MPEG-4/MSMPEG4 decoding support. MPEG-4 decoding support
2022
+ (for OpenDivX) is almost complete: 8x8 MVs and rounding are
2023
+ missing. MSMPEG4 support is complete.
2024
+ - added prototype MPEG-1 decoder. Only I- and P-frames handled yet (it
2025
+ can decode ffmpeg MPEGs :-)).
2026
+ - added libavcodec API documentation (see apiexample.c).
2027
+ - fixed image polyphase bug (the bottom of some images could be
2028
+ greenish)
2029
+ - added support for non clipped motion vectors (decoding only)
2030
+ and image sizes non-multiple of 16
2031
+ - added support for AC prediction (decoding only)
2032
+ - added file overwrite confirmation (can be disabled with -y)
2033
+ - added custom size picture to H.263 using H.263+ (Juanjo)
2034
+
2035
+
2036
+ version 0.4.1:
2037
+
2038
+ - added MSMPEG4 (aka DivX) compatible encoder. Changed default codec
2039
+ of AVI and ASF to DIV3.
2040
+ - added -me option to set motion estimation method
2041
+ (default=log). suppressed redundant -hq option.
2042
+ - added options -acodec and -vcodec to force a given codec (useful for
2043
+ AVI for example)
2044
+ - fixed -an option
2045
+ - improved dct_quantize speed
2046
+ - factorized some motion estimation code
2047
+
2048
+
2049
+ version 0.4.0:
2050
+
2051
+ - removing grab code from ffserver and moved it to ffmpeg. Added
2052
+ multistream support to ffmpeg.
2053
+ - added timeshifting support for live feeds (option ?date=xxx in the
2054
+ URL)
2055
+ - added high quality image resize code with polyphase filter (need
2056
+ mmx/see optimization). Enable multiple image size support in ffserver.
2057
+ - added multi live feed support in ffserver
2058
+ - suppressed master feature from ffserver (it should be done with an
2059
+ external program which opens the .ffm url and writes it to another
2060
+ ffserver)
2061
+ - added preliminary support for video stream parsing (WAV and AVI half
2062
+ done). Added proper support for audio/video file conversion in
2063
+ ffmpeg.
2064
+ - added preliminary support for video file sending from ffserver
2065
+ - redesigning I/O subsystem: now using URL based input and output
2066
+ (see avio.h)
2067
+ - added WAV format support
2068
+ - added "tty user interface" to ffmpeg to stop grabbing gracefully
2069
+ - added MMX/SSE optimizations to SAD (Sums of Absolutes Differences)
2070
+ (Juan J. Sierralta P. a.k.a. "Juanjo" <juanjo at atmlab.utfsm.cl>)
2071
+ - added MMX DCT from mpeg2_movie 1.5 (Juanjo)
2072
+ - added new motion estimation algorithms, log and phods (Juanjo)
2073
+ - changed directories: libav for format handling, libavcodec for
2074
+ codecs
2075
+
2076
+
2077
+ version 0.3.4:
2078
+
2079
+ - added stereo in MPEG audio encoder
2080
+
2081
+
2082
+ version 0.3.3:
2083
+
2084
+ - added 'high quality' mode which use motion vectors. It can be used in
2085
+ real time at low resolution.
2086
+ - fixed rounding problems which caused quality problems at high
2087
+ bitrates and large GOP size
2088
+
2089
+
2090
+ version 0.3.2: small fixes
2091
+
2092
+ - ASF fixes
2093
+ - put_seek bug fix
2094
+
2095
+
2096
+ version 0.3.1: added avi/divx support
2097
+
2098
+ - added AVI support
2099
+ - added MPEG-4 codec compatible with OpenDivX. It is based on the H.263 codec
2100
+ - added sound for flash format (not tested)
2101
+
2102
+
2103
+ version 0.3: initial public release
INSTALL.md ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ## Installing FFmpeg
2
+
3
+ 1. Type `./configure` to create the configuration. A list of configure
4
+ options is printed by running `configure --help`.
5
+
6
+ `configure` can be launched from a directory different from the FFmpeg
7
+ sources to build the objects out of tree. To do this, use an absolute
8
+ path when launching `configure`, e.g. `/ffmpegdir/ffmpeg/configure`.
9
+
10
+ 2. Then type `make` to build FFmpeg. GNU Make 3.81 or later is required.
11
+
12
+ 3. Type `make install` to install all binaries and libraries you built.
13
+
14
+ NOTICE
15
+ ------
16
+
17
+ - Non system dependencies (e.g. libx264, libvpx) are disabled by default.
LICENSE.md ADDED
@@ -0,0 +1,129 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # License
2
+
3
+ Most files in FFmpeg are under the GNU Lesser General Public License version 2.1
4
+ or later (LGPL v2.1+). Read the file `COPYING.LGPLv2.1` for details. Some other
5
+ files have MIT/X11/BSD-style licenses. In combination the LGPL v2.1+ applies to
6
+ FFmpeg.
7
+
8
+ Some optional parts of FFmpeg are licensed under the GNU General Public License
9
+ version 2 or later (GPL v2+). See the file `COPYING.GPLv2` for details. None of
10
+ these parts are used by default, you have to explicitly pass `--enable-gpl` to
11
+ configure to activate them. In this case, FFmpeg's license changes to GPL v2+.
12
+
13
+ Specifically, the GPL parts of FFmpeg are:
14
+
15
+ - libpostproc
16
+ - optional x86 optimization in the files
17
+ - `libavcodec/x86/flac_dsp_gpl.asm`
18
+ - `libavcodec/x86/idct_mmx.c`
19
+ - `libavfilter/x86/vf_removegrain.asm`
20
+ - the following building and testing tools
21
+ - `compat/solaris/make_sunver.pl`
22
+ - `doc/t2h.pm`
23
+ - `doc/texi2pod.pl`
24
+ - `libswresample/tests/swresample.c`
25
+ - `tests/checkasm/*`
26
+ - `tests/tiny_ssim.c`
27
+ - the following filters in libavfilter:
28
+ - `signature_lookup.c`
29
+ - `vf_blackframe.c`
30
+ - `vf_boxblur.c`
31
+ - `vf_colormatrix.c`
32
+ - `vf_cover_rect.c`
33
+ - `vf_cropdetect.c`
34
+ - `vf_delogo.c`
35
+ - `vf_eq.c`
36
+ - `vf_find_rect.c`
37
+ - `vf_fspp.c`
38
+ - `vf_histeq.c`
39
+ - `vf_hqdn3d.c`
40
+ - `vf_kerndeint.c`
41
+ - `vf_lensfun.c` (GPL version 3 or later)
42
+ - `vf_mcdeint.c`
43
+ - `vf_mpdecimate.c`
44
+ - `vf_nnedi.c`
45
+ - `vf_owdenoise.c`
46
+ - `vf_perspective.c`
47
+ - `vf_phase.c`
48
+ - `vf_pp.c`
49
+ - `vf_pp7.c`
50
+ - `vf_pullup.c`
51
+ - `vf_repeatfields.c`
52
+ - `vf_sab.c`
53
+ - `vf_signature.c`
54
+ - `vf_smartblur.c`
55
+ - `vf_spp.c`
56
+ - `vf_stereo3d.c`
57
+ - `vf_super2xsai.c`
58
+ - `vf_tinterlace.c`
59
+ - `vf_uspp.c`
60
+ - `vf_vaguedenoiser.c`
61
+ - `vsrc_mptestsrc.c`
62
+
63
+ Should you, for whatever reason, prefer to use version 3 of the (L)GPL, then
64
+ the configure parameter `--enable-version3` will activate this licensing option
65
+ for you. Read the file `COPYING.LGPLv3` or, if you have enabled GPL parts,
66
+ `COPYING.GPLv3` to learn the exact legal terms that apply in this case.
67
+
68
+ There are a handful of files under other licensing terms, namely:
69
+
70
+ * The files `libavcodec/jfdctfst.c`, `libavcodec/jfdctint_template.c` and
71
+ `libavcodec/jrevdct.c` are taken from libjpeg, see the top of the files for
72
+ licensing details. Specifically note that you must credit the IJG in the
73
+ documentation accompanying your program if you only distribute executables.
74
+ You must also indicate any changes including additions and deletions to
75
+ those three files in the documentation.
76
+ * `tests/reference.pnm` is under the expat license.
77
+
78
+
79
+ ## External libraries
80
+
81
+ FFmpeg can be combined with a number of external libraries, which sometimes
82
+ affect the licensing of binaries resulting from the combination.
83
+
84
+ ### Compatible libraries
85
+
86
+ The following libraries are under GPL version 2:
87
+ - avisynth
88
+ - frei0r
89
+ - libcdio
90
+ - libdavs2
91
+ - librubberband
92
+ - libvidstab
93
+ - libx264
94
+ - libx265
95
+ - libxavs
96
+ - libxavs2
97
+ - libxvid
98
+
99
+ When combining them with FFmpeg, FFmpeg needs to be licensed as GPL as well by
100
+ passing `--enable-gpl` to configure.
101
+
102
+ The following libraries are under LGPL version 3:
103
+ - gmp
104
+ - libaribb24
105
+ - liblensfun
106
+
107
+ When combining them with FFmpeg, use the configure option `--enable-version3` to
108
+ upgrade FFmpeg to the LGPL v3.
109
+
110
+ The VMAF, mbedTLS, RK MPI, OpenCORE and VisualOn libraries are under the Apache License
111
+ 2.0. That license is incompatible with the LGPL v2.1 and the GPL v2, but not with
112
+ version 3 of those licenses. So to combine these libraries with FFmpeg, the
113
+ license version needs to be upgraded by passing `--enable-version3` to configure.
114
+
115
+ The smbclient library is under the GPL v3, to combine it with FFmpeg,
116
+ the options `--enable-gpl` and `--enable-version3` have to be passed to
117
+ configure to upgrade FFmpeg to the GPL v3.
118
+
119
+ ### Incompatible libraries
120
+
121
+ There are certain libraries you can combine with FFmpeg whose licenses are not
122
+ compatible with the GPL and/or the LGPL. If you wish to enable these
123
+ libraries, even in circumstances that their license may be incompatible, pass
124
+ `--enable-nonfree` to configure. This will cause the resulting binary to be
125
+ unredistributable.
126
+
127
+ The Fraunhofer FDK AAC and OpenSSL libraries are under licenses which are
128
+ incompatible with the GPLv2 and v3. To the best of our knowledge, they are
129
+ compatible with the LGPL.
MAINTAINERS ADDED
@@ -0,0 +1,647 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FFmpeg maintainers
2
+ ==================
3
+
4
+ Below is a list of the people maintaining different parts of the
5
+ FFmpeg code.
6
+
7
+ Please try to keep entries where you are the maintainer up to date!
8
+
9
+ Names in () mean that the maintainer currently has no time to maintain the code.
10
+ A (CC <address>) after the name means that the maintainer prefers to be CC-ed on
11
+ patches and related discussions.
12
+
13
+
14
+ Applications
15
+ ============
16
+
17
+ ffmpeg:
18
+ ffmpeg.c Michael Niedermayer, Anton Khirnov
19
+
20
+ ffplay:
21
+ ffplay.c Marton Balint
22
+
23
+ ffprobe:
24
+ ffprobe.c Stefano Sabatini
25
+
26
+ Commandline utility code:
27
+ cmdutils.c, cmdutils.h Michael Niedermayer
28
+
29
+ QuickTime faststart:
30
+ tools/qt-faststart.c Baptiste Coudurier
31
+
32
+
33
+ Miscellaneous Areas
34
+ ===================
35
+
36
+ documentation Stefano Sabatini, Mike Melanson, Timothy Gu, Gyan Doshi
37
+ project server day to day operations Árpád Gereöffy, Michael Niedermayer, Reimar Doeffinger, Alexander Strasser, Nikolay Aleksandrov
38
+ project server emergencies Árpád Gereöffy, Reimar Doeffinger, Alexander Strasser, Nikolay Aleksandrov
39
+ presets Robert Swain
40
+ metadata subsystem Aurelien Jacobs
41
+ release management Michael Niedermayer
42
+ API tests Ludmila Glinskih
43
+
44
+
45
+ Communication
46
+ =============
47
+
48
+ website Deby Barbara Lepage
49
+ fate.ffmpeg.org Timothy Gu
50
+ Trac bug tracker Alexander Strasser, Michael Niedermayer, Carl Eugen Hoyos
51
+ Patchwork Andriy Gelman
52
+ mailing lists Baptiste Coudurier
53
+ Twitter Reynaldo H. Verdejo Pinochet
54
+ Launchpad Timothy Gu
55
+ ffmpeg-security Andreas Cadhalpun, Carl Eugen Hoyos, Clément Bœsch, Michael Niedermayer, Reimar Doeffinger, rcombs, wm4
56
+
57
+
58
+ libavutil
59
+ =========
60
+
61
+ External Interfaces:
62
+ libavutil/avutil.h Michael Niedermayer
63
+ Internal Interfaces:
64
+ libavutil/common.h Michael Niedermayer
65
+
66
+ Other:
67
+ aes_ctr.c, aes_ctr.h Eran Kornblau
68
+ bprint Nicolas George
69
+ bswap.h
70
+ des Reimar Doeffinger
71
+ dynarray.h Nicolas George
72
+ eval.c, eval.h Michael Niedermayer
73
+ float_dsp Loren Merritt
74
+ hash Reimar Doeffinger
75
+ hwcontext_cuda* Timo Rothenpieler
76
+ hwcontext_vulkan* Lynne
77
+ intfloat* Michael Niedermayer
78
+ integer.c, integer.h Michael Niedermayer
79
+ lzo Reimar Doeffinger
80
+ mathematics.c, mathematics.h Michael Niedermayer
81
+ mem.c, mem.h Michael Niedermayer
82
+ opencl.c, opencl.h Wei Gao
83
+ opt.c, opt.h Michael Niedermayer
84
+ rational.c, rational.h Michael Niedermayer
85
+ rc4 Reimar Doeffinger
86
+ ripemd.c, ripemd.h James Almer
87
+ tx* Lynne
88
+
89
+
90
+ libavcodec
91
+ ==========
92
+
93
+ Generic Parts:
94
+ External Interfaces:
95
+ avcodec.h Michael Niedermayer
96
+ utility code:
97
+ utils.c Michael Niedermayer
98
+ audio and video frame extraction:
99
+ parser.c Michael Niedermayer
100
+ bitstream reading:
101
+ bitstream.c, bitstream.h Michael Niedermayer
102
+ CABAC:
103
+ cabac.h, cabac.c Michael Niedermayer
104
+ codec names:
105
+ codec_names.sh Nicolas George
106
+ DSP utilities:
107
+ dsputils.c, dsputils.h Michael Niedermayer
108
+ entropy coding:
109
+ rangecoder.c, rangecoder.h Michael Niedermayer
110
+ lzw.* Michael Niedermayer
111
+ floating point AAN DCT:
112
+ faandct.c, faandct.h Michael Niedermayer
113
+ Golomb coding:
114
+ golomb.c, golomb.h Michael Niedermayer
115
+ motion estimation:
116
+ motion* Michael Niedermayer
117
+ rate control:
118
+ ratecontrol.c Michael Niedermayer
119
+ simple IDCT:
120
+ simple_idct.c, simple_idct.h Michael Niedermayer
121
+ postprocessing:
122
+ libpostproc/* Michael Niedermayer
123
+ table generation:
124
+ tableprint.c, tableprint.h Reimar Doeffinger
125
+ fixed point FFT:
126
+ fft* Zeljko Lukac
127
+ Text Subtitles Clément Bœsch
128
+
129
+ Codecs:
130
+ 4xm.c Michael Niedermayer
131
+ 8bps.c Roberto Togni
132
+ 8svx.c Jaikrishnan Menon
133
+ aacenc*, aaccoder.c Rostislav Pehlivanov
134
+ adpcm.c Zane van Iperen
135
+ alacenc.c Jaikrishnan Menon
136
+ alsdec.c Thilo Borgmann, Umair Khan
137
+ amfenc* Dmitrii Ovchinnikov
138
+ aptx.c Aurelien Jacobs
139
+ ass* Aurelien Jacobs
140
+ asv* Michael Niedermayer
141
+ atrac3plus* Maxim Poliakovski
142
+ audiotoolbox* rcombs
143
+ avs2* Huiwen Ren
144
+ bgmc.c, bgmc.h Thilo Borgmann
145
+ binkaudio.c Peter Ross
146
+ cavs* Stefan Gehrer
147
+ cdxl.c Paul B Mahol
148
+ celp_filters.* Vitor Sessak
149
+ cinepak.c Roberto Togni
150
+ cinepakenc.c Rl / Aetey G.T. AB
151
+ ccaption_dec.c Anshul Maheshwari, Aman Gupta
152
+ cljr Alex Beregszaszi
153
+ cpia.c Stephan Hilb
154
+ cscd.c Reimar Doeffinger
155
+ cuviddec.c Timo Rothenpieler
156
+ dca* foo86
157
+ dfpwm* Jack Bruienne
158
+ dirac* Rostislav Pehlivanov
159
+ dnxhd* Baptiste Coudurier
160
+ dolby_e* foo86
161
+ dpcm.c Mike Melanson
162
+ dss_sp.c Oleksij Rempel
163
+ dv.c Roman Shaposhnik
164
+ dvbsubdec.c Anshul Maheshwari
165
+ eacmv*, eaidct*, eat* Peter Ross
166
+ evrc* Paul B Mahol
167
+ exif.c, exif.h Thilo Borgmann
168
+ ffv1* Michael Niedermayer
169
+ ffwavesynth.c Nicolas George
170
+ fifo.c Jan Sebechlebsky
171
+ flicvideo.c Mike Melanson
172
+ g722.c Martin Storsjo
173
+ g726.c Roman Shaposhnik
174
+ gifdec.c Baptiste Coudurier
175
+ h261* Michael Niedermayer
176
+ h263* Michael Niedermayer
177
+ h264* Loren Merritt, Michael Niedermayer
178
+ hap* Tom Butterworth
179
+ huffyuv* Michael Niedermayer
180
+ idcinvideo.c Mike Melanson
181
+ interplayvideo.c Mike Melanson
182
+ jni*, ffjni* Matthieu Bouron
183
+ jpeg2000* Nicolas Bertrand
184
+ jvdec.c Peter Ross
185
+ lcl*.c Roberto Togni, Reimar Doeffinger
186
+ libcelt_dec.c Nicolas George
187
+ libcodec2.c Tomas Härdin
188
+ libdirac* David Conrad
189
+ libdavs2.c Huiwen Ren
190
+ libjxl*.c, libjxl.h Leo Izen
191
+ libgsm.c Michel Bardiaux
192
+ libkvazaar.c Arttu Ylä-Outinen
193
+ libopenh264enc.c Martin Storsjo, Linjie Fu
194
+ libopenjpeg.c Jaikrishnan Menon
195
+ libopenjpegenc.c Michael Bradshaw
196
+ libtheoraenc.c David Conrad
197
+ libvorbis.c David Conrad
198
+ libvpx* James Zern
199
+ libxavs.c Stefan Gehrer
200
+ libxavs2.c Huiwen Ren
201
+ libzvbi-teletextdec.c Marton Balint
202
+ lzo.h, lzo.c Reimar Doeffinger
203
+ mdec.c Michael Niedermayer
204
+ mimic.c Ramiro Polla
205
+ mjpeg*.c Michael Niedermayer
206
+ mlp* Ramiro Polla, Jai Luthra
207
+ mmvideo.c Peter Ross
208
+ mpeg12.c, mpeg12data.h Michael Niedermayer
209
+ mpegvideo.c, mpegvideo.h Michael Niedermayer
210
+ mqc* Nicolas Bertrand
211
+ msmpeg4.c, msmpeg4data.h Michael Niedermayer
212
+ msrle.c Mike Melanson
213
+ msrleenc.c Tomas Härdin
214
+ msvideo1.c Mike Melanson
215
+ nuv.c Reimar Doeffinger
216
+ nvdec*, nvenc* Timo Rothenpieler
217
+ omx.c Martin Storsjo, Aman Gupta
218
+ opus* Rostislav Pehlivanov
219
+ paf.* Paul B Mahol
220
+ pcx.c Ivo van Poorten
221
+ pgssubdec.c Reimar Doeffinger
222
+ ptx.c Ivo van Poorten
223
+ qcelp* Reynaldo H. Verdejo Pinochet
224
+ qdm2.c, qdm2data.h Roberto Togni
225
+ qsv* Mark Thompson, Zhong Li, Haihao Xiang
226
+ qtrle.c Mike Melanson
227
+ ra144.c, ra144.h, ra288.c, ra288.h Roberto Togni
228
+ resample2.c Michael Niedermayer
229
+ rl2.c Sascha Sommer
230
+ rpza.c Roberto Togni
231
+ rtjpeg.c, rtjpeg.h Reimar Doeffinger
232
+ rv10.c Michael Niedermayer
233
+ s3tc* Ivo van Poorten
234
+ smc.c Mike Melanson
235
+ snow* Michael Niedermayer, Loren Merritt
236
+ sonic.c Alex Beregszaszi
237
+ speedhq.c Steinar H. Gunderson
238
+ srt* Aurelien Jacobs
239
+ sunrast.c Ivo van Poorten
240
+ svq3.c Michael Niedermayer
241
+ tak* Paul B Mahol
242
+ truemotion1* Mike Melanson
243
+ tta.c Alex Beregszaszi, Jaikrishnan Menon
244
+ ttaenc.c Paul B Mahol
245
+ txd.c Ivo van Poorten
246
+ v4l2_* Jorge Ramirez-Ortiz
247
+ vc2* Rostislav Pehlivanov
248
+ vcr1.c Michael Niedermayer
249
+ videotoolboxenc.c Rick Kern, Aman Gupta
250
+ vima.c Paul B Mahol
251
+ vorbisdec.c Denes Balatoni, David Conrad
252
+ vorbisenc.c Oded Shimon
253
+ vp3* Mike Melanson
254
+ vp5 Aurelien Jacobs
255
+ vp6 Aurelien Jacobs
256
+ vp8 David Conrad, Ronald Bultje
257
+ vp9 Ronald Bultje
258
+ vqavideo.c Mike Melanson
259
+ wmaprodec.c Sascha Sommer
260
+ wmavoice.c Ronald S. Bultje
261
+ wmv2.c Michael Niedermayer
262
+ xan.c Mike Melanson
263
+ xbm* Paul B Mahol
264
+ xface Stefano Sabatini
265
+ xwd* Paul B Mahol
266
+
267
+ Hardware acceleration:
268
+ dxva2* Hendrik Leppkes, Laurent Aimar, Steve Lhomme
269
+ d3d11va* Steve Lhomme
270
+ mediacodec* Matthieu Bouron, Aman Gupta
271
+ vaapi* Haihao Xiang
272
+ vaapi_encode* Mark Thompson, Haihao Xiang
273
+ vdpau* Philip Langdale, Carl Eugen Hoyos
274
+ videotoolbox* Rick Kern, Aman Gupta
275
+
276
+
277
+ libavdevice
278
+ ===========
279
+ External Interface:
280
+ libavdevice/avdevice.h
281
+
282
+
283
+ avfoundation.m Thilo Borgmann
284
+ android_camera.c Felix Matouschek
285
+ decklink* Marton Balint
286
+ dshow.c Roger Pack (CC rogerdpack@gmail.com)
287
+ fbdev_enc.c Lukasz Marek
288
+ gdigrab.c Roger Pack (CC rogerdpack@gmail.com)
289
+ iec61883.c Georg Lippitsch
290
+ lavfi Stefano Sabatini
291
+ libdc1394.c Roman Shaposhnik
292
+ opengl_enc.c Lukasz Marek
293
+ pulse_audio_enc.c Lukasz Marek
294
+ sdl Stefano Sabatini
295
+ sdl2.c Josh de Kock
296
+ v4l2.c Giorgio Vazzana
297
+ vfwcap.c Ramiro Polla
298
+ xv.c Lukasz Marek
299
+
300
+ libavfilter
301
+ ===========
302
+
303
+ Generic parts:
304
+ graphdump.c Nicolas George
305
+
306
+ motion_estimation.c Davinder Singh
307
+
308
+ Filters:
309
+ f_drawgraph.c Paul B Mahol
310
+ af_adelay.c Paul B Mahol
311
+ af_aecho.c Paul B Mahol
312
+ af_afade.c Paul B Mahol
313
+ af_amerge.c Nicolas George
314
+ af_aphaser.c Paul B Mahol
315
+ af_aresample.c Michael Niedermayer
316
+ af_astats.c Paul B Mahol
317
+ af_atempo.c Pavel Koshevoy
318
+ af_biquads.c Paul B Mahol
319
+ af_chorus.c Paul B Mahol
320
+ af_compand.c Paul B Mahol
321
+ af_firequalizer.c Muhammad Faiz
322
+ af_hdcd.c Burt P.
323
+ af_ladspa.c Paul B Mahol
324
+ af_loudnorm.c Kyle Swanson
325
+ af_pan.c Nicolas George
326
+ af_sidechaincompress.c Paul B Mahol
327
+ af_silenceremove.c Paul B Mahol
328
+ avf_aphasemeter.c Paul B Mahol
329
+ avf_avectorscope.c Paul B Mahol
330
+ avf_showcqt.c Muhammad Faiz
331
+ vf_blend.c Paul B Mahol
332
+ vf_bwdif Thomas Mundt (CC <thomas.mundt@hr.de>)
333
+ vf_chromakey.c Timo Rothenpieler
334
+ vf_colorchannelmixer.c Paul B Mahol
335
+ vf_colorconstancy.c Mina Sami (CC <minas.gorgy@gmail.com>)
336
+ vf_colorbalance.c Paul B Mahol
337
+ vf_colorkey.c Timo Rothenpieler
338
+ vf_colorlevels.c Paul B Mahol
339
+ vf_coreimage.m Thilo Borgmann
340
+ vf_deband.c Paul B Mahol
341
+ vf_dejudder.c Nicholas Robbins
342
+ vf_delogo.c Jean Delvare (CC <jdelvare@suse.com>)
343
+ vf_drawbox.c/drawgrid Andrey Utkin
344
+ vf_extractplanes.c Paul B Mahol
345
+ vf_histogram.c Paul B Mahol
346
+ vf_hqx.c Clément Bœsch
347
+ vf_idet.c Pascal Massimino
348
+ vf_il.c Paul B Mahol
349
+ vf_(t)interlace Thomas Mundt (CC <thomas.mundt@hr.de>)
350
+ vf_lenscorrection.c Daniel Oberhoff
351
+ vf_libplacebo.c Niklas Haas
352
+ vf_mergeplanes.c Paul B Mahol
353
+ vf_mestimate.c Davinder Singh
354
+ vf_minterpolate.c Davinder Singh
355
+ vf_neighbor.c Paul B Mahol
356
+ vf_psnr.c Paul B Mahol
357
+ vf_random.c Paul B Mahol
358
+ vf_readvitc.c Tobias Rapp (CC t.rapp at noa-archive dot com)
359
+ vf_scale.c Michael Niedermayer
360
+ vf_separatefields.c Paul B Mahol
361
+ vf_ssim.c Paul B Mahol
362
+ vf_stereo3d.c Paul B Mahol
363
+ vf_telecine.c Paul B Mahol
364
+ vf_tonemap_opencl.c Ruiling Song
365
+ vf_yadif.c Michael Niedermayer
366
+ vf_zoompan.c Paul B Mahol
367
+
368
+ Sources:
369
+ vsrc_mandelbrot.c Michael Niedermayer
370
+
371
+ dnn Yejun Guo
372
+
373
+ libavformat
374
+ ===========
375
+
376
+ Generic parts:
377
+ External Interface:
378
+ libavformat/avformat.h Michael Niedermayer
379
+ Utility Code:
380
+ libavformat/utils.c Michael Niedermayer
381
+ Text Subtitles Clément Bœsch
382
+
383
+
384
+ Muxers/Demuxers:
385
+ 4xm.c Mike Melanson
386
+ aadec.c Vesselin Bontchev (vesselin.bontchev at yandex dot com)
387
+ adtsenc.c Robert Swain
388
+ afc.c Paul B Mahol
389
+ aiffdec.c Baptiste Coudurier, Matthieu Bouron
390
+ aiffenc.c Baptiste Coudurier, Matthieu Bouron
391
+ alp.c Zane van Iperen
392
+ amvenc.c Zane van Iperen
393
+ apm.c Zane van Iperen
394
+ apngdec.c Benoit Fouet
395
+ argo_asf.c Zane van Iperen
396
+ argo_brp.c Zane van Iperen
397
+ argo_cvg.c Zane van Iperen
398
+ ass* Aurelien Jacobs
399
+ astdec.c Paul B Mahol
400
+ astenc.c James Almer
401
+ avi* Michael Niedermayer
402
+ avisynth.c Stephen Hutchinson
403
+ avr.c Paul B Mahol
404
+ bink.c Peter Ross
405
+ boadec.c Michael Niedermayer
406
+ brstm.c Paul B Mahol
407
+ caf* Peter Ross
408
+ cdxl.c Paul B Mahol
409
+ codec2.c Tomas Härdin
410
+ crc.c Michael Niedermayer
411
+ dashdec.c Steven Liu
412
+ dashenc.c Karthick Jeyapal
413
+ daud.c Reimar Doeffinger
414
+ dfpwmdec.c Jack Bruienne
415
+ dss.c Oleksij Rempel
416
+ dtsdec.c foo86
417
+ dtshddec.c Paul B Mahol
418
+ dv.c Roman Shaposhnik
419
+ electronicarts.c Peter Ross
420
+ epafdec.c Paul B Mahol
421
+ evc* Samsung (Dawid Kozinski)
422
+ ffm* Baptiste Coudurier
423
+ flic.c Mike Melanson
424
+ flvdec.c Michael Niedermayer
425
+ flvenc.c Michael Niedermayer, Steven Liu
426
+ gxf.c Reimar Doeffinger
427
+ gxfenc.c Baptiste Coudurier
428
+ hlsenc.c Christian Suloway, Steven Liu
429
+ idcin.c Mike Melanson
430
+ idroqdec.c Mike Melanson
431
+ iff.c Jaikrishnan Menon
432
+ imf* Pierre-Anthony Lemieux
433
+ img2*.c Michael Niedermayer
434
+ ipmovie.c Mike Melanson
435
+ ircam* Paul B Mahol
436
+ iss.c Stefan Gehrer
437
+ jpegxl_anim_dec.c Leo Izen
438
+ jpegxl_probe.* Leo Izen
439
+ jvdec.c Peter Ross
440
+ kvag.c Zane van Iperen
441
+ libmodplug.c Clément Bœsch
442
+ libopenmpt.c Josh de Kock
443
+ lmlm4.c Ivo van Poorten
444
+ lvfdec.c Paul B Mahol
445
+ lxfdec.c Tomas Härdin
446
+ matroska.c Aurelien Jacobs, Andreas Rheinhardt
447
+ matroskadec.c Aurelien Jacobs, Andreas Rheinhardt
448
+ matroskaenc.c David Conrad, Andreas Rheinhardt
449
+ matroska subtitles (matroskaenc.c) John Peebles
450
+ metadata* Aurelien Jacobs
451
+ mgsts.c Paul B Mahol
452
+ microdvd* Aurelien Jacobs
453
+ mm.c Peter Ross
454
+ mov.c Baptiste Coudurier
455
+ movenc.c Baptiste Coudurier, Matthieu Bouron
456
+ movenccenc.c Eran Kornblau
457
+ mpeg.c Michael Niedermayer
458
+ mpegenc.c Michael Niedermayer
459
+ mpegts.c Marton Balint
460
+ mpegtsenc.c Baptiste Coudurier
461
+ msnwc_tcp.c Ramiro Polla
462
+ mtv.c Reynaldo H. Verdejo Pinochet
463
+ mxf* Baptiste Coudurier, Tomas Härdin
464
+ nistspheredec.c Paul B Mahol
465
+ nsvdec.c Francois Revol
466
+ nut* Michael Niedermayer
467
+ nuv.c Reimar Doeffinger
468
+ oggdec.c, oggdec.h David Conrad
469
+ oggenc.c Baptiste Coudurier
470
+ oggparse*.c David Conrad
471
+ oma.c Maxim Poliakovski
472
+ paf.c Paul B Mahol
473
+ pp_bnk.c Zane van Iperen
474
+ psxstr.c Mike Melanson
475
+ pva.c Ivo van Poorten
476
+ pvfdec.c Paul B Mahol
477
+ r3d.c Baptiste Coudurier
478
+ raw.c Michael Niedermayer
479
+ rdt.c Ronald S. Bultje
480
+ rl2.c Sascha Sommer
481
+ rmdec.c, rmenc.c Ronald S. Bultje
482
+ rtp.c, rtpenc.c Martin Storsjo
483
+ rtpdec_ac3.* Gilles Chanteperdrix
484
+ rtpdec_dv.* Thomas Volkert
485
+ rtpdec_h261.*, rtpenc_h261.* Thomas Volkert
486
+ rtpdec_hevc.*, rtpenc_hevc.* Thomas Volkert
487
+ rtpdec_mpa_robust.* Gilles Chanteperdrix
488
+ rtpdec_asf.* Ronald S. Bultje
489
+ rtpdec_vc2hq.*, rtpenc_vc2hq.* Thomas Volkert
490
+ rtpdec_vp9.c Thomas Volkert
491
+ rtpenc_mpv.*, rtpenc_aac.* Martin Storsjo
492
+ s337m.c foo86
493
+ sbgdec.c Nicolas George
494
+ sdp.c Martin Storsjo
495
+ segafilm.c Mike Melanson
496
+ segment.c Stefano Sabatini
497
+ smjpeg* Paul B Mahol
498
+ spdif* Anssi Hannula
499
+ srtdec.c Aurelien Jacobs
500
+ swf.c Baptiste Coudurier
501
+ takdec.c Paul B Mahol
502
+ tta.c Alex Beregszaszi
503
+ txd.c Ivo van Poorten
504
+ voc.c Aurelien Jacobs
505
+ wav.c Michael Niedermayer
506
+ wc3movie.c Mike Melanson
507
+ webm dash (matroskaenc.c) Vignesh Venkatasubramanian
508
+ webvtt* Matthew J Heaney
509
+ westwood.c Mike Melanson
510
+ wtv.c Peter Ross
511
+ wvenc.c Paul B Mahol
512
+
513
+ Protocols:
514
+ async.c Zhang Rui
515
+ bluray.c Petri Hintukainen
516
+ ftp.c Lukasz Marek
517
+ http.c Ronald S. Bultje
518
+ libsrt.c Zhao Zhili
519
+ libssh.c Lukasz Marek
520
+ libzmq.c Andriy Gelman
521
+ mms*.c Ronald S. Bultje
522
+ udp.c Luca Abeni
523
+ icecast.c Marvin Scholz
524
+
525
+
526
+ libswresample
527
+ =============
528
+
529
+ Generic parts:
530
+ audioconvert.c Michael Niedermayer
531
+ dither.c Michael Niedermayer
532
+ rematrix*.c Michael Niedermayer
533
+ swresample*.c Michael Niedermayer
534
+
535
+ Resamplers:
536
+ resample*.c Michael Niedermayer
537
+ soxr_resample.c Rob Sykes
538
+
539
+
540
+ Operating systems / CPU architectures
541
+ =====================================
542
+
543
+ Alpha Falk Hueffner
544
+ MIPS Manojkumar Bhosale, Shiyou Yin
545
+ LoongArch Shiyou Yin
546
+ Mac OS X / PowerPC Romain Dolbeau, Guillaume Poirier
547
+ Amiga / PowerPC Colin Ward
548
+ Linux / PowerPC Lauri Kasanen
549
+ RISC-V Rémi Denis-Courmont
550
+ Windows MinGW Alex Beregszaszi, Ramiro Polla
551
+ Windows Cygwin Victor Paesa
552
+ Windows MSVC Matthew Oliver, Hendrik Leppkes
553
+ Windows ICL Matthew Oliver
554
+ ADI/Blackfin DSP Marc Hoffman
555
+ Sparc Roman Shaposhnik
556
+ OS/2 KO Myung-Hun
557
+
558
+
559
+ Developers with git write access who are currently not maintaining any specific part
560
+ ====================================================================================
561
+ Alex Converse
562
+ Andreas Cadhalpun
563
+ Anuradha Suraparaju
564
+ Ben Littler
565
+ Benjamin Larsson
566
+ Bobby Bingham
567
+ Daniel Verkamp
568
+ Derek Buitenhuis
569
+ Ganesh Ajjanagadde
570
+ Henrik Gramner
571
+ Ivan Uskov
572
+ James Darnley
573
+ Jan Ekström
574
+ Joakim Plate
575
+ Jun Zhao
576
+ Kieran Kunhya
577
+ Kirill Gavrilov
578
+ Limin Wang
579
+ Martin Storsjö
580
+ Panagiotis Issaris
581
+ Pedro Arthur
582
+ Sebastien Zwickert
583
+ Vittorio Giovara
584
+ wm4
585
+ (this list is incomplete)
586
+
587
+
588
+ Releases
589
+ ========
590
+
591
+ 2.8 Michael Niedermayer
592
+ 2.7 Michael Niedermayer
593
+ 2.6 Michael Niedermayer
594
+ 2.5 Michael Niedermayer
595
+
596
+ If you want to maintain an older release, please contact us
597
+
598
+
599
+ GnuPG Fingerprints and IRC nicknames of maintainers and contributors
600
+ ====================================================================
601
+
602
+ IRC nicknames are in parentheses. These apply
603
+ to the IRC channels listed on the website.
604
+
605
+ Alexander Strasser 1C96 78B7 83CB 8AA7 9AF5 D1EB A7D8 A57B A876 E58F
606
+ Anssi Hannula 1A92 FF42 2DD9 8D2E 8AF7 65A9 4278 C520 513D F3CB
607
+ Ash Hughes 694D 43D2 D180 C7C7 6421 ABD3 A641 D0B7 623D 6029
608
+ Attila Kinali 11F0 F9A6 A1D2 11F6 C745 D10C 6520 BCDD F2DF E765
609
+ Baptiste Coudurier 8D77 134D 20CC 9220 201F C5DB 0AC9 325C 5C1A BAAA
610
+ Ben Littler 3EE3 3723 E560 3214 A8CD 4DEB 2CDB FCE7 768C 8D2C
611
+ Benoit Fouet B22A 4F4F 43EF 636B BB66 FCDC 0023 AE1E 2985 49C8
612
+ Clément Bœsch 52D0 3A82 D445 F194 DB8B 2B16 87EE 2CB8 F4B8 FCF9
613
+ Daniel Verkamp 78A6 07ED 782C 653E C628 B8B9 F0EB 8DD8 2F0E 21C7
614
+ FFmpeg release signing key FCF9 86EA 15E6 E293 A564 4F10 B432 2F04 D676 58D8
615
+ Ganesh Ajjanagadde C96A 848E 97C3 CEA2 AB72 5CE4 45F9 6A2D 3C36 FB1B
616
+ Gwenole Beauchesne 2E63 B3A6 3E44 37E2 017D 2704 53C7 6266 B153 99C4
617
+ Haihao Xiang (haihao) 1F0C 31E8 B4FE F7A4 4DC1 DC99 E0F5 76D4 76FC 437F
618
+ Jaikrishnan Menon 61A1 F09F 01C9 2D45 78E1 C862 25DC 8831 AF70 D368
619
+ James Almer 7751 2E8C FD94 A169 57E6 9A7A 1463 01AD 7376 59E0
620
+ Jean Delvare 7CA6 9F44 60F1 BDC4 1FD2 C858 A552 6B9B B3CD 4E6A
621
+ Leo Izen (Traneptora) B6FD 3CFC 7ACF 83FC 9137 6945 5A71 C331 FD2F A19A
622
+ Loren Merritt ABD9 08F4 C920 3F65 D8BE 35D7 1540 DAA7 060F 56DE
623
+ Lynne FE50 139C 6805 72CA FD52 1F8D A2FE A5F0 3F03 4464
624
+ Michael Niedermayer 9FF2 128B 147E F673 0BAD F133 611E C787 040B 0FAB
625
+ DD1E C9E8 DE08 5C62 9B3E 1846 B18E 8928 B394 8D64
626
+ Nicolas George 24CE 01CE 9ACC 5CEB 74D8 8D9D B063 D997 36E5 4C93
627
+ Niklas Haas (haasn) 1DDB 8076 B14D 5B48 32FC 99D9 EB52 DA9C 02BA 6FB4
628
+ Nikolay Aleksandrov 8978 1D8C FB71 588E 4B27 EAA8 C4F0 B5FC E011 13B1
629
+ Panagiotis Issaris 6571 13A3 33D9 3726 F728 AA98 F643 B12E ECF3 E029
630
+ Peter Ross A907 E02F A6E5 0CD2 34CD 20D2 6760 79C5 AC40 DD6B
631
+ Philip Langdale 5DC5 8D66 5FBA 3A43 18EC 045E F8D6 B194 6A75 682E
632
+ Pierre-Anthony Lemieux (pal) F4B3 9492 E6F2 E4AF AEC8 46CB 698F A1F0 F8D4 EED4
633
+ Ramiro Polla 7859 C65B 751B 1179 792E DAE8 8E95 8B2F 9B6C 5700
634
+ Reimar Doeffinger C61D 16E5 9E2C D10C 8958 38A4 0899 A2B9 06D4 D9C7
635
+ Reinhard Tartler 9300 5DC2 7E87 6C37 ED7B CA9A 9808 3544 9453 48A4
636
+ Reynaldo H. Verdejo Pinochet 6E27 CD34 170C C78E 4D4F 5F40 C18E 077F 3114 452A
637
+ Robert Swain EE7A 56EA 4A81 A7B5 2001 A521 67FA 362D A2FC 3E71
638
+ Sascha Sommer 38A0 F88B 868E 9D3A 97D4 D6A0 E823 706F 1E07 0D3C
639
+ Stefano Sabatini 0D0B AD6B 5330 BBAD D3D6 6A0C 719C 2839 FC43 2D5F
640
+ Steinar H. Gunderson C2E9 004F F028 C18E 4EAD DB83 7F61 7561 7797 8F76
641
+ Stephan Hilb 4F38 0B3A 5F39 B99B F505 E562 8D5C 5554 4E17 8863
642
+ Thilo Borgmann (thilo) CE1D B7F4 4D20 FC3A DD9F FE5A 257C 5B8F 1D20 B92F
643
+ Tiancheng "Timothy" Gu 9456 AFC0 814A 8139 E994 8351 7FE6 B095 B582 B0D4
644
+ Tim Nicholson 38CF DB09 3ED0 F607 8B67 6CED 0C0B FC44 8B0B FC83
645
+ Tomas Härdin (thardin) A79D 4E3D F38F 763F 91F5 8B33 A01E 8AE0 41BB 2551
646
+ Wei Gao 4269 7741 857A 0E60 9EC5 08D2 4744 4EFA 62C1 87B9
647
+ Zane van Iperen (zane) 61AE D40F 368B 6F26 9DAE 3892 6861 6B2D 8AC4 DCC5
Makefile ADDED
@@ -0,0 +1,200 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MAIN_MAKEFILE=1
2
+ include ffbuild/config.mak
3
+
4
+ vpath %.c $(SRC_PATH)
5
+ vpath %.cpp $(SRC_PATH)
6
+ vpath %.h $(SRC_PATH)
7
+ vpath %.inc $(SRC_PATH)
8
+ vpath %.m $(SRC_PATH)
9
+ vpath %.S $(SRC_PATH)
10
+ vpath %.asm $(SRC_PATH)
11
+ vpath %.rc $(SRC_PATH)
12
+ vpath %.v $(SRC_PATH)
13
+ vpath %.texi $(SRC_PATH)
14
+ vpath %.cu $(SRC_PATH)
15
+ vpath %.ptx $(SRC_PATH)
16
+ vpath %.metal $(SRC_PATH)
17
+ vpath %/fate_config.sh.template $(SRC_PATH)
18
+
19
+ TESTTOOLS = audiogen videogen rotozoom tiny_psnr tiny_ssim base64 audiomatch
20
+ HOSTPROGS := $(TESTTOOLS:%=tests/%) doc/print_options
21
+
22
+ ALLFFLIBS = avcodec avdevice avfilter avformat avutil postproc swscale swresample
23
+
24
+ # $(FFLIBS-yes) needs to be in linking order
25
+ FFLIBS-$(CONFIG_AVDEVICE) += avdevice
26
+ FFLIBS-$(CONFIG_AVFILTER) += avfilter
27
+ FFLIBS-$(CONFIG_AVFORMAT) += avformat
28
+ FFLIBS-$(CONFIG_AVCODEC) += avcodec
29
+ FFLIBS-$(CONFIG_POSTPROC) += postproc
30
+ FFLIBS-$(CONFIG_SWRESAMPLE) += swresample
31
+ FFLIBS-$(CONFIG_SWSCALE) += swscale
32
+
33
+ FFLIBS := avutil
34
+
35
+ DATA_FILES := $(wildcard $(SRC_PATH)/presets/*.ffpreset) $(SRC_PATH)/doc/ffprobe.xsd
36
+
37
+ SKIPHEADERS = compat/w32pthreads.h
38
+
39
+ # first so "all" becomes default target
40
+ all: all-yes
41
+
42
+ include $(SRC_PATH)/tools/Makefile
43
+ include $(SRC_PATH)/ffbuild/common.mak
44
+
45
+ FF_EXTRALIBS := $(FFEXTRALIBS)
46
+ FF_DEP_LIBS := $(DEP_LIBS)
47
+ FF_STATIC_DEP_LIBS := $(STATIC_DEP_LIBS)
48
+
49
+ $(TOOLS): %$(EXESUF): %.o
50
+ $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(EXTRALIBS-$(*F)) $(EXTRALIBS) $(ELIBS)
51
+
52
+ target_dec_%_fuzzer$(EXESUF): target_dec_%_fuzzer.o $(FF_DEP_LIBS)
53
+ $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(ELIBS) $(FF_EXTRALIBS) $(LIBFUZZER_PATH)
54
+
55
+ tools/target_bsf_%_fuzzer$(EXESUF): tools/target_bsf_%_fuzzer.o $(FF_DEP_LIBS)
56
+ $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(ELIBS) $(FF_EXTRALIBS) $(LIBFUZZER_PATH)
57
+
58
+ target_dem_%_fuzzer$(EXESUF): target_dem_%_fuzzer.o $(FF_DEP_LIBS)
59
+ $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(ELIBS) $(FF_EXTRALIBS) $(LIBFUZZER_PATH)
60
+
61
+ tools/target_dem_fuzzer$(EXESUF): tools/target_dem_fuzzer.o $(FF_DEP_LIBS)
62
+ $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(ELIBS) $(FF_EXTRALIBS) $(LIBFUZZER_PATH)
63
+
64
+ tools/target_io_dem_fuzzer$(EXESUF): tools/target_io_dem_fuzzer.o $(FF_DEP_LIBS)
65
+ $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(ELIBS) $(FF_EXTRALIBS) $(LIBFUZZER_PATH)
66
+
67
+
68
+ tools/enum_options$(EXESUF): ELIBS = $(FF_EXTRALIBS)
69
+ tools/enum_options$(EXESUF): $(FF_DEP_LIBS)
70
+ tools/enc_recon_frame_test$(EXESUF): $(FF_DEP_LIBS)
71
+ tools/enc_recon_frame_test$(EXESUF): ELIBS = $(FF_EXTRALIBS)
72
+ tools/scale_slice_test$(EXESUF): $(FF_DEP_LIBS)
73
+ tools/scale_slice_test$(EXESUF): ELIBS = $(FF_EXTRALIBS)
74
+ tools/sofa2wavs$(EXESUF): ELIBS = $(FF_EXTRALIBS)
75
+ tools/uncoded_frame$(EXESUF): $(FF_DEP_LIBS)
76
+ tools/uncoded_frame$(EXESUF): ELIBS = $(FF_EXTRALIBS)
77
+ tools/target_dec_%_fuzzer$(EXESUF): $(FF_DEP_LIBS)
78
+ tools/target_dem_%_fuzzer$(EXESUF): $(FF_DEP_LIBS)
79
+
80
+ CONFIGURABLE_COMPONENTS = \
81
+ $(wildcard $(FFLIBS:%=$(SRC_PATH)/lib%/all*.c)) \
82
+ $(SRC_PATH)/libavcodec/bitstream_filters.c \
83
+ $(SRC_PATH)/libavcodec/hwaccels.h \
84
+ $(SRC_PATH)/libavcodec/parsers.c \
85
+ $(SRC_PATH)/libavformat/protocols.c \
86
+
87
+ config_components.h: ffbuild/.config
88
+ ffbuild/.config: $(CONFIGURABLE_COMPONENTS)
89
+ @-tput bold 2>/dev/null
90
+ @-printf '\nWARNING: $(?) newer than config_components.h, rerun configure\n\n'
91
+ @-tput sgr0 2>/dev/null
92
+
93
+ SUBDIR_VARS := CLEANFILES FFLIBS HOSTPROGS TESTPROGS TOOLS \
94
+ HEADERS ARCH_HEADERS BUILT_HEADERS SKIPHEADERS \
95
+ ARMV5TE-OBJS ARMV6-OBJS ARMV8-OBJS VFP-OBJS NEON-OBJS \
96
+ ALTIVEC-OBJS VSX-OBJS RVV-OBJS MMX-OBJS X86ASM-OBJS \
97
+ MIPSFPU-OBJS MIPSDSPR2-OBJS MIPSDSP-OBJS MSA-OBJS \
98
+ MMI-OBJS LSX-OBJS LASX-OBJS OBJS SLIBOBJS SHLIBOBJS \
99
+ STLIBOBJS HOSTOBJS TESTOBJS
100
+
101
+ define RESET
102
+ $(1) :=
103
+ $(1)-yes :=
104
+ endef
105
+
106
+ define DOSUBDIR
107
+ $(foreach V,$(SUBDIR_VARS),$(eval $(call RESET,$(V))))
108
+ SUBDIR := $(1)/
109
+ include $(SRC_PATH)/$(1)/Makefile
110
+ -include $(SRC_PATH)/$(1)/$(ARCH)/Makefile
111
+ -include $(SRC_PATH)/$(1)/$(INTRINSICS)/Makefile
112
+ include $(SRC_PATH)/ffbuild/library.mak
113
+ endef
114
+
115
+ $(foreach D,$(FFLIBS),$(eval $(call DOSUBDIR,lib$(D))))
116
+
117
+ include $(SRC_PATH)/fftools/Makefile
118
+ include $(SRC_PATH)/doc/Makefile
119
+ include $(SRC_PATH)/doc/examples/Makefile
120
+
121
+ $(ALLFFLIBS:%=lib%/version.o): libavutil/ffversion.h
122
+
123
+ $(PROGS): %$(PROGSSUF)$(EXESUF): %$(PROGSSUF)_g$(EXESUF)
124
+ ifeq ($(STRIPTYPE),direct)
125
+ $(STRIP) -o $@ $<
126
+ else
127
+ $(RM) $@
128
+ $(CP) $< $@
129
+ $(STRIP) $@
130
+ endif
131
+
132
+ %$(PROGSSUF)_g$(EXESUF): $(FF_DEP_LIBS)
133
+ $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $(OBJS-$*) $(FF_EXTRALIBS)
134
+
135
+ VERSION_SH = $(SRC_PATH)/ffbuild/version.sh
136
+ GIT_LOG = $(SRC_PATH)/.git/logs/HEAD
137
+
138
+ .version: $(wildcard $(GIT_LOG)) $(VERSION_SH) ffbuild/config.mak
139
+ .version: M=@
140
+
141
+ libavutil/ffversion.h .version:
142
+ $(M)$(VERSION_SH) $(SRC_PATH) libavutil/ffversion.h $(EXTRA_VERSION)
143
+ $(Q)touch .version
144
+
145
+ # force version.sh to run whenever version might have changed
146
+ -include .version
147
+
148
+ install: install-libs install-headers
149
+
150
+ install-libs: install-libs-yes
151
+
152
+ install-data: $(DATA_FILES)
153
+ $(Q)mkdir -p "$(DATADIR)"
154
+ $(INSTALL) -m 644 $(DATA_FILES) "$(DATADIR)"
155
+
156
+ uninstall: uninstall-data uninstall-headers uninstall-libs uninstall-pkgconfig
157
+
158
+ uninstall-data:
159
+ $(RM) -r "$(DATADIR)"
160
+
161
+ clean::
162
+ $(RM) $(CLEANSUFFIXES)
163
+ $(RM) $(addprefix compat/,$(CLEANSUFFIXES)) $(addprefix compat/*/,$(CLEANSUFFIXES)) $(addprefix compat/*/*/,$(CLEANSUFFIXES))
164
+ $(RM) -r coverage-html
165
+ $(RM) -rf coverage.info coverage.info.in lcov
166
+
167
+ distclean:: clean
168
+ $(RM) .version config.asm config.h config_components.h mapfile \
169
+ ffbuild/.config ffbuild/config.* libavutil/avconfig.h \
170
+ version.h libavutil/ffversion.h libavcodec/codec_names.h \
171
+ libavcodec/bsf_list.c libavformat/protocol_list.c \
172
+ libavcodec/codec_list.c libavcodec/parser_list.c \
173
+ libavfilter/filter_list.c libavdevice/indev_list.c libavdevice/outdev_list.c \
174
+ libavformat/muxer_list.c libavformat/demuxer_list.c
175
+ ifeq ($(SRC_LINK),src)
176
+ $(RM) src
177
+ endif
178
+ $(RM) -rf doc/examples/pc-uninstalled
179
+
180
+ config:
181
+ $(SRC_PATH)/configure $(value FFMPEG_CONFIGURATION)
182
+
183
+ build: all alltools examples testprogs
184
+ check: all alltools examples testprogs fate
185
+
186
+ include $(SRC_PATH)/tests/Makefile
187
+
188
+ $(sort $(OUTDIRS)):
189
+ $(Q)mkdir -p $@
190
+
191
+ # Dummy rule to stop make trying to rebuild removed or renamed headers
192
+ %.h:
193
+ @:
194
+
195
+ # Disable suffix rules. Most of the builtin rules are suffix rules,
196
+ # so this saves some time on slow systems.
197
+ .SUFFIXES:
198
+
199
+ .PHONY: all all-yes alltools build check config testprogs
200
+ .PHONY: *clean install* uninstall*
README.md ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FFmpeg README
2
+ =============
3
+
4
+ FFmpeg is a collection of libraries and tools to process multimedia content
5
+ such as audio, video, subtitles and related metadata.
6
+
7
+ ## Libraries
8
+
9
+ * `libavcodec` provides implementation of a wider range of codecs.
10
+ * `libavformat` implements streaming protocols, container formats and basic I/O access.
11
+ * `libavutil` includes hashers, decompressors and miscellaneous utility functions.
12
+ * `libavfilter` provides means to alter decoded audio and video through a directed graph of connected filters.
13
+ * `libavdevice` provides an abstraction to access capture and playback devices.
14
+ * `libswresample` implements audio mixing and resampling routines.
15
+ * `libswscale` implements color conversion and scaling routines.
16
+
17
+ ## Tools
18
+
19
+ * [ffmpeg](https://ffmpeg.org/ffmpeg.html) is a command line toolbox to
20
+ manipulate, convert and stream multimedia content.
21
+ * [ffplay](https://ffmpeg.org/ffplay.html) is a minimalistic multimedia player.
22
+ * [ffprobe](https://ffmpeg.org/ffprobe.html) is a simple analysis tool to inspect
23
+ multimedia content.
24
+ * Additional small tools such as `aviocat`, `ismindex` and `qt-faststart`.
25
+
26
+ ## Documentation
27
+
28
+ The offline documentation is available in the **doc/** directory.
29
+
30
+ The online documentation is available in the main [website](https://ffmpeg.org)
31
+ and in the [wiki](https://trac.ffmpeg.org).
32
+
33
+ ### Examples
34
+
35
+ Coding examples are available in the **doc/examples** directory.
36
+
37
+ ## License
38
+
39
+ FFmpeg codebase is mainly LGPL-licensed with optional components licensed under
40
+ GPL. Please refer to the LICENSE file for detailed information.
41
+
42
+ ## Contributing
43
+
44
+ Patches should be submitted to the ffmpeg-devel mailing list using
45
+ `git format-patch` or `git send-email`. Github pull requests should be
46
+ avoided because they are not part of our review process and will be ignored.
RELEASE ADDED
@@ -0,0 +1 @@
 
 
1
+ 5.1.git
compat/aix/math.h ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Work around the class() function in AIX math.h clashing with
3
+ * identifiers named "class".
4
+ *
5
+ * This file is part of FFmpeg.
6
+ *
7
+ * FFmpeg is free software; you can redistribute it and/or
8
+ * modify it under the terms of the GNU Lesser General Public
9
+ * License as published by the Free Software Foundation; either
10
+ * version 2.1 of the License, or (at your option) any later version.
11
+ *
12
+ * FFmpeg is distributed in the hope that it will be useful,
13
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
+ * Lesser General Public License for more details.
16
+ *
17
+ * You should have received a copy of the GNU Lesser General Public
18
+ * License along with FFmpeg; if not, write to the Free Software
19
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
+ */
21
+
22
+ #ifndef COMPAT_AIX_MATH_H
23
+ #define COMPAT_AIX_MATH_H
24
+
25
+ #define class class_in_math_h_causes_problems
26
+
27
+ #include_next <math.h>
28
+
29
+ #undef class
30
+
31
+ #endif /* COMPAT_AIX_MATH_H */
compat/atomics/dummy/stdatomic.h ADDED
@@ -0,0 +1,176 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * This file is part of FFmpeg.
3
+ *
4
+ * FFmpeg is free software; you can redistribute it and/or
5
+ * modify it under the terms of the GNU Lesser General Public
6
+ * License as published by the Free Software Foundation; either
7
+ * version 2.1 of the License, or (at your option) any later version.
8
+ *
9
+ * FFmpeg is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
+ * Lesser General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU Lesser General Public
15
+ * License along with FFmpeg; if not, write to the Free Software
16
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
+ */
18
+
19
+ /*
20
+ * based on vlc_atomic.h from VLC
21
+ * Copyright (C) 2010 Rémi Denis-Courmont
22
+ */
23
+
24
+ #ifndef COMPAT_ATOMICS_DUMMY_STDATOMIC_H
25
+ #define COMPAT_ATOMICS_DUMMY_STDATOMIC_H
26
+
27
+ #include <stdint.h>
28
+
29
+ #define ATOMIC_FLAG_INIT 0
30
+
31
+ #define ATOMIC_VAR_INIT(value) (value)
32
+
33
+ #define atomic_init(obj, value) \
34
+ do { \
35
+ *(obj) = (value); \
36
+ } while(0)
37
+
38
+ #define kill_dependency(y) ((void)0)
39
+
40
+ #define atomic_thread_fence(order) \
41
+ ((void)0)
42
+
43
+ #define atomic_signal_fence(order) \
44
+ ((void)0)
45
+
46
+ #define atomic_is_lock_free(obj) 0
47
+
48
+ typedef intptr_t atomic_flag;
49
+ typedef intptr_t atomic_bool;
50
+ typedef intptr_t atomic_char;
51
+ typedef intptr_t atomic_schar;
52
+ typedef intptr_t atomic_uchar;
53
+ typedef intptr_t atomic_short;
54
+ typedef intptr_t atomic_ushort;
55
+ typedef intptr_t atomic_int;
56
+ typedef intptr_t atomic_uint;
57
+ typedef intptr_t atomic_long;
58
+ typedef intptr_t atomic_ulong;
59
+ typedef intptr_t atomic_llong;
60
+ typedef intptr_t atomic_ullong;
61
+ typedef intptr_t atomic_wchar_t;
62
+ typedef intptr_t atomic_int_least8_t;
63
+ typedef intptr_t atomic_uint_least8_t;
64
+ typedef intptr_t atomic_int_least16_t;
65
+ typedef intptr_t atomic_uint_least16_t;
66
+ typedef intptr_t atomic_int_least32_t;
67
+ typedef intptr_t atomic_uint_least32_t;
68
+ typedef intptr_t atomic_int_least64_t;
69
+ typedef intptr_t atomic_uint_least64_t;
70
+ typedef intptr_t atomic_int_fast8_t;
71
+ typedef intptr_t atomic_uint_fast8_t;
72
+ typedef intptr_t atomic_int_fast16_t;
73
+ typedef intptr_t atomic_uint_fast16_t;
74
+ typedef intptr_t atomic_int_fast32_t;
75
+ typedef intptr_t atomic_uint_fast32_t;
76
+ typedef intptr_t atomic_int_fast64_t;
77
+ typedef intptr_t atomic_uint_fast64_t;
78
+ typedef intptr_t atomic_intptr_t;
79
+ typedef intptr_t atomic_uintptr_t;
80
+ typedef intptr_t atomic_size_t;
81
+ typedef intptr_t atomic_ptrdiff_t;
82
+ typedef intptr_t atomic_intmax_t;
83
+ typedef intptr_t atomic_uintmax_t;
84
+
85
+ #define atomic_store(object, desired) \
86
+ do { \
87
+ *(object) = (desired); \
88
+ } while (0)
89
+
90
+ #define atomic_store_explicit(object, desired, order) \
91
+ atomic_store(object, desired)
92
+
93
+ #define atomic_load(object) \
94
+ (*(object))
95
+
96
+ #define atomic_load_explicit(object, order) \
97
+ atomic_load(object)
98
+
99
+ static inline intptr_t atomic_exchange(intptr_t *object, intptr_t desired)
100
+ {
101
+ intptr_t ret = *object;
102
+ *object = desired;
103
+ return ret;
104
+ }
105
+
106
+ #define atomic_exchange_explicit(object, desired, order) \
107
+ atomic_exchange(object, desired)
108
+
109
+ static inline int atomic_compare_exchange_strong(intptr_t *object, intptr_t *expected,
110
+ intptr_t desired)
111
+ {
112
+ int ret;
113
+ if (*object == *expected) {
114
+ *object = desired;
115
+ ret = 1;
116
+ } else {
117
+ *expected = *object;
118
+ ret = 0;
119
+ }
120
+ return ret;
121
+ }
122
+
123
+ #define atomic_compare_exchange_strong_explicit(object, expected, desired, success, failure) \
124
+ atomic_compare_exchange_strong(object, expected, desired)
125
+
126
+ #define atomic_compare_exchange_weak(object, expected, desired) \
127
+ atomic_compare_exchange_strong(object, expected, desired)
128
+
129
+ #define atomic_compare_exchange_weak_explicit(object, expected, desired, success, failure) \
130
+ atomic_compare_exchange_weak(object, expected, desired)
131
+
132
+ #define FETCH_MODIFY(opname, op) \
133
+ static inline intptr_t atomic_fetch_ ## opname(intptr_t *object, intptr_t operand) \
134
+ { \
135
+ intptr_t ret; \
136
+ ret = *object; \
137
+ *object = *object op operand; \
138
+ return ret; \
139
+ }
140
+
141
+ FETCH_MODIFY(add, +)
142
+ FETCH_MODIFY(sub, -)
143
+ FETCH_MODIFY(or, |)
144
+ FETCH_MODIFY(xor, ^)
145
+ FETCH_MODIFY(and, &)
146
+
147
+ #undef FETCH_MODIFY
148
+
149
+ #define atomic_fetch_add_explicit(object, operand, order) \
150
+ atomic_fetch_add(object, operand)
151
+
152
+ #define atomic_fetch_sub_explicit(object, operand, order) \
153
+ atomic_fetch_sub(object, operand)
154
+
155
+ #define atomic_fetch_or_explicit(object, operand, order) \
156
+ atomic_fetch_or(object, operand)
157
+
158
+ #define atomic_fetch_xor_explicit(object, operand, order) \
159
+ atomic_fetch_xor(object, operand)
160
+
161
+ #define atomic_fetch_and_explicit(object, operand, order) \
162
+ atomic_fetch_and(object, operand)
163
+
164
+ #define atomic_flag_test_and_set(object) \
165
+ atomic_exchange(object, 1)
166
+
167
+ #define atomic_flag_test_and_set_explicit(object, order) \
168
+ atomic_flag_test_and_set(object)
169
+
170
+ #define atomic_flag_clear(object) \
171
+ atomic_store(object, 0)
172
+
173
+ #define atomic_flag_clear_explicit(object, order) \
174
+ atomic_flag_clear(object)
175
+
176
+ #endif /* COMPAT_ATOMICS_DUMMY_STDATOMIC_H */
compat/atomics/gcc/stdatomic.h ADDED
@@ -0,0 +1,173 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * This file is part of FFmpeg.
3
+ *
4
+ * FFmpeg is free software; you can redistribute it and/or
5
+ * modify it under the terms of the GNU Lesser General Public
6
+ * License as published by the Free Software Foundation; either
7
+ * version 2.1 of the License, or (at your option) any later version.
8
+ *
9
+ * FFmpeg is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
+ * Lesser General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU Lesser General Public
15
+ * License along with FFmpeg; if not, write to the Free Software
16
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
+ */
18
+
19
+ /*
20
+ * based on vlc_atomic.h from VLC
21
+ * Copyright (C) 2010 Rémi Denis-Courmont
22
+ */
23
+
24
+ #ifndef COMPAT_ATOMICS_GCC_STDATOMIC_H
25
+ #define COMPAT_ATOMICS_GCC_STDATOMIC_H
26
+
27
+ #include <stddef.h>
28
+ #include <stdint.h>
29
+
30
+ #define ATOMIC_FLAG_INIT 0
31
+
32
+ #define ATOMIC_VAR_INIT(value) (value)
33
+
34
+ #define atomic_init(obj, value) \
35
+ do { \
36
+ *(obj) = (value); \
37
+ } while(0)
38
+
39
+ #define kill_dependency(y) ((void)0)
40
+
41
+ #define atomic_thread_fence(order) \
42
+ __sync_synchronize()
43
+
44
+ #define atomic_signal_fence(order) \
45
+ ((void)0)
46
+
47
+ #define atomic_is_lock_free(obj) 0
48
+
49
+ typedef _Bool atomic_flag;
50
+ typedef _Bool atomic_bool;
51
+ typedef char atomic_char;
52
+ typedef signed char atomic_schar;
53
+ typedef unsigned char atomic_uchar;
54
+ typedef short atomic_short;
55
+ typedef unsigned short atomic_ushort;
56
+ typedef int atomic_int;
57
+ typedef unsigned int atomic_uint;
58
+ typedef long atomic_long;
59
+ typedef unsigned long atomic_ulong;
60
+ typedef long long atomic_llong;
61
+ typedef unsigned long long atomic_ullong;
62
+ typedef wchar_t atomic_wchar_t;
63
+ typedef int_least8_t atomic_int_least8_t;
64
+ typedef uint_least8_t atomic_uint_least8_t;
65
+ typedef int_least16_t atomic_int_least16_t;
66
+ typedef uint_least16_t atomic_uint_least16_t;
67
+ typedef int_least32_t atomic_int_least32_t;
68
+ typedef uint_least32_t atomic_uint_least32_t;
69
+ typedef int_least64_t atomic_int_least64_t;
70
+ typedef uint_least64_t atomic_uint_least64_t;
71
+ typedef int_fast8_t atomic_int_fast8_t;
72
+ typedef uint_fast8_t atomic_uint_fast8_t;
73
+ typedef int_fast16_t atomic_int_fast16_t;
74
+ typedef uint_fast16_t atomic_uint_fast16_t;
75
+ typedef int_fast32_t atomic_int_fast32_t;
76
+ typedef uint_fast32_t atomic_uint_fast32_t;
77
+ typedef int_fast64_t atomic_int_fast64_t;
78
+ typedef uint_fast64_t atomic_uint_fast64_t;
79
+ typedef intptr_t atomic_intptr_t;
80
+ typedef uintptr_t atomic_uintptr_t;
81
+ typedef size_t atomic_size_t;
82
+ typedef ptrdiff_t atomic_ptrdiff_t;
83
+ typedef intmax_t atomic_intmax_t;
84
+ typedef uintmax_t atomic_uintmax_t;
85
+
86
+ #define atomic_store(object, desired) \
87
+ do { \
88
+ *(object) = (desired); \
89
+ __sync_synchronize(); \
90
+ } while (0)
91
+
92
+ #define atomic_store_explicit(object, desired, order) \
93
+ atomic_store(object, desired)
94
+
95
+ #define atomic_load(object) \
96
+ (__sync_synchronize(), *(object))
97
+
98
+ #define atomic_load_explicit(object, order) \
99
+ atomic_load(object)
100
+
101
+ #define atomic_exchange(object, desired) \
102
+ ({ \
103
+ __typeof__(object) _obj = (object); \
104
+ __typeof__(*object) _old; \
105
+ do \
106
+ _old = atomic_load(_obj); \
107
+ while (!__sync_bool_compare_and_swap(_obj, _old, (desired))); \
108
+ _old; \
109
+ })
110
+
111
+ #define atomic_exchange_explicit(object, desired, order) \
112
+ atomic_exchange(object, desired)
113
+
114
+ #define atomic_compare_exchange_strong(object, expected, desired) \
115
+ ({ \
116
+ __typeof__(object) _exp = (expected); \
117
+ __typeof__(*object) _old = *_exp; \
118
+ *_exp = __sync_val_compare_and_swap((object), _old, (desired)); \
119
+ *_exp == _old; \
120
+ })
121
+
122
+ #define atomic_compare_exchange_strong_explicit(object, expected, desired, success, failure) \
123
+ atomic_compare_exchange_strong(object, expected, desired)
124
+
125
+ #define atomic_compare_exchange_weak(object, expected, desired) \
126
+ atomic_compare_exchange_strong(object, expected, desired)
127
+
128
+ #define atomic_compare_exchange_weak_explicit(object, expected, desired, success, failure) \
129
+ atomic_compare_exchange_weak(object, expected, desired)
130
+
131
+ #define atomic_fetch_add(object, operand) \
132
+ __sync_fetch_and_add(object, operand)
133
+
134
+ #define atomic_fetch_add_explicit(object, operand, order) \
135
+ atomic_fetch_add(object, operand)
136
+
137
+ #define atomic_fetch_sub(object, operand) \
138
+ __sync_fetch_and_sub(object, operand)
139
+
140
+ #define atomic_fetch_sub_explicit(object, operand, order) \
141
+ atomic_fetch_sub(object, operand)
142
+
143
+ #define atomic_fetch_or(object, operand) \
144
+ __sync_fetch_and_or(object, operand)
145
+
146
+ #define atomic_fetch_or_explicit(object, operand, order) \
147
+ atomic_fetch_or(object, operand)
148
+
149
+ #define atomic_fetch_xor(object, operand) \
150
+ __sync_fetch_and_xor(object, operand)
151
+
152
+ #define atomic_fetch_xor_explicit(object, operand, order) \
153
+ atomic_fetch_xor(object, operand)
154
+
155
+ #define atomic_fetch_and(object, operand) \
156
+ __sync_fetch_and_and(object, operand)
157
+
158
+ #define atomic_fetch_and_explicit(object, operand, order) \
159
+ atomic_fetch_and(object, operand)
160
+
161
+ #define atomic_flag_test_and_set(object) \
162
+ atomic_exchange(object, 1)
163
+
164
+ #define atomic_flag_test_and_set_explicit(object, order) \
165
+ atomic_flag_test_and_set(object)
166
+
167
+ #define atomic_flag_clear(object) \
168
+ atomic_store(object, 0)
169
+
170
+ #define atomic_flag_clear_explicit(object, order) \
171
+ atomic_flag_clear(object)
172
+
173
+ #endif /* COMPAT_ATOMICS_GCC_STDATOMIC_H */
compat/atomics/pthread/stdatomic.c ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * This file is part of FFmpeg.
3
+ *
4
+ * FFmpeg is free software; you can redistribute it and/or
5
+ * modify it under the terms of the GNU Lesser General Public
6
+ * License as published by the Free Software Foundation; either
7
+ * version 2.1 of the License, or (at your option) any later version.
8
+ *
9
+ * FFmpeg is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
+ * Lesser General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU Lesser General Public
15
+ * License along with FFmpeg; if not, write to the Free Software
16
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
+ */
18
+
19
+ /*
20
+ * based on vlc_atomic.h from VLC
21
+ * Copyright (C) 2010 Rémi Denis-Courmont
22
+ */
23
+
24
+ #include <pthread.h>
25
+ #include <stdint.h>
26
+
27
+ #include "stdatomic.h"
28
+
29
+ static pthread_mutex_t atomic_lock = PTHREAD_MUTEX_INITIALIZER;
30
+
31
+ void avpriv_atomic_lock(void)
32
+ {
33
+ pthread_mutex_lock(&atomic_lock);
34
+ }
35
+
36
+ void avpriv_atomic_unlock(void)
37
+ {
38
+ pthread_mutex_unlock(&atomic_lock);
39
+ }
compat/atomics/pthread/stdatomic.h ADDED
@@ -0,0 +1,197 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * This file is part of FFmpeg.
3
+ *
4
+ * FFmpeg is free software; you can redistribute it and/or
5
+ * modify it under the terms of the GNU Lesser General Public
6
+ * License as published by the Free Software Foundation; either
7
+ * version 2.1 of the License, or (at your option) any later version.
8
+ *
9
+ * FFmpeg is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
+ * Lesser General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU Lesser General Public
15
+ * License along with FFmpeg; if not, write to the Free Software
16
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
+ */
18
+
19
+ /*
20
+ * based on vlc_atomic.h from VLC
21
+ * Copyright (C) 2010 Rémi Denis-Courmont
22
+ */
23
+
24
+ #ifndef COMPAT_ATOMICS_PTHREAD_STDATOMIC_H
25
+ #define COMPAT_ATOMICS_PTHREAD_STDATOMIC_H
26
+
27
+ #include <stdint.h>
28
+
29
+ #define ATOMIC_FLAG_INIT 0
30
+
31
+ #define ATOMIC_VAR_INIT(value) (value)
32
+
33
+ #define atomic_init(obj, value) \
34
+ do { \
35
+ *(obj) = (value); \
36
+ } while(0)
37
+
38
+ #define kill_dependency(y) ((void)0)
39
+
40
+ #define atomic_signal_fence(order) \
41
+ ((void)0)
42
+
43
+ #define atomic_is_lock_free(obj) 0
44
+
45
+ typedef intptr_t atomic_flag;
46
+ typedef intptr_t atomic_bool;
47
+ typedef intptr_t atomic_char;
48
+ typedef intptr_t atomic_schar;
49
+ typedef intptr_t atomic_uchar;
50
+ typedef intptr_t atomic_short;
51
+ typedef intptr_t atomic_ushort;
52
+ typedef intptr_t atomic_int;
53
+ typedef intptr_t atomic_uint;
54
+ typedef intptr_t atomic_long;
55
+ typedef intptr_t atomic_ulong;
56
+ typedef intptr_t atomic_llong;
57
+ typedef intptr_t atomic_ullong;
58
+ typedef intptr_t atomic_wchar_t;
59
+ typedef intptr_t atomic_int_least8_t;
60
+ typedef intptr_t atomic_uint_least8_t;
61
+ typedef intptr_t atomic_int_least16_t;
62
+ typedef intptr_t atomic_uint_least16_t;
63
+ typedef intptr_t atomic_int_least32_t;
64
+ typedef intptr_t atomic_uint_least32_t;
65
+ typedef intptr_t atomic_int_least64_t;
66
+ typedef intptr_t atomic_uint_least64_t;
67
+ typedef intptr_t atomic_int_fast8_t;
68
+ typedef intptr_t atomic_uint_fast8_t;
69
+ typedef intptr_t atomic_int_fast16_t;
70
+ typedef intptr_t atomic_uint_fast16_t;
71
+ typedef intptr_t atomic_int_fast32_t;
72
+ typedef intptr_t atomic_uint_fast32_t;
73
+ typedef intptr_t atomic_int_fast64_t;
74
+ typedef intptr_t atomic_uint_fast64_t;
75
+ typedef intptr_t atomic_intptr_t;
76
+ typedef intptr_t atomic_uintptr_t;
77
+ typedef intptr_t atomic_size_t;
78
+ typedef intptr_t atomic_ptrdiff_t;
79
+ typedef intptr_t atomic_intmax_t;
80
+ typedef intptr_t atomic_uintmax_t;
81
+
82
+ void avpriv_atomic_lock(void);
83
+ void avpriv_atomic_unlock(void);
84
+
85
+ static inline void atomic_thread_fence(int order)
86
+ {
87
+ avpriv_atomic_lock();
88
+ avpriv_atomic_unlock();
89
+ }
90
+
91
+ static inline void atomic_store(intptr_t *object, intptr_t desired)
92
+ {
93
+ avpriv_atomic_lock();
94
+ *object = desired;
95
+ avpriv_atomic_unlock();
96
+ }
97
+
98
+ #define atomic_store_explicit(object, desired, order) \
99
+ atomic_store(object, desired)
100
+
101
+ static inline intptr_t atomic_load(intptr_t *object)
102
+ {
103
+ intptr_t ret;
104
+ avpriv_atomic_lock();
105
+ ret = *object;
106
+ avpriv_atomic_unlock();
107
+ return ret;
108
+ }
109
+
110
+ #define atomic_load_explicit(object, order) \
111
+ atomic_load(object)
112
+
113
+ static inline intptr_t atomic_exchange(intptr_t *object, intptr_t desired)
114
+ {
115
+ intptr_t ret;
116
+ avpriv_atomic_lock();
117
+ ret = *object;
118
+ *object = desired;
119
+ avpriv_atomic_unlock();
120
+ return ret;
121
+ }
122
+
123
+ #define atomic_exchange_explicit(object, desired, order) \
124
+ atomic_exchange(object, desired)
125
+
126
+ static inline int atomic_compare_exchange_strong(intptr_t *object, intptr_t *expected,
127
+ intptr_t desired)
128
+ {
129
+ int ret;
130
+ avpriv_atomic_lock();
131
+ if (*object == *expected) {
132
+ ret = 1;
133
+ *object = desired;
134
+ } else {
135
+ ret = 0;
136
+ *expected = *object;
137
+ }
138
+ avpriv_atomic_unlock();
139
+ return ret;
140
+ }
141
+
142
+ #define atomic_compare_exchange_strong_explicit(object, expected, desired, success, failure) \
143
+ atomic_compare_exchange_strong(object, expected, desired)
144
+
145
+ #define atomic_compare_exchange_weak(object, expected, desired) \
146
+ atomic_compare_exchange_strong(object, expected, desired)
147
+
148
+ #define atomic_compare_exchange_weak_explicit(object, expected, desired, success, failure) \
149
+ atomic_compare_exchange_weak(object, expected, desired)
150
+
151
+ #define FETCH_MODIFY(opname, op) \
152
+ static inline intptr_t atomic_fetch_ ## opname(intptr_t *object, intptr_t operand) \
153
+ { \
154
+ intptr_t ret; \
155
+ avpriv_atomic_lock(); \
156
+ ret = *object; \
157
+ *object = *object op operand; \
158
+ avpriv_atomic_unlock(); \
159
+ return ret; \
160
+ }
161
+
162
+ FETCH_MODIFY(add, +)
163
+ FETCH_MODIFY(sub, -)
164
+ FETCH_MODIFY(or, |)
165
+ FETCH_MODIFY(xor, ^)
166
+ FETCH_MODIFY(and, &)
167
+
168
+ #undef FETCH_MODIFY
169
+
170
+ #define atomic_fetch_add_explicit(object, operand, order) \
171
+ atomic_fetch_add(object, operand)
172
+
173
+ #define atomic_fetch_sub_explicit(object, operand, order) \
174
+ atomic_fetch_sub(object, operand)
175
+
176
+ #define atomic_fetch_or_explicit(object, operand, order) \
177
+ atomic_fetch_or(object, operand)
178
+
179
+ #define atomic_fetch_xor_explicit(object, operand, order) \
180
+ atomic_fetch_xor(object, operand)
181
+
182
+ #define atomic_fetch_and_explicit(object, operand, order) \
183
+ atomic_fetch_and(object, operand)
184
+
185
+ #define atomic_flag_test_and_set(object) \
186
+ atomic_exchange(object, 1)
187
+
188
+ #define atomic_flag_test_and_set_explicit(object, order) \
189
+ atomic_flag_test_and_set(object)
190
+
191
+ #define atomic_flag_clear(object) \
192
+ atomic_store(object, 0)
193
+
194
+ #define atomic_flag_clear_explicit(object, order) \
195
+ atomic_flag_clear(object)
196
+
197
+ #endif /* COMPAT_ATOMICS_PTHREAD_STDATOMIC_H */
compat/atomics/suncc/stdatomic.h ADDED
@@ -0,0 +1,186 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * This file is part of FFmpeg.
3
+ *
4
+ * FFmpeg is free software; you can redistribute it and/or
5
+ * modify it under the terms of the GNU Lesser General Public
6
+ * License as published by the Free Software Foundation; either
7
+ * version 2.1 of the License, or (at your option) any later version.
8
+ *
9
+ * FFmpeg is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
+ * Lesser General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU Lesser General Public
15
+ * License along with FFmpeg; if not, write to the Free Software
16
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
+ */
18
+
19
+ #ifndef COMPAT_ATOMICS_SUNCC_STDATOMIC_H
20
+ #define COMPAT_ATOMICS_SUNCC_STDATOMIC_H
21
+
22
+ #include <atomic.h>
23
+ #include <mbarrier.h>
24
+ #include <stddef.h>
25
+ #include <stdint.h>
26
+
27
+ #define ATOMIC_FLAG_INIT 0
28
+
29
+ #define ATOMIC_VAR_INIT(value) (value)
30
+
31
+ #define atomic_init(obj, value) \
32
+ do { \
33
+ *(obj) = (value); \
34
+ } while(0)
35
+
36
+ #define kill_dependency(y) ((void)0)
37
+
38
+ #define atomic_thread_fence(order) \
39
+ __machine_rw_barrier();
40
+
41
+ #define atomic_signal_fence(order) \
42
+ ((void)0)
43
+
44
+ #define atomic_is_lock_free(obj) 0
45
+
46
+ typedef intptr_t atomic_flag;
47
+ typedef intptr_t atomic_bool;
48
+ typedef intptr_t atomic_char;
49
+ typedef intptr_t atomic_schar;
50
+ typedef intptr_t atomic_uchar;
51
+ typedef intptr_t atomic_short;
52
+ typedef intptr_t atomic_ushort;
53
+ typedef intptr_t atomic_int;
54
+ typedef intptr_t atomic_uint;
55
+ typedef intptr_t atomic_long;
56
+ typedef intptr_t atomic_ulong;
57
+ typedef intptr_t atomic_llong;
58
+ typedef intptr_t atomic_ullong;
59
+ typedef intptr_t atomic_wchar_t;
60
+ typedef intptr_t atomic_int_least8_t;
61
+ typedef intptr_t atomic_uint_least8_t;
62
+ typedef intptr_t atomic_int_least16_t;
63
+ typedef intptr_t atomic_uint_least16_t;
64
+ typedef intptr_t atomic_int_least32_t;
65
+ typedef intptr_t atomic_uint_least32_t;
66
+ typedef intptr_t atomic_int_least64_t;
67
+ typedef intptr_t atomic_uint_least64_t;
68
+ typedef intptr_t atomic_int_fast8_t;
69
+ typedef intptr_t atomic_uint_fast8_t;
70
+ typedef intptr_t atomic_int_fast16_t;
71
+ typedef intptr_t atomic_uint_fast16_t;
72
+ typedef intptr_t atomic_int_fast32_t;
73
+ typedef intptr_t atomic_uint_fast32_t;
74
+ typedef intptr_t atomic_int_fast64_t;
75
+ typedef intptr_t atomic_uint_fast64_t;
76
+ typedef intptr_t atomic_intptr_t;
77
+ typedef intptr_t atomic_uintptr_t;
78
+ typedef intptr_t atomic_size_t;
79
+ typedef intptr_t atomic_ptrdiff_t;
80
+ typedef intptr_t atomic_intmax_t;
81
+ typedef intptr_t atomic_uintmax_t;
82
+
83
+ static inline void atomic_store(intptr_t *object, intptr_t desired)
84
+ {
85
+ *object = desired;
86
+ __machine_rw_barrier();
87
+ }
88
+
89
+ #define atomic_store_explicit(object, desired, order) \
90
+ atomic_store(object, desired)
91
+
92
+ static inline intptr_t atomic_load(intptr_t *object)
93
+ {
94
+ __machine_rw_barrier();
95
+ return *object;
96
+ }
97
+
98
+ #define atomic_load_explicit(object, order) \
99
+ atomic_load(object)
100
+
101
+ #define atomic_exchange(object, desired) \
102
+ atomic_swap_ptr(object, desired)
103
+
104
+ #define atomic_exchange_explicit(object, desired, order) \
105
+ atomic_exchange(object, desired)
106
+
107
+ static inline int atomic_compare_exchange_strong(intptr_t *object, intptr_t *expected,
108
+ intptr_t desired)
109
+ {
110
+ intptr_t old = *expected;
111
+ *expected = (intptr_t)atomic_cas_ptr(object, (void *)old, (void *)desired);
112
+ return *expected == old;
113
+ }
114
+
115
+ #define atomic_compare_exchange_strong_explicit(object, expected, desired, success, failure) \
116
+ atomic_compare_exchange_strong(object, expected, desired)
117
+
118
+ #define atomic_compare_exchange_weak(object, expected, desired) \
119
+ atomic_compare_exchange_strong(object, expected, desired)
120
+
121
+ #define atomic_compare_exchange_weak_explicit(object, expected, desired, success, failure) \
122
+ atomic_compare_exchange_weak(object, expected, desired)
123
+
124
+ static inline intptr_t atomic_fetch_add(intptr_t *object, intptr_t operand)
125
+ {
126
+ return atomic_add_ptr_nv(object, operand) - operand;
127
+ }
128
+
129
+ #define atomic_fetch_sub(object, operand) \
130
+ atomic_fetch_add(object, -(operand))
131
+
132
+ static inline intptr_t atomic_fetch_or(intptr_t *object, intptr_t operand)
133
+ {
134
+ intptr_t old;
135
+ do {
136
+ old = atomic_load(object);
137
+ } while (!atomic_compare_exchange_strong(object, old, old | operand));
138
+ return old;
139
+ }
140
+
141
+ static inline intptr_t atomic_fetch_xor(intptr_t *object, intptr_t operand)
142
+ {
143
+ intptr_t old;
144
+ do {
145
+ old = atomic_load(object);
146
+ } while (!atomic_compare_exchange_strong(object, old, old ^ operand));
147
+ return old;
148
+ }
149
+
150
+ static inline intptr_t atomic_fetch_and(intptr_t *object, intptr_t operand)
151
+ {
152
+ intptr_t old;
153
+ do {
154
+ old = atomic_load(object);
155
+ } while (!atomic_compare_exchange_strong(object, old, old & operand));
156
+ return old;
157
+ }
158
+
159
+ #define atomic_fetch_add_explicit(object, operand, order) \
160
+ atomic_fetch_add(object, operand)
161
+
162
+ #define atomic_fetch_sub_explicit(object, operand, order) \
163
+ atomic_fetch_sub(object, operand)
164
+
165
+ #define atomic_fetch_or_explicit(object, operand, order) \
166
+ atomic_fetch_or(object, operand)
167
+
168
+ #define atomic_fetch_xor_explicit(object, operand, order) \
169
+ atomic_fetch_xor(object, operand)
170
+
171
+ #define atomic_fetch_and_explicit(object, operand, order) \
172
+ atomic_fetch_and(object, operand)
173
+
174
+ #define atomic_flag_test_and_set(object) \
175
+ atomic_exchange(object, 1)
176
+
177
+ #define atomic_flag_test_and_set_explicit(object, order) \
178
+ atomic_flag_test_and_set(object)
179
+
180
+ #define atomic_flag_clear(object) \
181
+ atomic_store(object, 0)
182
+
183
+ #define atomic_flag_clear_explicit(object, order) \
184
+ atomic_flag_clear(object)
185
+
186
+ #endif /* COMPAT_ATOMICS_SUNCC_STDATOMIC_H */
compat/atomics/win32/stdatomic.h ADDED
@@ -0,0 +1,180 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * This file is part of FFmpeg.
3
+ *
4
+ * FFmpeg is free software; you can redistribute it and/or
5
+ * modify it under the terms of the GNU Lesser General Public
6
+ * License as published by the Free Software Foundation; either
7
+ * version 2.1 of the License, or (at your option) any later version.
8
+ *
9
+ * FFmpeg is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
+ * Lesser General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU Lesser General Public
15
+ * License along with FFmpeg; if not, write to the Free Software
16
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
+ */
18
+
19
+ #ifndef COMPAT_ATOMICS_WIN32_STDATOMIC_H
20
+ #define COMPAT_ATOMICS_WIN32_STDATOMIC_H
21
+
22
+ #include <stddef.h>
23
+ #include <stdint.h>
24
+ #include <windows.h>
25
+
26
+ #define ATOMIC_FLAG_INIT 0
27
+
28
+ #define ATOMIC_VAR_INIT(value) (value)
29
+
30
+ #define atomic_init(obj, value) \
31
+ do { \
32
+ *(obj) = (value); \
33
+ } while(0)
34
+
35
+ #define kill_dependency(y) ((void)0)
36
+
37
+ #define atomic_thread_fence(order) \
38
+ MemoryBarrier();
39
+
40
+ #define atomic_signal_fence(order) \
41
+ ((void)0)
42
+
43
+ #define atomic_is_lock_free(obj) 0
44
+
45
+ typedef intptr_t atomic_flag;
46
+ typedef intptr_t atomic_bool;
47
+ typedef intptr_t atomic_char;
48
+ typedef intptr_t atomic_schar;
49
+ typedef intptr_t atomic_uchar;
50
+ typedef intptr_t atomic_short;
51
+ typedef intptr_t atomic_ushort;
52
+ typedef intptr_t atomic_int;
53
+ typedef intptr_t atomic_uint;
54
+ typedef intptr_t atomic_long;
55
+ typedef intptr_t atomic_ulong;
56
+ typedef intptr_t atomic_llong;
57
+ typedef intptr_t atomic_ullong;
58
+ typedef intptr_t atomic_wchar_t;
59
+ typedef intptr_t atomic_int_least8_t;
60
+ typedef intptr_t atomic_uint_least8_t;
61
+ typedef intptr_t atomic_int_least16_t;
62
+ typedef intptr_t atomic_uint_least16_t;
63
+ typedef intptr_t atomic_int_least32_t;
64
+ typedef intptr_t atomic_uint_least32_t;
65
+ typedef intptr_t atomic_int_least64_t;
66
+ typedef intptr_t atomic_uint_least64_t;
67
+ typedef intptr_t atomic_int_fast8_t;
68
+ typedef intptr_t atomic_uint_fast8_t;
69
+ typedef intptr_t atomic_int_fast16_t;
70
+ typedef intptr_t atomic_uint_fast16_t;
71
+ typedef intptr_t atomic_int_fast32_t;
72
+ typedef intptr_t atomic_uint_fast32_t;
73
+ typedef intptr_t atomic_int_fast64_t;
74
+ typedef intptr_t atomic_uint_fast64_t;
75
+ typedef intptr_t atomic_intptr_t;
76
+ typedef intptr_t atomic_uintptr_t;
77
+ typedef intptr_t atomic_size_t;
78
+ typedef intptr_t atomic_ptrdiff_t;
79
+ typedef intptr_t atomic_intmax_t;
80
+ typedef intptr_t atomic_uintmax_t;
81
+
82
+ #define atomic_store(object, desired) \
83
+ do { \
84
+ *(object) = (desired); \
85
+ MemoryBarrier(); \
86
+ } while (0)
87
+
88
+ #define atomic_store_explicit(object, desired, order) \
89
+ atomic_store(object, desired)
90
+
91
+ #define atomic_load(object) \
92
+ (MemoryBarrier(), *(object))
93
+
94
+ #define atomic_load_explicit(object, order) \
95
+ atomic_load(object)
96
+
97
+ #define atomic_exchange(object, desired) \
98
+ InterlockedExchangePointer((PVOID volatile *)object, (PVOID)desired)
99
+
100
+ #define atomic_exchange_explicit(object, desired, order) \
101
+ atomic_exchange(object, desired)
102
+
103
+ static inline int atomic_compare_exchange_strong(intptr_t *object, intptr_t *expected,
104
+ intptr_t desired)
105
+ {
106
+ intptr_t old = *expected;
107
+ *expected = (intptr_t)InterlockedCompareExchangePointer(
108
+ (PVOID *)object, (PVOID)desired, (PVOID)old);
109
+ return *expected == old;
110
+ }
111
+
112
+ #define atomic_compare_exchange_strong_explicit(object, expected, desired, success, failure) \
113
+ atomic_compare_exchange_strong(object, expected, desired)
114
+
115
+ #define atomic_compare_exchange_weak(object, expected, desired) \
116
+ atomic_compare_exchange_strong(object, expected, desired)
117
+
118
+ #define atomic_compare_exchange_weak_explicit(object, expected, desired, success, failure) \
119
+ atomic_compare_exchange_weak(object, expected, desired)
120
+
121
+ #ifdef _WIN64
122
+ #define atomic_fetch_add(object, operand) \
123
+ InterlockedExchangeAdd64(object, operand)
124
+
125
+ #define atomic_fetch_sub(object, operand) \
126
+ InterlockedExchangeAdd64(object, -(operand))
127
+
128
+ #define atomic_fetch_or(object, operand) \
129
+ InterlockedOr64(object, operand)
130
+
131
+ #define atomic_fetch_xor(object, operand) \
132
+ InterlockedXor64(object, operand)
133
+
134
+ #define atomic_fetch_and(object, operand) \
135
+ InterlockedAnd64(object, operand)
136
+ #else
137
+ #define atomic_fetch_add(object, operand) \
138
+ InterlockedExchangeAdd(object, operand)
139
+
140
+ #define atomic_fetch_sub(object, operand) \
141
+ InterlockedExchangeAdd(object, -(operand))
142
+
143
+ #define atomic_fetch_or(object, operand) \
144
+ InterlockedOr(object, operand)
145
+
146
+ #define atomic_fetch_xor(object, operand) \
147
+ InterlockedXor(object, operand)
148
+
149
+ #define atomic_fetch_and(object, operand) \
150
+ InterlockedAnd(object, operand)
151
+ #endif /* _WIN64 */
152
+
153
+ #define atomic_fetch_add_explicit(object, operand, order) \
154
+ atomic_fetch_add(object, operand)
155
+
156
+ #define atomic_fetch_sub_explicit(object, operand, order) \
157
+ atomic_fetch_sub(object, operand)
158
+
159
+ #define atomic_fetch_or_explicit(object, operand, order) \
160
+ atomic_fetch_or(object, operand)
161
+
162
+ #define atomic_fetch_xor_explicit(object, operand, order) \
163
+ atomic_fetch_xor(object, operand)
164
+
165
+ #define atomic_fetch_and_explicit(object, operand, order) \
166
+ atomic_fetch_and(object, operand)
167
+
168
+ #define atomic_flag_test_and_set(object) \
169
+ atomic_exchange(object, 1)
170
+
171
+ #define atomic_flag_test_and_set_explicit(object, order) \
172
+ atomic_flag_test_and_set(object)
173
+
174
+ #define atomic_flag_clear(object) \
175
+ atomic_store(object, 0)
176
+
177
+ #define atomic_flag_clear_explicit(object, order) \
178
+ atomic_flag_clear(object)
179
+
180
+ #endif /* COMPAT_ATOMICS_WIN32_STDATOMIC_H */
compat/cuda/cuda_runtime.h ADDED
@@ -0,0 +1,192 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Minimum CUDA compatibility definitions header
3
+ *
4
+ * Copyright (c) 2019 rcombs
5
+ *
6
+ * This file is part of FFmpeg.
7
+ *
8
+ * FFmpeg is free software; you can redistribute it and/or
9
+ * modify it under the terms of the GNU Lesser General Public
10
+ * License as published by the Free Software Foundation; either
11
+ * version 2.1 of the License, or (at your option) any later version.
12
+ *
13
+ * FFmpeg is distributed in the hope that it will be useful,
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
+ * Lesser General Public License for more details.
17
+ *
18
+ * You should have received a copy of the GNU Lesser General Public
19
+ * License along with FFmpeg; if not, write to the Free Software
20
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21
+ */
22
+
23
+ #ifndef COMPAT_CUDA_CUDA_RUNTIME_H
24
+ #define COMPAT_CUDA_CUDA_RUNTIME_H
25
+
26
+ // Common macros
27
+ #define __global__ __attribute__((global))
28
+ #define __device__ __attribute__((device))
29
+ #define __device_builtin__ __attribute__((device_builtin))
30
+ #define __align__(N) __attribute__((aligned(N)))
31
+ #define __inline__ __inline__ __attribute__((always_inline))
32
+
33
+ #define max(a, b) ((a) > (b) ? (a) : (b))
34
+ #define min(a, b) ((a) < (b) ? (a) : (b))
35
+ #define abs(x) ((x) < 0 ? -(x) : (x))
36
+
37
+ #define atomicAdd(a, b) (__atomic_fetch_add(a, b, __ATOMIC_SEQ_CST))
38
+
39
+ // Basic typedefs
40
+ typedef __device_builtin__ unsigned long long cudaTextureObject_t;
41
+
42
+ typedef struct __device_builtin__ __align__(2) uchar2
43
+ {
44
+ unsigned char x, y;
45
+ } uchar2;
46
+
47
+ typedef struct __device_builtin__ __align__(4) ushort2
48
+ {
49
+ unsigned short x, y;
50
+ } ushort2;
51
+
52
+ typedef struct __device_builtin__ __align__(8) float2
53
+ {
54
+ float x, y;
55
+ } float2;
56
+
57
+ typedef struct __device_builtin__ __align__(8) int2
58
+ {
59
+ int x, y;
60
+ } int2;
61
+
62
+ typedef struct __device_builtin__ uint3
63
+ {
64
+ unsigned int x, y, z;
65
+ } uint3;
66
+
67
+ typedef struct uint3 dim3;
68
+
69
+ typedef struct __device_builtin__ __align__(4) uchar4
70
+ {
71
+ unsigned char x, y, z, w;
72
+ } uchar4;
73
+
74
+ typedef struct __device_builtin__ __align__(8) ushort4
75
+ {
76
+ unsigned short x, y, z, w;
77
+ } ushort4;
78
+
79
+ typedef struct __device_builtin__ __align__(16) int4
80
+ {
81
+ int x, y, z, w;
82
+ } int4;
83
+
84
+ typedef struct __device_builtin__ __align__(16) float4
85
+ {
86
+ float x, y, z, w;
87
+ } float4;
88
+
89
+ // Accessors for special registers
90
+ #define GETCOMP(reg, comp) \
91
+ asm("mov.u32 %0, %%" #reg "." #comp ";" : "=r"(tmp)); \
92
+ ret.comp = tmp;
93
+
94
+ #define GET(name, reg) static inline __device__ uint3 name() {\
95
+ uint3 ret; \
96
+ unsigned tmp; \
97
+ GETCOMP(reg, x) \
98
+ GETCOMP(reg, y) \
99
+ GETCOMP(reg, z) \
100
+ return ret; \
101
+ }
102
+
103
+ GET(getBlockIdx, ctaid)
104
+ GET(getBlockDim, ntid)
105
+ GET(getThreadIdx, tid)
106
+
107
+ // Instead of externs for these registers, we turn access to them into calls into trivial ASM
108
+ #define blockIdx (getBlockIdx())
109
+ #define blockDim (getBlockDim())
110
+ #define threadIdx (getThreadIdx())
111
+
112
+ // Basic initializers (simple macros rather than inline functions)
113
+ #define make_int2(a, b) ((int2){.x = a, .y = b})
114
+ #define make_uchar2(a, b) ((uchar2){.x = a, .y = b})
115
+ #define make_ushort2(a, b) ((ushort2){.x = a, .y = b})
116
+ #define make_float2(a, b) ((float2){.x = a, .y = b})
117
+ #define make_int4(a, b, c, d) ((int4){.x = a, .y = b, .z = c, .w = d})
118
+ #define make_uchar4(a, b, c, d) ((uchar4){.x = a, .y = b, .z = c, .w = d})
119
+ #define make_ushort4(a, b, c, d) ((ushort4){.x = a, .y = b, .z = c, .w = d})
120
+ #define make_float4(a, b, c, d) ((float4){.x = a, .y = b, .z = c, .w = d})
121
+
122
+ // Conversions from the tex instruction's 4-register output to various types
123
+ #define TEX2D(type, ret) static inline __device__ void conv(type* out, unsigned a, unsigned b, unsigned c, unsigned d) {*out = (ret);}
124
+
125
+ TEX2D(unsigned char, a & 0xFF)
126
+ TEX2D(unsigned short, a & 0xFFFF)
127
+ TEX2D(float, a)
128
+ TEX2D(uchar2, make_uchar2(a & 0xFF, b & 0xFF))
129
+ TEX2D(ushort2, make_ushort2(a & 0xFFFF, b & 0xFFFF))
130
+ TEX2D(float2, make_float2(a, b))
131
+ TEX2D(uchar4, make_uchar4(a & 0xFF, b & 0xFF, c & 0xFF, d & 0xFF))
132
+ TEX2D(ushort4, make_ushort4(a & 0xFFFF, b & 0xFFFF, c & 0xFFFF, d & 0xFFFF))
133
+ TEX2D(float4, make_float4(a, b, c, d))
134
+
135
+ // Template calling tex instruction and converting the output to the selected type
136
+ template<typename T>
137
+ inline __device__ T tex2D(cudaTextureObject_t texObject, float x, float y)
138
+ {
139
+ T ret;
140
+ unsigned ret1, ret2, ret3, ret4;
141
+ asm("tex.2d.v4.u32.f32 {%0, %1, %2, %3}, [%4, {%5, %6}];" :
142
+ "=r"(ret1), "=r"(ret2), "=r"(ret3), "=r"(ret4) :
143
+ "l"(texObject), "f"(x), "f"(y));
144
+ conv(&ret, ret1, ret2, ret3, ret4);
145
+ return ret;
146
+ }
147
+
148
+ template<>
149
+ inline __device__ float4 tex2D<float4>(cudaTextureObject_t texObject, float x, float y)
150
+ {
151
+ float4 ret;
152
+ asm("tex.2d.v4.f32.f32 {%0, %1, %2, %3}, [%4, {%5, %6}];" :
153
+ "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) :
154
+ "l"(texObject), "f"(x), "f"(y));
155
+ return ret;
156
+ }
157
+
158
+ template<>
159
+ inline __device__ float tex2D<float>(cudaTextureObject_t texObject, float x, float y)
160
+ {
161
+ return tex2D<float4>(texObject, x, y).x;
162
+ }
163
+
164
+ template<>
165
+ inline __device__ float2 tex2D<float2>(cudaTextureObject_t texObject, float x, float y)
166
+ {
167
+ float4 ret = tex2D<float4>(texObject, x, y);
168
+ return make_float2(ret.x, ret.y);
169
+ }
170
+
171
+ // Math helper functions
172
+ static inline __device__ float floorf(float a) { return __builtin_floorf(a); }
173
+ static inline __device__ float floor(float a) { return __builtin_floorf(a); }
174
+ static inline __device__ double floor(double a) { return __builtin_floor(a); }
175
+ static inline __device__ float ceilf(float a) { return __builtin_ceilf(a); }
176
+ static inline __device__ float ceil(float a) { return __builtin_ceilf(a); }
177
+ static inline __device__ double ceil(double a) { return __builtin_ceil(a); }
178
+ static inline __device__ float truncf(float a) { return __builtin_truncf(a); }
179
+ static inline __device__ float trunc(float a) { return __builtin_truncf(a); }
180
+ static inline __device__ double trunc(double a) { return __builtin_trunc(a); }
181
+ static inline __device__ float fabsf(float a) { return __builtin_fabsf(a); }
182
+ static inline __device__ float fabs(float a) { return __builtin_fabsf(a); }
183
+ static inline __device__ double fabs(double a) { return __builtin_fabs(a); }
184
+ static inline __device__ float sqrtf(float a) { return __builtin_sqrtf(a); }
185
+
186
+ static inline __device__ float __saturatef(float a) { return __nvvm_saturate_f(a); }
187
+ static inline __device__ float __sinf(float a) { return __nvvm_sin_approx_f(a); }
188
+ static inline __device__ float __cosf(float a) { return __nvvm_cos_approx_f(a); }
189
+ static inline __device__ float __expf(float a) { return __nvvm_ex2_approx_f(a * (float)__builtin_log2(__builtin_exp(1))); }
190
+ static inline __device__ float __powf(float a, float b) { return __nvvm_ex2_approx_f(__nvvm_lg2_approx_f(a) * b); }
191
+
192
+ #endif /* COMPAT_CUDA_CUDA_RUNTIME_H */
compat/cuda/dynlink_loader.h ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * This file is part of FFmpeg.
3
+ *
4
+ * FFmpeg is free software; you can redistribute it and/or
5
+ * modify it under the terms of the GNU Lesser General Public
6
+ * License as published by the Free Software Foundation; either
7
+ * version 2.1 of the License, or (at your option) any later version.
8
+ *
9
+ * FFmpeg is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
+ * Lesser General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU Lesser General Public
15
+ * License along with FFmpeg; if not, write to the Free Software
16
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
+ */
18
+
19
+ #ifndef COMPAT_CUDA_DYNLINK_LOADER_H
20
+ #define COMPAT_CUDA_DYNLINK_LOADER_H
21
+
22
+ #include "libavutil/log.h"
23
+ #include "compat/w32dlfcn.h"
24
+
25
+ #define FFNV_LOAD_FUNC(path) dlopen((path), RTLD_LAZY)
26
+ #define FFNV_SYM_FUNC(lib, sym) dlsym((lib), (sym))
27
+ #define FFNV_FREE_FUNC(lib) dlclose(lib)
28
+ #define FFNV_LOG_FUNC(logctx, msg, ...) av_log(logctx, AV_LOG_ERROR, msg, __VA_ARGS__)
29
+ #define FFNV_DEBUG_LOG_FUNC(logctx, msg, ...) av_log(logctx, AV_LOG_DEBUG, msg, __VA_ARGS__)
30
+
31
+ #include <ffnvcodec/dynlink_loader.h>
32
+
33
+ #endif /* COMPAT_CUDA_DYNLINK_LOADER_H */
compat/dispatch_semaphore/semaphore.h ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * This file is part of FFmpeg.
3
+ *
4
+ * FFmpeg is free software; you can redistribute it and/or
5
+ * modify it under the terms of the GNU Lesser General Public
6
+ * License as published by the Free Software Foundation; either
7
+ * version 2.1 of the License, or (at your option) any later version.
8
+ *
9
+ * FFmpeg is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
+ * Lesser General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU Lesser General Public
15
+ * License along with FFmpeg; if not, write to the Free Software
16
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
+ */
18
+
19
+ #ifndef COMPAT_DISPATCH_SEMAPHORE_SEMAPHORE_H
20
+ #define COMPAT_DISPATCH_SEMAPHORE_SEMAPHORE_H
21
+
22
+ #include <dispatch/dispatch.h>
23
+ #include <errno.h>
24
+
25
+ #define sem_t dispatch_semaphore_t
26
+ #define sem_post(psem) dispatch_semaphore_signal(*psem)
27
+ #define sem_wait(psem) dispatch_semaphore_wait(*psem, DISPATCH_TIME_FOREVER)
28
+ #define sem_timedwait(psem, val) dispatch_semaphore_wait(*psem, dispatch_walltime(val, 0))
29
+ #define sem_destroy(psem) dispatch_release(*psem)
30
+
31
+ static inline int compat_sem_init(dispatch_semaphore_t *psem,
32
+ int unused, int val)
33
+ {
34
+ int ret = !!(*psem = dispatch_semaphore_create(val)) - 1;
35
+ if (ret < 0)
36
+ errno = ENOMEM;
37
+ return ret;
38
+ }
39
+
40
+ #define sem_init compat_sem_init
41
+
42
+ #endif /* COMPAT_DISPATCH_SEMAPHORE_SEMAPHORE_H */
compat/djgpp/math.c ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * This file is part of FFmpeg.
3
+ *
4
+ * FFmpeg is free software; you can redistribute it and/or
5
+ * modify it under the terms of the GNU Lesser General Public
6
+ * License as published by the Free Software Foundation; either
7
+ * version 2.1 of the License, or (at your option) any later version.
8
+ *
9
+ * FFmpeg is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
+ * Lesser General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU Lesser General Public
15
+ * License along with FFmpeg; if not, write to the Free Software
16
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
+ */
18
+
19
+ #include <math.h>
20
+
21
+ #define FUN(name, type, op) \
22
+ type name(type x, type y) \
23
+ { \
24
+ if (fpclassify(x) == FP_NAN) return y; \
25
+ if (fpclassify(y) == FP_NAN) return x; \
26
+ return x op y ? x : y; \
27
+ }
28
+
29
+ FUN(fmin, double, <)
30
+ FUN(fmax, double, >)
31
+ FUN(fminf, float, <)
32
+ FUN(fmaxf, float, >)
33
+
34
+ long double fmodl(long double x, long double y)
35
+ {
36
+ return fmod(x, y);
37
+ }
38
+
39
+ long double scalbnl(long double x, int exp)
40
+ {
41
+ return scalbn(x, exp);
42
+ }
43
+
44
+ long double copysignl(long double x, long double y)
45
+ {
46
+ return copysign(x, y);
47
+ }
compat/djgpp/math.h ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * This file is part of FFmpeg.
3
+ *
4
+ * FFmpeg is free software; you can redistribute it and/or
5
+ * modify it under the terms of the GNU Lesser General Public
6
+ * License as published by the Free Software Foundation; either
7
+ * version 2.1 of the License, or (at your option) any later version.
8
+ *
9
+ * FFmpeg is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
+ * Lesser General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU Lesser General Public
15
+ * License along with FFmpeg; if not, write to the Free Software
16
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
+ */
18
+
19
+ double fmin(double, double);
20
+ double fmax(double, double);
21
+ float fminf(float, float);
22
+ float fmaxf(float, float);
23
+ long double fmodl(long double, long double);
24
+ long double scalbnl(long double, int);
25
+ long double copysignl(long double, long double);
compat/float/float.h ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Work around broken floating point limits on some systems.
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_next <float.h>
22
+
23
+ #ifdef FLT_MAX
24
+ #undef FLT_MAX
25
+ #define FLT_MAX 3.40282346638528859812e+38F
26
+
27
+ #undef FLT_MIN
28
+ #define FLT_MIN 1.17549435082228750797e-38F
29
+
30
+ #undef DBL_MAX
31
+ #define DBL_MAX ((double)1.79769313486231570815e+308L)
32
+
33
+ #undef DBL_MIN
34
+ #define DBL_MIN ((double)2.22507385850720138309e-308L)
35
+ #endif
compat/float/limits.h ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Work around broken floating point limits on some systems.
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_next <limits.h>
22
+ #include <float.h>
compat/getopt.c ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * This file is part of FFmpeg.
3
+ *
4
+ * FFmpeg is free software; you can redistribute it and/or
5
+ * modify it under the terms of the GNU Lesser General Public
6
+ * License as published by the Free Software Foundation; either
7
+ * version 2.1 of the License, or (at your option) any later version.
8
+ *
9
+ * FFmpeg is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
+ * Lesser General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU Lesser General Public
15
+ * License along with FFmpeg; if not, write to the Free Software
16
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
+ */
18
+
19
+ /*
20
+ * This file was copied from the following newsgroup posting:
21
+ *
22
+ * Newsgroups: mod.std.unix
23
+ * Subject: public domain AT&T getopt source
24
+ * Date: 3 Nov 85 19:34:15 GMT
25
+ *
26
+ * Here's something you've all been waiting for: the AT&T public domain
27
+ * source for getopt(3). It is the code which was given out at the 1985
28
+ * UNIFORUM conference in Dallas. I obtained it by electronic mail
29
+ * directly from AT&T. The people there assure me that it is indeed
30
+ * in the public domain.
31
+ */
32
+
33
+ #include <stdio.h>
34
+ #include <string.h>
35
+
36
+ static int opterr = 1;
37
+ static int optind = 1;
38
+ static int optopt;
39
+ static char *optarg;
40
+
41
+ static int getopt(int argc, char *argv[], char *opts)
42
+ {
43
+ static int sp = 1;
44
+ int c;
45
+ char *cp;
46
+
47
+ if (sp == 1) {
48
+ if (optind >= argc ||
49
+ argv[optind][0] != '-' || argv[optind][1] == '\0')
50
+ return EOF;
51
+ else if (!strcmp(argv[optind], "--")) {
52
+ optind++;
53
+ return EOF;
54
+ }
55
+ }
56
+ optopt = c = argv[optind][sp];
57
+ if (c == ':' || !(cp = strchr(opts, c))) {
58
+ fprintf(stderr, ": illegal option -- %c\n", c);
59
+ if (argv[optind][++sp] == '\0') {
60
+ optind++;
61
+ sp = 1;
62
+ }
63
+ return '?';
64
+ }
65
+ if (*++cp == ':') {
66
+ if (argv[optind][sp+1] != '\0')
67
+ optarg = &argv[optind++][sp+1];
68
+ else if(++optind >= argc) {
69
+ fprintf(stderr, ": option requires an argument -- %c\n", c);
70
+ sp = 1;
71
+ return '?';
72
+ } else
73
+ optarg = argv[optind++];
74
+ sp = 1;
75
+ } else {
76
+ if (argv[optind][++sp] == '\0') {
77
+ sp = 1;
78
+ optind++;
79
+ }
80
+ optarg = NULL;
81
+ }
82
+
83
+ return c;
84
+ }
compat/msvcrt/snprintf.c ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * C99-compatible snprintf() and vsnprintf() implementations
3
+ * Copyright (c) 2012 Ronald S. Bultje <rsbultje@gmail.com>
4
+ *
5
+ * This file is part of FFmpeg.
6
+ *
7
+ * FFmpeg is free software; you can redistribute it and/or
8
+ * modify it under the terms of the GNU Lesser General Public
9
+ * License as published by the Free Software Foundation; either
10
+ * version 2.1 of the License, or (at your option) any later version.
11
+ *
12
+ * FFmpeg is distributed in the hope that it will be useful,
13
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
+ * Lesser General Public License for more details.
16
+ *
17
+ * You should have received a copy of the GNU Lesser General Public
18
+ * License along with FFmpeg; if not, write to the Free Software
19
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
+ */
21
+
22
+ #include <stdio.h>
23
+ #include <stdarg.h>
24
+ #include <limits.h>
25
+ #include <string.h>
26
+
27
+ #include "compat/va_copy.h"
28
+ #include "libavutil/error.h"
29
+
30
+ #if defined(__MINGW32__)
31
+ #define EOVERFLOW EFBIG
32
+ #endif
33
+
34
+ int avpriv_snprintf(char *s, size_t n, const char *fmt, ...)
35
+ {
36
+ va_list ap;
37
+ int ret;
38
+
39
+ va_start(ap, fmt);
40
+ ret = avpriv_vsnprintf(s, n, fmt, ap);
41
+ va_end(ap);
42
+
43
+ return ret;
44
+ }
45
+
46
+ int avpriv_vsnprintf(char *s, size_t n, const char *fmt,
47
+ va_list ap)
48
+ {
49
+ int ret;
50
+ va_list ap_copy;
51
+
52
+ if (n == 0)
53
+ return _vscprintf(fmt, ap);
54
+ else if (n > INT_MAX)
55
+ return AVERROR(EOVERFLOW);
56
+
57
+ /* we use n - 1 here because if the buffer is not big enough, the MS
58
+ * runtime libraries don't add a terminating zero at the end. MSDN
59
+ * recommends to provide _snprintf/_vsnprintf() a buffer size that
60
+ * is one less than the actual buffer, and zero it before calling
61
+ * _snprintf/_vsnprintf() to workaround this problem.
62
+ * See https://web.archive.org/web/20151214111935/http://msdn.microsoft.com/en-us/library/1kt27hek(v=vs.80).aspx */
63
+ memset(s, 0, n);
64
+ va_copy(ap_copy, ap);
65
+ ret = _vsnprintf(s, n - 1, fmt, ap_copy);
66
+ va_end(ap_copy);
67
+ if (ret == -1)
68
+ ret = _vscprintf(fmt, ap);
69
+
70
+ return ret;
71
+ }
compat/msvcrt/snprintf.h ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * C99-compatible snprintf() and vsnprintf() implementations
3
+ * Copyright (c) 2012 Ronald S. Bultje <rsbultje@gmail.com>
4
+ *
5
+ * This file is part of FFmpeg.
6
+ *
7
+ * FFmpeg is free software; you can redistribute it and/or
8
+ * modify it under the terms of the GNU Lesser General Public
9
+ * License as published by the Free Software Foundation; either
10
+ * version 2.1 of the License, or (at your option) any later version.
11
+ *
12
+ * FFmpeg is distributed in the hope that it will be useful,
13
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
+ * Lesser General Public License for more details.
16
+ *
17
+ * You should have received a copy of the GNU Lesser General Public
18
+ * License along with FFmpeg; if not, write to the Free Software
19
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
+ */
21
+
22
+ #ifndef COMPAT_MSVCRT_SNPRINTF_H
23
+ #define COMPAT_MSVCRT_SNPRINTF_H
24
+
25
+ #include <stdarg.h>
26
+ #include <stdio.h>
27
+
28
+ int avpriv_snprintf(char *s, size_t n, const char *fmt, ...);
29
+ int avpriv_vsnprintf(char *s, size_t n, const char *fmt, va_list ap);
30
+
31
+ #undef snprintf
32
+ #undef _snprintf
33
+ #undef vsnprintf
34
+ #define snprintf avpriv_snprintf
35
+ #define _snprintf avpriv_snprintf
36
+ #define vsnprintf avpriv_vsnprintf
37
+
38
+ #endif /* COMPAT_MSVCRT_SNPRINTF_H */
compat/os2threads.h ADDED
@@ -0,0 +1,229 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Copyright (c) 2011-2017 KO Myung-Hun <komh@chollian.net>
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
+ /**
22
+ * @file
23
+ * os2threads to pthreads wrapper
24
+ */
25
+
26
+ #ifndef COMPAT_OS2THREADS_H
27
+ #define COMPAT_OS2THREADS_H
28
+
29
+ #define INCL_DOS
30
+ #define INCL_DOSERRORS
31
+ #include <os2.h>
32
+
33
+ #undef __STRICT_ANSI__ /* for _beginthread() */
34
+ #include <stdlib.h>
35
+ #include <time.h>
36
+
37
+ #include <sys/builtin.h>
38
+ #include <sys/fmutex.h>
39
+
40
+ #include "libavutil/attributes.h"
41
+ #include "libavutil/common.h"
42
+ #include "libavutil/time.h"
43
+
44
+ typedef struct {
45
+ TID tid;
46
+ void *(*start_routine)(void *);
47
+ void *arg;
48
+ void *result;
49
+ } pthread_t;
50
+
51
+ typedef void pthread_attr_t;
52
+
53
+ typedef _fmutex pthread_mutex_t;
54
+ typedef void pthread_mutexattr_t;
55
+
56
+ #define PTHREAD_MUTEX_INITIALIZER _FMUTEX_INITIALIZER
57
+
58
+ typedef struct {
59
+ HEV event_sem;
60
+ HEV ack_sem;
61
+ volatile unsigned wait_count;
62
+ } pthread_cond_t;
63
+
64
+ typedef void pthread_condattr_t;
65
+
66
+ typedef struct {
67
+ volatile int done;
68
+ _fmutex mtx;
69
+ } pthread_once_t;
70
+
71
+ #define PTHREAD_ONCE_INIT {0, _FMUTEX_INITIALIZER}
72
+
73
+ static void thread_entry(void *arg)
74
+ {
75
+ pthread_t *thread = arg;
76
+
77
+ thread->result = thread->start_routine(thread->arg);
78
+ }
79
+
80
+ static av_always_inline int pthread_create(pthread_t *thread,
81
+ const pthread_attr_t *attr,
82
+ void *(*start_routine)(void*),
83
+ void *arg)
84
+ {
85
+ thread->start_routine = start_routine;
86
+ thread->arg = arg;
87
+ thread->result = NULL;
88
+
89
+ thread->tid = _beginthread(thread_entry, NULL, 1024 * 1024, thread);
90
+
91
+ return 0;
92
+ }
93
+
94
+ static av_always_inline int pthread_join(pthread_t thread, void **value_ptr)
95
+ {
96
+ DosWaitThread(&thread.tid, DCWW_WAIT);
97
+
98
+ if (value_ptr)
99
+ *value_ptr = thread.result;
100
+
101
+ return 0;
102
+ }
103
+
104
+ static av_always_inline int pthread_mutex_init(pthread_mutex_t *mutex,
105
+ const pthread_mutexattr_t *attr)
106
+ {
107
+ _fmutex_create(mutex, 0);
108
+
109
+ return 0;
110
+ }
111
+
112
+ static av_always_inline int pthread_mutex_destroy(pthread_mutex_t *mutex)
113
+ {
114
+ _fmutex_close(mutex);
115
+
116
+ return 0;
117
+ }
118
+
119
+ static av_always_inline int pthread_mutex_lock(pthread_mutex_t *mutex)
120
+ {
121
+ _fmutex_request(mutex, 0);
122
+
123
+ return 0;
124
+ }
125
+
126
+ static av_always_inline int pthread_mutex_unlock(pthread_mutex_t *mutex)
127
+ {
128
+ _fmutex_release(mutex);
129
+
130
+ return 0;
131
+ }
132
+
133
+ static av_always_inline int pthread_cond_init(pthread_cond_t *cond,
134
+ const pthread_condattr_t *attr)
135
+ {
136
+ DosCreateEventSem(NULL, &cond->event_sem, DCE_POSTONE, FALSE);
137
+ DosCreateEventSem(NULL, &cond->ack_sem, DCE_POSTONE, FALSE);
138
+
139
+ cond->wait_count = 0;
140
+
141
+ return 0;
142
+ }
143
+
144
+ static av_always_inline int pthread_cond_destroy(pthread_cond_t *cond)
145
+ {
146
+ DosCloseEventSem(cond->event_sem);
147
+ DosCloseEventSem(cond->ack_sem);
148
+
149
+ return 0;
150
+ }
151
+
152
+ static av_always_inline int pthread_cond_signal(pthread_cond_t *cond)
153
+ {
154
+ if (!__atomic_cmpxchg32(&cond->wait_count, 0, 0)) {
155
+ DosPostEventSem(cond->event_sem);
156
+ DosWaitEventSem(cond->ack_sem, SEM_INDEFINITE_WAIT);
157
+ }
158
+
159
+ return 0;
160
+ }
161
+
162
+ static av_always_inline int pthread_cond_broadcast(pthread_cond_t *cond)
163
+ {
164
+ while (!__atomic_cmpxchg32(&cond->wait_count, 0, 0))
165
+ pthread_cond_signal(cond);
166
+
167
+ return 0;
168
+ }
169
+
170
+ static av_always_inline int pthread_cond_timedwait(pthread_cond_t *cond,
171
+ pthread_mutex_t *mutex,
172
+ const struct timespec *abstime)
173
+ {
174
+ int64_t abs_milli = abstime->tv_sec * 1000LL + abstime->tv_nsec / 1000000;
175
+ ULONG t = av_clip64(abs_milli - av_gettime() / 1000, 0, ULONG_MAX);
176
+
177
+ __atomic_increment(&cond->wait_count);
178
+
179
+ pthread_mutex_unlock(mutex);
180
+
181
+ APIRET ret = DosWaitEventSem(cond->event_sem, t);
182
+
183
+ __atomic_decrement(&cond->wait_count);
184
+
185
+ DosPostEventSem(cond->ack_sem);
186
+
187
+ pthread_mutex_lock(mutex);
188
+
189
+ return (ret == ERROR_TIMEOUT) ? ETIMEDOUT : 0;
190
+ }
191
+
192
+ static av_always_inline int pthread_cond_wait(pthread_cond_t *cond,
193
+ pthread_mutex_t *mutex)
194
+ {
195
+ __atomic_increment(&cond->wait_count);
196
+
197
+ pthread_mutex_unlock(mutex);
198
+
199
+ DosWaitEventSem(cond->event_sem, SEM_INDEFINITE_WAIT);
200
+
201
+ __atomic_decrement(&cond->wait_count);
202
+
203
+ DosPostEventSem(cond->ack_sem);
204
+
205
+ pthread_mutex_lock(mutex);
206
+
207
+ return 0;
208
+ }
209
+
210
+ static av_always_inline int pthread_once(pthread_once_t *once_control,
211
+ void (*init_routine)(void))
212
+ {
213
+ if (!once_control->done)
214
+ {
215
+ _fmutex_request(&once_control->mtx, 0);
216
+
217
+ if (!once_control->done)
218
+ {
219
+ init_routine();
220
+
221
+ once_control->done = 1;
222
+ }
223
+
224
+ _fmutex_release(&once_control->mtx);
225
+ }
226
+
227
+ return 0;
228
+ }
229
+ #endif /* COMPAT_OS2THREADS_H */
compat/solaris/make_sunver.pl ADDED
@@ -0,0 +1,352 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env perl
2
+
3
+ # make_sunver.pl
4
+ #
5
+ # Copyright (C) 2010, 2011, 2012, 2013
6
+ # Free Software Foundation, Inc.
7
+ #
8
+ # This file is free software; you can redistribute it and/or modify it
9
+ # under the terms of the GNU General Public License as published by
10
+ # the Free Software Foundation; either version 3 of the License, or
11
+ # (at your option) any later version.
12
+ #
13
+ # This program is distributed in the hope that it will be useful, but
14
+ # WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
+ # General Public License for more details.
17
+ #
18
+ # You should have received a copy of the GNU General Public License
19
+ # along with this program; see the file COPYING.GPLv3. If not see
20
+ # <http://www.gnu.org/licenses/>.
21
+
22
+ # This script takes at least two arguments, a GNU style version script and
23
+ # a list of object and archive files, and generates a corresponding Sun
24
+ # style version script as follows:
25
+ #
26
+ # Each glob pattern, C++ mangled pattern or literal in the input script is
27
+ # matched against all global symbols in the input objects, emitting those
28
+ # that matched (or nothing if no match was found).
29
+ # A comment with the original pattern and its type is left in the output
30
+ # file to make it easy to understand the matches.
31
+ #
32
+ # It uses elfdump when present (native), GNU readelf otherwise.
33
+ # It depends on the GNU version of c++filt, since it must understand the
34
+ # GNU mangling style.
35
+
36
+ use FileHandle;
37
+ use IPC::Open2;
38
+
39
+ # Enforce C locale.
40
+ $ENV{'LC_ALL'} = "C";
41
+ $ENV{'LANG'} = "C";
42
+
43
+ # Input version script, GNU style.
44
+ my $symvers = shift;
45
+
46
+ ##########
47
+ # Get all the symbols from the library, match them, and add them to a hash.
48
+
49
+ my %sym_hash = ();
50
+
51
+ # List of objects and archives to process.
52
+ my @OBJECTS = ();
53
+
54
+ # List of shared objects to omit from processing.
55
+ my @SHAREDOBJS = ();
56
+
57
+ # Filter out those input archives that have corresponding shared objects to
58
+ # avoid adding all symbols matched in the archive to the output map.
59
+ foreach $file (@ARGV) {
60
+ if (($so = $file) =~ s/\.a$/.so/ && -e $so) {
61
+ printf STDERR "omitted $file -> $so\n";
62
+ push (@SHAREDOBJS, $so);
63
+ } else {
64
+ push (@OBJECTS, $file);
65
+ }
66
+ }
67
+
68
+ # We need to detect and ignore hidden symbols. Solaris nm can only detect
69
+ # this in the harder to parse default output format, and GNU nm not at all,
70
+ # so use elfdump -s in the native case and GNU readelf -s otherwise.
71
+ # GNU objdump -t cannot be used since it produces a variable number of
72
+ # columns.
73
+
74
+ # The path to elfdump.
75
+ my $elfdump = "/usr/ccs/bin/elfdump";
76
+
77
+ if (-f $elfdump) {
78
+ open ELFDUMP,$elfdump.' -s '.(join ' ',@OBJECTS).'|' or die $!;
79
+ my $skip_arsym = 0;
80
+
81
+ while (<ELFDUMP>) {
82
+ chomp;
83
+
84
+ # Ignore empty lines.
85
+ if (/^$/) {
86
+ # End of archive symbol table, stop skipping.
87
+ $skip_arsym = 0 if $skip_arsym;
88
+ next;
89
+ }
90
+
91
+ # Keep skipping until end of archive symbol table.
92
+ next if ($skip_arsym);
93
+
94
+ # Ignore object name header for individual objects and archives.
95
+ next if (/:$/);
96
+
97
+ # Ignore table header lines.
98
+ next if (/^Symbol Table Section:/);
99
+ next if (/index.*value.*size/);
100
+
101
+ # Start of archive symbol table: start skipping.
102
+ if (/^Symbol Table: \(archive/) {
103
+ $skip_arsym = 1;
104
+ next;
105
+ }
106
+
107
+ # Split table.
108
+ (undef, undef, undef, undef, $bind, $oth, undef, $shndx, $name) = split;
109
+
110
+ # Error out for unknown input.
111
+ die "unknown input line:\n$_" unless defined($bind);
112
+
113
+ # Ignore local symbols.
114
+ next if ($bind eq "LOCL");
115
+ # Ignore hidden symbols.
116
+ next if ($oth eq "H");
117
+ # Ignore undefined symbols.
118
+ next if ($shndx eq "UNDEF");
119
+ # Error out for unhandled cases.
120
+ if ($bind !~ /^(GLOB|WEAK)/ or $oth ne "D") {
121
+ die "unhandled symbol:\n$_";
122
+ }
123
+
124
+ # Remember symbol.
125
+ $sym_hash{$name}++;
126
+ }
127
+ close ELFDUMP or die "$elfdump error";
128
+ } else {
129
+ open READELF, 'readelf -s -W '.(join ' ',@OBJECTS).'|' or die $!;
130
+ # Process each symbol.
131
+ while (<READELF>) {
132
+ chomp;
133
+
134
+ # Ignore empty lines.
135
+ next if (/^$/);
136
+
137
+ # Ignore object name header.
138
+ next if (/^File: .*$/);
139
+
140
+ # Ignore table header lines.
141
+ next if (/^Symbol table.*contains.*:/);
142
+ next if (/Num:.*Value.*Size/);
143
+
144
+ # Split table.
145
+ (undef, undef, undef, undef, $bind, $vis, $ndx, $name) = split;
146
+
147
+ # Error out for unknown input.
148
+ die "unknown input line:\n$_" unless defined($bind);
149
+
150
+ # Ignore local symbols.
151
+ next if ($bind eq "LOCAL");
152
+ # Ignore hidden symbols.
153
+ next if ($vis eq "HIDDEN");
154
+ # Ignore undefined symbols.
155
+ next if ($ndx eq "UND");
156
+ # Error out for unhandled cases.
157
+ if ($bind !~ /^(GLOBAL|WEAK)/ or $vis ne "DEFAULT") {
158
+ die "unhandled symbol:\n$_";
159
+ }
160
+
161
+ # Remember symbol.
162
+ $sym_hash{$name}++;
163
+ }
164
+ close READELF or die "readelf error";
165
+ }
166
+
167
+ ##########
168
+ # The various types of glob patterns.
169
+ #
170
+ # A glob pattern that is to be applied to the demangled name: 'cxx'.
171
+ # A glob patterns that applies directly to the name in the .o files: 'glob'.
172
+ # This pattern is ignored; used for local variables (usually just '*'): 'ign'.
173
+
174
+ # The type of the current pattern.
175
+ my $glob = 'glob';
176
+
177
+ # We're currently inside `extern "C++"', which Sun ld doesn't understand.
178
+ my $in_extern = 0;
179
+
180
+ # The c++filt command to use. This *must* be GNU c++filt; the Sun Studio
181
+ # c++filt doesn't handle the GNU mangling style.
182
+ my $cxxfilt = $ENV{'CXXFILT'} || "c++filt";
183
+
184
+ # The current version name.
185
+ my $current_version = "";
186
+
187
+ # Was there any attempt to match a symbol to this version?
188
+ my $matches_attempted;
189
+
190
+ # The number of versions which matched this symbol.
191
+ my $matched_symbols;
192
+
193
+ open F,$symvers or die $!;
194
+
195
+ # Print information about generating this file
196
+ print "# This file was generated by make_sunver.pl. DO NOT EDIT!\n";
197
+ print "# It was generated by:\n";
198
+ printf "# %s %s %s\n", $0, $symvers, (join ' ',@ARGV);
199
+ printf "# Omitted archives with corresponding shared libraries: %s\n",
200
+ (join ' ', @SHAREDOBJS) if $#SHAREDOBJS >= 0;
201
+ print "#\n\n";
202
+
203
+ print "\$mapfile_version 2\n";
204
+
205
+ while (<F>) {
206
+ # Lines of the form '};'
207
+ if (/^([ \t]*)(\}[ \t]*;[ \t]*)$/) {
208
+ $glob = 'glob';
209
+ if ($in_extern) {
210
+ $in_extern--;
211
+ print "$1##$2\n";
212
+ } else {
213
+ print;
214
+ }
215
+ next;
216
+ }
217
+
218
+ # Lines of the form '} SOME_VERSION_NAME_1.0;'
219
+ if (/^[ \t]*\}[ \tA-Z0-9_.a-z]+;[ \t]*$/) {
220
+ $glob = 'glob';
221
+ # We tried to match symbols agains this version, but none matched.
222
+ # Emit dummy hidden symbol to avoid marking this version WEAK.
223
+ if ($matches_attempted && $matched_symbols == 0) {
224
+ print " hidden:\n";
225
+ print " .force_WEAK_off_$current_version = DATA S0x0 V0x0;\n";
226
+ }
227
+ print; next;
228
+ }
229
+
230
+ # Comment and blank lines
231
+ if (/^[ \t]*\#/) { print; next; }
232
+ if (/^[ \t]*$/) { print; next; }
233
+
234
+ # Lines of the form '{'
235
+ if (/^([ \t]*){$/) {
236
+ if ($in_extern) {
237
+ print "$1##{\n";
238
+ } else {
239
+ print;
240
+ }
241
+ next;
242
+ }
243
+
244
+ # Lines of the form 'SOME_VERSION_NAME_1.1 {'
245
+ if (/^([A-Z0-9_.]+)[ \t]+{$/) {
246
+ # Record version name.
247
+ $current_version = $1;
248
+ # Reset match attempts, #matched symbols for this version.
249
+ $matches_attempted = 0;
250
+ $matched_symbols = 0;
251
+ print "SYMBOL_VERSION $1 {\n";
252
+ next;
253
+ }
254
+
255
+ # Ignore 'global:'
256
+ if (/^[ \t]*global:$/) { print; next; }
257
+
258
+ # After 'local:', globs should be ignored, they won't be exported.
259
+ if (/^[ \t]*local:$/) {
260
+ $glob = 'ign';
261
+ print;
262
+ next;
263
+ }
264
+
265
+ # After 'extern "C++"', globs are C++ patterns
266
+ if (/^([ \t]*)(extern \"C\+\+\"[ \t]*)$/) {
267
+ $in_extern++;
268
+ $glob = 'cxx';
269
+ # Need to comment, Sun ld cannot handle this.
270
+ print "$1##$2\n"; next;
271
+ }
272
+
273
+ # Chomp newline now we're done with passing through the input file.
274
+ chomp;
275
+
276
+ # Catch globs. Note that '{}' is not allowed in globs by this script,
277
+ # so only '*' and '[]' are available.
278
+ if (/^([ \t]*)([^ \t;{}#]+);?[ \t]*$/) {
279
+ my $ws = $1;
280
+ my $ptn = $2;
281
+ # Turn the glob into a regex by replacing '*' with '.*', '?' with '.'.
282
+ # Keep $ptn so we can still print the original form.
283
+ ($pattern = $ptn) =~ s/\*/\.\*/g;
284
+ $pattern =~ s/\?/\./g;
285
+
286
+ if ($glob eq 'ign') {
287
+ # We're in a local: * section; just continue.
288
+ print "$_\n";
289
+ next;
290
+ }
291
+
292
+ # Print the glob commented for human readers.
293
+ print "$ws##$ptn ($glob)\n";
294
+ # We tried to match a symbol to this version.
295
+ $matches_attempted++;
296
+
297
+ if ($glob eq 'glob') {
298
+ my %ptn_syms = ();
299
+
300
+ # Match ptn against symbols in %sym_hash.
301
+ foreach my $sym (keys %sym_hash) {
302
+ # Maybe it matches one of the patterns based on the symbol in
303
+ # the .o file.
304
+ $ptn_syms{$sym}++ if ($sym =~ /^$pattern$/);
305
+ }
306
+
307
+ foreach my $sym (sort keys(%ptn_syms)) {
308
+ $matched_symbols++;
309
+ print "$ws$sym;\n";
310
+ }
311
+ } elsif ($glob eq 'cxx') {
312
+ my %dem_syms = ();
313
+
314
+ # Verify that we're actually using GNU c++filt. Other versions
315
+ # most likely cannot handle GNU style symbol mangling.
316
+ my $cxxout = `$cxxfilt --version 2>&1`;
317
+ $cxxout =~ m/GNU/ or die "$0 requires GNU c++filt to function";
318
+
319
+ # Talk to c++filt through a pair of file descriptors.
320
+ # Need to start a fresh instance per pattern, otherwise the
321
+ # process grows to 500+ MB.
322
+ my $pid = open2(*FILTIN, *FILTOUT, $cxxfilt) or die $!;
323
+
324
+ # Match ptn against symbols in %sym_hash.
325
+ foreach my $sym (keys %sym_hash) {
326
+ # No? Well, maybe its demangled form matches one of those
327
+ # patterns.
328
+ printf FILTOUT "%s\n",$sym;
329
+ my $dem = <FILTIN>;
330
+ chomp $dem;
331
+ $dem_syms{$sym}++ if ($dem =~ /^$pattern$/);
332
+ }
333
+
334
+ close FILTOUT or die "c++filt error";
335
+ close FILTIN or die "c++filt error";
336
+ # Need to wait for the c++filt process to avoid lots of zombies.
337
+ waitpid $pid, 0;
338
+
339
+ foreach my $sym (sort keys(%dem_syms)) {
340
+ $matched_symbols++;
341
+ print "$ws$sym;\n";
342
+ }
343
+ } else {
344
+ # No? Well, then ignore it.
345
+ }
346
+ next;
347
+ }
348
+ # Important sanity check. This script can't handle lots of formats
349
+ # that GNU ld can, so be sure to error out if one is seen!
350
+ die "strange line `$_'";
351
+ }
352
+ close F;
compat/strtod.c ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * C99-compatible strtod() implementation
3
+ * Copyright (c) 2012 Ronald S. Bultje <rsbultje@gmail.com>
4
+ *
5
+ * This file is part of FFmpeg.
6
+ *
7
+ * FFmpeg is free software; you can redistribute it and/or
8
+ * modify it under the terms of the GNU Lesser General Public
9
+ * License as published by the Free Software Foundation; either
10
+ * version 2.1 of the License, or (at your option) any later version.
11
+ *
12
+ * FFmpeg is distributed in the hope that it will be useful,
13
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
+ * Lesser General Public License for more details.
16
+ *
17
+ * You should have received a copy of the GNU Lesser General Public
18
+ * License along with FFmpeg; if not, write to the Free Software
19
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
+ */
21
+
22
+ #include <limits.h>
23
+ #include <stdlib.h>
24
+
25
+ #include "libavutil/avstring.h"
26
+ #include "libavutil/mathematics.h"
27
+
28
+ static const char *check_nan_suffix(const char *s)
29
+ {
30
+ const char *start = s;
31
+
32
+ if (*s++ != '(')
33
+ return start;
34
+
35
+ while ((*s >= 'a' && *s <= 'z') || (*s >= 'A' && *s <= 'Z') ||
36
+ (*s >= '0' && *s <= '9') || *s == '_')
37
+ s++;
38
+
39
+ return *s == ')' ? s + 1 : start;
40
+ }
41
+
42
+ #undef strtod
43
+ double strtod(const char *, char **);
44
+
45
+ double avpriv_strtod(const char *nptr, char **endptr)
46
+ {
47
+ const char *end;
48
+ double res;
49
+
50
+ /* Skip leading spaces */
51
+ while (av_isspace(*nptr))
52
+ nptr++;
53
+
54
+ if (!av_strncasecmp(nptr, "infinity", 8)) {
55
+ end = nptr + 8;
56
+ res = INFINITY;
57
+ } else if (!av_strncasecmp(nptr, "inf", 3)) {
58
+ end = nptr + 3;
59
+ res = INFINITY;
60
+ } else if (!av_strncasecmp(nptr, "+infinity", 9)) {
61
+ end = nptr + 9;
62
+ res = INFINITY;
63
+ } else if (!av_strncasecmp(nptr, "+inf", 4)) {
64
+ end = nptr + 4;
65
+ res = INFINITY;
66
+ } else if (!av_strncasecmp(nptr, "-infinity", 9)) {
67
+ end = nptr + 9;
68
+ res = -INFINITY;
69
+ } else if (!av_strncasecmp(nptr, "-inf", 4)) {
70
+ end = nptr + 4;
71
+ res = -INFINITY;
72
+ } else if (!av_strncasecmp(nptr, "nan", 3)) {
73
+ end = check_nan_suffix(nptr + 3);
74
+ res = NAN;
75
+ } else if (!av_strncasecmp(nptr, "+nan", 4) ||
76
+ !av_strncasecmp(nptr, "-nan", 4)) {
77
+ end = check_nan_suffix(nptr + 4);
78
+ res = NAN;
79
+ } else if (!av_strncasecmp(nptr, "0x", 2) ||
80
+ !av_strncasecmp(nptr, "-0x", 3) ||
81
+ !av_strncasecmp(nptr, "+0x", 3)) {
82
+ /* FIXME this doesn't handle exponents, non-integers (float/double)
83
+ * and numbers too large for long long */
84
+ res = strtoll(nptr, (char **)&end, 16);
85
+ } else {
86
+ res = strtod(nptr, (char **)&end);
87
+ }
88
+
89
+ if (endptr)
90
+ *endptr = (char *)end;
91
+
92
+ return res;
93
+ }
compat/va_copy.h ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * MSVC Compatible va_copy macro
3
+ * Copyright (c) 2012 Derek Buitenhuis
4
+ *
5
+ * This file is part of FFmpeg.
6
+ *
7
+ * FFmpeg is free software; you can redistribute it and/or
8
+ * modify it under the terms of the GNU Lesser General Public
9
+ * License as published by the Free Software Foundation; either
10
+ * version 2.1 of the License, or (at your option) any later version.
11
+ *
12
+ * FFmpeg is distributed in the hope that it will be useful,
13
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
+ * Lesser General Public License for more details.
16
+ *
17
+ * You should have received a copy of the GNU Lesser General Public
18
+ * License along with FFmpeg; if not, write to the Free Software
19
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
+ */
21
+
22
+ #ifndef COMPAT_VA_COPY_H
23
+ #define COMPAT_VA_COPY_H
24
+
25
+ #include <stdarg.h>
26
+
27
+ #if !defined(va_copy) && defined(_MSC_VER)
28
+ #define va_copy(dst, src) ((dst) = (src))
29
+ #endif
30
+ #if !defined(va_copy) && defined(__GNUC__) && __GNUC__ < 3
31
+ #define va_copy(dst, src) __va_copy(dst, src)
32
+ #endif
33
+
34
+ #endif /* COMPAT_VA_COPY_H */
compat/w32dlfcn.h ADDED
@@ -0,0 +1,150 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * This file is part of FFmpeg.
3
+ *
4
+ * FFmpeg is free software; you can redistribute it and/or
5
+ * modify it under the terms of the GNU Lesser General Public
6
+ * License as published by the Free Software Foundation; either
7
+ * version 2.1 of the License, or (at your option) any later version.
8
+ *
9
+ * FFmpeg is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
+ * Lesser General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU Lesser General Public
15
+ * License along with FFmpeg; if not, write to the Free Software
16
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
+ */
18
+
19
+ #ifndef COMPAT_W32DLFCN_H
20
+ #define COMPAT_W32DLFCN_H
21
+
22
+ #ifdef _WIN32
23
+ #include <stdint.h>
24
+
25
+ #include <windows.h>
26
+
27
+ #include "config.h"
28
+ #include "libavutil/macros.h"
29
+ #include "libavutil/wchar_filename.h"
30
+
31
+ static inline wchar_t *get_module_filename(HMODULE module)
32
+ {
33
+ wchar_t *path = NULL, *new_path;
34
+ DWORD path_size = 0, path_len;
35
+
36
+ do {
37
+ path_size = path_size ? FFMIN(2 * path_size, INT16_MAX + 1) : MAX_PATH;
38
+ new_path = av_realloc_array(path, path_size, sizeof *path);
39
+ if (!new_path) {
40
+ av_free(path);
41
+ return NULL;
42
+ }
43
+ path = new_path;
44
+ // Returns path_size in case of insufficient buffer.
45
+ // Whether the error is set or not and whether the output
46
+ // is null-terminated or not depends on the version of Windows.
47
+ path_len = GetModuleFileNameW(module, path, path_size);
48
+ } while (path_len && path_size <= INT16_MAX && path_size <= path_len);
49
+
50
+ if (!path_len) {
51
+ av_free(path);
52
+ return NULL;
53
+ }
54
+ return path;
55
+ }
56
+
57
+ /**
58
+ * Safe function used to open dynamic libs. This attempts to improve program security
59
+ * by removing the current directory from the dll search path. Only dll's found in the
60
+ * executable or system directory are allowed to be loaded.
61
+ * @param name The dynamic lib name.
62
+ * @return A handle to the opened lib.
63
+ */
64
+ static inline HMODULE win32_dlopen(const char *name)
65
+ {
66
+ wchar_t *name_w;
67
+ HMODULE module = NULL;
68
+ if (utf8towchar(name, &name_w))
69
+ name_w = NULL;
70
+ #if _WIN32_WINNT < 0x0602
71
+ // On Win7 and earlier we check if KB2533623 is available
72
+ if (!GetProcAddress(GetModuleHandleW(L"kernel32.dll"), "SetDefaultDllDirectories")) {
73
+ wchar_t *path = NULL, *new_path;
74
+ DWORD pathlen, pathsize, namelen;
75
+ if (!name_w)
76
+ goto exit;
77
+ namelen = wcslen(name_w);
78
+ // Try local directory first
79
+ path = get_module_filename(NULL);
80
+ if (!path)
81
+ goto exit;
82
+ new_path = wcsrchr(path, '\\');
83
+ if (!new_path)
84
+ goto exit;
85
+ pathlen = new_path - path;
86
+ pathsize = pathlen + namelen + 2;
87
+ new_path = av_realloc_array(path, pathsize, sizeof *path);
88
+ if (!new_path)
89
+ goto exit;
90
+ path = new_path;
91
+ wcscpy(path + pathlen + 1, name_w);
92
+ module = LoadLibraryExW(path, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
93
+ if (module == NULL) {
94
+ // Next try System32 directory
95
+ pathlen = GetSystemDirectoryW(path, pathsize);
96
+ if (!pathlen)
97
+ goto exit;
98
+ // Buffer is not enough in two cases:
99
+ // 1. system directory + \ + module name
100
+ // 2. system directory even without the module name.
101
+ if (pathlen + namelen + 2 > pathsize) {
102
+ pathsize = pathlen + namelen + 2;
103
+ new_path = av_realloc_array(path, pathsize, sizeof *path);
104
+ if (!new_path)
105
+ goto exit;
106
+ path = new_path;
107
+ // Query again to handle the case #2.
108
+ pathlen = GetSystemDirectoryW(path, pathsize);
109
+ if (!pathlen)
110
+ goto exit;
111
+ }
112
+ path[pathlen] = L'\\';
113
+ wcscpy(path + pathlen + 1, name_w);
114
+ module = LoadLibraryExW(path, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
115
+ }
116
+ exit:
117
+ av_free(path);
118
+ av_free(name_w);
119
+ return module;
120
+ }
121
+ #endif
122
+ #ifndef LOAD_LIBRARY_SEARCH_APPLICATION_DIR
123
+ # define LOAD_LIBRARY_SEARCH_APPLICATION_DIR 0x00000200
124
+ #endif
125
+ #ifndef LOAD_LIBRARY_SEARCH_SYSTEM32
126
+ # define LOAD_LIBRARY_SEARCH_SYSTEM32 0x00000800
127
+ #endif
128
+ #if HAVE_WINRT
129
+ if (!name_w)
130
+ return NULL;
131
+ module = LoadPackagedLibrary(name_w, 0);
132
+ #else
133
+ #define LOAD_FLAGS (LOAD_LIBRARY_SEARCH_APPLICATION_DIR | LOAD_LIBRARY_SEARCH_SYSTEM32)
134
+ /* filename may be be in CP_ACP */
135
+ if (!name_w)
136
+ return LoadLibraryExA(name, NULL, LOAD_FLAGS);
137
+ module = LoadLibraryExW(name_w, NULL, LOAD_FLAGS);
138
+ #undef LOAD_FLAGS
139
+ #endif
140
+ av_free(name_w);
141
+ return module;
142
+ }
143
+ #define dlopen(name, flags) win32_dlopen(name)
144
+ #define dlclose FreeLibrary
145
+ #define dlsym GetProcAddress
146
+ #else
147
+ #include <dlfcn.h>
148
+ #endif
149
+
150
+ #endif /* COMPAT_W32DLFCN_H */
compat/w32pthreads.h ADDED
@@ -0,0 +1,197 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Copyright (C) 2010-2011 x264 project
3
+ *
4
+ * Authors: Steven Walters <kemuri9@gmail.com>
5
+ * Pegasys Inc. <http://www.pegasys-inc.com>
6
+ *
7
+ * This file is part of FFmpeg.
8
+ *
9
+ * FFmpeg is free software; you can redistribute it and/or
10
+ * modify it under the terms of the GNU Lesser General Public
11
+ * License as published by the Free Software Foundation; either
12
+ * version 2.1 of the License, or (at your option) any later version.
13
+ *
14
+ * FFmpeg is distributed in the hope that it will be useful,
15
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
+ * Lesser General Public License for more details.
18
+ *
19
+ * You should have received a copy of the GNU Lesser General Public
20
+ * License along with FFmpeg; if not, write to the Free Software
21
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22
+ */
23
+
24
+ /**
25
+ * @file
26
+ * w32threads to pthreads wrapper
27
+ */
28
+
29
+ #ifndef COMPAT_W32PTHREADS_H
30
+ #define COMPAT_W32PTHREADS_H
31
+
32
+ /* Build up a pthread-like API using underlying Windows API. Have only static
33
+ * methods so as to not conflict with a potentially linked in pthread-win32
34
+ * library.
35
+ * As most functions here are used without checking return values,
36
+ * only implement return values as necessary. */
37
+
38
+ #include <windows.h>
39
+ #include <process.h>
40
+ #include <time.h>
41
+
42
+ #include "libavutil/attributes.h"
43
+ #include "libavutil/common.h"
44
+ #include "libavutil/internal.h"
45
+ #include "libavutil/mem.h"
46
+ #include "libavutil/time.h"
47
+
48
+ typedef struct pthread_t {
49
+ void *handle;
50
+ void *(*func)(void* arg);
51
+ void *arg;
52
+ void *ret;
53
+ } pthread_t;
54
+
55
+ /* use light weight mutex/condition variable API for Windows Vista and later */
56
+ typedef SRWLOCK pthread_mutex_t;
57
+ typedef CONDITION_VARIABLE pthread_cond_t;
58
+
59
+ #define PTHREAD_MUTEX_INITIALIZER SRWLOCK_INIT
60
+ #define PTHREAD_COND_INITIALIZER CONDITION_VARIABLE_INIT
61
+
62
+ #define InitializeCriticalSection(x) InitializeCriticalSectionEx(x, 0, 0)
63
+ #define WaitForSingleObject(a, b) WaitForSingleObjectEx(a, b, FALSE)
64
+
65
+ #define PTHREAD_CANCEL_ENABLE 1
66
+ #define PTHREAD_CANCEL_DISABLE 0
67
+
68
+ #if HAVE_WINRT
69
+ #define THREADFUNC_RETTYPE DWORD
70
+ #else
71
+ #define THREADFUNC_RETTYPE unsigned
72
+ #endif
73
+
74
+ static av_unused THREADFUNC_RETTYPE
75
+ __stdcall attribute_align_arg win32thread_worker(void *arg)
76
+ {
77
+ pthread_t *h = (pthread_t*)arg;
78
+ h->ret = h->func(h->arg);
79
+ return 0;
80
+ }
81
+
82
+ static av_unused int pthread_create(pthread_t *thread, const void *unused_attr,
83
+ void *(*start_routine)(void*), void *arg)
84
+ {
85
+ thread->func = start_routine;
86
+ thread->arg = arg;
87
+ #if HAVE_WINRT
88
+ thread->handle = (void*)CreateThread(NULL, 0, win32thread_worker, thread,
89
+ 0, NULL);
90
+ #else
91
+ thread->handle = (void*)_beginthreadex(NULL, 0, win32thread_worker, thread,
92
+ 0, NULL);
93
+ #endif
94
+ return !thread->handle;
95
+ }
96
+
97
+ static av_unused int pthread_join(pthread_t thread, void **value_ptr)
98
+ {
99
+ DWORD ret = WaitForSingleObject(thread.handle, INFINITE);
100
+ if (ret != WAIT_OBJECT_0) {
101
+ if (ret == WAIT_ABANDONED)
102
+ return EINVAL;
103
+ else
104
+ return EDEADLK;
105
+ }
106
+ if (value_ptr)
107
+ *value_ptr = thread.ret;
108
+ CloseHandle(thread.handle);
109
+ return 0;
110
+ }
111
+
112
+ static inline int pthread_mutex_init(pthread_mutex_t *m, void* attr)
113
+ {
114
+ InitializeSRWLock(m);
115
+ return 0;
116
+ }
117
+ static inline int pthread_mutex_destroy(pthread_mutex_t *m)
118
+ {
119
+ /* Unlocked SWR locks use no resources */
120
+ return 0;
121
+ }
122
+ static inline int pthread_mutex_lock(pthread_mutex_t *m)
123
+ {
124
+ AcquireSRWLockExclusive(m);
125
+ return 0;
126
+ }
127
+ static inline int pthread_mutex_unlock(pthread_mutex_t *m)
128
+ {
129
+ ReleaseSRWLockExclusive(m);
130
+ return 0;
131
+ }
132
+
133
+ typedef INIT_ONCE pthread_once_t;
134
+ #define PTHREAD_ONCE_INIT INIT_ONCE_STATIC_INIT
135
+
136
+ static av_unused int pthread_once(pthread_once_t *once_control, void (*init_routine)(void))
137
+ {
138
+ BOOL pending = FALSE;
139
+ InitOnceBeginInitialize(once_control, 0, &pending, NULL);
140
+ if (pending)
141
+ init_routine();
142
+ InitOnceComplete(once_control, 0, NULL);
143
+ return 0;
144
+ }
145
+
146
+ static inline int pthread_cond_init(pthread_cond_t *cond, const void *unused_attr)
147
+ {
148
+ InitializeConditionVariable(cond);
149
+ return 0;
150
+ }
151
+
152
+ /* native condition variables do not destroy */
153
+ static inline int pthread_cond_destroy(pthread_cond_t *cond)
154
+ {
155
+ return 0;
156
+ }
157
+
158
+ static inline int pthread_cond_broadcast(pthread_cond_t *cond)
159
+ {
160
+ WakeAllConditionVariable(cond);
161
+ return 0;
162
+ }
163
+
164
+ static inline int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)
165
+ {
166
+ SleepConditionVariableSRW(cond, mutex, INFINITE, 0);
167
+ return 0;
168
+ }
169
+
170
+ static inline int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex,
171
+ const struct timespec *abstime)
172
+ {
173
+ int64_t abs_milli = abstime->tv_sec * 1000LL + abstime->tv_nsec / 1000000;
174
+ DWORD t = av_clip64(abs_milli - av_gettime() / 1000, 0, UINT32_MAX);
175
+
176
+ if (!SleepConditionVariableSRW(cond, mutex, t, 0)) {
177
+ DWORD err = GetLastError();
178
+ if (err == ERROR_TIMEOUT)
179
+ return ETIMEDOUT;
180
+ else
181
+ return EINVAL;
182
+ }
183
+ return 0;
184
+ }
185
+
186
+ static inline int pthread_cond_signal(pthread_cond_t *cond)
187
+ {
188
+ WakeConditionVariable(cond);
189
+ return 0;
190
+ }
191
+
192
+ static inline int pthread_setcancelstate(int state, int *oldstate)
193
+ {
194
+ return 0;
195
+ }
196
+
197
+ #endif /* COMPAT_W32PTHREADS_H */
compat/windows/makedef ADDED
@@ -0,0 +1,129 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/sh
2
+
3
+ # Copyright (c) 2013, Derek Buitenhuis
4
+ #
5
+ # Permission to use, copy, modify, and/or distribute this software for any
6
+ # purpose with or without fee is hereby granted, provided that the above
7
+ # copyright notice and this permission notice appear in all copies.
8
+ #
9
+ # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10
+ # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
+ # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12
+ # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
+ # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
+ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15
+ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16
+
17
+ # mktemp isn't POSIX, so supply an implementation
18
+ mktemp() {
19
+ echo "${2%%XXX*}.${HOSTNAME}.${UID}.$$"
20
+ }
21
+
22
+ if [ $# -lt 2 ]; then
23
+ echo "Usage: makedef <version_script> <objects>" >&2
24
+ exit 0
25
+ fi
26
+
27
+ vscript=$1
28
+ shift
29
+
30
+ if [ ! -f "$vscript" ]; then
31
+ echo "Version script does not exist" >&2
32
+ exit 1
33
+ fi
34
+
35
+ for object in "$@"; do
36
+ if [ ! -f "$object" ]; then
37
+ echo "Object does not exist: ${object}" >&2
38
+ exit 1
39
+ fi
40
+ done
41
+
42
+ # Create a lib temporarily to dump symbols from.
43
+ # It's just much easier to do it this way
44
+ libname=$(mktemp -u "library").lib
45
+
46
+ trap 'rm -f -- $libname' EXIT
47
+
48
+ if [ -n "$AR" ]; then
49
+ $AR rcs ${libname} $@ >/dev/null
50
+ else
51
+ lib.exe -out:${libname} $@ >/dev/null
52
+ fi
53
+ if [ $? != 0 ]; then
54
+ echo "Could not create temporary library." >&2
55
+ exit 1
56
+ fi
57
+
58
+ IFS='
59
+ '
60
+
61
+ prefix="$EXTERN_PREFIX"
62
+
63
+ started=0
64
+ regex="none"
65
+
66
+ for line in $(cat ${vscript} | tr '\t' ' '); do
67
+ # We only care about global symbols
68
+ echo "${line}" | grep -q '^ \+global:'
69
+ if [ $? = 0 ]; then
70
+ started=1
71
+ line=$(echo "${line}" | sed -e 's/^ \{1,\}global: *//')
72
+ else
73
+ echo "${line}" | grep -q '^ \+local:'
74
+ if [ $? = 0 ]; then
75
+ started=0
76
+ fi
77
+ fi
78
+
79
+ if [ ${started} = 0 ]; then
80
+ continue
81
+ fi
82
+
83
+ # Handle multiple symbols on one line
84
+ IFS=';'
85
+
86
+ # Work around stupid expansion to filenames
87
+ line=$(echo "${line}" | sed -e 's/\*/.\\+/g')
88
+ for exp in ${line}; do
89
+ # Remove leading and trailing whitespace
90
+ exp=$(echo "${exp}" | sed -e 's/^ *//' -e 's/ *$//')
91
+
92
+ if [ "${regex}" = "none" ]; then
93
+ regex="${exp}"
94
+ else
95
+ regex="${regex};${exp}"
96
+ fi
97
+ done
98
+
99
+ IFS='
100
+ '
101
+ done
102
+
103
+ if [ -n "$NM" ]; then
104
+ # Use eval, since NM="nm -g"
105
+ dump=$(eval "$NM --defined-only -g ${libname}" |
106
+ grep -v : |
107
+ grep -v ^$ |
108
+ cut -d' ' -f3 |
109
+ sed -e "s/^${prefix}//")
110
+ else
111
+ dump=$(dumpbin.exe -linkermember:1 ${libname} |
112
+ sed -e '/public symbols/,$!d' -e '/^ \{1,\}Summary/,$d' -e "s/ \{1,\}${prefix}/ /" -e 's/ \{1,\}/ /g' |
113
+ tail -n +2 |
114
+ cut -d' ' -f3)
115
+ fi
116
+
117
+ rm ${libname}
118
+
119
+ IFS=';'
120
+ list=""
121
+ for exp in ${regex}; do
122
+ list="${list}"'
123
+ '$(echo "${dump}" |
124
+ grep "^${exp}" |
125
+ sed -e 's/^/ /')
126
+ done
127
+
128
+ echo "EXPORTS"
129
+ echo "${list}" | sort | uniq | tail -n +2
compat/windows/mslink ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/sh
2
+
3
+ LINK_EXE_PATH=$(dirname "$(command -v cl)")/link
4
+ if [ -x "$LINK_EXE_PATH" ]; then
5
+ "$LINK_EXE_PATH" $@
6
+ else
7
+ link.exe $@
8
+ fi
9
+ exit $?
compat/windows/mswindres ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/sh
2
+
3
+ if [ "$1" = "--version" ]; then
4
+ rc.exe -?
5
+ exit $?
6
+ fi
7
+
8
+ if [ $# -lt 2 ]; then
9
+ echo "Usage: mswindres [-I/include/path ...] [-DSOME_DEFINE ...] [-o output.o] input.rc [output.o]" >&2
10
+ exit 0
11
+ fi
12
+
13
+ EXTRA_OPTS="-nologo"
14
+
15
+ while [ $# -gt 2 ]; do
16
+ case $1 in
17
+ -D*) EXTRA_OPTS="$EXTRA_OPTS -d$(echo $1 | sed -e "s/^..//" -e "s/ /\\\\ /g")" ;;
18
+ -I*) EXTRA_OPTS="$EXTRA_OPTS -i$(echo $1 | sed -e "s/^..//" -e "s/ /\\\\ /g")" ;;
19
+ -o) OPT_OUT="$2"; shift ;;
20
+ esac
21
+ shift
22
+ done
23
+
24
+ IN="$1"
25
+ if [ -z "$OPT_OUT" ]; then
26
+ OUT="$2"
27
+ else
28
+ OUT="$OPT_OUT"
29
+ fi
30
+
31
+ eval set -- $EXTRA_OPTS
32
+ rc.exe "$@" -fo "$OUT" "$IN"
config.asm ADDED
@@ -0,0 +1,747 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ; Automatically generated by configure - do not modify!
2
+ %define ARCH_AARCH64 0
3
+ %define ARCH_ALPHA 0
4
+ %define ARCH_ARM 0
5
+ %define ARCH_AVR32 0
6
+ %define ARCH_AVR32_AP 0
7
+ %define ARCH_AVR32_UC 0
8
+ %define ARCH_BFIN 0
9
+ %define ARCH_IA64 0
10
+ %define ARCH_LOONGARCH 0
11
+ %define ARCH_LOONGARCH32 0
12
+ %define ARCH_LOONGARCH64 0
13
+ %define ARCH_M68K 0
14
+ %define ARCH_MIPS 0
15
+ %define ARCH_MIPS64 0
16
+ %define ARCH_PARISC 0
17
+ %define ARCH_PPC 0
18
+ %define ARCH_PPC64 0
19
+ %define ARCH_RISCV 0
20
+ %define ARCH_S390 0
21
+ %define ARCH_SH4 0
22
+ %define ARCH_SPARC 0
23
+ %define ARCH_SPARC64 0
24
+ %define ARCH_TILEGX 0
25
+ %define ARCH_TILEPRO 0
26
+ %define ARCH_X86 1
27
+ %define ARCH_X86_32 0
28
+ %define ARCH_X86_64 1
29
+ %define HAVE_ARMV5TE 0
30
+ %define HAVE_ARMV6 0
31
+ %define HAVE_ARMV6T2 0
32
+ %define HAVE_ARMV8 0
33
+ %define HAVE_DOTPROD 0
34
+ %define HAVE_I8MM 0
35
+ %define HAVE_NEON 0
36
+ %define HAVE_VFP 0
37
+ %define HAVE_VFPV3 0
38
+ %define HAVE_SETEND 0
39
+ %define HAVE_ALTIVEC 0
40
+ %define HAVE_DCBZL 0
41
+ %define HAVE_LDBRX 0
42
+ %define HAVE_POWER8 0
43
+ %define HAVE_PPC4XX 0
44
+ %define HAVE_VSX 0
45
+ %define HAVE_RVV 0
46
+ %define HAVE_AESNI 1
47
+ %define HAVE_AMD3DNOW 1
48
+ %define HAVE_AMD3DNOWEXT 1
49
+ %define HAVE_AVX 1
50
+ %define HAVE_AVX2 1
51
+ %define HAVE_AVX512 1
52
+ %define HAVE_AVX512ICL 1
53
+ %define HAVE_FMA3 1
54
+ %define HAVE_FMA4 1
55
+ %define HAVE_MMX 1
56
+ %define HAVE_MMXEXT 1
57
+ %define HAVE_SSE 1
58
+ %define HAVE_SSE2 1
59
+ %define HAVE_SSE3 1
60
+ %define HAVE_SSE4 1
61
+ %define HAVE_SSE42 1
62
+ %define HAVE_SSSE3 1
63
+ %define HAVE_XOP 1
64
+ %define HAVE_CPUNOP 1
65
+ %define HAVE_I686 1
66
+ %define HAVE_MIPSFPU 0
67
+ %define HAVE_MIPS32R2 0
68
+ %define HAVE_MIPS32R5 0
69
+ %define HAVE_MIPS64R2 0
70
+ %define HAVE_MIPS32R6 0
71
+ %define HAVE_MIPS64R6 0
72
+ %define HAVE_MIPSDSP 0
73
+ %define HAVE_MIPSDSPR2 0
74
+ %define HAVE_MSA 0
75
+ %define HAVE_LOONGSON2 0
76
+ %define HAVE_LOONGSON3 0
77
+ %define HAVE_MMI 0
78
+ %define HAVE_LSX 0
79
+ %define HAVE_LASX 0
80
+ %define HAVE_ARMV5TE_EXTERNAL 0
81
+ %define HAVE_ARMV6_EXTERNAL 0
82
+ %define HAVE_ARMV6T2_EXTERNAL 0
83
+ %define HAVE_ARMV8_EXTERNAL 0
84
+ %define HAVE_DOTPROD_EXTERNAL 0
85
+ %define HAVE_I8MM_EXTERNAL 0
86
+ %define HAVE_NEON_EXTERNAL 0
87
+ %define HAVE_VFP_EXTERNAL 0
88
+ %define HAVE_VFPV3_EXTERNAL 0
89
+ %define HAVE_SETEND_EXTERNAL 0
90
+ %define HAVE_ALTIVEC_EXTERNAL 0
91
+ %define HAVE_DCBZL_EXTERNAL 0
92
+ %define HAVE_LDBRX_EXTERNAL 0
93
+ %define HAVE_POWER8_EXTERNAL 0
94
+ %define HAVE_PPC4XX_EXTERNAL 0
95
+ %define HAVE_VSX_EXTERNAL 0
96
+ %define HAVE_RVV_EXTERNAL 0
97
+ %define HAVE_AESNI_EXTERNAL 1
98
+ %define HAVE_AMD3DNOW_EXTERNAL 1
99
+ %define HAVE_AMD3DNOWEXT_EXTERNAL 1
100
+ %define HAVE_AVX_EXTERNAL 1
101
+ %define HAVE_AVX2_EXTERNAL 1
102
+ %define HAVE_AVX512_EXTERNAL 0
103
+ %define HAVE_AVX512ICL_EXTERNAL 0
104
+ %define HAVE_FMA3_EXTERNAL 1
105
+ %define HAVE_FMA4_EXTERNAL 1
106
+ %define HAVE_MMX_EXTERNAL 1
107
+ %define HAVE_MMXEXT_EXTERNAL 1
108
+ %define HAVE_SSE_EXTERNAL 1
109
+ %define HAVE_SSE2_EXTERNAL 1
110
+ %define HAVE_SSE3_EXTERNAL 1
111
+ %define HAVE_SSE4_EXTERNAL 1
112
+ %define HAVE_SSE42_EXTERNAL 1
113
+ %define HAVE_SSSE3_EXTERNAL 1
114
+ %define HAVE_XOP_EXTERNAL 1
115
+ %define HAVE_CPUNOP_EXTERNAL 0
116
+ %define HAVE_I686_EXTERNAL 0
117
+ %define HAVE_MIPSFPU_EXTERNAL 0
118
+ %define HAVE_MIPS32R2_EXTERNAL 0
119
+ %define HAVE_MIPS32R5_EXTERNAL 0
120
+ %define HAVE_MIPS64R2_EXTERNAL 0
121
+ %define HAVE_MIPS32R6_EXTERNAL 0
122
+ %define HAVE_MIPS64R6_EXTERNAL 0
123
+ %define HAVE_MIPSDSP_EXTERNAL 0
124
+ %define HAVE_MIPSDSPR2_EXTERNAL 0
125
+ %define HAVE_MSA_EXTERNAL 0
126
+ %define HAVE_LOONGSON2_EXTERNAL 0
127
+ %define HAVE_LOONGSON3_EXTERNAL 0
128
+ %define HAVE_MMI_EXTERNAL 0
129
+ %define HAVE_LSX_EXTERNAL 0
130
+ %define HAVE_LASX_EXTERNAL 0
131
+ %define HAVE_ARMV5TE_INLINE 0
132
+ %define HAVE_ARMV6_INLINE 0
133
+ %define HAVE_ARMV6T2_INLINE 0
134
+ %define HAVE_ARMV8_INLINE 0
135
+ %define HAVE_DOTPROD_INLINE 0
136
+ %define HAVE_I8MM_INLINE 0
137
+ %define HAVE_NEON_INLINE 0
138
+ %define HAVE_VFP_INLINE 0
139
+ %define HAVE_VFPV3_INLINE 0
140
+ %define HAVE_SETEND_INLINE 0
141
+ %define HAVE_ALTIVEC_INLINE 0
142
+ %define HAVE_DCBZL_INLINE 0
143
+ %define HAVE_LDBRX_INLINE 0
144
+ %define HAVE_POWER8_INLINE 0
145
+ %define HAVE_PPC4XX_INLINE 0
146
+ %define HAVE_VSX_INLINE 0
147
+ %define HAVE_RVV_INLINE 0
148
+ %define HAVE_AESNI_INLINE 1
149
+ %define HAVE_AMD3DNOW_INLINE 1
150
+ %define HAVE_AMD3DNOWEXT_INLINE 1
151
+ %define HAVE_AVX_INLINE 1
152
+ %define HAVE_AVX2_INLINE 1
153
+ %define HAVE_AVX512_INLINE 1
154
+ %define HAVE_AVX512ICL_INLINE 1
155
+ %define HAVE_FMA3_INLINE 1
156
+ %define HAVE_FMA4_INLINE 1
157
+ %define HAVE_MMX_INLINE 1
158
+ %define HAVE_MMXEXT_INLINE 1
159
+ %define HAVE_SSE_INLINE 1
160
+ %define HAVE_SSE2_INLINE 1
161
+ %define HAVE_SSE3_INLINE 1
162
+ %define HAVE_SSE4_INLINE 1
163
+ %define HAVE_SSE42_INLINE 1
164
+ %define HAVE_SSSE3_INLINE 1
165
+ %define HAVE_XOP_INLINE 1
166
+ %define HAVE_CPUNOP_INLINE 0
167
+ %define HAVE_I686_INLINE 0
168
+ %define HAVE_MIPSFPU_INLINE 0
169
+ %define HAVE_MIPS32R2_INLINE 0
170
+ %define HAVE_MIPS32R5_INLINE 0
171
+ %define HAVE_MIPS64R2_INLINE 0
172
+ %define HAVE_MIPS32R6_INLINE 0
173
+ %define HAVE_MIPS64R6_INLINE 0
174
+ %define HAVE_MIPSDSP_INLINE 0
175
+ %define HAVE_MIPSDSPR2_INLINE 0
176
+ %define HAVE_MSA_INLINE 0
177
+ %define HAVE_LOONGSON2_INLINE 0
178
+ %define HAVE_LOONGSON3_INLINE 0
179
+ %define HAVE_MMI_INLINE 0
180
+ %define HAVE_LSX_INLINE 0
181
+ %define HAVE_LASX_INLINE 0
182
+ %define HAVE_ALIGNED_STACK 1
183
+ %define HAVE_FAST_64BIT 1
184
+ %define HAVE_FAST_CLZ 1
185
+ %define HAVE_FAST_CMOV 1
186
+ %define HAVE_FAST_FLOAT16 0
187
+ %define HAVE_LOCAL_ALIGNED 1
188
+ %define HAVE_SIMD_ALIGN_16 1
189
+ %define HAVE_SIMD_ALIGN_32 1
190
+ %define HAVE_SIMD_ALIGN_64 1
191
+ %define HAVE_ATOMIC_CAS_PTR 0
192
+ %define HAVE_MACHINE_RW_BARRIER 0
193
+ %define HAVE_MEMORYBARRIER 0
194
+ %define HAVE_MM_EMPTY 1
195
+ %define HAVE_RDTSC 0
196
+ %define HAVE_SEM_TIMEDWAIT 1
197
+ %define HAVE_SYNC_VAL_COMPARE_AND_SWAP 1
198
+ %define HAVE_INLINE_ASM 1
199
+ %define HAVE_SYMVER 1
200
+ %define HAVE_X86ASM 1
201
+ %define HAVE_BIGENDIAN 0
202
+ %define HAVE_FAST_UNALIGNED 1
203
+ %define HAVE_ARPA_INET_H 1
204
+ %define HAVE_ASM_HWCAP_H 0
205
+ %define HAVE_ASM_TYPES_H 1
206
+ %define HAVE_CDIO_PARANOIA_H 0
207
+ %define HAVE_CDIO_PARANOIA_PARANOIA_H 0
208
+ %define HAVE_CUDA_H 0
209
+ %define HAVE_DISPATCH_DISPATCH_H 0
210
+ %define HAVE_DEV_BKTR_IOCTL_BT848_H 0
211
+ %define HAVE_DEV_BKTR_IOCTL_METEOR_H 0
212
+ %define HAVE_DEV_IC_BT8XX_H 0
213
+ %define HAVE_DEV_VIDEO_BKTR_IOCTL_BT848_H 0
214
+ %define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0
215
+ %define HAVE_DIRECT_H 0
216
+ %define HAVE_DIRENT_H 1
217
+ %define HAVE_DXGIDEBUG_H 0
218
+ %define HAVE_DXVA_H 0
219
+ %define HAVE_ES2_GL_H 0
220
+ %define HAVE_GSM_H 0
221
+ %define HAVE_IO_H 0
222
+ %define HAVE_LINUX_DMA_BUF_H 0
223
+ %define HAVE_LINUX_PERF_EVENT_H 1
224
+ %define HAVE_MACHINE_IOCTL_BT848_H 0
225
+ %define HAVE_MACHINE_IOCTL_METEOR_H 0
226
+ %define HAVE_MALLOC_H 1
227
+ %define HAVE_OPENCV2_CORE_CORE_C_H 0
228
+ %define HAVE_OPENGL_GL3_H 0
229
+ %define HAVE_POLL_H 1
230
+ %define HAVE_SYS_PARAM_H 1
231
+ %define HAVE_SYS_RESOURCE_H 1
232
+ %define HAVE_SYS_SELECT_H 1
233
+ %define HAVE_SYS_SOUNDCARD_H 1
234
+ %define HAVE_SYS_TIME_H 1
235
+ %define HAVE_SYS_UN_H 1
236
+ %define HAVE_SYS_VIDEOIO_H 0
237
+ %define HAVE_TERMIOS_H 1
238
+ %define HAVE_UDPLITE_H 0
239
+ %define HAVE_UNISTD_H 1
240
+ %define HAVE_VALGRIND_VALGRIND_H 0
241
+ %define HAVE_WINDOWS_H 0
242
+ %define HAVE_WINSOCK2_H 0
243
+ %define HAVE_INTRINSICS_NEON 0
244
+ %define HAVE_ATANF 1
245
+ %define HAVE_ATAN2F 1
246
+ %define HAVE_CBRT 1
247
+ %define HAVE_CBRTF 1
248
+ %define HAVE_COPYSIGN 1
249
+ %define HAVE_COSF 1
250
+ %define HAVE_ERF 1
251
+ %define HAVE_EXP2 1
252
+ %define HAVE_EXP2F 1
253
+ %define HAVE_EXPF 1
254
+ %define HAVE_HYPOT 1
255
+ %define HAVE_ISFINITE 1
256
+ %define HAVE_ISINF 1
257
+ %define HAVE_ISNAN 1
258
+ %define HAVE_LDEXPF 1
259
+ %define HAVE_LLRINT 1
260
+ %define HAVE_LLRINTF 1
261
+ %define HAVE_LOG2 1
262
+ %define HAVE_LOG2F 1
263
+ %define HAVE_LOG10F 1
264
+ %define HAVE_LRINT 1
265
+ %define HAVE_LRINTF 1
266
+ %define HAVE_POWF 1
267
+ %define HAVE_RINT 1
268
+ %define HAVE_ROUND 1
269
+ %define HAVE_ROUNDF 1
270
+ %define HAVE_SINF 1
271
+ %define HAVE_TRUNC 1
272
+ %define HAVE_TRUNCF 1
273
+ %define HAVE_DOS_PATHS 0
274
+ %define HAVE_LIBC_MSVCRT 0
275
+ %define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0
276
+ %define HAVE_SECTION_DATA_REL_RO 1
277
+ %define HAVE_THREADS 1
278
+ %define HAVE_UWP 0
279
+ %define HAVE_WINRT 0
280
+ %define HAVE_ACCESS 1
281
+ %define HAVE_ALIGNED_MALLOC 0
282
+ %define HAVE_ARC4RANDOM_BUF 0
283
+ %define HAVE_CLOCK_GETTIME 1
284
+ %define HAVE_CLOSESOCKET 0
285
+ %define HAVE_COMMANDLINETOARGVW 0
286
+ %define HAVE_FCNTL 1
287
+ %define HAVE_GETADDRINFO 1
288
+ %define HAVE_GETAUXVAL 1
289
+ %define HAVE_GETENV 1
290
+ %define HAVE_GETHRTIME 0
291
+ %define HAVE_GETOPT 1
292
+ %define HAVE_GETMODULEHANDLE 0
293
+ %define HAVE_GETPROCESSAFFINITYMASK 0
294
+ %define HAVE_GETPROCESSMEMORYINFO 0
295
+ %define HAVE_GETPROCESSTIMES 0
296
+ %define HAVE_GETRUSAGE 1
297
+ %define HAVE_GETSTDHANDLE 0
298
+ %define HAVE_GETSYSTEMTIMEASFILETIME 0
299
+ %define HAVE_GETTIMEOFDAY 1
300
+ %define HAVE_GLOB 1
301
+ %define HAVE_GLXGETPROCADDRESS 0
302
+ %define HAVE_GMTIME_R 1
303
+ %define HAVE_INET_ATON 1
304
+ %define HAVE_ISATTY 1
305
+ %define HAVE_KBHIT 0
306
+ %define HAVE_LOCALTIME_R 1
307
+ %define HAVE_LSTAT 1
308
+ %define HAVE_LZO1X_999_COMPRESS 0
309
+ %define HAVE_MACH_ABSOLUTE_TIME 0
310
+ %define HAVE_MAPVIEWOFFILE 0
311
+ %define HAVE_MEMALIGN 1
312
+ %define HAVE_MKSTEMP 1
313
+ %define HAVE_MMAP 1
314
+ %define HAVE_MPROTECT 1
315
+ %define HAVE_NANOSLEEP 1
316
+ %define HAVE_PEEKNAMEDPIPE 0
317
+ %define HAVE_POSIX_MEMALIGN 1
318
+ %define HAVE_PRCTL 1
319
+ %define HAVE_PTHREAD_CANCEL 1
320
+ %define HAVE_SCHED_GETAFFINITY 1
321
+ %define HAVE_SECITEMIMPORT 0
322
+ %define HAVE_SETCONSOLETEXTATTRIBUTE 0
323
+ %define HAVE_SETCONSOLECTRLHANDLER 0
324
+ %define HAVE_SETDLLDIRECTORY 0
325
+ %define HAVE_SETMODE 0
326
+ %define HAVE_SETRLIMIT 1
327
+ %define HAVE_SLEEP 0
328
+ %define HAVE_STRERROR_R 1
329
+ %define HAVE_SYSCONF 1
330
+ %define HAVE_SYSCTL 0
331
+ %define HAVE_SYSCTLBYNAME 0
332
+ %define HAVE_USLEEP 1
333
+ %define HAVE_UTGETOSTYPEFROMSTRING 0
334
+ %define HAVE_VIRTUALALLOC 0
335
+ %define HAVE_WGLGETPROCADDRESS 0
336
+ %define HAVE_BCRYPT 0
337
+ %define HAVE_VAAPI_DRM 0
338
+ %define HAVE_VAAPI_X11 0
339
+ %define HAVE_VAAPI_WIN32 0
340
+ %define HAVE_VDPAU_X11 0
341
+ %define HAVE_PTHREADS 1
342
+ %define HAVE_OS2THREADS 0
343
+ %define HAVE_W32THREADS 0
344
+ %define HAVE_AS_ARCH_DIRECTIVE 0
345
+ %define HAVE_AS_ARCHEXT_DOTPROD_DIRECTIVE 0
346
+ %define HAVE_AS_ARCHEXT_I8MM_DIRECTIVE 0
347
+ %define HAVE_AS_DN_DIRECTIVE 0
348
+ %define HAVE_AS_FPU_DIRECTIVE 0
349
+ %define HAVE_AS_FUNC 0
350
+ %define HAVE_AS_OBJECT_ARCH 0
351
+ %define HAVE_ASM_MOD_Q 0
352
+ %define HAVE_BLOCKS_EXTENSION 0
353
+ %define HAVE_EBP_AVAILABLE 1
354
+ %define HAVE_EBX_AVAILABLE 1
355
+ %define HAVE_GNU_AS 0
356
+ %define HAVE_GNU_WINDRES 0
357
+ %define HAVE_IBM_ASM 0
358
+ %define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 1
359
+ %define HAVE_INLINE_ASM_LABELS 1
360
+ %define HAVE_INLINE_ASM_NONLOCAL_LABELS 1
361
+ %define HAVE_PRAGMA_DEPRECATED 1
362
+ %define HAVE_RSYNC_CONTIMEOUT 1
363
+ %define HAVE_SYMVER_ASM_LABEL 0
364
+ %define HAVE_SYMVER_GNU_ASM 1
365
+ %define HAVE_VFP_ARGS 0
366
+ %define HAVE_XFORM_ASM 0
367
+ %define HAVE_XMM_CLOBBERS 1
368
+ %define HAVE_DPI_AWARENESS_CONTEXT 0
369
+ %define HAVE_IDXGIOUTPUT5 0
370
+ %define HAVE_KCMVIDEOCODECTYPE_HEVC 0
371
+ %define HAVE_KCMVIDEOCODECTYPE_HEVCWITHALPHA 0
372
+ %define HAVE_KCMVIDEOCODECTYPE_VP9 0
373
+ %define HAVE_KCVPIXELFORMATTYPE_420YPCBCR10BIPLANARVIDEORANGE 0
374
+ %define HAVE_KCVPIXELFORMATTYPE_422YPCBCR8BIPLANARVIDEORANGE 0
375
+ %define HAVE_KCVPIXELFORMATTYPE_422YPCBCR10BIPLANARVIDEORANGE 0
376
+ %define HAVE_KCVPIXELFORMATTYPE_422YPCBCR16BIPLANARVIDEORANGE 0
377
+ %define HAVE_KCVPIXELFORMATTYPE_444YPCBCR8BIPLANARVIDEORANGE 0
378
+ %define HAVE_KCVPIXELFORMATTYPE_444YPCBCR10BIPLANARVIDEORANGE 0
379
+ %define HAVE_KCVPIXELFORMATTYPE_444YPCBCR16BIPLANARVIDEORANGE 0
380
+ %define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_SMPTE_ST_2084_PQ 0
381
+ %define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_ITU_R_2100_HLG 0
382
+ %define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_LINEAR 0
383
+ %define HAVE_KCVIMAGEBUFFERYCBCRMATRIX_ITU_R_2020 0
384
+ %define HAVE_KCVIMAGEBUFFERCOLORPRIMARIES_ITU_R_2020 0
385
+ %define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_ITU_R_2020 0
386
+ %define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_SMPTE_ST_428_1 0
387
+ %define HAVE_SOCKLEN_T 1
388
+ %define HAVE_STRUCT_ADDRINFO 1
389
+ %define HAVE_STRUCT_GROUP_SOURCE_REQ 1
390
+ %define HAVE_STRUCT_IP_MREQ_SOURCE 1
391
+ %define HAVE_STRUCT_IPV6_MREQ 1
392
+ %define HAVE_STRUCT_MSGHDR_MSG_FLAGS 1
393
+ %define HAVE_STRUCT_POLLFD 1
394
+ %define HAVE_STRUCT_RUSAGE_RU_MAXRSS 1
395
+ %define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0
396
+ %define HAVE_STRUCT_SOCKADDR_IN6 1
397
+ %define HAVE_STRUCT_SOCKADDR_SA_LEN 0
398
+ %define HAVE_STRUCT_SOCKADDR_STORAGE 1
399
+ %define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1
400
+ %define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 1
401
+ %define HAVE_GZIP 1
402
+ %define HAVE_LIBDRM_GETFB2 0
403
+ %define HAVE_MAKEINFO 0
404
+ %define HAVE_MAKEINFO_HTML 0
405
+ %define HAVE_OPENCL_D3D11 0
406
+ %define HAVE_OPENCL_DRM_ARM 0
407
+ %define HAVE_OPENCL_DRM_BEIGNET 0
408
+ %define HAVE_OPENCL_DXVA2 0
409
+ %define HAVE_OPENCL_VAAPI_BEIGNET 0
410
+ %define HAVE_OPENCL_VAAPI_INTEL_MEDIA 0
411
+ %define HAVE_PERL 1
412
+ %define HAVE_POD2MAN 1
413
+ %define HAVE_TEXI2HTML 0
414
+ %define HAVE_XMLLINT 0
415
+ %define HAVE_ZLIB_GZIP 1
416
+ %define HAVE_OPENVINO2 0
417
+ %define CONFIG_DOC 1
418
+ %define CONFIG_HTMLPAGES 0
419
+ %define CONFIG_MANPAGES 1
420
+ %define CONFIG_PODPAGES 1
421
+ %define CONFIG_TXTPAGES 0
422
+ %define CONFIG_AVIO_HTTP_SERVE_FILES_EXAMPLE 1
423
+ %define CONFIG_AVIO_LIST_DIR_EXAMPLE 1
424
+ %define CONFIG_AVIO_READ_CALLBACK_EXAMPLE 1
425
+ %define CONFIG_DECODE_AUDIO_EXAMPLE 1
426
+ %define CONFIG_DECODE_FILTER_AUDIO_EXAMPLE 1
427
+ %define CONFIG_DECODE_FILTER_VIDEO_EXAMPLE 1
428
+ %define CONFIG_DECODE_VIDEO_EXAMPLE 1
429
+ %define CONFIG_DEMUX_DECODE_EXAMPLE 1
430
+ %define CONFIG_ENCODE_AUDIO_EXAMPLE 1
431
+ %define CONFIG_ENCODE_VIDEO_EXAMPLE 1
432
+ %define CONFIG_EXTRACT_MVS_EXAMPLE 1
433
+ %define CONFIG_FILTER_AUDIO_EXAMPLE 1
434
+ %define CONFIG_HW_DECODE_EXAMPLE 1
435
+ %define CONFIG_MUX_EXAMPLE 1
436
+ %define CONFIG_QSV_DECODE_EXAMPLE 0
437
+ %define CONFIG_REMUX_EXAMPLE 1
438
+ %define CONFIG_RESAMPLE_AUDIO_EXAMPLE 1
439
+ %define CONFIG_SCALE_VIDEO_EXAMPLE 1
440
+ %define CONFIG_SHOW_METADATA_EXAMPLE 1
441
+ %define CONFIG_TRANSCODE_AAC_EXAMPLE 1
442
+ %define CONFIG_TRANSCODE_EXAMPLE 1
443
+ %define CONFIG_VAAPI_ENCODE_EXAMPLE 0
444
+ %define CONFIG_VAAPI_TRANSCODE_EXAMPLE 0
445
+ %define CONFIG_QSV_TRANSCODE_EXAMPLE 0
446
+ %define CONFIG_AVISYNTH 0
447
+ %define CONFIG_FREI0R 0
448
+ %define CONFIG_LIBCDIO 0
449
+ %define CONFIG_LIBDAVS2 0
450
+ %define CONFIG_LIBRUBBERBAND 0
451
+ %define CONFIG_LIBVIDSTAB 0
452
+ %define CONFIG_LIBX264 0
453
+ %define CONFIG_LIBX265 0
454
+ %define CONFIG_LIBXAVS 0
455
+ %define CONFIG_LIBXAVS2 0
456
+ %define CONFIG_LIBXVID 0
457
+ %define CONFIG_DECKLINK 0
458
+ %define CONFIG_LIBFDK_AAC 0
459
+ %define CONFIG_LIBTLS 0
460
+ %define CONFIG_GMP 0
461
+ %define CONFIG_LIBARIBB24 0
462
+ %define CONFIG_LIBLENSFUN 0
463
+ %define CONFIG_LIBOPENCORE_AMRNB 0
464
+ %define CONFIG_LIBOPENCORE_AMRWB 0
465
+ %define CONFIG_LIBVO_AMRWBENC 0
466
+ %define CONFIG_MBEDTLS 0
467
+ %define CONFIG_RKMPP 0
468
+ %define CONFIG_LIBSMBCLIENT 0
469
+ %define CONFIG_CHROMAPRINT 0
470
+ %define CONFIG_GCRYPT 0
471
+ %define CONFIG_GNUTLS 0
472
+ %define CONFIG_JNI 0
473
+ %define CONFIG_LADSPA 0
474
+ %define CONFIG_LCMS2 0
475
+ %define CONFIG_LIBAOM 0
476
+ %define CONFIG_LIBARIBCAPTION 0
477
+ %define CONFIG_LIBASS 0
478
+ %define CONFIG_LIBBLURAY 0
479
+ %define CONFIG_LIBBS2B 0
480
+ %define CONFIG_LIBCACA 0
481
+ %define CONFIG_LIBCELT 0
482
+ %define CONFIG_LIBCODEC2 0
483
+ %define CONFIG_LIBDAV1D 0
484
+ %define CONFIG_LIBDC1394 0
485
+ %define CONFIG_LIBDRM 0
486
+ %define CONFIG_LIBFLITE 0
487
+ %define CONFIG_LIBFONTCONFIG 0
488
+ %define CONFIG_LIBFREETYPE 0
489
+ %define CONFIG_LIBFRIBIDI 0
490
+ %define CONFIG_LIBHARFBUZZ 0
491
+ %define CONFIG_LIBGLSLANG 0
492
+ %define CONFIG_LIBGME 0
493
+ %define CONFIG_LIBGSM 0
494
+ %define CONFIG_LIBIEC61883 0
495
+ %define CONFIG_LIBILBC 0
496
+ %define CONFIG_LIBJACK 0
497
+ %define CONFIG_LIBJXL 0
498
+ %define CONFIG_LIBKLVANC 0
499
+ %define CONFIG_LIBKVAZAAR 0
500
+ %define CONFIG_LIBMODPLUG 0
501
+ %define CONFIG_LIBMP3LAME 0
502
+ %define CONFIG_LIBMYSOFA 0
503
+ %define CONFIG_LIBOPENCV 0
504
+ %define CONFIG_LIBOPENH264 0
505
+ %define CONFIG_LIBOPENJPEG 0
506
+ %define CONFIG_LIBOPENMPT 0
507
+ %define CONFIG_LIBOPENVINO 0
508
+ %define CONFIG_LIBOPUS 0
509
+ %define CONFIG_LIBPLACEBO 0
510
+ %define CONFIG_LIBPULSE 0
511
+ %define CONFIG_LIBRABBITMQ 0
512
+ %define CONFIG_LIBRAV1E 0
513
+ %define CONFIG_LIBRIST 0
514
+ %define CONFIG_LIBRSVG 0
515
+ %define CONFIG_LIBRTMP 0
516
+ %define CONFIG_LIBSHADERC 0
517
+ %define CONFIG_LIBSHINE 0
518
+ %define CONFIG_LIBSMBCLIENT 0
519
+ %define CONFIG_LIBSNAPPY 0
520
+ %define CONFIG_LIBSOXR 0
521
+ %define CONFIG_LIBSPEEX 0
522
+ %define CONFIG_LIBSRT 0
523
+ %define CONFIG_LIBSSH 0
524
+ %define CONFIG_LIBSVTAV1 0
525
+ %define CONFIG_LIBTENSORFLOW 0
526
+ %define CONFIG_LIBTESSERACT 0
527
+ %define CONFIG_LIBTHEORA 0
528
+ %define CONFIG_LIBTWOLAME 0
529
+ %define CONFIG_LIBUAVS3D 0
530
+ %define CONFIG_LIBV4L2 0
531
+ %define CONFIG_LIBVMAF 0
532
+ %define CONFIG_LIBVORBIS 0
533
+ %define CONFIG_LIBVPX 0
534
+ %define CONFIG_LIBWEBP 0
535
+ %define CONFIG_LIBXML2 0
536
+ %define CONFIG_LIBZIMG 0
537
+ %define CONFIG_LIBZMQ 0
538
+ %define CONFIG_LIBZVBI 0
539
+ %define CONFIG_LV2 0
540
+ %define CONFIG_MEDIACODEC 0
541
+ %define CONFIG_OPENAL 0
542
+ %define CONFIG_OPENGL 0
543
+ %define CONFIG_OPENSSL 0
544
+ %define CONFIG_POCKETSPHINX 0
545
+ %define CONFIG_VAPOURSYNTH 0
546
+ %define CONFIG_ALSA 1
547
+ %define CONFIG_APPKIT 0
548
+ %define CONFIG_AVFOUNDATION 0
549
+ %define CONFIG_BZLIB 1
550
+ %define CONFIG_COREIMAGE 0
551
+ %define CONFIG_ICONV 1
552
+ %define CONFIG_LIBXCB 1
553
+ %define CONFIG_LIBXCB_SHM 0
554
+ %define CONFIG_LIBXCB_SHAPE 0
555
+ %define CONFIG_LIBXCB_XFIXES 0
556
+ %define CONFIG_LZMA 1
557
+ %define CONFIG_MEDIAFOUNDATION 0
558
+ %define CONFIG_METAL 0
559
+ %define CONFIG_SCHANNEL 0
560
+ %define CONFIG_SDL2 0
561
+ %define CONFIG_SECURETRANSPORT 0
562
+ %define CONFIG_SNDIO 0
563
+ %define CONFIG_XLIB 0
564
+ %define CONFIG_ZLIB 1
565
+ %define CONFIG_CUDA_NVCC 1
566
+ %define CONFIG_CUDA_SDK 0
567
+ %define CONFIG_LIBNPP 1
568
+ %define CONFIG_LIBMFX 0
569
+ %define CONFIG_LIBVPL 0
570
+ %define CONFIG_MMAL 0
571
+ %define CONFIG_OMX 0
572
+ %define CONFIG_OPENCL 0
573
+ %define CONFIG_AMF 0
574
+ %define CONFIG_AUDIOTOOLBOX 0
575
+ %define CONFIG_CRYSTALHD 0
576
+ %define CONFIG_CUDA 1
577
+ %define CONFIG_CUDA_LLVM 1
578
+ %define CONFIG_CUVID 1
579
+ %define CONFIG_D3D11VA 0
580
+ %define CONFIG_DXVA2 0
581
+ %define CONFIG_FFNVCODEC 1
582
+ %define CONFIG_NVDEC 1
583
+ %define CONFIG_NVENC 1
584
+ %define CONFIG_VAAPI 0
585
+ %define CONFIG_VDPAU 0
586
+ %define CONFIG_VIDEOTOOLBOX 0
587
+ %define CONFIG_VULKAN 0
588
+ %define CONFIG_V4L2_M2M 1
589
+ %define CONFIG_FTRAPV 0
590
+ %define CONFIG_GRAY 0
591
+ %define CONFIG_HARDCODED_TABLES 0
592
+ %define CONFIG_OMX_RPI 0
593
+ %define CONFIG_RUNTIME_CPUDETECT 1
594
+ %define CONFIG_SAFE_BITSTREAM_READER 1
595
+ %define CONFIG_SHARED 1
596
+ %define CONFIG_SMALL 0
597
+ %define CONFIG_STATIC 0
598
+ %define CONFIG_SWSCALE_ALPHA 1
599
+ %define CONFIG_GPL 0
600
+ %define CONFIG_NONFREE 1
601
+ %define CONFIG_VERSION3 0
602
+ %define CONFIG_AVDEVICE 1
603
+ %define CONFIG_AVFILTER 1
604
+ %define CONFIG_SWSCALE 1
605
+ %define CONFIG_POSTPROC 0
606
+ %define CONFIG_AVFORMAT 1
607
+ %define CONFIG_AVCODEC 1
608
+ %define CONFIG_SWRESAMPLE 1
609
+ %define CONFIG_AVUTIL 1
610
+ %define CONFIG_FFPLAY 0
611
+ %define CONFIG_FFPROBE 1
612
+ %define CONFIG_FFMPEG 1
613
+ %define CONFIG_DCT 1
614
+ %define CONFIG_DWT 1
615
+ %define CONFIG_ERROR_RESILIENCE 1
616
+ %define CONFIG_FAAN 1
617
+ %define CONFIG_FAST_UNALIGNED 1
618
+ %define CONFIG_FFT 1
619
+ %define CONFIG_LSP 1
620
+ %define CONFIG_MDCT 0
621
+ %define CONFIG_PIXELUTILS 1
622
+ %define CONFIG_NETWORK 1
623
+ %define CONFIG_RDFT 1
624
+ %define CONFIG_AUTODETECT 0
625
+ %define CONFIG_FONTCONFIG 0
626
+ %define CONFIG_LARGE_TESTS 1
627
+ %define CONFIG_LINUX_PERF 0
628
+ %define CONFIG_MACOS_KPERF 0
629
+ %define CONFIG_MEMORY_POISONING 0
630
+ %define CONFIG_NEON_CLOBBER_TEST 0
631
+ %define CONFIG_OSSFUZZ 0
632
+ %define CONFIG_PIC 1
633
+ %define CONFIG_PTX_COMPRESSION 1
634
+ %define CONFIG_THUMB 0
635
+ %define CONFIG_VALGRIND_BACKTRACE 0
636
+ %define CONFIG_XMM_CLOBBER_TEST 0
637
+ %define CONFIG_BSFS 1
638
+ %define CONFIG_DECODERS 1
639
+ %define CONFIG_ENCODERS 1
640
+ %define CONFIG_HWACCELS 1
641
+ %define CONFIG_PARSERS 1
642
+ %define CONFIG_INDEVS 1
643
+ %define CONFIG_OUTDEVS 1
644
+ %define CONFIG_FILTERS 1
645
+ %define CONFIG_DEMUXERS 1
646
+ %define CONFIG_MUXERS 1
647
+ %define CONFIG_PROTOCOLS 1
648
+ %define CONFIG_AANDCTTABLES 1
649
+ %define CONFIG_AC3DSP 1
650
+ %define CONFIG_ADTS_HEADER 1
651
+ %define CONFIG_ATSC_A53 1
652
+ %define CONFIG_AUDIO_FRAME_QUEUE 1
653
+ %define CONFIG_AUDIODSP 1
654
+ %define CONFIG_BLOCKDSP 1
655
+ %define CONFIG_BSWAPDSP 1
656
+ %define CONFIG_CABAC 1
657
+ %define CONFIG_CBS 1
658
+ %define CONFIG_CBS_AV1 1
659
+ %define CONFIG_CBS_H264 1
660
+ %define CONFIG_CBS_H265 1
661
+ %define CONFIG_CBS_H266 1
662
+ %define CONFIG_CBS_JPEG 0
663
+ %define CONFIG_CBS_MPEG2 1
664
+ %define CONFIG_CBS_VP9 1
665
+ %define CONFIG_DEFLATE_WRAPPER 1
666
+ %define CONFIG_DIRAC_PARSE 1
667
+ %define CONFIG_DNN 1
668
+ %define CONFIG_DOVI_RPU 1
669
+ %define CONFIG_DVPROFILE 1
670
+ %define CONFIG_EVCPARSE 1
671
+ %define CONFIG_EXIF 1
672
+ %define CONFIG_FAANDCT 1
673
+ %define CONFIG_FAANIDCT 1
674
+ %define CONFIG_FDCTDSP 1
675
+ %define CONFIG_FMTCONVERT 1
676
+ %define CONFIG_FRAME_THREAD_ENCODER 1
677
+ %define CONFIG_G722DSP 1
678
+ %define CONFIG_GOLOMB 1
679
+ %define CONFIG_GPLV3 0
680
+ %define CONFIG_H263DSP 1
681
+ %define CONFIG_H264CHROMA 1
682
+ %define CONFIG_H264DSP 1
683
+ %define CONFIG_H264PARSE 1
684
+ %define CONFIG_H264PRED 1
685
+ %define CONFIG_H264QPEL 1
686
+ %define CONFIG_H264_SEI 1
687
+ %define CONFIG_HEVCPARSE 1
688
+ %define CONFIG_HEVC_SEI 1
689
+ %define CONFIG_HPELDSP 1
690
+ %define CONFIG_HUFFMAN 1
691
+ %define CONFIG_HUFFYUVDSP 1
692
+ %define CONFIG_HUFFYUVENCDSP 1
693
+ %define CONFIG_IDCTDSP 1
694
+ %define CONFIG_IIRFILTER 1
695
+ %define CONFIG_INFLATE_WRAPPER 1
696
+ %define CONFIG_INTRAX8 1
697
+ %define CONFIG_ISO_MEDIA 1
698
+ %define CONFIG_IVIDSP 1
699
+ %define CONFIG_JPEGTABLES 1
700
+ %define CONFIG_LGPLV3 0
701
+ %define CONFIG_LIBX262 0
702
+ %define CONFIG_LLAUDDSP 1
703
+ %define CONFIG_LLVIDDSP 1
704
+ %define CONFIG_LLVIDENCDSP 1
705
+ %define CONFIG_LPC 1
706
+ %define CONFIG_LZF 1
707
+ %define CONFIG_ME_CMP 1
708
+ %define CONFIG_MPEG_ER 1
709
+ %define CONFIG_MPEGAUDIO 1
710
+ %define CONFIG_MPEGAUDIODSP 1
711
+ %define CONFIG_MPEGAUDIOHEADER 1
712
+ %define CONFIG_MPEG4AUDIO 1
713
+ %define CONFIG_MPEGVIDEO 1
714
+ %define CONFIG_MPEGVIDEODEC 1
715
+ %define CONFIG_MPEGVIDEOENC 1
716
+ %define CONFIG_MSMPEG4DEC 1
717
+ %define CONFIG_MSMPEG4ENC 1
718
+ %define CONFIG_MSS34DSP 1
719
+ %define CONFIG_PIXBLOCKDSP 1
720
+ %define CONFIG_QPELDSP 1
721
+ %define CONFIG_QSV 0
722
+ %define CONFIG_QSVDEC 0
723
+ %define CONFIG_QSVENC 0
724
+ %define CONFIG_QSVVPP 0
725
+ %define CONFIG_RANGECODER 1
726
+ %define CONFIG_RIFFDEC 1
727
+ %define CONFIG_RIFFENC 1
728
+ %define CONFIG_RTPDEC 1
729
+ %define CONFIG_RTPENC_CHAIN 1
730
+ %define CONFIG_RV34DSP 1
731
+ %define CONFIG_SCENE_SAD 1
732
+ %define CONFIG_SINEWIN 1
733
+ %define CONFIG_SNAPPY 1
734
+ %define CONFIG_SRTP 1
735
+ %define CONFIG_STARTCODE 1
736
+ %define CONFIG_TEXTUREDSP 1
737
+ %define CONFIG_TEXTUREDSPENC 1
738
+ %define CONFIG_TPELDSP 1
739
+ %define CONFIG_VAAPI_1 0
740
+ %define CONFIG_VAAPI_ENCODE 0
741
+ %define CONFIG_VC1DSP 1
742
+ %define CONFIG_VIDEODSP 1
743
+ %define CONFIG_VP3DSP 1
744
+ %define CONFIG_VP56DSP 1
745
+ %define CONFIG_VP8DSP 1
746
+ %define CONFIG_WMA_FREQS 1
747
+ %define CONFIG_WMV2DSP 1
config.h ADDED
@@ -0,0 +1,764 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Automatically generated by configure - do not modify! */
2
+ #ifndef FFMPEG_CONFIG_H
3
+ #define FFMPEG_CONFIG_H
4
+ #define FFMPEG_CONFIGURATION "--enable-nonfree --enable-cuda-nvcc --enable-libnpp --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64 --disable-static --enable-shared"
5
+ #define FFMPEG_LICENSE "nonfree and unredistributable"
6
+ #define CONFIG_THIS_YEAR 2023
7
+ #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
8
+ #define AVCONV_DATADIR "/usr/local/share/ffmpeg"
9
+ #define CC_IDENT "gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)"
10
+ #define OS_NAME linux
11
+ #define av_restrict restrict
12
+ #define EXTERN_PREFIX ""
13
+ #define EXTERN_ASM
14
+ #define BUILDSUF ""
15
+ #define SLIBSUF ".so"
16
+ #define HAVE_MMX2 HAVE_MMXEXT
17
+ #define SWS_MAX_FILTER_SIZE 256
18
+ #define ARCH_AARCH64 0
19
+ #define ARCH_ALPHA 0
20
+ #define ARCH_ARM 0
21
+ #define ARCH_AVR32 0
22
+ #define ARCH_AVR32_AP 0
23
+ #define ARCH_AVR32_UC 0
24
+ #define ARCH_BFIN 0
25
+ #define ARCH_IA64 0
26
+ #define ARCH_LOONGARCH 0
27
+ #define ARCH_LOONGARCH32 0
28
+ #define ARCH_LOONGARCH64 0
29
+ #define ARCH_M68K 0
30
+ #define ARCH_MIPS 0
31
+ #define ARCH_MIPS64 0
32
+ #define ARCH_PARISC 0
33
+ #define ARCH_PPC 0
34
+ #define ARCH_PPC64 0
35
+ #define ARCH_RISCV 0
36
+ #define ARCH_S390 0
37
+ #define ARCH_SH4 0
38
+ #define ARCH_SPARC 0
39
+ #define ARCH_SPARC64 0
40
+ #define ARCH_TILEGX 0
41
+ #define ARCH_TILEPRO 0
42
+ #define ARCH_X86 1
43
+ #define ARCH_X86_32 0
44
+ #define ARCH_X86_64 1
45
+ #define HAVE_ARMV5TE 0
46
+ #define HAVE_ARMV6 0
47
+ #define HAVE_ARMV6T2 0
48
+ #define HAVE_ARMV8 0
49
+ #define HAVE_DOTPROD 0
50
+ #define HAVE_I8MM 0
51
+ #define HAVE_NEON 0
52
+ #define HAVE_VFP 0
53
+ #define HAVE_VFPV3 0
54
+ #define HAVE_SETEND 0
55
+ #define HAVE_ALTIVEC 0
56
+ #define HAVE_DCBZL 0
57
+ #define HAVE_LDBRX 0
58
+ #define HAVE_POWER8 0
59
+ #define HAVE_PPC4XX 0
60
+ #define HAVE_VSX 0
61
+ #define HAVE_RVV 0
62
+ #define HAVE_AESNI 1
63
+ #define HAVE_AMD3DNOW 1
64
+ #define HAVE_AMD3DNOWEXT 1
65
+ #define HAVE_AVX 1
66
+ #define HAVE_AVX2 1
67
+ #define HAVE_AVX512 1
68
+ #define HAVE_AVX512ICL 1
69
+ #define HAVE_FMA3 1
70
+ #define HAVE_FMA4 1
71
+ #define HAVE_MMX 1
72
+ #define HAVE_MMXEXT 1
73
+ #define HAVE_SSE 1
74
+ #define HAVE_SSE2 1
75
+ #define HAVE_SSE3 1
76
+ #define HAVE_SSE4 1
77
+ #define HAVE_SSE42 1
78
+ #define HAVE_SSSE3 1
79
+ #define HAVE_XOP 1
80
+ #define HAVE_CPUNOP 1
81
+ #define HAVE_I686 1
82
+ #define HAVE_MIPSFPU 0
83
+ #define HAVE_MIPS32R2 0
84
+ #define HAVE_MIPS32R5 0
85
+ #define HAVE_MIPS64R2 0
86
+ #define HAVE_MIPS32R6 0
87
+ #define HAVE_MIPS64R6 0
88
+ #define HAVE_MIPSDSP 0
89
+ #define HAVE_MIPSDSPR2 0
90
+ #define HAVE_MSA 0
91
+ #define HAVE_LOONGSON2 0
92
+ #define HAVE_LOONGSON3 0
93
+ #define HAVE_MMI 0
94
+ #define HAVE_LSX 0
95
+ #define HAVE_LASX 0
96
+ #define HAVE_ARMV5TE_EXTERNAL 0
97
+ #define HAVE_ARMV6_EXTERNAL 0
98
+ #define HAVE_ARMV6T2_EXTERNAL 0
99
+ #define HAVE_ARMV8_EXTERNAL 0
100
+ #define HAVE_DOTPROD_EXTERNAL 0
101
+ #define HAVE_I8MM_EXTERNAL 0
102
+ #define HAVE_NEON_EXTERNAL 0
103
+ #define HAVE_VFP_EXTERNAL 0
104
+ #define HAVE_VFPV3_EXTERNAL 0
105
+ #define HAVE_SETEND_EXTERNAL 0
106
+ #define HAVE_ALTIVEC_EXTERNAL 0
107
+ #define HAVE_DCBZL_EXTERNAL 0
108
+ #define HAVE_LDBRX_EXTERNAL 0
109
+ #define HAVE_POWER8_EXTERNAL 0
110
+ #define HAVE_PPC4XX_EXTERNAL 0
111
+ #define HAVE_VSX_EXTERNAL 0
112
+ #define HAVE_RVV_EXTERNAL 0
113
+ #define HAVE_AESNI_EXTERNAL 1
114
+ #define HAVE_AMD3DNOW_EXTERNAL 1
115
+ #define HAVE_AMD3DNOWEXT_EXTERNAL 1
116
+ #define HAVE_AVX_EXTERNAL 1
117
+ #define HAVE_AVX2_EXTERNAL 1
118
+ #define HAVE_AVX512_EXTERNAL 0
119
+ #define HAVE_AVX512ICL_EXTERNAL 0
120
+ #define HAVE_FMA3_EXTERNAL 1
121
+ #define HAVE_FMA4_EXTERNAL 1
122
+ #define HAVE_MMX_EXTERNAL 1
123
+ #define HAVE_MMXEXT_EXTERNAL 1
124
+ #define HAVE_SSE_EXTERNAL 1
125
+ #define HAVE_SSE2_EXTERNAL 1
126
+ #define HAVE_SSE3_EXTERNAL 1
127
+ #define HAVE_SSE4_EXTERNAL 1
128
+ #define HAVE_SSE42_EXTERNAL 1
129
+ #define HAVE_SSSE3_EXTERNAL 1
130
+ #define HAVE_XOP_EXTERNAL 1
131
+ #define HAVE_CPUNOP_EXTERNAL 0
132
+ #define HAVE_I686_EXTERNAL 0
133
+ #define HAVE_MIPSFPU_EXTERNAL 0
134
+ #define HAVE_MIPS32R2_EXTERNAL 0
135
+ #define HAVE_MIPS32R5_EXTERNAL 0
136
+ #define HAVE_MIPS64R2_EXTERNAL 0
137
+ #define HAVE_MIPS32R6_EXTERNAL 0
138
+ #define HAVE_MIPS64R6_EXTERNAL 0
139
+ #define HAVE_MIPSDSP_EXTERNAL 0
140
+ #define HAVE_MIPSDSPR2_EXTERNAL 0
141
+ #define HAVE_MSA_EXTERNAL 0
142
+ #define HAVE_LOONGSON2_EXTERNAL 0
143
+ #define HAVE_LOONGSON3_EXTERNAL 0
144
+ #define HAVE_MMI_EXTERNAL 0
145
+ #define HAVE_LSX_EXTERNAL 0
146
+ #define HAVE_LASX_EXTERNAL 0
147
+ #define HAVE_ARMV5TE_INLINE 0
148
+ #define HAVE_ARMV6_INLINE 0
149
+ #define HAVE_ARMV6T2_INLINE 0
150
+ #define HAVE_ARMV8_INLINE 0
151
+ #define HAVE_DOTPROD_INLINE 0
152
+ #define HAVE_I8MM_INLINE 0
153
+ #define HAVE_NEON_INLINE 0
154
+ #define HAVE_VFP_INLINE 0
155
+ #define HAVE_VFPV3_INLINE 0
156
+ #define HAVE_SETEND_INLINE 0
157
+ #define HAVE_ALTIVEC_INLINE 0
158
+ #define HAVE_DCBZL_INLINE 0
159
+ #define HAVE_LDBRX_INLINE 0
160
+ #define HAVE_POWER8_INLINE 0
161
+ #define HAVE_PPC4XX_INLINE 0
162
+ #define HAVE_VSX_INLINE 0
163
+ #define HAVE_RVV_INLINE 0
164
+ #define HAVE_AESNI_INLINE 1
165
+ #define HAVE_AMD3DNOW_INLINE 1
166
+ #define HAVE_AMD3DNOWEXT_INLINE 1
167
+ #define HAVE_AVX_INLINE 1
168
+ #define HAVE_AVX2_INLINE 1
169
+ #define HAVE_AVX512_INLINE 1
170
+ #define HAVE_AVX512ICL_INLINE 1
171
+ #define HAVE_FMA3_INLINE 1
172
+ #define HAVE_FMA4_INLINE 1
173
+ #define HAVE_MMX_INLINE 1
174
+ #define HAVE_MMXEXT_INLINE 1
175
+ #define HAVE_SSE_INLINE 1
176
+ #define HAVE_SSE2_INLINE 1
177
+ #define HAVE_SSE3_INLINE 1
178
+ #define HAVE_SSE4_INLINE 1
179
+ #define HAVE_SSE42_INLINE 1
180
+ #define HAVE_SSSE3_INLINE 1
181
+ #define HAVE_XOP_INLINE 1
182
+ #define HAVE_CPUNOP_INLINE 0
183
+ #define HAVE_I686_INLINE 0
184
+ #define HAVE_MIPSFPU_INLINE 0
185
+ #define HAVE_MIPS32R2_INLINE 0
186
+ #define HAVE_MIPS32R5_INLINE 0
187
+ #define HAVE_MIPS64R2_INLINE 0
188
+ #define HAVE_MIPS32R6_INLINE 0
189
+ #define HAVE_MIPS64R6_INLINE 0
190
+ #define HAVE_MIPSDSP_INLINE 0
191
+ #define HAVE_MIPSDSPR2_INLINE 0
192
+ #define HAVE_MSA_INLINE 0
193
+ #define HAVE_LOONGSON2_INLINE 0
194
+ #define HAVE_LOONGSON3_INLINE 0
195
+ #define HAVE_MMI_INLINE 0
196
+ #define HAVE_LSX_INLINE 0
197
+ #define HAVE_LASX_INLINE 0
198
+ #define HAVE_ALIGNED_STACK 1
199
+ #define HAVE_FAST_64BIT 1
200
+ #define HAVE_FAST_CLZ 1
201
+ #define HAVE_FAST_CMOV 1
202
+ #define HAVE_FAST_FLOAT16 0
203
+ #define HAVE_LOCAL_ALIGNED 1
204
+ #define HAVE_SIMD_ALIGN_16 1
205
+ #define HAVE_SIMD_ALIGN_32 1
206
+ #define HAVE_SIMD_ALIGN_64 1
207
+ #define HAVE_ATOMIC_CAS_PTR 0
208
+ #define HAVE_MACHINE_RW_BARRIER 0
209
+ #define HAVE_MEMORYBARRIER 0
210
+ #define HAVE_MM_EMPTY 1
211
+ #define HAVE_RDTSC 0
212
+ #define HAVE_SEM_TIMEDWAIT 1
213
+ #define HAVE_SYNC_VAL_COMPARE_AND_SWAP 1
214
+ #define HAVE_INLINE_ASM 1
215
+ #define HAVE_SYMVER 1
216
+ #define HAVE_X86ASM 1
217
+ #define HAVE_BIGENDIAN 0
218
+ #define HAVE_FAST_UNALIGNED 1
219
+ #define HAVE_ARPA_INET_H 1
220
+ #define HAVE_ASM_HWCAP_H 0
221
+ #define HAVE_ASM_TYPES_H 1
222
+ #define HAVE_CDIO_PARANOIA_H 0
223
+ #define HAVE_CDIO_PARANOIA_PARANOIA_H 0
224
+ #define HAVE_CUDA_H 0
225
+ #define HAVE_DISPATCH_DISPATCH_H 0
226
+ #define HAVE_DEV_BKTR_IOCTL_BT848_H 0
227
+ #define HAVE_DEV_BKTR_IOCTL_METEOR_H 0
228
+ #define HAVE_DEV_IC_BT8XX_H 0
229
+ #define HAVE_DEV_VIDEO_BKTR_IOCTL_BT848_H 0
230
+ #define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0
231
+ #define HAVE_DIRECT_H 0
232
+ #define HAVE_DIRENT_H 1
233
+ #define HAVE_DXGIDEBUG_H 0
234
+ #define HAVE_DXVA_H 0
235
+ #define HAVE_ES2_GL_H 0
236
+ #define HAVE_GSM_H 0
237
+ #define HAVE_IO_H 0
238
+ #define HAVE_LINUX_DMA_BUF_H 0
239
+ #define HAVE_LINUX_PERF_EVENT_H 1
240
+ #define HAVE_MACHINE_IOCTL_BT848_H 0
241
+ #define HAVE_MACHINE_IOCTL_METEOR_H 0
242
+ #define HAVE_MALLOC_H 1
243
+ #define HAVE_OPENCV2_CORE_CORE_C_H 0
244
+ #define HAVE_OPENGL_GL3_H 0
245
+ #define HAVE_POLL_H 1
246
+ #define HAVE_SYS_PARAM_H 1
247
+ #define HAVE_SYS_RESOURCE_H 1
248
+ #define HAVE_SYS_SELECT_H 1
249
+ #define HAVE_SYS_SOUNDCARD_H 1
250
+ #define HAVE_SYS_TIME_H 1
251
+ #define HAVE_SYS_UN_H 1
252
+ #define HAVE_SYS_VIDEOIO_H 0
253
+ #define HAVE_TERMIOS_H 1
254
+ #define HAVE_UDPLITE_H 0
255
+ #define HAVE_UNISTD_H 1
256
+ #define HAVE_VALGRIND_VALGRIND_H 0
257
+ #define HAVE_WINDOWS_H 0
258
+ #define HAVE_WINSOCK2_H 0
259
+ #define HAVE_INTRINSICS_NEON 0
260
+ #define HAVE_ATANF 1
261
+ #define HAVE_ATAN2F 1
262
+ #define HAVE_CBRT 1
263
+ #define HAVE_CBRTF 1
264
+ #define HAVE_COPYSIGN 1
265
+ #define HAVE_COSF 1
266
+ #define HAVE_ERF 1
267
+ #define HAVE_EXP2 1
268
+ #define HAVE_EXP2F 1
269
+ #define HAVE_EXPF 1
270
+ #define HAVE_HYPOT 1
271
+ #define HAVE_ISFINITE 1
272
+ #define HAVE_ISINF 1
273
+ #define HAVE_ISNAN 1
274
+ #define HAVE_LDEXPF 1
275
+ #define HAVE_LLRINT 1
276
+ #define HAVE_LLRINTF 1
277
+ #define HAVE_LOG2 1
278
+ #define HAVE_LOG2F 1
279
+ #define HAVE_LOG10F 1
280
+ #define HAVE_LRINT 1
281
+ #define HAVE_LRINTF 1
282
+ #define HAVE_POWF 1
283
+ #define HAVE_RINT 1
284
+ #define HAVE_ROUND 1
285
+ #define HAVE_ROUNDF 1
286
+ #define HAVE_SINF 1
287
+ #define HAVE_TRUNC 1
288
+ #define HAVE_TRUNCF 1
289
+ #define HAVE_DOS_PATHS 0
290
+ #define HAVE_LIBC_MSVCRT 0
291
+ #define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0
292
+ #define HAVE_SECTION_DATA_REL_RO 1
293
+ #define HAVE_THREADS 1
294
+ #define HAVE_UWP 0
295
+ #define HAVE_WINRT 0
296
+ #define HAVE_ACCESS 1
297
+ #define HAVE_ALIGNED_MALLOC 0
298
+ #define HAVE_ARC4RANDOM_BUF 0
299
+ #define HAVE_CLOCK_GETTIME 1
300
+ #define HAVE_CLOSESOCKET 0
301
+ #define HAVE_COMMANDLINETOARGVW 0
302
+ #define HAVE_FCNTL 1
303
+ #define HAVE_GETADDRINFO 1
304
+ #define HAVE_GETAUXVAL 1
305
+ #define HAVE_GETENV 1
306
+ #define HAVE_GETHRTIME 0
307
+ #define HAVE_GETOPT 1
308
+ #define HAVE_GETMODULEHANDLE 0
309
+ #define HAVE_GETPROCESSAFFINITYMASK 0
310
+ #define HAVE_GETPROCESSMEMORYINFO 0
311
+ #define HAVE_GETPROCESSTIMES 0
312
+ #define HAVE_GETRUSAGE 1
313
+ #define HAVE_GETSTDHANDLE 0
314
+ #define HAVE_GETSYSTEMTIMEASFILETIME 0
315
+ #define HAVE_GETTIMEOFDAY 1
316
+ #define HAVE_GLOB 1
317
+ #define HAVE_GLXGETPROCADDRESS 0
318
+ #define HAVE_GMTIME_R 1
319
+ #define HAVE_INET_ATON 1
320
+ #define HAVE_ISATTY 1
321
+ #define HAVE_KBHIT 0
322
+ #define HAVE_LOCALTIME_R 1
323
+ #define HAVE_LSTAT 1
324
+ #define HAVE_LZO1X_999_COMPRESS 0
325
+ #define HAVE_MACH_ABSOLUTE_TIME 0
326
+ #define HAVE_MAPVIEWOFFILE 0
327
+ #define HAVE_MEMALIGN 1
328
+ #define HAVE_MKSTEMP 1
329
+ #define HAVE_MMAP 1
330
+ #define HAVE_MPROTECT 1
331
+ #define HAVE_NANOSLEEP 1
332
+ #define HAVE_PEEKNAMEDPIPE 0
333
+ #define HAVE_POSIX_MEMALIGN 1
334
+ #define HAVE_PRCTL 1
335
+ #define HAVE_PTHREAD_CANCEL 1
336
+ #define HAVE_SCHED_GETAFFINITY 1
337
+ #define HAVE_SECITEMIMPORT 0
338
+ #define HAVE_SETCONSOLETEXTATTRIBUTE 0
339
+ #define HAVE_SETCONSOLECTRLHANDLER 0
340
+ #define HAVE_SETDLLDIRECTORY 0
341
+ #define HAVE_SETMODE 0
342
+ #define HAVE_SETRLIMIT 1
343
+ #define HAVE_SLEEP 0
344
+ #define HAVE_STRERROR_R 1
345
+ #define HAVE_SYSCONF 1
346
+ #define HAVE_SYSCTL 0
347
+ #define HAVE_SYSCTLBYNAME 0
348
+ #define HAVE_USLEEP 1
349
+ #define HAVE_UTGETOSTYPEFROMSTRING 0
350
+ #define HAVE_VIRTUALALLOC 0
351
+ #define HAVE_WGLGETPROCADDRESS 0
352
+ #define HAVE_BCRYPT 0
353
+ #define HAVE_VAAPI_DRM 0
354
+ #define HAVE_VAAPI_X11 0
355
+ #define HAVE_VAAPI_WIN32 0
356
+ #define HAVE_VDPAU_X11 0
357
+ #define HAVE_PTHREADS 1
358
+ #define HAVE_OS2THREADS 0
359
+ #define HAVE_W32THREADS 0
360
+ #define HAVE_AS_ARCH_DIRECTIVE 0
361
+ #define HAVE_AS_ARCHEXT_DOTPROD_DIRECTIVE 0
362
+ #define HAVE_AS_ARCHEXT_I8MM_DIRECTIVE 0
363
+ #define HAVE_AS_DN_DIRECTIVE 0
364
+ #define HAVE_AS_FPU_DIRECTIVE 0
365
+ #define HAVE_AS_FUNC 0
366
+ #define HAVE_AS_OBJECT_ARCH 0
367
+ #define HAVE_ASM_MOD_Q 0
368
+ #define HAVE_BLOCKS_EXTENSION 0
369
+ #define HAVE_EBP_AVAILABLE 1
370
+ #define HAVE_EBX_AVAILABLE 1
371
+ #define HAVE_GNU_AS 0
372
+ #define HAVE_GNU_WINDRES 0
373
+ #define HAVE_IBM_ASM 0
374
+ #define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 1
375
+ #define HAVE_INLINE_ASM_LABELS 1
376
+ #define HAVE_INLINE_ASM_NONLOCAL_LABELS 1
377
+ #define HAVE_PRAGMA_DEPRECATED 1
378
+ #define HAVE_RSYNC_CONTIMEOUT 1
379
+ #define HAVE_SYMVER_ASM_LABEL 0
380
+ #define HAVE_SYMVER_GNU_ASM 1
381
+ #define HAVE_VFP_ARGS 0
382
+ #define HAVE_XFORM_ASM 0
383
+ #define HAVE_XMM_CLOBBERS 1
384
+ #define HAVE_DPI_AWARENESS_CONTEXT 0
385
+ #define HAVE_IDXGIOUTPUT5 0
386
+ #define HAVE_KCMVIDEOCODECTYPE_HEVC 0
387
+ #define HAVE_KCMVIDEOCODECTYPE_HEVCWITHALPHA 0
388
+ #define HAVE_KCMVIDEOCODECTYPE_VP9 0
389
+ #define HAVE_KCVPIXELFORMATTYPE_420YPCBCR10BIPLANARVIDEORANGE 0
390
+ #define HAVE_KCVPIXELFORMATTYPE_422YPCBCR8BIPLANARVIDEORANGE 0
391
+ #define HAVE_KCVPIXELFORMATTYPE_422YPCBCR10BIPLANARVIDEORANGE 0
392
+ #define HAVE_KCVPIXELFORMATTYPE_422YPCBCR16BIPLANARVIDEORANGE 0
393
+ #define HAVE_KCVPIXELFORMATTYPE_444YPCBCR8BIPLANARVIDEORANGE 0
394
+ #define HAVE_KCVPIXELFORMATTYPE_444YPCBCR10BIPLANARVIDEORANGE 0
395
+ #define HAVE_KCVPIXELFORMATTYPE_444YPCBCR16BIPLANARVIDEORANGE 0
396
+ #define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_SMPTE_ST_2084_PQ 0
397
+ #define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_ITU_R_2100_HLG 0
398
+ #define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_LINEAR 0
399
+ #define HAVE_KCVIMAGEBUFFERYCBCRMATRIX_ITU_R_2020 0
400
+ #define HAVE_KCVIMAGEBUFFERCOLORPRIMARIES_ITU_R_2020 0
401
+ #define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_ITU_R_2020 0
402
+ #define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_SMPTE_ST_428_1 0
403
+ #define HAVE_SOCKLEN_T 1
404
+ #define HAVE_STRUCT_ADDRINFO 1
405
+ #define HAVE_STRUCT_GROUP_SOURCE_REQ 1
406
+ #define HAVE_STRUCT_IP_MREQ_SOURCE 1
407
+ #define HAVE_STRUCT_IPV6_MREQ 1
408
+ #define HAVE_STRUCT_MSGHDR_MSG_FLAGS 1
409
+ #define HAVE_STRUCT_POLLFD 1
410
+ #define HAVE_STRUCT_RUSAGE_RU_MAXRSS 1
411
+ #define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0
412
+ #define HAVE_STRUCT_SOCKADDR_IN6 1
413
+ #define HAVE_STRUCT_SOCKADDR_SA_LEN 0
414
+ #define HAVE_STRUCT_SOCKADDR_STORAGE 1
415
+ #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1
416
+ #define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 1
417
+ #define HAVE_GZIP 1
418
+ #define HAVE_LIBDRM_GETFB2 0
419
+ #define HAVE_MAKEINFO 0
420
+ #define HAVE_MAKEINFO_HTML 0
421
+ #define HAVE_OPENCL_D3D11 0
422
+ #define HAVE_OPENCL_DRM_ARM 0
423
+ #define HAVE_OPENCL_DRM_BEIGNET 0
424
+ #define HAVE_OPENCL_DXVA2 0
425
+ #define HAVE_OPENCL_VAAPI_BEIGNET 0
426
+ #define HAVE_OPENCL_VAAPI_INTEL_MEDIA 0
427
+ #define HAVE_PERL 1
428
+ #define HAVE_POD2MAN 1
429
+ #define HAVE_TEXI2HTML 0
430
+ #define HAVE_XMLLINT 0
431
+ #define HAVE_ZLIB_GZIP 1
432
+ #define HAVE_OPENVINO2 0
433
+ #define CONFIG_DOC 1
434
+ #define CONFIG_HTMLPAGES 0
435
+ #define CONFIG_MANPAGES 1
436
+ #define CONFIG_PODPAGES 1
437
+ #define CONFIG_TXTPAGES 0
438
+ #define CONFIG_AVIO_HTTP_SERVE_FILES_EXAMPLE 1
439
+ #define CONFIG_AVIO_LIST_DIR_EXAMPLE 1
440
+ #define CONFIG_AVIO_READ_CALLBACK_EXAMPLE 1
441
+ #define CONFIG_DECODE_AUDIO_EXAMPLE 1
442
+ #define CONFIG_DECODE_FILTER_AUDIO_EXAMPLE 1
443
+ #define CONFIG_DECODE_FILTER_VIDEO_EXAMPLE 1
444
+ #define CONFIG_DECODE_VIDEO_EXAMPLE 1
445
+ #define CONFIG_DEMUX_DECODE_EXAMPLE 1
446
+ #define CONFIG_ENCODE_AUDIO_EXAMPLE 1
447
+ #define CONFIG_ENCODE_VIDEO_EXAMPLE 1
448
+ #define CONFIG_EXTRACT_MVS_EXAMPLE 1
449
+ #define CONFIG_FILTER_AUDIO_EXAMPLE 1
450
+ #define CONFIG_HW_DECODE_EXAMPLE 1
451
+ #define CONFIG_MUX_EXAMPLE 1
452
+ #define CONFIG_QSV_DECODE_EXAMPLE 0
453
+ #define CONFIG_REMUX_EXAMPLE 1
454
+ #define CONFIG_RESAMPLE_AUDIO_EXAMPLE 1
455
+ #define CONFIG_SCALE_VIDEO_EXAMPLE 1
456
+ #define CONFIG_SHOW_METADATA_EXAMPLE 1
457
+ #define CONFIG_TRANSCODE_AAC_EXAMPLE 1
458
+ #define CONFIG_TRANSCODE_EXAMPLE 1
459
+ #define CONFIG_VAAPI_ENCODE_EXAMPLE 0
460
+ #define CONFIG_VAAPI_TRANSCODE_EXAMPLE 0
461
+ #define CONFIG_QSV_TRANSCODE_EXAMPLE 0
462
+ #define CONFIG_AVISYNTH 0
463
+ #define CONFIG_FREI0R 0
464
+ #define CONFIG_LIBCDIO 0
465
+ #define CONFIG_LIBDAVS2 0
466
+ #define CONFIG_LIBRUBBERBAND 0
467
+ #define CONFIG_LIBVIDSTAB 0
468
+ #define CONFIG_LIBX264 0
469
+ #define CONFIG_LIBX265 0
470
+ #define CONFIG_LIBXAVS 0
471
+ #define CONFIG_LIBXAVS2 0
472
+ #define CONFIG_LIBXVID 0
473
+ #define CONFIG_DECKLINK 0
474
+ #define CONFIG_LIBFDK_AAC 0
475
+ #define CONFIG_LIBTLS 0
476
+ #define CONFIG_GMP 0
477
+ #define CONFIG_LIBARIBB24 0
478
+ #define CONFIG_LIBLENSFUN 0
479
+ #define CONFIG_LIBOPENCORE_AMRNB 0
480
+ #define CONFIG_LIBOPENCORE_AMRWB 0
481
+ #define CONFIG_LIBVO_AMRWBENC 0
482
+ #define CONFIG_MBEDTLS 0
483
+ #define CONFIG_RKMPP 0
484
+ #define CONFIG_LIBSMBCLIENT 0
485
+ #define CONFIG_CHROMAPRINT 0
486
+ #define CONFIG_GCRYPT 0
487
+ #define CONFIG_GNUTLS 0
488
+ #define CONFIG_JNI 0
489
+ #define CONFIG_LADSPA 0
490
+ #define CONFIG_LCMS2 0
491
+ #define CONFIG_LIBAOM 0
492
+ #define CONFIG_LIBARIBCAPTION 0
493
+ #define CONFIG_LIBASS 0
494
+ #define CONFIG_LIBBLURAY 0
495
+ #define CONFIG_LIBBS2B 0
496
+ #define CONFIG_LIBCACA 0
497
+ #define CONFIG_LIBCELT 0
498
+ #define CONFIG_LIBCODEC2 0
499
+ #define CONFIG_LIBDAV1D 0
500
+ #define CONFIG_LIBDC1394 0
501
+ #define CONFIG_LIBDRM 0
502
+ #define CONFIG_LIBFLITE 0
503
+ #define CONFIG_LIBFONTCONFIG 0
504
+ #define CONFIG_LIBFREETYPE 0
505
+ #define CONFIG_LIBFRIBIDI 0
506
+ #define CONFIG_LIBHARFBUZZ 0
507
+ #define CONFIG_LIBGLSLANG 0
508
+ #define CONFIG_LIBGME 0
509
+ #define CONFIG_LIBGSM 0
510
+ #define CONFIG_LIBIEC61883 0
511
+ #define CONFIG_LIBILBC 0
512
+ #define CONFIG_LIBJACK 0
513
+ #define CONFIG_LIBJXL 0
514
+ #define CONFIG_LIBKLVANC 0
515
+ #define CONFIG_LIBKVAZAAR 0
516
+ #define CONFIG_LIBMODPLUG 0
517
+ #define CONFIG_LIBMP3LAME 0
518
+ #define CONFIG_LIBMYSOFA 0
519
+ #define CONFIG_LIBOPENCV 0
520
+ #define CONFIG_LIBOPENH264 0
521
+ #define CONFIG_LIBOPENJPEG 0
522
+ #define CONFIG_LIBOPENMPT 0
523
+ #define CONFIG_LIBOPENVINO 0
524
+ #define CONFIG_LIBOPUS 0
525
+ #define CONFIG_LIBPLACEBO 0
526
+ #define CONFIG_LIBPULSE 0
527
+ #define CONFIG_LIBRABBITMQ 0
528
+ #define CONFIG_LIBRAV1E 0
529
+ #define CONFIG_LIBRIST 0
530
+ #define CONFIG_LIBRSVG 0
531
+ #define CONFIG_LIBRTMP 0
532
+ #define CONFIG_LIBSHADERC 0
533
+ #define CONFIG_LIBSHINE 0
534
+ #define CONFIG_LIBSMBCLIENT 0
535
+ #define CONFIG_LIBSNAPPY 0
536
+ #define CONFIG_LIBSOXR 0
537
+ #define CONFIG_LIBSPEEX 0
538
+ #define CONFIG_LIBSRT 0
539
+ #define CONFIG_LIBSSH 0
540
+ #define CONFIG_LIBSVTAV1 0
541
+ #define CONFIG_LIBTENSORFLOW 0
542
+ #define CONFIG_LIBTESSERACT 0
543
+ #define CONFIG_LIBTHEORA 0
544
+ #define CONFIG_LIBTWOLAME 0
545
+ #define CONFIG_LIBUAVS3D 0
546
+ #define CONFIG_LIBV4L2 0
547
+ #define CONFIG_LIBVMAF 0
548
+ #define CONFIG_LIBVORBIS 0
549
+ #define CONFIG_LIBVPX 0
550
+ #define CONFIG_LIBWEBP 0
551
+ #define CONFIG_LIBXML2 0
552
+ #define CONFIG_LIBZIMG 0
553
+ #define CONFIG_LIBZMQ 0
554
+ #define CONFIG_LIBZVBI 0
555
+ #define CONFIG_LV2 0
556
+ #define CONFIG_MEDIACODEC 0
557
+ #define CONFIG_OPENAL 0
558
+ #define CONFIG_OPENGL 0
559
+ #define CONFIG_OPENSSL 0
560
+ #define CONFIG_POCKETSPHINX 0
561
+ #define CONFIG_VAPOURSYNTH 0
562
+ #define CONFIG_ALSA 1
563
+ #define CONFIG_APPKIT 0
564
+ #define CONFIG_AVFOUNDATION 0
565
+ #define CONFIG_BZLIB 1
566
+ #define CONFIG_COREIMAGE 0
567
+ #define CONFIG_ICONV 1
568
+ #define CONFIG_LIBXCB 1
569
+ #define CONFIG_LIBXCB_SHM 0
570
+ #define CONFIG_LIBXCB_SHAPE 0
571
+ #define CONFIG_LIBXCB_XFIXES 0
572
+ #define CONFIG_LZMA 1
573
+ #define CONFIG_MEDIAFOUNDATION 0
574
+ #define CONFIG_METAL 0
575
+ #define CONFIG_SCHANNEL 0
576
+ #define CONFIG_SDL2 0
577
+ #define CONFIG_SECURETRANSPORT 0
578
+ #define CONFIG_SNDIO 0
579
+ #define CONFIG_XLIB 0
580
+ #define CONFIG_ZLIB 1
581
+ #define CONFIG_CUDA_NVCC 1
582
+ #define CONFIG_CUDA_SDK 0
583
+ #define CONFIG_LIBNPP 1
584
+ #define CONFIG_LIBMFX 0
585
+ #define CONFIG_LIBVPL 0
586
+ #define CONFIG_MMAL 0
587
+ #define CONFIG_OMX 0
588
+ #define CONFIG_OPENCL 0
589
+ #define CONFIG_AMF 0
590
+ #define CONFIG_AUDIOTOOLBOX 0
591
+ #define CONFIG_CRYSTALHD 0
592
+ #define CONFIG_CUDA 1
593
+ #define CONFIG_CUDA_LLVM 1
594
+ #define CONFIG_CUVID 1
595
+ #define CONFIG_D3D11VA 0
596
+ #define CONFIG_DXVA2 0
597
+ #define CONFIG_FFNVCODEC 1
598
+ #define CONFIG_NVDEC 1
599
+ #define CONFIG_NVENC 1
600
+ #define CONFIG_VAAPI 0
601
+ #define CONFIG_VDPAU 0
602
+ #define CONFIG_VIDEOTOOLBOX 0
603
+ #define CONFIG_VULKAN 0
604
+ #define CONFIG_V4L2_M2M 1
605
+ #define CONFIG_FTRAPV 0
606
+ #define CONFIG_GRAY 0
607
+ #define CONFIG_HARDCODED_TABLES 0
608
+ #define CONFIG_OMX_RPI 0
609
+ #define CONFIG_RUNTIME_CPUDETECT 1
610
+ #define CONFIG_SAFE_BITSTREAM_READER 1
611
+ #define CONFIG_SHARED 1
612
+ #define CONFIG_SMALL 0
613
+ #define CONFIG_STATIC 0
614
+ #define CONFIG_SWSCALE_ALPHA 1
615
+ #define CONFIG_GPL 0
616
+ #define CONFIG_NONFREE 1
617
+ #define CONFIG_VERSION3 0
618
+ #define CONFIG_AVDEVICE 1
619
+ #define CONFIG_AVFILTER 1
620
+ #define CONFIG_SWSCALE 1
621
+ #define CONFIG_POSTPROC 0
622
+ #define CONFIG_AVFORMAT 1
623
+ #define CONFIG_AVCODEC 1
624
+ #define CONFIG_SWRESAMPLE 1
625
+ #define CONFIG_AVUTIL 1
626
+ #define CONFIG_FFPLAY 0
627
+ #define CONFIG_FFPROBE 1
628
+ #define CONFIG_FFMPEG 1
629
+ #define CONFIG_DCT 1
630
+ #define CONFIG_DWT 1
631
+ #define CONFIG_ERROR_RESILIENCE 1
632
+ #define CONFIG_FAAN 1
633
+ #define CONFIG_FAST_UNALIGNED 1
634
+ #define CONFIG_FFT 1
635
+ #define CONFIG_LSP 1
636
+ #define CONFIG_MDCT 0
637
+ #define CONFIG_PIXELUTILS 1
638
+ #define CONFIG_NETWORK 1
639
+ #define CONFIG_RDFT 1
640
+ #define CONFIG_AUTODETECT 0
641
+ #define CONFIG_FONTCONFIG 0
642
+ #define CONFIG_LARGE_TESTS 1
643
+ #define CONFIG_LINUX_PERF 0
644
+ #define CONFIG_MACOS_KPERF 0
645
+ #define CONFIG_MEMORY_POISONING 0
646
+ #define CONFIG_NEON_CLOBBER_TEST 0
647
+ #define CONFIG_OSSFUZZ 0
648
+ #define CONFIG_PIC 1
649
+ #define CONFIG_PTX_COMPRESSION 1
650
+ #define CONFIG_THUMB 0
651
+ #define CONFIG_VALGRIND_BACKTRACE 0
652
+ #define CONFIG_XMM_CLOBBER_TEST 0
653
+ #define CONFIG_BSFS 1
654
+ #define CONFIG_DECODERS 1
655
+ #define CONFIG_ENCODERS 1
656
+ #define CONFIG_HWACCELS 1
657
+ #define CONFIG_PARSERS 1
658
+ #define CONFIG_INDEVS 1
659
+ #define CONFIG_OUTDEVS 1
660
+ #define CONFIG_FILTERS 1
661
+ #define CONFIG_DEMUXERS 1
662
+ #define CONFIG_MUXERS 1
663
+ #define CONFIG_PROTOCOLS 1
664
+ #define CONFIG_AANDCTTABLES 1
665
+ #define CONFIG_AC3DSP 1
666
+ #define CONFIG_ADTS_HEADER 1
667
+ #define CONFIG_ATSC_A53 1
668
+ #define CONFIG_AUDIO_FRAME_QUEUE 1
669
+ #define CONFIG_AUDIODSP 1
670
+ #define CONFIG_BLOCKDSP 1
671
+ #define CONFIG_BSWAPDSP 1
672
+ #define CONFIG_CABAC 1
673
+ #define CONFIG_CBS 1
674
+ #define CONFIG_CBS_AV1 1
675
+ #define CONFIG_CBS_H264 1
676
+ #define CONFIG_CBS_H265 1
677
+ #define CONFIG_CBS_H266 1
678
+ #define CONFIG_CBS_JPEG 0
679
+ #define CONFIG_CBS_MPEG2 1
680
+ #define CONFIG_CBS_VP9 1
681
+ #define CONFIG_DEFLATE_WRAPPER 1
682
+ #define CONFIG_DIRAC_PARSE 1
683
+ #define CONFIG_DNN 1
684
+ #define CONFIG_DOVI_RPU 1
685
+ #define CONFIG_DVPROFILE 1
686
+ #define CONFIG_EVCPARSE 1
687
+ #define CONFIG_EXIF 1
688
+ #define CONFIG_FAANDCT 1
689
+ #define CONFIG_FAANIDCT 1
690
+ #define CONFIG_FDCTDSP 1
691
+ #define CONFIG_FMTCONVERT 1
692
+ #define CONFIG_FRAME_THREAD_ENCODER 1
693
+ #define CONFIG_G722DSP 1
694
+ #define CONFIG_GOLOMB 1
695
+ #define CONFIG_GPLV3 0
696
+ #define CONFIG_H263DSP 1
697
+ #define CONFIG_H264CHROMA 1
698
+ #define CONFIG_H264DSP 1
699
+ #define CONFIG_H264PARSE 1
700
+ #define CONFIG_H264PRED 1
701
+ #define CONFIG_H264QPEL 1
702
+ #define CONFIG_H264_SEI 1
703
+ #define CONFIG_HEVCPARSE 1
704
+ #define CONFIG_HEVC_SEI 1
705
+ #define CONFIG_HPELDSP 1
706
+ #define CONFIG_HUFFMAN 1
707
+ #define CONFIG_HUFFYUVDSP 1
708
+ #define CONFIG_HUFFYUVENCDSP 1
709
+ #define CONFIG_IDCTDSP 1
710
+ #define CONFIG_IIRFILTER 1
711
+ #define CONFIG_INFLATE_WRAPPER 1
712
+ #define CONFIG_INTRAX8 1
713
+ #define CONFIG_ISO_MEDIA 1
714
+ #define CONFIG_IVIDSP 1
715
+ #define CONFIG_JPEGTABLES 1
716
+ #define CONFIG_LGPLV3 0
717
+ #define CONFIG_LIBX262 0
718
+ #define CONFIG_LLAUDDSP 1
719
+ #define CONFIG_LLVIDDSP 1
720
+ #define CONFIG_LLVIDENCDSP 1
721
+ #define CONFIG_LPC 1
722
+ #define CONFIG_LZF 1
723
+ #define CONFIG_ME_CMP 1
724
+ #define CONFIG_MPEG_ER 1
725
+ #define CONFIG_MPEGAUDIO 1
726
+ #define CONFIG_MPEGAUDIODSP 1
727
+ #define CONFIG_MPEGAUDIOHEADER 1
728
+ #define CONFIG_MPEG4AUDIO 1
729
+ #define CONFIG_MPEGVIDEO 1
730
+ #define CONFIG_MPEGVIDEODEC 1
731
+ #define CONFIG_MPEGVIDEOENC 1
732
+ #define CONFIG_MSMPEG4DEC 1
733
+ #define CONFIG_MSMPEG4ENC 1
734
+ #define CONFIG_MSS34DSP 1
735
+ #define CONFIG_PIXBLOCKDSP 1
736
+ #define CONFIG_QPELDSP 1
737
+ #define CONFIG_QSV 0
738
+ #define CONFIG_QSVDEC 0
739
+ #define CONFIG_QSVENC 0
740
+ #define CONFIG_QSVVPP 0
741
+ #define CONFIG_RANGECODER 1
742
+ #define CONFIG_RIFFDEC 1
743
+ #define CONFIG_RIFFENC 1
744
+ #define CONFIG_RTPDEC 1
745
+ #define CONFIG_RTPENC_CHAIN 1
746
+ #define CONFIG_RV34DSP 1
747
+ #define CONFIG_SCENE_SAD 1
748
+ #define CONFIG_SINEWIN 1
749
+ #define CONFIG_SNAPPY 1
750
+ #define CONFIG_SRTP 1
751
+ #define CONFIG_STARTCODE 1
752
+ #define CONFIG_TEXTUREDSP 1
753
+ #define CONFIG_TEXTUREDSPENC 1
754
+ #define CONFIG_TPELDSP 1
755
+ #define CONFIG_VAAPI_1 0
756
+ #define CONFIG_VAAPI_ENCODE 0
757
+ #define CONFIG_VC1DSP 1
758
+ #define CONFIG_VIDEODSP 1
759
+ #define CONFIG_VP3DSP 1
760
+ #define CONFIG_VP56DSP 1
761
+ #define CONFIG_VP8DSP 1
762
+ #define CONFIG_WMA_FREQS 1
763
+ #define CONFIG_WMV2DSP 1
764
+ #endif /* FFMPEG_CONFIG_H */
config_components.h ADDED
@@ -0,0 +1,2193 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Automatically generated by configure - do not modify! */
2
+ #ifndef FFMPEG_CONFIG_COMPONENTS_H
3
+ #define FFMPEG_CONFIG_COMPONENTS_H
4
+ #define CONFIG_AAC_ADTSTOASC_BSF 1
5
+ #define CONFIG_AV1_FRAME_MERGE_BSF 1
6
+ #define CONFIG_AV1_FRAME_SPLIT_BSF 1
7
+ #define CONFIG_AV1_METADATA_BSF 1
8
+ #define CONFIG_CHOMP_BSF 1
9
+ #define CONFIG_DUMP_EXTRADATA_BSF 1
10
+ #define CONFIG_DCA_CORE_BSF 1
11
+ #define CONFIG_DTS2PTS_BSF 1
12
+ #define CONFIG_DV_ERROR_MARKER_BSF 1
13
+ #define CONFIG_EAC3_CORE_BSF 1
14
+ #define CONFIG_EXTRACT_EXTRADATA_BSF 1
15
+ #define CONFIG_FILTER_UNITS_BSF 1
16
+ #define CONFIG_H264_METADATA_BSF 1
17
+ #define CONFIG_H264_MP4TOANNEXB_BSF 1
18
+ #define CONFIG_H264_REDUNDANT_PPS_BSF 1
19
+ #define CONFIG_HAPQA_EXTRACT_BSF 1
20
+ #define CONFIG_HEVC_METADATA_BSF 1
21
+ #define CONFIG_HEVC_MP4TOANNEXB_BSF 1
22
+ #define CONFIG_IMX_DUMP_HEADER_BSF 1
23
+ #define CONFIG_MEDIA100_TO_MJPEGB_BSF 1
24
+ #define CONFIG_MJPEG2JPEG_BSF 1
25
+ #define CONFIG_MJPEGA_DUMP_HEADER_BSF 1
26
+ #define CONFIG_MP3_HEADER_DECOMPRESS_BSF 1
27
+ #define CONFIG_MPEG2_METADATA_BSF 1
28
+ #define CONFIG_MPEG4_UNPACK_BFRAMES_BSF 1
29
+ #define CONFIG_MOV2TEXTSUB_BSF 1
30
+ #define CONFIG_NOISE_BSF 1
31
+ #define CONFIG_NULL_BSF 1
32
+ #define CONFIG_OPUS_METADATA_BSF 1
33
+ #define CONFIG_PCM_RECHUNK_BSF 1
34
+ #define CONFIG_PGS_FRAME_MERGE_BSF 1
35
+ #define CONFIG_PRORES_METADATA_BSF 1
36
+ #define CONFIG_REMOVE_EXTRADATA_BSF 1
37
+ #define CONFIG_SETTS_BSF 1
38
+ #define CONFIG_TEXT2MOVSUB_BSF 1
39
+ #define CONFIG_TRACE_HEADERS_BSF 1
40
+ #define CONFIG_TRUEHD_CORE_BSF 1
41
+ #define CONFIG_VP9_METADATA_BSF 1
42
+ #define CONFIG_VP9_RAW_REORDER_BSF 1
43
+ #define CONFIG_VP9_SUPERFRAME_BSF 1
44
+ #define CONFIG_VP9_SUPERFRAME_SPLIT_BSF 1
45
+ #define CONFIG_VVC_METADATA_BSF 1
46
+ #define CONFIG_VVC_MP4TOANNEXB_BSF 1
47
+ #define CONFIG_EVC_FRAME_MERGE_BSF 1
48
+ #define CONFIG_AASC_DECODER 1
49
+ #define CONFIG_AIC_DECODER 1
50
+ #define CONFIG_ALIAS_PIX_DECODER 1
51
+ #define CONFIG_AGM_DECODER 1
52
+ #define CONFIG_AMV_DECODER 1
53
+ #define CONFIG_ANM_DECODER 1
54
+ #define CONFIG_ANSI_DECODER 1
55
+ #define CONFIG_APNG_DECODER 1
56
+ #define CONFIG_ARBC_DECODER 1
57
+ #define CONFIG_ARGO_DECODER 1
58
+ #define CONFIG_ASV1_DECODER 1
59
+ #define CONFIG_ASV2_DECODER 1
60
+ #define CONFIG_AURA_DECODER 1
61
+ #define CONFIG_AURA2_DECODER 1
62
+ #define CONFIG_AVRP_DECODER 1
63
+ #define CONFIG_AVRN_DECODER 1
64
+ #define CONFIG_AVS_DECODER 1
65
+ #define CONFIG_AVUI_DECODER 1
66
+ #define CONFIG_AYUV_DECODER 1
67
+ #define CONFIG_BETHSOFTVID_DECODER 1
68
+ #define CONFIG_BFI_DECODER 1
69
+ #define CONFIG_BINK_DECODER 1
70
+ #define CONFIG_BITPACKED_DECODER 1
71
+ #define CONFIG_BMP_DECODER 1
72
+ #define CONFIG_BMV_VIDEO_DECODER 1
73
+ #define CONFIG_BRENDER_PIX_DECODER 1
74
+ #define CONFIG_C93_DECODER 1
75
+ #define CONFIG_CAVS_DECODER 1
76
+ #define CONFIG_CDGRAPHICS_DECODER 1
77
+ #define CONFIG_CDTOONS_DECODER 1
78
+ #define CONFIG_CDXL_DECODER 1
79
+ #define CONFIG_CFHD_DECODER 1
80
+ #define CONFIG_CINEPAK_DECODER 1
81
+ #define CONFIG_CLEARVIDEO_DECODER 1
82
+ #define CONFIG_CLJR_DECODER 1
83
+ #define CONFIG_CLLC_DECODER 1
84
+ #define CONFIG_COMFORTNOISE_DECODER 1
85
+ #define CONFIG_CPIA_DECODER 1
86
+ #define CONFIG_CRI_DECODER 1
87
+ #define CONFIG_CSCD_DECODER 1
88
+ #define CONFIG_CYUV_DECODER 1
89
+ #define CONFIG_DDS_DECODER 1
90
+ #define CONFIG_DFA_DECODER 1
91
+ #define CONFIG_DIRAC_DECODER 1
92
+ #define CONFIG_DNXHD_DECODER 1
93
+ #define CONFIG_DPX_DECODER 1
94
+ #define CONFIG_DSICINVIDEO_DECODER 1
95
+ #define CONFIG_DVAUDIO_DECODER 1
96
+ #define CONFIG_DVVIDEO_DECODER 1
97
+ #define CONFIG_DXA_DECODER 1
98
+ #define CONFIG_DXTORY_DECODER 1
99
+ #define CONFIG_DXV_DECODER 1
100
+ #define CONFIG_EACMV_DECODER 1
101
+ #define CONFIG_EAMAD_DECODER 1
102
+ #define CONFIG_EATGQ_DECODER 1
103
+ #define CONFIG_EATGV_DECODER 1
104
+ #define CONFIG_EATQI_DECODER 1
105
+ #define CONFIG_EIGHTBPS_DECODER 1
106
+ #define CONFIG_EIGHTSVX_EXP_DECODER 1
107
+ #define CONFIG_EIGHTSVX_FIB_DECODER 1
108
+ #define CONFIG_ESCAPE124_DECODER 1
109
+ #define CONFIG_ESCAPE130_DECODER 1
110
+ #define CONFIG_EXR_DECODER 1
111
+ #define CONFIG_FFV1_DECODER 1
112
+ #define CONFIG_FFVHUFF_DECODER 1
113
+ #define CONFIG_FIC_DECODER 1
114
+ #define CONFIG_FITS_DECODER 1
115
+ #define CONFIG_FLASHSV_DECODER 1
116
+ #define CONFIG_FLASHSV2_DECODER 1
117
+ #define CONFIG_FLIC_DECODER 1
118
+ #define CONFIG_FLV_DECODER 1
119
+ #define CONFIG_FMVC_DECODER 1
120
+ #define CONFIG_FOURXM_DECODER 1
121
+ #define CONFIG_FRAPS_DECODER 1
122
+ #define CONFIG_FRWU_DECODER 1
123
+ #define CONFIG_G2M_DECODER 1
124
+ #define CONFIG_GDV_DECODER 1
125
+ #define CONFIG_GEM_DECODER 1
126
+ #define CONFIG_GIF_DECODER 1
127
+ #define CONFIG_H261_DECODER 1
128
+ #define CONFIG_H263_DECODER 1
129
+ #define CONFIG_H263I_DECODER 1
130
+ #define CONFIG_H263P_DECODER 1
131
+ #define CONFIG_H263_V4L2M2M_DECODER 1
132
+ #define CONFIG_H264_DECODER 1
133
+ #define CONFIG_H264_CRYSTALHD_DECODER 0
134
+ #define CONFIG_H264_V4L2M2M_DECODER 1
135
+ #define CONFIG_H264_MEDIACODEC_DECODER 0
136
+ #define CONFIG_H264_MMAL_DECODER 0
137
+ #define CONFIG_H264_QSV_DECODER 0
138
+ #define CONFIG_H264_RKMPP_DECODER 0
139
+ #define CONFIG_HAP_DECODER 1
140
+ #define CONFIG_HEVC_DECODER 1
141
+ #define CONFIG_HEVC_QSV_DECODER 0
142
+ #define CONFIG_HEVC_RKMPP_DECODER 0
143
+ #define CONFIG_HEVC_V4L2M2M_DECODER 1
144
+ #define CONFIG_HNM4_VIDEO_DECODER 1
145
+ #define CONFIG_HQ_HQA_DECODER 1
146
+ #define CONFIG_HQX_DECODER 1
147
+ #define CONFIG_HUFFYUV_DECODER 1
148
+ #define CONFIG_HYMT_DECODER 1
149
+ #define CONFIG_IDCIN_DECODER 1
150
+ #define CONFIG_IFF_ILBM_DECODER 1
151
+ #define CONFIG_IMM4_DECODER 1
152
+ #define CONFIG_IMM5_DECODER 1
153
+ #define CONFIG_INDEO2_DECODER 1
154
+ #define CONFIG_INDEO3_DECODER 1
155
+ #define CONFIG_INDEO4_DECODER 1
156
+ #define CONFIG_INDEO5_DECODER 1
157
+ #define CONFIG_INTERPLAY_VIDEO_DECODER 1
158
+ #define CONFIG_IPU_DECODER 1
159
+ #define CONFIG_JPEG2000_DECODER 1
160
+ #define CONFIG_JPEGLS_DECODER 1
161
+ #define CONFIG_JV_DECODER 1
162
+ #define CONFIG_KGV1_DECODER 1
163
+ #define CONFIG_KMVC_DECODER 1
164
+ #define CONFIG_LAGARITH_DECODER 1
165
+ #define CONFIG_LOCO_DECODER 1
166
+ #define CONFIG_LSCR_DECODER 1
167
+ #define CONFIG_M101_DECODER 1
168
+ #define CONFIG_MAGICYUV_DECODER 1
169
+ #define CONFIG_MDEC_DECODER 1
170
+ #define CONFIG_MEDIA100_DECODER 1
171
+ #define CONFIG_MIMIC_DECODER 1
172
+ #define CONFIG_MJPEG_DECODER 1
173
+ #define CONFIG_MJPEGB_DECODER 1
174
+ #define CONFIG_MMVIDEO_DECODER 1
175
+ #define CONFIG_MOBICLIP_DECODER 1
176
+ #define CONFIG_MOTIONPIXELS_DECODER 1
177
+ #define CONFIG_MPEG1VIDEO_DECODER 1
178
+ #define CONFIG_MPEG2VIDEO_DECODER 1
179
+ #define CONFIG_MPEG4_DECODER 1
180
+ #define CONFIG_MPEG4_CRYSTALHD_DECODER 0
181
+ #define CONFIG_MPEG4_V4L2M2M_DECODER 1
182
+ #define CONFIG_MPEG4_MMAL_DECODER 0
183
+ #define CONFIG_MPEGVIDEO_DECODER 1
184
+ #define CONFIG_MPEG1_V4L2M2M_DECODER 1
185
+ #define CONFIG_MPEG2_MMAL_DECODER 0
186
+ #define CONFIG_MPEG2_CRYSTALHD_DECODER 0
187
+ #define CONFIG_MPEG2_V4L2M2M_DECODER 1
188
+ #define CONFIG_MPEG2_QSV_DECODER 0
189
+ #define CONFIG_MPEG2_MEDIACODEC_DECODER 0
190
+ #define CONFIG_MSA1_DECODER 1
191
+ #define CONFIG_MSCC_DECODER 1
192
+ #define CONFIG_MSMPEG4V1_DECODER 1
193
+ #define CONFIG_MSMPEG4V2_DECODER 1
194
+ #define CONFIG_MSMPEG4V3_DECODER 1
195
+ #define CONFIG_MSMPEG4_CRYSTALHD_DECODER 0
196
+ #define CONFIG_MSP2_DECODER 1
197
+ #define CONFIG_MSRLE_DECODER 1
198
+ #define CONFIG_MSS1_DECODER 1
199
+ #define CONFIG_MSS2_DECODER 1
200
+ #define CONFIG_MSVIDEO1_DECODER 1
201
+ #define CONFIG_MSZH_DECODER 1
202
+ #define CONFIG_MTS2_DECODER 1
203
+ #define CONFIG_MV30_DECODER 1
204
+ #define CONFIG_MVC1_DECODER 1
205
+ #define CONFIG_MVC2_DECODER 1
206
+ #define CONFIG_MVDV_DECODER 1
207
+ #define CONFIG_MVHA_DECODER 1
208
+ #define CONFIG_MWSC_DECODER 1
209
+ #define CONFIG_MXPEG_DECODER 1
210
+ #define CONFIG_NOTCHLC_DECODER 1
211
+ #define CONFIG_NUV_DECODER 1
212
+ #define CONFIG_PAF_VIDEO_DECODER 1
213
+ #define CONFIG_PAM_DECODER 1
214
+ #define CONFIG_PBM_DECODER 1
215
+ #define CONFIG_PCX_DECODER 1
216
+ #define CONFIG_PDV_DECODER 1
217
+ #define CONFIG_PFM_DECODER 1
218
+ #define CONFIG_PGM_DECODER 1
219
+ #define CONFIG_PGMYUV_DECODER 1
220
+ #define CONFIG_PGX_DECODER 1
221
+ #define CONFIG_PHM_DECODER 1
222
+ #define CONFIG_PHOTOCD_DECODER 1
223
+ #define CONFIG_PICTOR_DECODER 1
224
+ #define CONFIG_PIXLET_DECODER 1
225
+ #define CONFIG_PNG_DECODER 1
226
+ #define CONFIG_PPM_DECODER 1
227
+ #define CONFIG_PRORES_DECODER 1
228
+ #define CONFIG_PROSUMER_DECODER 1
229
+ #define CONFIG_PSD_DECODER 1
230
+ #define CONFIG_PTX_DECODER 1
231
+ #define CONFIG_QDRAW_DECODER 1
232
+ #define CONFIG_QOI_DECODER 1
233
+ #define CONFIG_QPEG_DECODER 1
234
+ #define CONFIG_QTRLE_DECODER 1
235
+ #define CONFIG_R10K_DECODER 1
236
+ #define CONFIG_R210_DECODER 1
237
+ #define CONFIG_RASC_DECODER 1
238
+ #define CONFIG_RAWVIDEO_DECODER 1
239
+ #define CONFIG_RKA_DECODER 1
240
+ #define CONFIG_RL2_DECODER 1
241
+ #define CONFIG_ROQ_DECODER 1
242
+ #define CONFIG_RPZA_DECODER 1
243
+ #define CONFIG_RSCC_DECODER 1
244
+ #define CONFIG_RTV1_DECODER 1
245
+ #define CONFIG_RV10_DECODER 1
246
+ #define CONFIG_RV20_DECODER 1
247
+ #define CONFIG_RV30_DECODER 1
248
+ #define CONFIG_RV40_DECODER 1
249
+ #define CONFIG_S302M_DECODER 1
250
+ #define CONFIG_SANM_DECODER 1
251
+ #define CONFIG_SCPR_DECODER 1
252
+ #define CONFIG_SCREENPRESSO_DECODER 1
253
+ #define CONFIG_SGA_DECODER 1
254
+ #define CONFIG_SGI_DECODER 1
255
+ #define CONFIG_SGIRLE_DECODER 1
256
+ #define CONFIG_SHEERVIDEO_DECODER 1
257
+ #define CONFIG_SIMBIOSIS_IMX_DECODER 1
258
+ #define CONFIG_SMACKER_DECODER 1
259
+ #define CONFIG_SMC_DECODER 1
260
+ #define CONFIG_SMVJPEG_DECODER 1
261
+ #define CONFIG_SNOW_DECODER 1
262
+ #define CONFIG_SP5X_DECODER 1
263
+ #define CONFIG_SPEEDHQ_DECODER 1
264
+ #define CONFIG_SPEEX_DECODER 1
265
+ #define CONFIG_SRGC_DECODER 1
266
+ #define CONFIG_SUNRAST_DECODER 1
267
+ #define CONFIG_SVQ1_DECODER 1
268
+ #define CONFIG_SVQ3_DECODER 1
269
+ #define CONFIG_TARGA_DECODER 1
270
+ #define CONFIG_TARGA_Y216_DECODER 1
271
+ #define CONFIG_TDSC_DECODER 1
272
+ #define CONFIG_THEORA_DECODER 1
273
+ #define CONFIG_THP_DECODER 1
274
+ #define CONFIG_TIERTEXSEQVIDEO_DECODER 1
275
+ #define CONFIG_TIFF_DECODER 1
276
+ #define CONFIG_TMV_DECODER 1
277
+ #define CONFIG_TRUEMOTION1_DECODER 1
278
+ #define CONFIG_TRUEMOTION2_DECODER 1
279
+ #define CONFIG_TRUEMOTION2RT_DECODER 1
280
+ #define CONFIG_TSCC_DECODER 1
281
+ #define CONFIG_TSCC2_DECODER 1
282
+ #define CONFIG_TXD_DECODER 1
283
+ #define CONFIG_ULTI_DECODER 1
284
+ #define CONFIG_UTVIDEO_DECODER 1
285
+ #define CONFIG_V210_DECODER 1
286
+ #define CONFIG_V210X_DECODER 1
287
+ #define CONFIG_V308_DECODER 1
288
+ #define CONFIG_V408_DECODER 1
289
+ #define CONFIG_V410_DECODER 1
290
+ #define CONFIG_VB_DECODER 1
291
+ #define CONFIG_VBN_DECODER 1
292
+ #define CONFIG_VBLE_DECODER 1
293
+ #define CONFIG_VC1_DECODER 1
294
+ #define CONFIG_VC1_CRYSTALHD_DECODER 0
295
+ #define CONFIG_VC1IMAGE_DECODER 1
296
+ #define CONFIG_VC1_MMAL_DECODER 0
297
+ #define CONFIG_VC1_QSV_DECODER 0
298
+ #define CONFIG_VC1_V4L2M2M_DECODER 1
299
+ #define CONFIG_VCR1_DECODER 1
300
+ #define CONFIG_VMDVIDEO_DECODER 1
301
+ #define CONFIG_VMIX_DECODER 1
302
+ #define CONFIG_VMNC_DECODER 1
303
+ #define CONFIG_VP3_DECODER 1
304
+ #define CONFIG_VP4_DECODER 1
305
+ #define CONFIG_VP5_DECODER 1
306
+ #define CONFIG_VP6_DECODER 1
307
+ #define CONFIG_VP6A_DECODER 1
308
+ #define CONFIG_VP6F_DECODER 1
309
+ #define CONFIG_VP7_DECODER 1
310
+ #define CONFIG_VP8_DECODER 1
311
+ #define CONFIG_VP8_RKMPP_DECODER 0
312
+ #define CONFIG_VP8_V4L2M2M_DECODER 1
313
+ #define CONFIG_VP9_DECODER 1
314
+ #define CONFIG_VP9_RKMPP_DECODER 0
315
+ #define CONFIG_VP9_V4L2M2M_DECODER 1
316
+ #define CONFIG_VQA_DECODER 1
317
+ #define CONFIG_VQC_DECODER 1
318
+ #define CONFIG_WBMP_DECODER 1
319
+ #define CONFIG_WEBP_DECODER 1
320
+ #define CONFIG_WCMV_DECODER 1
321
+ #define CONFIG_WRAPPED_AVFRAME_DECODER 1
322
+ #define CONFIG_WMV1_DECODER 1
323
+ #define CONFIG_WMV2_DECODER 1
324
+ #define CONFIG_WMV3_DECODER 1
325
+ #define CONFIG_WMV3_CRYSTALHD_DECODER 0
326
+ #define CONFIG_WMV3IMAGE_DECODER 1
327
+ #define CONFIG_WNV1_DECODER 1
328
+ #define CONFIG_XAN_WC3_DECODER 1
329
+ #define CONFIG_XAN_WC4_DECODER 1
330
+ #define CONFIG_XBM_DECODER 1
331
+ #define CONFIG_XFACE_DECODER 1
332
+ #define CONFIG_XL_DECODER 1
333
+ #define CONFIG_XPM_DECODER 1
334
+ #define CONFIG_XWD_DECODER 1
335
+ #define CONFIG_Y41P_DECODER 1
336
+ #define CONFIG_YLC_DECODER 1
337
+ #define CONFIG_YOP_DECODER 1
338
+ #define CONFIG_YUV4_DECODER 1
339
+ #define CONFIG_ZERO12V_DECODER 1
340
+ #define CONFIG_ZEROCODEC_DECODER 1
341
+ #define CONFIG_ZLIB_DECODER 1
342
+ #define CONFIG_ZMBV_DECODER 1
343
+ #define CONFIG_AAC_DECODER 1
344
+ #define CONFIG_AAC_FIXED_DECODER 1
345
+ #define CONFIG_AAC_LATM_DECODER 1
346
+ #define CONFIG_AC3_DECODER 1
347
+ #define CONFIG_AC3_FIXED_DECODER 1
348
+ #define CONFIG_ACELP_KELVIN_DECODER 1
349
+ #define CONFIG_ALAC_DECODER 1
350
+ #define CONFIG_ALS_DECODER 1
351
+ #define CONFIG_AMRNB_DECODER 1
352
+ #define CONFIG_AMRWB_DECODER 1
353
+ #define CONFIG_APAC_DECODER 1
354
+ #define CONFIG_APE_DECODER 1
355
+ #define CONFIG_APTX_DECODER 1
356
+ #define CONFIG_APTX_HD_DECODER 1
357
+ #define CONFIG_ATRAC1_DECODER 1
358
+ #define CONFIG_ATRAC3_DECODER 1
359
+ #define CONFIG_ATRAC3AL_DECODER 1
360
+ #define CONFIG_ATRAC3P_DECODER 1
361
+ #define CONFIG_ATRAC3PAL_DECODER 1
362
+ #define CONFIG_ATRAC9_DECODER 1
363
+ #define CONFIG_BINKAUDIO_DCT_DECODER 1
364
+ #define CONFIG_BINKAUDIO_RDFT_DECODER 1
365
+ #define CONFIG_BMV_AUDIO_DECODER 1
366
+ #define CONFIG_BONK_DECODER 1
367
+ #define CONFIG_COOK_DECODER 1
368
+ #define CONFIG_DCA_DECODER 1
369
+ #define CONFIG_DFPWM_DECODER 1
370
+ #define CONFIG_DOLBY_E_DECODER 1
371
+ #define CONFIG_DSD_LSBF_DECODER 1
372
+ #define CONFIG_DSD_MSBF_DECODER 1
373
+ #define CONFIG_DSD_LSBF_PLANAR_DECODER 1
374
+ #define CONFIG_DSD_MSBF_PLANAR_DECODER 1
375
+ #define CONFIG_DSICINAUDIO_DECODER 1
376
+ #define CONFIG_DSS_SP_DECODER 1
377
+ #define CONFIG_DST_DECODER 1
378
+ #define CONFIG_EAC3_DECODER 1
379
+ #define CONFIG_EVRC_DECODER 1
380
+ #define CONFIG_FASTAUDIO_DECODER 1
381
+ #define CONFIG_FFWAVESYNTH_DECODER 1
382
+ #define CONFIG_FLAC_DECODER 1
383
+ #define CONFIG_FTR_DECODER 1
384
+ #define CONFIG_G723_1_DECODER 1
385
+ #define CONFIG_G729_DECODER 1
386
+ #define CONFIG_GSM_DECODER 1
387
+ #define CONFIG_GSM_MS_DECODER 1
388
+ #define CONFIG_HCA_DECODER 1
389
+ #define CONFIG_HCOM_DECODER 1
390
+ #define CONFIG_HDR_DECODER 1
391
+ #define CONFIG_IAC_DECODER 1
392
+ #define CONFIG_ILBC_DECODER 1
393
+ #define CONFIG_IMC_DECODER 1
394
+ #define CONFIG_INTERPLAY_ACM_DECODER 1
395
+ #define CONFIG_MACE3_DECODER 1
396
+ #define CONFIG_MACE6_DECODER 1
397
+ #define CONFIG_METASOUND_DECODER 1
398
+ #define CONFIG_MISC4_DECODER 1
399
+ #define CONFIG_MLP_DECODER 1
400
+ #define CONFIG_MP1_DECODER 1
401
+ #define CONFIG_MP1FLOAT_DECODER 1
402
+ #define CONFIG_MP2_DECODER 1
403
+ #define CONFIG_MP2FLOAT_DECODER 1
404
+ #define CONFIG_MP3FLOAT_DECODER 1
405
+ #define CONFIG_MP3_DECODER 1
406
+ #define CONFIG_MP3ADUFLOAT_DECODER 1
407
+ #define CONFIG_MP3ADU_DECODER 1
408
+ #define CONFIG_MP3ON4FLOAT_DECODER 1
409
+ #define CONFIG_MP3ON4_DECODER 1
410
+ #define CONFIG_MPC7_DECODER 1
411
+ #define CONFIG_MPC8_DECODER 1
412
+ #define CONFIG_MSNSIREN_DECODER 1
413
+ #define CONFIG_NELLYMOSER_DECODER 1
414
+ #define CONFIG_ON2AVC_DECODER 1
415
+ #define CONFIG_OPUS_DECODER 1
416
+ #define CONFIG_OSQ_DECODER 1
417
+ #define CONFIG_PAF_AUDIO_DECODER 1
418
+ #define CONFIG_QCELP_DECODER 1
419
+ #define CONFIG_QDM2_DECODER 1
420
+ #define CONFIG_QDMC_DECODER 1
421
+ #define CONFIG_RA_144_DECODER 1
422
+ #define CONFIG_RA_288_DECODER 1
423
+ #define CONFIG_RALF_DECODER 1
424
+ #define CONFIG_SBC_DECODER 1
425
+ #define CONFIG_SHORTEN_DECODER 1
426
+ #define CONFIG_SIPR_DECODER 1
427
+ #define CONFIG_SIREN_DECODER 1
428
+ #define CONFIG_SMACKAUD_DECODER 1
429
+ #define CONFIG_SONIC_DECODER 1
430
+ #define CONFIG_TAK_DECODER 1
431
+ #define CONFIG_TRUEHD_DECODER 1
432
+ #define CONFIG_TRUESPEECH_DECODER 1
433
+ #define CONFIG_TTA_DECODER 1
434
+ #define CONFIG_TWINVQ_DECODER 1
435
+ #define CONFIG_VMDAUDIO_DECODER 1
436
+ #define CONFIG_VORBIS_DECODER 1
437
+ #define CONFIG_WAVARC_DECODER 1
438
+ #define CONFIG_WAVPACK_DECODER 1
439
+ #define CONFIG_WMALOSSLESS_DECODER 1
440
+ #define CONFIG_WMAPRO_DECODER 1
441
+ #define CONFIG_WMAV1_DECODER 1
442
+ #define CONFIG_WMAV2_DECODER 1
443
+ #define CONFIG_WMAVOICE_DECODER 1
444
+ #define CONFIG_WS_SND1_DECODER 1
445
+ #define CONFIG_XMA1_DECODER 1
446
+ #define CONFIG_XMA2_DECODER 1
447
+ #define CONFIG_PCM_ALAW_DECODER 1
448
+ #define CONFIG_PCM_BLURAY_DECODER 1
449
+ #define CONFIG_PCM_DVD_DECODER 1
450
+ #define CONFIG_PCM_F16LE_DECODER 1
451
+ #define CONFIG_PCM_F24LE_DECODER 1
452
+ #define CONFIG_PCM_F32BE_DECODER 1
453
+ #define CONFIG_PCM_F32LE_DECODER 1
454
+ #define CONFIG_PCM_F64BE_DECODER 1
455
+ #define CONFIG_PCM_F64LE_DECODER 1
456
+ #define CONFIG_PCM_LXF_DECODER 1
457
+ #define CONFIG_PCM_MULAW_DECODER 1
458
+ #define CONFIG_PCM_S8_DECODER 1
459
+ #define CONFIG_PCM_S8_PLANAR_DECODER 1
460
+ #define CONFIG_PCM_S16BE_DECODER 1
461
+ #define CONFIG_PCM_S16BE_PLANAR_DECODER 1
462
+ #define CONFIG_PCM_S16LE_DECODER 1
463
+ #define CONFIG_PCM_S16LE_PLANAR_DECODER 1
464
+ #define CONFIG_PCM_S24BE_DECODER 1
465
+ #define CONFIG_PCM_S24DAUD_DECODER 1
466
+ #define CONFIG_PCM_S24LE_DECODER 1
467
+ #define CONFIG_PCM_S24LE_PLANAR_DECODER 1
468
+ #define CONFIG_PCM_S32BE_DECODER 1
469
+ #define CONFIG_PCM_S32LE_DECODER 1
470
+ #define CONFIG_PCM_S32LE_PLANAR_DECODER 1
471
+ #define CONFIG_PCM_S64BE_DECODER 1
472
+ #define CONFIG_PCM_S64LE_DECODER 1
473
+ #define CONFIG_PCM_SGA_DECODER 1
474
+ #define CONFIG_PCM_U8_DECODER 1
475
+ #define CONFIG_PCM_U16BE_DECODER 1
476
+ #define CONFIG_PCM_U16LE_DECODER 1
477
+ #define CONFIG_PCM_U24BE_DECODER 1
478
+ #define CONFIG_PCM_U24LE_DECODER 1
479
+ #define CONFIG_PCM_U32BE_DECODER 1
480
+ #define CONFIG_PCM_U32LE_DECODER 1
481
+ #define CONFIG_PCM_VIDC_DECODER 1
482
+ #define CONFIG_CBD2_DPCM_DECODER 1
483
+ #define CONFIG_DERF_DPCM_DECODER 1
484
+ #define CONFIG_GREMLIN_DPCM_DECODER 1
485
+ #define CONFIG_INTERPLAY_DPCM_DECODER 1
486
+ #define CONFIG_ROQ_DPCM_DECODER 1
487
+ #define CONFIG_SDX2_DPCM_DECODER 1
488
+ #define CONFIG_SOL_DPCM_DECODER 1
489
+ #define CONFIG_XAN_DPCM_DECODER 1
490
+ #define CONFIG_WADY_DPCM_DECODER 1
491
+ #define CONFIG_ADPCM_4XM_DECODER 1
492
+ #define CONFIG_ADPCM_ADX_DECODER 1
493
+ #define CONFIG_ADPCM_AFC_DECODER 1
494
+ #define CONFIG_ADPCM_AGM_DECODER 1
495
+ #define CONFIG_ADPCM_AICA_DECODER 1
496
+ #define CONFIG_ADPCM_ARGO_DECODER 1
497
+ #define CONFIG_ADPCM_CT_DECODER 1
498
+ #define CONFIG_ADPCM_DTK_DECODER 1
499
+ #define CONFIG_ADPCM_EA_DECODER 1
500
+ #define CONFIG_ADPCM_EA_MAXIS_XA_DECODER 1
501
+ #define CONFIG_ADPCM_EA_R1_DECODER 1
502
+ #define CONFIG_ADPCM_EA_R2_DECODER 1
503
+ #define CONFIG_ADPCM_EA_R3_DECODER 1
504
+ #define CONFIG_ADPCM_EA_XAS_DECODER 1
505
+ #define CONFIG_ADPCM_G722_DECODER 1
506
+ #define CONFIG_ADPCM_G726_DECODER 1
507
+ #define CONFIG_ADPCM_G726LE_DECODER 1
508
+ #define CONFIG_ADPCM_IMA_ACORN_DECODER 1
509
+ #define CONFIG_ADPCM_IMA_AMV_DECODER 1
510
+ #define CONFIG_ADPCM_IMA_ALP_DECODER 1
511
+ #define CONFIG_ADPCM_IMA_APC_DECODER 1
512
+ #define CONFIG_ADPCM_IMA_APM_DECODER 1
513
+ #define CONFIG_ADPCM_IMA_CUNNING_DECODER 1
514
+ #define CONFIG_ADPCM_IMA_DAT4_DECODER 1
515
+ #define CONFIG_ADPCM_IMA_DK3_DECODER 1
516
+ #define CONFIG_ADPCM_IMA_DK4_DECODER 1
517
+ #define CONFIG_ADPCM_IMA_EA_EACS_DECODER 1
518
+ #define CONFIG_ADPCM_IMA_EA_SEAD_DECODER 1
519
+ #define CONFIG_ADPCM_IMA_ISS_DECODER 1
520
+ #define CONFIG_ADPCM_IMA_MOFLEX_DECODER 1
521
+ #define CONFIG_ADPCM_IMA_MTF_DECODER 1
522
+ #define CONFIG_ADPCM_IMA_OKI_DECODER 1
523
+ #define CONFIG_ADPCM_IMA_QT_DECODER 1
524
+ #define CONFIG_ADPCM_IMA_RAD_DECODER 1
525
+ #define CONFIG_ADPCM_IMA_SSI_DECODER 1
526
+ #define CONFIG_ADPCM_IMA_SMJPEG_DECODER 1
527
+ #define CONFIG_ADPCM_IMA_WAV_DECODER 1
528
+ #define CONFIG_ADPCM_IMA_WS_DECODER 1
529
+ #define CONFIG_ADPCM_MS_DECODER 1
530
+ #define CONFIG_ADPCM_MTAF_DECODER 1
531
+ #define CONFIG_ADPCM_PSX_DECODER 1
532
+ #define CONFIG_ADPCM_SBPRO_2_DECODER 1
533
+ #define CONFIG_ADPCM_SBPRO_3_DECODER 1
534
+ #define CONFIG_ADPCM_SBPRO_4_DECODER 1
535
+ #define CONFIG_ADPCM_SWF_DECODER 1
536
+ #define CONFIG_ADPCM_THP_DECODER 1
537
+ #define CONFIG_ADPCM_THP_LE_DECODER 1
538
+ #define CONFIG_ADPCM_VIMA_DECODER 1
539
+ #define CONFIG_ADPCM_XA_DECODER 1
540
+ #define CONFIG_ADPCM_XMD_DECODER 1
541
+ #define CONFIG_ADPCM_YAMAHA_DECODER 1
542
+ #define CONFIG_ADPCM_ZORK_DECODER 1
543
+ #define CONFIG_SSA_DECODER 1
544
+ #define CONFIG_ASS_DECODER 1
545
+ #define CONFIG_CCAPTION_DECODER 1
546
+ #define CONFIG_DVBSUB_DECODER 1
547
+ #define CONFIG_DVDSUB_DECODER 1
548
+ #define CONFIG_JACOSUB_DECODER 1
549
+ #define CONFIG_MICRODVD_DECODER 1
550
+ #define CONFIG_MOVTEXT_DECODER 1
551
+ #define CONFIG_MPL2_DECODER 1
552
+ #define CONFIG_PGSSUB_DECODER 1
553
+ #define CONFIG_PJS_DECODER 1
554
+ #define CONFIG_REALTEXT_DECODER 1
555
+ #define CONFIG_SAMI_DECODER 1
556
+ #define CONFIG_SRT_DECODER 1
557
+ #define CONFIG_STL_DECODER 1
558
+ #define CONFIG_SUBRIP_DECODER 1
559
+ #define CONFIG_SUBVIEWER_DECODER 1
560
+ #define CONFIG_SUBVIEWER1_DECODER 1
561
+ #define CONFIG_TEXT_DECODER 1
562
+ #define CONFIG_VPLAYER_DECODER 1
563
+ #define CONFIG_WEBVTT_DECODER 1
564
+ #define CONFIG_XSUB_DECODER 1
565
+ #define CONFIG_AAC_AT_DECODER 0
566
+ #define CONFIG_AC3_AT_DECODER 0
567
+ #define CONFIG_ADPCM_IMA_QT_AT_DECODER 0
568
+ #define CONFIG_ALAC_AT_DECODER 0
569
+ #define CONFIG_AMR_NB_AT_DECODER 0
570
+ #define CONFIG_EAC3_AT_DECODER 0
571
+ #define CONFIG_GSM_MS_AT_DECODER 0
572
+ #define CONFIG_ILBC_AT_DECODER 0
573
+ #define CONFIG_MP1_AT_DECODER 0
574
+ #define CONFIG_MP2_AT_DECODER 0
575
+ #define CONFIG_MP3_AT_DECODER 0
576
+ #define CONFIG_PCM_ALAW_AT_DECODER 0
577
+ #define CONFIG_PCM_MULAW_AT_DECODER 0
578
+ #define CONFIG_QDMC_AT_DECODER 0
579
+ #define CONFIG_QDM2_AT_DECODER 0
580
+ #define CONFIG_LIBARIBCAPTION_DECODER 0
581
+ #define CONFIG_LIBARIBB24_DECODER 0
582
+ #define CONFIG_LIBCELT_DECODER 0
583
+ #define CONFIG_LIBCODEC2_DECODER 0
584
+ #define CONFIG_LIBDAV1D_DECODER 0
585
+ #define CONFIG_LIBDAVS2_DECODER 0
586
+ #define CONFIG_LIBFDK_AAC_DECODER 0
587
+ #define CONFIG_LIBGSM_DECODER 0
588
+ #define CONFIG_LIBGSM_MS_DECODER 0
589
+ #define CONFIG_LIBILBC_DECODER 0
590
+ #define CONFIG_LIBJXL_DECODER 0
591
+ #define CONFIG_LIBOPENCORE_AMRNB_DECODER 0
592
+ #define CONFIG_LIBOPENCORE_AMRWB_DECODER 0
593
+ #define CONFIG_LIBOPUS_DECODER 0
594
+ #define CONFIG_LIBRSVG_DECODER 0
595
+ #define CONFIG_LIBSPEEX_DECODER 0
596
+ #define CONFIG_LIBUAVS3D_DECODER 0
597
+ #define CONFIG_LIBVORBIS_DECODER 0
598
+ #define CONFIG_LIBVPX_VP8_DECODER 0
599
+ #define CONFIG_LIBVPX_VP9_DECODER 0
600
+ #define CONFIG_LIBZVBI_TELETEXT_DECODER 0
601
+ #define CONFIG_BINTEXT_DECODER 1
602
+ #define CONFIG_XBIN_DECODER 1
603
+ #define CONFIG_IDF_DECODER 1
604
+ #define CONFIG_LIBAOM_AV1_DECODER 0
605
+ #define CONFIG_AV1_DECODER 1
606
+ #define CONFIG_AV1_CUVID_DECODER 1
607
+ #define CONFIG_AV1_MEDIACODEC_DECODER 0
608
+ #define CONFIG_AV1_QSV_DECODER 0
609
+ #define CONFIG_LIBOPENH264_DECODER 0
610
+ #define CONFIG_H264_CUVID_DECODER 1
611
+ #define CONFIG_HEVC_CUVID_DECODER 1
612
+ #define CONFIG_HEVC_MEDIACODEC_DECODER 0
613
+ #define CONFIG_MJPEG_CUVID_DECODER 1
614
+ #define CONFIG_MJPEG_QSV_DECODER 0
615
+ #define CONFIG_MPEG1_CUVID_DECODER 1
616
+ #define CONFIG_MPEG2_CUVID_DECODER 1
617
+ #define CONFIG_MPEG4_CUVID_DECODER 1
618
+ #define CONFIG_MPEG4_MEDIACODEC_DECODER 0
619
+ #define CONFIG_VC1_CUVID_DECODER 1
620
+ #define CONFIG_VP8_CUVID_DECODER 1
621
+ #define CONFIG_VP8_MEDIACODEC_DECODER 0
622
+ #define CONFIG_VP8_QSV_DECODER 0
623
+ #define CONFIG_VP9_CUVID_DECODER 1
624
+ #define CONFIG_VP9_MEDIACODEC_DECODER 0
625
+ #define CONFIG_VP9_QSV_DECODER 0
626
+ #define CONFIG_VNULL_DECODER 1
627
+ #define CONFIG_ANULL_DECODER 1
628
+ #define CONFIG_A64MULTI_ENCODER 1
629
+ #define CONFIG_A64MULTI5_ENCODER 1
630
+ #define CONFIG_ALIAS_PIX_ENCODER 1
631
+ #define CONFIG_AMV_ENCODER 1
632
+ #define CONFIG_APNG_ENCODER 1
633
+ #define CONFIG_ASV1_ENCODER 1
634
+ #define CONFIG_ASV2_ENCODER 1
635
+ #define CONFIG_AVRP_ENCODER 1
636
+ #define CONFIG_AVUI_ENCODER 1
637
+ #define CONFIG_AYUV_ENCODER 1
638
+ #define CONFIG_BITPACKED_ENCODER 1
639
+ #define CONFIG_BMP_ENCODER 1
640
+ #define CONFIG_CFHD_ENCODER 1
641
+ #define CONFIG_CINEPAK_ENCODER 1
642
+ #define CONFIG_CLJR_ENCODER 1
643
+ #define CONFIG_COMFORTNOISE_ENCODER 1
644
+ #define CONFIG_DNXHD_ENCODER 1
645
+ #define CONFIG_DPX_ENCODER 1
646
+ #define CONFIG_DVVIDEO_ENCODER 1
647
+ #define CONFIG_EXR_ENCODER 1
648
+ #define CONFIG_FFV1_ENCODER 1
649
+ #define CONFIG_FFVHUFF_ENCODER 1
650
+ #define CONFIG_FITS_ENCODER 1
651
+ #define CONFIG_FLASHSV_ENCODER 1
652
+ #define CONFIG_FLASHSV2_ENCODER 1
653
+ #define CONFIG_FLV_ENCODER 1
654
+ #define CONFIG_GIF_ENCODER 1
655
+ #define CONFIG_H261_ENCODER 1
656
+ #define CONFIG_H263_ENCODER 1
657
+ #define CONFIG_H263P_ENCODER 1
658
+ #define CONFIG_H264_MEDIACODEC_ENCODER 0
659
+ #define CONFIG_HAP_ENCODER 0
660
+ #define CONFIG_HUFFYUV_ENCODER 1
661
+ #define CONFIG_JPEG2000_ENCODER 1
662
+ #define CONFIG_JPEGLS_ENCODER 1
663
+ #define CONFIG_LJPEG_ENCODER 1
664
+ #define CONFIG_MAGICYUV_ENCODER 1
665
+ #define CONFIG_MJPEG_ENCODER 1
666
+ #define CONFIG_MPEG1VIDEO_ENCODER 1
667
+ #define CONFIG_MPEG2VIDEO_ENCODER 1
668
+ #define CONFIG_MPEG4_ENCODER 1
669
+ #define CONFIG_MSMPEG4V2_ENCODER 1
670
+ #define CONFIG_MSMPEG4V3_ENCODER 1
671
+ #define CONFIG_MSRLE_ENCODER 1
672
+ #define CONFIG_MSVIDEO1_ENCODER 1
673
+ #define CONFIG_PAM_ENCODER 1
674
+ #define CONFIG_PBM_ENCODER 1
675
+ #define CONFIG_PCX_ENCODER 1
676
+ #define CONFIG_PFM_ENCODER 1
677
+ #define CONFIG_PGM_ENCODER 1
678
+ #define CONFIG_PGMYUV_ENCODER 1
679
+ #define CONFIG_PHM_ENCODER 1
680
+ #define CONFIG_PNG_ENCODER 1
681
+ #define CONFIG_PPM_ENCODER 1
682
+ #define CONFIG_PRORES_ENCODER 1
683
+ #define CONFIG_PRORES_AW_ENCODER 1
684
+ #define CONFIG_PRORES_KS_ENCODER 1
685
+ #define CONFIG_QOI_ENCODER 1
686
+ #define CONFIG_QTRLE_ENCODER 1
687
+ #define CONFIG_R10K_ENCODER 1
688
+ #define CONFIG_R210_ENCODER 1
689
+ #define CONFIG_RAWVIDEO_ENCODER 1
690
+ #define CONFIG_ROQ_ENCODER 1
691
+ #define CONFIG_RPZA_ENCODER 1
692
+ #define CONFIG_RV10_ENCODER 1
693
+ #define CONFIG_RV20_ENCODER 1
694
+ #define CONFIG_S302M_ENCODER 1
695
+ #define CONFIG_SGI_ENCODER 1
696
+ #define CONFIG_SMC_ENCODER 1
697
+ #define CONFIG_SNOW_ENCODER 1
698
+ #define CONFIG_SPEEDHQ_ENCODER 1
699
+ #define CONFIG_SUNRAST_ENCODER 1
700
+ #define CONFIG_SVQ1_ENCODER 1
701
+ #define CONFIG_TARGA_ENCODER 1
702
+ #define CONFIG_TIFF_ENCODER 1
703
+ #define CONFIG_UTVIDEO_ENCODER 1
704
+ #define CONFIG_V210_ENCODER 1
705
+ #define CONFIG_V308_ENCODER 1
706
+ #define CONFIG_V408_ENCODER 1
707
+ #define CONFIG_V410_ENCODER 1
708
+ #define CONFIG_VBN_ENCODER 1
709
+ #define CONFIG_VC2_ENCODER 1
710
+ #define CONFIG_WBMP_ENCODER 1
711
+ #define CONFIG_WRAPPED_AVFRAME_ENCODER 1
712
+ #define CONFIG_WMV1_ENCODER 1
713
+ #define CONFIG_WMV2_ENCODER 1
714
+ #define CONFIG_XBM_ENCODER 1
715
+ #define CONFIG_XFACE_ENCODER 1
716
+ #define CONFIG_XWD_ENCODER 1
717
+ #define CONFIG_Y41P_ENCODER 1
718
+ #define CONFIG_YUV4_ENCODER 1
719
+ #define CONFIG_ZLIB_ENCODER 1
720
+ #define CONFIG_ZMBV_ENCODER 1
721
+ #define CONFIG_AAC_ENCODER 1
722
+ #define CONFIG_AC3_ENCODER 1
723
+ #define CONFIG_AC3_FIXED_ENCODER 1
724
+ #define CONFIG_ALAC_ENCODER 1
725
+ #define CONFIG_APTX_ENCODER 1
726
+ #define CONFIG_APTX_HD_ENCODER 1
727
+ #define CONFIG_DCA_ENCODER 1
728
+ #define CONFIG_DFPWM_ENCODER 1
729
+ #define CONFIG_EAC3_ENCODER 1
730
+ #define CONFIG_FLAC_ENCODER 1
731
+ #define CONFIG_G723_1_ENCODER 1
732
+ #define CONFIG_HDR_ENCODER 1
733
+ #define CONFIG_MLP_ENCODER 1
734
+ #define CONFIG_MP2_ENCODER 1
735
+ #define CONFIG_MP2FIXED_ENCODER 1
736
+ #define CONFIG_NELLYMOSER_ENCODER 1
737
+ #define CONFIG_OPUS_ENCODER 1
738
+ #define CONFIG_RA_144_ENCODER 1
739
+ #define CONFIG_SBC_ENCODER 1
740
+ #define CONFIG_SONIC_ENCODER 1
741
+ #define CONFIG_SONIC_LS_ENCODER 1
742
+ #define CONFIG_TRUEHD_ENCODER 1
743
+ #define CONFIG_TTA_ENCODER 1
744
+ #define CONFIG_VORBIS_ENCODER 1
745
+ #define CONFIG_WAVPACK_ENCODER 1
746
+ #define CONFIG_WMAV1_ENCODER 1
747
+ #define CONFIG_WMAV2_ENCODER 1
748
+ #define CONFIG_PCM_ALAW_ENCODER 1
749
+ #define CONFIG_PCM_BLURAY_ENCODER 1
750
+ #define CONFIG_PCM_DVD_ENCODER 1
751
+ #define CONFIG_PCM_F32BE_ENCODER 1
752
+ #define CONFIG_PCM_F32LE_ENCODER 1
753
+ #define CONFIG_PCM_F64BE_ENCODER 1
754
+ #define CONFIG_PCM_F64LE_ENCODER 1
755
+ #define CONFIG_PCM_MULAW_ENCODER 1
756
+ #define CONFIG_PCM_S8_ENCODER 1
757
+ #define CONFIG_PCM_S8_PLANAR_ENCODER 1
758
+ #define CONFIG_PCM_S16BE_ENCODER 1
759
+ #define CONFIG_PCM_S16BE_PLANAR_ENCODER 1
760
+ #define CONFIG_PCM_S16LE_ENCODER 1
761
+ #define CONFIG_PCM_S16LE_PLANAR_ENCODER 1
762
+ #define CONFIG_PCM_S24BE_ENCODER 1
763
+ #define CONFIG_PCM_S24DAUD_ENCODER 1
764
+ #define CONFIG_PCM_S24LE_ENCODER 1
765
+ #define CONFIG_PCM_S24LE_PLANAR_ENCODER 1
766
+ #define CONFIG_PCM_S32BE_ENCODER 1
767
+ #define CONFIG_PCM_S32LE_ENCODER 1
768
+ #define CONFIG_PCM_S32LE_PLANAR_ENCODER 1
769
+ #define CONFIG_PCM_S64BE_ENCODER 1
770
+ #define CONFIG_PCM_S64LE_ENCODER 1
771
+ #define CONFIG_PCM_U8_ENCODER 1
772
+ #define CONFIG_PCM_U16BE_ENCODER 1
773
+ #define CONFIG_PCM_U16LE_ENCODER 1
774
+ #define CONFIG_PCM_U24BE_ENCODER 1
775
+ #define CONFIG_PCM_U24LE_ENCODER 1
776
+ #define CONFIG_PCM_U32BE_ENCODER 1
777
+ #define CONFIG_PCM_U32LE_ENCODER 1
778
+ #define CONFIG_PCM_VIDC_ENCODER 1
779
+ #define CONFIG_ROQ_DPCM_ENCODER 1
780
+ #define CONFIG_ADPCM_ADX_ENCODER 1
781
+ #define CONFIG_ADPCM_ARGO_ENCODER 1
782
+ #define CONFIG_ADPCM_G722_ENCODER 1
783
+ #define CONFIG_ADPCM_G726_ENCODER 1
784
+ #define CONFIG_ADPCM_G726LE_ENCODER 1
785
+ #define CONFIG_ADPCM_IMA_AMV_ENCODER 1
786
+ #define CONFIG_ADPCM_IMA_ALP_ENCODER 1
787
+ #define CONFIG_ADPCM_IMA_APM_ENCODER 1
788
+ #define CONFIG_ADPCM_IMA_QT_ENCODER 1
789
+ #define CONFIG_ADPCM_IMA_SSI_ENCODER 1
790
+ #define CONFIG_ADPCM_IMA_WAV_ENCODER 1
791
+ #define CONFIG_ADPCM_IMA_WS_ENCODER 1
792
+ #define CONFIG_ADPCM_MS_ENCODER 1
793
+ #define CONFIG_ADPCM_SWF_ENCODER 1
794
+ #define CONFIG_ADPCM_YAMAHA_ENCODER 1
795
+ #define CONFIG_SSA_ENCODER 1
796
+ #define CONFIG_ASS_ENCODER 1
797
+ #define CONFIG_DVBSUB_ENCODER 1
798
+ #define CONFIG_DVDSUB_ENCODER 1
799
+ #define CONFIG_MOVTEXT_ENCODER 1
800
+ #define CONFIG_SRT_ENCODER 1
801
+ #define CONFIG_SUBRIP_ENCODER 1
802
+ #define CONFIG_TEXT_ENCODER 1
803
+ #define CONFIG_TTML_ENCODER 1
804
+ #define CONFIG_WEBVTT_ENCODER 1
805
+ #define CONFIG_XSUB_ENCODER 1
806
+ #define CONFIG_AAC_AT_ENCODER 0
807
+ #define CONFIG_ALAC_AT_ENCODER 0
808
+ #define CONFIG_ILBC_AT_ENCODER 0
809
+ #define CONFIG_PCM_ALAW_AT_ENCODER 0
810
+ #define CONFIG_PCM_MULAW_AT_ENCODER 0
811
+ #define CONFIG_LIBAOM_AV1_ENCODER 0
812
+ #define CONFIG_LIBCODEC2_ENCODER 0
813
+ #define CONFIG_LIBFDK_AAC_ENCODER 0
814
+ #define CONFIG_LIBGSM_ENCODER 0
815
+ #define CONFIG_LIBGSM_MS_ENCODER 0
816
+ #define CONFIG_LIBILBC_ENCODER 0
817
+ #define CONFIG_LIBJXL_ENCODER 0
818
+ #define CONFIG_LIBMP3LAME_ENCODER 0
819
+ #define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0
820
+ #define CONFIG_LIBOPENJPEG_ENCODER 0
821
+ #define CONFIG_LIBOPUS_ENCODER 0
822
+ #define CONFIG_LIBRAV1E_ENCODER 0
823
+ #define CONFIG_LIBSHINE_ENCODER 0
824
+ #define CONFIG_LIBSPEEX_ENCODER 0
825
+ #define CONFIG_LIBSVTAV1_ENCODER 0
826
+ #define CONFIG_LIBTHEORA_ENCODER 0
827
+ #define CONFIG_LIBTWOLAME_ENCODER 0
828
+ #define CONFIG_LIBVO_AMRWBENC_ENCODER 0
829
+ #define CONFIG_LIBVORBIS_ENCODER 0
830
+ #define CONFIG_LIBVPX_VP8_ENCODER 0
831
+ #define CONFIG_LIBVPX_VP9_ENCODER 0
832
+ #define CONFIG_LIBWEBP_ANIM_ENCODER 0
833
+ #define CONFIG_LIBWEBP_ENCODER 0
834
+ #define CONFIG_LIBX262_ENCODER 0
835
+ #define CONFIG_LIBX264_ENCODER 0
836
+ #define CONFIG_LIBX264RGB_ENCODER 0
837
+ #define CONFIG_LIBX265_ENCODER 0
838
+ #define CONFIG_LIBXAVS_ENCODER 0
839
+ #define CONFIG_LIBXAVS2_ENCODER 0
840
+ #define CONFIG_LIBXVID_ENCODER 0
841
+ #define CONFIG_AAC_MF_ENCODER 0
842
+ #define CONFIG_AC3_MF_ENCODER 0
843
+ #define CONFIG_H263_V4L2M2M_ENCODER 1
844
+ #define CONFIG_AV1_MEDIACODEC_ENCODER 0
845
+ #define CONFIG_AV1_NVENC_ENCODER 1
846
+ #define CONFIG_AV1_QSV_ENCODER 0
847
+ #define CONFIG_AV1_AMF_ENCODER 0
848
+ #define CONFIG_LIBOPENH264_ENCODER 0
849
+ #define CONFIG_H264_AMF_ENCODER 0
850
+ #define CONFIG_H264_MF_ENCODER 0
851
+ #define CONFIG_H264_NVENC_ENCODER 1
852
+ #define CONFIG_H264_OMX_ENCODER 0
853
+ #define CONFIG_H264_QSV_ENCODER 0
854
+ #define CONFIG_H264_V4L2M2M_ENCODER 1
855
+ #define CONFIG_H264_VAAPI_ENCODER 0
856
+ #define CONFIG_H264_VIDEOTOOLBOX_ENCODER 0
857
+ #define CONFIG_HEVC_AMF_ENCODER 0
858
+ #define CONFIG_HEVC_MEDIACODEC_ENCODER 0
859
+ #define CONFIG_HEVC_MF_ENCODER 0
860
+ #define CONFIG_HEVC_NVENC_ENCODER 1
861
+ #define CONFIG_HEVC_QSV_ENCODER 0
862
+ #define CONFIG_HEVC_V4L2M2M_ENCODER 1
863
+ #define CONFIG_HEVC_VAAPI_ENCODER 0
864
+ #define CONFIG_HEVC_VIDEOTOOLBOX_ENCODER 0
865
+ #define CONFIG_LIBKVAZAAR_ENCODER 0
866
+ #define CONFIG_MJPEG_QSV_ENCODER 0
867
+ #define CONFIG_MJPEG_VAAPI_ENCODER 0
868
+ #define CONFIG_MP3_MF_ENCODER 0
869
+ #define CONFIG_MPEG2_QSV_ENCODER 0
870
+ #define CONFIG_MPEG2_VAAPI_ENCODER 0
871
+ #define CONFIG_MPEG4_MEDIACODEC_ENCODER 0
872
+ #define CONFIG_MPEG4_OMX_ENCODER 0
873
+ #define CONFIG_MPEG4_V4L2M2M_ENCODER 1
874
+ #define CONFIG_PRORES_VIDEOTOOLBOX_ENCODER 0
875
+ #define CONFIG_VP8_MEDIACODEC_ENCODER 0
876
+ #define CONFIG_VP8_V4L2M2M_ENCODER 1
877
+ #define CONFIG_VP8_VAAPI_ENCODER 0
878
+ #define CONFIG_VP9_MEDIACODEC_ENCODER 0
879
+ #define CONFIG_VP9_VAAPI_ENCODER 0
880
+ #define CONFIG_VP9_QSV_ENCODER 0
881
+ #define CONFIG_VNULL_ENCODER 1
882
+ #define CONFIG_ANULL_ENCODER 1
883
+ #define CONFIG_AV1_D3D11VA_HWACCEL 0
884
+ #define CONFIG_AV1_D3D11VA2_HWACCEL 0
885
+ #define CONFIG_AV1_DXVA2_HWACCEL 0
886
+ #define CONFIG_AV1_NVDEC_HWACCEL 1
887
+ #define CONFIG_AV1_VAAPI_HWACCEL 0
888
+ #define CONFIG_AV1_VDPAU_HWACCEL 0
889
+ #define CONFIG_AV1_VULKAN_HWACCEL 0
890
+ #define CONFIG_H263_VAAPI_HWACCEL 0
891
+ #define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0
892
+ #define CONFIG_H264_D3D11VA_HWACCEL 0
893
+ #define CONFIG_H264_D3D11VA2_HWACCEL 0
894
+ #define CONFIG_H264_DXVA2_HWACCEL 0
895
+ #define CONFIG_H264_NVDEC_HWACCEL 1
896
+ #define CONFIG_H264_VAAPI_HWACCEL 0
897
+ #define CONFIG_H264_VDPAU_HWACCEL 0
898
+ #define CONFIG_H264_VIDEOTOOLBOX_HWACCEL 0
899
+ #define CONFIG_H264_VULKAN_HWACCEL 0
900
+ #define CONFIG_HEVC_D3D11VA_HWACCEL 0
901
+ #define CONFIG_HEVC_D3D11VA2_HWACCEL 0
902
+ #define CONFIG_HEVC_DXVA2_HWACCEL 0
903
+ #define CONFIG_HEVC_NVDEC_HWACCEL 1
904
+ #define CONFIG_HEVC_VAAPI_HWACCEL 0
905
+ #define CONFIG_HEVC_VDPAU_HWACCEL 0
906
+ #define CONFIG_HEVC_VIDEOTOOLBOX_HWACCEL 0
907
+ #define CONFIG_HEVC_VULKAN_HWACCEL 0
908
+ #define CONFIG_MJPEG_NVDEC_HWACCEL 1
909
+ #define CONFIG_MJPEG_VAAPI_HWACCEL 0
910
+ #define CONFIG_MPEG1_NVDEC_HWACCEL 1
911
+ #define CONFIG_MPEG1_VDPAU_HWACCEL 0
912
+ #define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0
913
+ #define CONFIG_MPEG2_D3D11VA_HWACCEL 0
914
+ #define CONFIG_MPEG2_D3D11VA2_HWACCEL 0
915
+ #define CONFIG_MPEG2_DXVA2_HWACCEL 0
916
+ #define CONFIG_MPEG2_NVDEC_HWACCEL 1
917
+ #define CONFIG_MPEG2_VAAPI_HWACCEL 0
918
+ #define CONFIG_MPEG2_VDPAU_HWACCEL 0
919
+ #define CONFIG_MPEG2_VIDEOTOOLBOX_HWACCEL 0
920
+ #define CONFIG_MPEG4_NVDEC_HWACCEL 1
921
+ #define CONFIG_MPEG4_VAAPI_HWACCEL 0
922
+ #define CONFIG_MPEG4_VDPAU_HWACCEL 0
923
+ #define CONFIG_MPEG4_VIDEOTOOLBOX_HWACCEL 0
924
+ #define CONFIG_PRORES_VIDEOTOOLBOX_HWACCEL 0
925
+ #define CONFIG_VC1_D3D11VA_HWACCEL 0
926
+ #define CONFIG_VC1_D3D11VA2_HWACCEL 0
927
+ #define CONFIG_VC1_DXVA2_HWACCEL 0
928
+ #define CONFIG_VC1_NVDEC_HWACCEL 1
929
+ #define CONFIG_VC1_VAAPI_HWACCEL 0
930
+ #define CONFIG_VC1_VDPAU_HWACCEL 0
931
+ #define CONFIG_VP8_NVDEC_HWACCEL 1
932
+ #define CONFIG_VP8_VAAPI_HWACCEL 0
933
+ #define CONFIG_VP9_D3D11VA_HWACCEL 0
934
+ #define CONFIG_VP9_D3D11VA2_HWACCEL 0
935
+ #define CONFIG_VP9_DXVA2_HWACCEL 0
936
+ #define CONFIG_VP9_NVDEC_HWACCEL 1
937
+ #define CONFIG_VP9_VAAPI_HWACCEL 0
938
+ #define CONFIG_VP9_VDPAU_HWACCEL 0
939
+ #define CONFIG_VP9_VIDEOTOOLBOX_HWACCEL 0
940
+ #define CONFIG_WMV3_D3D11VA_HWACCEL 0
941
+ #define CONFIG_WMV3_D3D11VA2_HWACCEL 0
942
+ #define CONFIG_WMV3_DXVA2_HWACCEL 0
943
+ #define CONFIG_WMV3_NVDEC_HWACCEL 1
944
+ #define CONFIG_WMV3_VAAPI_HWACCEL 0
945
+ #define CONFIG_WMV3_VDPAU_HWACCEL 0
946
+ #define CONFIG_AAC_PARSER 1
947
+ #define CONFIG_AAC_LATM_PARSER 1
948
+ #define CONFIG_AC3_PARSER 1
949
+ #define CONFIG_ADX_PARSER 1
950
+ #define CONFIG_AMR_PARSER 1
951
+ #define CONFIG_AV1_PARSER 1
952
+ #define CONFIG_AVS2_PARSER 1
953
+ #define CONFIG_AVS3_PARSER 1
954
+ #define CONFIG_BMP_PARSER 1
955
+ #define CONFIG_CAVSVIDEO_PARSER 1
956
+ #define CONFIG_COOK_PARSER 1
957
+ #define CONFIG_CRI_PARSER 1
958
+ #define CONFIG_DCA_PARSER 1
959
+ #define CONFIG_DIRAC_PARSER 1
960
+ #define CONFIG_DNXHD_PARSER 1
961
+ #define CONFIG_DOLBY_E_PARSER 1
962
+ #define CONFIG_DPX_PARSER 1
963
+ #define CONFIG_DVAUDIO_PARSER 1
964
+ #define CONFIG_DVBSUB_PARSER 1
965
+ #define CONFIG_DVDSUB_PARSER 1
966
+ #define CONFIG_DVD_NAV_PARSER 1
967
+ #define CONFIG_EVC_PARSER 1
968
+ #define CONFIG_FLAC_PARSER 1
969
+ #define CONFIG_FTR_PARSER 1
970
+ #define CONFIG_G723_1_PARSER 1
971
+ #define CONFIG_G729_PARSER 1
972
+ #define CONFIG_GIF_PARSER 1
973
+ #define CONFIG_GSM_PARSER 1
974
+ #define CONFIG_H261_PARSER 1
975
+ #define CONFIG_H263_PARSER 1
976
+ #define CONFIG_H264_PARSER 1
977
+ #define CONFIG_HEVC_PARSER 1
978
+ #define CONFIG_HDR_PARSER 1
979
+ #define CONFIG_IPU_PARSER 1
980
+ #define CONFIG_JPEG2000_PARSER 1
981
+ #define CONFIG_JPEGXL_PARSER 1
982
+ #define CONFIG_MISC4_PARSER 1
983
+ #define CONFIG_MJPEG_PARSER 1
984
+ #define CONFIG_MLP_PARSER 1
985
+ #define CONFIG_MPEG4VIDEO_PARSER 1
986
+ #define CONFIG_MPEGAUDIO_PARSER 1
987
+ #define CONFIG_MPEGVIDEO_PARSER 1
988
+ #define CONFIG_OPUS_PARSER 1
989
+ #define CONFIG_PNG_PARSER 1
990
+ #define CONFIG_PNM_PARSER 1
991
+ #define CONFIG_QOI_PARSER 1
992
+ #define CONFIG_RV34_PARSER 1
993
+ #define CONFIG_SBC_PARSER 1
994
+ #define CONFIG_SIPR_PARSER 1
995
+ #define CONFIG_TAK_PARSER 1
996
+ #define CONFIG_VC1_PARSER 1
997
+ #define CONFIG_VORBIS_PARSER 1
998
+ #define CONFIG_VP3_PARSER 1
999
+ #define CONFIG_VP8_PARSER 1
1000
+ #define CONFIG_VP9_PARSER 1
1001
+ #define CONFIG_VVC_PARSER 1
1002
+ #define CONFIG_WEBP_PARSER 1
1003
+ #define CONFIG_XBM_PARSER 1
1004
+ #define CONFIG_XMA_PARSER 1
1005
+ #define CONFIG_XWD_PARSER 1
1006
+ #define CONFIG_ALSA_INDEV 1
1007
+ #define CONFIG_ANDROID_CAMERA_INDEV 0
1008
+ #define CONFIG_AVFOUNDATION_INDEV 0
1009
+ #define CONFIG_BKTR_INDEV 0
1010
+ #define CONFIG_DECKLINK_INDEV 0
1011
+ #define CONFIG_DSHOW_INDEV 0
1012
+ #define CONFIG_FBDEV_INDEV 1
1013
+ #define CONFIG_GDIGRAB_INDEV 0
1014
+ #define CONFIG_IEC61883_INDEV 0
1015
+ #define CONFIG_JACK_INDEV 0
1016
+ #define CONFIG_KMSGRAB_INDEV 0
1017
+ #define CONFIG_LAVFI_INDEV 1
1018
+ #define CONFIG_OPENAL_INDEV 0
1019
+ #define CONFIG_OSS_INDEV 1
1020
+ #define CONFIG_PULSE_INDEV 0
1021
+ #define CONFIG_SNDIO_INDEV 0
1022
+ #define CONFIG_V4L2_INDEV 1
1023
+ #define CONFIG_VFWCAP_INDEV 0
1024
+ #define CONFIG_XCBGRAB_INDEV 1
1025
+ #define CONFIG_LIBCDIO_INDEV 0
1026
+ #define CONFIG_LIBDC1394_INDEV 0
1027
+ #define CONFIG_ALSA_OUTDEV 1
1028
+ #define CONFIG_AUDIOTOOLBOX_OUTDEV 0
1029
+ #define CONFIG_CACA_OUTDEV 0
1030
+ #define CONFIG_DECKLINK_OUTDEV 0
1031
+ #define CONFIG_FBDEV_OUTDEV 1
1032
+ #define CONFIG_OPENGL_OUTDEV 0
1033
+ #define CONFIG_OSS_OUTDEV 1
1034
+ #define CONFIG_PULSE_OUTDEV 0
1035
+ #define CONFIG_SDL2_OUTDEV 0
1036
+ #define CONFIG_SNDIO_OUTDEV 0
1037
+ #define CONFIG_V4L2_OUTDEV 1
1038
+ #define CONFIG_XV_OUTDEV 0
1039
+ #define CONFIG_ABENCH_FILTER 1
1040
+ #define CONFIG_ACOMPRESSOR_FILTER 1
1041
+ #define CONFIG_ACONTRAST_FILTER 1
1042
+ #define CONFIG_ACOPY_FILTER 1
1043
+ #define CONFIG_ACUE_FILTER 1
1044
+ #define CONFIG_ACROSSFADE_FILTER 1
1045
+ #define CONFIG_ACROSSOVER_FILTER 1
1046
+ #define CONFIG_ACRUSHER_FILTER 1
1047
+ #define CONFIG_ADECLICK_FILTER 1
1048
+ #define CONFIG_ADECLIP_FILTER 1
1049
+ #define CONFIG_ADECORRELATE_FILTER 1
1050
+ #define CONFIG_ADELAY_FILTER 1
1051
+ #define CONFIG_ADENORM_FILTER 1
1052
+ #define CONFIG_ADERIVATIVE_FILTER 1
1053
+ #define CONFIG_ADRC_FILTER 1
1054
+ #define CONFIG_ADYNAMICEQUALIZER_FILTER 1
1055
+ #define CONFIG_ADYNAMICSMOOTH_FILTER 1
1056
+ #define CONFIG_AECHO_FILTER 1
1057
+ #define CONFIG_AEMPHASIS_FILTER 1
1058
+ #define CONFIG_AEVAL_FILTER 1
1059
+ #define CONFIG_AEXCITER_FILTER 1
1060
+ #define CONFIG_AFADE_FILTER 1
1061
+ #define CONFIG_AFFTDN_FILTER 1
1062
+ #define CONFIG_AFFTFILT_FILTER 1
1063
+ #define CONFIG_AFIR_FILTER 1
1064
+ #define CONFIG_AFORMAT_FILTER 1
1065
+ #define CONFIG_AFREQSHIFT_FILTER 1
1066
+ #define CONFIG_AFWTDN_FILTER 1
1067
+ #define CONFIG_AGATE_FILTER 1
1068
+ #define CONFIG_AIIR_FILTER 1
1069
+ #define CONFIG_AINTEGRAL_FILTER 1
1070
+ #define CONFIG_AINTERLEAVE_FILTER 1
1071
+ #define CONFIG_ALATENCY_FILTER 1
1072
+ #define CONFIG_ALIMITER_FILTER 1
1073
+ #define CONFIG_ALLPASS_FILTER 1
1074
+ #define CONFIG_ALOOP_FILTER 1
1075
+ #define CONFIG_AMERGE_FILTER 1
1076
+ #define CONFIG_AMETADATA_FILTER 1
1077
+ #define CONFIG_AMIX_FILTER 1
1078
+ #define CONFIG_AMULTIPLY_FILTER 1
1079
+ #define CONFIG_ANEQUALIZER_FILTER 1
1080
+ #define CONFIG_ANLMDN_FILTER 1
1081
+ #define CONFIG_ANLMF_FILTER 1
1082
+ #define CONFIG_ANLMS_FILTER 1
1083
+ #define CONFIG_ANULL_FILTER 1
1084
+ #define CONFIG_APAD_FILTER 1
1085
+ #define CONFIG_APERMS_FILTER 1
1086
+ #define CONFIG_APHASER_FILTER 1
1087
+ #define CONFIG_APHASESHIFT_FILTER 1
1088
+ #define CONFIG_APSNR_FILTER 1
1089
+ #define CONFIG_APSYCLIP_FILTER 1
1090
+ #define CONFIG_APULSATOR_FILTER 1
1091
+ #define CONFIG_AREALTIME_FILTER 1
1092
+ #define CONFIG_ARESAMPLE_FILTER 1
1093
+ #define CONFIG_AREVERSE_FILTER 1
1094
+ #define CONFIG_ARLS_FILTER 1
1095
+ #define CONFIG_ARNNDN_FILTER 1
1096
+ #define CONFIG_ASDR_FILTER 1
1097
+ #define CONFIG_ASEGMENT_FILTER 1
1098
+ #define CONFIG_ASELECT_FILTER 1
1099
+ #define CONFIG_ASENDCMD_FILTER 1
1100
+ #define CONFIG_ASETNSAMPLES_FILTER 1
1101
+ #define CONFIG_ASETPTS_FILTER 1
1102
+ #define CONFIG_ASETRATE_FILTER 1
1103
+ #define CONFIG_ASETTB_FILTER 1
1104
+ #define CONFIG_ASHOWINFO_FILTER 1
1105
+ #define CONFIG_ASIDEDATA_FILTER 1
1106
+ #define CONFIG_ASISDR_FILTER 1
1107
+ #define CONFIG_ASOFTCLIP_FILTER 1
1108
+ #define CONFIG_ASPECTRALSTATS_FILTER 1
1109
+ #define CONFIG_ASPLIT_FILTER 1
1110
+ #define CONFIG_ASR_FILTER 0
1111
+ #define CONFIG_ASTATS_FILTER 1
1112
+ #define CONFIG_ASTREAMSELECT_FILTER 1
1113
+ #define CONFIG_ASUBBOOST_FILTER 1
1114
+ #define CONFIG_ASUBCUT_FILTER 1
1115
+ #define CONFIG_ASUPERCUT_FILTER 1
1116
+ #define CONFIG_ASUPERPASS_FILTER 1
1117
+ #define CONFIG_ASUPERSTOP_FILTER 1
1118
+ #define CONFIG_ATEMPO_FILTER 1
1119
+ #define CONFIG_ATILT_FILTER 1
1120
+ #define CONFIG_ATRIM_FILTER 1
1121
+ #define CONFIG_AXCORRELATE_FILTER 1
1122
+ #define CONFIG_AZMQ_FILTER 0
1123
+ #define CONFIG_BANDPASS_FILTER 1
1124
+ #define CONFIG_BANDREJECT_FILTER 1
1125
+ #define CONFIG_BASS_FILTER 1
1126
+ #define CONFIG_BIQUAD_FILTER 1
1127
+ #define CONFIG_BS2B_FILTER 0
1128
+ #define CONFIG_CHANNELMAP_FILTER 1
1129
+ #define CONFIG_CHANNELSPLIT_FILTER 1
1130
+ #define CONFIG_CHORUS_FILTER 1
1131
+ #define CONFIG_COMPAND_FILTER 1
1132
+ #define CONFIG_COMPENSATIONDELAY_FILTER 1
1133
+ #define CONFIG_CROSSFEED_FILTER 1
1134
+ #define CONFIG_CRYSTALIZER_FILTER 1
1135
+ #define CONFIG_DCSHIFT_FILTER 1
1136
+ #define CONFIG_DEESSER_FILTER 1
1137
+ #define CONFIG_DIALOGUENHANCE_FILTER 1
1138
+ #define CONFIG_DRMETER_FILTER 1
1139
+ #define CONFIG_DYNAUDNORM_FILTER 1
1140
+ #define CONFIG_EARWAX_FILTER 1
1141
+ #define CONFIG_EBUR128_FILTER 1
1142
+ #define CONFIG_EQUALIZER_FILTER 1
1143
+ #define CONFIG_EXTRASTEREO_FILTER 1
1144
+ #define CONFIG_FIREQUALIZER_FILTER 1
1145
+ #define CONFIG_FLANGER_FILTER 1
1146
+ #define CONFIG_HAAS_FILTER 1
1147
+ #define CONFIG_HDCD_FILTER 1
1148
+ #define CONFIG_HEADPHONE_FILTER 1
1149
+ #define CONFIG_HIGHPASS_FILTER 1
1150
+ #define CONFIG_HIGHSHELF_FILTER 1
1151
+ #define CONFIG_JOIN_FILTER 1
1152
+ #define CONFIG_LADSPA_FILTER 0
1153
+ #define CONFIG_LOUDNORM_FILTER 1
1154
+ #define CONFIG_LOWPASS_FILTER 1
1155
+ #define CONFIG_LOWSHELF_FILTER 1
1156
+ #define CONFIG_LV2_FILTER 0
1157
+ #define CONFIG_MCOMPAND_FILTER 1
1158
+ #define CONFIG_PAN_FILTER 1
1159
+ #define CONFIG_REPLAYGAIN_FILTER 1
1160
+ #define CONFIG_RUBBERBAND_FILTER 0
1161
+ #define CONFIG_SIDECHAINCOMPRESS_FILTER 1
1162
+ #define CONFIG_SIDECHAINGATE_FILTER 1
1163
+ #define CONFIG_SILENCEDETECT_FILTER 1
1164
+ #define CONFIG_SILENCEREMOVE_FILTER 1
1165
+ #define CONFIG_SOFALIZER_FILTER 0
1166
+ #define CONFIG_SPEECHNORM_FILTER 1
1167
+ #define CONFIG_STEREOTOOLS_FILTER 1
1168
+ #define CONFIG_STEREOWIDEN_FILTER 1
1169
+ #define CONFIG_SUPEREQUALIZER_FILTER 1
1170
+ #define CONFIG_SURROUND_FILTER 1
1171
+ #define CONFIG_TILTSHELF_FILTER 1
1172
+ #define CONFIG_TREBLE_FILTER 1
1173
+ #define CONFIG_TREMOLO_FILTER 1
1174
+ #define CONFIG_VIBRATO_FILTER 1
1175
+ #define CONFIG_VIRTUALBASS_FILTER 1
1176
+ #define CONFIG_VOLUME_FILTER 1
1177
+ #define CONFIG_VOLUMEDETECT_FILTER 1
1178
+ #define CONFIG_AEVALSRC_FILTER 1
1179
+ #define CONFIG_AFDELAYSRC_FILTER 1
1180
+ #define CONFIG_AFIREQSRC_FILTER 1
1181
+ #define CONFIG_AFIRSRC_FILTER 1
1182
+ #define CONFIG_ANOISESRC_FILTER 1
1183
+ #define CONFIG_ANULLSRC_FILTER 1
1184
+ #define CONFIG_FLITE_FILTER 0
1185
+ #define CONFIG_HILBERT_FILTER 1
1186
+ #define CONFIG_SINC_FILTER 1
1187
+ #define CONFIG_SINE_FILTER 1
1188
+ #define CONFIG_ANULLSINK_FILTER 1
1189
+ #define CONFIG_ADDROI_FILTER 1
1190
+ #define CONFIG_ALPHAEXTRACT_FILTER 1
1191
+ #define CONFIG_ALPHAMERGE_FILTER 1
1192
+ #define CONFIG_AMPLIFY_FILTER 1
1193
+ #define CONFIG_ASS_FILTER 0
1194
+ #define CONFIG_ATADENOISE_FILTER 1
1195
+ #define CONFIG_AVGBLUR_FILTER 1
1196
+ #define CONFIG_AVGBLUR_OPENCL_FILTER 0
1197
+ #define CONFIG_AVGBLUR_VULKAN_FILTER 0
1198
+ #define CONFIG_BACKGROUNDKEY_FILTER 1
1199
+ #define CONFIG_BBOX_FILTER 1
1200
+ #define CONFIG_BENCH_FILTER 1
1201
+ #define CONFIG_BILATERAL_FILTER 1
1202
+ #define CONFIG_BILATERAL_CUDA_FILTER 1
1203
+ #define CONFIG_BITPLANENOISE_FILTER 1
1204
+ #define CONFIG_BLACKDETECT_FILTER 1
1205
+ #define CONFIG_BLACKFRAME_FILTER 0
1206
+ #define CONFIG_BLEND_FILTER 1
1207
+ #define CONFIG_BLEND_VULKAN_FILTER 0
1208
+ #define CONFIG_BLOCKDETECT_FILTER 1
1209
+ #define CONFIG_BLURDETECT_FILTER 1
1210
+ #define CONFIG_BM3D_FILTER 1
1211
+ #define CONFIG_BOXBLUR_FILTER 0
1212
+ #define CONFIG_BOXBLUR_OPENCL_FILTER 0
1213
+ #define CONFIG_BWDIF_FILTER 1
1214
+ #define CONFIG_BWDIF_CUDA_FILTER 1
1215
+ #define CONFIG_BWDIF_VULKAN_FILTER 0
1216
+ #define CONFIG_CAS_FILTER 1
1217
+ #define CONFIG_CCREPACK_FILTER 1
1218
+ #define CONFIG_CHROMABER_VULKAN_FILTER 0
1219
+ #define CONFIG_CHROMAHOLD_FILTER 1
1220
+ #define CONFIG_CHROMAKEY_FILTER 1
1221
+ #define CONFIG_CHROMAKEY_CUDA_FILTER 1
1222
+ #define CONFIG_CHROMANR_FILTER 1
1223
+ #define CONFIG_CHROMASHIFT_FILTER 1
1224
+ #define CONFIG_CIESCOPE_FILTER 1
1225
+ #define CONFIG_CODECVIEW_FILTER 1
1226
+ #define CONFIG_COLORBALANCE_FILTER 1
1227
+ #define CONFIG_COLORCHANNELMIXER_FILTER 1
1228
+ #define CONFIG_COLORCONTRAST_FILTER 1
1229
+ #define CONFIG_COLORCORRECT_FILTER 1
1230
+ #define CONFIG_COLORIZE_FILTER 1
1231
+ #define CONFIG_COLORKEY_FILTER 1
1232
+ #define CONFIG_COLORKEY_OPENCL_FILTER 0
1233
+ #define CONFIG_COLORHOLD_FILTER 1
1234
+ #define CONFIG_COLORLEVELS_FILTER 1
1235
+ #define CONFIG_COLORMAP_FILTER 1
1236
+ #define CONFIG_COLORMATRIX_FILTER 0
1237
+ #define CONFIG_COLORSPACE_FILTER 1
1238
+ #define CONFIG_COLORSPACE_CUDA_FILTER 1
1239
+ #define CONFIG_COLORTEMPERATURE_FILTER 1
1240
+ #define CONFIG_CONVOLUTION_FILTER 1
1241
+ #define CONFIG_CONVOLUTION_OPENCL_FILTER 0
1242
+ #define CONFIG_CONVOLVE_FILTER 1
1243
+ #define CONFIG_COPY_FILTER 1
1244
+ #define CONFIG_COREIMAGE_FILTER 0
1245
+ #define CONFIG_CORR_FILTER 1
1246
+ #define CONFIG_COVER_RECT_FILTER 0
1247
+ #define CONFIG_CROP_FILTER 1
1248
+ #define CONFIG_CROPDETECT_FILTER 0
1249
+ #define CONFIG_CUE_FILTER 1
1250
+ #define CONFIG_CURVES_FILTER 1
1251
+ #define CONFIG_DATASCOPE_FILTER 1
1252
+ #define CONFIG_DBLUR_FILTER 1
1253
+ #define CONFIG_DCTDNOIZ_FILTER 1
1254
+ #define CONFIG_DEBAND_FILTER 1
1255
+ #define CONFIG_DEBLOCK_FILTER 1
1256
+ #define CONFIG_DECIMATE_FILTER 1
1257
+ #define CONFIG_DECONVOLVE_FILTER 1
1258
+ #define CONFIG_DEDOT_FILTER 1
1259
+ #define CONFIG_DEFLATE_FILTER 1
1260
+ #define CONFIG_DEFLICKER_FILTER 1
1261
+ #define CONFIG_DEINTERLACE_QSV_FILTER 0
1262
+ #define CONFIG_DEINTERLACE_VAAPI_FILTER 0
1263
+ #define CONFIG_DEJUDDER_FILTER 1
1264
+ #define CONFIG_DELOGO_FILTER 0
1265
+ #define CONFIG_DENOISE_VAAPI_FILTER 0
1266
+ #define CONFIG_DERAIN_FILTER 1
1267
+ #define CONFIG_DESHAKE_FILTER 1
1268
+ #define CONFIG_DESHAKE_OPENCL_FILTER 0
1269
+ #define CONFIG_DESPILL_FILTER 1
1270
+ #define CONFIG_DETELECINE_FILTER 1
1271
+ #define CONFIG_DILATION_FILTER 1
1272
+ #define CONFIG_DILATION_OPENCL_FILTER 0
1273
+ #define CONFIG_DISPLACE_FILTER 1
1274
+ #define CONFIG_DNN_CLASSIFY_FILTER 1
1275
+ #define CONFIG_DNN_DETECT_FILTER 1
1276
+ #define CONFIG_DNN_PROCESSING_FILTER 1
1277
+ #define CONFIG_DOUBLEWEAVE_FILTER 1
1278
+ #define CONFIG_DRAWBOX_FILTER 1
1279
+ #define CONFIG_DRAWGRAPH_FILTER 1
1280
+ #define CONFIG_DRAWGRID_FILTER 1
1281
+ #define CONFIG_DRAWTEXT_FILTER 0
1282
+ #define CONFIG_EDGEDETECT_FILTER 1
1283
+ #define CONFIG_ELBG_FILTER 1
1284
+ #define CONFIG_ENTROPY_FILTER 1
1285
+ #define CONFIG_EPX_FILTER 1
1286
+ #define CONFIG_EQ_FILTER 0
1287
+ #define CONFIG_EROSION_FILTER 1
1288
+ #define CONFIG_EROSION_OPENCL_FILTER 0
1289
+ #define CONFIG_ESTDIF_FILTER 1
1290
+ #define CONFIG_EXPOSURE_FILTER 1
1291
+ #define CONFIG_EXTRACTPLANES_FILTER 1
1292
+ #define CONFIG_FADE_FILTER 1
1293
+ #define CONFIG_FEEDBACK_FILTER 1
1294
+ #define CONFIG_FFTDNOIZ_FILTER 1
1295
+ #define CONFIG_FFTFILT_FILTER 1
1296
+ #define CONFIG_FIELD_FILTER 1
1297
+ #define CONFIG_FIELDHINT_FILTER 1
1298
+ #define CONFIG_FIELDMATCH_FILTER 1
1299
+ #define CONFIG_FIELDORDER_FILTER 1
1300
+ #define CONFIG_FILLBORDERS_FILTER 1
1301
+ #define CONFIG_FIND_RECT_FILTER 0
1302
+ #define CONFIG_FLIP_VULKAN_FILTER 0
1303
+ #define CONFIG_FLOODFILL_FILTER 1
1304
+ #define CONFIG_FORMAT_FILTER 1
1305
+ #define CONFIG_FPS_FILTER 1
1306
+ #define CONFIG_FRAMEPACK_FILTER 1
1307
+ #define CONFIG_FRAMERATE_FILTER 1
1308
+ #define CONFIG_FRAMESTEP_FILTER 1
1309
+ #define CONFIG_FREEZEDETECT_FILTER 1
1310
+ #define CONFIG_FREEZEFRAMES_FILTER 1
1311
+ #define CONFIG_FREI0R_FILTER 0
1312
+ #define CONFIG_FSPP_FILTER 0
1313
+ #define CONFIG_GBLUR_FILTER 1
1314
+ #define CONFIG_GBLUR_VULKAN_FILTER 0
1315
+ #define CONFIG_GEQ_FILTER 1
1316
+ #define CONFIG_GRADFUN_FILTER 1
1317
+ #define CONFIG_GRAPHMONITOR_FILTER 1
1318
+ #define CONFIG_GRAYWORLD_FILTER 1
1319
+ #define CONFIG_GREYEDGE_FILTER 1
1320
+ #define CONFIG_GUIDED_FILTER 1
1321
+ #define CONFIG_HALDCLUT_FILTER 1
1322
+ #define CONFIG_HFLIP_FILTER 1
1323
+ #define CONFIG_HFLIP_VULKAN_FILTER 0
1324
+ #define CONFIG_HISTEQ_FILTER 0
1325
+ #define CONFIG_HISTOGRAM_FILTER 1
1326
+ #define CONFIG_HQDN3D_FILTER 0
1327
+ #define CONFIG_HQX_FILTER 1
1328
+ #define CONFIG_HSTACK_FILTER 1
1329
+ #define CONFIG_HSVHOLD_FILTER 1
1330
+ #define CONFIG_HSVKEY_FILTER 1
1331
+ #define CONFIG_HUE_FILTER 1
1332
+ #define CONFIG_HUESATURATION_FILTER 1
1333
+ #define CONFIG_HWDOWNLOAD_FILTER 1
1334
+ #define CONFIG_HWMAP_FILTER 1
1335
+ #define CONFIG_HWUPLOAD_FILTER 1
1336
+ #define CONFIG_HWUPLOAD_CUDA_FILTER 1
1337
+ #define CONFIG_HYSTERESIS_FILTER 1
1338
+ #define CONFIG_ICCDETECT_FILTER 0
1339
+ #define CONFIG_ICCGEN_FILTER 0
1340
+ #define CONFIG_IDENTITY_FILTER 1
1341
+ #define CONFIG_IDET_FILTER 1
1342
+ #define CONFIG_IL_FILTER 1
1343
+ #define CONFIG_INFLATE_FILTER 1
1344
+ #define CONFIG_INTERLACE_FILTER 0
1345
+ #define CONFIG_INTERLEAVE_FILTER 1
1346
+ #define CONFIG_KERNDEINT_FILTER 0
1347
+ #define CONFIG_KIRSCH_FILTER 1
1348
+ #define CONFIG_LAGFUN_FILTER 1
1349
+ #define CONFIG_LATENCY_FILTER 1
1350
+ #define CONFIG_LENSCORRECTION_FILTER 1
1351
+ #define CONFIG_LENSFUN_FILTER 0
1352
+ #define CONFIG_LIBPLACEBO_FILTER 0
1353
+ #define CONFIG_LIBVMAF_FILTER 0
1354
+ #define CONFIG_LIMITDIFF_FILTER 1
1355
+ #define CONFIG_LIMITER_FILTER 1
1356
+ #define CONFIG_LOOP_FILTER 1
1357
+ #define CONFIG_LUMAKEY_FILTER 1
1358
+ #define CONFIG_LUT_FILTER 1
1359
+ #define CONFIG_LUT1D_FILTER 1
1360
+ #define CONFIG_LUT2_FILTER 1
1361
+ #define CONFIG_LUT3D_FILTER 1
1362
+ #define CONFIG_LUTRGB_FILTER 1
1363
+ #define CONFIG_LUTYUV_FILTER 1
1364
+ #define CONFIG_MASKEDCLAMP_FILTER 1
1365
+ #define CONFIG_MASKEDMAX_FILTER 1
1366
+ #define CONFIG_MASKEDMERGE_FILTER 1
1367
+ #define CONFIG_MASKEDMIN_FILTER 1
1368
+ #define CONFIG_MASKEDTHRESHOLD_FILTER 1
1369
+ #define CONFIG_MASKFUN_FILTER 1
1370
+ #define CONFIG_MCDEINT_FILTER 0
1371
+ #define CONFIG_MEDIAN_FILTER 1
1372
+ #define CONFIG_MERGEPLANES_FILTER 1
1373
+ #define CONFIG_MESTIMATE_FILTER 1
1374
+ #define CONFIG_METADATA_FILTER 1
1375
+ #define CONFIG_MIDEQUALIZER_FILTER 1
1376
+ #define CONFIG_MINTERPOLATE_FILTER 1
1377
+ #define CONFIG_MIX_FILTER 1
1378
+ #define CONFIG_MONOCHROME_FILTER 1
1379
+ #define CONFIG_MORPHO_FILTER 1
1380
+ #define CONFIG_MPDECIMATE_FILTER 0
1381
+ #define CONFIG_MSAD_FILTER 1
1382
+ #define CONFIG_MULTIPLY_FILTER 1
1383
+ #define CONFIG_NEGATE_FILTER 1
1384
+ #define CONFIG_NLMEANS_FILTER 1
1385
+ #define CONFIG_NLMEANS_OPENCL_FILTER 0
1386
+ #define CONFIG_NLMEANS_VULKAN_FILTER 0
1387
+ #define CONFIG_NNEDI_FILTER 0
1388
+ #define CONFIG_NOFORMAT_FILTER 1
1389
+ #define CONFIG_NOISE_FILTER 1
1390
+ #define CONFIG_NORMALIZE_FILTER 1
1391
+ #define CONFIG_NULL_FILTER 1
1392
+ #define CONFIG_OCR_FILTER 0
1393
+ #define CONFIG_OCV_FILTER 0
1394
+ #define CONFIG_OSCILLOSCOPE_FILTER 1
1395
+ #define CONFIG_OVERLAY_FILTER 1
1396
+ #define CONFIG_OVERLAY_OPENCL_FILTER 0
1397
+ #define CONFIG_OVERLAY_QSV_FILTER 0
1398
+ #define CONFIG_OVERLAY_VAAPI_FILTER 0
1399
+ #define CONFIG_OVERLAY_VULKAN_FILTER 0
1400
+ #define CONFIG_OVERLAY_CUDA_FILTER 1
1401
+ #define CONFIG_OWDENOISE_FILTER 0
1402
+ #define CONFIG_PAD_FILTER 1
1403
+ #define CONFIG_PAD_OPENCL_FILTER 0
1404
+ #define CONFIG_PALETTEGEN_FILTER 1
1405
+ #define CONFIG_PALETTEUSE_FILTER 1
1406
+ #define CONFIG_PERMS_FILTER 1
1407
+ #define CONFIG_PERSPECTIVE_FILTER 0
1408
+ #define CONFIG_PHASE_FILTER 0
1409
+ #define CONFIG_PHOTOSENSITIVITY_FILTER 1
1410
+ #define CONFIG_PIXDESCTEST_FILTER 1
1411
+ #define CONFIG_PIXELIZE_FILTER 1
1412
+ #define CONFIG_PIXSCOPE_FILTER 1
1413
+ #define CONFIG_PP_FILTER 0
1414
+ #define CONFIG_PP7_FILTER 0
1415
+ #define CONFIG_PREMULTIPLY_FILTER 1
1416
+ #define CONFIG_PREWITT_FILTER 1
1417
+ #define CONFIG_PREWITT_OPENCL_FILTER 0
1418
+ #define CONFIG_PROCAMP_VAAPI_FILTER 0
1419
+ #define CONFIG_PROGRAM_OPENCL_FILTER 0
1420
+ #define CONFIG_PSEUDOCOLOR_FILTER 1
1421
+ #define CONFIG_PSNR_FILTER 1
1422
+ #define CONFIG_PULLUP_FILTER 0
1423
+ #define CONFIG_QP_FILTER 1
1424
+ #define CONFIG_RANDOM_FILTER 1
1425
+ #define CONFIG_READEIA608_FILTER 1
1426
+ #define CONFIG_READVITC_FILTER 1
1427
+ #define CONFIG_REALTIME_FILTER 1
1428
+ #define CONFIG_REMAP_FILTER 1
1429
+ #define CONFIG_REMAP_OPENCL_FILTER 0
1430
+ #define CONFIG_REMOVEGRAIN_FILTER 1
1431
+ #define CONFIG_REMOVELOGO_FILTER 1
1432
+ #define CONFIG_REPEATFIELDS_FILTER 0
1433
+ #define CONFIG_REVERSE_FILTER 1
1434
+ #define CONFIG_RGBASHIFT_FILTER 1
1435
+ #define CONFIG_ROBERTS_FILTER 1
1436
+ #define CONFIG_ROBERTS_OPENCL_FILTER 0
1437
+ #define CONFIG_ROTATE_FILTER 1
1438
+ #define CONFIG_SAB_FILTER 0
1439
+ #define CONFIG_SCALE_FILTER 1
1440
+ #define CONFIG_SCALE_CUDA_FILTER 1
1441
+ #define CONFIG_SCALE_NPP_FILTER 1
1442
+ #define CONFIG_SCALE_QSV_FILTER 0
1443
+ #define CONFIG_SCALE_VAAPI_FILTER 0
1444
+ #define CONFIG_SCALE_VT_FILTER 0
1445
+ #define CONFIG_SCALE_VULKAN_FILTER 0
1446
+ #define CONFIG_SCALE2REF_FILTER 1
1447
+ #define CONFIG_SCALE2REF_NPP_FILTER 1
1448
+ #define CONFIG_SCDET_FILTER 1
1449
+ #define CONFIG_SCHARR_FILTER 1
1450
+ #define CONFIG_SCROLL_FILTER 1
1451
+ #define CONFIG_SEGMENT_FILTER 1
1452
+ #define CONFIG_SELECT_FILTER 1
1453
+ #define CONFIG_SELECTIVECOLOR_FILTER 1
1454
+ #define CONFIG_SENDCMD_FILTER 1
1455
+ #define CONFIG_SEPARATEFIELDS_FILTER 1
1456
+ #define CONFIG_SETDAR_FILTER 1
1457
+ #define CONFIG_SETFIELD_FILTER 1
1458
+ #define CONFIG_SETPARAMS_FILTER 1
1459
+ #define CONFIG_SETPTS_FILTER 1
1460
+ #define CONFIG_SETRANGE_FILTER 1
1461
+ #define CONFIG_SETSAR_FILTER 1
1462
+ #define CONFIG_SETTB_FILTER 1
1463
+ #define CONFIG_SHARPEN_NPP_FILTER 1
1464
+ #define CONFIG_SHARPNESS_VAAPI_FILTER 0
1465
+ #define CONFIG_SHEAR_FILTER 1
1466
+ #define CONFIG_SHOWINFO_FILTER 1
1467
+ #define CONFIG_SHOWPALETTE_FILTER 1
1468
+ #define CONFIG_SHUFFLEFRAMES_FILTER 1
1469
+ #define CONFIG_SHUFFLEPIXELS_FILTER 1
1470
+ #define CONFIG_SHUFFLEPLANES_FILTER 1
1471
+ #define CONFIG_SIDEDATA_FILTER 1
1472
+ #define CONFIG_SIGNALSTATS_FILTER 1
1473
+ #define CONFIG_SIGNATURE_FILTER 0
1474
+ #define CONFIG_SITI_FILTER 1
1475
+ #define CONFIG_SMARTBLUR_FILTER 0
1476
+ #define CONFIG_SOBEL_FILTER 1
1477
+ #define CONFIG_SOBEL_OPENCL_FILTER 0
1478
+ #define CONFIG_SPLIT_FILTER 1
1479
+ #define CONFIG_SPP_FILTER 0
1480
+ #define CONFIG_SR_FILTER 1
1481
+ #define CONFIG_SSIM_FILTER 1
1482
+ #define CONFIG_SSIM360_FILTER 1
1483
+ #define CONFIG_STEREO3D_FILTER 0
1484
+ #define CONFIG_STREAMSELECT_FILTER 1
1485
+ #define CONFIG_SUBTITLES_FILTER 0
1486
+ #define CONFIG_SUPER2XSAI_FILTER 0
1487
+ #define CONFIG_SWAPRECT_FILTER 1
1488
+ #define CONFIG_SWAPUV_FILTER 1
1489
+ #define CONFIG_TBLEND_FILTER 1
1490
+ #define CONFIG_TELECINE_FILTER 1
1491
+ #define CONFIG_THISTOGRAM_FILTER 1
1492
+ #define CONFIG_THRESHOLD_FILTER 1
1493
+ #define CONFIG_THUMBNAIL_FILTER 1
1494
+ #define CONFIG_THUMBNAIL_CUDA_FILTER 1
1495
+ #define CONFIG_TILE_FILTER 1
1496
+ #define CONFIG_TINTERLACE_FILTER 0
1497
+ #define CONFIG_TLUT2_FILTER 1
1498
+ #define CONFIG_TMEDIAN_FILTER 1
1499
+ #define CONFIG_TMIDEQUALIZER_FILTER 1
1500
+ #define CONFIG_TMIX_FILTER 1
1501
+ #define CONFIG_TONEMAP_FILTER 1
1502
+ #define CONFIG_TONEMAP_OPENCL_FILTER 0
1503
+ #define CONFIG_TONEMAP_VAAPI_FILTER 0
1504
+ #define CONFIG_TPAD_FILTER 1
1505
+ #define CONFIG_TRANSPOSE_FILTER 1
1506
+ #define CONFIG_TRANSPOSE_NPP_FILTER 1
1507
+ #define CONFIG_TRANSPOSE_OPENCL_FILTER 0
1508
+ #define CONFIG_TRANSPOSE_VAAPI_FILTER 0
1509
+ #define CONFIG_TRANSPOSE_VT_FILTER 0
1510
+ #define CONFIG_TRANSPOSE_VULKAN_FILTER 0
1511
+ #define CONFIG_TRIM_FILTER 1
1512
+ #define CONFIG_UNPREMULTIPLY_FILTER 1
1513
+ #define CONFIG_UNSHARP_FILTER 1
1514
+ #define CONFIG_UNSHARP_OPENCL_FILTER 0
1515
+ #define CONFIG_UNTILE_FILTER 1
1516
+ #define CONFIG_USPP_FILTER 0
1517
+ #define CONFIG_V360_FILTER 1
1518
+ #define CONFIG_VAGUEDENOISER_FILTER 0
1519
+ #define CONFIG_VARBLUR_FILTER 1
1520
+ #define CONFIG_VECTORSCOPE_FILTER 1
1521
+ #define CONFIG_VFLIP_FILTER 1
1522
+ #define CONFIG_VFLIP_VULKAN_FILTER 0
1523
+ #define CONFIG_VFRDET_FILTER 1
1524
+ #define CONFIG_VIBRANCE_FILTER 1
1525
+ #define CONFIG_VIDSTABDETECT_FILTER 0
1526
+ #define CONFIG_VIDSTABTRANSFORM_FILTER 0
1527
+ #define CONFIG_VIF_FILTER 1
1528
+ #define CONFIG_VIGNETTE_FILTER 1
1529
+ #define CONFIG_VMAFMOTION_FILTER 1
1530
+ #define CONFIG_VPP_QSV_FILTER 0
1531
+ #define CONFIG_VSTACK_FILTER 1
1532
+ #define CONFIG_W3FDIF_FILTER 1
1533
+ #define CONFIG_WAVEFORM_FILTER 1
1534
+ #define CONFIG_WEAVE_FILTER 1
1535
+ #define CONFIG_XBR_FILTER 1
1536
+ #define CONFIG_XCORRELATE_FILTER 1
1537
+ #define CONFIG_XFADE_FILTER 1
1538
+ #define CONFIG_XFADE_OPENCL_FILTER 0
1539
+ #define CONFIG_XFADE_VULKAN_FILTER 0
1540
+ #define CONFIG_XMEDIAN_FILTER 1
1541
+ #define CONFIG_XSTACK_FILTER 1
1542
+ #define CONFIG_YADIF_FILTER 1
1543
+ #define CONFIG_YADIF_CUDA_FILTER 1
1544
+ #define CONFIG_YADIF_VIDEOTOOLBOX_FILTER 0
1545
+ #define CONFIG_YAEPBLUR_FILTER 1
1546
+ #define CONFIG_ZMQ_FILTER 0
1547
+ #define CONFIG_ZOOMPAN_FILTER 1
1548
+ #define CONFIG_ZSCALE_FILTER 0
1549
+ #define CONFIG_HSTACK_VAAPI_FILTER 0
1550
+ #define CONFIG_VSTACK_VAAPI_FILTER 0
1551
+ #define CONFIG_XSTACK_VAAPI_FILTER 0
1552
+ #define CONFIG_HSTACK_QSV_FILTER 0
1553
+ #define CONFIG_VSTACK_QSV_FILTER 0
1554
+ #define CONFIG_XSTACK_QSV_FILTER 0
1555
+ #define CONFIG_ALLRGB_FILTER 1
1556
+ #define CONFIG_ALLYUV_FILTER 1
1557
+ #define CONFIG_CELLAUTO_FILTER 1
1558
+ #define CONFIG_COLOR_FILTER 1
1559
+ #define CONFIG_COLOR_VULKAN_FILTER 0
1560
+ #define CONFIG_COLORCHART_FILTER 1
1561
+ #define CONFIG_COLORSPECTRUM_FILTER 1
1562
+ #define CONFIG_COREIMAGESRC_FILTER 0
1563
+ #define CONFIG_DDAGRAB_FILTER 0
1564
+ #define CONFIG_FREI0R_SRC_FILTER 0
1565
+ #define CONFIG_GRADIENTS_FILTER 1
1566
+ #define CONFIG_HALDCLUTSRC_FILTER 1
1567
+ #define CONFIG_LIFE_FILTER 1
1568
+ #define CONFIG_MANDELBROT_FILTER 1
1569
+ #define CONFIG_MPTESTSRC_FILTER 0
1570
+ #define CONFIG_NULLSRC_FILTER 1
1571
+ #define CONFIG_OPENCLSRC_FILTER 0
1572
+ #define CONFIG_PAL75BARS_FILTER 1
1573
+ #define CONFIG_PAL100BARS_FILTER 1
1574
+ #define CONFIG_RGBTESTSRC_FILTER 1
1575
+ #define CONFIG_SIERPINSKI_FILTER 1
1576
+ #define CONFIG_SMPTEBARS_FILTER 1
1577
+ #define CONFIG_SMPTEHDBARS_FILTER 1
1578
+ #define CONFIG_TESTSRC_FILTER 1
1579
+ #define CONFIG_TESTSRC2_FILTER 1
1580
+ #define CONFIG_YUVTESTSRC_FILTER 1
1581
+ #define CONFIG_ZONEPLATE_FILTER 1
1582
+ #define CONFIG_NULLSINK_FILTER 1
1583
+ #define CONFIG_A3DSCOPE_FILTER 1
1584
+ #define CONFIG_ABITSCOPE_FILTER 1
1585
+ #define CONFIG_ADRAWGRAPH_FILTER 1
1586
+ #define CONFIG_AGRAPHMONITOR_FILTER 1
1587
+ #define CONFIG_AHISTOGRAM_FILTER 1
1588
+ #define CONFIG_APHASEMETER_FILTER 1
1589
+ #define CONFIG_AVECTORSCOPE_FILTER 1
1590
+ #define CONFIG_CONCAT_FILTER 1
1591
+ #define CONFIG_SHOWCQT_FILTER 1
1592
+ #define CONFIG_SHOWCWT_FILTER 1
1593
+ #define CONFIG_SHOWFREQS_FILTER 1
1594
+ #define CONFIG_SHOWSPATIAL_FILTER 1
1595
+ #define CONFIG_SHOWSPECTRUM_FILTER 1
1596
+ #define CONFIG_SHOWSPECTRUMPIC_FILTER 1
1597
+ #define CONFIG_SHOWVOLUME_FILTER 1
1598
+ #define CONFIG_SHOWWAVES_FILTER 1
1599
+ #define CONFIG_SHOWWAVESPIC_FILTER 1
1600
+ #define CONFIG_SPECTRUMSYNTH_FILTER 1
1601
+ #define CONFIG_AVSYNCTEST_FILTER 1
1602
+ #define CONFIG_AMOVIE_FILTER 1
1603
+ #define CONFIG_MOVIE_FILTER 1
1604
+ #define CONFIG_AFIFO_FILTER 1
1605
+ #define CONFIG_FIFO_FILTER 1
1606
+ #define CONFIG_AA_DEMUXER 1
1607
+ #define CONFIG_AAC_DEMUXER 1
1608
+ #define CONFIG_AAX_DEMUXER 1
1609
+ #define CONFIG_AC3_DEMUXER 1
1610
+ #define CONFIG_AC4_DEMUXER 1
1611
+ #define CONFIG_ACE_DEMUXER 1
1612
+ #define CONFIG_ACM_DEMUXER 1
1613
+ #define CONFIG_ACT_DEMUXER 1
1614
+ #define CONFIG_ADF_DEMUXER 1
1615
+ #define CONFIG_ADP_DEMUXER 1
1616
+ #define CONFIG_ADS_DEMUXER 1
1617
+ #define CONFIG_ADX_DEMUXER 1
1618
+ #define CONFIG_AEA_DEMUXER 1
1619
+ #define CONFIG_AFC_DEMUXER 1
1620
+ #define CONFIG_AIFF_DEMUXER 1
1621
+ #define CONFIG_AIX_DEMUXER 1
1622
+ #define CONFIG_ALP_DEMUXER 1
1623
+ #define CONFIG_AMR_DEMUXER 1
1624
+ #define CONFIG_AMRNB_DEMUXER 1
1625
+ #define CONFIG_AMRWB_DEMUXER 1
1626
+ #define CONFIG_ANM_DEMUXER 1
1627
+ #define CONFIG_APAC_DEMUXER 1
1628
+ #define CONFIG_APC_DEMUXER 1
1629
+ #define CONFIG_APE_DEMUXER 1
1630
+ #define CONFIG_APM_DEMUXER 1
1631
+ #define CONFIG_APNG_DEMUXER 1
1632
+ #define CONFIG_APTX_DEMUXER 1
1633
+ #define CONFIG_APTX_HD_DEMUXER 1
1634
+ #define CONFIG_AQTITLE_DEMUXER 1
1635
+ #define CONFIG_ARGO_ASF_DEMUXER 1
1636
+ #define CONFIG_ARGO_BRP_DEMUXER 1
1637
+ #define CONFIG_ARGO_CVG_DEMUXER 1
1638
+ #define CONFIG_ASF_DEMUXER 1
1639
+ #define CONFIG_ASF_O_DEMUXER 1
1640
+ #define CONFIG_ASS_DEMUXER 1
1641
+ #define CONFIG_AST_DEMUXER 1
1642
+ #define CONFIG_AU_DEMUXER 1
1643
+ #define CONFIG_AV1_DEMUXER 1
1644
+ #define CONFIG_AVI_DEMUXER 1
1645
+ #define CONFIG_AVISYNTH_DEMUXER 0
1646
+ #define CONFIG_AVR_DEMUXER 1
1647
+ #define CONFIG_AVS_DEMUXER 1
1648
+ #define CONFIG_AVS2_DEMUXER 1
1649
+ #define CONFIG_AVS3_DEMUXER 1
1650
+ #define CONFIG_BETHSOFTVID_DEMUXER 1
1651
+ #define CONFIG_BFI_DEMUXER 1
1652
+ #define CONFIG_BINTEXT_DEMUXER 1
1653
+ #define CONFIG_BINK_DEMUXER 1
1654
+ #define CONFIG_BINKA_DEMUXER 1
1655
+ #define CONFIG_BIT_DEMUXER 1
1656
+ #define CONFIG_BITPACKED_DEMUXER 1
1657
+ #define CONFIG_BMV_DEMUXER 1
1658
+ #define CONFIG_BFSTM_DEMUXER 1
1659
+ #define CONFIG_BRSTM_DEMUXER 1
1660
+ #define CONFIG_BOA_DEMUXER 1
1661
+ #define CONFIG_BONK_DEMUXER 1
1662
+ #define CONFIG_C93_DEMUXER 1
1663
+ #define CONFIG_CAF_DEMUXER 1
1664
+ #define CONFIG_CAVSVIDEO_DEMUXER 1
1665
+ #define CONFIG_CDG_DEMUXER 1
1666
+ #define CONFIG_CDXL_DEMUXER 1
1667
+ #define CONFIG_CINE_DEMUXER 1
1668
+ #define CONFIG_CODEC2_DEMUXER 1
1669
+ #define CONFIG_CODEC2RAW_DEMUXER 1
1670
+ #define CONFIG_CONCAT_DEMUXER 1
1671
+ #define CONFIG_DASH_DEMUXER 0
1672
+ #define CONFIG_DATA_DEMUXER 1
1673
+ #define CONFIG_DAUD_DEMUXER 1
1674
+ #define CONFIG_DCSTR_DEMUXER 1
1675
+ #define CONFIG_DERF_DEMUXER 1
1676
+ #define CONFIG_DFA_DEMUXER 1
1677
+ #define CONFIG_DFPWM_DEMUXER 1
1678
+ #define CONFIG_DHAV_DEMUXER 1
1679
+ #define CONFIG_DIRAC_DEMUXER 1
1680
+ #define CONFIG_DNXHD_DEMUXER 1
1681
+ #define CONFIG_DSF_DEMUXER 1
1682
+ #define CONFIG_DSICIN_DEMUXER 1
1683
+ #define CONFIG_DSS_DEMUXER 1
1684
+ #define CONFIG_DTS_DEMUXER 1
1685
+ #define CONFIG_DTSHD_DEMUXER 1
1686
+ #define CONFIG_DV_DEMUXER 1
1687
+ #define CONFIG_DVBSUB_DEMUXER 1
1688
+ #define CONFIG_DVBTXT_DEMUXER 1
1689
+ #define CONFIG_DXA_DEMUXER 1
1690
+ #define CONFIG_EA_DEMUXER 1
1691
+ #define CONFIG_EA_CDATA_DEMUXER 1
1692
+ #define CONFIG_EAC3_DEMUXER 1
1693
+ #define CONFIG_EPAF_DEMUXER 1
1694
+ #define CONFIG_EVC_DEMUXER 1
1695
+ #define CONFIG_FFMETADATA_DEMUXER 1
1696
+ #define CONFIG_FILMSTRIP_DEMUXER 1
1697
+ #define CONFIG_FITS_DEMUXER 1
1698
+ #define CONFIG_FLAC_DEMUXER 1
1699
+ #define CONFIG_FLIC_DEMUXER 1
1700
+ #define CONFIG_FLV_DEMUXER 1
1701
+ #define CONFIG_LIVE_FLV_DEMUXER 1
1702
+ #define CONFIG_FOURXM_DEMUXER 1
1703
+ #define CONFIG_FRM_DEMUXER 1
1704
+ #define CONFIG_FSB_DEMUXER 1
1705
+ #define CONFIG_FWSE_DEMUXER 1
1706
+ #define CONFIG_G722_DEMUXER 1
1707
+ #define CONFIG_G723_1_DEMUXER 1
1708
+ #define CONFIG_G726_DEMUXER 1
1709
+ #define CONFIG_G726LE_DEMUXER 1
1710
+ #define CONFIG_G729_DEMUXER 1
1711
+ #define CONFIG_GDV_DEMUXER 1
1712
+ #define CONFIG_GENH_DEMUXER 1
1713
+ #define CONFIG_GIF_DEMUXER 1
1714
+ #define CONFIG_GSM_DEMUXER 1
1715
+ #define CONFIG_GXF_DEMUXER 1
1716
+ #define CONFIG_H261_DEMUXER 1
1717
+ #define CONFIG_H263_DEMUXER 1
1718
+ #define CONFIG_H264_DEMUXER 1
1719
+ #define CONFIG_HCA_DEMUXER 1
1720
+ #define CONFIG_HCOM_DEMUXER 1
1721
+ #define CONFIG_HEVC_DEMUXER 1
1722
+ #define CONFIG_HLS_DEMUXER 1
1723
+ #define CONFIG_HNM_DEMUXER 1
1724
+ #define CONFIG_ICO_DEMUXER 1
1725
+ #define CONFIG_IDCIN_DEMUXER 1
1726
+ #define CONFIG_IDF_DEMUXER 1
1727
+ #define CONFIG_IFF_DEMUXER 1
1728
+ #define CONFIG_IFV_DEMUXER 1
1729
+ #define CONFIG_ILBC_DEMUXER 1
1730
+ #define CONFIG_IMAGE2_DEMUXER 1
1731
+ #define CONFIG_IMAGE2PIPE_DEMUXER 1
1732
+ #define CONFIG_IMAGE2_ALIAS_PIX_DEMUXER 1
1733
+ #define CONFIG_IMAGE2_BRENDER_PIX_DEMUXER 1
1734
+ #define CONFIG_IMF_DEMUXER 0
1735
+ #define CONFIG_INGENIENT_DEMUXER 1
1736
+ #define CONFIG_IPMOVIE_DEMUXER 1
1737
+ #define CONFIG_IPU_DEMUXER 1
1738
+ #define CONFIG_IRCAM_DEMUXER 1
1739
+ #define CONFIG_ISS_DEMUXER 1
1740
+ #define CONFIG_IV8_DEMUXER 1
1741
+ #define CONFIG_IVF_DEMUXER 1
1742
+ #define CONFIG_IVR_DEMUXER 1
1743
+ #define CONFIG_JACOSUB_DEMUXER 1
1744
+ #define CONFIG_JV_DEMUXER 1
1745
+ #define CONFIG_JPEGXL_ANIM_DEMUXER 1
1746
+ #define CONFIG_KUX_DEMUXER 1
1747
+ #define CONFIG_KVAG_DEMUXER 1
1748
+ #define CONFIG_LAF_DEMUXER 1
1749
+ #define CONFIG_LMLM4_DEMUXER 1
1750
+ #define CONFIG_LOAS_DEMUXER 1
1751
+ #define CONFIG_LUODAT_DEMUXER 1
1752
+ #define CONFIG_LRC_DEMUXER 1
1753
+ #define CONFIG_LVF_DEMUXER 1
1754
+ #define CONFIG_LXF_DEMUXER 1
1755
+ #define CONFIG_M4V_DEMUXER 1
1756
+ #define CONFIG_MCA_DEMUXER 1
1757
+ #define CONFIG_MCC_DEMUXER 1
1758
+ #define CONFIG_MATROSKA_DEMUXER 1
1759
+ #define CONFIG_MGSTS_DEMUXER 1
1760
+ #define CONFIG_MICRODVD_DEMUXER 1
1761
+ #define CONFIG_MJPEG_DEMUXER 1
1762
+ #define CONFIG_MJPEG_2000_DEMUXER 1
1763
+ #define CONFIG_MLP_DEMUXER 1
1764
+ #define CONFIG_MLV_DEMUXER 1
1765
+ #define CONFIG_MM_DEMUXER 1
1766
+ #define CONFIG_MMF_DEMUXER 1
1767
+ #define CONFIG_MODS_DEMUXER 1
1768
+ #define CONFIG_MOFLEX_DEMUXER 1
1769
+ #define CONFIG_MOV_DEMUXER 1
1770
+ #define CONFIG_MP3_DEMUXER 1
1771
+ #define CONFIG_MPC_DEMUXER 1
1772
+ #define CONFIG_MPC8_DEMUXER 1
1773
+ #define CONFIG_MPEGPS_DEMUXER 1
1774
+ #define CONFIG_MPEGTS_DEMUXER 1
1775
+ #define CONFIG_MPEGTSRAW_DEMUXER 1
1776
+ #define CONFIG_MPEGVIDEO_DEMUXER 1
1777
+ #define CONFIG_MPJPEG_DEMUXER 1
1778
+ #define CONFIG_MPL2_DEMUXER 1
1779
+ #define CONFIG_MPSUB_DEMUXER 1
1780
+ #define CONFIG_MSF_DEMUXER 1
1781
+ #define CONFIG_MSNWC_TCP_DEMUXER 1
1782
+ #define CONFIG_MSP_DEMUXER 1
1783
+ #define CONFIG_MTAF_DEMUXER 1
1784
+ #define CONFIG_MTV_DEMUXER 1
1785
+ #define CONFIG_MUSX_DEMUXER 1
1786
+ #define CONFIG_MV_DEMUXER 1
1787
+ #define CONFIG_MVI_DEMUXER 1
1788
+ #define CONFIG_MXF_DEMUXER 1
1789
+ #define CONFIG_MXG_DEMUXER 1
1790
+ #define CONFIG_NC_DEMUXER 1
1791
+ #define CONFIG_NISTSPHERE_DEMUXER 1
1792
+ #define CONFIG_NSP_DEMUXER 1
1793
+ #define CONFIG_NSV_DEMUXER 1
1794
+ #define CONFIG_NUT_DEMUXER 1
1795
+ #define CONFIG_NUV_DEMUXER 1
1796
+ #define CONFIG_OBU_DEMUXER 1
1797
+ #define CONFIG_OGG_DEMUXER 1
1798
+ #define CONFIG_OMA_DEMUXER 1
1799
+ #define CONFIG_OSQ_DEMUXER 1
1800
+ #define CONFIG_PAF_DEMUXER 1
1801
+ #define CONFIG_PCM_ALAW_DEMUXER 1
1802
+ #define CONFIG_PCM_MULAW_DEMUXER 1
1803
+ #define CONFIG_PCM_VIDC_DEMUXER 1
1804
+ #define CONFIG_PCM_F64BE_DEMUXER 1
1805
+ #define CONFIG_PCM_F64LE_DEMUXER 1
1806
+ #define CONFIG_PCM_F32BE_DEMUXER 1
1807
+ #define CONFIG_PCM_F32LE_DEMUXER 1
1808
+ #define CONFIG_PCM_S32BE_DEMUXER 1
1809
+ #define CONFIG_PCM_S32LE_DEMUXER 1
1810
+ #define CONFIG_PCM_S24BE_DEMUXER 1
1811
+ #define CONFIG_PCM_S24LE_DEMUXER 1
1812
+ #define CONFIG_PCM_S16BE_DEMUXER 1
1813
+ #define CONFIG_PCM_S16LE_DEMUXER 1
1814
+ #define CONFIG_PCM_S8_DEMUXER 1
1815
+ #define CONFIG_PCM_U32BE_DEMUXER 1
1816
+ #define CONFIG_PCM_U32LE_DEMUXER 1
1817
+ #define CONFIG_PCM_U24BE_DEMUXER 1
1818
+ #define CONFIG_PCM_U24LE_DEMUXER 1
1819
+ #define CONFIG_PCM_U16BE_DEMUXER 1
1820
+ #define CONFIG_PCM_U16LE_DEMUXER 1
1821
+ #define CONFIG_PCM_U8_DEMUXER 1
1822
+ #define CONFIG_PDV_DEMUXER 1
1823
+ #define CONFIG_PJS_DEMUXER 1
1824
+ #define CONFIG_PMP_DEMUXER 1
1825
+ #define CONFIG_PP_BNK_DEMUXER 1
1826
+ #define CONFIG_PVA_DEMUXER 1
1827
+ #define CONFIG_PVF_DEMUXER 1
1828
+ #define CONFIG_QCP_DEMUXER 1
1829
+ #define CONFIG_R3D_DEMUXER 1
1830
+ #define CONFIG_RAWVIDEO_DEMUXER 1
1831
+ #define CONFIG_REALTEXT_DEMUXER 1
1832
+ #define CONFIG_REDSPARK_DEMUXER 1
1833
+ #define CONFIG_RKA_DEMUXER 1
1834
+ #define CONFIG_RL2_DEMUXER 1
1835
+ #define CONFIG_RM_DEMUXER 1
1836
+ #define CONFIG_ROQ_DEMUXER 1
1837
+ #define CONFIG_RPL_DEMUXER 1
1838
+ #define CONFIG_RSD_DEMUXER 1
1839
+ #define CONFIG_RSO_DEMUXER 1
1840
+ #define CONFIG_RTP_DEMUXER 1
1841
+ #define CONFIG_RTSP_DEMUXER 1
1842
+ #define CONFIG_S337M_DEMUXER 1
1843
+ #define CONFIG_SAMI_DEMUXER 1
1844
+ #define CONFIG_SAP_DEMUXER 1
1845
+ #define CONFIG_SBC_DEMUXER 1
1846
+ #define CONFIG_SBG_DEMUXER 1
1847
+ #define CONFIG_SCC_DEMUXER 1
1848
+ #define CONFIG_SCD_DEMUXER 1
1849
+ #define CONFIG_SDNS_DEMUXER 1
1850
+ #define CONFIG_SDP_DEMUXER 1
1851
+ #define CONFIG_SDR2_DEMUXER 1
1852
+ #define CONFIG_SDS_DEMUXER 1
1853
+ #define CONFIG_SDX_DEMUXER 1
1854
+ #define CONFIG_SEGAFILM_DEMUXER 1
1855
+ #define CONFIG_SER_DEMUXER 1
1856
+ #define CONFIG_SGA_DEMUXER 1
1857
+ #define CONFIG_SHORTEN_DEMUXER 1
1858
+ #define CONFIG_SIFF_DEMUXER 1
1859
+ #define CONFIG_SIMBIOSIS_IMX_DEMUXER 1
1860
+ #define CONFIG_SLN_DEMUXER 1
1861
+ #define CONFIG_SMACKER_DEMUXER 1
1862
+ #define CONFIG_SMJPEG_DEMUXER 1
1863
+ #define CONFIG_SMUSH_DEMUXER 1
1864
+ #define CONFIG_SOL_DEMUXER 1
1865
+ #define CONFIG_SOX_DEMUXER 1
1866
+ #define CONFIG_SPDIF_DEMUXER 1
1867
+ #define CONFIG_SRT_DEMUXER 1
1868
+ #define CONFIG_STR_DEMUXER 1
1869
+ #define CONFIG_STL_DEMUXER 1
1870
+ #define CONFIG_SUBVIEWER1_DEMUXER 1
1871
+ #define CONFIG_SUBVIEWER_DEMUXER 1
1872
+ #define CONFIG_SUP_DEMUXER 1
1873
+ #define CONFIG_SVAG_DEMUXER 1
1874
+ #define CONFIG_SVS_DEMUXER 1
1875
+ #define CONFIG_SWF_DEMUXER 1
1876
+ #define CONFIG_TAK_DEMUXER 1
1877
+ #define CONFIG_TEDCAPTIONS_DEMUXER 1
1878
+ #define CONFIG_THP_DEMUXER 1
1879
+ #define CONFIG_THREEDOSTR_DEMUXER 1
1880
+ #define CONFIG_TIERTEXSEQ_DEMUXER 1
1881
+ #define CONFIG_TMV_DEMUXER 1
1882
+ #define CONFIG_TRUEHD_DEMUXER 1
1883
+ #define CONFIG_TTA_DEMUXER 1
1884
+ #define CONFIG_TXD_DEMUXER 1
1885
+ #define CONFIG_TTY_DEMUXER 1
1886
+ #define CONFIG_TY_DEMUXER 1
1887
+ #define CONFIG_V210_DEMUXER 1
1888
+ #define CONFIG_V210X_DEMUXER 1
1889
+ #define CONFIG_VAG_DEMUXER 1
1890
+ #define CONFIG_VC1_DEMUXER 1
1891
+ #define CONFIG_VC1T_DEMUXER 1
1892
+ #define CONFIG_VIVIDAS_DEMUXER 1
1893
+ #define CONFIG_VIVO_DEMUXER 1
1894
+ #define CONFIG_VMD_DEMUXER 1
1895
+ #define CONFIG_VOBSUB_DEMUXER 1
1896
+ #define CONFIG_VOC_DEMUXER 1
1897
+ #define CONFIG_VPK_DEMUXER 1
1898
+ #define CONFIG_VPLAYER_DEMUXER 1
1899
+ #define CONFIG_VQF_DEMUXER 1
1900
+ #define CONFIG_VVC_DEMUXER 1
1901
+ #define CONFIG_W64_DEMUXER 1
1902
+ #define CONFIG_WADY_DEMUXER 1
1903
+ #define CONFIG_WAVARC_DEMUXER 1
1904
+ #define CONFIG_WAV_DEMUXER 1
1905
+ #define CONFIG_WC3_DEMUXER 1
1906
+ #define CONFIG_WEBM_DASH_MANIFEST_DEMUXER 1
1907
+ #define CONFIG_WEBVTT_DEMUXER 1
1908
+ #define CONFIG_WSAUD_DEMUXER 1
1909
+ #define CONFIG_WSD_DEMUXER 1
1910
+ #define CONFIG_WSVQA_DEMUXER 1
1911
+ #define CONFIG_WTV_DEMUXER 1
1912
+ #define CONFIG_WVE_DEMUXER 1
1913
+ #define CONFIG_WV_DEMUXER 1
1914
+ #define CONFIG_XA_DEMUXER 1
1915
+ #define CONFIG_XBIN_DEMUXER 1
1916
+ #define CONFIG_XMD_DEMUXER 1
1917
+ #define CONFIG_XMV_DEMUXER 1
1918
+ #define CONFIG_XVAG_DEMUXER 1
1919
+ #define CONFIG_XWMA_DEMUXER 1
1920
+ #define CONFIG_YOP_DEMUXER 1
1921
+ #define CONFIG_YUV4MPEGPIPE_DEMUXER 1
1922
+ #define CONFIG_IMAGE_BMP_PIPE_DEMUXER 1
1923
+ #define CONFIG_IMAGE_CRI_PIPE_DEMUXER 1
1924
+ #define CONFIG_IMAGE_DDS_PIPE_DEMUXER 1
1925
+ #define CONFIG_IMAGE_DPX_PIPE_DEMUXER 1
1926
+ #define CONFIG_IMAGE_EXR_PIPE_DEMUXER 1
1927
+ #define CONFIG_IMAGE_GEM_PIPE_DEMUXER 1
1928
+ #define CONFIG_IMAGE_GIF_PIPE_DEMUXER 1
1929
+ #define CONFIG_IMAGE_HDR_PIPE_DEMUXER 1
1930
+ #define CONFIG_IMAGE_J2K_PIPE_DEMUXER 1
1931
+ #define CONFIG_IMAGE_JPEG_PIPE_DEMUXER 1
1932
+ #define CONFIG_IMAGE_JPEGLS_PIPE_DEMUXER 1
1933
+ #define CONFIG_IMAGE_JPEGXL_PIPE_DEMUXER 1
1934
+ #define CONFIG_IMAGE_PAM_PIPE_DEMUXER 1
1935
+ #define CONFIG_IMAGE_PBM_PIPE_DEMUXER 1
1936
+ #define CONFIG_IMAGE_PCX_PIPE_DEMUXER 1
1937
+ #define CONFIG_IMAGE_PFM_PIPE_DEMUXER 1
1938
+ #define CONFIG_IMAGE_PGMYUV_PIPE_DEMUXER 1
1939
+ #define CONFIG_IMAGE_PGM_PIPE_DEMUXER 1
1940
+ #define CONFIG_IMAGE_PGX_PIPE_DEMUXER 1
1941
+ #define CONFIG_IMAGE_PHM_PIPE_DEMUXER 1
1942
+ #define CONFIG_IMAGE_PHOTOCD_PIPE_DEMUXER 1
1943
+ #define CONFIG_IMAGE_PICTOR_PIPE_DEMUXER 1
1944
+ #define CONFIG_IMAGE_PNG_PIPE_DEMUXER 1
1945
+ #define CONFIG_IMAGE_PPM_PIPE_DEMUXER 1
1946
+ #define CONFIG_IMAGE_PSD_PIPE_DEMUXER 1
1947
+ #define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 1
1948
+ #define CONFIG_IMAGE_QOI_PIPE_DEMUXER 1
1949
+ #define CONFIG_IMAGE_SGI_PIPE_DEMUXER 1
1950
+ #define CONFIG_IMAGE_SVG_PIPE_DEMUXER 1
1951
+ #define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 1
1952
+ #define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 1
1953
+ #define CONFIG_IMAGE_VBN_PIPE_DEMUXER 1
1954
+ #define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 1
1955
+ #define CONFIG_IMAGE_XBM_PIPE_DEMUXER 1
1956
+ #define CONFIG_IMAGE_XPM_PIPE_DEMUXER 1
1957
+ #define CONFIG_IMAGE_XWD_PIPE_DEMUXER 1
1958
+ #define CONFIG_LIBGME_DEMUXER 0
1959
+ #define CONFIG_LIBMODPLUG_DEMUXER 0
1960
+ #define CONFIG_LIBOPENMPT_DEMUXER 0
1961
+ #define CONFIG_VAPOURSYNTH_DEMUXER 0
1962
+ #define CONFIG_A64_MUXER 1
1963
+ #define CONFIG_AC3_MUXER 1
1964
+ #define CONFIG_AC4_MUXER 1
1965
+ #define CONFIG_ADTS_MUXER 1
1966
+ #define CONFIG_ADX_MUXER 1
1967
+ #define CONFIG_AIFF_MUXER 1
1968
+ #define CONFIG_ALP_MUXER 1
1969
+ #define CONFIG_AMR_MUXER 1
1970
+ #define CONFIG_AMV_MUXER 1
1971
+ #define CONFIG_APM_MUXER 1
1972
+ #define CONFIG_APNG_MUXER 1
1973
+ #define CONFIG_APTX_MUXER 1
1974
+ #define CONFIG_APTX_HD_MUXER 1
1975
+ #define CONFIG_ARGO_ASF_MUXER 1
1976
+ #define CONFIG_ARGO_CVG_MUXER 1
1977
+ #define CONFIG_ASF_MUXER 1
1978
+ #define CONFIG_ASS_MUXER 1
1979
+ #define CONFIG_AST_MUXER 1
1980
+ #define CONFIG_ASF_STREAM_MUXER 1
1981
+ #define CONFIG_AU_MUXER 1
1982
+ #define CONFIG_AVI_MUXER 1
1983
+ #define CONFIG_AVIF_MUXER 1
1984
+ #define CONFIG_AVM2_MUXER 1
1985
+ #define CONFIG_AVS2_MUXER 1
1986
+ #define CONFIG_AVS3_MUXER 1
1987
+ #define CONFIG_BIT_MUXER 1
1988
+ #define CONFIG_CAF_MUXER 1
1989
+ #define CONFIG_CAVSVIDEO_MUXER 1
1990
+ #define CONFIG_CODEC2_MUXER 1
1991
+ #define CONFIG_CODEC2RAW_MUXER 1
1992
+ #define CONFIG_CRC_MUXER 1
1993
+ #define CONFIG_DASH_MUXER 1
1994
+ #define CONFIG_DATA_MUXER 1
1995
+ #define CONFIG_DAUD_MUXER 1
1996
+ #define CONFIG_DFPWM_MUXER 1
1997
+ #define CONFIG_DIRAC_MUXER 1
1998
+ #define CONFIG_DNXHD_MUXER 1
1999
+ #define CONFIG_DTS_MUXER 1
2000
+ #define CONFIG_DV_MUXER 1
2001
+ #define CONFIG_EAC3_MUXER 1
2002
+ #define CONFIG_EVC_MUXER 1
2003
+ #define CONFIG_F4V_MUXER 1
2004
+ #define CONFIG_FFMETADATA_MUXER 1
2005
+ #define CONFIG_FIFO_MUXER 1
2006
+ #define CONFIG_FIFO_TEST_MUXER 1
2007
+ #define CONFIG_FILMSTRIP_MUXER 1
2008
+ #define CONFIG_FITS_MUXER 1
2009
+ #define CONFIG_FLAC_MUXER 1
2010
+ #define CONFIG_FLV_MUXER 1
2011
+ #define CONFIG_FRAMECRC_MUXER 1
2012
+ #define CONFIG_FRAMEHASH_MUXER 1
2013
+ #define CONFIG_FRAMEMD5_MUXER 1
2014
+ #define CONFIG_G722_MUXER 1
2015
+ #define CONFIG_G723_1_MUXER 1
2016
+ #define CONFIG_G726_MUXER 1
2017
+ #define CONFIG_G726LE_MUXER 1
2018
+ #define CONFIG_GIF_MUXER 1
2019
+ #define CONFIG_GSM_MUXER 1
2020
+ #define CONFIG_GXF_MUXER 1
2021
+ #define CONFIG_H261_MUXER 1
2022
+ #define CONFIG_H263_MUXER 1
2023
+ #define CONFIG_H264_MUXER 1
2024
+ #define CONFIG_HASH_MUXER 1
2025
+ #define CONFIG_HDS_MUXER 1
2026
+ #define CONFIG_HEVC_MUXER 1
2027
+ #define CONFIG_HLS_MUXER 1
2028
+ #define CONFIG_ICO_MUXER 1
2029
+ #define CONFIG_ILBC_MUXER 1
2030
+ #define CONFIG_IMAGE2_MUXER 1
2031
+ #define CONFIG_IMAGE2PIPE_MUXER 1
2032
+ #define CONFIG_IPOD_MUXER 1
2033
+ #define CONFIG_IRCAM_MUXER 1
2034
+ #define CONFIG_ISMV_MUXER 1
2035
+ #define CONFIG_IVF_MUXER 1
2036
+ #define CONFIG_JACOSUB_MUXER 1
2037
+ #define CONFIG_KVAG_MUXER 1
2038
+ #define CONFIG_LATM_MUXER 1
2039
+ #define CONFIG_LRC_MUXER 1
2040
+ #define CONFIG_M4V_MUXER 1
2041
+ #define CONFIG_MD5_MUXER 1
2042
+ #define CONFIG_MATROSKA_MUXER 1
2043
+ #define CONFIG_MATROSKA_AUDIO_MUXER 1
2044
+ #define CONFIG_MICRODVD_MUXER 1
2045
+ #define CONFIG_MJPEG_MUXER 1
2046
+ #define CONFIG_MLP_MUXER 1
2047
+ #define CONFIG_MMF_MUXER 1
2048
+ #define CONFIG_MOV_MUXER 1
2049
+ #define CONFIG_MP2_MUXER 1
2050
+ #define CONFIG_MP3_MUXER 1
2051
+ #define CONFIG_MP4_MUXER 1
2052
+ #define CONFIG_MPEG1SYSTEM_MUXER 1
2053
+ #define CONFIG_MPEG1VCD_MUXER 1
2054
+ #define CONFIG_MPEG1VIDEO_MUXER 1
2055
+ #define CONFIG_MPEG2DVD_MUXER 1
2056
+ #define CONFIG_MPEG2SVCD_MUXER 1
2057
+ #define CONFIG_MPEG2VIDEO_MUXER 1
2058
+ #define CONFIG_MPEG2VOB_MUXER 1
2059
+ #define CONFIG_MPEGTS_MUXER 1
2060
+ #define CONFIG_MPJPEG_MUXER 1
2061
+ #define CONFIG_MXF_MUXER 1
2062
+ #define CONFIG_MXF_D10_MUXER 1
2063
+ #define CONFIG_MXF_OPATOM_MUXER 1
2064
+ #define CONFIG_NULL_MUXER 1
2065
+ #define CONFIG_NUT_MUXER 1
2066
+ #define CONFIG_OBU_MUXER 1
2067
+ #define CONFIG_OGA_MUXER 1
2068
+ #define CONFIG_OGG_MUXER 1
2069
+ #define CONFIG_OGV_MUXER 1
2070
+ #define CONFIG_OMA_MUXER 1
2071
+ #define CONFIG_OPUS_MUXER 1
2072
+ #define CONFIG_PCM_ALAW_MUXER 1
2073
+ #define CONFIG_PCM_MULAW_MUXER 1
2074
+ #define CONFIG_PCM_VIDC_MUXER 1
2075
+ #define CONFIG_PCM_F64BE_MUXER 1
2076
+ #define CONFIG_PCM_F64LE_MUXER 1
2077
+ #define CONFIG_PCM_F32BE_MUXER 1
2078
+ #define CONFIG_PCM_F32LE_MUXER 1
2079
+ #define CONFIG_PCM_S32BE_MUXER 1
2080
+ #define CONFIG_PCM_S32LE_MUXER 1
2081
+ #define CONFIG_PCM_S24BE_MUXER 1
2082
+ #define CONFIG_PCM_S24LE_MUXER 1
2083
+ #define CONFIG_PCM_S16BE_MUXER 1
2084
+ #define CONFIG_PCM_S16LE_MUXER 1
2085
+ #define CONFIG_PCM_S8_MUXER 1
2086
+ #define CONFIG_PCM_U32BE_MUXER 1
2087
+ #define CONFIG_PCM_U32LE_MUXER 1
2088
+ #define CONFIG_PCM_U24BE_MUXER 1
2089
+ #define CONFIG_PCM_U24LE_MUXER 1
2090
+ #define CONFIG_PCM_U16BE_MUXER 1
2091
+ #define CONFIG_PCM_U16LE_MUXER 1
2092
+ #define CONFIG_PCM_U8_MUXER 1
2093
+ #define CONFIG_PSP_MUXER 1
2094
+ #define CONFIG_RAWVIDEO_MUXER 1
2095
+ #define CONFIG_RM_MUXER 1
2096
+ #define CONFIG_ROQ_MUXER 1
2097
+ #define CONFIG_RSO_MUXER 1
2098
+ #define CONFIG_RTP_MUXER 1
2099
+ #define CONFIG_RTP_MPEGTS_MUXER 1
2100
+ #define CONFIG_RTSP_MUXER 1
2101
+ #define CONFIG_SAP_MUXER 1
2102
+ #define CONFIG_SBC_MUXER 1
2103
+ #define CONFIG_SCC_MUXER 1
2104
+ #define CONFIG_SEGAFILM_MUXER 1
2105
+ #define CONFIG_SEGMENT_MUXER 1
2106
+ #define CONFIG_STREAM_SEGMENT_MUXER 1
2107
+ #define CONFIG_SMJPEG_MUXER 1
2108
+ #define CONFIG_SMOOTHSTREAMING_MUXER 1
2109
+ #define CONFIG_SOX_MUXER 1
2110
+ #define CONFIG_SPX_MUXER 1
2111
+ #define CONFIG_SPDIF_MUXER 1
2112
+ #define CONFIG_SRT_MUXER 1
2113
+ #define CONFIG_STREAMHASH_MUXER 1
2114
+ #define CONFIG_SUP_MUXER 1
2115
+ #define CONFIG_SWF_MUXER 1
2116
+ #define CONFIG_TEE_MUXER 1
2117
+ #define CONFIG_TG2_MUXER 1
2118
+ #define CONFIG_TGP_MUXER 1
2119
+ #define CONFIG_MKVTIMESTAMP_V2_MUXER 1
2120
+ #define CONFIG_TRUEHD_MUXER 1
2121
+ #define CONFIG_TTA_MUXER 1
2122
+ #define CONFIG_TTML_MUXER 1
2123
+ #define CONFIG_UNCODEDFRAMECRC_MUXER 1
2124
+ #define CONFIG_VC1_MUXER 1
2125
+ #define CONFIG_VC1T_MUXER 1
2126
+ #define CONFIG_VOC_MUXER 1
2127
+ #define CONFIG_VVC_MUXER 1
2128
+ #define CONFIG_W64_MUXER 1
2129
+ #define CONFIG_WAV_MUXER 1
2130
+ #define CONFIG_WEBM_MUXER 1
2131
+ #define CONFIG_WEBM_DASH_MANIFEST_MUXER 1
2132
+ #define CONFIG_WEBM_CHUNK_MUXER 1
2133
+ #define CONFIG_WEBP_MUXER 1
2134
+ #define CONFIG_WEBVTT_MUXER 1
2135
+ #define CONFIG_WSAUD_MUXER 1
2136
+ #define CONFIG_WTV_MUXER 1
2137
+ #define CONFIG_WV_MUXER 1
2138
+ #define CONFIG_YUV4MPEGPIPE_MUXER 1
2139
+ #define CONFIG_CHROMAPRINT_MUXER 0
2140
+ #define CONFIG_ASYNC_PROTOCOL 1
2141
+ #define CONFIG_BLURAY_PROTOCOL 0
2142
+ #define CONFIG_CACHE_PROTOCOL 1
2143
+ #define CONFIG_CONCAT_PROTOCOL 1
2144
+ #define CONFIG_CONCATF_PROTOCOL 1
2145
+ #define CONFIG_CRYPTO_PROTOCOL 1
2146
+ #define CONFIG_DATA_PROTOCOL 1
2147
+ #define CONFIG_FD_PROTOCOL 1
2148
+ #define CONFIG_FFRTMPCRYPT_PROTOCOL 0
2149
+ #define CONFIG_FFRTMPHTTP_PROTOCOL 1
2150
+ #define CONFIG_FILE_PROTOCOL 1
2151
+ #define CONFIG_FTP_PROTOCOL 1
2152
+ #define CONFIG_GOPHER_PROTOCOL 1
2153
+ #define CONFIG_GOPHERS_PROTOCOL 0
2154
+ #define CONFIG_HLS_PROTOCOL 1
2155
+ #define CONFIG_HTTP_PROTOCOL 1
2156
+ #define CONFIG_HTTPPROXY_PROTOCOL 1
2157
+ #define CONFIG_HTTPS_PROTOCOL 0
2158
+ #define CONFIG_ICECAST_PROTOCOL 1
2159
+ #define CONFIG_MMSH_PROTOCOL 1
2160
+ #define CONFIG_MMST_PROTOCOL 1
2161
+ #define CONFIG_MD5_PROTOCOL 1
2162
+ #define CONFIG_PIPE_PROTOCOL 1
2163
+ #define CONFIG_PROMPEG_PROTOCOL 1
2164
+ #define CONFIG_RTMP_PROTOCOL 1
2165
+ #define CONFIG_RTMPE_PROTOCOL 0
2166
+ #define CONFIG_RTMPS_PROTOCOL 0
2167
+ #define CONFIG_RTMPT_PROTOCOL 1
2168
+ #define CONFIG_RTMPTE_PROTOCOL 0
2169
+ #define CONFIG_RTMPTS_PROTOCOL 0
2170
+ #define CONFIG_RTP_PROTOCOL 1
2171
+ #define CONFIG_SCTP_PROTOCOL 0
2172
+ #define CONFIG_SRTP_PROTOCOL 1
2173
+ #define CONFIG_SUBFILE_PROTOCOL 1
2174
+ #define CONFIG_TEE_PROTOCOL 1
2175
+ #define CONFIG_TCP_PROTOCOL 1
2176
+ #define CONFIG_TLS_PROTOCOL 0
2177
+ #define CONFIG_UDP_PROTOCOL 1
2178
+ #define CONFIG_UDPLITE_PROTOCOL 1
2179
+ #define CONFIG_UNIX_PROTOCOL 1
2180
+ #define CONFIG_LIBAMQP_PROTOCOL 0
2181
+ #define CONFIG_LIBRIST_PROTOCOL 0
2182
+ #define CONFIG_LIBRTMP_PROTOCOL 0
2183
+ #define CONFIG_LIBRTMPE_PROTOCOL 0
2184
+ #define CONFIG_LIBRTMPS_PROTOCOL 0
2185
+ #define CONFIG_LIBRTMPT_PROTOCOL 0
2186
+ #define CONFIG_LIBRTMPTE_PROTOCOL 0
2187
+ #define CONFIG_LIBSRT_PROTOCOL 0
2188
+ #define CONFIG_LIBSSH_PROTOCOL 0
2189
+ #define CONFIG_LIBSMBCLIENT_PROTOCOL 0
2190
+ #define CONFIG_LIBZMQ_PROTOCOL 0
2191
+ #define CONFIG_IPFS_GATEWAY_PROTOCOL 0
2192
+ #define CONFIG_IPNS_GATEWAY_PROTOCOL 0
2193
+ #endif /* FFMPEG_CONFIG_COMPONENTS_H */
configure ADDED
The diff for this file is too large to render. See raw diff
 
doc/.gitignore ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ /*.1
2
+ /*.3
3
+ /*.html
4
+ /*.pod
5
+ /config.texi
6
+ /avoptions_codec.texi
7
+ /avoptions_format.texi
8
+ /fate.txt
9
+ /print_options
doc/APIchanges ADDED
The diff for this file is too large to render. See raw diff