codec_desc: group image codecs together
[ffmpeg.git] / libavcodec / codec_desc.c
1 /*
2  * This file is part of Libav.
3  *
4  * Libav 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  * Libav 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 Libav; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17  */
18
19 #include <string.h>
20
21 #include "libavutil/common.h"
22 #include "libavutil/internal.h"
23 #include "avcodec.h"
24 #include "version.h"
25
26 static const AVCodecDescriptor codec_descriptors[] = {
27     /* video codecs */
28     {
29         .id        = AV_CODEC_ID_MPEG1VIDEO,
30         .type      = AVMEDIA_TYPE_VIDEO,
31         .name      = "mpeg1video",
32         .long_name = NULL_IF_CONFIG_SMALL("MPEG-1 video"),
33         .props     = AV_CODEC_PROP_LOSSY,
34     },
35     {
36         .id        = AV_CODEC_ID_MPEG2VIDEO,
37         .type      = AVMEDIA_TYPE_VIDEO,
38         .name      = "mpeg2video",
39         .long_name = NULL_IF_CONFIG_SMALL("MPEG-1 video"),
40         .props     = AV_CODEC_PROP_LOSSY,
41     },
42 #if FF_API_XVMC
43     {
44         .id        = AV_CODEC_ID_MPEG2VIDEO_XVMC,
45         .type      = AVMEDIA_TYPE_VIDEO,
46         .name      = "mpegvideo_xvmc",
47         .long_name = NULL_IF_CONFIG_SMALL("MPEG-1/2 video XvMC (X-Video Motion Compensation)"),
48         .props     = AV_CODEC_PROP_LOSSY,
49     },
50 #endif /* FF_API_XVMC */
51     {
52         .id        = AV_CODEC_ID_H261,
53         .type      = AVMEDIA_TYPE_VIDEO,
54         .name      = "h261",
55         .long_name = NULL_IF_CONFIG_SMALL("H.261"),
56         .props     = AV_CODEC_PROP_LOSSY,
57     },
58     {
59         .id        = AV_CODEC_ID_H263,
60         .type      = AVMEDIA_TYPE_VIDEO,
61         .name      = "h263",
62         .long_name = NULL_IF_CONFIG_SMALL("H.263 / H.263-1996, H.263+ / H.263-1998 / H.263 version 2"),
63         .props     = AV_CODEC_PROP_LOSSY,
64     },
65     {
66         .id        = AV_CODEC_ID_RV10,
67         .type      = AVMEDIA_TYPE_VIDEO,
68         .name      = "rv10",
69         .long_name = NULL_IF_CONFIG_SMALL("RealVideo 1.0"),
70         .props     = AV_CODEC_PROP_LOSSY,
71     },
72     {
73         .id        = AV_CODEC_ID_RV20,
74         .type      = AVMEDIA_TYPE_VIDEO,
75         .name      = "rv20",
76         .long_name = NULL_IF_CONFIG_SMALL("RealVideo 1.0"),
77         .props     = AV_CODEC_PROP_LOSSY,
78     },
79     {
80         .id        = AV_CODEC_ID_MJPEG,
81         .type      = AVMEDIA_TYPE_VIDEO,
82         .name      = "mjpeg",
83         .long_name = NULL_IF_CONFIG_SMALL("Motion JPEG"),
84         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
85     },
86     {
87         .id        = AV_CODEC_ID_MJPEGB,
88         .type      = AVMEDIA_TYPE_VIDEO,
89         .name      = "mjpegb",
90         .long_name = NULL_IF_CONFIG_SMALL("Apple MJPEG-B"),
91         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
92     },
93     {
94         .id        = AV_CODEC_ID_MPEG4,
95         .type      = AVMEDIA_TYPE_VIDEO,
96         .name      = "mpeg4",
97         .long_name = NULL_IF_CONFIG_SMALL("MPEG-4 part 2"),
98         .props     = AV_CODEC_PROP_LOSSY,
99     },
100     {
101         .id        = AV_CODEC_ID_RAWVIDEO,
102         .type      = AVMEDIA_TYPE_VIDEO,
103         .name      = "rawvideo",
104         .long_name = NULL_IF_CONFIG_SMALL("raw video"),
105         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
106     },
107     {
108         .id        = AV_CODEC_ID_MSMPEG4V1,
109         .type      = AVMEDIA_TYPE_VIDEO,
110         .name      = "msmpeg4v1",
111         .long_name = NULL_IF_CONFIG_SMALL("MPEG-4 part 2 Microsoft variant version 1"),
112         .props     = AV_CODEC_PROP_LOSSY,
113     },
114     {
115         .id        = AV_CODEC_ID_MSMPEG4V2,
116         .type      = AVMEDIA_TYPE_VIDEO,
117         .name      = "msmpeg4v2",
118         .long_name = NULL_IF_CONFIG_SMALL("MPEG-4 part 2 Microsoft variant version 2"),
119         .props     = AV_CODEC_PROP_LOSSY,
120     },
121     {
122         .id        = AV_CODEC_ID_MSMPEG4V3,
123         .type      = AVMEDIA_TYPE_VIDEO,
124         .name      = "msmpeg4v3",
125         .long_name = NULL_IF_CONFIG_SMALL("MPEG-4 part 2 Microsoft variant version 3"),
126         .props     = AV_CODEC_PROP_LOSSY,
127     },
128     {
129         .id        = AV_CODEC_ID_WMV1,
130         .type      = AVMEDIA_TYPE_VIDEO,
131         .name      = "wmv1",
132         .long_name = NULL_IF_CONFIG_SMALL("Windows Media Video 7"),
133         .props     = AV_CODEC_PROP_LOSSY,
134     },
135     {
136         .id        = AV_CODEC_ID_WMV2,
137         .type      = AVMEDIA_TYPE_VIDEO,
138         .name      = "wmv2",
139         .long_name = NULL_IF_CONFIG_SMALL("Windows Media Video 8"),
140         .props     = AV_CODEC_PROP_LOSSY,
141     },
142     {
143         .id        = AV_CODEC_ID_H263P,
144         .type      = AVMEDIA_TYPE_VIDEO,
145         .name      = "h263p",
146         .long_name = NULL_IF_CONFIG_SMALL("H.263+ / H.263-1998 / H.263 version 2"),
147         .props     = AV_CODEC_PROP_LOSSY,
148     },
149     {
150         .id        = AV_CODEC_ID_H263I,
151         .type      = AVMEDIA_TYPE_VIDEO,
152         .name      = "h263i",
153         .long_name = NULL_IF_CONFIG_SMALL("Intel H.263"),
154         .props     = AV_CODEC_PROP_LOSSY,
155     },
156     {
157         .id        = AV_CODEC_ID_FLV1,
158         .type      = AVMEDIA_TYPE_VIDEO,
159         .name      = "flv1",
160         .long_name = NULL_IF_CONFIG_SMALL("FLV / Sorenson Spark / Sorenson H.263 (Flash Video)"),
161         .props     = AV_CODEC_PROP_LOSSY,
162     },
163     {
164         .id        = AV_CODEC_ID_SVQ1,
165         .type      = AVMEDIA_TYPE_VIDEO,
166         .name      = "svq1",
167         .long_name = NULL_IF_CONFIG_SMALL("Sorenson Vector Quantizer 1 / Sorenson Video 1 / SVQ1"),
168         .props     = AV_CODEC_PROP_LOSSY,
169     },
170     {
171         .id        = AV_CODEC_ID_SVQ3,
172         .type      = AVMEDIA_TYPE_VIDEO,
173         .name      = "svq3",
174         .long_name = NULL_IF_CONFIG_SMALL("Sorenson Vector Quantizer 3 / Sorenson Video 3 / SVQ3"),
175         .props     = AV_CODEC_PROP_LOSSY,
176     },
177     {
178         .id        = AV_CODEC_ID_DVVIDEO,
179         .type      = AVMEDIA_TYPE_VIDEO,
180         .name      = "dvvideo",
181         .long_name = NULL_IF_CONFIG_SMALL("DV (Digital Video)"),
182         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
183     },
184     {
185         .id        = AV_CODEC_ID_HUFFYUV,
186         .type      = AVMEDIA_TYPE_VIDEO,
187         .name      = "huffyuv",
188         .long_name = NULL_IF_CONFIG_SMALL("HuffYUV"),
189         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
190     },
191     {
192         .id        = AV_CODEC_ID_CYUV,
193         .type      = AVMEDIA_TYPE_VIDEO,
194         .name      = "cyuv",
195         .long_name = NULL_IF_CONFIG_SMALL("Creative YUV (CYUV)"),
196         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
197     },
198     {
199         .id        = AV_CODEC_ID_H264,
200         .type      = AVMEDIA_TYPE_VIDEO,
201         .name      = "h264",
202         .long_name = NULL_IF_CONFIG_SMALL("H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10"),
203         .props     = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_LOSSLESS,
204     },
205     {
206         .id        = AV_CODEC_ID_INDEO3,
207         .type      = AVMEDIA_TYPE_VIDEO,
208         .name      = "indeo3",
209         .long_name = NULL_IF_CONFIG_SMALL("Intel Indeo 3"),
210         .props     = AV_CODEC_PROP_LOSSY,
211     },
212     {
213         .id        = AV_CODEC_ID_VP3,
214         .type      = AVMEDIA_TYPE_VIDEO,
215         .name      = "vp3",
216         .long_name = NULL_IF_CONFIG_SMALL("On2 VP3"),
217         .props     = AV_CODEC_PROP_LOSSY,
218     },
219     {
220         .id        = AV_CODEC_ID_THEORA,
221         .type      = AVMEDIA_TYPE_VIDEO,
222         .name      = "theora",
223         .long_name = NULL_IF_CONFIG_SMALL("Theora"),
224         .props     = AV_CODEC_PROP_LOSSY,
225     },
226     {
227         .id        = AV_CODEC_ID_ASV1,
228         .type      = AVMEDIA_TYPE_VIDEO,
229         .name      = "asv1",
230         .long_name = NULL_IF_CONFIG_SMALL("ASUS V1"),
231         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
232     },
233     {
234         .id        = AV_CODEC_ID_ASV2,
235         .type      = AVMEDIA_TYPE_VIDEO,
236         .name      = "asv2",
237         .long_name = NULL_IF_CONFIG_SMALL("ASUS V2"),
238         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
239     },
240     {
241         .id        = AV_CODEC_ID_FFV1,
242         .type      = AVMEDIA_TYPE_VIDEO,
243         .name      = "ffv1",
244         .long_name = NULL_IF_CONFIG_SMALL("FFmpeg video codec #1"),
245         .props     = AV_CODEC_PROP_LOSSLESS,
246     },
247     {
248         .id        = AV_CODEC_ID_4XM,
249         .type      = AVMEDIA_TYPE_VIDEO,
250         .name      = "4xm",
251         .long_name = NULL_IF_CONFIG_SMALL("4X Movie"),
252         .props     = AV_CODEC_PROP_LOSSY,
253     },
254     {
255         .id        = AV_CODEC_ID_VCR1,
256         .type      = AVMEDIA_TYPE_VIDEO,
257         .name      = "vcr1",
258         .long_name = NULL_IF_CONFIG_SMALL("ATI VCR1"),
259         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
260     },
261     {
262         .id        = AV_CODEC_ID_CLJR,
263         .type      = AVMEDIA_TYPE_VIDEO,
264         .name      = "cljr",
265         .long_name = NULL_IF_CONFIG_SMALL("Cirrus Logic AccuPak"),
266         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
267     },
268     {
269         .id        = AV_CODEC_ID_MDEC,
270         .type      = AVMEDIA_TYPE_VIDEO,
271         .name      = "mdec",
272         .long_name = NULL_IF_CONFIG_SMALL("Sony PlayStation MDEC (Motion DECoder)"),
273         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
274     },
275     {
276         .id        = AV_CODEC_ID_ROQ,
277         .type      = AVMEDIA_TYPE_VIDEO,
278         .name      = "roq",
279         .long_name = NULL_IF_CONFIG_SMALL("id RoQ video"),
280         .props     = AV_CODEC_PROP_LOSSY,
281     },
282     {
283         .id        = AV_CODEC_ID_INTERPLAY_VIDEO,
284         .type      = AVMEDIA_TYPE_VIDEO,
285         .name      = "interplayvideo",
286         .long_name = NULL_IF_CONFIG_SMALL("Interplay MVE video"),
287         .props     = AV_CODEC_PROP_LOSSY,
288     },
289     {
290         .id        = AV_CODEC_ID_XAN_WC3,
291         .type      = AVMEDIA_TYPE_VIDEO,
292         .name      = "xan_wc3",
293         .long_name = NULL_IF_CONFIG_SMALL("Wing Commander III / Xan"),
294         .props     = AV_CODEC_PROP_LOSSY,
295     },
296     {
297         .id        = AV_CODEC_ID_XAN_WC4,
298         .type      = AVMEDIA_TYPE_VIDEO,
299         .name      = "xan_wc4",
300         .long_name = NULL_IF_CONFIG_SMALL("Wing Commander IV / Xxan"),
301         .props     = AV_CODEC_PROP_LOSSY,
302     },
303     {
304         .id        = AV_CODEC_ID_RPZA,
305         .type      = AVMEDIA_TYPE_VIDEO,
306         .name      = "rpza",
307         .long_name = NULL_IF_CONFIG_SMALL("QuickTime video (RPZA)"),
308         .props     = AV_CODEC_PROP_LOSSY,
309     },
310     {
311         .id        = AV_CODEC_ID_CINEPAK,
312         .type      = AVMEDIA_TYPE_VIDEO,
313         .name      = "cinepak",
314         .long_name = NULL_IF_CONFIG_SMALL("Cinepak"),
315         .props     = AV_CODEC_PROP_LOSSY,
316     },
317     {
318         .id        = AV_CODEC_ID_WS_VQA,
319         .type      = AVMEDIA_TYPE_VIDEO,
320         .name      = "ws_vqa",
321         .long_name = NULL_IF_CONFIG_SMALL("Westwood Studios VQA (Vector Quantized Animation) video"),
322         .props     = AV_CODEC_PROP_LOSSY,
323     },
324     {
325         .id        = AV_CODEC_ID_MSRLE,
326         .type      = AVMEDIA_TYPE_VIDEO,
327         .name      = "msrle",
328         .long_name = NULL_IF_CONFIG_SMALL("Microsoft RLE"),
329         .props     = AV_CODEC_PROP_LOSSLESS,
330     },
331     {
332         .id        = AV_CODEC_ID_MSVIDEO1,
333         .type      = AVMEDIA_TYPE_VIDEO,
334         .name      = "msvideo1",
335         .long_name = NULL_IF_CONFIG_SMALL("Microsoft Video 1"),
336         .props     = AV_CODEC_PROP_LOSSY,
337     },
338     {
339         .id        = AV_CODEC_ID_IDCIN,
340         .type      = AVMEDIA_TYPE_VIDEO,
341         .name      = "idcin",
342         .long_name = NULL_IF_CONFIG_SMALL("id Quake II CIN video"),
343         .props     = AV_CODEC_PROP_LOSSY,
344     },
345     {
346         .id        = AV_CODEC_ID_8BPS,
347         .type      = AVMEDIA_TYPE_VIDEO,
348         .name      = "8bps",
349         .long_name = NULL_IF_CONFIG_SMALL("QuickTime 8BPS video"),
350         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
351     },
352     {
353         .id        = AV_CODEC_ID_SMC,
354         .type      = AVMEDIA_TYPE_VIDEO,
355         .name      = "smc",
356         .long_name = NULL_IF_CONFIG_SMALL("QuickTime Graphics (SMC)"),
357         .props     = AV_CODEC_PROP_LOSSY,
358     },
359     {
360         .id        = AV_CODEC_ID_FLIC,
361         .type      = AVMEDIA_TYPE_VIDEO,
362         .name      = "flic",
363         .long_name = NULL_IF_CONFIG_SMALL("Autodesk Animator Flic video"),
364         .props     = AV_CODEC_PROP_LOSSLESS,
365     },
366     {
367         .id        = AV_CODEC_ID_TRUEMOTION1,
368         .type      = AVMEDIA_TYPE_VIDEO,
369         .name      = "truemotion1",
370         .long_name = NULL_IF_CONFIG_SMALL("Duck TrueMotion 1.0"),
371         .props     = AV_CODEC_PROP_LOSSY,
372     },
373     {
374         .id        = AV_CODEC_ID_VMDVIDEO,
375         .type      = AVMEDIA_TYPE_VIDEO,
376         .name      = "vmdvideo",
377         .long_name = NULL_IF_CONFIG_SMALL("Sierra VMD video"),
378         .props     = AV_CODEC_PROP_LOSSY,
379     },
380     {
381         .id        = AV_CODEC_ID_MSZH,
382         .type      = AVMEDIA_TYPE_VIDEO,
383         .name      = "mszh",
384         .long_name = NULL_IF_CONFIG_SMALL("LCL (LossLess Codec Library) MSZH"),
385         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
386     },
387     {
388         .id        = AV_CODEC_ID_ZLIB,
389         .type      = AVMEDIA_TYPE_VIDEO,
390         .name      = "zlib",
391         .long_name = NULL_IF_CONFIG_SMALL("LCL (LossLess Codec Library) ZLIB"),
392         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
393     },
394     {
395         .id        = AV_CODEC_ID_QTRLE,
396         .type      = AVMEDIA_TYPE_VIDEO,
397         .name      = "qtrle",
398         .long_name = NULL_IF_CONFIG_SMALL("QuickTime Animation (RLE) video"),
399         .props     = AV_CODEC_PROP_LOSSLESS,
400     },
401     {
402         .id        = AV_CODEC_ID_TSCC,
403         .type      = AVMEDIA_TYPE_VIDEO,
404         .name      = "tscc",
405         .long_name = NULL_IF_CONFIG_SMALL("TechSmith Screen Capture Codec"),
406         .props     = AV_CODEC_PROP_LOSSLESS,
407     },
408     {
409         .id        = AV_CODEC_ID_ULTI,
410         .type      = AVMEDIA_TYPE_VIDEO,
411         .name      = "ulti",
412         .long_name = NULL_IF_CONFIG_SMALL("IBM UltiMotion"),
413         .props     = AV_CODEC_PROP_LOSSY,
414     },
415     {
416         .id        = AV_CODEC_ID_QDRAW,
417         .type      = AVMEDIA_TYPE_VIDEO,
418         .name      = "qdraw",
419         .long_name = NULL_IF_CONFIG_SMALL("Apple QuickDraw"),
420         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
421     },
422     {
423         .id        = AV_CODEC_ID_VIXL,
424         .type      = AVMEDIA_TYPE_VIDEO,
425         .name      = "vixl",
426         .long_name = NULL_IF_CONFIG_SMALL("Miro VideoXL"),
427         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
428     },
429     {
430         .id        = AV_CODEC_ID_QPEG,
431         .type      = AVMEDIA_TYPE_VIDEO,
432         .name      = "qpeg",
433         .long_name = NULL_IF_CONFIG_SMALL("Q-team QPEG"),
434         .props     = AV_CODEC_PROP_LOSSY,
435     },
436     {
437         .id        = AV_CODEC_ID_FFVHUFF,
438         .type      = AVMEDIA_TYPE_VIDEO,
439         .name      = "ffvhuff",
440         .long_name = NULL_IF_CONFIG_SMALL("Huffyuv FFmpeg variant"),
441         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
442     },
443     {
444         .id        = AV_CODEC_ID_RV30,
445         .type      = AVMEDIA_TYPE_VIDEO,
446         .name      = "rv30",
447         .long_name = NULL_IF_CONFIG_SMALL("RealVideo 3.0"),
448         .props     = AV_CODEC_PROP_LOSSY,
449     },
450     {
451         .id        = AV_CODEC_ID_RV40,
452         .type      = AVMEDIA_TYPE_VIDEO,
453         .name      = "rv40",
454         .long_name = NULL_IF_CONFIG_SMALL("RealVideo 4.0"),
455         .props     = AV_CODEC_PROP_LOSSY,
456     },
457     {
458         .id        = AV_CODEC_ID_VC1,
459         .type      = AVMEDIA_TYPE_VIDEO,
460         .name      = "vc1",
461         .long_name = NULL_IF_CONFIG_SMALL("SMPTE VC-1"),
462         .props     = AV_CODEC_PROP_LOSSY,
463     },
464     {
465         .id        = AV_CODEC_ID_WMV3,
466         .type      = AVMEDIA_TYPE_VIDEO,
467         .name      = "wmv3",
468         .long_name = NULL_IF_CONFIG_SMALL("Windows Media Video 9"),
469         .props     = AV_CODEC_PROP_LOSSY,
470     },
471     {
472         .id        = AV_CODEC_ID_LOCO,
473         .type      = AVMEDIA_TYPE_VIDEO,
474         .name      = "loco",
475         .long_name = NULL_IF_CONFIG_SMALL("LOCO"),
476         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
477     },
478     {
479         .id        = AV_CODEC_ID_WNV1,
480         .type      = AVMEDIA_TYPE_VIDEO,
481         .name      = "wnv1",
482         .long_name = NULL_IF_CONFIG_SMALL("Winnov WNV1"),
483         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
484     },
485     {
486         .id        = AV_CODEC_ID_AASC,
487         .type      = AVMEDIA_TYPE_VIDEO,
488         .name      = "aasc",
489         .long_name = NULL_IF_CONFIG_SMALL("Autodesk RLE"),
490         .props     = AV_CODEC_PROP_LOSSLESS,
491     },
492     {
493         .id        = AV_CODEC_ID_INDEO2,
494         .type      = AVMEDIA_TYPE_VIDEO,
495         .name      = "indeo2",
496         .long_name = NULL_IF_CONFIG_SMALL("Intel Indeo 2"),
497         .props     = AV_CODEC_PROP_LOSSY,
498     },
499     {
500         .id        = AV_CODEC_ID_FRAPS,
501         .type      = AVMEDIA_TYPE_VIDEO,
502         .name      = "fraps",
503         .long_name = NULL_IF_CONFIG_SMALL("Fraps"),
504         .props     = AV_CODEC_PROP_LOSSLESS,
505     },
506     {
507         .id        = AV_CODEC_ID_TRUEMOTION2,
508         .type      = AVMEDIA_TYPE_VIDEO,
509         .name      = "truemotion2",
510         .long_name = NULL_IF_CONFIG_SMALL("Duck TrueMotion 2.0"),
511         .props     = AV_CODEC_PROP_LOSSY,
512     },
513     {
514         .id        = AV_CODEC_ID_BMP,
515         .type      = AVMEDIA_TYPE_VIDEO,
516         .name      = "bmp",
517         .long_name = NULL_IF_CONFIG_SMALL("BMP (Windows and OS/2 bitmap)"),
518         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
519     },
520     {
521         .id        = AV_CODEC_ID_CSCD,
522         .type      = AVMEDIA_TYPE_VIDEO,
523         .name      = "cscd",
524         .long_name = NULL_IF_CONFIG_SMALL("CamStudio"),
525         .props     = AV_CODEC_PROP_LOSSLESS,
526     },
527     {
528         .id        = AV_CODEC_ID_MMVIDEO,
529         .type      = AVMEDIA_TYPE_VIDEO,
530         .name      = "mmvideo",
531         .long_name = NULL_IF_CONFIG_SMALL("American Laser Games MM Video"),
532         .props     = AV_CODEC_PROP_LOSSY,
533     },
534     {
535         .id        = AV_CODEC_ID_ZMBV,
536         .type      = AVMEDIA_TYPE_VIDEO,
537         .name      = "zmbv",
538         .long_name = NULL_IF_CONFIG_SMALL("Zip Motion Blocks Video"),
539         .props     = AV_CODEC_PROP_LOSSLESS,
540     },
541     {
542         .id        = AV_CODEC_ID_AVS,
543         .type      = AVMEDIA_TYPE_VIDEO,
544         .name      = "avs",
545         .long_name = NULL_IF_CONFIG_SMALL("AVS (Audio Video Standard) video"),
546         .props     = AV_CODEC_PROP_LOSSY,
547     },
548     {
549         .id        = AV_CODEC_ID_SMACKVIDEO,
550         .type      = AVMEDIA_TYPE_VIDEO,
551         .name      = "smackvideo",
552         .long_name = NULL_IF_CONFIG_SMALL("Smacker video"),
553         .props     = AV_CODEC_PROP_LOSSY,
554     },
555     {
556         .id        = AV_CODEC_ID_NUV,
557         .type      = AVMEDIA_TYPE_VIDEO,
558         .name      = "nuv",
559         .long_name = NULL_IF_CONFIG_SMALL("NuppelVideo/RTJPEG"),
560         .props     = AV_CODEC_PROP_LOSSY,
561     },
562     {
563         .id        = AV_CODEC_ID_KMVC,
564         .type      = AVMEDIA_TYPE_VIDEO,
565         .name      = "kmvc",
566         .long_name = NULL_IF_CONFIG_SMALL("Karl Morton's video codec"),
567         .props     = AV_CODEC_PROP_LOSSY,
568     },
569     {
570         .id        = AV_CODEC_ID_FLASHSV,
571         .type      = AVMEDIA_TYPE_VIDEO,
572         .name      = "flashsv",
573         .long_name = NULL_IF_CONFIG_SMALL("Flash Screen Video v1"),
574         .props     = AV_CODEC_PROP_LOSSLESS,
575     },
576     {
577         .id        = AV_CODEC_ID_CAVS,
578         .type      = AVMEDIA_TYPE_VIDEO,
579         .name      = "cavs",
580         .long_name = NULL_IF_CONFIG_SMALL("Chinese AVS (Audio Video Standard) (AVS1-P2, JiZhun profile)"),
581         .props     = AV_CODEC_PROP_LOSSY,
582     },
583     {
584         .id        = AV_CODEC_ID_JPEG2000,
585         .type      = AVMEDIA_TYPE_VIDEO,
586         .name      = "jpeg2000",
587         .long_name = NULL_IF_CONFIG_SMALL("JPEG 2000"),
588         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY |
589                      AV_CODEC_PROP_LOSSLESS,
590     },
591     {
592         .id        = AV_CODEC_ID_VMNC,
593         .type      = AVMEDIA_TYPE_VIDEO,
594         .name      = "vmnc",
595         .long_name = NULL_IF_CONFIG_SMALL("VMware Screen Codec / VMware Video"),
596         .props     = AV_CODEC_PROP_LOSSLESS,
597     },
598     {
599         .id        = AV_CODEC_ID_VP5,
600         .type      = AVMEDIA_TYPE_VIDEO,
601         .name      = "vp5",
602         .long_name = NULL_IF_CONFIG_SMALL("On2 VP5"),
603         .props     = AV_CODEC_PROP_LOSSY,
604     },
605     {
606         .id        = AV_CODEC_ID_VP6,
607         .type      = AVMEDIA_TYPE_VIDEO,
608         .name      = "vp6",
609         .long_name = NULL_IF_CONFIG_SMALL("On2 VP6"),
610         .props     = AV_CODEC_PROP_LOSSY,
611     },
612     {
613         .id        = AV_CODEC_ID_VP6F,
614         .type      = AVMEDIA_TYPE_VIDEO,
615         .name      = "vp6f",
616         .long_name = NULL_IF_CONFIG_SMALL("On2 VP6 (Flash version)"),
617         .props     = AV_CODEC_PROP_LOSSY,
618     },
619     {
620         .id        = AV_CODEC_ID_DSICINVIDEO,
621         .type      = AVMEDIA_TYPE_VIDEO,
622         .name      = "dsicinvideo",
623         .long_name = NULL_IF_CONFIG_SMALL("Delphine Software International CIN video"),
624         .props     = AV_CODEC_PROP_LOSSY,
625     },
626     {
627         .id        = AV_CODEC_ID_TIERTEXSEQVIDEO,
628         .type      = AVMEDIA_TYPE_VIDEO,
629         .name      = "tiertexseqvideo",
630         .long_name = NULL_IF_CONFIG_SMALL("Tiertex Limited SEQ video"),
631         .props     = AV_CODEC_PROP_LOSSY,
632     },
633     {
634         .id        = AV_CODEC_ID_DXA,
635         .type      = AVMEDIA_TYPE_VIDEO,
636         .name      = "dxa",
637         .long_name = NULL_IF_CONFIG_SMALL("Feeble Files/ScummVM DXA"),
638         .props     = AV_CODEC_PROP_LOSSLESS,
639     },
640     {
641         .id        = AV_CODEC_ID_DNXHD,
642         .type      = AVMEDIA_TYPE_VIDEO,
643         .name      = "dnxhd",
644         .long_name = NULL_IF_CONFIG_SMALL("VC3/DNxHD"),
645         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
646     },
647     {
648         .id        = AV_CODEC_ID_THP,
649         .type      = AVMEDIA_TYPE_VIDEO,
650         .name      = "thp",
651         .long_name = NULL_IF_CONFIG_SMALL("Nintendo Gamecube THP video"),
652         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
653     },
654     {
655         .id        = AV_CODEC_ID_C93,
656         .type      = AVMEDIA_TYPE_VIDEO,
657         .name      = "c93",
658         .long_name = NULL_IF_CONFIG_SMALL("Interplay C93"),
659         .props     = AV_CODEC_PROP_LOSSY,
660     },
661     {
662         .id        = AV_CODEC_ID_BETHSOFTVID,
663         .type      = AVMEDIA_TYPE_VIDEO,
664         .name      = "bethsoftvid",
665         .long_name = NULL_IF_CONFIG_SMALL("Bethesda VID video"),
666         .props     = AV_CODEC_PROP_LOSSY,
667     },
668     {
669         .id        = AV_CODEC_ID_VP6A,
670         .type      = AVMEDIA_TYPE_VIDEO,
671         .name      = "vp6a",
672         .long_name = NULL_IF_CONFIG_SMALL("On2 VP6 (Flash version, with alpha channel)"),
673         .props     = AV_CODEC_PROP_LOSSY,
674     },
675     {
676         .id        = AV_CODEC_ID_AMV,
677         .type      = AVMEDIA_TYPE_VIDEO,
678         .name      = "amv",
679         .long_name = NULL_IF_CONFIG_SMALL("AMV Video"),
680         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
681     },
682     {
683         .id        = AV_CODEC_ID_VB,
684         .type      = AVMEDIA_TYPE_VIDEO,
685         .name      = "vb",
686         .long_name = NULL_IF_CONFIG_SMALL("Beam Software VB"),
687         .props     = AV_CODEC_PROP_LOSSY,
688     },
689     {
690         .id        = AV_CODEC_ID_INDEO4,
691         .type      = AVMEDIA_TYPE_VIDEO,
692         .name      = "indeo4",
693         .long_name = NULL_IF_CONFIG_SMALL("Intel Indeo Video Interactive 4"),
694         .props     = AV_CODEC_PROP_LOSSY,
695     },
696     {
697         .id        = AV_CODEC_ID_INDEO5,
698         .type      = AVMEDIA_TYPE_VIDEO,
699         .name      = "indeo5",
700         .long_name = NULL_IF_CONFIG_SMALL("Intel Indeo Video Interactive 5"),
701         .props     = AV_CODEC_PROP_LOSSY,
702     },
703     {
704         .id        = AV_CODEC_ID_MIMIC,
705         .type      = AVMEDIA_TYPE_VIDEO,
706         .name      = "mimic",
707         .long_name = NULL_IF_CONFIG_SMALL("Mimic"),
708         .props     = AV_CODEC_PROP_LOSSY,
709     },
710     {
711         .id        = AV_CODEC_ID_RL2,
712         .type      = AVMEDIA_TYPE_VIDEO,
713         .name      = "rl2",
714         .long_name = NULL_IF_CONFIG_SMALL("RL2 video"),
715         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
716     },
717     {
718         .id        = AV_CODEC_ID_ESCAPE124,
719         .type      = AVMEDIA_TYPE_VIDEO,
720         .name      = "escape124",
721         .long_name = NULL_IF_CONFIG_SMALL("Escape 124"),
722         .props     = AV_CODEC_PROP_LOSSY,
723     },
724     {
725         .id        = AV_CODEC_ID_DIRAC,
726         .type      = AVMEDIA_TYPE_VIDEO,
727         .name      = "dirac",
728         .long_name = NULL_IF_CONFIG_SMALL("Dirac"),
729         .props     = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_LOSSLESS,
730     },
731     {
732         .id        = AV_CODEC_ID_BFI,
733         .type      = AVMEDIA_TYPE_VIDEO,
734         .name      = "bfi",
735         .long_name = NULL_IF_CONFIG_SMALL("Brute Force & Ignorance"),
736         .props     = AV_CODEC_PROP_LOSSY,
737     },
738     {
739         .id        = AV_CODEC_ID_CMV,
740         .type      = AVMEDIA_TYPE_VIDEO,
741         .name      = "cmv",
742         .long_name = NULL_IF_CONFIG_SMALL("Electronic Arts CMV video"),
743         .props     = AV_CODEC_PROP_LOSSY,
744     },
745     {
746         .id        = AV_CODEC_ID_MOTIONPIXELS,
747         .type      = AVMEDIA_TYPE_VIDEO,
748         .name      = "motionpixels",
749         .long_name = NULL_IF_CONFIG_SMALL("Motion Pixels video"),
750         .props     = AV_CODEC_PROP_LOSSY,
751     },
752     {
753         .id        = AV_CODEC_ID_TGV,
754         .type      = AVMEDIA_TYPE_VIDEO,
755         .name      = "tgv",
756         .long_name = NULL_IF_CONFIG_SMALL("Electronic Arts TGV video"),
757         .props     = AV_CODEC_PROP_LOSSY,
758     },
759     {
760         .id        = AV_CODEC_ID_TGQ,
761         .type      = AVMEDIA_TYPE_VIDEO,
762         .name      = "tgq",
763         .long_name = NULL_IF_CONFIG_SMALL("Electronic Arts TGQ video"),
764         .props     = AV_CODEC_PROP_LOSSY,
765     },
766     {
767         .id        = AV_CODEC_ID_TQI,
768         .type      = AVMEDIA_TYPE_VIDEO,
769         .name      = "tqi",
770         .long_name = NULL_IF_CONFIG_SMALL("Electronic Arts TQI video"),
771         .props     = AV_CODEC_PROP_LOSSY,
772     },
773     {
774         .id        = AV_CODEC_ID_AURA,
775         .type      = AVMEDIA_TYPE_VIDEO,
776         .name      = "aura",
777         .long_name = NULL_IF_CONFIG_SMALL("Auravision AURA"),
778         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
779     },
780     {
781         .id        = AV_CODEC_ID_AURA2,
782         .type      = AVMEDIA_TYPE_VIDEO,
783         .name      = "aura2",
784         .long_name = NULL_IF_CONFIG_SMALL("Auravision Aura 2"),
785         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
786     },
787     {
788         .id        = AV_CODEC_ID_V210X,
789         .type      = AVMEDIA_TYPE_VIDEO,
790         .name      = "v210x",
791         .long_name = NULL_IF_CONFIG_SMALL("Uncompressed 4:2:2 10-bit"),
792         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
793     },
794     {
795         .id        = AV_CODEC_ID_TMV,
796         .type      = AVMEDIA_TYPE_VIDEO,
797         .name      = "tmv",
798         .long_name = NULL_IF_CONFIG_SMALL("8088flex TMV"),
799         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
800     },
801     {
802         .id        = AV_CODEC_ID_V210,
803         .type      = AVMEDIA_TYPE_VIDEO,
804         .name      = "v210",
805         .long_name = NULL_IF_CONFIG_SMALL("Uncompressed 4:2:2 10-bit"),
806         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
807     },
808     {
809         .id        = AV_CODEC_ID_MAD,
810         .type      = AVMEDIA_TYPE_VIDEO,
811         .name      = "mad",
812         .long_name = NULL_IF_CONFIG_SMALL("Electronic Arts Madcow Video"),
813         .props     = AV_CODEC_PROP_LOSSY,
814     },
815     {
816         .id        = AV_CODEC_ID_FRWU,
817         .type      = AVMEDIA_TYPE_VIDEO,
818         .name      = "frwu",
819         .long_name = NULL_IF_CONFIG_SMALL("Forward Uncompressed"),
820         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
821     },
822     {
823         .id        = AV_CODEC_ID_FLASHSV2,
824         .type      = AVMEDIA_TYPE_VIDEO,
825         .name      = "flashsv2",
826         .long_name = NULL_IF_CONFIG_SMALL("Flash Screen Video v2"),
827         .props     = AV_CODEC_PROP_LOSSY,
828     },
829     {
830         .id        = AV_CODEC_ID_CDGRAPHICS,
831         .type      = AVMEDIA_TYPE_VIDEO,
832         .name      = "cdgraphics",
833         .long_name = NULL_IF_CONFIG_SMALL("CD Graphics video"),
834         .props     = AV_CODEC_PROP_LOSSY,
835     },
836     {
837         .id        = AV_CODEC_ID_R210,
838         .type      = AVMEDIA_TYPE_VIDEO,
839         .name      = "r210",
840         .long_name = NULL_IF_CONFIG_SMALL("Uncompressed RGB 10-bit"),
841         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
842     },
843     {
844         .id        = AV_CODEC_ID_ANM,
845         .type      = AVMEDIA_TYPE_VIDEO,
846         .name      = "anm",
847         .long_name = NULL_IF_CONFIG_SMALL("Deluxe Paint Animation"),
848         .props     = AV_CODEC_PROP_LOSSY,
849     },
850     {
851         .id        = AV_CODEC_ID_BINKVIDEO,
852         .type      = AVMEDIA_TYPE_VIDEO,
853         .name      = "binkvideo",
854         .long_name = NULL_IF_CONFIG_SMALL("Bink video"),
855         .props     = AV_CODEC_PROP_LOSSY,
856     },
857     {
858         .id        = AV_CODEC_ID_IFF_ILBM,
859         .type      = AVMEDIA_TYPE_VIDEO,
860         .name      = "iff_ilbm",
861         .long_name = NULL_IF_CONFIG_SMALL("IFF ILBM"),
862         .props     = AV_CODEC_PROP_LOSSY,
863     },
864     {
865         .id        = AV_CODEC_ID_IFF_BYTERUN1,
866         .type      = AVMEDIA_TYPE_VIDEO,
867         .name      = "iff_byterun1",
868         .long_name = NULL_IF_CONFIG_SMALL("IFF ByteRun1"),
869         .props     = AV_CODEC_PROP_LOSSY,
870     },
871     {
872         .id        = AV_CODEC_ID_KGV1,
873         .type      = AVMEDIA_TYPE_VIDEO,
874         .name      = "kgv1",
875         .long_name = NULL_IF_CONFIG_SMALL("Kega Game Video"),
876         .props     = AV_CODEC_PROP_LOSSY,
877     },
878     {
879         .id        = AV_CODEC_ID_YOP,
880         .type      = AVMEDIA_TYPE_VIDEO,
881         .name      = "yop",
882         .long_name = NULL_IF_CONFIG_SMALL("Psygnosis YOP Video"),
883         .props     = AV_CODEC_PROP_LOSSY,
884     },
885     {
886         .id        = AV_CODEC_ID_VP8,
887         .type      = AVMEDIA_TYPE_VIDEO,
888         .name      = "vp8",
889         .long_name = NULL_IF_CONFIG_SMALL("On2 VP8"),
890         .props     = AV_CODEC_PROP_LOSSY,
891     },
892     {
893         .id        = AV_CODEC_ID_VP9,
894         .type      = AVMEDIA_TYPE_VIDEO,
895         .name      = "vp9",
896         .long_name = NULL_IF_CONFIG_SMALL("Google VP9"),
897         .props     = AV_CODEC_PROP_LOSSY,
898     },
899     {
900         .id        = AV_CODEC_ID_PICTOR,
901         .type      = AVMEDIA_TYPE_VIDEO,
902         .name      = "pictor",
903         .long_name = NULL_IF_CONFIG_SMALL("Pictor/PC Paint"),
904         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
905     },
906     {
907         .id        = AV_CODEC_ID_A64_MULTI,
908         .type      = AVMEDIA_TYPE_VIDEO,
909         .name      = "a64_multi",
910         .long_name = NULL_IF_CONFIG_SMALL("Multicolor charset for Commodore 64"),
911         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
912     },
913     {
914         .id        = AV_CODEC_ID_A64_MULTI5,
915         .type      = AVMEDIA_TYPE_VIDEO,
916         .name      = "a64_multi5",
917         .long_name = NULL_IF_CONFIG_SMALL("Multicolor charset for Commodore 64, extended with 5th color (colram)"),
918         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
919     },
920     {
921         .id        = AV_CODEC_ID_R10K,
922         .type      = AVMEDIA_TYPE_VIDEO,
923         .name      = "r10k",
924         .long_name = NULL_IF_CONFIG_SMALL("AJA Kona 10-bit RGB Codec"),
925         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
926     },
927     {
928         .id        = AV_CODEC_ID_MXPEG,
929         .type      = AVMEDIA_TYPE_VIDEO,
930         .name      = "mxpeg",
931         .long_name = NULL_IF_CONFIG_SMALL("Mobotix MxPEG video"),
932         .props     = AV_CODEC_PROP_LOSSY,
933     },
934     {
935         .id        = AV_CODEC_ID_LAGARITH,
936         .type      = AVMEDIA_TYPE_VIDEO,
937         .name      = "lagarith",
938         .long_name = NULL_IF_CONFIG_SMALL("Lagarith lossless"),
939         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
940     },
941     {
942         .id        = AV_CODEC_ID_PRORES,
943         .type      = AVMEDIA_TYPE_VIDEO,
944         .name      = "prores",
945         .long_name = NULL_IF_CONFIG_SMALL("Apple ProRes (iCodec Pro)"),
946         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
947     },
948     {
949         .id        = AV_CODEC_ID_JV,
950         .type      = AVMEDIA_TYPE_VIDEO,
951         .name      = "jv",
952         .long_name = NULL_IF_CONFIG_SMALL("Bitmap Brothers JV video"),
953         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
954     },
955     {
956         .id        = AV_CODEC_ID_DFA,
957         .type      = AVMEDIA_TYPE_VIDEO,
958         .name      = "dfa",
959         .long_name = NULL_IF_CONFIG_SMALL("Chronomaster DFA"),
960         .props     = AV_CODEC_PROP_LOSSY,
961     },
962     {
963         .id        = AV_CODEC_ID_UTVIDEO,
964         .type      = AVMEDIA_TYPE_VIDEO,
965         .name      = "utvideo",
966         .long_name = NULL_IF_CONFIG_SMALL("Ut Video"),
967         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
968     },
969     {
970         .id        = AV_CODEC_ID_BMV_VIDEO,
971         .type      = AVMEDIA_TYPE_VIDEO,
972         .name      = "bmv_video",
973         .long_name = NULL_IF_CONFIG_SMALL("Discworld II BMV video"),
974         .props     = AV_CODEC_PROP_LOSSLESS,
975     },
976     {
977         .id        = AV_CODEC_ID_VBLE,
978         .type      = AVMEDIA_TYPE_VIDEO,
979         .name      = "vble",
980         .long_name = NULL_IF_CONFIG_SMALL("VBLE Lossless Codec"),
981         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
982     },
983     {
984         .id        = AV_CODEC_ID_DXTORY,
985         .type      = AVMEDIA_TYPE_VIDEO,
986         .name      = "dxtory",
987         .long_name = NULL_IF_CONFIG_SMALL("Dxtory"),
988         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
989     },
990     {
991         .id        = AV_CODEC_ID_V410,
992         .type      = AVMEDIA_TYPE_VIDEO,
993         .name      = "v410",
994         .long_name = NULL_IF_CONFIG_SMALL("Uncompressed 4:4:4 10-bit"),
995         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
996     },
997     {
998         .id        = AV_CODEC_ID_CDXL,
999         .type      = AVMEDIA_TYPE_VIDEO,
1000         .name      = "cdxl",
1001         .long_name = NULL_IF_CONFIG_SMALL("Commodore CDXL video"),
1002         .props     = AV_CODEC_PROP_LOSSY,
1003     },
1004     {
1005         .id        = AV_CODEC_ID_ZEROCODEC,
1006         .type      = AVMEDIA_TYPE_VIDEO,
1007         .name      = "zerocodec",
1008         .long_name = NULL_IF_CONFIG_SMALL("ZeroCodec Lossless Video"),
1009         .props     = AV_CODEC_PROP_LOSSLESS,
1010     },
1011     {
1012         .id        = AV_CODEC_ID_MSS1,
1013         .type      = AVMEDIA_TYPE_VIDEO,
1014         .name      = "mss1",
1015         .long_name = NULL_IF_CONFIG_SMALL("MS Screen 1"),
1016         .props     = AV_CODEC_PROP_LOSSY,
1017     },
1018     {
1019         .id        = AV_CODEC_ID_MSA1,
1020         .type      = AVMEDIA_TYPE_VIDEO,
1021         .name      = "msa1",
1022         .long_name = NULL_IF_CONFIG_SMALL("MS ATC Screen"),
1023         .props     = AV_CODEC_PROP_LOSSY,
1024     },
1025     {
1026         .id        = AV_CODEC_ID_TSCC2,
1027         .type      = AVMEDIA_TYPE_VIDEO,
1028         .name      = "tscc2",
1029         .long_name = NULL_IF_CONFIG_SMALL("TechSmith Screen Codec 2"),
1030         .props     = AV_CODEC_PROP_LOSSY,
1031     },
1032     {
1033         .id        = AV_CODEC_ID_MTS2,
1034         .type      = AVMEDIA_TYPE_VIDEO,
1035         .name      = "mts2",
1036         .long_name = NULL_IF_CONFIG_SMALL("MS Expression Encoder Screen"),
1037         .props     = AV_CODEC_PROP_LOSSY,
1038     },
1039     {
1040         .id        = AV_CODEC_ID_CLLC,
1041         .type      = AVMEDIA_TYPE_VIDEO,
1042         .name      = "cllc",
1043         .long_name = NULL_IF_CONFIG_SMALL("Canopus Lossless Codec"),
1044         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1045     },
1046     {
1047         .id        = AV_CODEC_ID_MSS2,
1048         .type      = AVMEDIA_TYPE_VIDEO,
1049         .name      = "mss2",
1050         .long_name = NULL_IF_CONFIG_SMALL("MS Windows Media Video V9 Screen"),
1051         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1052     },
1053     {
1054         .id        = AV_CODEC_ID_AIC,
1055         .type      = AVMEDIA_TYPE_VIDEO,
1056         .name      = "aic",
1057         .long_name = NULL_IF_CONFIG_SMALL("Apple Intermediate Codec"),
1058         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1059     },
1060     {
1061         .id        = AV_CODEC_ID_ESCAPE130,
1062         .type      = AVMEDIA_TYPE_VIDEO,
1063         .name      = "escape130",
1064         .long_name = NULL_IF_CONFIG_SMALL("Escape 130"),
1065         .props     = AV_CODEC_PROP_LOSSY,
1066     },
1067     {
1068         .id        = AV_CODEC_ID_G2M,
1069         .type      = AVMEDIA_TYPE_VIDEO,
1070         .name      = "g2m",
1071         .long_name = NULL_IF_CONFIG_SMALL("Go2Meeting"),
1072         .props     = AV_CODEC_PROP_LOSSY,
1073     },
1074     {
1075         .id        = AV_CODEC_ID_HNM4_VIDEO,
1076         .type      = AVMEDIA_TYPE_VIDEO,
1077         .name      = "hnm4video",
1078         .long_name = NULL_IF_CONFIG_SMALL("HNM 4 video"),
1079         .props     = AV_CODEC_PROP_LOSSY,
1080     },
1081     {
1082         .id        = AV_CODEC_ID_HEVC,
1083         .type      = AVMEDIA_TYPE_VIDEO,
1084         .name      = "hevc",
1085         .long_name = NULL_IF_CONFIG_SMALL("HEVC (High Efficiency Video Coding)"),
1086         .props     = AV_CODEC_PROP_LOSSY,
1087     },
1088     {
1089         .id        = AV_CODEC_ID_FIC,
1090         .type      = AVMEDIA_TYPE_VIDEO,
1091         .name      = "fic",
1092         .long_name = NULL_IF_CONFIG_SMALL("Mirillis FIC"),
1093         .props     = AV_CODEC_PROP_LOSSY,
1094     },
1095
1096     /* image codecs */
1097     {
1098         .id        = AV_CODEC_ID_ANSI,
1099         .type      = AVMEDIA_TYPE_VIDEO,
1100         .name      = "ansi",
1101         .long_name = NULL_IF_CONFIG_SMALL("ASCII/ANSI art"),
1102         .props     = AV_CODEC_PROP_LOSSY,
1103     },
1104     {
1105         .id        = AV_CODEC_ID_DPX,
1106         .type      = AVMEDIA_TYPE_VIDEO,
1107         .name      = "dpx",
1108         .long_name = NULL_IF_CONFIG_SMALL("DPX image"),
1109         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1110     },
1111     {
1112         .id        = AV_CODEC_ID_GIF,
1113         .type      = AVMEDIA_TYPE_VIDEO,
1114         .name      = "gif",
1115         .long_name = NULL_IF_CONFIG_SMALL("GIF (Graphics Interchange Format)"),
1116         .props     = AV_CODEC_PROP_LOSSLESS,
1117     },
1118     {
1119         .id        = AV_CODEC_ID_JPEGLS,
1120         .type      = AVMEDIA_TYPE_VIDEO,
1121         .name      = "jpegls",
1122         .long_name = NULL_IF_CONFIG_SMALL("JPEG-LS"),
1123         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY |
1124                      AV_CODEC_PROP_LOSSLESS,
1125     },
1126     {
1127         .id        = AV_CODEC_ID_LJPEG,
1128         .type      = AVMEDIA_TYPE_VIDEO,
1129         .name      = "ljpeg",
1130         .long_name = NULL_IF_CONFIG_SMALL("Lossless JPEG"),
1131         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1132     },
1133     {
1134         .id        = AV_CODEC_ID_PAM,
1135         .type      = AVMEDIA_TYPE_VIDEO,
1136         .name      = "pam",
1137         .long_name = NULL_IF_CONFIG_SMALL("PAM (Portable AnyMap) image"),
1138         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1139     },
1140     {
1141         .id        = AV_CODEC_ID_PBM,
1142         .type      = AVMEDIA_TYPE_VIDEO,
1143         .name      = "pbm",
1144         .long_name = NULL_IF_CONFIG_SMALL("PBM (Portable BitMap) image"),
1145         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1146     },
1147     {
1148         .id        = AV_CODEC_ID_PCX,
1149         .type      = AVMEDIA_TYPE_VIDEO,
1150         .name      = "pcx",
1151         .long_name = NULL_IF_CONFIG_SMALL("PC Paintbrush PCX image"),
1152         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1153     },
1154     {
1155         .id        = AV_CODEC_ID_PGM,
1156         .type      = AVMEDIA_TYPE_VIDEO,
1157         .name      = "pgm",
1158         .long_name = NULL_IF_CONFIG_SMALL("PGM (Portable GrayMap) image"),
1159         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1160     },
1161     {
1162         .id        = AV_CODEC_ID_PGMYUV,
1163         .type      = AVMEDIA_TYPE_VIDEO,
1164         .name      = "pgmyuv",
1165         .long_name = NULL_IF_CONFIG_SMALL("PGMYUV (Portable GrayMap YUV) image"),
1166         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1167     },
1168     {
1169         .id        = AV_CODEC_ID_PNG,
1170         .type      = AVMEDIA_TYPE_VIDEO,
1171         .name      = "png",
1172         .long_name = NULL_IF_CONFIG_SMALL("PNG (Portable Network Graphics) image"),
1173         .props     = AV_CODEC_PROP_LOSSLESS,
1174     },
1175     {
1176         .id        = AV_CODEC_ID_PPM,
1177         .type      = AVMEDIA_TYPE_VIDEO,
1178         .name      = "ppm",
1179         .long_name = NULL_IF_CONFIG_SMALL("PPM (Portable PixelMap) image"),
1180         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1181     },
1182     {
1183         .id        = AV_CODEC_ID_PTX,
1184         .type      = AVMEDIA_TYPE_VIDEO,
1185         .name      = "ptx",
1186         .long_name = NULL_IF_CONFIG_SMALL("V.Flash PTX image"),
1187         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1188     },
1189     {
1190         .id        = AV_CODEC_ID_SGI,
1191         .type      = AVMEDIA_TYPE_VIDEO,
1192         .name      = "sgi",
1193         .long_name = NULL_IF_CONFIG_SMALL("SGI image"),
1194         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1195     },
1196     {
1197         .id        = AV_CODEC_ID_SP5X,
1198         .type      = AVMEDIA_TYPE_VIDEO,
1199         .name      = "sp5x",
1200         .long_name = NULL_IF_CONFIG_SMALL("Sunplus JPEG (SP5X)"),
1201         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1202     },
1203     {
1204         .id        = AV_CODEC_ID_SUNRAST,
1205         .type      = AVMEDIA_TYPE_VIDEO,
1206         .name      = "sunrast",
1207         .long_name = NULL_IF_CONFIG_SMALL("Sun Rasterfile image"),
1208         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1209     },
1210     {
1211         .id        = AV_CODEC_ID_TARGA,
1212         .type      = AVMEDIA_TYPE_VIDEO,
1213         .name      = "targa",
1214         .long_name = NULL_IF_CONFIG_SMALL("Truevision Targa image"),
1215         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1216     },
1217     {
1218         .id        = AV_CODEC_ID_TIFF,
1219         .type      = AVMEDIA_TYPE_VIDEO,
1220         .name      = "tiff",
1221         .long_name = NULL_IF_CONFIG_SMALL("TIFF image"),
1222         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1223     },
1224     {
1225         .id        = AV_CODEC_ID_TXD,
1226         .type      = AVMEDIA_TYPE_VIDEO,
1227         .name      = "txd",
1228         .long_name = NULL_IF_CONFIG_SMALL("Renderware TXD (TeXture Dictionary) image"),
1229         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1230     },
1231     {
1232         .id        = AV_CODEC_ID_VC1IMAGE,
1233         .type      = AVMEDIA_TYPE_VIDEO,
1234         .name      = "vc1image",
1235         .long_name = NULL_IF_CONFIG_SMALL("Windows Media Video 9 Image v2"),
1236         .props     = AV_CODEC_PROP_LOSSY,
1237     },
1238     {
1239         .id        = AV_CODEC_ID_WEBP,
1240         .type      = AVMEDIA_TYPE_VIDEO,
1241         .name      = "webp",
1242         .long_name = NULL_IF_CONFIG_SMALL("WebP"),
1243         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY |
1244                      AV_CODEC_PROP_LOSSLESS,
1245     },
1246     {
1247         .id        = AV_CODEC_ID_WMV3IMAGE,
1248         .type      = AVMEDIA_TYPE_VIDEO,
1249         .name      = "wmv3image",
1250         .long_name = NULL_IF_CONFIG_SMALL("Windows Media Video 9 Image"),
1251         .props     = AV_CODEC_PROP_LOSSY,
1252     },
1253     {
1254         .id        = AV_CODEC_ID_XBM,
1255         .type      = AVMEDIA_TYPE_VIDEO,
1256         .name      = "xbm",
1257         .long_name = NULL_IF_CONFIG_SMALL("XBM (X BitMap) image"),
1258         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1259     },
1260     {
1261         .id        = AV_CODEC_ID_XWD,
1262         .type      = AVMEDIA_TYPE_VIDEO,
1263         .name      = "xwd",
1264         .long_name = NULL_IF_CONFIG_SMALL("XWD (X Window Dump) image"),
1265         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1266     },
1267
1268     /* various PCM "codecs" */
1269     {
1270         .id        = AV_CODEC_ID_PCM_S16LE,
1271         .type      = AVMEDIA_TYPE_AUDIO,
1272         .name      = "pcm_s16le",
1273         .long_name = NULL_IF_CONFIG_SMALL("PCM signed 16-bit little-endian"),
1274         .props     = AV_CODEC_PROP_LOSSLESS,
1275     },
1276     {
1277         .id        = AV_CODEC_ID_PCM_S16BE,
1278         .type      = AVMEDIA_TYPE_AUDIO,
1279         .name      = "pcm_s16be",
1280         .long_name = NULL_IF_CONFIG_SMALL("PCM signed 16-bit big-endian"),
1281         .props     = AV_CODEC_PROP_LOSSLESS,
1282     },
1283     {
1284         .id        = AV_CODEC_ID_PCM_U16LE,
1285         .type      = AVMEDIA_TYPE_AUDIO,
1286         .name      = "pcm_u16le",
1287         .long_name = NULL_IF_CONFIG_SMALL("PCM unsigned 16-bit little-endian"),
1288         .props     = AV_CODEC_PROP_LOSSLESS,
1289     },
1290     {
1291         .id        = AV_CODEC_ID_PCM_U16BE,
1292         .type      = AVMEDIA_TYPE_AUDIO,
1293         .name      = "pcm_u16be",
1294         .long_name = NULL_IF_CONFIG_SMALL("PCM unsigned 16-bit big-endian"),
1295         .props     = AV_CODEC_PROP_LOSSLESS,
1296     },
1297     {
1298         .id        = AV_CODEC_ID_PCM_S8,
1299         .type      = AVMEDIA_TYPE_AUDIO,
1300         .name      = "pcm_s8",
1301         .long_name = NULL_IF_CONFIG_SMALL("PCM signed 8-bit"),
1302         .props     = AV_CODEC_PROP_LOSSLESS,
1303     },
1304     {
1305         .id        = AV_CODEC_ID_PCM_U8,
1306         .type      = AVMEDIA_TYPE_AUDIO,
1307         .name      = "pcm_u8",
1308         .long_name = NULL_IF_CONFIG_SMALL("PCM unsigned 8-bit"),
1309         .props     = AV_CODEC_PROP_LOSSLESS,
1310     },
1311     {
1312         .id        = AV_CODEC_ID_PCM_MULAW,
1313         .type      = AVMEDIA_TYPE_AUDIO,
1314         .name      = "pcm_mulaw",
1315         .long_name = NULL_IF_CONFIG_SMALL("PCM mu-law"),
1316     },
1317     {
1318         .id        = AV_CODEC_ID_PCM_ALAW,
1319         .type      = AVMEDIA_TYPE_AUDIO,
1320         .name      = "pcm_alaw",
1321         .long_name = NULL_IF_CONFIG_SMALL("PCM A-law"),
1322     },
1323     {
1324         .id        = AV_CODEC_ID_PCM_S32LE,
1325         .type      = AVMEDIA_TYPE_AUDIO,
1326         .name      = "pcm_s32le",
1327         .long_name = NULL_IF_CONFIG_SMALL("PCM signed 32-bit little-endian"),
1328         .props     = AV_CODEC_PROP_LOSSLESS,
1329     },
1330     {
1331         .id        = AV_CODEC_ID_PCM_S32BE,
1332         .type      = AVMEDIA_TYPE_AUDIO,
1333         .name      = "pcm_s32be",
1334         .long_name = NULL_IF_CONFIG_SMALL("PCM signed 32-bit big-endian"),
1335         .props     = AV_CODEC_PROP_LOSSLESS,
1336     },
1337     {
1338         .id        = AV_CODEC_ID_PCM_U32LE,
1339         .type      = AVMEDIA_TYPE_AUDIO,
1340         .name      = "pcm_u32le",
1341         .long_name = NULL_IF_CONFIG_SMALL("PCM unsigned 32-bit little-endian"),
1342         .props     = AV_CODEC_PROP_LOSSLESS,
1343     },
1344     {
1345         .id        = AV_CODEC_ID_PCM_U32BE,
1346         .type      = AVMEDIA_TYPE_AUDIO,
1347         .name      = "pcm_u32be",
1348         .long_name = NULL_IF_CONFIG_SMALL("PCM unsigned 32-bit big-endian"),
1349         .props     = AV_CODEC_PROP_LOSSLESS,
1350     },
1351     {
1352         .id        = AV_CODEC_ID_PCM_S24LE,
1353         .type      = AVMEDIA_TYPE_AUDIO,
1354         .name      = "pcm_s24le",
1355         .long_name = NULL_IF_CONFIG_SMALL("PCM signed 24-bit little-endian"),
1356         .props     = AV_CODEC_PROP_LOSSLESS,
1357     },
1358     {
1359         .id        = AV_CODEC_ID_PCM_S24BE,
1360         .type      = AVMEDIA_TYPE_AUDIO,
1361         .name      = "pcm_s24be",
1362         .long_name = NULL_IF_CONFIG_SMALL("PCM signed 24-bit big-endian"),
1363         .props     = AV_CODEC_PROP_LOSSLESS,
1364     },
1365     {
1366         .id        = AV_CODEC_ID_PCM_U24LE,
1367         .type      = AVMEDIA_TYPE_AUDIO,
1368         .name      = "pcm_u24le",
1369         .long_name = NULL_IF_CONFIG_SMALL("PCM unsigned 24-bit little-endian"),
1370         .props     = AV_CODEC_PROP_LOSSLESS,
1371     },
1372     {
1373         .id        = AV_CODEC_ID_PCM_U24BE,
1374         .type      = AVMEDIA_TYPE_AUDIO,
1375         .name      = "pcm_u24be",
1376         .long_name = NULL_IF_CONFIG_SMALL("PCM unsigned 24-bit big-endian"),
1377         .props     = AV_CODEC_PROP_LOSSLESS,
1378     },
1379     {
1380         .id        = AV_CODEC_ID_PCM_S24DAUD,
1381         .type      = AVMEDIA_TYPE_AUDIO,
1382         .name      = "pcm_s24daud",
1383         .long_name = NULL_IF_CONFIG_SMALL("PCM D-Cinema audio signed 24-bit"),
1384         .props     = AV_CODEC_PROP_LOSSLESS,
1385     },
1386     {
1387         .id        = AV_CODEC_ID_PCM_ZORK,
1388         .type      = AVMEDIA_TYPE_AUDIO,
1389         .name      = "pcm_zork",
1390         .long_name = NULL_IF_CONFIG_SMALL("PCM Zork"),
1391         .props     = AV_CODEC_PROP_LOSSY,
1392     },
1393     {
1394         .id        = AV_CODEC_ID_PCM_S16LE_PLANAR,
1395         .type      = AVMEDIA_TYPE_AUDIO,
1396         .name      = "pcm_s16le_planar",
1397         .long_name = NULL_IF_CONFIG_SMALL("PCM 16-bit little-endian planar"),
1398         .props     = AV_CODEC_PROP_LOSSLESS,
1399     },
1400     {
1401         .id        = AV_CODEC_ID_PCM_S24LE_PLANAR,
1402         .type      = AVMEDIA_TYPE_AUDIO,
1403         .name      = "pcm_s24le_planar",
1404         .long_name = NULL_IF_CONFIG_SMALL("PCM signed 24-bit little-endian planar"),
1405         .props     = AV_CODEC_PROP_LOSSLESS,
1406     },
1407     {
1408         .id        = AV_CODEC_ID_PCM_S32LE_PLANAR,
1409         .type      = AVMEDIA_TYPE_AUDIO,
1410         .name      = "pcm_s32le_planar",
1411         .long_name = NULL_IF_CONFIG_SMALL("PCM signed 32-bit little-endian planar"),
1412         .props     = AV_CODEC_PROP_LOSSLESS,
1413     },
1414     {
1415         .id        = AV_CODEC_ID_PCM_DVD,
1416         .type      = AVMEDIA_TYPE_AUDIO,
1417         .name      = "pcm_dvd",
1418         .long_name = NULL_IF_CONFIG_SMALL("PCM signed 20|24-bit big-endian"),
1419         .props     = AV_CODEC_PROP_LOSSLESS,
1420     },
1421     {
1422         .id        = AV_CODEC_ID_PCM_F32BE,
1423         .type      = AVMEDIA_TYPE_AUDIO,
1424         .name      = "pcm_f32be",
1425         .long_name = NULL_IF_CONFIG_SMALL("PCM 32-bit floating point big-endian"),
1426         .props     = AV_CODEC_PROP_LOSSLESS,
1427     },
1428     {
1429         .id        = AV_CODEC_ID_PCM_F32LE,
1430         .type      = AVMEDIA_TYPE_AUDIO,
1431         .name      = "pcm_f32le",
1432         .long_name = NULL_IF_CONFIG_SMALL("PCM 32-bit floating point little-endian"),
1433         .props     = AV_CODEC_PROP_LOSSLESS,
1434     },
1435     {
1436         .id        = AV_CODEC_ID_PCM_F64BE,
1437         .type      = AVMEDIA_TYPE_AUDIO,
1438         .name      = "pcm_f64be",
1439         .long_name = NULL_IF_CONFIG_SMALL("PCM 64-bit floating point big-endian"),
1440         .props     = AV_CODEC_PROP_LOSSLESS,
1441     },
1442     {
1443         .id        = AV_CODEC_ID_PCM_F64LE,
1444         .type      = AVMEDIA_TYPE_AUDIO,
1445         .name      = "pcm_f64le",
1446         .long_name = NULL_IF_CONFIG_SMALL("PCM 64-bit floating point little-endian"),
1447         .props     = AV_CODEC_PROP_LOSSLESS,
1448     },
1449     {
1450         .id        = AV_CODEC_ID_PCM_BLURAY,
1451         .type      = AVMEDIA_TYPE_AUDIO,
1452         .name      = "pcm_bluray",
1453         .long_name = NULL_IF_CONFIG_SMALL("PCM signed 16|20|24-bit big-endian for Blu-ray media"),
1454         .props     = AV_CODEC_PROP_LOSSLESS,
1455     },
1456     {
1457         .id        = AV_CODEC_ID_PCM_LXF,
1458         .type      = AVMEDIA_TYPE_AUDIO,
1459         .name      = "pcm_lxf",
1460         .long_name = NULL_IF_CONFIG_SMALL("PCM signed 20-bit little-endian planar"),
1461         .props     = AV_CODEC_PROP_LOSSLESS,
1462     },
1463     {
1464         .id        = AV_CODEC_ID_S302M,
1465         .type      = AVMEDIA_TYPE_AUDIO,
1466         .name      = "s302m",
1467         .long_name = NULL_IF_CONFIG_SMALL("SMPTE 302M"),
1468         .props     = AV_CODEC_PROP_LOSSY,
1469     },
1470     {
1471         .id        = AV_CODEC_ID_PCM_S8_PLANAR,
1472         .type      = AVMEDIA_TYPE_AUDIO,
1473         .name      = "pcm_s8_planar",
1474         .long_name = NULL_IF_CONFIG_SMALL("PCM signed 8-bit planar"),
1475         .props     = AV_CODEC_PROP_LOSSLESS,
1476     },
1477
1478     /* various ADPCM codecs */
1479     {
1480         .id        = AV_CODEC_ID_ADPCM_IMA_QT,
1481         .type      = AVMEDIA_TYPE_AUDIO,
1482         .name      = "adpcm_ima_qt",
1483         .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA QuickTime"),
1484         .props     = AV_CODEC_PROP_LOSSY,
1485     },
1486     {
1487         .id        = AV_CODEC_ID_ADPCM_IMA_WAV,
1488         .type      = AVMEDIA_TYPE_AUDIO,
1489         .name      = "adpcm_ima_wav",
1490         .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA WAV"),
1491         .props     = AV_CODEC_PROP_LOSSY,
1492     },
1493     {
1494         .id        = AV_CODEC_ID_ADPCM_IMA_DK3,
1495         .type      = AVMEDIA_TYPE_AUDIO,
1496         .name      = "adpcm_ima_dk3",
1497         .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA Duck DK3"),
1498         .props     = AV_CODEC_PROP_LOSSY,
1499     },
1500     {
1501         .id        = AV_CODEC_ID_ADPCM_IMA_DK4,
1502         .type      = AVMEDIA_TYPE_AUDIO,
1503         .name      = "adpcm_ima_dk4",
1504         .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA Duck DK4"),
1505         .props     = AV_CODEC_PROP_LOSSY,
1506     },
1507     {
1508         .id        = AV_CODEC_ID_ADPCM_IMA_WS,
1509         .type      = AVMEDIA_TYPE_AUDIO,
1510         .name      = "adpcm_ima_ws",
1511         .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA Westwood"),
1512         .props     = AV_CODEC_PROP_LOSSY,
1513     },
1514     {
1515         .id        = AV_CODEC_ID_ADPCM_IMA_SMJPEG,
1516         .type      = AVMEDIA_TYPE_AUDIO,
1517         .name      = "adpcm_ima_smjpeg",
1518         .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA Loki SDL MJPEG"),
1519         .props     = AV_CODEC_PROP_LOSSY,
1520     },
1521     {
1522         .id        = AV_CODEC_ID_ADPCM_MS,
1523         .type      = AVMEDIA_TYPE_AUDIO,
1524         .name      = "adpcm_ms",
1525         .long_name = NULL_IF_CONFIG_SMALL("ADPCM Microsoft"),
1526         .props     = AV_CODEC_PROP_LOSSY,
1527     },
1528     {
1529         .id        = AV_CODEC_ID_ADPCM_4XM,
1530         .type      = AVMEDIA_TYPE_AUDIO,
1531         .name      = "adpcm_4xm",
1532         .long_name = NULL_IF_CONFIG_SMALL("ADPCM 4X Movie"),
1533         .props     = AV_CODEC_PROP_LOSSY,
1534     },
1535     {
1536         .id        = AV_CODEC_ID_ADPCM_XA,
1537         .type      = AVMEDIA_TYPE_AUDIO,
1538         .name      = "adpcm_xa",
1539         .long_name = NULL_IF_CONFIG_SMALL("ADPCM CDROM XA"),
1540         .props     = AV_CODEC_PROP_LOSSY,
1541     },
1542     {
1543         .id        = AV_CODEC_ID_ADPCM_ADX,
1544         .type      = AVMEDIA_TYPE_AUDIO,
1545         .name      = "adpcm_adx",
1546         .long_name = NULL_IF_CONFIG_SMALL("SEGA CRI ADX ADPCM"),
1547         .props     = AV_CODEC_PROP_LOSSY,
1548     },
1549     {
1550         .id        = AV_CODEC_ID_ADPCM_EA,
1551         .type      = AVMEDIA_TYPE_AUDIO,
1552         .name      = "adpcm_ea",
1553         .long_name = NULL_IF_CONFIG_SMALL("ADPCM Electronic Arts"),
1554         .props     = AV_CODEC_PROP_LOSSY,
1555     },
1556     {
1557         .id        = AV_CODEC_ID_ADPCM_G726,
1558         .type      = AVMEDIA_TYPE_AUDIO,
1559         .name      = "adpcm_g726",
1560         .long_name = NULL_IF_CONFIG_SMALL("G.726 ADPCM"),
1561         .props     = AV_CODEC_PROP_LOSSY,
1562     },
1563     {
1564         .id        = AV_CODEC_ID_ADPCM_CT,
1565         .type      = AVMEDIA_TYPE_AUDIO,
1566         .name      = "adpcm_ct",
1567         .long_name = NULL_IF_CONFIG_SMALL("ADPCM Creative Technology"),
1568         .props     = AV_CODEC_PROP_LOSSY,
1569     },
1570     {
1571         .id        = AV_CODEC_ID_ADPCM_SWF,
1572         .type      = AVMEDIA_TYPE_AUDIO,
1573         .name      = "adpcm_swf",
1574         .long_name = NULL_IF_CONFIG_SMALL("ADPCM Shockwave Flash"),
1575         .props     = AV_CODEC_PROP_LOSSY,
1576     },
1577     {
1578         .id        = AV_CODEC_ID_ADPCM_YAMAHA,
1579         .type      = AVMEDIA_TYPE_AUDIO,
1580         .name      = "adpcm_yamaha",
1581         .long_name = NULL_IF_CONFIG_SMALL("ADPCM Yamaha"),
1582         .props     = AV_CODEC_PROP_LOSSY,
1583     },
1584     {
1585         .id        = AV_CODEC_ID_ADPCM_SBPRO_4,
1586         .type      = AVMEDIA_TYPE_AUDIO,
1587         .name      = "adpcm_sbpro_4",
1588         .long_name = NULL_IF_CONFIG_SMALL("ADPCM Sound Blaster Pro 4-bit"),
1589         .props     = AV_CODEC_PROP_LOSSY,
1590     },
1591     {
1592         .id        = AV_CODEC_ID_ADPCM_SBPRO_3,
1593         .type      = AVMEDIA_TYPE_AUDIO,
1594         .name      = "adpcm_sbpro_3",
1595         .long_name = NULL_IF_CONFIG_SMALL("ADPCM Sound Blaster Pro 2.6-bit"),
1596         .props     = AV_CODEC_PROP_LOSSY,
1597     },
1598     {
1599         .id        = AV_CODEC_ID_ADPCM_SBPRO_2,
1600         .type      = AVMEDIA_TYPE_AUDIO,
1601         .name      = "adpcm_sbpro_2",
1602         .long_name = NULL_IF_CONFIG_SMALL("ADPCM Sound Blaster Pro 2-bit"),
1603         .props     = AV_CODEC_PROP_LOSSY,
1604     },
1605     {
1606         .id        = AV_CODEC_ID_ADPCM_THP,
1607         .type      = AVMEDIA_TYPE_AUDIO,
1608         .name      = "adpcm_thp",
1609         .long_name = NULL_IF_CONFIG_SMALL("ADPCM Nintendo Gamecube THP"),
1610         .props     = AV_CODEC_PROP_LOSSY,
1611     },
1612     {
1613         .id        = AV_CODEC_ID_ADPCM_IMA_AMV,
1614         .type      = AVMEDIA_TYPE_AUDIO,
1615         .name      = "adpcm_ima_amv",
1616         .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA AMV"),
1617         .props     = AV_CODEC_PROP_LOSSY,
1618     },
1619     {
1620         .id        = AV_CODEC_ID_ADPCM_EA_R1,
1621         .type      = AVMEDIA_TYPE_AUDIO,
1622         .name      = "adpcm_ea_r1",
1623         .long_name = NULL_IF_CONFIG_SMALL("ADPCM Electronic Arts R1"),
1624         .props     = AV_CODEC_PROP_LOSSY,
1625     },
1626     {
1627         .id        = AV_CODEC_ID_ADPCM_EA_R3,
1628         .type      = AVMEDIA_TYPE_AUDIO,
1629         .name      = "adpcm_ea_r3",
1630         .long_name = NULL_IF_CONFIG_SMALL("ADPCM Electronic Arts R3"),
1631         .props     = AV_CODEC_PROP_LOSSY,
1632     },
1633     {
1634         .id        = AV_CODEC_ID_ADPCM_EA_R2,
1635         .type      = AVMEDIA_TYPE_AUDIO,
1636         .name      = "adpcm_ea_r2",
1637         .long_name = NULL_IF_CONFIG_SMALL("ADPCM Electronic Arts R2"),
1638         .props     = AV_CODEC_PROP_LOSSY,
1639     },
1640     {
1641         .id        = AV_CODEC_ID_ADPCM_IMA_EA_SEAD,
1642         .type      = AVMEDIA_TYPE_AUDIO,
1643         .name      = "adpcm_ima_ea_sead",
1644         .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA Electronic Arts SEAD"),
1645         .props     = AV_CODEC_PROP_LOSSY,
1646     },
1647     {
1648         .id        = AV_CODEC_ID_ADPCM_IMA_EA_EACS,
1649         .type      = AVMEDIA_TYPE_AUDIO,
1650         .name      = "adpcm_ima_ea_eacs",
1651         .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA Electronic Arts EACS"),
1652         .props     = AV_CODEC_PROP_LOSSY,
1653     },
1654     {
1655         .id        = AV_CODEC_ID_ADPCM_EA_XAS,
1656         .type      = AVMEDIA_TYPE_AUDIO,
1657         .name      = "adpcm_ea_xas",
1658         .long_name = NULL_IF_CONFIG_SMALL("ADPCM Electronic Arts XAS"),
1659         .props     = AV_CODEC_PROP_LOSSY,
1660     },
1661     {
1662         .id        = AV_CODEC_ID_ADPCM_EA_MAXIS_XA,
1663         .type      = AVMEDIA_TYPE_AUDIO,
1664         .name      = "adpcm_ea_maxis_xa",
1665         .long_name = NULL_IF_CONFIG_SMALL("ADPCM Electronic Arts Maxis CDROM XA"),
1666         .props     = AV_CODEC_PROP_LOSSY,
1667     },
1668     {
1669         .id        = AV_CODEC_ID_ADPCM_IMA_ISS,
1670         .type      = AVMEDIA_TYPE_AUDIO,
1671         .name      = "adpcm_ima_iss",
1672         .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA Funcom ISS"),
1673         .props     = AV_CODEC_PROP_LOSSY,
1674     },
1675     {
1676         .id        = AV_CODEC_ID_ADPCM_G722,
1677         .type      = AVMEDIA_TYPE_AUDIO,
1678         .name      = "adpcm_g722",
1679         .long_name = NULL_IF_CONFIG_SMALL("G.722 ADPCM"),
1680         .props     = AV_CODEC_PROP_LOSSY,
1681     },
1682     {
1683         .id        = AV_CODEC_ID_ADPCM_IMA_APC,
1684         .type      = AVMEDIA_TYPE_AUDIO,
1685         .name      = "adpcm_ima_apc",
1686         .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA CRYO APC"),
1687         .props     = AV_CODEC_PROP_LOSSY,
1688     },
1689
1690     /* AMR */
1691     {
1692         .id        = AV_CODEC_ID_AMR_NB,
1693         .type      = AVMEDIA_TYPE_AUDIO,
1694         .name      = "amr_nb",
1695         .long_name = NULL_IF_CONFIG_SMALL("AMR-NB (Adaptive Multi-Rate NarrowBand)"),
1696         .props     = AV_CODEC_PROP_LOSSY,
1697     },
1698     {
1699         .id        = AV_CODEC_ID_AMR_WB,
1700         .type      = AVMEDIA_TYPE_AUDIO,
1701         .name      = "amr_wb",
1702         .long_name = NULL_IF_CONFIG_SMALL("AMR-WB (Adaptive Multi-Rate WideBand)"),
1703         .props     = AV_CODEC_PROP_LOSSY,
1704     },
1705
1706     /* RealAudio codecs*/
1707     {
1708         .id        = AV_CODEC_ID_RA_144,
1709         .type      = AVMEDIA_TYPE_AUDIO,
1710         .name      = "ra_144",
1711         .long_name = NULL_IF_CONFIG_SMALL("RealAudio 1.0 (14.4K)"),
1712         .props     = AV_CODEC_PROP_LOSSY,
1713     },
1714     {
1715         .id        = AV_CODEC_ID_RA_288,
1716         .type      = AVMEDIA_TYPE_AUDIO,
1717         .name      = "ra_288",
1718         .long_name = NULL_IF_CONFIG_SMALL("RealAudio 2.0 (28.8K)"),
1719         .props     = AV_CODEC_PROP_LOSSY,
1720     },
1721
1722     /* various DPCM codecs */
1723     {
1724         .id        = AV_CODEC_ID_ROQ_DPCM,
1725         .type      = AVMEDIA_TYPE_AUDIO,
1726         .name      = "roq_dpcm",
1727         .long_name = NULL_IF_CONFIG_SMALL("DPCM id RoQ"),
1728         .props     = AV_CODEC_PROP_LOSSY,
1729     },
1730     {
1731         .id        = AV_CODEC_ID_INTERPLAY_DPCM,
1732         .type      = AVMEDIA_TYPE_AUDIO,
1733         .name      = "interplay_dpcm",
1734         .long_name = NULL_IF_CONFIG_SMALL("DPCM Interplay"),
1735         .props     = AV_CODEC_PROP_LOSSY,
1736     },
1737     {
1738         .id        = AV_CODEC_ID_XAN_DPCM,
1739         .type      = AVMEDIA_TYPE_AUDIO,
1740         .name      = "xan_dpcm",
1741         .long_name = NULL_IF_CONFIG_SMALL("DPCM Xan"),
1742         .props     = AV_CODEC_PROP_LOSSY,
1743     },
1744     {
1745         .id        = AV_CODEC_ID_SOL_DPCM,
1746         .type      = AVMEDIA_TYPE_AUDIO,
1747         .name      = "sol_dpcm",
1748         .long_name = NULL_IF_CONFIG_SMALL("DPCM Sol"),
1749         .props     = AV_CODEC_PROP_LOSSY,
1750     },
1751
1752     /* audio codecs */
1753     {
1754         .id        = AV_CODEC_ID_MP2,
1755         .type      = AVMEDIA_TYPE_AUDIO,
1756         .name      = "mp2",
1757         .long_name = NULL_IF_CONFIG_SMALL("MP2 (MPEG audio layer 2)"),
1758         .props     = AV_CODEC_PROP_LOSSY,
1759     },
1760     {
1761         .id        = AV_CODEC_ID_MP3,
1762         .type      = AVMEDIA_TYPE_AUDIO,
1763         .name      = "mp3",
1764         .long_name = NULL_IF_CONFIG_SMALL("MP3 (MPEG audio layer 3)"),
1765         .props     = AV_CODEC_PROP_LOSSY,
1766     },
1767     {
1768         .id        = AV_CODEC_ID_AAC,
1769         .type      = AVMEDIA_TYPE_AUDIO,
1770         .name      = "aac",
1771         .long_name = NULL_IF_CONFIG_SMALL("AAC (Advanced Audio Coding)"),
1772         .props     = AV_CODEC_PROP_LOSSY,
1773     },
1774     {
1775         .id        = AV_CODEC_ID_AC3,
1776         .type      = AVMEDIA_TYPE_AUDIO,
1777         .name      = "ac3",
1778         .long_name = NULL_IF_CONFIG_SMALL("ATSC A/52A (AC-3)"),
1779         .props     = AV_CODEC_PROP_LOSSY,
1780     },
1781     {
1782         .id        = AV_CODEC_ID_DTS,
1783         .type      = AVMEDIA_TYPE_AUDIO,
1784         .name      = "dts",
1785         .long_name = NULL_IF_CONFIG_SMALL("DCA (DTS Coherent Acoustics)"),
1786         .props     = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_LOSSLESS,
1787     },
1788     {
1789         .id        = AV_CODEC_ID_VORBIS,
1790         .type      = AVMEDIA_TYPE_AUDIO,
1791         .name      = "vorbis",
1792         .long_name = NULL_IF_CONFIG_SMALL("Vorbis"),
1793         .props     = AV_CODEC_PROP_LOSSY,
1794     },
1795     {
1796         .id        = AV_CODEC_ID_DVAUDIO,
1797         .type      = AVMEDIA_TYPE_AUDIO,
1798         .name      = "dvaudio",
1799         .long_name = NULL_IF_CONFIG_SMALL("DVAUDIO"),
1800         .props     = AV_CODEC_PROP_LOSSY,
1801     },
1802     {
1803         .id        = AV_CODEC_ID_WMAV1,
1804         .type      = AVMEDIA_TYPE_AUDIO,
1805         .name      = "wmav1",
1806         .long_name = NULL_IF_CONFIG_SMALL("Windows Media Audio 1"),
1807         .props     = AV_CODEC_PROP_LOSSY,
1808     },
1809     {
1810         .id        = AV_CODEC_ID_WMAV2,
1811         .type      = AVMEDIA_TYPE_AUDIO,
1812         .name      = "wmav2",
1813         .long_name = NULL_IF_CONFIG_SMALL("Windows Media Audio 2"),
1814         .props     = AV_CODEC_PROP_LOSSY,
1815     },
1816     {
1817         .id        = AV_CODEC_ID_MACE3,
1818         .type      = AVMEDIA_TYPE_AUDIO,
1819         .name      = "mace3",
1820         .long_name = NULL_IF_CONFIG_SMALL("MACE (Macintosh Audio Compression/Expansion) 3:1"),
1821         .props     = AV_CODEC_PROP_LOSSY,
1822     },
1823     {
1824         .id        = AV_CODEC_ID_MACE6,
1825         .type      = AVMEDIA_TYPE_AUDIO,
1826         .name      = "mace6",
1827         .long_name = NULL_IF_CONFIG_SMALL("MACE (Macintosh Audio Compression/Expansion) 6:1"),
1828         .props     = AV_CODEC_PROP_LOSSY,
1829     },
1830     {
1831         .id        = AV_CODEC_ID_VMDAUDIO,
1832         .type      = AVMEDIA_TYPE_AUDIO,
1833         .name      = "vmdaudio",
1834         .long_name = NULL_IF_CONFIG_SMALL("Sierra VMD audio"),
1835         .props     = AV_CODEC_PROP_LOSSY,
1836     },
1837     {
1838         .id        = AV_CODEC_ID_FLAC,
1839         .type      = AVMEDIA_TYPE_AUDIO,
1840         .name      = "flac",
1841         .long_name = NULL_IF_CONFIG_SMALL("FLAC (Free Lossless Audio Codec)"),
1842         .props     = AV_CODEC_PROP_LOSSLESS,
1843     },
1844     {
1845         .id        = AV_CODEC_ID_MP3ADU,
1846         .type      = AVMEDIA_TYPE_AUDIO,
1847         .name      = "mp3adu",
1848         .long_name = NULL_IF_CONFIG_SMALL("ADU (Application Data Unit) MP3 (MPEG audio layer 3)"),
1849         .props     = AV_CODEC_PROP_LOSSY,
1850     },
1851     {
1852         .id        = AV_CODEC_ID_MP3ON4,
1853         .type      = AVMEDIA_TYPE_AUDIO,
1854         .name      = "mp3on4",
1855         .long_name = NULL_IF_CONFIG_SMALL("MP3onMP4"),
1856         .props     = AV_CODEC_PROP_LOSSY,
1857     },
1858     {
1859         .id        = AV_CODEC_ID_SHORTEN,
1860         .type      = AVMEDIA_TYPE_AUDIO,
1861         .name      = "shorten",
1862         .long_name = NULL_IF_CONFIG_SMALL("Shorten"),
1863         .props     = AV_CODEC_PROP_LOSSLESS,
1864     },
1865     {
1866         .id        = AV_CODEC_ID_ALAC,
1867         .type      = AVMEDIA_TYPE_AUDIO,
1868         .name      = "alac",
1869         .long_name = NULL_IF_CONFIG_SMALL("ALAC (Apple Lossless Audio Codec)"),
1870         .props     = AV_CODEC_PROP_LOSSLESS,
1871     },
1872     {
1873         .id        = AV_CODEC_ID_WESTWOOD_SND1,
1874         .type      = AVMEDIA_TYPE_AUDIO,
1875         .name      = "westwood_snd1",
1876         .long_name = NULL_IF_CONFIG_SMALL("Westwood Audio (SND1)"),
1877         .props     = AV_CODEC_PROP_LOSSY,
1878     },
1879     {
1880         .id        = AV_CODEC_ID_GSM,
1881         .type      = AVMEDIA_TYPE_AUDIO,
1882         .name      = "gsm",
1883         .long_name = NULL_IF_CONFIG_SMALL("GSM"),
1884         .props     = AV_CODEC_PROP_LOSSY,
1885     },
1886     {
1887         .id        = AV_CODEC_ID_QDM2,
1888         .type      = AVMEDIA_TYPE_AUDIO,
1889         .name      = "qdm2",
1890         .long_name = NULL_IF_CONFIG_SMALL("QDesign Music Codec 2"),
1891         .props     = AV_CODEC_PROP_LOSSY,
1892     },
1893     {
1894         .id        = AV_CODEC_ID_COOK,
1895         .type      = AVMEDIA_TYPE_AUDIO,
1896         .name      = "cook",
1897         .long_name = NULL_IF_CONFIG_SMALL("Cook / Cooker / Gecko (RealAudio G2)"),
1898         .props     = AV_CODEC_PROP_LOSSY,
1899     },
1900     {
1901         .id        = AV_CODEC_ID_TRUESPEECH,
1902         .type      = AVMEDIA_TYPE_AUDIO,
1903         .name      = "truespeech",
1904         .long_name = NULL_IF_CONFIG_SMALL("DSP Group TrueSpeech"),
1905         .props     = AV_CODEC_PROP_LOSSY,
1906     },
1907     {
1908         .id        = AV_CODEC_ID_TTA,
1909         .type      = AVMEDIA_TYPE_AUDIO,
1910         .name      = "tta",
1911         .long_name = NULL_IF_CONFIG_SMALL("TTA (True Audio)"),
1912         .props     = AV_CODEC_PROP_LOSSLESS,
1913     },
1914     {
1915         .id        = AV_CODEC_ID_SMACKAUDIO,
1916         .type      = AVMEDIA_TYPE_AUDIO,
1917         .name      = "smackaudio",
1918         .long_name = NULL_IF_CONFIG_SMALL("Smacker audio"),
1919         .props     = AV_CODEC_PROP_LOSSY,
1920     },
1921     {
1922         .id        = AV_CODEC_ID_QCELP,
1923         .type      = AVMEDIA_TYPE_AUDIO,
1924         .name      = "qcelp",
1925         .long_name = NULL_IF_CONFIG_SMALL("QCELP / PureVoice"),
1926         .props     = AV_CODEC_PROP_LOSSY,
1927     },
1928     {
1929         .id        = AV_CODEC_ID_WAVPACK,
1930         .type      = AVMEDIA_TYPE_AUDIO,
1931         .name      = "wavpack",
1932         .long_name = NULL_IF_CONFIG_SMALL("WavPack"),
1933         .props     = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_LOSSLESS,
1934     },
1935     {
1936         .id        = AV_CODEC_ID_DSICINAUDIO,
1937         .type      = AVMEDIA_TYPE_AUDIO,
1938         .name      = "dsicinaudio",
1939         .long_name = NULL_IF_CONFIG_SMALL("Delphine Software International CIN audio"),
1940         .props     = AV_CODEC_PROP_LOSSY,
1941     },
1942     {
1943         .id        = AV_CODEC_ID_IMC,
1944         .type      = AVMEDIA_TYPE_AUDIO,
1945         .name      = "imc",
1946         .long_name = NULL_IF_CONFIG_SMALL("IMC (Intel Music Coder)"),
1947         .props     = AV_CODEC_PROP_LOSSY,
1948     },
1949     {
1950         .id        = AV_CODEC_ID_MUSEPACK7,
1951         .type      = AVMEDIA_TYPE_AUDIO,
1952         .name      = "musepack7",
1953         .long_name = NULL_IF_CONFIG_SMALL("Musepack SV7"),
1954         .props     = AV_CODEC_PROP_LOSSY,
1955     },
1956     {
1957         .id        = AV_CODEC_ID_MLP,
1958         .type      = AVMEDIA_TYPE_AUDIO,
1959         .name      = "mlp",
1960         .long_name = NULL_IF_CONFIG_SMALL("MLP (Meridian Lossless Packing)"),
1961         .props     = AV_CODEC_PROP_LOSSLESS,
1962     },
1963     {
1964         .id        = AV_CODEC_ID_GSM_MS,
1965         .type      = AVMEDIA_TYPE_AUDIO,
1966         .name      = "gsm_ms",
1967         .long_name = NULL_IF_CONFIG_SMALL("GSM Microsoft variant"),
1968         .props     = AV_CODEC_PROP_LOSSY,
1969     },
1970     {
1971         .id        = AV_CODEC_ID_ATRAC3,
1972         .type      = AVMEDIA_TYPE_AUDIO,
1973         .name      = "atrac3",
1974         .long_name = NULL_IF_CONFIG_SMALL("ATRAC3 (Adaptive TRansform Acoustic Coding 3)"),
1975         .props     = AV_CODEC_PROP_LOSSY,
1976     },
1977 #if FF_API_VOXWARE
1978     {
1979         .id        = AV_CODEC_ID_VOXWARE,
1980         .type      = AVMEDIA_TYPE_AUDIO,
1981         .name      = "voxware",
1982         .long_name = NULL_IF_CONFIG_SMALL("Voxware RT29 Metasound"),
1983         .props     = AV_CODEC_PROP_LOSSY,
1984     },
1985 #endif
1986     {
1987         .id        = AV_CODEC_ID_APE,
1988         .type      = AVMEDIA_TYPE_AUDIO,
1989         .name      = "ape",
1990         .long_name = NULL_IF_CONFIG_SMALL("Monkey's Audio"),
1991         .props     = AV_CODEC_PROP_LOSSLESS,
1992     },
1993     {
1994         .id        = AV_CODEC_ID_NELLYMOSER,
1995         .type      = AVMEDIA_TYPE_AUDIO,
1996         .name      = "nellymoser",
1997         .long_name = NULL_IF_CONFIG_SMALL("Nellymoser Asao"),
1998         .props     = AV_CODEC_PROP_LOSSY,
1999     },
2000     {
2001         .id        = AV_CODEC_ID_MUSEPACK8,
2002         .type      = AVMEDIA_TYPE_AUDIO,
2003         .name      = "musepack8",
2004         .long_name = NULL_IF_CONFIG_SMALL("Musepack SV8"),
2005         .props     = AV_CODEC_PROP_LOSSY,
2006     },
2007     {
2008         .id        = AV_CODEC_ID_SPEEX,
2009         .type      = AVMEDIA_TYPE_AUDIO,
2010         .name      = "speex",
2011         .long_name = NULL_IF_CONFIG_SMALL("Speex"),
2012         .props     = AV_CODEC_PROP_LOSSY,
2013     },
2014     {
2015         .id        = AV_CODEC_ID_WMAVOICE,
2016         .type      = AVMEDIA_TYPE_AUDIO,
2017         .name      = "wmavoice",
2018         .long_name = NULL_IF_CONFIG_SMALL("Windows Media Audio Voice"),
2019         .props     = AV_CODEC_PROP_LOSSY,
2020     },
2021     {
2022         .id        = AV_CODEC_ID_WMAPRO,
2023         .type      = AVMEDIA_TYPE_AUDIO,
2024         .name      = "wmapro",
2025         .long_name = NULL_IF_CONFIG_SMALL("Windows Media Audio 9 Professional"),
2026         .props     = AV_CODEC_PROP_LOSSY,
2027     },
2028     {
2029         .id        = AV_CODEC_ID_WMALOSSLESS,
2030         .type      = AVMEDIA_TYPE_AUDIO,
2031         .name      = "wmalossless",
2032         .long_name = NULL_IF_CONFIG_SMALL("Windows Media Audio Lossless"),
2033         .props     = AV_CODEC_PROP_LOSSLESS,
2034     },
2035     {
2036         .id        = AV_CODEC_ID_ATRAC3P,
2037         .type      = AVMEDIA_TYPE_AUDIO,
2038         .name      = "atrac3p",
2039         .long_name = NULL_IF_CONFIG_SMALL("ATRAC3+ (Adaptive TRansform Acoustic Coding 3+)"),
2040         .props     = AV_CODEC_PROP_LOSSY,
2041     },
2042     {
2043         .id        = AV_CODEC_ID_EAC3,
2044         .type      = AVMEDIA_TYPE_AUDIO,
2045         .name      = "eac3",
2046         .long_name = NULL_IF_CONFIG_SMALL("ATSC A/52B (AC-3, E-AC-3)"),
2047         .props     = AV_CODEC_PROP_LOSSY,
2048     },
2049     {
2050         .id        = AV_CODEC_ID_SIPR,
2051         .type      = AVMEDIA_TYPE_AUDIO,
2052         .name      = "sipr",
2053         .long_name = NULL_IF_CONFIG_SMALL("RealAudio SIPR / ACELP.NET"),
2054         .props     = AV_CODEC_PROP_LOSSY,
2055     },
2056     {
2057         .id        = AV_CODEC_ID_MP1,
2058         .type      = AVMEDIA_TYPE_AUDIO,
2059         .name      = "mp1",
2060         .long_name = NULL_IF_CONFIG_SMALL("MP1 (MPEG audio layer 1)"),
2061         .props     = AV_CODEC_PROP_LOSSY,
2062     },
2063     {
2064         .id        = AV_CODEC_ID_TWINVQ,
2065         .type      = AVMEDIA_TYPE_AUDIO,
2066         .name      = "twinvq",
2067         .long_name = NULL_IF_CONFIG_SMALL("VQF TwinVQ"),
2068         .props     = AV_CODEC_PROP_LOSSY,
2069     },
2070     {
2071         .id        = AV_CODEC_ID_TRUEHD,
2072         .type      = AVMEDIA_TYPE_AUDIO,
2073         .name      = "truehd",
2074         .long_name = NULL_IF_CONFIG_SMALL("TrueHD"),
2075         .props     = AV_CODEC_PROP_LOSSLESS,
2076     },
2077     {
2078         .id        = AV_CODEC_ID_MP4ALS,
2079         .type      = AVMEDIA_TYPE_AUDIO,
2080         .name      = "mp4als",
2081         .long_name = NULL_IF_CONFIG_SMALL("MPEG-4 Audio Lossless Coding (ALS)"),
2082         .props     = AV_CODEC_PROP_LOSSLESS,
2083     },
2084     {
2085         .id        = AV_CODEC_ID_ATRAC1,
2086         .type      = AVMEDIA_TYPE_AUDIO,
2087         .name      = "atrac1",
2088         .long_name = NULL_IF_CONFIG_SMALL("ATRAC1 (Adaptive TRansform Acoustic Coding)"),
2089         .props     = AV_CODEC_PROP_LOSSY,
2090     },
2091     {
2092         .id        = AV_CODEC_ID_BINKAUDIO_RDFT,
2093         .type      = AVMEDIA_TYPE_AUDIO,
2094         .name      = "binkaudio_rdft",
2095         .long_name = NULL_IF_CONFIG_SMALL("Bink Audio (RDFT)"),
2096         .props     = AV_CODEC_PROP_LOSSY,
2097     },
2098     {
2099         .id        = AV_CODEC_ID_BINKAUDIO_DCT,
2100         .type      = AVMEDIA_TYPE_AUDIO,
2101         .name      = "binkaudio_dct",
2102         .long_name = NULL_IF_CONFIG_SMALL("Bink Audio (DCT)"),
2103         .props     = AV_CODEC_PROP_LOSSY,
2104     },
2105     {
2106         .id        = AV_CODEC_ID_AAC_LATM,
2107         .type      = AVMEDIA_TYPE_AUDIO,
2108         .name      = "aac_latm",
2109         .long_name = NULL_IF_CONFIG_SMALL("AAC LATM (Advanced Audio Coding LATM syntax)"),
2110         .props     = AV_CODEC_PROP_LOSSY,
2111     },
2112     {
2113         .id        = AV_CODEC_ID_QDMC,
2114         .type      = AVMEDIA_TYPE_AUDIO,
2115         .name      = "qdmc",
2116         .long_name = NULL_IF_CONFIG_SMALL("QDesign Music"),
2117         .props     = AV_CODEC_PROP_LOSSY,
2118     },
2119     {
2120         .id        = AV_CODEC_ID_CELT,
2121         .type      = AVMEDIA_TYPE_AUDIO,
2122         .name      = "celt",
2123         .long_name = NULL_IF_CONFIG_SMALL("Constrained Energy Lapped Transform (CELT)"),
2124         .props     = AV_CODEC_PROP_LOSSY,
2125     },
2126     {
2127         .id        = AV_CODEC_ID_G723_1,
2128         .type      = AVMEDIA_TYPE_AUDIO,
2129         .name      = "g723_1",
2130         .long_name = NULL_IF_CONFIG_SMALL("G.723.1"),
2131         .props     = AV_CODEC_PROP_LOSSY,
2132     },
2133     {
2134         .id        = AV_CODEC_ID_G729,
2135         .type      = AVMEDIA_TYPE_AUDIO,
2136         .name      = "g729",
2137         .long_name = NULL_IF_CONFIG_SMALL("G.729"),
2138         .props     = AV_CODEC_PROP_LOSSY,
2139     },
2140     {
2141         .id        = AV_CODEC_ID_8SVX_EXP,
2142         .type      = AVMEDIA_TYPE_AUDIO,
2143         .name      = "8svx_exp",
2144         .long_name = NULL_IF_CONFIG_SMALL("8SVX exponential"),
2145         .props     = AV_CODEC_PROP_LOSSY,
2146     },
2147     {
2148         .id        = AV_CODEC_ID_8SVX_FIB,
2149         .type      = AVMEDIA_TYPE_AUDIO,
2150         .name      = "8svx_fib",
2151         .long_name = NULL_IF_CONFIG_SMALL("8SVX fibonacci"),
2152         .props     = AV_CODEC_PROP_LOSSY,
2153     },
2154     {
2155         .id        = AV_CODEC_ID_BMV_AUDIO,
2156         .type      = AVMEDIA_TYPE_AUDIO,
2157         .name      = "bmv_audio",
2158         .long_name = NULL_IF_CONFIG_SMALL("Discworld II BMV audio"),
2159         .props     = AV_CODEC_PROP_LOSSY,
2160     },
2161     {
2162         .id        = AV_CODEC_ID_RALF,
2163         .type      = AVMEDIA_TYPE_AUDIO,
2164         .name      = "ralf",
2165         .long_name = NULL_IF_CONFIG_SMALL("RealAudio Lossless"),
2166         .props     = AV_CODEC_PROP_LOSSLESS,
2167     },
2168     {
2169         .id        = AV_CODEC_ID_IAC,
2170         .type      = AVMEDIA_TYPE_AUDIO,
2171         .name      = "iac",
2172         .long_name = NULL_IF_CONFIG_SMALL("IAC (Indeo Audio Coder)"),
2173         .props     = AV_CODEC_PROP_LOSSY,
2174     },
2175     {
2176         .id        = AV_CODEC_ID_ILBC,
2177         .type      = AVMEDIA_TYPE_AUDIO,
2178         .name      = "ilbc",
2179         .long_name = NULL_IF_CONFIG_SMALL("iLBC (Internet Low Bitrate Codec)"),
2180         .props     = AV_CODEC_PROP_LOSSY,
2181     },
2182     {
2183         .id        = AV_CODEC_ID_OPUS,
2184         .type      = AVMEDIA_TYPE_AUDIO,
2185         .name      = "opus",
2186         .long_name = NULL_IF_CONFIG_SMALL("Opus (Opus Interactive Audio Codec)"),
2187         .props     = AV_CODEC_PROP_LOSSY,
2188     },
2189     {
2190         .id        = AV_CODEC_ID_COMFORT_NOISE,
2191         .type      = AVMEDIA_TYPE_AUDIO,
2192         .name      = "comfortnoise",
2193         .long_name = NULL_IF_CONFIG_SMALL("RFC 3389 Comfort Noise"),
2194         .props     = AV_CODEC_PROP_LOSSY,
2195     },
2196     {
2197         .id        = AV_CODEC_ID_TAK,
2198         .type      = AVMEDIA_TYPE_AUDIO,
2199         .name      = "tak",
2200         .long_name = NULL_IF_CONFIG_SMALL("TAK (Tom's lossless Audio Kompressor)"),
2201         .props     = AV_CODEC_PROP_LOSSLESS,
2202     },
2203     {
2204         .id        = AV_CODEC_ID_METASOUND,
2205         .type      = AVMEDIA_TYPE_AUDIO,
2206         .name      = "metasound",
2207         .long_name = NULL_IF_CONFIG_SMALL("Voxware MetaSound"),
2208         .props     = AV_CODEC_PROP_LOSSY,
2209     },
2210
2211     /* subtitle codecs */
2212     {
2213         .id        = AV_CODEC_ID_DVD_SUBTITLE,
2214         .type      = AVMEDIA_TYPE_SUBTITLE,
2215         .name      = "dvd_subtitle",
2216         .long_name = NULL_IF_CONFIG_SMALL("DVD subtitles"),
2217     },
2218     {
2219         .id        = AV_CODEC_ID_DVB_SUBTITLE,
2220         .type      = AVMEDIA_TYPE_SUBTITLE,
2221         .name      = "dvb_subtitle",
2222         .long_name = NULL_IF_CONFIG_SMALL("DVB subtitles"),
2223     },
2224     {
2225         .id        = AV_CODEC_ID_TEXT,
2226         .type      = AVMEDIA_TYPE_SUBTITLE,
2227         .name      = "text",
2228         .long_name = NULL_IF_CONFIG_SMALL("raw UTF-8 text"),
2229     },
2230     {
2231         .id        = AV_CODEC_ID_XSUB,
2232         .type      = AVMEDIA_TYPE_SUBTITLE,
2233         .name      = "xsub",
2234         .long_name = NULL_IF_CONFIG_SMALL("XSUB"),
2235     },
2236     {
2237         .id        = AV_CODEC_ID_SSA,
2238         .type      = AVMEDIA_TYPE_SUBTITLE,
2239         .name      = "ssa",
2240         .long_name = NULL_IF_CONFIG_SMALL("SSA (SubStation Alpha) / ASS (Advanced SSA) subtitle"),
2241     },
2242     {
2243         .id        = AV_CODEC_ID_MOV_TEXT,
2244         .type      = AVMEDIA_TYPE_SUBTITLE,
2245         .name      = "mov_text",
2246         .long_name = NULL_IF_CONFIG_SMALL("MOV text"),
2247     },
2248     {
2249         .id        = AV_CODEC_ID_HDMV_PGS_SUBTITLE,
2250         .type      = AVMEDIA_TYPE_SUBTITLE,
2251         .name      = "hdmv_pgs_subtitle",
2252         .long_name = NULL_IF_CONFIG_SMALL("HDMV Presentation Graphic Stream subtitles"),
2253     },
2254     {
2255         .id        = AV_CODEC_ID_DVB_TELETEXT,
2256         .type      = AVMEDIA_TYPE_SUBTITLE,
2257         .name      = "dvb_teletext",
2258         .long_name = NULL_IF_CONFIG_SMALL("DVB teletext"),
2259     },
2260     {
2261         .id        = AV_CODEC_ID_SRT,
2262         .type      = AVMEDIA_TYPE_SUBTITLE,
2263         .name      = "srt",
2264         .long_name = NULL_IF_CONFIG_SMALL("SubRip Text"),
2265     },
2266 };
2267
2268 const AVCodecDescriptor *avcodec_descriptor_get(enum AVCodecID id)
2269 {
2270     int i;
2271
2272     for (i = 0; i < FF_ARRAY_ELEMS(codec_descriptors); i++)
2273         if (codec_descriptors[i].id == id)
2274             return &codec_descriptors[i];
2275     return NULL;
2276 }
2277
2278 const AVCodecDescriptor *avcodec_descriptor_next(const AVCodecDescriptor *prev)
2279 {
2280     if (!prev)
2281         return &codec_descriptors[0];
2282     if (prev - codec_descriptors < FF_ARRAY_ELEMS(codec_descriptors) - 1)
2283         return prev + 1;
2284     return NULL;
2285 }
2286
2287 const AVCodecDescriptor *avcodec_descriptor_get_by_name(const char *name)
2288 {
2289     const AVCodecDescriptor *desc = NULL;
2290
2291     while ((desc = avcodec_descriptor_next(desc)))
2292         if (!strcmp(desc->name, name))
2293             return desc;
2294     return NULL;
2295 }