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