1/*
2 * This file is part of FFmpeg.
3 *
4 * This table was generated from the long and short names of AVCodecs
5 * please see the respective codec sources for authorship
6 *
7 * FFmpeg is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * FFmpeg is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with FFmpeg; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 */
21
22#include <stdlib.h>
23#include <string.h>
24
25#include "libavutil/internal.h"
26#include "libavutil/macros.h"
27
28#include "codec_id.h"
29#include "codec_desc.h"
30#include "profiles.h"
31
32#define MT(...) (const char *const[]){ __VA_ARGS__, NULL }
33
34static const AVCodecDescriptor codec_descriptors[] = {
35    /* video codecs */
36    {
37        .id        = AV_CODEC_ID_MPEG1VIDEO,
38        .type      = AVMEDIA_TYPE_VIDEO,
39        .name      = "mpeg1video",
40        .long_name = NULL_IF_CONFIG_SMALL("MPEG-1 video"),
41        .props     = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER,
42    },
43    {
44        .id        = AV_CODEC_ID_MPEG2VIDEO,
45        .type      = AVMEDIA_TYPE_VIDEO,
46        .name      = "mpeg2video",
47        .long_name = NULL_IF_CONFIG_SMALL("MPEG-2 video"),
48        .props     = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER,
49        .profiles  = NULL_IF_CONFIG_SMALL(ff_mpeg2_video_profiles),
50    },
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        .mime_types= MT("image/jpeg"),
86        .profiles  = NULL_IF_CONFIG_SMALL(ff_mjpeg_profiles),
87    },
88    {
89        .id        = AV_CODEC_ID_MJPEGB,
90        .type      = AVMEDIA_TYPE_VIDEO,
91        .name      = "mjpegb",
92        .long_name = NULL_IF_CONFIG_SMALL("Apple MJPEG-B"),
93        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
94    },
95    {
96        .id        = AV_CODEC_ID_LJPEG,
97        .type      = AVMEDIA_TYPE_VIDEO,
98        .name      = "ljpeg",
99        .long_name = NULL_IF_CONFIG_SMALL("Lossless JPEG"),
100        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
101    },
102    {
103        .id        = AV_CODEC_ID_SP5X,
104        .type      = AVMEDIA_TYPE_VIDEO,
105        .name      = "sp5x",
106        .long_name = NULL_IF_CONFIG_SMALL("Sunplus JPEG (SP5X)"),
107        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
108    },
109    {
110        .id        = AV_CODEC_ID_JPEGLS,
111        .type      = AVMEDIA_TYPE_VIDEO,
112        .name      = "jpegls",
113        .long_name = NULL_IF_CONFIG_SMALL("JPEG-LS"),
114        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY |
115                     AV_CODEC_PROP_LOSSLESS,
116    },
117    {
118        .id        = AV_CODEC_ID_MPEG4,
119        .type      = AVMEDIA_TYPE_VIDEO,
120        .name      = "mpeg4",
121        .long_name = NULL_IF_CONFIG_SMALL("MPEG-4 part 2"),
122        .props     = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER,
123        .profiles  = NULL_IF_CONFIG_SMALL(ff_mpeg4_video_profiles),
124    },
125    {
126        .id        = AV_CODEC_ID_RAWVIDEO,
127        .type      = AVMEDIA_TYPE_VIDEO,
128        .name      = "rawvideo",
129        .long_name = NULL_IF_CONFIG_SMALL("raw video"),
130        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
131    },
132    {
133        .id        = AV_CODEC_ID_MSMPEG4V1,
134        .type      = AVMEDIA_TYPE_VIDEO,
135        .name      = "msmpeg4v1",
136        .long_name = NULL_IF_CONFIG_SMALL("MPEG-4 part 2 Microsoft variant version 1"),
137        .props     = AV_CODEC_PROP_LOSSY,
138    },
139    {
140        .id        = AV_CODEC_ID_MSMPEG4V2,
141        .type      = AVMEDIA_TYPE_VIDEO,
142        .name      = "msmpeg4v2",
143        .long_name = NULL_IF_CONFIG_SMALL("MPEG-4 part 2 Microsoft variant version 2"),
144        .props     = AV_CODEC_PROP_LOSSY,
145    },
146    {
147        .id        = AV_CODEC_ID_MSMPEG4V3,
148        .type      = AVMEDIA_TYPE_VIDEO,
149        .name      = "msmpeg4v3",
150        .long_name = NULL_IF_CONFIG_SMALL("MPEG-4 part 2 Microsoft variant version 3"),
151        .props     = AV_CODEC_PROP_LOSSY,
152    },
153    {
154        .id        = AV_CODEC_ID_WMV1,
155        .type      = AVMEDIA_TYPE_VIDEO,
156        .name      = "wmv1",
157        .long_name = NULL_IF_CONFIG_SMALL("Windows Media Video 7"),
158        .props     = AV_CODEC_PROP_LOSSY,
159    },
160    {
161        .id        = AV_CODEC_ID_WMV2,
162        .type      = AVMEDIA_TYPE_VIDEO,
163        .name      = "wmv2",
164        .long_name = NULL_IF_CONFIG_SMALL("Windows Media Video 8"),
165        .props     = AV_CODEC_PROP_LOSSY,
166    },
167    {
168        .id        = AV_CODEC_ID_H263P,
169        .type      = AVMEDIA_TYPE_VIDEO,
170        .name      = "h263p",
171        .long_name = NULL_IF_CONFIG_SMALL("H.263+ / H.263-1998 / H.263 version 2"),
172        .props     = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER,
173    },
174    {
175        .id        = AV_CODEC_ID_H263I,
176        .type      = AVMEDIA_TYPE_VIDEO,
177        .name      = "h263i",
178        .long_name = NULL_IF_CONFIG_SMALL("Intel H.263"),
179        .props     = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER,
180    },
181    {
182        .id        = AV_CODEC_ID_FLV1,
183        .type      = AVMEDIA_TYPE_VIDEO,
184        .name      = "flv1",
185        .long_name = NULL_IF_CONFIG_SMALL("FLV / Sorenson Spark / Sorenson H.263 (Flash Video)"),
186        .props     = AV_CODEC_PROP_LOSSY,
187    },
188    {
189        .id        = AV_CODEC_ID_SVQ1,
190        .type      = AVMEDIA_TYPE_VIDEO,
191        .name      = "svq1",
192        .long_name = NULL_IF_CONFIG_SMALL("Sorenson Vector Quantizer 1 / Sorenson Video 1 / SVQ1"),
193        .props     = AV_CODEC_PROP_LOSSY,
194    },
195    {
196        .id        = AV_CODEC_ID_SVQ3,
197        .type      = AVMEDIA_TYPE_VIDEO,
198        .name      = "svq3",
199        .long_name = NULL_IF_CONFIG_SMALL("Sorenson Vector Quantizer 3 / Sorenson Video 3 / SVQ3"),
200        .props     = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER,
201    },
202    {
203        .id        = AV_CODEC_ID_DVVIDEO,
204        .type      = AVMEDIA_TYPE_VIDEO,
205        .name      = "dvvideo",
206        .long_name = NULL_IF_CONFIG_SMALL("DV (Digital Video)"),
207        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
208    },
209    {
210        .id        = AV_CODEC_ID_HUFFYUV,
211        .type      = AVMEDIA_TYPE_VIDEO,
212        .name      = "huffyuv",
213        .long_name = NULL_IF_CONFIG_SMALL("HuffYUV"),
214        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
215    },
216    {
217        .id        = AV_CODEC_ID_CYUV,
218        .type      = AVMEDIA_TYPE_VIDEO,
219        .name      = "cyuv",
220        .long_name = NULL_IF_CONFIG_SMALL("Creative YUV (CYUV)"),
221        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
222    },
223    {
224        .id        = AV_CODEC_ID_H264,
225        .type      = AVMEDIA_TYPE_VIDEO,
226        .name      = "h264",
227        .long_name = NULL_IF_CONFIG_SMALL("H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10"),
228        .props     = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_LOSSLESS | AV_CODEC_PROP_REORDER,
229        .profiles  = NULL_IF_CONFIG_SMALL(ff_h264_profiles),
230    },
231    {
232        .id        = AV_CODEC_ID_INDEO3,
233        .type      = AVMEDIA_TYPE_VIDEO,
234        .name      = "indeo3",
235        .long_name = NULL_IF_CONFIG_SMALL("Intel Indeo 3"),
236        .props     = AV_CODEC_PROP_LOSSY,
237    },
238    {
239        .id        = AV_CODEC_ID_VP3,
240        .type      = AVMEDIA_TYPE_VIDEO,
241        .name      = "vp3",
242        .long_name = NULL_IF_CONFIG_SMALL("On2 VP3"),
243        .props     = AV_CODEC_PROP_LOSSY,
244    },
245    {
246        .id        = AV_CODEC_ID_THEORA,
247        .type      = AVMEDIA_TYPE_VIDEO,
248        .name      = "theora",
249        .long_name = NULL_IF_CONFIG_SMALL("Theora"),
250        .props     = AV_CODEC_PROP_LOSSY,
251    },
252    {
253        .id        = AV_CODEC_ID_ASV1,
254        .type      = AVMEDIA_TYPE_VIDEO,
255        .name      = "asv1",
256        .long_name = NULL_IF_CONFIG_SMALL("ASUS V1"),
257        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
258    },
259    {
260        .id        = AV_CODEC_ID_ASV2,
261        .type      = AVMEDIA_TYPE_VIDEO,
262        .name      = "asv2",
263        .long_name = NULL_IF_CONFIG_SMALL("ASUS V2"),
264        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
265    },
266    {
267        .id        = AV_CODEC_ID_FFV1,
268        .type      = AVMEDIA_TYPE_VIDEO,
269        .name      = "ffv1",
270        .long_name = NULL_IF_CONFIG_SMALL("FFmpeg video codec #1"),
271        .props     = AV_CODEC_PROP_LOSSLESS,
272    },
273    {
274        .id        = AV_CODEC_ID_4XM,
275        .type      = AVMEDIA_TYPE_VIDEO,
276        .name      = "4xm",
277        .long_name = NULL_IF_CONFIG_SMALL("4X Movie"),
278        .props     = AV_CODEC_PROP_LOSSY,
279    },
280    {
281        .id        = AV_CODEC_ID_VCR1,
282        .type      = AVMEDIA_TYPE_VIDEO,
283        .name      = "vcr1",
284        .long_name = NULL_IF_CONFIG_SMALL("ATI VCR1"),
285        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
286    },
287    {
288        .id        = AV_CODEC_ID_CLJR,
289        .type      = AVMEDIA_TYPE_VIDEO,
290        .name      = "cljr",
291        .long_name = NULL_IF_CONFIG_SMALL("Cirrus Logic AccuPak"),
292        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
293    },
294    {
295        .id        = AV_CODEC_ID_MDEC,
296        .type      = AVMEDIA_TYPE_VIDEO,
297        .name      = "mdec",
298        .long_name = NULL_IF_CONFIG_SMALL("Sony PlayStation MDEC (Motion DECoder)"),
299        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
300    },
301    {
302        .id        = AV_CODEC_ID_ROQ,
303        .type      = AVMEDIA_TYPE_VIDEO,
304        .name      = "roq",
305        .long_name = NULL_IF_CONFIG_SMALL("id RoQ video"),
306        .props     = AV_CODEC_PROP_LOSSY,
307    },
308    {
309        .id        = AV_CODEC_ID_INTERPLAY_VIDEO,
310        .type      = AVMEDIA_TYPE_VIDEO,
311        .name      = "interplayvideo",
312        .long_name = NULL_IF_CONFIG_SMALL("Interplay MVE video"),
313        .props     = AV_CODEC_PROP_LOSSY,
314    },
315    {
316        .id        = AV_CODEC_ID_XAN_WC3,
317        .type      = AVMEDIA_TYPE_VIDEO,
318        .name      = "xan_wc3",
319        .long_name = NULL_IF_CONFIG_SMALL("Wing Commander III / Xan"),
320        .props     = AV_CODEC_PROP_LOSSY,
321    },
322    {
323        .id        = AV_CODEC_ID_XAN_WC4,
324        .type      = AVMEDIA_TYPE_VIDEO,
325        .name      = "xan_wc4",
326        .long_name = NULL_IF_CONFIG_SMALL("Wing Commander IV / Xxan"),
327        .props     = AV_CODEC_PROP_LOSSY,
328    },
329    {
330        .id        = AV_CODEC_ID_RPZA,
331        .type      = AVMEDIA_TYPE_VIDEO,
332        .name      = "rpza",
333        .long_name = NULL_IF_CONFIG_SMALL("QuickTime video (RPZA)"),
334        .props     = AV_CODEC_PROP_LOSSY,
335    },
336    {
337        .id        = AV_CODEC_ID_CINEPAK,
338        .type      = AVMEDIA_TYPE_VIDEO,
339        .name      = "cinepak",
340        .long_name = NULL_IF_CONFIG_SMALL("Cinepak"),
341        .props     = AV_CODEC_PROP_LOSSY,
342    },
343    {
344        .id        = AV_CODEC_ID_WS_VQA,
345        .type      = AVMEDIA_TYPE_VIDEO,
346        .name      = "ws_vqa",
347        .long_name = NULL_IF_CONFIG_SMALL("Westwood Studios VQA (Vector Quantized Animation) video"),
348        .props     = AV_CODEC_PROP_LOSSY,
349    },
350    {
351        .id        = AV_CODEC_ID_MSRLE,
352        .type      = AVMEDIA_TYPE_VIDEO,
353        .name      = "msrle",
354        .long_name = NULL_IF_CONFIG_SMALL("Microsoft RLE"),
355        .props     = AV_CODEC_PROP_LOSSLESS,
356    },
357    {
358        .id        = AV_CODEC_ID_MSVIDEO1,
359        .type      = AVMEDIA_TYPE_VIDEO,
360        .name      = "msvideo1",
361        .long_name = NULL_IF_CONFIG_SMALL("Microsoft Video 1"),
362        .props     = AV_CODEC_PROP_LOSSY,
363    },
364    {
365        .id        = AV_CODEC_ID_IDCIN,
366        .type      = AVMEDIA_TYPE_VIDEO,
367        .name      = "idcin",
368        .long_name = NULL_IF_CONFIG_SMALL("id Quake II CIN video"),
369        .props     = AV_CODEC_PROP_LOSSY,
370    },
371    {
372        .id        = AV_CODEC_ID_8BPS,
373        .type      = AVMEDIA_TYPE_VIDEO,
374        .name      = "8bps",
375        .long_name = NULL_IF_CONFIG_SMALL("QuickTime 8BPS video"),
376        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
377    },
378    {
379        .id        = AV_CODEC_ID_SMC,
380        .type      = AVMEDIA_TYPE_VIDEO,
381        .name      = "smc",
382        .long_name = NULL_IF_CONFIG_SMALL("QuickTime Graphics (SMC)"),
383        .props     = AV_CODEC_PROP_LOSSY,
384    },
385    {
386        .id        = AV_CODEC_ID_FLIC,
387        .type      = AVMEDIA_TYPE_VIDEO,
388        .name      = "flic",
389        .long_name = NULL_IF_CONFIG_SMALL("Autodesk Animator Flic video"),
390        .props     = AV_CODEC_PROP_LOSSLESS,
391    },
392    {
393        .id        = AV_CODEC_ID_TRUEMOTION1,
394        .type      = AVMEDIA_TYPE_VIDEO,
395        .name      = "truemotion1",
396        .long_name = NULL_IF_CONFIG_SMALL("Duck TrueMotion 1.0"),
397        .props     = AV_CODEC_PROP_LOSSY,
398    },
399    {
400        .id        = AV_CODEC_ID_VMDVIDEO,
401        .type      = AVMEDIA_TYPE_VIDEO,
402        .name      = "vmdvideo",
403        .long_name = NULL_IF_CONFIG_SMALL("Sierra VMD video"),
404        .props     = AV_CODEC_PROP_LOSSY,
405    },
406    {
407        .id        = AV_CODEC_ID_MSZH,
408        .type      = AVMEDIA_TYPE_VIDEO,
409        .name      = "mszh",
410        .long_name = NULL_IF_CONFIG_SMALL("LCL (LossLess Codec Library) MSZH"),
411        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
412    },
413    {
414        .id        = AV_CODEC_ID_ZLIB,
415        .type      = AVMEDIA_TYPE_VIDEO,
416        .name      = "zlib",
417        .long_name = NULL_IF_CONFIG_SMALL("LCL (LossLess Codec Library) ZLIB"),
418        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
419    },
420    {
421        .id        = AV_CODEC_ID_QTRLE,
422        .type      = AVMEDIA_TYPE_VIDEO,
423        .name      = "qtrle",
424        .long_name = NULL_IF_CONFIG_SMALL("QuickTime Animation (RLE) video"),
425        .props     = AV_CODEC_PROP_LOSSLESS,
426    },
427    {
428        .id        = AV_CODEC_ID_TSCC,
429        .type      = AVMEDIA_TYPE_VIDEO,
430        .name      = "tscc",
431        .long_name = NULL_IF_CONFIG_SMALL("TechSmith Screen Capture Codec"),
432        .props     = AV_CODEC_PROP_LOSSLESS,
433    },
434    {
435        .id        = AV_CODEC_ID_ULTI,
436        .type      = AVMEDIA_TYPE_VIDEO,
437        .name      = "ulti",
438        .long_name = NULL_IF_CONFIG_SMALL("IBM UltiMotion"),
439        .props     = AV_CODEC_PROP_LOSSY,
440    },
441    {
442        .id        = AV_CODEC_ID_QDRAW,
443        .type      = AVMEDIA_TYPE_VIDEO,
444        .name      = "qdraw",
445        .long_name = NULL_IF_CONFIG_SMALL("Apple QuickDraw"),
446        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
447    },
448    {
449        .id        = AV_CODEC_ID_VIXL,
450        .type      = AVMEDIA_TYPE_VIDEO,
451        .name      = "vixl",
452        .long_name = NULL_IF_CONFIG_SMALL("Miro VideoXL"),
453        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
454    },
455    {
456        .id        = AV_CODEC_ID_QPEG,
457        .type      = AVMEDIA_TYPE_VIDEO,
458        .name      = "qpeg",
459        .long_name = NULL_IF_CONFIG_SMALL("Q-team QPEG"),
460        .props     = AV_CODEC_PROP_LOSSY,
461    },
462    {
463        .id        = AV_CODEC_ID_PNG,
464        .type      = AVMEDIA_TYPE_VIDEO,
465        .name      = "png",
466        .long_name = NULL_IF_CONFIG_SMALL("PNG (Portable Network Graphics) image"),
467        .props     = AV_CODEC_PROP_LOSSLESS,
468        .mime_types= MT("image/png"),
469    },
470    {
471        .id        = AV_CODEC_ID_PPM,
472        .type      = AVMEDIA_TYPE_VIDEO,
473        .name      = "ppm",
474        .long_name = NULL_IF_CONFIG_SMALL("PPM (Portable PixelMap) image"),
475        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
476    },
477    {
478        .id        = AV_CODEC_ID_PBM,
479        .type      = AVMEDIA_TYPE_VIDEO,
480        .name      = "pbm",
481        .long_name = NULL_IF_CONFIG_SMALL("PBM (Portable BitMap) image"),
482        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
483    },
484    {
485        .id        = AV_CODEC_ID_PGM,
486        .type      = AVMEDIA_TYPE_VIDEO,
487        .name      = "pgm",
488        .long_name = NULL_IF_CONFIG_SMALL("PGM (Portable GrayMap) image"),
489        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
490    },
491    {
492        .id        = AV_CODEC_ID_PGMYUV,
493        .type      = AVMEDIA_TYPE_VIDEO,
494        .name      = "pgmyuv",
495        .long_name = NULL_IF_CONFIG_SMALL("PGMYUV (Portable GrayMap YUV) image"),
496        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
497    },
498    {
499        .id        = AV_CODEC_ID_PAM,
500        .type      = AVMEDIA_TYPE_VIDEO,
501        .name      = "pam",
502        .long_name = NULL_IF_CONFIG_SMALL("PAM (Portable AnyMap) image"),
503        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
504        .mime_types= MT("image/x-portable-pixmap"),
505    },
506    {
507        .id        = AV_CODEC_ID_FFVHUFF,
508        .type      = AVMEDIA_TYPE_VIDEO,
509        .name      = "ffvhuff",
510        .long_name = NULL_IF_CONFIG_SMALL("Huffyuv FFmpeg variant"),
511        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
512    },
513    {
514        .id        = AV_CODEC_ID_RV30,
515        .type      = AVMEDIA_TYPE_VIDEO,
516        .name      = "rv30",
517        .long_name = NULL_IF_CONFIG_SMALL("RealVideo 3.0"),
518        .props     = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER,
519    },
520    {
521        .id        = AV_CODEC_ID_RV40,
522        .type      = AVMEDIA_TYPE_VIDEO,
523        .name      = "rv40",
524        .long_name = NULL_IF_CONFIG_SMALL("RealVideo 4.0"),
525        .props     = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER,
526    },
527    {
528        .id        = AV_CODEC_ID_VC1,
529        .type      = AVMEDIA_TYPE_VIDEO,
530        .name      = "vc1",
531        .long_name = NULL_IF_CONFIG_SMALL("SMPTE VC-1"),
532        .props     = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER,
533        .profiles  = NULL_IF_CONFIG_SMALL(ff_vc1_profiles),
534    },
535    {
536        .id        = AV_CODEC_ID_WMV3,
537        .type      = AVMEDIA_TYPE_VIDEO,
538        .name      = "wmv3",
539        .long_name = NULL_IF_CONFIG_SMALL("Windows Media Video 9"),
540        .props     = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER,
541        .profiles  = NULL_IF_CONFIG_SMALL(ff_vc1_profiles),
542    },
543    {
544        .id        = AV_CODEC_ID_LOCO,
545        .type      = AVMEDIA_TYPE_VIDEO,
546        .name      = "loco",
547        .long_name = NULL_IF_CONFIG_SMALL("LOCO"),
548        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
549    },
550    {
551        .id        = AV_CODEC_ID_WNV1,
552        .type      = AVMEDIA_TYPE_VIDEO,
553        .name      = "wnv1",
554        .long_name = NULL_IF_CONFIG_SMALL("Winnov WNV1"),
555        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
556    },
557    {
558        .id        = AV_CODEC_ID_AASC,
559        .type      = AVMEDIA_TYPE_VIDEO,
560        .name      = "aasc",
561        .long_name = NULL_IF_CONFIG_SMALL("Autodesk RLE"),
562        .props     = AV_CODEC_PROP_LOSSLESS,
563    },
564    {
565        .id        = AV_CODEC_ID_INDEO2,
566        .type      = AVMEDIA_TYPE_VIDEO,
567        .name      = "indeo2",
568        .long_name = NULL_IF_CONFIG_SMALL("Intel Indeo 2"),
569        .props     = AV_CODEC_PROP_LOSSY,
570    },
571    {
572        .id        = AV_CODEC_ID_FRAPS,
573        .type      = AVMEDIA_TYPE_VIDEO,
574        .name      = "fraps",
575        .long_name = NULL_IF_CONFIG_SMALL("Fraps"),
576        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
577    },
578    {
579        .id        = AV_CODEC_ID_TRUEMOTION2,
580        .type      = AVMEDIA_TYPE_VIDEO,
581        .name      = "truemotion2",
582        .long_name = NULL_IF_CONFIG_SMALL("Duck TrueMotion 2.0"),
583        .props     = AV_CODEC_PROP_LOSSY,
584    },
585    {
586        .id        = AV_CODEC_ID_BMP,
587        .type      = AVMEDIA_TYPE_VIDEO,
588        .name      = "bmp",
589        .long_name = NULL_IF_CONFIG_SMALL("BMP (Windows and OS/2 bitmap)"),
590        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
591        .mime_types= MT("image/x-ms-bmp"),
592    },
593    {
594        .id        = AV_CODEC_ID_CSCD,
595        .type      = AVMEDIA_TYPE_VIDEO,
596        .name      = "cscd",
597        .long_name = NULL_IF_CONFIG_SMALL("CamStudio"),
598        .props     = AV_CODEC_PROP_LOSSLESS,
599    },
600    {
601        .id        = AV_CODEC_ID_MMVIDEO,
602        .type      = AVMEDIA_TYPE_VIDEO,
603        .name      = "mmvideo",
604        .long_name = NULL_IF_CONFIG_SMALL("American Laser Games MM Video"),
605        .props     = AV_CODEC_PROP_LOSSY,
606    },
607    {
608        .id        = AV_CODEC_ID_ZMBV,
609        .type      = AVMEDIA_TYPE_VIDEO,
610        .name      = "zmbv",
611        .long_name = NULL_IF_CONFIG_SMALL("Zip Motion Blocks Video"),
612        .props     = AV_CODEC_PROP_LOSSLESS,
613    },
614    {
615        .id        = AV_CODEC_ID_AVS,
616        .type      = AVMEDIA_TYPE_VIDEO,
617        .name      = "avs",
618        .long_name = NULL_IF_CONFIG_SMALL("AVS (Audio Video Standard) video"),
619        .props     = AV_CODEC_PROP_LOSSY,
620    },
621    {
622        .id        = AV_CODEC_ID_SMACKVIDEO,
623        .type      = AVMEDIA_TYPE_VIDEO,
624        .name      = "smackvideo",
625        .long_name = NULL_IF_CONFIG_SMALL("Smacker video"),
626        .props     = AV_CODEC_PROP_LOSSY,
627    },
628    {
629        .id        = AV_CODEC_ID_NUV,
630        .type      = AVMEDIA_TYPE_VIDEO,
631        .name      = "nuv",
632        .long_name = NULL_IF_CONFIG_SMALL("NuppelVideo/RTJPEG"),
633        .props     = AV_CODEC_PROP_LOSSY,
634    },
635    {
636        .id        = AV_CODEC_ID_KMVC,
637        .type      = AVMEDIA_TYPE_VIDEO,
638        .name      = "kmvc",
639        .long_name = NULL_IF_CONFIG_SMALL("Karl Morton's video codec"),
640        .props     = AV_CODEC_PROP_LOSSY,
641    },
642    {
643        .id        = AV_CODEC_ID_FLASHSV,
644        .type      = AVMEDIA_TYPE_VIDEO,
645        .name      = "flashsv",
646        .long_name = NULL_IF_CONFIG_SMALL("Flash Screen Video v1"),
647        .props     = AV_CODEC_PROP_LOSSLESS,
648    },
649    {
650        .id        = AV_CODEC_ID_CAVS,
651        .type      = AVMEDIA_TYPE_VIDEO,
652        .name      = "cavs",
653        .long_name = NULL_IF_CONFIG_SMALL("Chinese AVS (Audio Video Standard) (AVS1-P2, JiZhun profile)"),
654        .props     = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER,
655    },
656    {
657        .id        = AV_CODEC_ID_JPEG2000,
658        .type      = AVMEDIA_TYPE_VIDEO,
659        .name      = "jpeg2000",
660        .long_name = NULL_IF_CONFIG_SMALL("JPEG 2000"),
661        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY |
662                     AV_CODEC_PROP_LOSSLESS,
663        .mime_types= MT("image/jp2"),
664        .profiles  = NULL_IF_CONFIG_SMALL(ff_jpeg2000_profiles),
665    },
666    {
667        .id        = AV_CODEC_ID_VMNC,
668        .type      = AVMEDIA_TYPE_VIDEO,
669        .name      = "vmnc",
670        .long_name = NULL_IF_CONFIG_SMALL("VMware Screen Codec / VMware Video"),
671        .props     = AV_CODEC_PROP_LOSSLESS,
672    },
673    {
674        .id        = AV_CODEC_ID_VP5,
675        .type      = AVMEDIA_TYPE_VIDEO,
676        .name      = "vp5",
677        .long_name = NULL_IF_CONFIG_SMALL("On2 VP5"),
678        .props     = AV_CODEC_PROP_LOSSY,
679    },
680    {
681        .id        = AV_CODEC_ID_VP6,
682        .type      = AVMEDIA_TYPE_VIDEO,
683        .name      = "vp6",
684        .long_name = NULL_IF_CONFIG_SMALL("On2 VP6"),
685        .props     = AV_CODEC_PROP_LOSSY,
686    },
687    {
688        .id        = AV_CODEC_ID_VP6F,
689        .type      = AVMEDIA_TYPE_VIDEO,
690        .name      = "vp6f",
691        .long_name = NULL_IF_CONFIG_SMALL("On2 VP6 (Flash version)"),
692        .props     = AV_CODEC_PROP_LOSSY,
693    },
694    {
695        .id        = AV_CODEC_ID_TARGA,
696        .type      = AVMEDIA_TYPE_VIDEO,
697        .name      = "targa",
698        .long_name = NULL_IF_CONFIG_SMALL("Truevision Targa image"),
699        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
700        .mime_types= MT("image/x-targa", "image/x-tga"),
701    },
702    {
703        .id        = AV_CODEC_ID_DSICINVIDEO,
704        .type      = AVMEDIA_TYPE_VIDEO,
705        .name      = "dsicinvideo",
706        .long_name = NULL_IF_CONFIG_SMALL("Delphine Software International CIN video"),
707        .props     = AV_CODEC_PROP_LOSSY,
708    },
709    {
710        .id        = AV_CODEC_ID_TIERTEXSEQVIDEO,
711        .type      = AVMEDIA_TYPE_VIDEO,
712        .name      = "tiertexseqvideo",
713        .long_name = NULL_IF_CONFIG_SMALL("Tiertex Limited SEQ video"),
714        .props     = AV_CODEC_PROP_LOSSY,
715    },
716    {
717        .id        = AV_CODEC_ID_TIFF,
718        .type      = AVMEDIA_TYPE_VIDEO,
719        .name      = "tiff",
720        .long_name = NULL_IF_CONFIG_SMALL("TIFF image"),
721        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
722        .mime_types= MT("image/tiff"),
723    },
724    {
725        .id        = AV_CODEC_ID_GIF,
726        .type      = AVMEDIA_TYPE_VIDEO,
727        .name      = "gif",
728        .long_name = NULL_IF_CONFIG_SMALL("CompuServe GIF (Graphics Interchange Format)"),
729        .props     = AV_CODEC_PROP_LOSSLESS,
730        .mime_types= MT("image/gif"),
731    },
732    {
733        .id        = AV_CODEC_ID_DXA,
734        .type      = AVMEDIA_TYPE_VIDEO,
735        .name      = "dxa",
736        .long_name = NULL_IF_CONFIG_SMALL("Feeble Files/ScummVM DXA"),
737        .props     = AV_CODEC_PROP_LOSSLESS,
738    },
739    {
740        .id        = AV_CODEC_ID_DNXHD,
741        .type      = AVMEDIA_TYPE_VIDEO,
742        .name      = "dnxhd",
743        .long_name = NULL_IF_CONFIG_SMALL("VC3/DNxHD"),
744        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
745        .profiles  = NULL_IF_CONFIG_SMALL(ff_dnxhd_profiles),
746    },
747    {
748        .id        = AV_CODEC_ID_THP,
749        .type      = AVMEDIA_TYPE_VIDEO,
750        .name      = "thp",
751        .long_name = NULL_IF_CONFIG_SMALL("Nintendo Gamecube THP video"),
752        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
753    },
754    {
755        .id        = AV_CODEC_ID_SGI,
756        .type      = AVMEDIA_TYPE_VIDEO,
757        .name      = "sgi",
758        .long_name = NULL_IF_CONFIG_SMALL("SGI image"),
759        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
760    },
761    {
762        .id        = AV_CODEC_ID_C93,
763        .type      = AVMEDIA_TYPE_VIDEO,
764        .name      = "c93",
765        .long_name = NULL_IF_CONFIG_SMALL("Interplay C93"),
766        .props     = AV_CODEC_PROP_LOSSY,
767    },
768    {
769        .id        = AV_CODEC_ID_BETHSOFTVID,
770        .type      = AVMEDIA_TYPE_VIDEO,
771        .name      = "bethsoftvid",
772        .long_name = NULL_IF_CONFIG_SMALL("Bethesda VID video"),
773        .props     = AV_CODEC_PROP_LOSSY,
774    },
775    {
776        .id        = AV_CODEC_ID_PTX,
777        .type      = AVMEDIA_TYPE_VIDEO,
778        .name      = "ptx",
779        .long_name = NULL_IF_CONFIG_SMALL("V.Flash PTX image"),
780        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
781    },
782    {
783        .id        = AV_CODEC_ID_TXD,
784        .type      = AVMEDIA_TYPE_VIDEO,
785        .name      = "txd",
786        .long_name = NULL_IF_CONFIG_SMALL("Renderware TXD (TeXture Dictionary) image"),
787        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
788    },
789    {
790        .id        = AV_CODEC_ID_VP6A,
791        .type      = AVMEDIA_TYPE_VIDEO,
792        .name      = "vp6a",
793        .long_name = NULL_IF_CONFIG_SMALL("On2 VP6 (Flash version, with alpha channel)"),
794        .props     = AV_CODEC_PROP_LOSSY,
795    },
796    {
797        .id        = AV_CODEC_ID_AMV,
798        .type      = AVMEDIA_TYPE_VIDEO,
799        .name      = "amv",
800        .long_name = NULL_IF_CONFIG_SMALL("AMV Video"),
801        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
802    },
803    {
804        .id        = AV_CODEC_ID_VB,
805        .type      = AVMEDIA_TYPE_VIDEO,
806        .name      = "vb",
807        .long_name = NULL_IF_CONFIG_SMALL("Beam Software VB"),
808        .props     = AV_CODEC_PROP_LOSSY,
809    },
810    {
811        .id        = AV_CODEC_ID_PCX,
812        .type      = AVMEDIA_TYPE_VIDEO,
813        .name      = "pcx",
814        .long_name = NULL_IF_CONFIG_SMALL("PC Paintbrush PCX image"),
815        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
816        .mime_types= MT("image/x-pcx"),
817    },
818    {
819        .id        = AV_CODEC_ID_SUNRAST,
820        .type      = AVMEDIA_TYPE_VIDEO,
821        .name      = "sunrast",
822        .long_name = NULL_IF_CONFIG_SMALL("Sun Rasterfile image"),
823        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
824    },
825    {
826        .id        = AV_CODEC_ID_INDEO4,
827        .type      = AVMEDIA_TYPE_VIDEO,
828        .name      = "indeo4",
829        .long_name = NULL_IF_CONFIG_SMALL("Intel Indeo Video Interactive 4"),
830        .props     = AV_CODEC_PROP_LOSSY,
831    },
832    {
833        .id        = AV_CODEC_ID_INDEO5,
834        .type      = AVMEDIA_TYPE_VIDEO,
835        .name      = "indeo5",
836        .long_name = NULL_IF_CONFIG_SMALL("Intel Indeo Video Interactive 5"),
837        .props     = AV_CODEC_PROP_LOSSY,
838    },
839    {
840        .id        = AV_CODEC_ID_MIMIC,
841        .type      = AVMEDIA_TYPE_VIDEO,
842        .name      = "mimic",
843        .long_name = NULL_IF_CONFIG_SMALL("Mimic"),
844        .props     = AV_CODEC_PROP_LOSSY,
845    },
846    {
847        .id        = AV_CODEC_ID_RL2,
848        .type      = AVMEDIA_TYPE_VIDEO,
849        .name      = "rl2",
850        .long_name = NULL_IF_CONFIG_SMALL("RL2 video"),
851        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
852    },
853    {
854        .id        = AV_CODEC_ID_ESCAPE124,
855        .type      = AVMEDIA_TYPE_VIDEO,
856        .name      = "escape124",
857        .long_name = NULL_IF_CONFIG_SMALL("Escape 124"),
858        .props     = AV_CODEC_PROP_LOSSY,
859    },
860    {
861        .id        = AV_CODEC_ID_DIRAC,
862        .type      = AVMEDIA_TYPE_VIDEO,
863        .name      = "dirac",
864        .long_name = NULL_IF_CONFIG_SMALL("Dirac"),
865        .props     = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_LOSSLESS | AV_CODEC_PROP_REORDER,
866    },
867    {
868        .id        = AV_CODEC_ID_BFI,
869        .type      = AVMEDIA_TYPE_VIDEO,
870        .name      = "bfi",
871        .long_name = NULL_IF_CONFIG_SMALL("Brute Force & Ignorance"),
872        .props     = AV_CODEC_PROP_LOSSY,
873    },
874    {
875        .id        = AV_CODEC_ID_CMV,
876        .type      = AVMEDIA_TYPE_VIDEO,
877        .name      = "cmv",
878        .long_name = NULL_IF_CONFIG_SMALL("Electronic Arts CMV video"),
879        .props     = AV_CODEC_PROP_LOSSY,
880    },
881    {
882        .id        = AV_CODEC_ID_MOTIONPIXELS,
883        .type      = AVMEDIA_TYPE_VIDEO,
884        .name      = "motionpixels",
885        .long_name = NULL_IF_CONFIG_SMALL("Motion Pixels video"),
886        .props     = AV_CODEC_PROP_LOSSY,
887    },
888    {
889        .id        = AV_CODEC_ID_TGV,
890        .type      = AVMEDIA_TYPE_VIDEO,
891        .name      = "tgv",
892        .long_name = NULL_IF_CONFIG_SMALL("Electronic Arts TGV video"),
893        .props     = AV_CODEC_PROP_LOSSY,
894    },
895    {
896        .id        = AV_CODEC_ID_TGQ,
897        .type      = AVMEDIA_TYPE_VIDEO,
898        .name      = "tgq",
899        .long_name = NULL_IF_CONFIG_SMALL("Electronic Arts TGQ video"),
900        .props     = AV_CODEC_PROP_LOSSY,
901    },
902    {
903        .id        = AV_CODEC_ID_TQI,
904        .type      = AVMEDIA_TYPE_VIDEO,
905        .name      = "tqi",
906        .long_name = NULL_IF_CONFIG_SMALL("Electronic Arts TQI video"),
907        .props     = AV_CODEC_PROP_LOSSY,
908    },
909    {
910        .id        = AV_CODEC_ID_AURA,
911        .type      = AVMEDIA_TYPE_VIDEO,
912        .name      = "aura",
913        .long_name = NULL_IF_CONFIG_SMALL("Auravision AURA"),
914        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
915    },
916    {
917        .id        = AV_CODEC_ID_AURA2,
918        .type      = AVMEDIA_TYPE_VIDEO,
919        .name      = "aura2",
920        .long_name = NULL_IF_CONFIG_SMALL("Auravision Aura 2"),
921        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
922    },
923    {
924        .id        = AV_CODEC_ID_V210X,
925        .type      = AVMEDIA_TYPE_VIDEO,
926        .name      = "v210x",
927        .long_name = NULL_IF_CONFIG_SMALL("Uncompressed 4:2:2 10-bit"),
928        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
929    },
930    {
931        .id        = AV_CODEC_ID_TMV,
932        .type      = AVMEDIA_TYPE_VIDEO,
933        .name      = "tmv",
934        .long_name = NULL_IF_CONFIG_SMALL("8088flex TMV"),
935        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
936    },
937    {
938        .id        = AV_CODEC_ID_V210,
939        .type      = AVMEDIA_TYPE_VIDEO,
940        .name      = "v210",
941        .long_name = NULL_IF_CONFIG_SMALL("Uncompressed 4:2:2 10-bit"),
942        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
943    },
944    {
945        .id        = AV_CODEC_ID_DPX,
946        .type      = AVMEDIA_TYPE_VIDEO,
947        .name      = "dpx",
948        .long_name = NULL_IF_CONFIG_SMALL("DPX (Digital Picture Exchange) image"),
949        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
950    },
951    {
952        .id        = AV_CODEC_ID_MAD,
953        .type      = AVMEDIA_TYPE_VIDEO,
954        .name      = "mad",
955        .long_name = NULL_IF_CONFIG_SMALL("Electronic Arts Madcow Video"),
956        .props     = AV_CODEC_PROP_LOSSY,
957    },
958    {
959        .id        = AV_CODEC_ID_FRWU,
960        .type      = AVMEDIA_TYPE_VIDEO,
961        .name      = "frwu",
962        .long_name = NULL_IF_CONFIG_SMALL("Forward Uncompressed"),
963        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
964    },
965    {
966        .id        = AV_CODEC_ID_FLASHSV2,
967        .type      = AVMEDIA_TYPE_VIDEO,
968        .name      = "flashsv2",
969        .long_name = NULL_IF_CONFIG_SMALL("Flash Screen Video v2"),
970        .props     = AV_CODEC_PROP_LOSSY,
971    },
972    {
973        .id        = AV_CODEC_ID_CDGRAPHICS,
974        .type      = AVMEDIA_TYPE_VIDEO,
975        .name      = "cdgraphics",
976        .long_name = NULL_IF_CONFIG_SMALL("CD Graphics video"),
977        .props     = AV_CODEC_PROP_LOSSY,
978    },
979    {
980        .id        = AV_CODEC_ID_R210,
981        .type      = AVMEDIA_TYPE_VIDEO,
982        .name      = "r210",
983        .long_name = NULL_IF_CONFIG_SMALL("Uncompressed RGB 10-bit"),
984        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
985    },
986    {
987        .id        = AV_CODEC_ID_ANM,
988        .type      = AVMEDIA_TYPE_VIDEO,
989        .name      = "anm",
990        .long_name = NULL_IF_CONFIG_SMALL("Deluxe Paint Animation"),
991        .props     = AV_CODEC_PROP_LOSSY,
992    },
993    {
994        .id        = AV_CODEC_ID_BINKVIDEO,
995        .type      = AVMEDIA_TYPE_VIDEO,
996        .name      = "binkvideo",
997        .long_name = NULL_IF_CONFIG_SMALL("Bink video"),
998        .props     = AV_CODEC_PROP_LOSSY,
999    },
1000    {
1001        .id        = AV_CODEC_ID_IFF_ILBM,
1002        .type      = AVMEDIA_TYPE_VIDEO,
1003        .name      = "iff_ilbm",
1004        .long_name = NULL_IF_CONFIG_SMALL("IFF ACBM/ANIM/DEEP/ILBM/PBM/RGB8/RGBN"),
1005        .props     = AV_CODEC_PROP_LOSSY,
1006    },
1007    {
1008        .id        = AV_CODEC_ID_KGV1,
1009        .type      = AVMEDIA_TYPE_VIDEO,
1010        .name      = "kgv1",
1011        .long_name = NULL_IF_CONFIG_SMALL("Kega Game Video"),
1012        .props     = AV_CODEC_PROP_LOSSY,
1013    },
1014    {
1015        .id        = AV_CODEC_ID_YOP,
1016        .type      = AVMEDIA_TYPE_VIDEO,
1017        .name      = "yop",
1018        .long_name = NULL_IF_CONFIG_SMALL("Psygnosis YOP Video"),
1019        .props     = AV_CODEC_PROP_LOSSY,
1020    },
1021    {
1022        .id        = AV_CODEC_ID_VP8,
1023        .type      = AVMEDIA_TYPE_VIDEO,
1024        .name      = "vp8",
1025        .long_name = NULL_IF_CONFIG_SMALL("On2 VP8"),
1026        .props     = AV_CODEC_PROP_LOSSY,
1027    },
1028    {
1029        .id        = AV_CODEC_ID_PICTOR,
1030        .type      = AVMEDIA_TYPE_VIDEO,
1031        .name      = "pictor",
1032        .long_name = NULL_IF_CONFIG_SMALL("Pictor/PC Paint"),
1033        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1034    },
1035    {
1036        .id        = AV_CODEC_ID_ANSI,
1037        .type      = AVMEDIA_TYPE_VIDEO,
1038        .name      = "ansi",
1039        .long_name = NULL_IF_CONFIG_SMALL("ASCII/ANSI art"),
1040        .props     = AV_CODEC_PROP_LOSSY,
1041    },
1042    {
1043        .id        = AV_CODEC_ID_A64_MULTI,
1044        .type      = AVMEDIA_TYPE_VIDEO,
1045        .name      = "a64_multi",
1046        .long_name = NULL_IF_CONFIG_SMALL("Multicolor charset for Commodore 64"),
1047        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1048    },
1049    {
1050        .id        = AV_CODEC_ID_A64_MULTI5,
1051        .type      = AVMEDIA_TYPE_VIDEO,
1052        .name      = "a64_multi5",
1053        .long_name = NULL_IF_CONFIG_SMALL("Multicolor charset for Commodore 64, extended with 5th color (colram)"),
1054        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1055    },
1056    {
1057        .id        = AV_CODEC_ID_R10K,
1058        .type      = AVMEDIA_TYPE_VIDEO,
1059        .name      = "r10k",
1060        .long_name = NULL_IF_CONFIG_SMALL("AJA Kona 10-bit RGB Codec"),
1061        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1062    },
1063    {
1064        .id        = AV_CODEC_ID_MXPEG,
1065        .type      = AVMEDIA_TYPE_VIDEO,
1066        .name      = "mxpeg",
1067        .long_name = NULL_IF_CONFIG_SMALL("Mobotix MxPEG video"),
1068        .props     = AV_CODEC_PROP_LOSSY,
1069    },
1070    {
1071        .id        = AV_CODEC_ID_LAGARITH,
1072        .type      = AVMEDIA_TYPE_VIDEO,
1073        .name      = "lagarith",
1074        .long_name = NULL_IF_CONFIG_SMALL("Lagarith lossless"),
1075        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1076    },
1077    {
1078        .id        = AV_CODEC_ID_PRORES,
1079        .type      = AVMEDIA_TYPE_VIDEO,
1080        .name      = "prores",
1081        .long_name = NULL_IF_CONFIG_SMALL("Apple ProRes (iCodec Pro)"),
1082        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1083        .profiles  = NULL_IF_CONFIG_SMALL(ff_prores_profiles),
1084    },
1085    {
1086        .id        = AV_CODEC_ID_JV,
1087        .type      = AVMEDIA_TYPE_VIDEO,
1088        .name      = "jv",
1089        .long_name = NULL_IF_CONFIG_SMALL("Bitmap Brothers JV video"),
1090        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1091    },
1092    {
1093        .id        = AV_CODEC_ID_DFA,
1094        .type      = AVMEDIA_TYPE_VIDEO,
1095        .name      = "dfa",
1096        .long_name = NULL_IF_CONFIG_SMALL("Chronomaster DFA"),
1097        .props     = AV_CODEC_PROP_LOSSY,
1098    },
1099    {
1100        .id        = AV_CODEC_ID_WMV3IMAGE,
1101        .type      = AVMEDIA_TYPE_VIDEO,
1102        .name      = "wmv3image",
1103        .long_name = NULL_IF_CONFIG_SMALL("Windows Media Video 9 Image"),
1104        .props     = AV_CODEC_PROP_LOSSY,
1105    },
1106    {
1107        .id        = AV_CODEC_ID_VC1IMAGE,
1108        .type      = AVMEDIA_TYPE_VIDEO,
1109        .name      = "vc1image",
1110        .long_name = NULL_IF_CONFIG_SMALL("Windows Media Video 9 Image v2"),
1111        .props     = AV_CODEC_PROP_LOSSY,
1112    },
1113    {
1114        .id        = AV_CODEC_ID_UTVIDEO,
1115        .type      = AVMEDIA_TYPE_VIDEO,
1116        .name      = "utvideo",
1117        .long_name = NULL_IF_CONFIG_SMALL("Ut Video"),
1118        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1119    },
1120    {
1121        .id        = AV_CODEC_ID_BMV_VIDEO,
1122        .type      = AVMEDIA_TYPE_VIDEO,
1123        .name      = "bmv_video",
1124        .long_name = NULL_IF_CONFIG_SMALL("Discworld II BMV video"),
1125        .props     = AV_CODEC_PROP_LOSSLESS,
1126    },
1127    {
1128        .id        = AV_CODEC_ID_VBLE,
1129        .type      = AVMEDIA_TYPE_VIDEO,
1130        .name      = "vble",
1131        .long_name = NULL_IF_CONFIG_SMALL("VBLE Lossless Codec"),
1132        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1133    },
1134    {
1135        .id        = AV_CODEC_ID_DXTORY,
1136        .type      = AVMEDIA_TYPE_VIDEO,
1137        .name      = "dxtory",
1138        .long_name = NULL_IF_CONFIG_SMALL("Dxtory"),
1139        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1140    },
1141    {
1142        .id        = AV_CODEC_ID_V410,
1143        .type      = AVMEDIA_TYPE_VIDEO,
1144        .name      = "v410",
1145        .long_name = NULL_IF_CONFIG_SMALL("Uncompressed 4:4:4 10-bit"),
1146        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1147    },
1148    {
1149        .id        = AV_CODEC_ID_XWD,
1150        .type      = AVMEDIA_TYPE_VIDEO,
1151        .name      = "xwd",
1152        .long_name = NULL_IF_CONFIG_SMALL("XWD (X Window Dump) image"),
1153        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1154        .mime_types= MT("image/x-xwindowdump"),
1155    },
1156    {
1157        .id        = AV_CODEC_ID_CDXL,
1158        .type      = AVMEDIA_TYPE_VIDEO,
1159        .name      = "cdxl",
1160        .long_name = NULL_IF_CONFIG_SMALL("Commodore CDXL video"),
1161        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1162    },
1163    {
1164        .id        = AV_CODEC_ID_XBM,
1165        .type      = AVMEDIA_TYPE_VIDEO,
1166        .name      = "xbm",
1167        .long_name = NULL_IF_CONFIG_SMALL("XBM (X BitMap) image"),
1168        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1169        .mime_types= MT("image/x-xbitmap"),
1170    },
1171    {
1172        .id        = AV_CODEC_ID_ZEROCODEC,
1173        .type      = AVMEDIA_TYPE_VIDEO,
1174        .name      = "zerocodec",
1175        .long_name = NULL_IF_CONFIG_SMALL("ZeroCodec Lossless Video"),
1176        .props     = AV_CODEC_PROP_LOSSLESS,
1177    },
1178    {
1179        .id        = AV_CODEC_ID_MSS1,
1180        .type      = AVMEDIA_TYPE_VIDEO,
1181        .name      = "mss1",
1182        .long_name = NULL_IF_CONFIG_SMALL("MS Screen 1"),
1183        .props     = AV_CODEC_PROP_LOSSY,
1184    },
1185    {
1186        .id        = AV_CODEC_ID_MSA1,
1187        .type      = AVMEDIA_TYPE_VIDEO,
1188        .name      = "msa1",
1189        .long_name = NULL_IF_CONFIG_SMALL("MS ATC Screen"),
1190        .props     = AV_CODEC_PROP_LOSSY,
1191    },
1192    {
1193        .id        = AV_CODEC_ID_TSCC2,
1194        .type      = AVMEDIA_TYPE_VIDEO,
1195        .name      = "tscc2",
1196        .long_name = NULL_IF_CONFIG_SMALL("TechSmith Screen Codec 2"),
1197        .props     = AV_CODEC_PROP_LOSSY,
1198    },
1199    {
1200        .id        = AV_CODEC_ID_MTS2,
1201        .type      = AVMEDIA_TYPE_VIDEO,
1202        .name      = "mts2",
1203        .long_name = NULL_IF_CONFIG_SMALL("MS Expression Encoder Screen"),
1204        .props     = AV_CODEC_PROP_LOSSY,
1205    },
1206    {
1207        .id        = AV_CODEC_ID_CLLC,
1208        .type      = AVMEDIA_TYPE_VIDEO,
1209        .name      = "cllc",
1210        .long_name = NULL_IF_CONFIG_SMALL("Canopus Lossless Codec"),
1211        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1212    },
1213    {
1214        .id        = AV_CODEC_ID_MSS2,
1215        .type      = AVMEDIA_TYPE_VIDEO,
1216        .name      = "mss2",
1217        .long_name = NULL_IF_CONFIG_SMALL("MS Windows Media Video V9 Screen"),
1218        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1219    },
1220    {
1221        .id        = AV_CODEC_ID_VP9,
1222        .type      = AVMEDIA_TYPE_VIDEO,
1223        .name      = "vp9",
1224        .long_name = NULL_IF_CONFIG_SMALL("Google VP9"),
1225        .props     = AV_CODEC_PROP_LOSSY,
1226        .profiles  = NULL_IF_CONFIG_SMALL(ff_vp9_profiles),
1227    },
1228    {
1229        .id        = AV_CODEC_ID_AIC,
1230        .type      = AVMEDIA_TYPE_VIDEO,
1231        .name      = "aic",
1232        .long_name = NULL_IF_CONFIG_SMALL("Apple Intermediate Codec"),
1233        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1234    },
1235    {
1236        .id        = AV_CODEC_ID_ESCAPE130,
1237        .type      = AVMEDIA_TYPE_VIDEO,
1238        .name      = "escape130",
1239        .long_name = NULL_IF_CONFIG_SMALL("Escape 130"),
1240        .props     = AV_CODEC_PROP_LOSSY,
1241    },
1242    {
1243        .id        = AV_CODEC_ID_G2M,
1244        .type      = AVMEDIA_TYPE_VIDEO,
1245        .name      = "g2m",
1246        .long_name = NULL_IF_CONFIG_SMALL("Go2Meeting"),
1247        .props     = AV_CODEC_PROP_LOSSY,
1248    },
1249    {
1250        .id        = AV_CODEC_ID_WEBP,
1251        .type      = AVMEDIA_TYPE_VIDEO,
1252        .name      = "webp",
1253        .long_name = NULL_IF_CONFIG_SMALL("WebP"),
1254        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY |
1255                     AV_CODEC_PROP_LOSSLESS,
1256        .mime_types= MT("image/webp"),
1257    },
1258    {
1259        .id        = AV_CODEC_ID_HNM4_VIDEO,
1260        .type      = AVMEDIA_TYPE_VIDEO,
1261        .name      = "hnm4video",
1262        .long_name = NULL_IF_CONFIG_SMALL("HNM 4 video"),
1263        .props     = AV_CODEC_PROP_LOSSY,
1264    },
1265    {
1266        .id        = AV_CODEC_ID_HEVC,
1267        .type      = AVMEDIA_TYPE_VIDEO,
1268        .name      = "hevc",
1269        .long_name = NULL_IF_CONFIG_SMALL("H.265 / HEVC (High Efficiency Video Coding)"),
1270        .props     = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER,
1271        .profiles  = NULL_IF_CONFIG_SMALL(ff_hevc_profiles),
1272    },
1273    {
1274        .id        = AV_CODEC_ID_FIC,
1275        .type      = AVMEDIA_TYPE_VIDEO,
1276        .name      = "fic",
1277        .long_name = NULL_IF_CONFIG_SMALL("Mirillis FIC"),
1278        .props     = AV_CODEC_PROP_LOSSY,
1279    },
1280    {
1281        .id        = AV_CODEC_ID_ALIAS_PIX,
1282        .type      = AVMEDIA_TYPE_VIDEO,
1283        .name      = "alias_pix",
1284        .long_name = NULL_IF_CONFIG_SMALL("Alias/Wavefront PIX image"),
1285        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1286    },
1287    {
1288        .id        = AV_CODEC_ID_BRENDER_PIX,
1289        .type      = AVMEDIA_TYPE_VIDEO,
1290        .name      = "brender_pix",
1291        .long_name = NULL_IF_CONFIG_SMALL("BRender PIX image"),
1292        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1293    },
1294    {
1295        .id        = AV_CODEC_ID_PAF_VIDEO,
1296        .type      = AVMEDIA_TYPE_VIDEO,
1297        .name      = "paf_video",
1298        .long_name = NULL_IF_CONFIG_SMALL("Amazing Studio Packed Animation File Video"),
1299        .props     = AV_CODEC_PROP_LOSSY,
1300    },
1301    {
1302        .id        = AV_CODEC_ID_EXR,
1303        .type      = AVMEDIA_TYPE_VIDEO,
1304        .name      = "exr",
1305        .long_name = NULL_IF_CONFIG_SMALL("OpenEXR image"),
1306        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY |
1307                     AV_CODEC_PROP_LOSSLESS,
1308    },
1309    {
1310        .id        = AV_CODEC_ID_VP7,
1311        .type      = AVMEDIA_TYPE_VIDEO,
1312        .name      = "vp7",
1313        .long_name = NULL_IF_CONFIG_SMALL("On2 VP7"),
1314        .props     = AV_CODEC_PROP_LOSSY,
1315    },
1316    {
1317        .id        = AV_CODEC_ID_SANM,
1318        .type      = AVMEDIA_TYPE_VIDEO,
1319        .name      = "sanm",
1320        .long_name = NULL_IF_CONFIG_SMALL("LucasArts SANM/SMUSH video"),
1321        .props     = AV_CODEC_PROP_LOSSY,
1322    },
1323    {
1324        .id        = AV_CODEC_ID_SGIRLE,
1325        .type      = AVMEDIA_TYPE_VIDEO,
1326        .name      = "sgirle",
1327        .long_name = NULL_IF_CONFIG_SMALL("SGI RLE 8-bit"),
1328        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1329    },
1330    {
1331        .id        = AV_CODEC_ID_MVC1,
1332        .type      = AVMEDIA_TYPE_VIDEO,
1333        .name      = "mvc1",
1334        .long_name = NULL_IF_CONFIG_SMALL("Silicon Graphics Motion Video Compressor 1"),
1335        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1336    },
1337    {
1338        .id        = AV_CODEC_ID_MVC2,
1339        .type      = AVMEDIA_TYPE_VIDEO,
1340        .name      = "mvc2",
1341        .long_name = NULL_IF_CONFIG_SMALL("Silicon Graphics Motion Video Compressor 2"),
1342        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1343    },
1344    {
1345        .id        = AV_CODEC_ID_HQX,
1346        .type      = AVMEDIA_TYPE_VIDEO,
1347        .name      = "hqx",
1348        .long_name = NULL_IF_CONFIG_SMALL("Canopus HQX"),
1349        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1350    },
1351    {
1352        .id        = AV_CODEC_ID_TDSC,
1353        .type      = AVMEDIA_TYPE_VIDEO,
1354        .name      = "tdsc",
1355        .long_name = NULL_IF_CONFIG_SMALL("TDSC"),
1356        .props     = AV_CODEC_PROP_LOSSY,
1357    },
1358    {
1359        .id        = AV_CODEC_ID_HQ_HQA,
1360        .type      = AVMEDIA_TYPE_VIDEO,
1361        .name      = "hq_hqa",
1362        .long_name = NULL_IF_CONFIG_SMALL("Canopus HQ/HQA"),
1363        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1364    },
1365    {
1366        .id        = AV_CODEC_ID_HAP,
1367        .type      = AVMEDIA_TYPE_VIDEO,
1368        .name      = "hap",
1369        .long_name = NULL_IF_CONFIG_SMALL("Vidvox Hap"),
1370        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1371    },
1372    {
1373        .id        = AV_CODEC_ID_DDS,
1374        .type      = AVMEDIA_TYPE_VIDEO,
1375        .name      = "dds",
1376        .long_name = NULL_IF_CONFIG_SMALL("DirectDraw Surface image decoder"),
1377        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY |
1378                     AV_CODEC_PROP_LOSSLESS,
1379    },
1380    {
1381        .id        = AV_CODEC_ID_DXV,
1382        .type      = AVMEDIA_TYPE_VIDEO,
1383        .name      = "dxv",
1384        .long_name = NULL_IF_CONFIG_SMALL("Resolume DXV"),
1385        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1386    },
1387    {
1388        .id        = AV_CODEC_ID_SCREENPRESSO,
1389        .type      = AVMEDIA_TYPE_VIDEO,
1390        .name      = "screenpresso",
1391        .long_name = NULL_IF_CONFIG_SMALL("Screenpresso"),
1392        .props     = AV_CODEC_PROP_LOSSLESS,
1393    },
1394    {
1395        .id        = AV_CODEC_ID_RSCC,
1396        .type      = AVMEDIA_TYPE_VIDEO,
1397        .name      = "rscc",
1398        .long_name = NULL_IF_CONFIG_SMALL("innoHeim/Rsupport Screen Capture Codec"),
1399        .props     = AV_CODEC_PROP_LOSSLESS,
1400    },
1401    {
1402        .id        = AV_CODEC_ID_AVS2,
1403        .type      = AVMEDIA_TYPE_VIDEO,
1404        .name      = "avs2",
1405        .long_name = NULL_IF_CONFIG_SMALL("AVS2-P2/IEEE1857.4"),
1406        .props     = AV_CODEC_PROP_LOSSY,
1407    },
1408    {
1409        .id        = AV_CODEC_ID_PGX,
1410        .type      = AVMEDIA_TYPE_VIDEO,
1411        .name      = "pgx",
1412        .long_name = NULL_IF_CONFIG_SMALL("PGX (JPEG2000 Test Format)"),
1413        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1414    },
1415    {
1416        .id        = AV_CODEC_ID_AVS3,
1417        .type      = AVMEDIA_TYPE_VIDEO,
1418        .name      = "avs3",
1419        .long_name = NULL_IF_CONFIG_SMALL("AVS3-P2/IEEE1857.10"),
1420        .props     = AV_CODEC_PROP_LOSSY,
1421    },
1422    {
1423        .id        = AV_CODEC_ID_MSP2,
1424        .type      = AVMEDIA_TYPE_VIDEO,
1425        .name      = "msp2",
1426        .long_name = NULL_IF_CONFIG_SMALL("Microsoft Paint (MSP) version 2"),
1427        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1428    },
1429    {
1430        .id        = AV_CODEC_ID_VVC,
1431        .type      = AVMEDIA_TYPE_VIDEO,
1432        .name      = "vvc",
1433        .long_name = NULL_IF_CONFIG_SMALL("H.266 / VVC (Versatile Video Coding)"),
1434        .props     = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER,
1435        .profiles  = NULL_IF_CONFIG_SMALL(ff_vvc_profiles),
1436    },
1437    {
1438        .id        = AV_CODEC_ID_Y41P,
1439        .type      = AVMEDIA_TYPE_VIDEO,
1440        .name      = "y41p",
1441        .long_name = NULL_IF_CONFIG_SMALL("Uncompressed YUV 4:1:1 12-bit"),
1442        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1443    },
1444    {
1445        .id        = AV_CODEC_ID_AVRP,
1446        .type      = AVMEDIA_TYPE_VIDEO,
1447        .name      = "avrp",
1448        .long_name = NULL_IF_CONFIG_SMALL("Avid 1:1 10-bit RGB Packer"),
1449        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1450    },
1451    {
1452        .id        = AV_CODEC_ID_012V,
1453        .type      = AVMEDIA_TYPE_VIDEO,
1454        .name      = "012v",
1455        .long_name = NULL_IF_CONFIG_SMALL("Uncompressed 4:2:2 10-bit"),
1456        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1457    },
1458    {
1459        .id        = AV_CODEC_ID_AVUI,
1460        .type      = AVMEDIA_TYPE_VIDEO,
1461        .name      = "avui",
1462        .long_name = NULL_IF_CONFIG_SMALL("Avid Meridien Uncompressed"),
1463        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1464    },
1465    {
1466        .id        = AV_CODEC_ID_AYUV,
1467        .type      = AVMEDIA_TYPE_VIDEO,
1468        .name      = "ayuv",
1469        .long_name = NULL_IF_CONFIG_SMALL("Uncompressed packed MS 4:4:4:4"),
1470        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1471    },
1472    {
1473        .id        = AV_CODEC_ID_TARGA_Y216,
1474        .type      = AVMEDIA_TYPE_VIDEO,
1475        .name      = "targa_y216",
1476        .long_name = NULL_IF_CONFIG_SMALL("Pinnacle TARGA CineWave YUV16"),
1477        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1478    },
1479    {
1480        .id        = AV_CODEC_ID_V308,
1481        .type      = AVMEDIA_TYPE_VIDEO,
1482        .name      = "v308",
1483        .long_name = NULL_IF_CONFIG_SMALL("Uncompressed packed 4:4:4"),
1484        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1485    },
1486    {
1487        .id        = AV_CODEC_ID_V408,
1488        .type      = AVMEDIA_TYPE_VIDEO,
1489        .name      = "v408",
1490        .long_name = NULL_IF_CONFIG_SMALL("Uncompressed packed QT 4:4:4:4"),
1491        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1492    },
1493    {
1494        .id        = AV_CODEC_ID_YUV4,
1495        .type      = AVMEDIA_TYPE_VIDEO,
1496        .name      = "yuv4",
1497        .long_name = NULL_IF_CONFIG_SMALL("Uncompressed packed 4:2:0"),
1498        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1499    },
1500    {
1501        .id        = AV_CODEC_ID_AVRN,
1502        .type      = AVMEDIA_TYPE_VIDEO,
1503        .name      = "avrn",
1504        .long_name = NULL_IF_CONFIG_SMALL("Avid AVI Codec"),
1505    },
1506    {
1507        .id        = AV_CODEC_ID_CPIA,
1508        .type      = AVMEDIA_TYPE_VIDEO,
1509        .name      = "cpia",
1510        .long_name = NULL_IF_CONFIG_SMALL("CPiA video format"),
1511    },
1512    {
1513        .id        = AV_CODEC_ID_XFACE,
1514        .type      = AVMEDIA_TYPE_VIDEO,
1515        .name      = "xface",
1516        .long_name = NULL_IF_CONFIG_SMALL("X-face image"),
1517        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1518    },
1519    {
1520        .id        = AV_CODEC_ID_SNOW,
1521        .type      = AVMEDIA_TYPE_VIDEO,
1522        .name      = "snow",
1523        .long_name = NULL_IF_CONFIG_SMALL("Snow"),
1524        .props     = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_LOSSLESS,
1525    },
1526    {
1527        .id        = AV_CODEC_ID_SMVJPEG,
1528        .type      = AVMEDIA_TYPE_VIDEO,
1529        .name      = "smvjpeg",
1530        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1531        .long_name = NULL_IF_CONFIG_SMALL("Sigmatel Motion Video"),
1532    },
1533    {
1534        .id        = AV_CODEC_ID_APNG,
1535        .type      = AVMEDIA_TYPE_VIDEO,
1536        .name      = "apng",
1537        .long_name = NULL_IF_CONFIG_SMALL("APNG (Animated Portable Network Graphics) image"),
1538        .props     = AV_CODEC_PROP_LOSSLESS,
1539        .mime_types= MT("image/png"),
1540    },
1541    {
1542        .id        = AV_CODEC_ID_DAALA,
1543        .type      = AVMEDIA_TYPE_VIDEO,
1544        .name      = "daala",
1545        .long_name = NULL_IF_CONFIG_SMALL("Daala"),
1546        .props     = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_LOSSLESS,
1547    },
1548    {
1549        .id        = AV_CODEC_ID_CFHD,
1550        .type      = AVMEDIA_TYPE_VIDEO,
1551        .name      = "cfhd",
1552        .long_name = NULL_IF_CONFIG_SMALL("GoPro CineForm HD"),
1553        .props     = AV_CODEC_PROP_LOSSY,
1554    },
1555    {
1556        .id        = AV_CODEC_ID_TRUEMOTION2RT,
1557        .type      = AVMEDIA_TYPE_VIDEO,
1558        .name      = "truemotion2rt",
1559        .long_name = NULL_IF_CONFIG_SMALL("Duck TrueMotion 2.0 Real Time"),
1560        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1561    },
1562    {
1563        .id        = AV_CODEC_ID_M101,
1564        .type      = AVMEDIA_TYPE_VIDEO,
1565        .name      = "m101",
1566        .long_name = NULL_IF_CONFIG_SMALL("Matrox Uncompressed SD"),
1567        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1568    },
1569    {
1570        .id        = AV_CODEC_ID_MAGICYUV,
1571        .type      = AVMEDIA_TYPE_VIDEO,
1572        .name      = "magicyuv",
1573        .long_name = NULL_IF_CONFIG_SMALL("MagicYUV video"),
1574        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1575    },
1576    {
1577        .id        = AV_CODEC_ID_SHEERVIDEO,
1578        .type      = AVMEDIA_TYPE_VIDEO,
1579        .name      = "sheervideo",
1580        .long_name = NULL_IF_CONFIG_SMALL("BitJazz SheerVideo"),
1581        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1582    },
1583    {
1584        .id        = AV_CODEC_ID_YLC,
1585        .type      = AVMEDIA_TYPE_VIDEO,
1586        .name      = "ylc",
1587        .long_name = NULL_IF_CONFIG_SMALL("YUY2 Lossless Codec"),
1588        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1589    },
1590    {
1591        .id        = AV_CODEC_ID_PSD,
1592        .type      = AVMEDIA_TYPE_VIDEO,
1593        .name      = "psd",
1594        .long_name = NULL_IF_CONFIG_SMALL("Photoshop PSD file"),
1595        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1596    },
1597    {
1598        .id        = AV_CODEC_ID_PIXLET,
1599        .type      = AVMEDIA_TYPE_VIDEO,
1600        .name      = "pixlet",
1601        .long_name = NULL_IF_CONFIG_SMALL("Apple Pixlet"),
1602        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1603    },
1604    {
1605        .id        = AV_CODEC_ID_SPEEDHQ,
1606        .type      = AVMEDIA_TYPE_VIDEO,
1607        .name      = "speedhq",
1608        .long_name = NULL_IF_CONFIG_SMALL("NewTek SpeedHQ"),
1609        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1610    },
1611    {
1612        .id        = AV_CODEC_ID_FMVC,
1613        .type      = AVMEDIA_TYPE_VIDEO,
1614        .name      = "fmvc",
1615        .long_name = NULL_IF_CONFIG_SMALL("FM Screen Capture Codec"),
1616        .props     = AV_CODEC_PROP_LOSSLESS,
1617    },
1618    {
1619        .id        = AV_CODEC_ID_SCPR,
1620        .type      = AVMEDIA_TYPE_VIDEO,
1621        .name      = "scpr",
1622        .long_name = NULL_IF_CONFIG_SMALL("ScreenPressor"),
1623        .props     = AV_CODEC_PROP_LOSSLESS | AV_CODEC_PROP_LOSSY,
1624    },
1625    {
1626        .id        = AV_CODEC_ID_CLEARVIDEO,
1627        .type      = AVMEDIA_TYPE_VIDEO,
1628        .name      = "clearvideo",
1629        .long_name = NULL_IF_CONFIG_SMALL("Iterated Systems ClearVideo"),
1630        .props     = AV_CODEC_PROP_LOSSY,
1631    },
1632    {
1633        .id        = AV_CODEC_ID_XPM,
1634        .type      = AVMEDIA_TYPE_VIDEO,
1635        .name      = "xpm",
1636        .long_name = NULL_IF_CONFIG_SMALL("XPM (X PixMap) image"),
1637        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1638        .mime_types= MT("image/x-xpixmap"),
1639    },
1640    {
1641        .id        = AV_CODEC_ID_AV1,
1642        .type      = AVMEDIA_TYPE_VIDEO,
1643        .name      = "av1",
1644        .long_name = NULL_IF_CONFIG_SMALL("Alliance for Open Media AV1"),
1645        .props     = AV_CODEC_PROP_LOSSY,
1646        .profiles  = NULL_IF_CONFIG_SMALL(ff_av1_profiles),
1647    },
1648    {
1649        .id        = AV_CODEC_ID_BITPACKED,
1650        .type      = AVMEDIA_TYPE_VIDEO,
1651        .name      = "bitpacked",
1652        .long_name = NULL_IF_CONFIG_SMALL("Bitpacked"),
1653        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1654    },
1655    {
1656        .id        = AV_CODEC_ID_MSCC,
1657        .type      = AVMEDIA_TYPE_VIDEO,
1658        .name      = "mscc",
1659        .long_name = NULL_IF_CONFIG_SMALL("Mandsoft Screen Capture Codec"),
1660        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1661    },
1662    {
1663        .id        = AV_CODEC_ID_SRGC,
1664        .type      = AVMEDIA_TYPE_VIDEO,
1665        .name      = "srgc",
1666        .long_name = NULL_IF_CONFIG_SMALL("Screen Recorder Gold Codec"),
1667        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1668    },
1669    {
1670        .id        = AV_CODEC_ID_SVG,
1671        .type      = AVMEDIA_TYPE_VIDEO,
1672        .name      = "svg",
1673        .long_name = NULL_IF_CONFIG_SMALL("Scalable Vector Graphics"),
1674        .props     = AV_CODEC_PROP_LOSSLESS,
1675        .mime_types= MT("image/svg+xml"),
1676    },
1677    {
1678        .id        = AV_CODEC_ID_GDV,
1679        .type      = AVMEDIA_TYPE_VIDEO,
1680        .name      = "gdv",
1681        .long_name = NULL_IF_CONFIG_SMALL("Gremlin Digital Video"),
1682        .props     = AV_CODEC_PROP_LOSSY,
1683    },
1684    {
1685        .id        = AV_CODEC_ID_FITS,
1686        .type      = AVMEDIA_TYPE_VIDEO,
1687        .name      = "fits",
1688        .long_name = NULL_IF_CONFIG_SMALL("FITS (Flexible Image Transport System)"),
1689        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1690    },
1691    {
1692        .id        = AV_CODEC_ID_IMM4,
1693        .type      = AVMEDIA_TYPE_VIDEO,
1694        .name      = "imm4",
1695        .long_name = NULL_IF_CONFIG_SMALL("Infinity IMM4"),
1696        .props     = AV_CODEC_PROP_LOSSY,
1697    },
1698    {
1699        .id        = AV_CODEC_ID_PROSUMER,
1700        .type      = AVMEDIA_TYPE_VIDEO,
1701        .name      = "prosumer",
1702        .long_name = NULL_IF_CONFIG_SMALL("Brooktree ProSumer Video"),
1703        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1704    },
1705    {
1706        .id        = AV_CODEC_ID_MWSC,
1707        .type      = AVMEDIA_TYPE_VIDEO,
1708        .name      = "mwsc",
1709        .long_name = NULL_IF_CONFIG_SMALL("MatchWare Screen Capture Codec"),
1710        .props     = AV_CODEC_PROP_LOSSLESS,
1711    },
1712    {
1713        .id        = AV_CODEC_ID_WCMV,
1714        .type      = AVMEDIA_TYPE_VIDEO,
1715        .name      = "wcmv",
1716        .long_name = NULL_IF_CONFIG_SMALL("WinCAM Motion Video"),
1717        .props     = AV_CODEC_PROP_LOSSLESS,
1718    },
1719    {
1720        .id        = AV_CODEC_ID_RASC,
1721        .type      = AVMEDIA_TYPE_VIDEO,
1722        .name      = "rasc",
1723        .long_name = NULL_IF_CONFIG_SMALL("RemotelyAnywhere Screen Capture"),
1724        .props     = AV_CODEC_PROP_LOSSY,
1725    },
1726    {
1727        .id        = AV_CODEC_ID_HYMT,
1728        .type      = AVMEDIA_TYPE_VIDEO,
1729        .name      = "hymt",
1730        .long_name = NULL_IF_CONFIG_SMALL("HuffYUV MT"),
1731        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1732    },
1733    {
1734        .id        = AV_CODEC_ID_ARBC,
1735        .type      = AVMEDIA_TYPE_VIDEO,
1736        .name      = "arbc",
1737        .long_name = NULL_IF_CONFIG_SMALL("Gryphon's Anim Compressor"),
1738        .props     = AV_CODEC_PROP_LOSSY,
1739    },
1740    {
1741        .id        = AV_CODEC_ID_AGM,
1742        .type      = AVMEDIA_TYPE_VIDEO,
1743        .name      = "agm",
1744        .long_name = NULL_IF_CONFIG_SMALL("Amuse Graphics Movie"),
1745        .props     = AV_CODEC_PROP_LOSSY,
1746    },
1747    {
1748        .id        = AV_CODEC_ID_LSCR,
1749        .type      = AVMEDIA_TYPE_VIDEO,
1750        .name      = "lscr",
1751        .long_name = NULL_IF_CONFIG_SMALL("LEAD Screen Capture"),
1752        .props     = AV_CODEC_PROP_LOSSY,
1753    },
1754    {
1755        .id        = AV_CODEC_ID_VP4,
1756        .type      = AVMEDIA_TYPE_VIDEO,
1757        .name      = "vp4",
1758        .long_name = NULL_IF_CONFIG_SMALL("On2 VP4"),
1759        .props     = AV_CODEC_PROP_LOSSY,
1760    },
1761    {
1762        .id        = AV_CODEC_ID_IMM5,
1763        .type      = AVMEDIA_TYPE_VIDEO,
1764        .name      = "imm5",
1765        .long_name = NULL_IF_CONFIG_SMALL("Infinity IMM5"),
1766        .props     = AV_CODEC_PROP_LOSSY,
1767    },
1768    {
1769        .id        = AV_CODEC_ID_MVDV,
1770        .type      = AVMEDIA_TYPE_VIDEO,
1771        .name      = "mvdv",
1772        .long_name = NULL_IF_CONFIG_SMALL("MidiVid VQ"),
1773        .props     = AV_CODEC_PROP_LOSSY,
1774    },
1775    {
1776        .id        = AV_CODEC_ID_MVHA,
1777        .type      = AVMEDIA_TYPE_VIDEO,
1778        .name      = "mvha",
1779        .long_name = NULL_IF_CONFIG_SMALL("MidiVid Archive Codec"),
1780        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1781    },
1782    {
1783        .id        = AV_CODEC_ID_CDTOONS,
1784        .type      = AVMEDIA_TYPE_VIDEO,
1785        .name      = "cdtoons",
1786        .long_name = NULL_IF_CONFIG_SMALL("CDToons video"),
1787        .props     = AV_CODEC_PROP_LOSSLESS,
1788    },
1789    {
1790        .id        = AV_CODEC_ID_MV30,
1791        .type      = AVMEDIA_TYPE_VIDEO,
1792        .name      = "mv30",
1793        .long_name = NULL_IF_CONFIG_SMALL("MidiVid 3.0"),
1794        .props     = AV_CODEC_PROP_LOSSY,
1795    },
1796    {
1797        .id        = AV_CODEC_ID_NOTCHLC,
1798        .type      = AVMEDIA_TYPE_VIDEO,
1799        .name      = "notchlc",
1800        .long_name = NULL_IF_CONFIG_SMALL("NotchLC"),
1801        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1802    },
1803    {
1804        .id        = AV_CODEC_ID_PFM,
1805        .type      = AVMEDIA_TYPE_VIDEO,
1806        .name      = "pfm",
1807        .long_name = NULL_IF_CONFIG_SMALL("PFM (Portable FloatMap) image"),
1808        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1809    },
1810    {
1811        .id        = AV_CODEC_ID_MOBICLIP,
1812        .type      = AVMEDIA_TYPE_VIDEO,
1813        .name      = "mobiclip",
1814        .long_name = NULL_IF_CONFIG_SMALL("MobiClip Video"),
1815        .props     = AV_CODEC_PROP_LOSSY,
1816    },
1817    {
1818        .id        = AV_CODEC_ID_PHOTOCD,
1819        .type      = AVMEDIA_TYPE_VIDEO,
1820        .name      = "photocd",
1821        .long_name = NULL_IF_CONFIG_SMALL("Kodak Photo CD"),
1822        .props     = AV_CODEC_PROP_LOSSY,
1823    },
1824    {
1825        .id        = AV_CODEC_ID_IPU,
1826        .type      = AVMEDIA_TYPE_VIDEO,
1827        .name      = "ipu",
1828        .long_name = NULL_IF_CONFIG_SMALL("IPU Video"),
1829        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1830    },
1831    {
1832        .id        = AV_CODEC_ID_ARGO,
1833        .type      = AVMEDIA_TYPE_VIDEO,
1834        .name      = "argo",
1835        .long_name = NULL_IF_CONFIG_SMALL("Argonaut Games Video"),
1836        .props     = AV_CODEC_PROP_LOSSY,
1837    },
1838    {
1839        .id        = AV_CODEC_ID_CRI,
1840        .type      = AVMEDIA_TYPE_VIDEO,
1841        .name      = "cri",
1842        .long_name = NULL_IF_CONFIG_SMALL("Cintel RAW"),
1843        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_LOSSLESS,
1844    },
1845    {
1846        .id        = AV_CODEC_ID_SIMBIOSIS_IMX,
1847        .type      = AVMEDIA_TYPE_VIDEO,
1848        .name      = "simbiosis_imx",
1849        .long_name = NULL_IF_CONFIG_SMALL("Simbiosis Interactive IMX Video"),
1850        .props     = AV_CODEC_PROP_LOSSY,
1851    },
1852    {
1853        .id        = AV_CODEC_ID_SGA_VIDEO,
1854        .type      = AVMEDIA_TYPE_VIDEO,
1855        .name      = "sga",
1856        .long_name = NULL_IF_CONFIG_SMALL("Digital Pictures SGA Video"),
1857        .props     = AV_CODEC_PROP_LOSSY,
1858    },
1859    {
1860        .id        = AV_CODEC_ID_GEM,
1861        .type      = AVMEDIA_TYPE_VIDEO,
1862        .name      = "gem",
1863        .long_name = NULL_IF_CONFIG_SMALL("GEM Raster image"),
1864        .props     = AV_CODEC_PROP_LOSSY,
1865    },
1866    {
1867        .id        = AV_CODEC_ID_VBN,
1868        .type      = AVMEDIA_TYPE_VIDEO,
1869        .name      = "vbn",
1870        .long_name = NULL_IF_CONFIG_SMALL("Vizrt Binary Image"),
1871        .props     = AV_CODEC_PROP_LOSSY,
1872    },
1873    {
1874        .id        = AV_CODEC_ID_JPEGXL,
1875        .type      = AVMEDIA_TYPE_VIDEO,
1876        .name      = "jpegxl",
1877        .long_name = NULL_IF_CONFIG_SMALL("JPEG XL"),
1878        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY |
1879                     AV_CODEC_PROP_LOSSLESS,
1880        .mime_types= MT("image/jxl"),
1881    },
1882    {
1883        .id        = AV_CODEC_ID_QOI,
1884        .type      = AVMEDIA_TYPE_VIDEO,
1885        .name      = "qoi",
1886        .long_name = NULL_IF_CONFIG_SMALL("QOI (Quite OK Image)"),
1887        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1888    },
1889    {
1890        .id        = AV_CODEC_ID_PHM,
1891        .type      = AVMEDIA_TYPE_VIDEO,
1892        .name      = "phm",
1893        .long_name = NULL_IF_CONFIG_SMALL("PHM (Portable HalfFloatMap) image"),
1894        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1895    },
1896
1897    /* various PCM "codecs" */
1898    {
1899        .id        = AV_CODEC_ID_PCM_S16LE,
1900        .type      = AVMEDIA_TYPE_AUDIO,
1901        .name      = "pcm_s16le",
1902        .long_name = NULL_IF_CONFIG_SMALL("PCM signed 16-bit little-endian"),
1903        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1904    },
1905    {
1906        .id        = AV_CODEC_ID_PCM_S16BE,
1907        .type      = AVMEDIA_TYPE_AUDIO,
1908        .name      = "pcm_s16be",
1909        .long_name = NULL_IF_CONFIG_SMALL("PCM signed 16-bit big-endian"),
1910        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1911    },
1912    {
1913        .id        = AV_CODEC_ID_PCM_U16LE,
1914        .type      = AVMEDIA_TYPE_AUDIO,
1915        .name      = "pcm_u16le",
1916        .long_name = NULL_IF_CONFIG_SMALL("PCM unsigned 16-bit little-endian"),
1917        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1918    },
1919    {
1920        .id        = AV_CODEC_ID_PCM_U16BE,
1921        .type      = AVMEDIA_TYPE_AUDIO,
1922        .name      = "pcm_u16be",
1923        .long_name = NULL_IF_CONFIG_SMALL("PCM unsigned 16-bit big-endian"),
1924        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1925    },
1926    {
1927        .id        = AV_CODEC_ID_PCM_S8,
1928        .type      = AVMEDIA_TYPE_AUDIO,
1929        .name      = "pcm_s8",
1930        .long_name = NULL_IF_CONFIG_SMALL("PCM signed 8-bit"),
1931        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1932    },
1933    {
1934        .id        = AV_CODEC_ID_PCM_U8,
1935        .type      = AVMEDIA_TYPE_AUDIO,
1936        .name      = "pcm_u8",
1937        .long_name = NULL_IF_CONFIG_SMALL("PCM unsigned 8-bit"),
1938        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1939    },
1940    {
1941        .id        = AV_CODEC_ID_PCM_MULAW,
1942        .type      = AVMEDIA_TYPE_AUDIO,
1943        .name      = "pcm_mulaw",
1944        .long_name = NULL_IF_CONFIG_SMALL("PCM mu-law / G.711 mu-law"),
1945        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1946    },
1947    {
1948        .id        = AV_CODEC_ID_PCM_ALAW,
1949        .type      = AVMEDIA_TYPE_AUDIO,
1950        .name      = "pcm_alaw",
1951        .long_name = NULL_IF_CONFIG_SMALL("PCM A-law / G.711 A-law"),
1952        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
1953    },
1954    {
1955        .id        = AV_CODEC_ID_PCM_S32LE,
1956        .type      = AVMEDIA_TYPE_AUDIO,
1957        .name      = "pcm_s32le",
1958        .long_name = NULL_IF_CONFIG_SMALL("PCM signed 32-bit little-endian"),
1959        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1960    },
1961    {
1962        .id        = AV_CODEC_ID_PCM_S32BE,
1963        .type      = AVMEDIA_TYPE_AUDIO,
1964        .name      = "pcm_s32be",
1965        .long_name = NULL_IF_CONFIG_SMALL("PCM signed 32-bit big-endian"),
1966        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1967    },
1968    {
1969        .id        = AV_CODEC_ID_PCM_U32LE,
1970        .type      = AVMEDIA_TYPE_AUDIO,
1971        .name      = "pcm_u32le",
1972        .long_name = NULL_IF_CONFIG_SMALL("PCM unsigned 32-bit little-endian"),
1973        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1974    },
1975    {
1976        .id        = AV_CODEC_ID_PCM_U32BE,
1977        .type      = AVMEDIA_TYPE_AUDIO,
1978        .name      = "pcm_u32be",
1979        .long_name = NULL_IF_CONFIG_SMALL("PCM unsigned 32-bit big-endian"),
1980        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1981    },
1982    {
1983        .id        = AV_CODEC_ID_PCM_S24LE,
1984        .type      = AVMEDIA_TYPE_AUDIO,
1985        .name      = "pcm_s24le",
1986        .long_name = NULL_IF_CONFIG_SMALL("PCM signed 24-bit little-endian"),
1987        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1988    },
1989    {
1990        .id        = AV_CODEC_ID_PCM_S24BE,
1991        .type      = AVMEDIA_TYPE_AUDIO,
1992        .name      = "pcm_s24be",
1993        .long_name = NULL_IF_CONFIG_SMALL("PCM signed 24-bit big-endian"),
1994        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
1995    },
1996    {
1997        .id        = AV_CODEC_ID_PCM_U24LE,
1998        .type      = AVMEDIA_TYPE_AUDIO,
1999        .name      = "pcm_u24le",
2000        .long_name = NULL_IF_CONFIG_SMALL("PCM unsigned 24-bit little-endian"),
2001        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
2002    },
2003    {
2004        .id        = AV_CODEC_ID_PCM_U24BE,
2005        .type      = AVMEDIA_TYPE_AUDIO,
2006        .name      = "pcm_u24be",
2007        .long_name = NULL_IF_CONFIG_SMALL("PCM unsigned 24-bit big-endian"),
2008        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
2009    },
2010    {
2011        .id        = AV_CODEC_ID_PCM_S24DAUD,
2012        .type      = AVMEDIA_TYPE_AUDIO,
2013        .name      = "pcm_s24daud",
2014        .long_name = NULL_IF_CONFIG_SMALL("PCM D-Cinema audio signed 24-bit"),
2015        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
2016    },
2017    {
2018        .id        = AV_CODEC_ID_PCM_S16LE_PLANAR,
2019        .type      = AVMEDIA_TYPE_AUDIO,
2020        .name      = "pcm_s16le_planar",
2021        .long_name = NULL_IF_CONFIG_SMALL("PCM signed 16-bit little-endian planar"),
2022        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
2023    },
2024    {
2025        .id        = AV_CODEC_ID_PCM_DVD,
2026        .type      = AVMEDIA_TYPE_AUDIO,
2027        .name      = "pcm_dvd",
2028        .long_name = NULL_IF_CONFIG_SMALL("PCM signed 20|24-bit big-endian"),
2029        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
2030    },
2031    {
2032        .id        = AV_CODEC_ID_PCM_F32BE,
2033        .type      = AVMEDIA_TYPE_AUDIO,
2034        .name      = "pcm_f32be",
2035        .long_name = NULL_IF_CONFIG_SMALL("PCM 32-bit floating point big-endian"),
2036        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
2037    },
2038    {
2039        .id        = AV_CODEC_ID_PCM_F32LE,
2040        .type      = AVMEDIA_TYPE_AUDIO,
2041        .name      = "pcm_f32le",
2042        .long_name = NULL_IF_CONFIG_SMALL("PCM 32-bit floating point little-endian"),
2043        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
2044    },
2045    {
2046        .id        = AV_CODEC_ID_PCM_F64BE,
2047        .type      = AVMEDIA_TYPE_AUDIO,
2048        .name      = "pcm_f64be",
2049        .long_name = NULL_IF_CONFIG_SMALL("PCM 64-bit floating point big-endian"),
2050        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
2051    },
2052    {
2053        .id        = AV_CODEC_ID_PCM_F64LE,
2054        .type      = AVMEDIA_TYPE_AUDIO,
2055        .name      = "pcm_f64le",
2056        .long_name = NULL_IF_CONFIG_SMALL("PCM 64-bit floating point little-endian"),
2057        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
2058    },
2059    {
2060        .id        = AV_CODEC_ID_PCM_BLURAY,
2061        .type      = AVMEDIA_TYPE_AUDIO,
2062        .name      = "pcm_bluray",
2063        .long_name = NULL_IF_CONFIG_SMALL("PCM signed 16|20|24-bit big-endian for Blu-ray media"),
2064        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
2065    },
2066    {
2067        .id        = AV_CODEC_ID_PCM_LXF,
2068        .type      = AVMEDIA_TYPE_AUDIO,
2069        .name      = "pcm_lxf",
2070        .long_name = NULL_IF_CONFIG_SMALL("PCM signed 20-bit little-endian planar"),
2071        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
2072    },
2073    {
2074        .id        = AV_CODEC_ID_S302M,
2075        .type      = AVMEDIA_TYPE_AUDIO,
2076        .name      = "s302m",
2077        .long_name = NULL_IF_CONFIG_SMALL("SMPTE 302M"),
2078        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
2079    },
2080    {
2081        .id        = AV_CODEC_ID_PCM_S8_PLANAR,
2082        .type      = AVMEDIA_TYPE_AUDIO,
2083        .name      = "pcm_s8_planar",
2084        .long_name = NULL_IF_CONFIG_SMALL("PCM signed 8-bit planar"),
2085        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
2086    },
2087    {
2088        .id        = AV_CODEC_ID_PCM_S24LE_PLANAR,
2089        .type      = AVMEDIA_TYPE_AUDIO,
2090        .name      = "pcm_s24le_planar",
2091        .long_name = NULL_IF_CONFIG_SMALL("PCM signed 24-bit little-endian planar"),
2092        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
2093    },
2094    {
2095        .id        = AV_CODEC_ID_PCM_S32LE_PLANAR,
2096        .type      = AVMEDIA_TYPE_AUDIO,
2097        .name      = "pcm_s32le_planar",
2098        .long_name = NULL_IF_CONFIG_SMALL("PCM signed 32-bit little-endian planar"),
2099        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
2100    },
2101    {
2102        .id        = AV_CODEC_ID_PCM_S16BE_PLANAR,
2103        .type      = AVMEDIA_TYPE_AUDIO,
2104        .name      = "pcm_s16be_planar",
2105        .long_name = NULL_IF_CONFIG_SMALL("PCM signed 16-bit big-endian planar"),
2106        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
2107    },
2108    {
2109        .id        = AV_CODEC_ID_PCM_S64LE,
2110        .type      = AVMEDIA_TYPE_AUDIO,
2111        .name      = "pcm_s64le",
2112        .long_name = NULL_IF_CONFIG_SMALL("PCM signed 64-bit little-endian"),
2113        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
2114    },
2115    {
2116        .id        = AV_CODEC_ID_PCM_S64BE,
2117        .type      = AVMEDIA_TYPE_AUDIO,
2118        .name      = "pcm_s64be",
2119        .long_name = NULL_IF_CONFIG_SMALL("PCM signed 64-bit big-endian"),
2120        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
2121    },
2122    {
2123        .id        = AV_CODEC_ID_PCM_F16LE,
2124        .type      = AVMEDIA_TYPE_AUDIO,
2125        .name      = "pcm_f16le",
2126        .long_name = NULL_IF_CONFIG_SMALL("PCM 16.8 floating point little-endian"),
2127        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
2128    },
2129    {
2130        .id        = AV_CODEC_ID_PCM_F24LE,
2131        .type      = AVMEDIA_TYPE_AUDIO,
2132        .name      = "pcm_f24le",
2133        .long_name = NULL_IF_CONFIG_SMALL("PCM 24.0 floating point little-endian"),
2134        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
2135    },
2136    {
2137        .id        = AV_CODEC_ID_PCM_VIDC,
2138        .type      = AVMEDIA_TYPE_AUDIO,
2139        .name      = "pcm_vidc",
2140        .long_name = NULL_IF_CONFIG_SMALL("PCM Archimedes VIDC"),
2141        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2142    },
2143    {
2144        .id        = AV_CODEC_ID_PCM_SGA,
2145        .type      = AVMEDIA_TYPE_AUDIO,
2146        .name      = "pcm_sga",
2147        .long_name = NULL_IF_CONFIG_SMALL("PCM SGA"),
2148        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
2149    },
2150
2151    /* various ADPCM codecs */
2152    {
2153        .id        = AV_CODEC_ID_ADPCM_IMA_QT,
2154        .type      = AVMEDIA_TYPE_AUDIO,
2155        .name      = "adpcm_ima_qt",
2156        .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA QuickTime"),
2157        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2158    },
2159    {
2160        .id        = AV_CODEC_ID_ADPCM_IMA_WAV,
2161        .type      = AVMEDIA_TYPE_AUDIO,
2162        .name      = "adpcm_ima_wav",
2163        .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA WAV"),
2164        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2165    },
2166    {
2167        .id        = AV_CODEC_ID_ADPCM_IMA_DK3,
2168        .type      = AVMEDIA_TYPE_AUDIO,
2169        .name      = "adpcm_ima_dk3",
2170        .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA Duck DK3"),
2171        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2172    },
2173    {
2174        .id        = AV_CODEC_ID_ADPCM_IMA_DK4,
2175        .type      = AVMEDIA_TYPE_AUDIO,
2176        .name      = "adpcm_ima_dk4",
2177        .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA Duck DK4"),
2178        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2179    },
2180    {
2181        .id        = AV_CODEC_ID_ADPCM_IMA_WS,
2182        .type      = AVMEDIA_TYPE_AUDIO,
2183        .name      = "adpcm_ima_ws",
2184        .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA Westwood"),
2185        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2186    },
2187    {
2188        .id        = AV_CODEC_ID_ADPCM_IMA_SMJPEG,
2189        .type      = AVMEDIA_TYPE_AUDIO,
2190        .name      = "adpcm_ima_smjpeg",
2191        .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA Loki SDL MJPEG"),
2192        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2193    },
2194    {
2195        .id        = AV_CODEC_ID_ADPCM_MS,
2196        .type      = AVMEDIA_TYPE_AUDIO,
2197        .name      = "adpcm_ms",
2198        .long_name = NULL_IF_CONFIG_SMALL("ADPCM Microsoft"),
2199        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2200    },
2201    {
2202        .id        = AV_CODEC_ID_ADPCM_4XM,
2203        .type      = AVMEDIA_TYPE_AUDIO,
2204        .name      = "adpcm_4xm",
2205        .long_name = NULL_IF_CONFIG_SMALL("ADPCM 4X Movie"),
2206        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2207    },
2208    {
2209        .id        = AV_CODEC_ID_ADPCM_XA,
2210        .type      = AVMEDIA_TYPE_AUDIO,
2211        .name      = "adpcm_xa",
2212        .long_name = NULL_IF_CONFIG_SMALL("ADPCM CDROM XA"),
2213        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2214    },
2215    {
2216        .id        = AV_CODEC_ID_ADPCM_ADX,
2217        .type      = AVMEDIA_TYPE_AUDIO,
2218        .name      = "adpcm_adx",
2219        .long_name = NULL_IF_CONFIG_SMALL("SEGA CRI ADX ADPCM"),
2220        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2221    },
2222    {
2223        .id        = AV_CODEC_ID_ADPCM_EA,
2224        .type      = AVMEDIA_TYPE_AUDIO,
2225        .name      = "adpcm_ea",
2226        .long_name = NULL_IF_CONFIG_SMALL("ADPCM Electronic Arts"),
2227        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2228    },
2229    {
2230        .id        = AV_CODEC_ID_ADPCM_G726,
2231        .type      = AVMEDIA_TYPE_AUDIO,
2232        .name      = "adpcm_g726",
2233        .long_name = NULL_IF_CONFIG_SMALL("G.726 ADPCM"),
2234        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2235    },
2236    {
2237        .id        = AV_CODEC_ID_ADPCM_CT,
2238        .type      = AVMEDIA_TYPE_AUDIO,
2239        .name      = "adpcm_ct",
2240        .long_name = NULL_IF_CONFIG_SMALL("ADPCM Creative Technology"),
2241        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2242    },
2243    {
2244        .id        = AV_CODEC_ID_ADPCM_SWF,
2245        .type      = AVMEDIA_TYPE_AUDIO,
2246        .name      = "adpcm_swf",
2247        .long_name = NULL_IF_CONFIG_SMALL("ADPCM Shockwave Flash"),
2248        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2249    },
2250    {
2251        .id        = AV_CODEC_ID_ADPCM_YAMAHA,
2252        .type      = AVMEDIA_TYPE_AUDIO,
2253        .name      = "adpcm_yamaha",
2254        .long_name = NULL_IF_CONFIG_SMALL("ADPCM Yamaha"),
2255        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2256    },
2257    {
2258        .id        = AV_CODEC_ID_ADPCM_SBPRO_4,
2259        .type      = AVMEDIA_TYPE_AUDIO,
2260        .name      = "adpcm_sbpro_4",
2261        .long_name = NULL_IF_CONFIG_SMALL("ADPCM Sound Blaster Pro 4-bit"),
2262        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2263    },
2264    {
2265        .id        = AV_CODEC_ID_ADPCM_SBPRO_3,
2266        .type      = AVMEDIA_TYPE_AUDIO,
2267        .name      = "adpcm_sbpro_3",
2268        .long_name = NULL_IF_CONFIG_SMALL("ADPCM Sound Blaster Pro 2.6-bit"),
2269        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2270    },
2271    {
2272        .id        = AV_CODEC_ID_ADPCM_SBPRO_2,
2273        .type      = AVMEDIA_TYPE_AUDIO,
2274        .name      = "adpcm_sbpro_2",
2275        .long_name = NULL_IF_CONFIG_SMALL("ADPCM Sound Blaster Pro 2-bit"),
2276        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2277    },
2278    {
2279        .id        = AV_CODEC_ID_ADPCM_THP,
2280        .type      = AVMEDIA_TYPE_AUDIO,
2281        .name      = "adpcm_thp",
2282        .long_name = NULL_IF_CONFIG_SMALL("ADPCM Nintendo THP"),
2283        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2284    },
2285    {
2286        .id        = AV_CODEC_ID_ADPCM_IMA_AMV,
2287        .type      = AVMEDIA_TYPE_AUDIO,
2288        .name      = "adpcm_ima_amv",
2289        .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA AMV"),
2290        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2291    },
2292    {
2293        .id        = AV_CODEC_ID_ADPCM_EA_R1,
2294        .type      = AVMEDIA_TYPE_AUDIO,
2295        .name      = "adpcm_ea_r1",
2296        .long_name = NULL_IF_CONFIG_SMALL("ADPCM Electronic Arts R1"),
2297        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2298    },
2299    {
2300        .id        = AV_CODEC_ID_ADPCM_EA_R3,
2301        .type      = AVMEDIA_TYPE_AUDIO,
2302        .name      = "adpcm_ea_r3",
2303        .long_name = NULL_IF_CONFIG_SMALL("ADPCM Electronic Arts R3"),
2304        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2305    },
2306    {
2307        .id        = AV_CODEC_ID_ADPCM_EA_R2,
2308        .type      = AVMEDIA_TYPE_AUDIO,
2309        .name      = "adpcm_ea_r2",
2310        .long_name = NULL_IF_CONFIG_SMALL("ADPCM Electronic Arts R2"),
2311        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2312    },
2313    {
2314        .id        = AV_CODEC_ID_ADPCM_IMA_EA_SEAD,
2315        .type      = AVMEDIA_TYPE_AUDIO,
2316        .name      = "adpcm_ima_ea_sead",
2317        .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA Electronic Arts SEAD"),
2318        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2319    },
2320    {
2321        .id        = AV_CODEC_ID_ADPCM_IMA_EA_EACS,
2322        .type      = AVMEDIA_TYPE_AUDIO,
2323        .name      = "adpcm_ima_ea_eacs",
2324        .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA Electronic Arts EACS"),
2325        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2326    },
2327    {
2328        .id        = AV_CODEC_ID_ADPCM_EA_XAS,
2329        .type      = AVMEDIA_TYPE_AUDIO,
2330        .name      = "adpcm_ea_xas",
2331        .long_name = NULL_IF_CONFIG_SMALL("ADPCM Electronic Arts XAS"),
2332        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2333    },
2334    {
2335        .id        = AV_CODEC_ID_ADPCM_EA_MAXIS_XA,
2336        .type      = AVMEDIA_TYPE_AUDIO,
2337        .name      = "adpcm_ea_maxis_xa",
2338        .long_name = NULL_IF_CONFIG_SMALL("ADPCM Electronic Arts Maxis CDROM XA"),
2339        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2340    },
2341    {
2342        .id        = AV_CODEC_ID_ADPCM_IMA_ISS,
2343        .type      = AVMEDIA_TYPE_AUDIO,
2344        .name      = "adpcm_ima_iss",
2345        .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA Funcom ISS"),
2346        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2347    },
2348    {
2349        .id        = AV_CODEC_ID_ADPCM_G722,
2350        .type      = AVMEDIA_TYPE_AUDIO,
2351        .name      = "adpcm_g722",
2352        .long_name = NULL_IF_CONFIG_SMALL("G.722 ADPCM"),
2353        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2354    },
2355    {
2356        .id        = AV_CODEC_ID_ADPCM_IMA_APC,
2357        .type      = AVMEDIA_TYPE_AUDIO,
2358        .name      = "adpcm_ima_apc",
2359        .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA CRYO APC"),
2360        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2361    },
2362    {
2363        .id        = AV_CODEC_ID_ADPCM_VIMA,
2364        .type      = AVMEDIA_TYPE_AUDIO,
2365        .name      = "adpcm_vima",
2366        .long_name = NULL_IF_CONFIG_SMALL("LucasArts VIMA audio"),
2367        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2368    },
2369    {
2370        .id        = AV_CODEC_ID_ADPCM_AFC,
2371        .type      = AVMEDIA_TYPE_AUDIO,
2372        .name      = "adpcm_afc",
2373        .long_name = NULL_IF_CONFIG_SMALL("ADPCM Nintendo Gamecube AFC"),
2374        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2375    },
2376    {
2377        .id        = AV_CODEC_ID_ADPCM_IMA_OKI,
2378        .type      = AVMEDIA_TYPE_AUDIO,
2379        .name      = "adpcm_ima_oki",
2380        .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA Dialogic OKI"),
2381        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2382    },
2383    {
2384        .id        = AV_CODEC_ID_ADPCM_DTK,
2385        .type      = AVMEDIA_TYPE_AUDIO,
2386        .name      = "adpcm_dtk",
2387        .long_name = NULL_IF_CONFIG_SMALL("ADPCM Nintendo Gamecube DTK"),
2388        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2389    },
2390    {
2391        .id        = AV_CODEC_ID_ADPCM_IMA_RAD,
2392        .type      = AVMEDIA_TYPE_AUDIO,
2393        .name      = "adpcm_ima_rad",
2394        .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA Radical"),
2395        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2396    },
2397    {
2398        .id        = AV_CODEC_ID_ADPCM_G726LE,
2399        .type      = AVMEDIA_TYPE_AUDIO,
2400        .name      = "adpcm_g726le",
2401        .long_name = NULL_IF_CONFIG_SMALL("G.726 ADPCM little-endian"),
2402        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2403    },
2404    {
2405        .id        = AV_CODEC_ID_ADPCM_THP_LE,
2406        .type      = AVMEDIA_TYPE_AUDIO,
2407        .name      = "adpcm_thp_le",
2408        .long_name = NULL_IF_CONFIG_SMALL("ADPCM Nintendo THP (Little-Endian)"),
2409        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2410    },
2411    {
2412        .id        = AV_CODEC_ID_ADPCM_PSX,
2413        .type      = AVMEDIA_TYPE_AUDIO,
2414        .name      = "adpcm_psx",
2415        .long_name = NULL_IF_CONFIG_SMALL("ADPCM Playstation"),
2416        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2417    },
2418    {
2419        .id        = AV_CODEC_ID_ADPCM_AICA,
2420        .type      = AVMEDIA_TYPE_AUDIO,
2421        .name      = "adpcm_aica",
2422        .long_name = NULL_IF_CONFIG_SMALL("ADPCM Yamaha AICA"),
2423        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2424    },
2425    {
2426        .id        = AV_CODEC_ID_ADPCM_IMA_DAT4,
2427        .type      = AVMEDIA_TYPE_AUDIO,
2428        .name      = "adpcm_ima_dat4",
2429        .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA Eurocom DAT4"),
2430        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2431    },
2432    {
2433        .id        = AV_CODEC_ID_ADPCM_MTAF,
2434        .type      = AVMEDIA_TYPE_AUDIO,
2435        .name      = "adpcm_mtaf",
2436        .long_name = NULL_IF_CONFIG_SMALL("ADPCM MTAF"),
2437        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2438    },
2439    {
2440        .id        = AV_CODEC_ID_ADPCM_AGM,
2441        .type      = AVMEDIA_TYPE_AUDIO,
2442        .name      = "adpcm_agm",
2443        .long_name = NULL_IF_CONFIG_SMALL("ADPCM AmuseGraphics Movie AGM"),
2444        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2445    },
2446    {
2447        .id        = AV_CODEC_ID_ADPCM_ARGO,
2448        .type      = AVMEDIA_TYPE_AUDIO,
2449        .name      = "adpcm_argo",
2450        .long_name = NULL_IF_CONFIG_SMALL("ADPCM Argonaut Games"),
2451        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2452    },
2453    {
2454        .id        = AV_CODEC_ID_ADPCM_IMA_SSI,
2455        .type      = AVMEDIA_TYPE_AUDIO,
2456        .name      = "adpcm_ima_ssi",
2457        .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA Simon & Schuster Interactive"),
2458        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2459    },
2460    {
2461        .id        = AV_CODEC_ID_ADPCM_ZORK,
2462        .type      = AVMEDIA_TYPE_AUDIO,
2463        .name      = "adpcm_zork",
2464        .long_name = NULL_IF_CONFIG_SMALL("ADPCM Zork"),
2465        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2466    },
2467    {
2468        .id        = AV_CODEC_ID_ADPCM_IMA_APM,
2469        .type      = AVMEDIA_TYPE_AUDIO,
2470        .name      = "adpcm_ima_apm",
2471        .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA Ubisoft APM"),
2472        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2473    },
2474    {
2475        .id        = AV_CODEC_ID_ADPCM_IMA_ALP,
2476        .type      = AVMEDIA_TYPE_AUDIO,
2477        .name      = "adpcm_ima_alp",
2478        .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA High Voltage Software ALP"),
2479        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2480    },
2481    {
2482        .id        = AV_CODEC_ID_ADPCM_IMA_MTF,
2483        .type      = AVMEDIA_TYPE_AUDIO,
2484        .name      = "adpcm_ima_mtf",
2485        .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA Capcom's MT Framework"),
2486        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2487    },
2488    {
2489        .id        = AV_CODEC_ID_ADPCM_IMA_CUNNING,
2490        .type      = AVMEDIA_TYPE_AUDIO,
2491        .name      = "adpcm_ima_cunning",
2492        .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA Cunning Developments"),
2493        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2494    },
2495    {
2496        .id        = AV_CODEC_ID_ADPCM_IMA_MOFLEX,
2497        .type      = AVMEDIA_TYPE_AUDIO,
2498        .name      = "adpcm_ima_moflex",
2499        .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA MobiClip MOFLEX"),
2500        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2501    },
2502    {
2503        .id        = AV_CODEC_ID_ADPCM_IMA_ACORN,
2504        .type      = AVMEDIA_TYPE_AUDIO,
2505        .name      = "adpcm_ima_acorn",
2506        .long_name = NULL_IF_CONFIG_SMALL("ADPCM IMA Acorn Replay"),
2507        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2508    },
2509
2510    /* AMR */
2511    {
2512        .id        = AV_CODEC_ID_AMR_NB,
2513        .type      = AVMEDIA_TYPE_AUDIO,
2514        .name      = "amr_nb",
2515        .long_name = NULL_IF_CONFIG_SMALL("AMR-NB (Adaptive Multi-Rate NarrowBand)"),
2516        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2517    },
2518    {
2519        .id        = AV_CODEC_ID_AMR_WB,
2520        .type      = AVMEDIA_TYPE_AUDIO,
2521        .name      = "amr_wb",
2522        .long_name = NULL_IF_CONFIG_SMALL("AMR-WB (Adaptive Multi-Rate WideBand)"),
2523        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2524    },
2525
2526    /* RealAudio codecs*/
2527    {
2528        .id        = AV_CODEC_ID_RA_144,
2529        .type      = AVMEDIA_TYPE_AUDIO,
2530        .name      = "ra_144",
2531        .long_name = NULL_IF_CONFIG_SMALL("RealAudio 1.0 (14.4K)"),
2532        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2533    },
2534    {
2535        .id        = AV_CODEC_ID_RA_288,
2536        .type      = AVMEDIA_TYPE_AUDIO,
2537        .name      = "ra_288",
2538        .long_name = NULL_IF_CONFIG_SMALL("RealAudio 2.0 (28.8K)"),
2539        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2540    },
2541
2542    /* various DPCM codecs */
2543    {
2544        .id        = AV_CODEC_ID_ROQ_DPCM,
2545        .type      = AVMEDIA_TYPE_AUDIO,
2546        .name      = "roq_dpcm",
2547        .long_name = NULL_IF_CONFIG_SMALL("DPCM id RoQ"),
2548        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2549    },
2550    {
2551        .id        = AV_CODEC_ID_INTERPLAY_DPCM,
2552        .type      = AVMEDIA_TYPE_AUDIO,
2553        .name      = "interplay_dpcm",
2554        .long_name = NULL_IF_CONFIG_SMALL("DPCM Interplay"),
2555        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2556    },
2557    {
2558        .id        = AV_CODEC_ID_XAN_DPCM,
2559        .type      = AVMEDIA_TYPE_AUDIO,
2560        .name      = "xan_dpcm",
2561        .long_name = NULL_IF_CONFIG_SMALL("DPCM Xan"),
2562        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2563    },
2564    {
2565        .id        = AV_CODEC_ID_SOL_DPCM,
2566        .type      = AVMEDIA_TYPE_AUDIO,
2567        .name      = "sol_dpcm",
2568        .long_name = NULL_IF_CONFIG_SMALL("DPCM Sol"),
2569        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2570    },
2571    {
2572        .id        = AV_CODEC_ID_SDX2_DPCM,
2573        .type      = AVMEDIA_TYPE_AUDIO,
2574        .name      = "sdx2_dpcm",
2575        .long_name = NULL_IF_CONFIG_SMALL("DPCM Squareroot-Delta-Exact"),
2576        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2577    },
2578    {
2579        .id        = AV_CODEC_ID_GREMLIN_DPCM,
2580        .type      = AVMEDIA_TYPE_AUDIO,
2581        .name      = "gremlin_dpcm",
2582        .long_name = NULL_IF_CONFIG_SMALL("DPCM Gremlin"),
2583        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2584    },
2585    {
2586        .id        = AV_CODEC_ID_DERF_DPCM,
2587        .type      = AVMEDIA_TYPE_AUDIO,
2588        .name      = "derf_dpcm",
2589        .long_name = NULL_IF_CONFIG_SMALL("DPCM Xilam DERF"),
2590        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2591    },
2592
2593    /* audio codecs */
2594    {
2595        .id        = AV_CODEC_ID_MP2,
2596        .type      = AVMEDIA_TYPE_AUDIO,
2597        .name      = "mp2",
2598        .long_name = NULL_IF_CONFIG_SMALL("MP2 (MPEG audio layer 2)"),
2599        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2600    },
2601    {
2602        .id        = AV_CODEC_ID_MP3,
2603        .type      = AVMEDIA_TYPE_AUDIO,
2604        .name      = "mp3",
2605        .long_name = NULL_IF_CONFIG_SMALL("MP3 (MPEG audio layer 3)"),
2606        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2607    },
2608    {
2609        .id        = AV_CODEC_ID_AAC,
2610        .type      = AVMEDIA_TYPE_AUDIO,
2611        .name      = "aac",
2612        .long_name = NULL_IF_CONFIG_SMALL("AAC (Advanced Audio Coding)"),
2613        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2614        .profiles  = NULL_IF_CONFIG_SMALL(ff_aac_profiles),
2615    },
2616    {
2617        .id        = AV_CODEC_ID_AC3,
2618        .type      = AVMEDIA_TYPE_AUDIO,
2619        .name      = "ac3",
2620        .long_name = NULL_IF_CONFIG_SMALL("ATSC A/52A (AC-3)"),
2621        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2622    },
2623    {
2624        .id        = AV_CODEC_ID_DTS,
2625        .type      = AVMEDIA_TYPE_AUDIO,
2626        .name      = "dts",
2627        .long_name = NULL_IF_CONFIG_SMALL("DCA (DTS Coherent Acoustics)"),
2628        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_LOSSLESS,
2629        .profiles  = NULL_IF_CONFIG_SMALL(ff_dca_profiles),
2630    },
2631    {
2632        .id        = AV_CODEC_ID_VORBIS,
2633        .type      = AVMEDIA_TYPE_AUDIO,
2634        .name      = "vorbis",
2635        .long_name = NULL_IF_CONFIG_SMALL("Vorbis"),
2636        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2637    },
2638    {
2639        .id        = AV_CODEC_ID_DVAUDIO,
2640        .type      = AVMEDIA_TYPE_AUDIO,
2641        .name      = "dvaudio",
2642        .long_name = NULL_IF_CONFIG_SMALL("DV audio"),
2643        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2644    },
2645    {
2646        .id        = AV_CODEC_ID_WMAV1,
2647        .type      = AVMEDIA_TYPE_AUDIO,
2648        .name      = "wmav1",
2649        .long_name = NULL_IF_CONFIG_SMALL("Windows Media Audio 1"),
2650        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2651    },
2652    {
2653        .id        = AV_CODEC_ID_WMAV2,
2654        .type      = AVMEDIA_TYPE_AUDIO,
2655        .name      = "wmav2",
2656        .long_name = NULL_IF_CONFIG_SMALL("Windows Media Audio 2"),
2657        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2658    },
2659    {
2660        .id        = AV_CODEC_ID_MACE3,
2661        .type      = AVMEDIA_TYPE_AUDIO,
2662        .name      = "mace3",
2663        .long_name = NULL_IF_CONFIG_SMALL("MACE (Macintosh Audio Compression/Expansion) 3:1"),
2664        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2665    },
2666    {
2667        .id        = AV_CODEC_ID_MACE6,
2668        .type      = AVMEDIA_TYPE_AUDIO,
2669        .name      = "mace6",
2670        .long_name = NULL_IF_CONFIG_SMALL("MACE (Macintosh Audio Compression/Expansion) 6:1"),
2671        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2672    },
2673    {
2674        .id        = AV_CODEC_ID_VMDAUDIO,
2675        .type      = AVMEDIA_TYPE_AUDIO,
2676        .name      = "vmdaudio",
2677        .long_name = NULL_IF_CONFIG_SMALL("Sierra VMD audio"),
2678        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2679    },
2680    {
2681        .id        = AV_CODEC_ID_FLAC,
2682        .type      = AVMEDIA_TYPE_AUDIO,
2683        .name      = "flac",
2684        .long_name = NULL_IF_CONFIG_SMALL("FLAC (Free Lossless Audio Codec)"),
2685        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
2686    },
2687    {
2688        .id        = AV_CODEC_ID_MP3ADU,
2689        .type      = AVMEDIA_TYPE_AUDIO,
2690        .name      = "mp3adu",
2691        .long_name = NULL_IF_CONFIG_SMALL("ADU (Application Data Unit) MP3 (MPEG audio layer 3)"),
2692        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2693    },
2694    {
2695        .id        = AV_CODEC_ID_MP3ON4,
2696        .type      = AVMEDIA_TYPE_AUDIO,
2697        .name      = "mp3on4",
2698        .long_name = NULL_IF_CONFIG_SMALL("MP3onMP4"),
2699        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2700    },
2701    {
2702        .id        = AV_CODEC_ID_SHORTEN,
2703        .type      = AVMEDIA_TYPE_AUDIO,
2704        .name      = "shorten",
2705        .long_name = NULL_IF_CONFIG_SMALL("Shorten"),
2706        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
2707    },
2708    {
2709        .id        = AV_CODEC_ID_ALAC,
2710        .type      = AVMEDIA_TYPE_AUDIO,
2711        .name      = "alac",
2712        .long_name = NULL_IF_CONFIG_SMALL("ALAC (Apple Lossless Audio Codec)"),
2713        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
2714    },
2715    {
2716        .id        = AV_CODEC_ID_WESTWOOD_SND1,
2717        .type      = AVMEDIA_TYPE_AUDIO,
2718        .name      = "westwood_snd1",
2719        .long_name = NULL_IF_CONFIG_SMALL("Westwood Audio (SND1)"),
2720        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2721    },
2722    {
2723        .id        = AV_CODEC_ID_GSM,
2724        .type      = AVMEDIA_TYPE_AUDIO,
2725        .name      = "gsm",
2726        .long_name = NULL_IF_CONFIG_SMALL("GSM"),
2727        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2728    },
2729    {
2730        .id        = AV_CODEC_ID_QDM2,
2731        .type      = AVMEDIA_TYPE_AUDIO,
2732        .name      = "qdm2",
2733        .long_name = NULL_IF_CONFIG_SMALL("QDesign Music Codec 2"),
2734        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2735    },
2736    {
2737        .id        = AV_CODEC_ID_COOK,
2738        .type      = AVMEDIA_TYPE_AUDIO,
2739        .name      = "cook",
2740        .long_name = NULL_IF_CONFIG_SMALL("Cook / Cooker / Gecko (RealAudio G2)"),
2741        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2742    },
2743    {
2744        .id        = AV_CODEC_ID_TRUESPEECH,
2745        .type      = AVMEDIA_TYPE_AUDIO,
2746        .name      = "truespeech",
2747        .long_name = NULL_IF_CONFIG_SMALL("DSP Group TrueSpeech"),
2748        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2749    },
2750    {
2751        .id        = AV_CODEC_ID_TTA,
2752        .type      = AVMEDIA_TYPE_AUDIO,
2753        .name      = "tta",
2754        .long_name = NULL_IF_CONFIG_SMALL("TTA (True Audio)"),
2755        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
2756    },
2757    {
2758        .id        = AV_CODEC_ID_SMACKAUDIO,
2759        .type      = AVMEDIA_TYPE_AUDIO,
2760        .name      = "smackaudio",
2761        .long_name = NULL_IF_CONFIG_SMALL("Smacker audio"),
2762        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2763    },
2764    {
2765        .id        = AV_CODEC_ID_QCELP,
2766        .type      = AVMEDIA_TYPE_AUDIO,
2767        .name      = "qcelp",
2768        .long_name = NULL_IF_CONFIG_SMALL("QCELP / PureVoice"),
2769        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2770    },
2771    {
2772        .id        = AV_CODEC_ID_WAVPACK,
2773        .type      = AVMEDIA_TYPE_AUDIO,
2774        .name      = "wavpack",
2775        .long_name = NULL_IF_CONFIG_SMALL("WavPack"),
2776        .props     = AV_CODEC_PROP_INTRA_ONLY |
2777                     AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_LOSSLESS,
2778    },
2779    {
2780        .id        = AV_CODEC_ID_DSICINAUDIO,
2781        .type      = AVMEDIA_TYPE_AUDIO,
2782        .name      = "dsicinaudio",
2783        .long_name = NULL_IF_CONFIG_SMALL("Delphine Software International CIN audio"),
2784        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2785    },
2786    {
2787        .id        = AV_CODEC_ID_IMC,
2788        .type      = AVMEDIA_TYPE_AUDIO,
2789        .name      = "imc",
2790        .long_name = NULL_IF_CONFIG_SMALL("IMC (Intel Music Coder)"),
2791        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2792    },
2793    {
2794        .id        = AV_CODEC_ID_MUSEPACK7,
2795        .type      = AVMEDIA_TYPE_AUDIO,
2796        .name      = "musepack7",
2797        .long_name = NULL_IF_CONFIG_SMALL("Musepack SV7"),
2798        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2799    },
2800    {
2801        .id        = AV_CODEC_ID_MLP,
2802        .type      = AVMEDIA_TYPE_AUDIO,
2803        .name      = "mlp",
2804        .long_name = NULL_IF_CONFIG_SMALL("MLP (Meridian Lossless Packing)"),
2805        .props     = AV_CODEC_PROP_LOSSLESS,
2806    },
2807    {
2808        .id        = AV_CODEC_ID_GSM_MS,
2809        .type      = AVMEDIA_TYPE_AUDIO,
2810        .name      = "gsm_ms",
2811        .long_name = NULL_IF_CONFIG_SMALL("GSM Microsoft variant"),
2812        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2813    },
2814    {
2815        .id        = AV_CODEC_ID_ATRAC3,
2816        .type      = AVMEDIA_TYPE_AUDIO,
2817        .name      = "atrac3",
2818        .long_name = NULL_IF_CONFIG_SMALL("ATRAC3 (Adaptive TRansform Acoustic Coding 3)"),
2819        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2820    },
2821    {
2822        .id        = AV_CODEC_ID_APE,
2823        .type      = AVMEDIA_TYPE_AUDIO,
2824        .name      = "ape",
2825        .long_name = NULL_IF_CONFIG_SMALL("Monkey's Audio"),
2826        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
2827    },
2828    {
2829        .id        = AV_CODEC_ID_NELLYMOSER,
2830        .type      = AVMEDIA_TYPE_AUDIO,
2831        .name      = "nellymoser",
2832        .long_name = NULL_IF_CONFIG_SMALL("Nellymoser Asao"),
2833        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2834    },
2835    {
2836        .id        = AV_CODEC_ID_MUSEPACK8,
2837        .type      = AVMEDIA_TYPE_AUDIO,
2838        .name      = "musepack8",
2839        .long_name = NULL_IF_CONFIG_SMALL("Musepack SV8"),
2840        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2841    },
2842    {
2843        .id        = AV_CODEC_ID_SPEEX,
2844        .type      = AVMEDIA_TYPE_AUDIO,
2845        .name      = "speex",
2846        .long_name = NULL_IF_CONFIG_SMALL("Speex"),
2847        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2848    },
2849    {
2850        .id        = AV_CODEC_ID_WMAVOICE,
2851        .type      = AVMEDIA_TYPE_AUDIO,
2852        .name      = "wmavoice",
2853        .long_name = NULL_IF_CONFIG_SMALL("Windows Media Audio Voice"),
2854        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2855    },
2856    {
2857        .id        = AV_CODEC_ID_WMAPRO,
2858        .type      = AVMEDIA_TYPE_AUDIO,
2859        .name      = "wmapro",
2860        .long_name = NULL_IF_CONFIG_SMALL("Windows Media Audio 9 Professional"),
2861        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2862    },
2863    {
2864        .id        = AV_CODEC_ID_WMALOSSLESS,
2865        .type      = AVMEDIA_TYPE_AUDIO,
2866        .name      = "wmalossless",
2867        .long_name = NULL_IF_CONFIG_SMALL("Windows Media Audio Lossless"),
2868        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
2869    },
2870    {
2871        .id        = AV_CODEC_ID_ATRAC3P,
2872        .type      = AVMEDIA_TYPE_AUDIO,
2873        .name      = "atrac3p",
2874        .long_name = NULL_IF_CONFIG_SMALL("ATRAC3+ (Adaptive TRansform Acoustic Coding 3+)"),
2875        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2876    },
2877    {
2878        .id        = AV_CODEC_ID_EAC3,
2879        .type      = AVMEDIA_TYPE_AUDIO,
2880        .name      = "eac3",
2881        .long_name = NULL_IF_CONFIG_SMALL("ATSC A/52B (AC-3, E-AC-3)"),
2882        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2883    },
2884    {
2885        .id        = AV_CODEC_ID_SIPR,
2886        .type      = AVMEDIA_TYPE_AUDIO,
2887        .name      = "sipr",
2888        .long_name = NULL_IF_CONFIG_SMALL("RealAudio SIPR / ACELP.NET"),
2889        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2890    },
2891    {
2892        .id        = AV_CODEC_ID_MP1,
2893        .type      = AVMEDIA_TYPE_AUDIO,
2894        .name      = "mp1",
2895        .long_name = NULL_IF_CONFIG_SMALL("MP1 (MPEG audio layer 1)"),
2896        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2897    },
2898    {
2899        .id        = AV_CODEC_ID_TWINVQ,
2900        .type      = AVMEDIA_TYPE_AUDIO,
2901        .name      = "twinvq",
2902        .long_name = NULL_IF_CONFIG_SMALL("VQF TwinVQ"),
2903        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2904    },
2905    {
2906        .id        = AV_CODEC_ID_TRUEHD,
2907        .type      = AVMEDIA_TYPE_AUDIO,
2908        .name      = "truehd",
2909        .long_name = NULL_IF_CONFIG_SMALL("TrueHD"),
2910        .props     = AV_CODEC_PROP_LOSSLESS,
2911    },
2912    {
2913        .id        = AV_CODEC_ID_MP4ALS,
2914        .type      = AVMEDIA_TYPE_AUDIO,
2915        .name      = "mp4als",
2916        .long_name = NULL_IF_CONFIG_SMALL("MPEG-4 Audio Lossless Coding (ALS)"),
2917        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
2918    },
2919    {
2920        .id        = AV_CODEC_ID_ATRAC1,
2921        .type      = AVMEDIA_TYPE_AUDIO,
2922        .name      = "atrac1",
2923        .long_name = NULL_IF_CONFIG_SMALL("ATRAC1 (Adaptive TRansform Acoustic Coding)"),
2924        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2925    },
2926    {
2927        .id        = AV_CODEC_ID_BINKAUDIO_RDFT,
2928        .type      = AVMEDIA_TYPE_AUDIO,
2929        .name      = "binkaudio_rdft",
2930        .long_name = NULL_IF_CONFIG_SMALL("Bink Audio (RDFT)"),
2931        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2932    },
2933    {
2934        .id        = AV_CODEC_ID_BINKAUDIO_DCT,
2935        .type      = AVMEDIA_TYPE_AUDIO,
2936        .name      = "binkaudio_dct",
2937        .long_name = NULL_IF_CONFIG_SMALL("Bink Audio (DCT)"),
2938        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2939    },
2940    {
2941        .id        = AV_CODEC_ID_AAC_LATM,
2942        .type      = AVMEDIA_TYPE_AUDIO,
2943        .name      = "aac_latm",
2944        .long_name = NULL_IF_CONFIG_SMALL("AAC LATM (Advanced Audio Coding LATM syntax)"),
2945        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2946        .profiles  = NULL_IF_CONFIG_SMALL(ff_aac_profiles),
2947    },
2948    {
2949        .id        = AV_CODEC_ID_QDMC,
2950        .type      = AVMEDIA_TYPE_AUDIO,
2951        .name      = "qdmc",
2952        .long_name = NULL_IF_CONFIG_SMALL("QDesign Music"),
2953        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2954    },
2955    {
2956        .id        = AV_CODEC_ID_CELT,
2957        .type      = AVMEDIA_TYPE_AUDIO,
2958        .name      = "celt",
2959        .long_name = NULL_IF_CONFIG_SMALL("Constrained Energy Lapped Transform (CELT)"),
2960        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2961    },
2962    {
2963        .id        = AV_CODEC_ID_G723_1,
2964        .type      = AVMEDIA_TYPE_AUDIO,
2965        .name      = "g723_1",
2966        .long_name = NULL_IF_CONFIG_SMALL("G.723.1"),
2967        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2968    },
2969    {
2970        .id        = AV_CODEC_ID_G729,
2971        .type      = AVMEDIA_TYPE_AUDIO,
2972        .name      = "g729",
2973        .long_name = NULL_IF_CONFIG_SMALL("G.729"),
2974        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2975    },
2976    {
2977        .id        = AV_CODEC_ID_8SVX_EXP,
2978        .type      = AVMEDIA_TYPE_AUDIO,
2979        .name      = "8svx_exp",
2980        .long_name = NULL_IF_CONFIG_SMALL("8SVX exponential"),
2981        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2982    },
2983    {
2984        .id        = AV_CODEC_ID_8SVX_FIB,
2985        .type      = AVMEDIA_TYPE_AUDIO,
2986        .name      = "8svx_fib",
2987        .long_name = NULL_IF_CONFIG_SMALL("8SVX fibonacci"),
2988        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2989    },
2990    {
2991        .id        = AV_CODEC_ID_BMV_AUDIO,
2992        .type      = AVMEDIA_TYPE_AUDIO,
2993        .name      = "bmv_audio",
2994        .long_name = NULL_IF_CONFIG_SMALL("Discworld II BMV audio"),
2995        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
2996    },
2997    {
2998        .id        = AV_CODEC_ID_RALF,
2999        .type      = AVMEDIA_TYPE_AUDIO,
3000        .name      = "ralf",
3001        .long_name = NULL_IF_CONFIG_SMALL("RealAudio Lossless"),
3002        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
3003    },
3004    {
3005        .id        = AV_CODEC_ID_IAC,
3006        .type      = AVMEDIA_TYPE_AUDIO,
3007        .name      = "iac",
3008        .long_name = NULL_IF_CONFIG_SMALL("IAC (Indeo Audio Coder)"),
3009        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
3010    },
3011    {
3012        .id        = AV_CODEC_ID_ILBC,
3013        .type      = AVMEDIA_TYPE_AUDIO,
3014        .name      = "ilbc",
3015        .long_name = NULL_IF_CONFIG_SMALL("iLBC (Internet Low Bitrate Codec)"),
3016        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
3017    },
3018    {
3019        .id        = AV_CODEC_ID_OPUS,
3020        .type      = AVMEDIA_TYPE_AUDIO,
3021        .name      = "opus",
3022        .long_name = NULL_IF_CONFIG_SMALL("Opus (Opus Interactive Audio Codec)"),
3023        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
3024    },
3025    {
3026        .id        = AV_CODEC_ID_COMFORT_NOISE,
3027        .type      = AVMEDIA_TYPE_AUDIO,
3028        .name      = "comfortnoise",
3029        .long_name = NULL_IF_CONFIG_SMALL("RFC 3389 Comfort Noise"),
3030        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
3031    },
3032    {
3033        .id        = AV_CODEC_ID_TAK,
3034        .type      = AVMEDIA_TYPE_AUDIO,
3035        .name      = "tak",
3036        .long_name = NULL_IF_CONFIG_SMALL("TAK (Tom's lossless Audio Kompressor)"),
3037        .props     = AV_CODEC_PROP_LOSSLESS,
3038    },
3039    {
3040        .id        = AV_CODEC_ID_METASOUND,
3041        .type      = AVMEDIA_TYPE_AUDIO,
3042        .name      = "metasound",
3043        .long_name = NULL_IF_CONFIG_SMALL("Voxware MetaSound"),
3044        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
3045    },
3046    {
3047        .id        = AV_CODEC_ID_PAF_AUDIO,
3048        .type      = AVMEDIA_TYPE_AUDIO,
3049        .name      = "paf_audio",
3050        .long_name = NULL_IF_CONFIG_SMALL("Amazing Studio Packed Animation File Audio"),
3051        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
3052    },
3053    {
3054        .id        = AV_CODEC_ID_ON2AVC,
3055        .type      = AVMEDIA_TYPE_AUDIO,
3056        .name      = "avc",
3057        .long_name = NULL_IF_CONFIG_SMALL("On2 Audio for Video Codec"),
3058        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
3059    },
3060    {
3061        .id        = AV_CODEC_ID_DSS_SP,
3062        .type      = AVMEDIA_TYPE_AUDIO,
3063        .name      = "dss_sp",
3064        .long_name = NULL_IF_CONFIG_SMALL("Digital Speech Standard - Standard Play mode (DSS SP)"),
3065        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
3066    },
3067    {
3068        .id        = AV_CODEC_ID_CODEC2,
3069        .type      = AVMEDIA_TYPE_AUDIO,
3070        .name      = "codec2",
3071        .long_name = NULL_IF_CONFIG_SMALL("codec2 (very low bitrate speech codec)"),
3072        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
3073    },
3074    {
3075        .id        = AV_CODEC_ID_FFWAVESYNTH,
3076        .type      = AVMEDIA_TYPE_AUDIO,
3077        .name      = "wavesynth",
3078        .long_name = NULL_IF_CONFIG_SMALL("Wave synthesis pseudo-codec"),
3079        .props     = AV_CODEC_PROP_INTRA_ONLY,
3080    },
3081    {
3082        .id        = AV_CODEC_ID_SONIC,
3083        .type      = AVMEDIA_TYPE_AUDIO,
3084        .name      = "sonic",
3085        .long_name = NULL_IF_CONFIG_SMALL("Sonic"),
3086        .props     = AV_CODEC_PROP_INTRA_ONLY,
3087    },
3088    {
3089        .id        = AV_CODEC_ID_SONIC_LS,
3090        .type      = AVMEDIA_TYPE_AUDIO,
3091        .name      = "sonicls",
3092        .long_name = NULL_IF_CONFIG_SMALL("Sonic lossless"),
3093        .props     = AV_CODEC_PROP_INTRA_ONLY,
3094    },
3095    {
3096        .id        = AV_CODEC_ID_EVRC,
3097        .type      = AVMEDIA_TYPE_AUDIO,
3098        .name      = "evrc",
3099        .long_name = NULL_IF_CONFIG_SMALL("EVRC (Enhanced Variable Rate Codec)"),
3100        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
3101    },
3102    {
3103        .id        = AV_CODEC_ID_SMV,
3104        .type      = AVMEDIA_TYPE_AUDIO,
3105        .name      = "smv",
3106        .long_name = NULL_IF_CONFIG_SMALL("SMV (Selectable Mode Vocoder)"),
3107        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
3108    },
3109    {
3110        .id        = AV_CODEC_ID_DSD_LSBF,
3111        .type      = AVMEDIA_TYPE_AUDIO,
3112        .name      = "dsd_lsbf",
3113        .long_name = NULL_IF_CONFIG_SMALL("DSD (Direct Stream Digital), least significant bit first"),
3114        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
3115    },
3116    {
3117        .id        = AV_CODEC_ID_DSD_MSBF,
3118        .type      = AVMEDIA_TYPE_AUDIO,
3119        .name      = "dsd_msbf",
3120        .long_name = NULL_IF_CONFIG_SMALL("DSD (Direct Stream Digital), most significant bit first"),
3121        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
3122    },
3123    {
3124        .id        = AV_CODEC_ID_DSD_LSBF_PLANAR,
3125        .type      = AVMEDIA_TYPE_AUDIO,
3126        .name      = "dsd_lsbf_planar",
3127        .long_name = NULL_IF_CONFIG_SMALL("DSD (Direct Stream Digital), least significant bit first, planar"),
3128        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
3129    },
3130    {
3131        .id        = AV_CODEC_ID_DSD_MSBF_PLANAR,
3132        .type      = AVMEDIA_TYPE_AUDIO,
3133        .name      = "dsd_msbf_planar",
3134        .long_name = NULL_IF_CONFIG_SMALL("DSD (Direct Stream Digital), most significant bit first, planar"),
3135        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
3136    },
3137    {
3138        .id        = AV_CODEC_ID_4GV,
3139        .type      = AVMEDIA_TYPE_AUDIO,
3140        .name      = "4gv",
3141        .long_name = NULL_IF_CONFIG_SMALL("4GV (Fourth Generation Vocoder)"),
3142        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
3143    },
3144    {
3145        .id        = AV_CODEC_ID_INTERPLAY_ACM,
3146        .type      = AVMEDIA_TYPE_AUDIO,
3147        .name      = "interplayacm",
3148        .long_name = NULL_IF_CONFIG_SMALL("Interplay ACM"),
3149        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
3150    },
3151    {
3152        .id        = AV_CODEC_ID_XMA1,
3153        .type      = AVMEDIA_TYPE_AUDIO,
3154        .name      = "xma1",
3155        .long_name = NULL_IF_CONFIG_SMALL("Xbox Media Audio 1"),
3156        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
3157    },
3158    {
3159        .id        = AV_CODEC_ID_XMA2,
3160        .type      = AVMEDIA_TYPE_AUDIO,
3161        .name      = "xma2",
3162        .long_name = NULL_IF_CONFIG_SMALL("Xbox Media Audio 2"),
3163        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
3164    },
3165    {
3166        .id        = AV_CODEC_ID_DST,
3167        .type      = AVMEDIA_TYPE_AUDIO,
3168        .name      = "dst",
3169        .long_name = NULL_IF_CONFIG_SMALL("DST (Direct Stream Transfer)"),
3170        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
3171    },
3172    {
3173        .id        = AV_CODEC_ID_ATRAC3AL,
3174        .type      = AVMEDIA_TYPE_AUDIO,
3175        .name      = "atrac3al",
3176        .long_name = NULL_IF_CONFIG_SMALL("ATRAC3 AL (Adaptive TRansform Acoustic Coding 3 Advanced Lossless)"),
3177        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
3178    },
3179    {
3180        .id        = AV_CODEC_ID_ATRAC3PAL,
3181        .type      = AVMEDIA_TYPE_AUDIO,
3182        .name      = "atrac3pal",
3183        .long_name = NULL_IF_CONFIG_SMALL("ATRAC3+ AL (Adaptive TRansform Acoustic Coding 3+ Advanced Lossless)"),
3184        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
3185    },
3186    {
3187        .id        = AV_CODEC_ID_DOLBY_E,
3188        .type      = AVMEDIA_TYPE_AUDIO,
3189        .name      = "dolby_e",
3190        .long_name = NULL_IF_CONFIG_SMALL("Dolby E"),
3191        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
3192    },
3193    {
3194        .id        = AV_CODEC_ID_APTX,
3195        .type      = AVMEDIA_TYPE_AUDIO,
3196        .name      = "aptx",
3197        .long_name = NULL_IF_CONFIG_SMALL("aptX (Audio Processing Technology for Bluetooth)"),
3198        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
3199    },
3200    {
3201        .id        = AV_CODEC_ID_APTX_HD,
3202        .type      = AVMEDIA_TYPE_AUDIO,
3203        .name      = "aptx_hd",
3204        .long_name = NULL_IF_CONFIG_SMALL("aptX HD (Audio Processing Technology for Bluetooth)"),
3205        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
3206    },
3207    {
3208        .id        = AV_CODEC_ID_SBC,
3209        .type      = AVMEDIA_TYPE_AUDIO,
3210        .name      = "sbc",
3211        .long_name = NULL_IF_CONFIG_SMALL("SBC (low-complexity subband codec)"),
3212        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
3213    },
3214    {
3215        .id        = AV_CODEC_ID_ATRAC9,
3216        .type      = AVMEDIA_TYPE_AUDIO,
3217        .name      = "atrac9",
3218        .long_name = NULL_IF_CONFIG_SMALL("ATRAC9 (Adaptive TRansform Acoustic Coding 9)"),
3219        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
3220    },
3221    {
3222        .id        = AV_CODEC_ID_HCOM,
3223        .type      = AVMEDIA_TYPE_AUDIO,
3224        .name      = "hcom",
3225        .long_name = NULL_IF_CONFIG_SMALL("HCOM Audio"),
3226        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
3227    },
3228    {
3229        .id        = AV_CODEC_ID_ACELP_KELVIN,
3230        .type      = AVMEDIA_TYPE_AUDIO,
3231        .name      = "acelp.kelvin",
3232        .long_name = NULL_IF_CONFIG_SMALL("Sipro ACELP.KELVIN"),
3233        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
3234    },
3235    {
3236        .id        = AV_CODEC_ID_MPEGH_3D_AUDIO,
3237        .type      = AVMEDIA_TYPE_AUDIO,
3238        .name      = "mpegh_3d_audio",
3239        .long_name = NULL_IF_CONFIG_SMALL("MPEG-H 3D Audio"),
3240        .props     = AV_CODEC_PROP_LOSSY,
3241    },
3242    {
3243        .id        = AV_CODEC_ID_AVS3DA,
3244        .type      = AVMEDIA_TYPE_AUDIO,
3245        .name      = "avs_3da",
3246        .long_name = NULL_IF_CONFIG_SMALL("AVS3 Audio"),
3247        .props     = AV_CODEC_PROP_LOSSY,
3248    },
3249    {
3250        .id        = AV_CODEC_ID_SIREN,
3251        .type      = AVMEDIA_TYPE_AUDIO,
3252        .name      = "siren",
3253        .long_name = NULL_IF_CONFIG_SMALL("Siren"),
3254        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
3255    },
3256    {
3257        .id        = AV_CODEC_ID_HCA,
3258        .type      = AVMEDIA_TYPE_AUDIO,
3259        .name      = "hca",
3260        .long_name = NULL_IF_CONFIG_SMALL("CRI HCA"),
3261        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
3262    },
3263    {
3264        .id        = AV_CODEC_ID_FASTAUDIO,
3265        .type      = AVMEDIA_TYPE_AUDIO,
3266        .name      = "fastaudio",
3267        .long_name = NULL_IF_CONFIG_SMALL("MobiClip FastAudio"),
3268        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
3269    },
3270    {
3271        .id        = AV_CODEC_ID_MSNSIREN,
3272        .type      = AVMEDIA_TYPE_AUDIO,
3273        .name      = "msnsiren",
3274        .long_name = NULL_IF_CONFIG_SMALL("MSN Siren"),
3275        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY,
3276    },
3277    {
3278        .id        = AV_CODEC_ID_DFPWM,
3279        .type      = AVMEDIA_TYPE_AUDIO,
3280        .name      = "dfpwm",
3281        .long_name = NULL_IF_CONFIG_SMALL("DFPWM (Dynamic Filter Pulse Width Modulation)"),
3282        .props     = AV_CODEC_PROP_LOSSY,
3283    },
3284
3285    /* subtitle codecs */
3286    {
3287        .id        = AV_CODEC_ID_DVD_SUBTITLE,
3288        .type      = AVMEDIA_TYPE_SUBTITLE,
3289        .name      = "dvd_subtitle",
3290        .long_name = NULL_IF_CONFIG_SMALL("DVD subtitles"),
3291        .props     = AV_CODEC_PROP_BITMAP_SUB,
3292    },
3293    {
3294        .id        = AV_CODEC_ID_DVB_SUBTITLE,
3295        .type      = AVMEDIA_TYPE_SUBTITLE,
3296        .name      = "dvb_subtitle",
3297        .long_name = NULL_IF_CONFIG_SMALL("DVB subtitles"),
3298        .props     = AV_CODEC_PROP_BITMAP_SUB,
3299    },
3300    {
3301        .id        = AV_CODEC_ID_TEXT,
3302        .type      = AVMEDIA_TYPE_SUBTITLE,
3303        .name      = "text",
3304        .long_name = NULL_IF_CONFIG_SMALL("raw UTF-8 text"),
3305        .props     = AV_CODEC_PROP_TEXT_SUB,
3306    },
3307    {
3308        .id        = AV_CODEC_ID_XSUB,
3309        .type      = AVMEDIA_TYPE_SUBTITLE,
3310        .name      = "xsub",
3311        .long_name = NULL_IF_CONFIG_SMALL("XSUB"),
3312        .props     = AV_CODEC_PROP_BITMAP_SUB,
3313    },
3314    {
3315        .id        = AV_CODEC_ID_SSA,
3316        .type      = AVMEDIA_TYPE_SUBTITLE,
3317        .name      = "ssa",
3318        .long_name = NULL_IF_CONFIG_SMALL("SSA (SubStation Alpha) subtitle"),
3319        .props     = AV_CODEC_PROP_TEXT_SUB,
3320    },
3321    {
3322        .id        = AV_CODEC_ID_MOV_TEXT,
3323        .type      = AVMEDIA_TYPE_SUBTITLE,
3324        .name      = "mov_text",
3325        .long_name = NULL_IF_CONFIG_SMALL("MOV text"),
3326        .props     = AV_CODEC_PROP_TEXT_SUB,
3327    },
3328    {
3329        .id        = AV_CODEC_ID_HDMV_PGS_SUBTITLE,
3330        .type      = AVMEDIA_TYPE_SUBTITLE,
3331        .name      = "hdmv_pgs_subtitle",
3332        .long_name = NULL_IF_CONFIG_SMALL("HDMV Presentation Graphic Stream subtitles"),
3333        .props     = AV_CODEC_PROP_BITMAP_SUB,
3334    },
3335    {
3336        .id        = AV_CODEC_ID_DVB_TELETEXT,
3337        .type      = AVMEDIA_TYPE_SUBTITLE,
3338        .name      = "dvb_teletext",
3339        .long_name = NULL_IF_CONFIG_SMALL("DVB teletext"),
3340    },
3341    {
3342        .id        = AV_CODEC_ID_SRT,
3343        .type      = AVMEDIA_TYPE_SUBTITLE,
3344        .name      = "srt",
3345        .long_name = NULL_IF_CONFIG_SMALL("SubRip subtitle with embedded timing"),
3346        .props     = AV_CODEC_PROP_TEXT_SUB,
3347    },
3348    {
3349        .id        = AV_CODEC_ID_MICRODVD,
3350        .type      = AVMEDIA_TYPE_SUBTITLE,
3351        .name      = "microdvd",
3352        .long_name = NULL_IF_CONFIG_SMALL("MicroDVD subtitle"),
3353        .props     = AV_CODEC_PROP_TEXT_SUB,
3354    },
3355    {
3356        .id        = AV_CODEC_ID_EIA_608,
3357        .type      = AVMEDIA_TYPE_SUBTITLE,
3358        .name      = "eia_608",
3359        .long_name = NULL_IF_CONFIG_SMALL("EIA-608 closed captions"),
3360        .props     = AV_CODEC_PROP_TEXT_SUB,
3361    },
3362    {
3363        .id        = AV_CODEC_ID_JACOSUB,
3364        .type      = AVMEDIA_TYPE_SUBTITLE,
3365        .name      = "jacosub",
3366        .long_name = NULL_IF_CONFIG_SMALL("JACOsub subtitle"),
3367        .props     = AV_CODEC_PROP_TEXT_SUB,
3368    },
3369    {
3370        .id        = AV_CODEC_ID_SAMI,
3371        .type      = AVMEDIA_TYPE_SUBTITLE,
3372        .name      = "sami",
3373        .long_name = NULL_IF_CONFIG_SMALL("SAMI subtitle"),
3374        .props     = AV_CODEC_PROP_TEXT_SUB,
3375    },
3376    {
3377        .id        = AV_CODEC_ID_REALTEXT,
3378        .type      = AVMEDIA_TYPE_SUBTITLE,
3379        .name      = "realtext",
3380        .long_name = NULL_IF_CONFIG_SMALL("RealText subtitle"),
3381        .props     = AV_CODEC_PROP_TEXT_SUB,
3382    },
3383    {
3384        .id        = AV_CODEC_ID_STL,
3385        .type      = AVMEDIA_TYPE_SUBTITLE,
3386        .name      = "stl",
3387        .long_name = NULL_IF_CONFIG_SMALL("Spruce subtitle format"),
3388        .props     = AV_CODEC_PROP_TEXT_SUB,
3389    },
3390    {
3391        .id        = AV_CODEC_ID_SUBVIEWER1,
3392        .type      = AVMEDIA_TYPE_SUBTITLE,
3393        .name      = "subviewer1",
3394        .long_name = NULL_IF_CONFIG_SMALL("SubViewer v1 subtitle"),
3395        .props     = AV_CODEC_PROP_TEXT_SUB,
3396    },
3397    {
3398        .id        = AV_CODEC_ID_SUBVIEWER,
3399        .type      = AVMEDIA_TYPE_SUBTITLE,
3400        .name      = "subviewer",
3401        .long_name = NULL_IF_CONFIG_SMALL("SubViewer subtitle"),
3402        .props     = AV_CODEC_PROP_TEXT_SUB,
3403    },
3404    {
3405        .id        = AV_CODEC_ID_SUBRIP,
3406        .type      = AVMEDIA_TYPE_SUBTITLE,
3407        .name      = "subrip",
3408        .long_name = NULL_IF_CONFIG_SMALL("SubRip subtitle"),
3409        .props     = AV_CODEC_PROP_TEXT_SUB,
3410    },
3411    {
3412        .id        = AV_CODEC_ID_WEBVTT,
3413        .type      = AVMEDIA_TYPE_SUBTITLE,
3414        .name      = "webvtt",
3415        .long_name = NULL_IF_CONFIG_SMALL("WebVTT subtitle"),
3416        .props     = AV_CODEC_PROP_TEXT_SUB,
3417    },
3418    {
3419        .id        = AV_CODEC_ID_MPL2,
3420        .type      = AVMEDIA_TYPE_SUBTITLE,
3421        .name      = "mpl2",
3422        .long_name = NULL_IF_CONFIG_SMALL("MPL2 subtitle"),
3423        .props     = AV_CODEC_PROP_TEXT_SUB,
3424    },
3425    {
3426        .id        = AV_CODEC_ID_VPLAYER,
3427        .type      = AVMEDIA_TYPE_SUBTITLE,
3428        .name      = "vplayer",
3429        .long_name = NULL_IF_CONFIG_SMALL("VPlayer subtitle"),
3430        .props     = AV_CODEC_PROP_TEXT_SUB,
3431    },
3432    {
3433        .id        = AV_CODEC_ID_PJS,
3434        .type      = AVMEDIA_TYPE_SUBTITLE,
3435        .name      = "pjs",
3436        .long_name = NULL_IF_CONFIG_SMALL("PJS (Phoenix Japanimation Society) subtitle"),
3437        .props     = AV_CODEC_PROP_TEXT_SUB,
3438    },
3439    {
3440        .id        = AV_CODEC_ID_ASS,
3441        .type      = AVMEDIA_TYPE_SUBTITLE,
3442        .name      = "ass",
3443        .long_name = NULL_IF_CONFIG_SMALL("ASS (Advanced SSA) subtitle"),
3444        .props     = AV_CODEC_PROP_TEXT_SUB,
3445    },
3446    {
3447        .id        = AV_CODEC_ID_HDMV_TEXT_SUBTITLE,
3448        .type      = AVMEDIA_TYPE_SUBTITLE,
3449        .name      = "hdmv_text_subtitle",
3450        .long_name = NULL_IF_CONFIG_SMALL("HDMV Text subtitle"),
3451        .props     = AV_CODEC_PROP_TEXT_SUB,
3452    },
3453    {
3454        .id        = AV_CODEC_ID_TTML,
3455        .type      = AVMEDIA_TYPE_SUBTITLE,
3456        .name      = "ttml",
3457        .long_name = NULL_IF_CONFIG_SMALL("Timed Text Markup Language"),
3458        .props     = AV_CODEC_PROP_TEXT_SUB,
3459    },
3460    {
3461        .id        = AV_CODEC_ID_ARIB_CAPTION,
3462        .type      = AVMEDIA_TYPE_SUBTITLE,
3463        .name      = "arib_caption",
3464        .long_name = NULL_IF_CONFIG_SMALL("ARIB STD-B24 caption"),
3465        .props     = AV_CODEC_PROP_TEXT_SUB,
3466        .profiles  = NULL_IF_CONFIG_SMALL(ff_arib_caption_profiles),
3467    },
3468
3469    /* other kind of codecs and pseudo-codecs */
3470    {
3471        .id        = AV_CODEC_ID_TTF,
3472        .type      = AVMEDIA_TYPE_DATA,
3473        .name      = "ttf",
3474        .long_name = NULL_IF_CONFIG_SMALL("TrueType font"),
3475        .mime_types= MT("application/x-truetype-font", "application/x-font"),
3476    },
3477    {
3478        .id        = AV_CODEC_ID_SCTE_35,
3479        .type      = AVMEDIA_TYPE_DATA,
3480        .name      = "scte_35",
3481        .long_name = NULL_IF_CONFIG_SMALL("SCTE 35 Message Queue"),
3482    },
3483    {
3484        .id        = AV_CODEC_ID_EPG,
3485        .type      = AVMEDIA_TYPE_DATA,
3486        .name      = "epg",
3487        .long_name = NULL_IF_CONFIG_SMALL("Electronic Program Guide"),
3488    },
3489    {
3490        .id        = AV_CODEC_ID_BINTEXT,
3491        .type      = AVMEDIA_TYPE_VIDEO,
3492        .name      = "bintext",
3493        .long_name = NULL_IF_CONFIG_SMALL("Binary text"),
3494        .props     = AV_CODEC_PROP_INTRA_ONLY,
3495    },
3496    {
3497        .id        = AV_CODEC_ID_XBIN,
3498        .type      = AVMEDIA_TYPE_VIDEO,
3499        .name      = "xbin",
3500        .long_name = NULL_IF_CONFIG_SMALL("eXtended BINary text"),
3501        .props     = AV_CODEC_PROP_INTRA_ONLY,
3502    },
3503    {
3504        .id        = AV_CODEC_ID_IDF,
3505        .type      = AVMEDIA_TYPE_VIDEO,
3506        .name      = "idf",
3507        .long_name = NULL_IF_CONFIG_SMALL("iCEDraw text"),
3508        .props     = AV_CODEC_PROP_INTRA_ONLY,
3509    },
3510    {
3511        .id        = AV_CODEC_ID_OTF,
3512        .type      = AVMEDIA_TYPE_DATA,
3513        .name      = "otf",
3514        .long_name = NULL_IF_CONFIG_SMALL("OpenType font"),
3515        .mime_types= MT("application/vnd.ms-opentype"),
3516    },
3517    {
3518        .id        = AV_CODEC_ID_SMPTE_KLV,
3519        .type      = AVMEDIA_TYPE_DATA,
3520        .name      = "klv",
3521        .long_name = NULL_IF_CONFIG_SMALL("SMPTE 336M Key-Length-Value (KLV) metadata"),
3522    },
3523    {
3524        .id        = AV_CODEC_ID_DVD_NAV,
3525        .type      = AVMEDIA_TYPE_DATA,
3526        .name      = "dvd_nav_packet",
3527        .long_name = NULL_IF_CONFIG_SMALL("DVD Nav packet"),
3528    },
3529    {
3530        .id        = AV_CODEC_ID_TIMED_ID3,
3531        .type      = AVMEDIA_TYPE_DATA,
3532        .name      = "timed_id3",
3533        .long_name = NULL_IF_CONFIG_SMALL("timed ID3 metadata"),
3534    },
3535    {
3536        .id        = AV_CODEC_ID_BIN_DATA,
3537        .type      = AVMEDIA_TYPE_DATA,
3538        .name      = "bin_data",
3539        .long_name = NULL_IF_CONFIG_SMALL("binary data"),
3540        .mime_types= MT("application/octet-stream"),
3541    },
3542    {
3543        .id        = AV_CODEC_ID_MPEG2TS,
3544        .type      = AVMEDIA_TYPE_DATA,
3545        .name      = "mpegts",
3546        .long_name = NULL_IF_CONFIG_SMALL("raw MPEG-TS stream"),
3547        .mime_types= MT("application/MP2T"),
3548    },
3549    {
3550        .id        = AV_CODEC_ID_WRAPPED_AVFRAME,
3551        .type      = AVMEDIA_TYPE_VIDEO,
3552        .name      = "wrapped_avframe",
3553        .long_name = NULL_IF_CONFIG_SMALL("AVFrame to AVPacket passthrough"),
3554        .props     = AV_CODEC_PROP_LOSSLESS,
3555    },
3556};
3557
3558static int descriptor_compare(const void *key, const void *member)
3559{
3560    enum AVCodecID id = *(const enum AVCodecID *) key;
3561    const AVCodecDescriptor *desc = member;
3562
3563    return id - desc->id;
3564}
3565
3566const AVCodecDescriptor *avcodec_descriptor_get(enum AVCodecID id)
3567{
3568    return bsearch(&id, codec_descriptors, FF_ARRAY_ELEMS(codec_descriptors),
3569                   sizeof(codec_descriptors[0]), descriptor_compare);
3570}
3571
3572const AVCodecDescriptor *avcodec_descriptor_next(const AVCodecDescriptor *prev)
3573{
3574    if (!prev)
3575        return &codec_descriptors[0];
3576    if (prev - codec_descriptors < FF_ARRAY_ELEMS(codec_descriptors) - 1)
3577        return prev + 1;
3578    return NULL;
3579}
3580
3581const AVCodecDescriptor *avcodec_descriptor_get_by_name(const char *name)
3582{
3583    const AVCodecDescriptor *desc = NULL;
3584
3585    while ((desc = avcodec_descriptor_next(desc)))
3586        if (!strcmp(desc->name, name))
3587            return desc;
3588    return NULL;
3589}
3590
3591enum AVMediaType avcodec_get_type(enum AVCodecID codec_id)
3592{
3593    const AVCodecDescriptor *desc = avcodec_descriptor_get(codec_id);
3594    return desc ? desc->type : AVMEDIA_TYPE_UNKNOWN;
3595}
3596