DNxHD: Add support for id 1258 (DNx100 960x720@8)
[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 | AV_CODEC_PROP_REORDER,
34     },
35     {
36         .id        = AV_CODEC_ID_MPEG2VIDEO,
37         .type      = AVMEDIA_TYPE_VIDEO,
38         .name      = "mpeg2video",
39         .long_name = NULL_IF_CONFIG_SMALL("MPEG-2 video"),
40         .props     = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER,
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 | AV_CODEC_PROP_REORDER,
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 2.0"),
77         .props     = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER,
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 | AV_CODEC_PROP_REORDER,
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 | AV_CODEC_PROP_REORDER,
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 | AV_CODEC_PROP_REORDER,
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 | AV_CODEC_PROP_REORDER,
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 | AV_CODEC_PROP_REORDER,
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 | AV_CODEC_PROP_REORDER,
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 | AV_CODEC_PROP_REORDER,
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 | AV_CODEC_PROP_REORDER,
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 | AV_CODEC_PROP_REORDER,
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 | AV_CODEC_PROP_REORDER,
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 | AV_CODEC_PROP_REORDER,
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_MVC1,
929         .type      = AVMEDIA_TYPE_VIDEO,
930         .name      = "mvc1",
931         .long_name = NULL_IF_CONFIG_SMALL("Silicon Graphics Motion Video Compressor 1"),
932         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
933     },
934     {
935         .id        = AV_CODEC_ID_MVC2,
936         .type      = AVMEDIA_TYPE_VIDEO,
937         .name      = "mvc2",
938         .long_name = NULL_IF_CONFIG_SMALL("Silicon Graphics Motion Video Compressor 2"),
939         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
940     },
941     {
942         .id        = AV_CODEC_ID_MXPEG,
943         .type      = AVMEDIA_TYPE_VIDEO,
944         .name      = "mxpeg",
945         .long_name = NULL_IF_CONFIG_SMALL("Mobotix MxPEG video"),
946         .props     = AV_CODEC_PROP_LOSSY,
947     },
948     {
949         .id        = AV_CODEC_ID_LAGARITH,
950         .type      = AVMEDIA_TYPE_VIDEO,
951         .name      = "lagarith",
952         .long_name = NULL_IF_CONFIG_SMALL("Lagarith lossless"),
953         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
954     },
955     {
956         .id        = AV_CODEC_ID_PRORES,
957         .type      = AVMEDIA_TYPE_VIDEO,
958         .name      = "prores",
959         .long_name = NULL_IF_CONFIG_SMALL("Apple ProRes (iCodec Pro)"),
960         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
961     },
962     {
963         .id        = AV_CODEC_ID_JV,
964         .type      = AVMEDIA_TYPE_VIDEO,
965         .name      = "jv",
966         .long_name = NULL_IF_CONFIG_SMALL("Bitmap Brothers JV video"),
967         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
968     },
969     {
970         .id        = AV_CODEC_ID_DFA,
971         .type      = AVMEDIA_TYPE_VIDEO,
972         .name      = "dfa",
973         .long_name = NULL_IF_CONFIG_SMALL("Chronomaster DFA"),
974         .props     = AV_CODEC_PROP_LOSSY,
975     },
976     {
977         .id        = AV_CODEC_ID_UTVIDEO,
978         .type      = AVMEDIA_TYPE_VIDEO,
979         .name      = "utvideo",
980         .long_name = NULL_IF_CONFIG_SMALL("Ut Video"),
981         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
982     },
983     {
984         .id        = AV_CODEC_ID_BMV_VIDEO,
985         .type      = AVMEDIA_TYPE_VIDEO,
986         .name      = "bmv_video",
987         .long_name = NULL_IF_CONFIG_SMALL("Discworld II BMV video"),
988         .props     = AV_CODEC_PROP_LOSSLESS,
989     },
990     {
991         .id        = AV_CODEC_ID_VBLE,
992         .type      = AVMEDIA_TYPE_VIDEO,
993         .name      = "vble",
994         .long_name = NULL_IF_CONFIG_SMALL("VBLE Lossless Codec"),
995         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
996     },
997     {
998         .id        = AV_CODEC_ID_DXTORY,
999         .type      = AVMEDIA_TYPE_VIDEO,
1000         .name      = "dxtory",
1001         .long_name = NULL_IF_CONFIG_SMALL("Dxtory"),
1002         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1003     },
1004     {
1005         .id        = AV_CODEC_ID_V410,
1006         .type      = AVMEDIA_TYPE_VIDEO,
1007         .name      = "v410",
1008         .long_name = NULL_IF_CONFIG_SMALL("Uncompressed 4:4:4 10-bit"),
1009         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1010     },
1011     {
1012         .id        = AV_CODEC_ID_CDXL,
1013         .type      = AVMEDIA_TYPE_VIDEO,
1014         .name      = "cdxl",
1015         .long_name = NULL_IF_CONFIG_SMALL("Commodore CDXL video"),
1016         .props     = AV_CODEC_PROP_LOSSY,
1017     },
1018     {
1019         .id        = AV_CODEC_ID_ZEROCODEC,
1020         .type      = AVMEDIA_TYPE_VIDEO,
1021         .name      = "zerocodec",
1022         .long_name = NULL_IF_CONFIG_SMALL("ZeroCodec Lossless Video"),
1023         .props     = AV_CODEC_PROP_LOSSLESS,
1024     },
1025     {
1026         .id        = AV_CODEC_ID_MSS1,
1027         .type      = AVMEDIA_TYPE_VIDEO,
1028         .name      = "mss1",
1029         .long_name = NULL_IF_CONFIG_SMALL("MS Screen 1"),
1030         .props     = AV_CODEC_PROP_LOSSY,
1031     },
1032     {
1033         .id        = AV_CODEC_ID_MSA1,
1034         .type      = AVMEDIA_TYPE_VIDEO,
1035         .name      = "msa1",
1036         .long_name = NULL_IF_CONFIG_SMALL("MS ATC Screen"),
1037         .props     = AV_CODEC_PROP_LOSSY,
1038     },
1039     {
1040         .id        = AV_CODEC_ID_TSCC2,
1041         .type      = AVMEDIA_TYPE_VIDEO,
1042         .name      = "tscc2",
1043         .long_name = NULL_IF_CONFIG_SMALL("TechSmith Screen Codec 2"),
1044         .props     = AV_CODEC_PROP_LOSSY,
1045     },
1046     {
1047         .id        = AV_CODEC_ID_MTS2,
1048         .type      = AVMEDIA_TYPE_VIDEO,
1049         .name      = "mts2",
1050         .long_name = NULL_IF_CONFIG_SMALL("MS Expression Encoder Screen"),
1051         .props     = AV_CODEC_PROP_LOSSY,
1052     },
1053     {
1054         .id        = AV_CODEC_ID_CLLC,
1055         .type      = AVMEDIA_TYPE_VIDEO,
1056         .name      = "cllc",
1057         .long_name = NULL_IF_CONFIG_SMALL("Canopus Lossless Codec"),
1058         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1059     },
1060     {
1061         .id        = AV_CODEC_ID_MSS2,
1062         .type      = AVMEDIA_TYPE_VIDEO,
1063         .name      = "mss2",
1064         .long_name = NULL_IF_CONFIG_SMALL("MS Windows Media Video V9 Screen"),
1065         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1066     },
1067     {
1068         .id        = AV_CODEC_ID_AIC,
1069         .type      = AVMEDIA_TYPE_VIDEO,
1070         .name      = "aic",
1071         .long_name = NULL_IF_CONFIG_SMALL("Apple Intermediate Codec"),
1072         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1073     },
1074     {
1075         .id        = AV_CODEC_ID_ESCAPE130,
1076         .type      = AVMEDIA_TYPE_VIDEO,
1077         .name      = "escape130",
1078         .long_name = NULL_IF_CONFIG_SMALL("Escape 130"),
1079         .props     = AV_CODEC_PROP_LOSSY,
1080     },
1081     {
1082         .id        = AV_CODEC_ID_G2M,
1083         .type      = AVMEDIA_TYPE_VIDEO,
1084         .name      = "g2m",
1085         .long_name = NULL_IF_CONFIG_SMALL("Go2Meeting"),
1086         .props     = AV_CODEC_PROP_LOSSY,
1087     },
1088     {
1089         .id        = AV_CODEC_ID_HNM4_VIDEO,
1090         .type      = AVMEDIA_TYPE_VIDEO,
1091         .name      = "hnm4video",
1092         .long_name = NULL_IF_CONFIG_SMALL("HNM 4 video"),
1093         .props     = AV_CODEC_PROP_LOSSY,
1094     },
1095     {
1096         .id        = AV_CODEC_ID_HEVC,
1097         .type      = AVMEDIA_TYPE_VIDEO,
1098         .name      = "hevc",
1099         .long_name = NULL_IF_CONFIG_SMALL("HEVC (High Efficiency Video Coding)"),
1100         .props     = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER,
1101     },
1102     {
1103         .id        = AV_CODEC_ID_FIC,
1104         .type      = AVMEDIA_TYPE_VIDEO,
1105         .name      = "fic",
1106         .long_name = NULL_IF_CONFIG_SMALL("Mirillis FIC"),
1107         .props     = AV_CODEC_PROP_LOSSY,
1108     },
1109     {
1110         .id        = AV_CODEC_ID_PAF_VIDEO,
1111         .type      = AVMEDIA_TYPE_VIDEO,
1112         .name      = "paf_video",
1113         .long_name = NULL_IF_CONFIG_SMALL("Amazing Studio Packed Animation File Video"),
1114         .props     = AV_CODEC_PROP_LOSSY,
1115     },
1116     {
1117         .id        = AV_CODEC_ID_VP7,
1118         .type      = AVMEDIA_TYPE_VIDEO,
1119         .name      = "vp7",
1120         .long_name = NULL_IF_CONFIG_SMALL("On2 VP7"),
1121         .props     = AV_CODEC_PROP_LOSSY,
1122     },
1123     {
1124         .id        = AV_CODEC_ID_SANM,
1125         .type      = AVMEDIA_TYPE_VIDEO,
1126         .name      = "sanm",
1127         .long_name = NULL_IF_CONFIG_SMALL("LucasArts SANM video"),
1128         .props     = AV_CODEC_PROP_LOSSY,
1129     },
1130     {
1131         .id        = AV_CODEC_ID_SGIRLE,
1132         .type      = AVMEDIA_TYPE_VIDEO,
1133         .name      = "sgirle",
1134         .long_name = NULL_IF_CONFIG_SMALL("SGI RLE 8-bit"),
1135         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1136     },
1137
1138     /* image codecs */
1139     {
1140         .id        = AV_CODEC_ID_ALIAS_PIX,
1141         .type      = AVMEDIA_TYPE_VIDEO,
1142         .name      = "alias_pix",
1143         .long_name = NULL_IF_CONFIG_SMALL("Alias/Wavefront PIX image"),
1144         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1145     },
1146     {
1147         .id        = AV_CODEC_ID_ANSI,
1148         .type      = AVMEDIA_TYPE_VIDEO,
1149         .name      = "ansi",
1150         .long_name = NULL_IF_CONFIG_SMALL("ASCII/ANSI art"),
1151         .props     = AV_CODEC_PROP_LOSSY,
1152     },
1153     {
1154         .id        = AV_CODEC_ID_BRENDER_PIX,
1155         .type      = AVMEDIA_TYPE_VIDEO,
1156         .name      = "brender_pix",
1157         .long_name = NULL_IF_CONFIG_SMALL("BRender PIX image"),
1158         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1159     },
1160     {
1161         .id        = AV_CODEC_ID_DPX,
1162         .type      = AVMEDIA_TYPE_VIDEO,
1163         .name      = "dpx",
1164         .long_name = NULL_IF_CONFIG_SMALL("DPX image"),
1165         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1166     },
1167     {
1168         .id        = AV_CODEC_ID_EXR,
1169         .type      = AVMEDIA_TYPE_VIDEO,
1170         .name      = "exr",
1171         .long_name = NULL_IF_CONFIG_SMALL("OpenEXR image"),
1172         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY |
1173                      AV_CODEC_PROP_LOSSLESS,
1174     },
1175     {
1176         .id        = AV_CODEC_ID_GIF,
1177         .type      = AVMEDIA_TYPE_VIDEO,
1178         .name      = "gif",
1179         .long_name = NULL_IF_CONFIG_SMALL("GIF (Graphics Interchange Format)"),
1180         .props     = AV_CODEC_PROP_LOSSLESS,
1181     },
1182     {
1183         .id        = AV_CODEC_ID_JPEGLS,
1184         .type      = AVMEDIA_TYPE_VIDEO,
1185         .name      = "jpegls",
1186         .long_name = NULL_IF_CONFIG_SMALL("JPEG-LS"),
1187         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY |
1188                      AV_CODEC_PROP_LOSSLESS,
1189     },
1190     {
1191         .id        = AV_CODEC_ID_LJPEG,
1192         .type      = AVMEDIA_TYPE_VIDEO,
1193         .name      = "ljpeg",
1194         .long_name = NULL_IF_CONFIG_SMALL("Lossless JPEG"),
1195         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1196     },
1197     {
1198         .id        = AV_CODEC_ID_PAM,
1199         .type      = AVMEDIA_TYPE_VIDEO,
1200         .name      = "pam",
1201         .long_name = NULL_IF_CONFIG_SMALL("PAM (Portable AnyMap) image"),
1202         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1203     },
1204     {
1205         .id        = AV_CODEC_ID_PBM,
1206         .type      = AVMEDIA_TYPE_VIDEO,
1207         .name      = "pbm",
1208         .long_name = NULL_IF_CONFIG_SMALL("PBM (Portable BitMap) image"),
1209         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1210     },
1211     {
1212         .id        = AV_CODEC_ID_PCX,
1213         .type      = AVMEDIA_TYPE_VIDEO,
1214         .name      = "pcx",
1215         .long_name = NULL_IF_CONFIG_SMALL("PC Paintbrush PCX image"),
1216         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1217     },
1218     {
1219         .id        = AV_CODEC_ID_PGM,
1220         .type      = AVMEDIA_TYPE_VIDEO,
1221         .name      = "pgm",
1222         .long_name = NULL_IF_CONFIG_SMALL("PGM (Portable GrayMap) image"),
1223         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1224     },
1225     {
1226         .id        = AV_CODEC_ID_PGMYUV,
1227         .type      = AVMEDIA_TYPE_VIDEO,
1228         .name      = "pgmyuv",
1229         .long_name = NULL_IF_CONFIG_SMALL("PGMYUV (Portable GrayMap YUV) image"),
1230         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1231     },
1232     {
1233         .id        = AV_CODEC_ID_PNG,
1234         .type      = AVMEDIA_TYPE_VIDEO,
1235         .name      = "png",
1236         .long_name = NULL_IF_CONFIG_SMALL("PNG (Portable Network Graphics) image"),
1237         .props     = AV_CODEC_PROP_LOSSLESS,
1238     },
1239     {
1240         .id        = AV_CODEC_ID_PPM,
1241         .type      = AVMEDIA_TYPE_VIDEO,
1242         .name      = "ppm",
1243         .long_name = NULL_IF_CONFIG_SMALL("PPM (Portable PixelMap) image"),
1244         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1245     },
1246     {
1247         .id        = AV_CODEC_ID_PTX,
1248         .type      = AVMEDIA_TYPE_VIDEO,
1249         .name      = "ptx",
1250         .long_name = NULL_IF_CONFIG_SMALL("V.Flash PTX image"),
1251         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1252     },
1253     {
1254         .id        = AV_CODEC_ID_SGI,
1255         .type      = AVMEDIA_TYPE_VIDEO,
1256         .name      = "sgi",
1257         .long_name = NULL_IF_CONFIG_SMALL("SGI image"),
1258         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1259     },
1260     {
1261         .id        = AV_CODEC_ID_SP5X,
1262         .type      = AVMEDIA_TYPE_VIDEO,
1263         .name      = "sp5x",
1264         .long_name = NULL_IF_CONFIG_SMALL("Sunplus JPEG (SP5X)"),
1265         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1266     },
1267     {
1268         .id        = AV_CODEC_ID_SUNRAST,
1269         .type      = AVMEDIA_TYPE_VIDEO,
1270         .name      = "sunrast",
1271         .long_name = NULL_IF_CONFIG_SMALL("Sun Rasterfile image"),
1272         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1273     },
1274     {
1275         .id        = AV_CODEC_ID_TARGA,
1276         .type      = AVMEDIA_TYPE_VIDEO,
1277         .name      = "targa",
1278         .long_name = NULL_IF_CONFIG_SMALL("Truevision Targa image"),
1279         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1280     },
1281     {
1282         .id        = AV_CODEC_ID_TIFF,
1283         .type      = AVMEDIA_TYPE_VIDEO,
1284         .name      = "tiff",
1285         .long_name = NULL_IF_CONFIG_SMALL("TIFF image"),
1286         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1287     },
1288     {
1289         .id        = AV_CODEC_ID_TXD,
1290         .type      = AVMEDIA_TYPE_VIDEO,
1291         .name      = "txd",
1292         .long_name = NULL_IF_CONFIG_SMALL("Renderware TXD (TeXture Dictionary) image"),
1293         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1294     },
1295     {
1296         .id        = AV_CODEC_ID_VC1IMAGE,
1297         .type      = AVMEDIA_TYPE_VIDEO,
1298         .name      = "vc1image",
1299         .long_name = NULL_IF_CONFIG_SMALL("Windows Media Video 9 Image v2"),
1300         .props     = AV_CODEC_PROP_LOSSY,
1301     },
1302     {
1303         .id        = AV_CODEC_ID_WEBP,
1304         .type      = AVMEDIA_TYPE_VIDEO,
1305         .name      = "webp",
1306         .long_name = NULL_IF_CONFIG_SMALL("WebP"),
1307         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY |
1308                      AV_CODEC_PROP_LOSSLESS,
1309     },
1310     {
1311         .id        = AV_CODEC_ID_WMV3IMAGE,
1312         .type      = AVMEDIA_TYPE_VIDEO,
1313         .name      = "wmv3image",
1314         .long_name = NULL_IF_CONFIG_SMALL("Windows Media Video 9 Image"),
1315         .props     = AV_CODEC_PROP_LOSSY,
1316     },
1317     {
1318         .id        = AV_CODEC_ID_XBM,
1319         .type      = AVMEDIA_TYPE_VIDEO,
1320         .name      = "xbm",
1321         .long_name = NULL_IF_CONFIG_SMALL("XBM (X BitMap) image"),
1322         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1323     },
1324     {
1325         .id        = AV_CODEC_ID_XWD,
1326         .type      = AVMEDIA_TYPE_VIDEO,
1327         .name      = "xwd",
1328         .long_name = NULL_IF_CONFIG_SMALL("XWD (X Window Dump) image"),
1329         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1330     },
1331
1332     /* various PCM "codecs" */
1333     {
1334         .id        = AV_CODEC_ID_PCM_S16LE,
1335         .type      = AVMEDIA_TYPE_AUDIO,
1336         .name      = "pcm_s16le",
1337         .long_name = NULL_IF_CONFIG_SMALL("PCM signed 16-bit little-endian"),
1338         .props     = AV_CODEC_PROP_LOSSLESS,
1339     },
1340     {
1341         .id        = AV_CODEC_ID_PCM_S16BE,
1342         .type      = AVMEDIA_TYPE_AUDIO,
1343         .name      = "pcm_s16be",
1344         .long_name = NULL_IF_CONFIG_SMALL("PCM signed 16-bit big-endian"),
1345         .props     = AV_CODEC_PROP_LOSSLESS,
1346     },
1347     {
1348         .id        = AV_CODEC_ID_PCM_U16LE,
1349         .type      = AVMEDIA_TYPE_AUDIO,
1350         .name      = "pcm_u16le",
1351         .long_name = NULL_IF_CONFIG_SMALL("PCM unsigned 16-bit little-endian"),
1352         .props     = AV_CODEC_PROP_LOSSLESS,
1353     },
1354     {
1355         .id        = AV_CODEC_ID_PCM_U16BE,
1356         .type      = AVMEDIA_TYPE_AUDIO,
1357         .name      = "pcm_u16be",
1358         .long_name = NULL_IF_CONFIG_SMALL("PCM unsigned 16-bit big-endian"),
1359         .props     = AV_CODEC_PROP_LOSSLESS,
1360     },
1361     {
1362         .id        = AV_CODEC_ID_PCM_S8,
1363         .type      = AVMEDIA_TYPE_AUDIO,
1364         .name      = "pcm_s8",
1365         .long_name = NULL_IF_CONFIG_SMALL("PCM signed 8-bit"),
1366         .props     = AV_CODEC_PROP_LOSSLESS,
1367     },
1368     {
1369         .id        = AV_CODEC_ID_PCM_U8,
1370         .type      = AVMEDIA_TYPE_AUDIO,
1371         .name      = "pcm_u8",
1372         .long_name = NULL_IF_CONFIG_SMALL("PCM unsigned 8-bit"),
1373         .props     = AV_CODEC_PROP_LOSSLESS,
1374     },
1375     {
1376         .id        = AV_CODEC_ID_PCM_MULAW,
1377         .type      = AVMEDIA_TYPE_AUDIO,
1378         .name      = "pcm_mulaw",
1379         .long_name = NULL_IF_CONFIG_SMALL("PCM mu-law"),
1380     },
1381     {
1382         .id        = AV_CODEC_ID_PCM_ALAW,
1383         .type      = AVMEDIA_TYPE_AUDIO,
1384         .name      = "pcm_alaw",
1385         .long_name = NULL_IF_CONFIG_SMALL("PCM A-law"),
1386     },
1387     {
1388         .id        = AV_CODEC_ID_PCM_S32LE,
1389         .type      = AVMEDIA_TYPE_AUDIO,
1390         .name      = "pcm_s32le",
1391         .long_name = NULL_IF_CONFIG_SMALL("PCM signed 32-bit little-endian"),
1392         .props     = AV_CODEC_PROP_LOSSLESS,
1393     },
1394     {
1395         .id        = AV_CODEC_ID_PCM_S32BE,
1396         .type      = AVMEDIA_TYPE_AUDIO,
1397         .name      = "pcm_s32be",
1398         .long_name = NULL_IF_CONFIG_SMALL("PCM signed 32-bit big-endian"),
1399         .props     = AV_CODEC_PROP_LOSSLESS,
1400     },
1401     {
1402         .id        = AV_CODEC_ID_PCM_U32LE,
1403         .type      = AVMEDIA_TYPE_AUDIO,
1404         .name      = "pcm_u32le",
1405         .long_name = NULL_IF_CONFIG_SMALL("PCM unsigned 32-bit little-endian"),
1406         .props     = AV_CODEC_PROP_LOSSLESS,
1407     },
1408     {
1409         .id        = AV_CODEC_ID_PCM_U32BE,
1410         .type      = AVMEDIA_TYPE_AUDIO,
1411         .name      = "pcm_u32be",
1412         .long_name = NULL_IF_CONFIG_SMALL("PCM unsigned 32-bit big-endian"),
1413         .props     = AV_CODEC_PROP_LOSSLESS,
1414     },
1415     {
1416         .id        = AV_CODEC_ID_PCM_S24LE,
1417         .type      = AVMEDIA_TYPE_AUDIO,
1418         .name      = "pcm_s24le",
1419         .long_name = NULL_IF_CONFIG_SMALL("PCM signed 24-bit little-endian"),
1420         .props     = AV_CODEC_PROP_LOSSLESS,
1421     },
1422     {
1423         .id        = AV_CODEC_ID_PCM_S24BE,
1424         .type      = AVMEDIA_TYPE_AUDIO,
1425         .name      = "pcm_s24be",
1426         .long_name = NULL_IF_CONFIG_SMALL("PCM signed 24-bit big-endian"),
1427         .props     = AV_CODEC_PROP_LOSSLESS,
1428     },
1429     {
1430         .id        = AV_CODEC_ID_PCM_U24LE,
1431         .type      = AVMEDIA_TYPE_AUDIO,
1432         .name      = "pcm_u24le",
1433         .long_name = NULL_IF_CONFIG_SMALL("PCM unsigned 24-bit little-endian"),
1434         .props     = AV_CODEC_PROP_LOSSLESS,
1435     },
1436     {
1437         .id        = AV_CODEC_ID_PCM_U24BE,
1438         .type      = AVMEDIA_TYPE_AUDIO,
1439         .name      = "pcm_u24be",
1440         .long_name = NULL_IF_CONFIG_SMALL("PCM unsigned 24-bit big-endian"),
1441         .props     = AV_CODEC_PROP_LOSSLESS,
1442     },
1443     {
1444         .id        = AV_CODEC_ID_PCM_S24DAUD,
1445         .type      = AVMEDIA_TYPE_AUDIO,
1446         .name      = "pcm_s24daud",
1447         .long_name = NULL_IF_CONFIG_SMALL("PCM D-Cinema audio signed 24-bit"),
1448         .props     = AV_CODEC_PROP_LOSSLESS,
1449     },
1450     {
1451         .id        = AV_CODEC_ID_PCM_ZORK,
1452         .type      = AVMEDIA_TYPE_AUDIO,
1453         .name      = "pcm_zork",
1454         .long_name = NULL_IF_CONFIG_SMALL("PCM Zork"),
1455         .props     = AV_CODEC_PROP_LOSSY,
1456     },
1457     {
1458         .id        = AV_CODEC_ID_PCM_S16LE_PLANAR,
1459         .type      = AVMEDIA_TYPE_AUDIO,
1460         .name      = "pcm_s16le_planar",
1461         .long_name = NULL_IF_CONFIG_SMALL("PCM 16-bit little-endian planar"),
1462         .props     = AV_CODEC_PROP_LOSSLESS,
1463     },
1464     {
1465         .id        = AV_CODEC_ID_PCM_S24LE_PLANAR,
1466         .type      = AVMEDIA_TYPE_AUDIO,
1467         .name      = "pcm_s24le_planar",
1468         .long_name = NULL_IF_CONFIG_SMALL("PCM signed 24-bit little-endian planar"),
1469         .props     = AV_CODEC_PROP_LOSSLESS,
1470     },
1471     {
1472         .id        = AV_CODEC_ID_PCM_S32LE_PLANAR,
1473         .type      = AVMEDIA_TYPE_AUDIO,
1474         .name      = "pcm_s32le_planar",
1475         .long_name = NULL_IF_CONFIG_SMALL("PCM signed 32-bit little-endian planar"),
1476         .props     = AV_CODEC_PROP_LOSSLESS,
1477     },
1478     {
1479         .id        = AV_CODEC_ID_PCM_DVD,
1480         .type      = AVMEDIA_TYPE_AUDIO,
1481         .name      = "pcm_dvd",
1482         .long_name = NULL_IF_CONFIG_SMALL("PCM signed 20|24-bit big-endian"),
1483         .props     = AV_CODEC_PROP_LOSSLESS,
1484     },
1485     {
1486         .id        = AV_CODEC_ID_PCM_F32BE,
1487         .type      = AVMEDIA_TYPE_AUDIO,
1488         .name      = "pcm_f32be",
1489         .long_name = NULL_IF_CONFIG_SMALL("PCM 32-bit floating point big-endian"),
1490         .props     = AV_CODEC_PROP_LOSSLESS,
1491     },
1492     {
1493         .id        = AV_CODEC_ID_PCM_F32LE,
1494         .type      = AVMEDIA_TYPE_AUDIO,
1495         .name      = "pcm_f32le",
1496         .long_name = NULL_IF_CONFIG_SMALL("PCM 32-bit floating point little-endian"),
1497         .props     = AV_CODEC_PROP_LOSSLESS,
1498     },
1499     {
1500         .id        = AV_CODEC_ID_PCM_F64BE,
1501         .type      = AVMEDIA_TYPE_AUDIO,
1502         .name      = "pcm_f64be",
1503         .long_name = NULL_IF_CONFIG_SMALL("PCM 64-bit floating point big-endian"),
1504         .props     = AV_CODEC_PROP_LOSSLESS,
1505     },
1506     {
1507         .id        = AV_CODEC_ID_PCM_F64LE,
1508         .type      = AVMEDIA_TYPE_AUDIO,
1509         .name      = "pcm_f64le",
1510         .long_name = NULL_IF_CONFIG_SMALL("PCM 64-bit floating point little-endian"),
1511         .props     = AV_CODEC_PROP_LOSSLESS,
1512     },
1513     {
1514         .id        = AV_CODEC_ID_PCM_BLURAY,
1515         .type      = AVMEDIA_TYPE_AUDIO,
1516         .name      = "pcm_bluray",
1517         .long_name = NULL_IF_CONFIG_SMALL("PCM signed 16|20|24-bit big-endian for Blu-ray media"),
1518         .props     = AV_CODEC_PROP_LOSSLESS,
1519     },
1520     {
1521         .id        = AV_CODEC_ID_PCM_LXF,
1522         .type      = AVMEDIA_TYPE_AUDIO,
1523         .name      = "pcm_lxf",
1524         .long_name = NULL_IF_CONFIG_SMALL("PCM signed 20-bit little-endian planar"),
1525         .props     = AV_CODEC_PROP_LOSSLESS,
1526     },
1527     {
1528         .id        = AV_CODEC_ID_S302M,
1529         .type      = AVMEDIA_TYPE_AUDIO,
1530         .name      = "s302m",
1531         .long_name = NULL_IF_CONFIG_SMALL("SMPTE 302M"),
1532         .props     = AV_CODEC_PROP_LOSSY,
1533     },
1534     {
1535         .id        = AV_CODEC_ID_PCM_S8_PLANAR,
1536         .type      = AVMEDIA_TYPE_AUDIO,
1537         .name      = "pcm_s8_planar",
1538         .long_name = NULL_IF_CONFIG_SMALL("PCM signed 8-bit planar"),
1539         .props     = AV_CODEC_PROP_LOSSLESS,
1540     },
1541
1542     /* various ADPCM codecs */
1543     {
1544         .id        = AV_CODEC_ID_ADPCM_IMA_QT,
1545         .type      = AVMEDIA_TYPE_AUDIO,
1546         .name      = "adpcm_ima_qt",
1547         .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA QuickTime"),
1548         .props     = AV_CODEC_PROP_LOSSY,
1549     },
1550     {
1551         .id        = AV_CODEC_ID_ADPCM_IMA_WAV,
1552         .type      = AVMEDIA_TYPE_AUDIO,
1553         .name      = "adpcm_ima_wav",
1554         .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA WAV"),
1555         .props     = AV_CODEC_PROP_LOSSY,
1556     },
1557     {
1558         .id        = AV_CODEC_ID_ADPCM_IMA_DK3,
1559         .type      = AVMEDIA_TYPE_AUDIO,
1560         .name      = "adpcm_ima_dk3",
1561         .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA Duck DK3"),
1562         .props     = AV_CODEC_PROP_LOSSY,
1563     },
1564     {
1565         .id        = AV_CODEC_ID_ADPCM_IMA_DK4,
1566         .type      = AVMEDIA_TYPE_AUDIO,
1567         .name      = "adpcm_ima_dk4",
1568         .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA Duck DK4"),
1569         .props     = AV_CODEC_PROP_LOSSY,
1570     },
1571     {
1572         .id        = AV_CODEC_ID_ADPCM_IMA_WS,
1573         .type      = AVMEDIA_TYPE_AUDIO,
1574         .name      = "adpcm_ima_ws",
1575         .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA Westwood"),
1576         .props     = AV_CODEC_PROP_LOSSY,
1577     },
1578     {
1579         .id        = AV_CODEC_ID_ADPCM_IMA_SMJPEG,
1580         .type      = AVMEDIA_TYPE_AUDIO,
1581         .name      = "adpcm_ima_smjpeg",
1582         .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA Loki SDL MJPEG"),
1583         .props     = AV_CODEC_PROP_LOSSY,
1584     },
1585     {
1586         .id        = AV_CODEC_ID_ADPCM_MS,
1587         .type      = AVMEDIA_TYPE_AUDIO,
1588         .name      = "adpcm_ms",
1589         .long_name = NULL_IF_CONFIG_SMALL("ADPCM Microsoft"),
1590         .props     = AV_CODEC_PROP_LOSSY,
1591     },
1592     {
1593         .id        = AV_CODEC_ID_ADPCM_4XM,
1594         .type      = AVMEDIA_TYPE_AUDIO,
1595         .name      = "adpcm_4xm",
1596         .long_name = NULL_IF_CONFIG_SMALL("ADPCM 4X Movie"),
1597         .props     = AV_CODEC_PROP_LOSSY,
1598     },
1599     {
1600         .id        = AV_CODEC_ID_ADPCM_XA,
1601         .type      = AVMEDIA_TYPE_AUDIO,
1602         .name      = "adpcm_xa",
1603         .long_name = NULL_IF_CONFIG_SMALL("ADPCM CDROM XA"),
1604         .props     = AV_CODEC_PROP_LOSSY,
1605     },
1606     {
1607         .id        = AV_CODEC_ID_ADPCM_ADX,
1608         .type      = AVMEDIA_TYPE_AUDIO,
1609         .name      = "adpcm_adx",
1610         .long_name = NULL_IF_CONFIG_SMALL("SEGA CRI ADX ADPCM"),
1611         .props     = AV_CODEC_PROP_LOSSY,
1612     },
1613     {
1614         .id        = AV_CODEC_ID_ADPCM_EA,
1615         .type      = AVMEDIA_TYPE_AUDIO,
1616         .name      = "adpcm_ea",
1617         .long_name = NULL_IF_CONFIG_SMALL("ADPCM Electronic Arts"),
1618         .props     = AV_CODEC_PROP_LOSSY,
1619     },
1620     {
1621         .id        = AV_CODEC_ID_ADPCM_G726,
1622         .type      = AVMEDIA_TYPE_AUDIO,
1623         .name      = "adpcm_g726",
1624         .long_name = NULL_IF_CONFIG_SMALL("G.726 ADPCM"),
1625         .props     = AV_CODEC_PROP_LOSSY,
1626     },
1627     {
1628         .id        = AV_CODEC_ID_ADPCM_CT,
1629         .type      = AVMEDIA_TYPE_AUDIO,
1630         .name      = "adpcm_ct",
1631         .long_name = NULL_IF_CONFIG_SMALL("ADPCM Creative Technology"),
1632         .props     = AV_CODEC_PROP_LOSSY,
1633     },
1634     {
1635         .id        = AV_CODEC_ID_ADPCM_SWF,
1636         .type      = AVMEDIA_TYPE_AUDIO,
1637         .name      = "adpcm_swf",
1638         .long_name = NULL_IF_CONFIG_SMALL("ADPCM Shockwave Flash"),
1639         .props     = AV_CODEC_PROP_LOSSY,
1640     },
1641     {
1642         .id        = AV_CODEC_ID_ADPCM_YAMAHA,
1643         .type      = AVMEDIA_TYPE_AUDIO,
1644         .name      = "adpcm_yamaha",
1645         .long_name = NULL_IF_CONFIG_SMALL("ADPCM Yamaha"),
1646         .props     = AV_CODEC_PROP_LOSSY,
1647     },
1648     {
1649         .id        = AV_CODEC_ID_ADPCM_SBPRO_4,
1650         .type      = AVMEDIA_TYPE_AUDIO,
1651         .name      = "adpcm_sbpro_4",
1652         .long_name = NULL_IF_CONFIG_SMALL("ADPCM Sound Blaster Pro 4-bit"),
1653         .props     = AV_CODEC_PROP_LOSSY,
1654     },
1655     {
1656         .id        = AV_CODEC_ID_ADPCM_SBPRO_3,
1657         .type      = AVMEDIA_TYPE_AUDIO,
1658         .name      = "adpcm_sbpro_3",
1659         .long_name = NULL_IF_CONFIG_SMALL("ADPCM Sound Blaster Pro 2.6-bit"),
1660         .props     = AV_CODEC_PROP_LOSSY,
1661     },
1662     {
1663         .id        = AV_CODEC_ID_ADPCM_SBPRO_2,
1664         .type      = AVMEDIA_TYPE_AUDIO,
1665         .name      = "adpcm_sbpro_2",
1666         .long_name = NULL_IF_CONFIG_SMALL("ADPCM Sound Blaster Pro 2-bit"),
1667         .props     = AV_CODEC_PROP_LOSSY,
1668     },
1669     {
1670         .id        = AV_CODEC_ID_ADPCM_THP,
1671         .type      = AVMEDIA_TYPE_AUDIO,
1672         .name      = "adpcm_thp",
1673         .long_name = NULL_IF_CONFIG_SMALL("ADPCM Nintendo Gamecube THP"),
1674         .props     = AV_CODEC_PROP_LOSSY,
1675     },
1676     {
1677         .id        = AV_CODEC_ID_ADPCM_IMA_AMV,
1678         .type      = AVMEDIA_TYPE_AUDIO,
1679         .name      = "adpcm_ima_amv",
1680         .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA AMV"),
1681         .props     = AV_CODEC_PROP_LOSSY,
1682     },
1683     {
1684         .id        = AV_CODEC_ID_ADPCM_EA_R1,
1685         .type      = AVMEDIA_TYPE_AUDIO,
1686         .name      = "adpcm_ea_r1",
1687         .long_name = NULL_IF_CONFIG_SMALL("ADPCM Electronic Arts R1"),
1688         .props     = AV_CODEC_PROP_LOSSY,
1689     },
1690     {
1691         .id        = AV_CODEC_ID_ADPCM_EA_R3,
1692         .type      = AVMEDIA_TYPE_AUDIO,
1693         .name      = "adpcm_ea_r3",
1694         .long_name = NULL_IF_CONFIG_SMALL("ADPCM Electronic Arts R3"),
1695         .props     = AV_CODEC_PROP_LOSSY,
1696     },
1697     {
1698         .id        = AV_CODEC_ID_ADPCM_EA_R2,
1699         .type      = AVMEDIA_TYPE_AUDIO,
1700         .name      = "adpcm_ea_r2",
1701         .long_name = NULL_IF_CONFIG_SMALL("ADPCM Electronic Arts R2"),
1702         .props     = AV_CODEC_PROP_LOSSY,
1703     },
1704     {
1705         .id        = AV_CODEC_ID_ADPCM_IMA_EA_SEAD,
1706         .type      = AVMEDIA_TYPE_AUDIO,
1707         .name      = "adpcm_ima_ea_sead",
1708         .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA Electronic Arts SEAD"),
1709         .props     = AV_CODEC_PROP_LOSSY,
1710     },
1711     {
1712         .id        = AV_CODEC_ID_ADPCM_IMA_EA_EACS,
1713         .type      = AVMEDIA_TYPE_AUDIO,
1714         .name      = "adpcm_ima_ea_eacs",
1715         .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA Electronic Arts EACS"),
1716         .props     = AV_CODEC_PROP_LOSSY,
1717     },
1718     {
1719         .id        = AV_CODEC_ID_ADPCM_EA_XAS,
1720         .type      = AVMEDIA_TYPE_AUDIO,
1721         .name      = "adpcm_ea_xas",
1722         .long_name = NULL_IF_CONFIG_SMALL("ADPCM Electronic Arts XAS"),
1723         .props     = AV_CODEC_PROP_LOSSY,
1724     },
1725     {
1726         .id        = AV_CODEC_ID_ADPCM_EA_MAXIS_XA,
1727         .type      = AVMEDIA_TYPE_AUDIO,
1728         .name      = "adpcm_ea_maxis_xa",
1729         .long_name = NULL_IF_CONFIG_SMALL("ADPCM Electronic Arts Maxis CDROM XA"),
1730         .props     = AV_CODEC_PROP_LOSSY,
1731     },
1732     {
1733         .id        = AV_CODEC_ID_ADPCM_IMA_ISS,
1734         .type      = AVMEDIA_TYPE_AUDIO,
1735         .name      = "adpcm_ima_iss",
1736         .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA Funcom ISS"),
1737         .props     = AV_CODEC_PROP_LOSSY,
1738     },
1739     {
1740         .id        = AV_CODEC_ID_ADPCM_G722,
1741         .type      = AVMEDIA_TYPE_AUDIO,
1742         .name      = "adpcm_g722",
1743         .long_name = NULL_IF_CONFIG_SMALL("G.722 ADPCM"),
1744         .props     = AV_CODEC_PROP_LOSSY,
1745     },
1746     {
1747         .id        = AV_CODEC_ID_ADPCM_IMA_APC,
1748         .type      = AVMEDIA_TYPE_AUDIO,
1749         .name      = "adpcm_ima_apc",
1750         .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA CRYO APC"),
1751         .props     = AV_CODEC_PROP_LOSSY,
1752     },
1753     {
1754         .id        = AV_CODEC_ID_ADPCM_VIMA,
1755         .type      = AVMEDIA_TYPE_AUDIO,
1756         .name      = "adpcm_vima",
1757         .long_name = NULL_IF_CONFIG_SMALL("LucasArts VIMA audio"),
1758         .props     = AV_CODEC_PROP_LOSSY,
1759     },
1760
1761     /* AMR */
1762     {
1763         .id        = AV_CODEC_ID_AMR_NB,
1764         .type      = AVMEDIA_TYPE_AUDIO,
1765         .name      = "amr_nb",
1766         .long_name = NULL_IF_CONFIG_SMALL("AMR-NB (Adaptive Multi-Rate NarrowBand)"),
1767         .props     = AV_CODEC_PROP_LOSSY,
1768     },
1769     {
1770         .id        = AV_CODEC_ID_AMR_WB,
1771         .type      = AVMEDIA_TYPE_AUDIO,
1772         .name      = "amr_wb",
1773         .long_name = NULL_IF_CONFIG_SMALL("AMR-WB (Adaptive Multi-Rate WideBand)"),
1774         .props     = AV_CODEC_PROP_LOSSY,
1775     },
1776
1777     /* RealAudio codecs*/
1778     {
1779         .id        = AV_CODEC_ID_RA_144,
1780         .type      = AVMEDIA_TYPE_AUDIO,
1781         .name      = "ra_144",
1782         .long_name = NULL_IF_CONFIG_SMALL("RealAudio 1.0 (14.4K)"),
1783         .props     = AV_CODEC_PROP_LOSSY,
1784     },
1785     {
1786         .id        = AV_CODEC_ID_RA_288,
1787         .type      = AVMEDIA_TYPE_AUDIO,
1788         .name      = "ra_288",
1789         .long_name = NULL_IF_CONFIG_SMALL("RealAudio 2.0 (28.8K)"),
1790         .props     = AV_CODEC_PROP_LOSSY,
1791     },
1792
1793     /* various DPCM codecs */
1794     {
1795         .id        = AV_CODEC_ID_ROQ_DPCM,
1796         .type      = AVMEDIA_TYPE_AUDIO,
1797         .name      = "roq_dpcm",
1798         .long_name = NULL_IF_CONFIG_SMALL("DPCM id RoQ"),
1799         .props     = AV_CODEC_PROP_LOSSY,
1800     },
1801     {
1802         .id        = AV_CODEC_ID_INTERPLAY_DPCM,
1803         .type      = AVMEDIA_TYPE_AUDIO,
1804         .name      = "interplay_dpcm",
1805         .long_name = NULL_IF_CONFIG_SMALL("DPCM Interplay"),
1806         .props     = AV_CODEC_PROP_LOSSY,
1807     },
1808     {
1809         .id        = AV_CODEC_ID_XAN_DPCM,
1810         .type      = AVMEDIA_TYPE_AUDIO,
1811         .name      = "xan_dpcm",
1812         .long_name = NULL_IF_CONFIG_SMALL("DPCM Xan"),
1813         .props     = AV_CODEC_PROP_LOSSY,
1814     },
1815     {
1816         .id        = AV_CODEC_ID_SOL_DPCM,
1817         .type      = AVMEDIA_TYPE_AUDIO,
1818         .name      = "sol_dpcm",
1819         .long_name = NULL_IF_CONFIG_SMALL("DPCM Sol"),
1820         .props     = AV_CODEC_PROP_LOSSY,
1821     },
1822
1823     /* audio codecs */
1824     {
1825         .id        = AV_CODEC_ID_MP2,
1826         .type      = AVMEDIA_TYPE_AUDIO,
1827         .name      = "mp2",
1828         .long_name = NULL_IF_CONFIG_SMALL("MP2 (MPEG audio layer 2)"),
1829         .props     = AV_CODEC_PROP_LOSSY,
1830     },
1831     {
1832         .id        = AV_CODEC_ID_MP3,
1833         .type      = AVMEDIA_TYPE_AUDIO,
1834         .name      = "mp3",
1835         .long_name = NULL_IF_CONFIG_SMALL("MP3 (MPEG audio layer 3)"),
1836         .props     = AV_CODEC_PROP_LOSSY,
1837     },
1838     {
1839         .id        = AV_CODEC_ID_AAC,
1840         .type      = AVMEDIA_TYPE_AUDIO,
1841         .name      = "aac",
1842         .long_name = NULL_IF_CONFIG_SMALL("AAC (Advanced Audio Coding)"),
1843         .props     = AV_CODEC_PROP_LOSSY,
1844     },
1845     {
1846         .id        = AV_CODEC_ID_AC3,
1847         .type      = AVMEDIA_TYPE_AUDIO,
1848         .name      = "ac3",
1849         .long_name = NULL_IF_CONFIG_SMALL("ATSC A/52A (AC-3)"),
1850         .props     = AV_CODEC_PROP_LOSSY,
1851     },
1852     {
1853         .id        = AV_CODEC_ID_DTS,
1854         .type      = AVMEDIA_TYPE_AUDIO,
1855         .name      = "dts",
1856         .long_name = NULL_IF_CONFIG_SMALL("DCA (DTS Coherent Acoustics)"),
1857         .props     = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_LOSSLESS,
1858     },
1859     {
1860         .id        = AV_CODEC_ID_VORBIS,
1861         .type      = AVMEDIA_TYPE_AUDIO,
1862         .name      = "vorbis",
1863         .long_name = NULL_IF_CONFIG_SMALL("Vorbis"),
1864         .props     = AV_CODEC_PROP_LOSSY,
1865     },
1866     {
1867         .id        = AV_CODEC_ID_DVAUDIO,
1868         .type      = AVMEDIA_TYPE_AUDIO,
1869         .name      = "dvaudio",
1870         .long_name = NULL_IF_CONFIG_SMALL("DV audio"),
1871         .props     = AV_CODEC_PROP_LOSSY,
1872     },
1873     {
1874         .id        = AV_CODEC_ID_WMAV1,
1875         .type      = AVMEDIA_TYPE_AUDIO,
1876         .name      = "wmav1",
1877         .long_name = NULL_IF_CONFIG_SMALL("Windows Media Audio 1"),
1878         .props     = AV_CODEC_PROP_LOSSY,
1879     },
1880     {
1881         .id        = AV_CODEC_ID_WMAV2,
1882         .type      = AVMEDIA_TYPE_AUDIO,
1883         .name      = "wmav2",
1884         .long_name = NULL_IF_CONFIG_SMALL("Windows Media Audio 2"),
1885         .props     = AV_CODEC_PROP_LOSSY,
1886     },
1887     {
1888         .id        = AV_CODEC_ID_MACE3,
1889         .type      = AVMEDIA_TYPE_AUDIO,
1890         .name      = "mace3",
1891         .long_name = NULL_IF_CONFIG_SMALL("MACE (Macintosh Audio Compression/Expansion) 3:1"),
1892         .props     = AV_CODEC_PROP_LOSSY,
1893     },
1894     {
1895         .id        = AV_CODEC_ID_MACE6,
1896         .type      = AVMEDIA_TYPE_AUDIO,
1897         .name      = "mace6",
1898         .long_name = NULL_IF_CONFIG_SMALL("MACE (Macintosh Audio Compression/Expansion) 6:1"),
1899         .props     = AV_CODEC_PROP_LOSSY,
1900     },
1901     {
1902         .id        = AV_CODEC_ID_VMDAUDIO,
1903         .type      = AVMEDIA_TYPE_AUDIO,
1904         .name      = "vmdaudio",
1905         .long_name = NULL_IF_CONFIG_SMALL("Sierra VMD audio"),
1906         .props     = AV_CODEC_PROP_LOSSY,
1907     },
1908     {
1909         .id        = AV_CODEC_ID_FLAC,
1910         .type      = AVMEDIA_TYPE_AUDIO,
1911         .name      = "flac",
1912         .long_name = NULL_IF_CONFIG_SMALL("FLAC (Free Lossless Audio Codec)"),
1913         .props     = AV_CODEC_PROP_LOSSLESS,
1914     },
1915     {
1916         .id        = AV_CODEC_ID_MP3ADU,
1917         .type      = AVMEDIA_TYPE_AUDIO,
1918         .name      = "mp3adu",
1919         .long_name = NULL_IF_CONFIG_SMALL("ADU (Application Data Unit) MP3 (MPEG audio layer 3)"),
1920         .props     = AV_CODEC_PROP_LOSSY,
1921     },
1922     {
1923         .id        = AV_CODEC_ID_MP3ON4,
1924         .type      = AVMEDIA_TYPE_AUDIO,
1925         .name      = "mp3on4",
1926         .long_name = NULL_IF_CONFIG_SMALL("MP3onMP4"),
1927         .props     = AV_CODEC_PROP_LOSSY,
1928     },
1929     {
1930         .id        = AV_CODEC_ID_SHORTEN,
1931         .type      = AVMEDIA_TYPE_AUDIO,
1932         .name      = "shorten",
1933         .long_name = NULL_IF_CONFIG_SMALL("Shorten"),
1934         .props     = AV_CODEC_PROP_LOSSLESS,
1935     },
1936     {
1937         .id        = AV_CODEC_ID_ALAC,
1938         .type      = AVMEDIA_TYPE_AUDIO,
1939         .name      = "alac",
1940         .long_name = NULL_IF_CONFIG_SMALL("ALAC (Apple Lossless Audio Codec)"),
1941         .props     = AV_CODEC_PROP_LOSSLESS,
1942     },
1943     {
1944         .id        = AV_CODEC_ID_WESTWOOD_SND1,
1945         .type      = AVMEDIA_TYPE_AUDIO,
1946         .name      = "westwood_snd1",
1947         .long_name = NULL_IF_CONFIG_SMALL("Westwood Audio (SND1)"),
1948         .props     = AV_CODEC_PROP_LOSSY,
1949     },
1950     {
1951         .id        = AV_CODEC_ID_GSM,
1952         .type      = AVMEDIA_TYPE_AUDIO,
1953         .name      = "gsm",
1954         .long_name = NULL_IF_CONFIG_SMALL("GSM"),
1955         .props     = AV_CODEC_PROP_LOSSY,
1956     },
1957     {
1958         .id        = AV_CODEC_ID_QDM2,
1959         .type      = AVMEDIA_TYPE_AUDIO,
1960         .name      = "qdm2",
1961         .long_name = NULL_IF_CONFIG_SMALL("QDesign Music Codec 2"),
1962         .props     = AV_CODEC_PROP_LOSSY,
1963     },
1964     {
1965         .id        = AV_CODEC_ID_COOK,
1966         .type      = AVMEDIA_TYPE_AUDIO,
1967         .name      = "cook",
1968         .long_name = NULL_IF_CONFIG_SMALL("Cook / Cooker / Gecko (RealAudio G2)"),
1969         .props     = AV_CODEC_PROP_LOSSY,
1970     },
1971     {
1972         .id        = AV_CODEC_ID_TRUESPEECH,
1973         .type      = AVMEDIA_TYPE_AUDIO,
1974         .name      = "truespeech",
1975         .long_name = NULL_IF_CONFIG_SMALL("DSP Group TrueSpeech"),
1976         .props     = AV_CODEC_PROP_LOSSY,
1977     },
1978     {
1979         .id        = AV_CODEC_ID_TTA,
1980         .type      = AVMEDIA_TYPE_AUDIO,
1981         .name      = "tta",
1982         .long_name = NULL_IF_CONFIG_SMALL("TTA (True Audio)"),
1983         .props     = AV_CODEC_PROP_LOSSLESS,
1984     },
1985     {
1986         .id        = AV_CODEC_ID_SMACKAUDIO,
1987         .type      = AVMEDIA_TYPE_AUDIO,
1988         .name      = "smackaudio",
1989         .long_name = NULL_IF_CONFIG_SMALL("Smacker audio"),
1990         .props     = AV_CODEC_PROP_LOSSY,
1991     },
1992     {
1993         .id        = AV_CODEC_ID_QCELP,
1994         .type      = AVMEDIA_TYPE_AUDIO,
1995         .name      = "qcelp",
1996         .long_name = NULL_IF_CONFIG_SMALL("QCELP / PureVoice"),
1997         .props     = AV_CODEC_PROP_LOSSY,
1998     },
1999     {
2000         .id        = AV_CODEC_ID_WAVPACK,
2001         .type      = AVMEDIA_TYPE_AUDIO,
2002         .name      = "wavpack",
2003         .long_name = NULL_IF_CONFIG_SMALL("WavPack"),
2004         .props     = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_LOSSLESS,
2005     },
2006     {
2007         .id        = AV_CODEC_ID_DSICINAUDIO,
2008         .type      = AVMEDIA_TYPE_AUDIO,
2009         .name      = "dsicinaudio",
2010         .long_name = NULL_IF_CONFIG_SMALL("Delphine Software International CIN audio"),
2011         .props     = AV_CODEC_PROP_LOSSY,
2012     },
2013     {
2014         .id        = AV_CODEC_ID_IMC,
2015         .type      = AVMEDIA_TYPE_AUDIO,
2016         .name      = "imc",
2017         .long_name = NULL_IF_CONFIG_SMALL("IMC (Intel Music Coder)"),
2018         .props     = AV_CODEC_PROP_LOSSY,
2019     },
2020     {
2021         .id        = AV_CODEC_ID_MUSEPACK7,
2022         .type      = AVMEDIA_TYPE_AUDIO,
2023         .name      = "musepack7",
2024         .long_name = NULL_IF_CONFIG_SMALL("Musepack SV7"),
2025         .props     = AV_CODEC_PROP_LOSSY,
2026     },
2027     {
2028         .id        = AV_CODEC_ID_MLP,
2029         .type      = AVMEDIA_TYPE_AUDIO,
2030         .name      = "mlp",
2031         .long_name = NULL_IF_CONFIG_SMALL("MLP (Meridian Lossless Packing)"),
2032         .props     = AV_CODEC_PROP_LOSSLESS,
2033     },
2034     {
2035         .id        = AV_CODEC_ID_GSM_MS,
2036         .type      = AVMEDIA_TYPE_AUDIO,
2037         .name      = "gsm_ms",
2038         .long_name = NULL_IF_CONFIG_SMALL("GSM Microsoft variant"),
2039         .props     = AV_CODEC_PROP_LOSSY,
2040     },
2041     {
2042         .id        = AV_CODEC_ID_ATRAC3,
2043         .type      = AVMEDIA_TYPE_AUDIO,
2044         .name      = "atrac3",
2045         .long_name = NULL_IF_CONFIG_SMALL("ATRAC3 (Adaptive TRansform Acoustic Coding 3)"),
2046         .props     = AV_CODEC_PROP_LOSSY,
2047     },
2048 #if FF_API_VOXWARE
2049     {
2050         .id        = AV_CODEC_ID_VOXWARE,
2051         .type      = AVMEDIA_TYPE_AUDIO,
2052         .name      = "voxware",
2053         .long_name = NULL_IF_CONFIG_SMALL("Voxware RT29 Metasound"),
2054         .props     = AV_CODEC_PROP_LOSSY,
2055     },
2056 #endif
2057     {
2058         .id        = AV_CODEC_ID_APE,
2059         .type      = AVMEDIA_TYPE_AUDIO,
2060         .name      = "ape",
2061         .long_name = NULL_IF_CONFIG_SMALL("Monkey's Audio"),
2062         .props     = AV_CODEC_PROP_LOSSLESS,
2063     },
2064     {
2065         .id        = AV_CODEC_ID_NELLYMOSER,
2066         .type      = AVMEDIA_TYPE_AUDIO,
2067         .name      = "nellymoser",
2068         .long_name = NULL_IF_CONFIG_SMALL("Nellymoser Asao"),
2069         .props     = AV_CODEC_PROP_LOSSY,
2070     },
2071     {
2072         .id        = AV_CODEC_ID_MUSEPACK8,
2073         .type      = AVMEDIA_TYPE_AUDIO,
2074         .name      = "musepack8",
2075         .long_name = NULL_IF_CONFIG_SMALL("Musepack SV8"),
2076         .props     = AV_CODEC_PROP_LOSSY,
2077     },
2078     {
2079         .id        = AV_CODEC_ID_SPEEX,
2080         .type      = AVMEDIA_TYPE_AUDIO,
2081         .name      = "speex",
2082         .long_name = NULL_IF_CONFIG_SMALL("Speex"),
2083         .props     = AV_CODEC_PROP_LOSSY,
2084     },
2085     {
2086         .id        = AV_CODEC_ID_WMAVOICE,
2087         .type      = AVMEDIA_TYPE_AUDIO,
2088         .name      = "wmavoice",
2089         .long_name = NULL_IF_CONFIG_SMALL("Windows Media Audio Voice"),
2090         .props     = AV_CODEC_PROP_LOSSY,
2091     },
2092     {
2093         .id        = AV_CODEC_ID_WMAPRO,
2094         .type      = AVMEDIA_TYPE_AUDIO,
2095         .name      = "wmapro",
2096         .long_name = NULL_IF_CONFIG_SMALL("Windows Media Audio 9 Professional"),
2097         .props     = AV_CODEC_PROP_LOSSY,
2098     },
2099     {
2100         .id        = AV_CODEC_ID_WMALOSSLESS,
2101         .type      = AVMEDIA_TYPE_AUDIO,
2102         .name      = "wmalossless",
2103         .long_name = NULL_IF_CONFIG_SMALL("Windows Media Audio Lossless"),
2104         .props     = AV_CODEC_PROP_LOSSLESS,
2105     },
2106     {
2107         .id        = AV_CODEC_ID_ATRAC3P,
2108         .type      = AVMEDIA_TYPE_AUDIO,
2109         .name      = "atrac3p",
2110         .long_name = NULL_IF_CONFIG_SMALL("ATRAC3+ (Adaptive TRansform Acoustic Coding 3+)"),
2111         .props     = AV_CODEC_PROP_LOSSY,
2112     },
2113     {
2114         .id        = AV_CODEC_ID_EAC3,
2115         .type      = AVMEDIA_TYPE_AUDIO,
2116         .name      = "eac3",
2117         .long_name = NULL_IF_CONFIG_SMALL("ATSC A/52B (AC-3, E-AC-3)"),
2118         .props     = AV_CODEC_PROP_LOSSY,
2119     },
2120     {
2121         .id        = AV_CODEC_ID_SIPR,
2122         .type      = AVMEDIA_TYPE_AUDIO,
2123         .name      = "sipr",
2124         .long_name = NULL_IF_CONFIG_SMALL("RealAudio SIPR / ACELP.NET"),
2125         .props     = AV_CODEC_PROP_LOSSY,
2126     },
2127     {
2128         .id        = AV_CODEC_ID_MP1,
2129         .type      = AVMEDIA_TYPE_AUDIO,
2130         .name      = "mp1",
2131         .long_name = NULL_IF_CONFIG_SMALL("MP1 (MPEG audio layer 1)"),
2132         .props     = AV_CODEC_PROP_LOSSY,
2133     },
2134     {
2135         .id        = AV_CODEC_ID_TWINVQ,
2136         .type      = AVMEDIA_TYPE_AUDIO,
2137         .name      = "twinvq",
2138         .long_name = NULL_IF_CONFIG_SMALL("VQF TwinVQ"),
2139         .props     = AV_CODEC_PROP_LOSSY,
2140     },
2141     {
2142         .id        = AV_CODEC_ID_TRUEHD,
2143         .type      = AVMEDIA_TYPE_AUDIO,
2144         .name      = "truehd",
2145         .long_name = NULL_IF_CONFIG_SMALL("TrueHD"),
2146         .props     = AV_CODEC_PROP_LOSSLESS,
2147     },
2148     {
2149         .id        = AV_CODEC_ID_MP4ALS,
2150         .type      = AVMEDIA_TYPE_AUDIO,
2151         .name      = "mp4als",
2152         .long_name = NULL_IF_CONFIG_SMALL("MPEG-4 Audio Lossless Coding (ALS)"),
2153         .props     = AV_CODEC_PROP_LOSSLESS,
2154     },
2155     {
2156         .id        = AV_CODEC_ID_ATRAC1,
2157         .type      = AVMEDIA_TYPE_AUDIO,
2158         .name      = "atrac1",
2159         .long_name = NULL_IF_CONFIG_SMALL("ATRAC1 (Adaptive TRansform Acoustic Coding)"),
2160         .props     = AV_CODEC_PROP_LOSSY,
2161     },
2162     {
2163         .id        = AV_CODEC_ID_BINKAUDIO_RDFT,
2164         .type      = AVMEDIA_TYPE_AUDIO,
2165         .name      = "binkaudio_rdft",
2166         .long_name = NULL_IF_CONFIG_SMALL("Bink Audio (RDFT)"),
2167         .props     = AV_CODEC_PROP_LOSSY,
2168     },
2169     {
2170         .id        = AV_CODEC_ID_BINKAUDIO_DCT,
2171         .type      = AVMEDIA_TYPE_AUDIO,
2172         .name      = "binkaudio_dct",
2173         .long_name = NULL_IF_CONFIG_SMALL("Bink Audio (DCT)"),
2174         .props     = AV_CODEC_PROP_LOSSY,
2175     },
2176     {
2177         .id        = AV_CODEC_ID_AAC_LATM,
2178         .type      = AVMEDIA_TYPE_AUDIO,
2179         .name      = "aac_latm",
2180         .long_name = NULL_IF_CONFIG_SMALL("AAC LATM (Advanced Audio Coding LATM syntax)"),
2181         .props     = AV_CODEC_PROP_LOSSY,
2182     },
2183     {
2184         .id        = AV_CODEC_ID_QDMC,
2185         .type      = AVMEDIA_TYPE_AUDIO,
2186         .name      = "qdmc",
2187         .long_name = NULL_IF_CONFIG_SMALL("QDesign Music"),
2188         .props     = AV_CODEC_PROP_LOSSY,
2189     },
2190     {
2191         .id        = AV_CODEC_ID_CELT,
2192         .type      = AVMEDIA_TYPE_AUDIO,
2193         .name      = "celt",
2194         .long_name = NULL_IF_CONFIG_SMALL("Constrained Energy Lapped Transform (CELT)"),
2195         .props     = AV_CODEC_PROP_LOSSY,
2196     },
2197     {
2198         .id        = AV_CODEC_ID_G723_1,
2199         .type      = AVMEDIA_TYPE_AUDIO,
2200         .name      = "g723_1",
2201         .long_name = NULL_IF_CONFIG_SMALL("G.723.1"),
2202         .props     = AV_CODEC_PROP_LOSSY,
2203     },
2204     {
2205         .id        = AV_CODEC_ID_G729,
2206         .type      = AVMEDIA_TYPE_AUDIO,
2207         .name      = "g729",
2208         .long_name = NULL_IF_CONFIG_SMALL("G.729"),
2209         .props     = AV_CODEC_PROP_LOSSY,
2210     },
2211     {
2212         .id        = AV_CODEC_ID_8SVX_EXP,
2213         .type      = AVMEDIA_TYPE_AUDIO,
2214         .name      = "8svx_exp",
2215         .long_name = NULL_IF_CONFIG_SMALL("8SVX exponential"),
2216         .props     = AV_CODEC_PROP_LOSSY,
2217     },
2218     {
2219         .id        = AV_CODEC_ID_8SVX_FIB,
2220         .type      = AVMEDIA_TYPE_AUDIO,
2221         .name      = "8svx_fib",
2222         .long_name = NULL_IF_CONFIG_SMALL("8SVX fibonacci"),
2223         .props     = AV_CODEC_PROP_LOSSY,
2224     },
2225     {
2226         .id        = AV_CODEC_ID_BMV_AUDIO,
2227         .type      = AVMEDIA_TYPE_AUDIO,
2228         .name      = "bmv_audio",
2229         .long_name = NULL_IF_CONFIG_SMALL("Discworld II BMV audio"),
2230         .props     = AV_CODEC_PROP_LOSSY,
2231     },
2232     {
2233         .id        = AV_CODEC_ID_RALF,
2234         .type      = AVMEDIA_TYPE_AUDIO,
2235         .name      = "ralf",
2236         .long_name = NULL_IF_CONFIG_SMALL("RealAudio Lossless"),
2237         .props     = AV_CODEC_PROP_LOSSLESS,
2238     },
2239     {
2240         .id        = AV_CODEC_ID_IAC,
2241         .type      = AVMEDIA_TYPE_AUDIO,
2242         .name      = "iac",
2243         .long_name = NULL_IF_CONFIG_SMALL("IAC (Indeo Audio Coder)"),
2244         .props     = AV_CODEC_PROP_LOSSY,
2245     },
2246     {
2247         .id        = AV_CODEC_ID_ILBC,
2248         .type      = AVMEDIA_TYPE_AUDIO,
2249         .name      = "ilbc",
2250         .long_name = NULL_IF_CONFIG_SMALL("iLBC (Internet Low Bitrate Codec)"),
2251         .props     = AV_CODEC_PROP_LOSSY,
2252     },
2253     {
2254         .id        = AV_CODEC_ID_OPUS,
2255         .type      = AVMEDIA_TYPE_AUDIO,
2256         .name      = "opus",
2257         .long_name = NULL_IF_CONFIG_SMALL("Opus (Opus Interactive Audio Codec)"),
2258         .props     = AV_CODEC_PROP_LOSSY,
2259     },
2260     {
2261         .id        = AV_CODEC_ID_COMFORT_NOISE,
2262         .type      = AVMEDIA_TYPE_AUDIO,
2263         .name      = "comfortnoise",
2264         .long_name = NULL_IF_CONFIG_SMALL("RFC 3389 Comfort Noise"),
2265         .props     = AV_CODEC_PROP_LOSSY,
2266     },
2267     {
2268         .id        = AV_CODEC_ID_TAK,
2269         .type      = AVMEDIA_TYPE_AUDIO,
2270         .name      = "tak",
2271         .long_name = NULL_IF_CONFIG_SMALL("TAK (Tom's lossless Audio Kompressor)"),
2272         .props     = AV_CODEC_PROP_LOSSLESS,
2273     },
2274     {
2275         .id        = AV_CODEC_ID_METASOUND,
2276         .type      = AVMEDIA_TYPE_AUDIO,
2277         .name      = "metasound",
2278         .long_name = NULL_IF_CONFIG_SMALL("Voxware MetaSound"),
2279         .props     = AV_CODEC_PROP_LOSSY,
2280     },
2281     {
2282         .id        = AV_CODEC_ID_PAF_AUDIO,
2283         .type      = AVMEDIA_TYPE_AUDIO,
2284         .name      = "paf_audio",
2285         .long_name = NULL_IF_CONFIG_SMALL("Amazing Studio Packed Animation File Audio"),
2286         .props     = AV_CODEC_PROP_LOSSY,
2287     },
2288     {
2289         .id        = AV_CODEC_ID_ON2AVC,
2290         .type      = AVMEDIA_TYPE_AUDIO,
2291         .name      = "avc",
2292         .long_name = NULL_IF_CONFIG_SMALL("On2 Audio for Video Codec"),
2293         .props     = AV_CODEC_PROP_LOSSY,
2294     },
2295
2296     /* subtitle codecs */
2297     {
2298         .id        = AV_CODEC_ID_DVD_SUBTITLE,
2299         .type      = AVMEDIA_TYPE_SUBTITLE,
2300         .name      = "dvd_subtitle",
2301         .long_name = NULL_IF_CONFIG_SMALL("DVD subtitles"),
2302     },
2303     {
2304         .id        = AV_CODEC_ID_DVB_SUBTITLE,
2305         .type      = AVMEDIA_TYPE_SUBTITLE,
2306         .name      = "dvb_subtitle",
2307         .long_name = NULL_IF_CONFIG_SMALL("DVB subtitles"),
2308     },
2309     {
2310         .id        = AV_CODEC_ID_TEXT,
2311         .type      = AVMEDIA_TYPE_SUBTITLE,
2312         .name      = "text",
2313         .long_name = NULL_IF_CONFIG_SMALL("raw UTF-8 text"),
2314     },
2315     {
2316         .id        = AV_CODEC_ID_XSUB,
2317         .type      = AVMEDIA_TYPE_SUBTITLE,
2318         .name      = "xsub",
2319         .long_name = NULL_IF_CONFIG_SMALL("XSUB"),
2320     },
2321     {
2322         .id        = AV_CODEC_ID_SSA,
2323         .type      = AVMEDIA_TYPE_SUBTITLE,
2324         .name      = "ssa",
2325         .long_name = NULL_IF_CONFIG_SMALL("SSA (SubStation Alpha) / ASS (Advanced SSA) subtitle"),
2326     },
2327     {
2328         .id        = AV_CODEC_ID_MOV_TEXT,
2329         .type      = AVMEDIA_TYPE_SUBTITLE,
2330         .name      = "mov_text",
2331         .long_name = NULL_IF_CONFIG_SMALL("MOV text"),
2332     },
2333     {
2334         .id        = AV_CODEC_ID_HDMV_PGS_SUBTITLE,
2335         .type      = AVMEDIA_TYPE_SUBTITLE,
2336         .name      = "hdmv_pgs_subtitle",
2337         .long_name = NULL_IF_CONFIG_SMALL("HDMV Presentation Graphic Stream subtitles"),
2338     },
2339     {
2340         .id        = AV_CODEC_ID_DVB_TELETEXT,
2341         .type      = AVMEDIA_TYPE_SUBTITLE,
2342         .name      = "dvb_teletext",
2343         .long_name = NULL_IF_CONFIG_SMALL("DVB teletext"),
2344     },
2345     {
2346         .id        = AV_CODEC_ID_SRT,
2347         .type      = AVMEDIA_TYPE_SUBTITLE,
2348         .name      = "srt",
2349         .long_name = NULL_IF_CONFIG_SMALL("SubRip Text"),
2350     },
2351 };
2352
2353 const AVCodecDescriptor *avcodec_descriptor_get(enum AVCodecID id)
2354 {
2355     int i;
2356
2357     for (i = 0; i < FF_ARRAY_ELEMS(codec_descriptors); i++)
2358         if (codec_descriptors[i].id == id)
2359             return &codec_descriptors[i];
2360     return NULL;
2361 }
2362
2363 const AVCodecDescriptor *avcodec_descriptor_next(const AVCodecDescriptor *prev)
2364 {
2365     if (!prev)
2366         return &codec_descriptors[0];
2367     if (prev - codec_descriptors < FF_ARRAY_ELEMS(codec_descriptors) - 1)
2368         return prev + 1;
2369     return NULL;
2370 }
2371
2372 const AVCodecDescriptor *avcodec_descriptor_get_by_name(const char *name)
2373 {
2374     const AVCodecDescriptor *desc = NULL;
2375
2376     while ((desc = avcodec_descriptor_next(desc)))
2377         if (!strcmp(desc->name, name))
2378             return desc;
2379     return NULL;
2380 }