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