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