avcodec: add ADPCM AICA decoder
[ffmpeg.git] / libavcodec / allcodecs.c
1 /*
2  * Provide registration of all codecs, parsers and bitstream filters for libavcodec.
3  * Copyright (c) 2002 Fabrice Bellard
4  *
5  * This file is part of FFmpeg.
6  *
7  * FFmpeg is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2.1 of the License, or (at your option) any later version.
11  *
12  * FFmpeg is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with FFmpeg; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20  */
21
22 /**
23  * @file
24  * Provide registration of all codecs, parsers and bitstream filters for libavcodec.
25  */
26
27 #include "config.h"
28 #include "avcodec.h"
29 #include "version.h"
30
31 #define REGISTER_HWACCEL(X, x)                                          \
32     {                                                                   \
33         extern AVHWAccel ff_##x##_hwaccel;                              \
34         if (CONFIG_##X##_HWACCEL)                                       \
35             av_register_hwaccel(&ff_##x##_hwaccel);                     \
36     }
37
38 #define REGISTER_ENCODER(X, x)                                          \
39     {                                                                   \
40         extern AVCodec ff_##x##_encoder;                                \
41         if (CONFIG_##X##_ENCODER)                                       \
42             avcodec_register(&ff_##x##_encoder);                        \
43     }
44
45 #define REGISTER_DECODER(X, x)                                          \
46     {                                                                   \
47         extern AVCodec ff_##x##_decoder;                                \
48         if (CONFIG_##X##_DECODER)                                       \
49             avcodec_register(&ff_##x##_decoder);                        \
50     }
51
52 #define REGISTER_ENCDEC(X, x) REGISTER_ENCODER(X, x); REGISTER_DECODER(X, x)
53
54 #define REGISTER_PARSER(X, x)                                           \
55     {                                                                   \
56         extern AVCodecParser ff_##x##_parser;                           \
57         if (CONFIG_##X##_PARSER)                                        \
58             av_register_codec_parser(&ff_##x##_parser);                 \
59     }
60
61 #define REGISTER_BSF(X, x)                                              \
62     {                                                                   \
63         extern AVBitStreamFilter ff_##x##_bsf;                          \
64         if (CONFIG_##X##_BSF)                                           \
65             av_register_bitstream_filter(&ff_##x##_bsf);                \
66     }
67
68 void avcodec_register_all(void)
69 {
70     static int initialized;
71
72     if (initialized)
73         return;
74     initialized = 1;
75
76     /* hardware accelerators */
77     REGISTER_HWACCEL(H263_VAAPI,        h263_vaapi);
78     REGISTER_HWACCEL(H263_VDPAU,        h263_vdpau);
79     REGISTER_HWACCEL(H263_VIDEOTOOLBOX, h263_videotoolbox);
80     REGISTER_HWACCEL(H264_D3D11VA,      h264_d3d11va);
81     REGISTER_HWACCEL(H264_DXVA2,        h264_dxva2);
82     REGISTER_HWACCEL(H264_MMAL,         h264_mmal);
83     REGISTER_HWACCEL(H264_QSV,          h264_qsv);
84     REGISTER_HWACCEL(H264_VAAPI,        h264_vaapi);
85     REGISTER_HWACCEL(H264_VDA,          h264_vda);
86     REGISTER_HWACCEL(H264_VDA_OLD,      h264_vda_old);
87     REGISTER_HWACCEL(H264_VDPAU,        h264_vdpau);
88     REGISTER_HWACCEL(H264_VIDEOTOOLBOX, h264_videotoolbox);
89     REGISTER_HWACCEL(HEVC_D3D11VA,      hevc_d3d11va);
90     REGISTER_HWACCEL(HEVC_DXVA2,        hevc_dxva2);
91     REGISTER_HWACCEL(HEVC_QSV,          hevc_qsv);
92     REGISTER_HWACCEL(HEVC_VAAPI,        hevc_vaapi);
93     REGISTER_HWACCEL(HEVC_VDPAU,        hevc_vdpau);
94     REGISTER_HWACCEL(MPEG1_XVMC,        mpeg1_xvmc);
95     REGISTER_HWACCEL(MPEG1_VDPAU,       mpeg1_vdpau);
96     REGISTER_HWACCEL(MPEG1_VIDEOTOOLBOX, mpeg1_videotoolbox);
97     REGISTER_HWACCEL(MPEG2_XVMC,        mpeg2_xvmc);
98     REGISTER_HWACCEL(MPEG2_D3D11VA,     mpeg2_d3d11va);
99     REGISTER_HWACCEL(MPEG2_DXVA2,       mpeg2_dxva2);
100     REGISTER_HWACCEL(MPEG2_MMAL,        mpeg2_mmal);
101     REGISTER_HWACCEL(MPEG2_QSV,         mpeg2_qsv);
102     REGISTER_HWACCEL(MPEG2_VAAPI,       mpeg2_vaapi);
103     REGISTER_HWACCEL(MPEG2_VDPAU,       mpeg2_vdpau);
104     REGISTER_HWACCEL(MPEG2_VIDEOTOOLBOX, mpeg2_videotoolbox);
105     REGISTER_HWACCEL(MPEG4_VAAPI,       mpeg4_vaapi);
106     REGISTER_HWACCEL(MPEG4_VDPAU,       mpeg4_vdpau);
107     REGISTER_HWACCEL(MPEG4_VIDEOTOOLBOX, mpeg4_videotoolbox);
108     REGISTER_HWACCEL(VC1_D3D11VA,       vc1_d3d11va);
109     REGISTER_HWACCEL(VC1_DXVA2,         vc1_dxva2);
110     REGISTER_HWACCEL(VC1_VAAPI,         vc1_vaapi);
111     REGISTER_HWACCEL(VC1_VDPAU,         vc1_vdpau);
112     REGISTER_HWACCEL(VC1_QSV,           vc1_qsv);
113     REGISTER_HWACCEL(WMV3_D3D11VA,      wmv3_d3d11va);
114     REGISTER_HWACCEL(WMV3_DXVA2,        wmv3_dxva2);
115     REGISTER_HWACCEL(WMV3_VAAPI,        wmv3_vaapi);
116     REGISTER_HWACCEL(WMV3_VDPAU,        wmv3_vdpau);
117
118     /* video codecs */
119     REGISTER_ENCODER(A64MULTI,          a64multi);
120     REGISTER_ENCODER(A64MULTI5,         a64multi5);
121     REGISTER_DECODER(AASC,              aasc);
122     REGISTER_DECODER(AIC,               aic);
123     REGISTER_ENCDEC (ALIAS_PIX,         alias_pix);
124     REGISTER_ENCDEC (AMV,               amv);
125     REGISTER_DECODER(ANM,               anm);
126     REGISTER_DECODER(ANSI,              ansi);
127     REGISTER_ENCDEC (APNG,              apng);
128     REGISTER_ENCDEC (ASV1,              asv1);
129     REGISTER_ENCDEC (ASV2,              asv2);
130     REGISTER_DECODER(AURA,              aura);
131     REGISTER_DECODER(AURA2,             aura2);
132     REGISTER_ENCDEC (AVRP,              avrp);
133     REGISTER_DECODER(AVRN,              avrn);
134     REGISTER_DECODER(AVS,               avs);
135     REGISTER_ENCDEC (AVUI,              avui);
136     REGISTER_ENCDEC (AYUV,              ayuv);
137     REGISTER_DECODER(BETHSOFTVID,       bethsoftvid);
138     REGISTER_DECODER(BFI,               bfi);
139     REGISTER_DECODER(BINK,              bink);
140     REGISTER_ENCDEC (BMP,               bmp);
141     REGISTER_DECODER(BMV_VIDEO,         bmv_video);
142     REGISTER_DECODER(BRENDER_PIX,       brender_pix);
143     REGISTER_DECODER(C93,               c93);
144     REGISTER_DECODER(CAVS,              cavs);
145     REGISTER_DECODER(CDGRAPHICS,        cdgraphics);
146     REGISTER_DECODER(CDXL,              cdxl);
147     REGISTER_ENCDEC (CINEPAK,           cinepak);
148     REGISTER_ENCDEC (CLJR,              cljr);
149     REGISTER_DECODER(CLLC,              cllc);
150     REGISTER_ENCDEC (COMFORTNOISE,      comfortnoise);
151     REGISTER_DECODER(CPIA,              cpia);
152     REGISTER_DECODER(CSCD,              cscd);
153     REGISTER_DECODER(CYUV,              cyuv);
154     REGISTER_DECODER(DDS,               dds);
155     REGISTER_DECODER(DFA,               dfa);
156     REGISTER_DECODER(DIRAC,             dirac);
157     REGISTER_ENCDEC (DNXHD,             dnxhd);
158     REGISTER_ENCDEC (DPX,               dpx);
159     REGISTER_DECODER(DSICINVIDEO,       dsicinvideo);
160     REGISTER_ENCDEC (DVVIDEO,           dvvideo);
161     REGISTER_DECODER(DXA,               dxa);
162     REGISTER_DECODER(DXTORY,            dxtory);
163     REGISTER_DECODER(DXV,               dxv);
164     REGISTER_DECODER(EACMV,             eacmv);
165     REGISTER_DECODER(EAMAD,             eamad);
166     REGISTER_DECODER(EATGQ,             eatgq);
167     REGISTER_DECODER(EATGV,             eatgv);
168     REGISTER_DECODER(EATQI,             eatqi);
169     REGISTER_DECODER(EIGHTBPS,          eightbps);
170     REGISTER_DECODER(EIGHTSVX_EXP,      eightsvx_exp);
171     REGISTER_DECODER(EIGHTSVX_FIB,      eightsvx_fib);
172     REGISTER_DECODER(ESCAPE124,         escape124);
173     REGISTER_DECODER(ESCAPE130,         escape130);
174     REGISTER_DECODER(EXR,               exr);
175     REGISTER_ENCDEC (FFV1,              ffv1);
176     REGISTER_ENCDEC (FFVHUFF,           ffvhuff);
177     REGISTER_DECODER(FIC,               fic);
178     REGISTER_ENCDEC (FLASHSV,           flashsv);
179     REGISTER_ENCDEC (FLASHSV2,          flashsv2);
180     REGISTER_DECODER(FLIC,              flic);
181     REGISTER_ENCDEC (FLV,               flv);
182     REGISTER_DECODER(FOURXM,            fourxm);
183     REGISTER_DECODER(FRAPS,             fraps);
184     REGISTER_DECODER(FRWU,              frwu);
185     REGISTER_DECODER(G2M,               g2m);
186     REGISTER_ENCDEC (GIF,               gif);
187     REGISTER_ENCDEC (H261,              h261);
188     REGISTER_ENCDEC (H263,              h263);
189     REGISTER_DECODER(H263I,             h263i);
190     REGISTER_ENCDEC (H263P,             h263p);
191     REGISTER_DECODER(H264,              h264);
192     REGISTER_DECODER(H264_CRYSTALHD,    h264_crystalhd);
193     REGISTER_DECODER(H264_MMAL,         h264_mmal);
194     REGISTER_DECODER(H264_QSV,          h264_qsv);
195     REGISTER_DECODER(H264_VDA,          h264_vda);
196 #if FF_API_VDPAU
197     REGISTER_DECODER(H264_VDPAU,        h264_vdpau);
198 #endif
199     REGISTER_ENCDEC (HAP,               hap);
200     REGISTER_DECODER(HEVC,              hevc);
201     REGISTER_DECODER(HEVC_QSV,          hevc_qsv);
202     REGISTER_DECODER(HNM4_VIDEO,        hnm4_video);
203     REGISTER_DECODER(HQ_HQA,            hq_hqa);
204     REGISTER_DECODER(HQX,               hqx);
205     REGISTER_ENCDEC (HUFFYUV,           huffyuv);
206     REGISTER_DECODER(IDCIN,             idcin);
207     REGISTER_DECODER(IFF_ILBM,          iff_ilbm);
208     REGISTER_DECODER(INDEO2,            indeo2);
209     REGISTER_DECODER(INDEO3,            indeo3);
210     REGISTER_DECODER(INDEO4,            indeo4);
211     REGISTER_DECODER(INDEO5,            indeo5);
212     REGISTER_DECODER(INTERPLAY_VIDEO,   interplay_video);
213     REGISTER_ENCDEC (JPEG2000,          jpeg2000);
214     REGISTER_ENCDEC (JPEGLS,            jpegls);
215     REGISTER_DECODER(JV,                jv);
216     REGISTER_DECODER(KGV1,              kgv1);
217     REGISTER_DECODER(KMVC,              kmvc);
218     REGISTER_DECODER(LAGARITH,          lagarith);
219     REGISTER_ENCODER(LJPEG,             ljpeg);
220     REGISTER_DECODER(LOCO,              loco);
221     REGISTER_DECODER(MDEC,              mdec);
222     REGISTER_DECODER(MIMIC,             mimic);
223     REGISTER_ENCDEC (MJPEG,             mjpeg);
224     REGISTER_DECODER(MJPEGB,            mjpegb);
225     REGISTER_DECODER(MMVIDEO,           mmvideo);
226     REGISTER_DECODER(MOTIONPIXELS,      motionpixels);
227 #if FF_API_XVMC
228     REGISTER_DECODER(MPEG_XVMC,         mpeg_xvmc);
229 #endif /* FF_API_XVMC */
230     REGISTER_ENCDEC (MPEG1VIDEO,        mpeg1video);
231     REGISTER_ENCDEC (MPEG2VIDEO,        mpeg2video);
232     REGISTER_ENCDEC (MPEG4,             mpeg4);
233     REGISTER_DECODER(MPEG4_CRYSTALHD,   mpeg4_crystalhd);
234 #if FF_API_VDPAU
235     REGISTER_DECODER(MPEG4_VDPAU,       mpeg4_vdpau);
236 #endif
237     REGISTER_DECODER(MPEGVIDEO,         mpegvideo);
238 #if FF_API_VDPAU
239     REGISTER_DECODER(MPEG_VDPAU,        mpeg_vdpau);
240     REGISTER_DECODER(MPEG1_VDPAU,       mpeg1_vdpau);
241 #endif
242     REGISTER_DECODER(MPEG2_MMAL,        mpeg2_mmal);
243     REGISTER_DECODER(MPEG2_CRYSTALHD,   mpeg2_crystalhd);
244     REGISTER_DECODER(MPEG2_QSV,         mpeg2_qsv);
245     REGISTER_DECODER(MSA1,              msa1);
246     REGISTER_DECODER(MSMPEG4_CRYSTALHD, msmpeg4_crystalhd);
247     REGISTER_DECODER(MSMPEG4V1,         msmpeg4v1);
248     REGISTER_ENCDEC (MSMPEG4V2,         msmpeg4v2);
249     REGISTER_ENCDEC (MSMPEG4V3,         msmpeg4v3);
250     REGISTER_DECODER(MSRLE,             msrle);
251     REGISTER_DECODER(MSS1,              mss1);
252     REGISTER_DECODER(MSS2,              mss2);
253     REGISTER_ENCDEC (MSVIDEO1,          msvideo1);
254     REGISTER_DECODER(MSZH,              mszh);
255     REGISTER_DECODER(MTS2,              mts2);
256     REGISTER_DECODER(MVC1,              mvc1);
257     REGISTER_DECODER(MVC2,              mvc2);
258     REGISTER_DECODER(MXPEG,             mxpeg);
259     REGISTER_DECODER(NUV,               nuv);
260     REGISTER_DECODER(PAF_VIDEO,         paf_video);
261     REGISTER_ENCDEC (PAM,               pam);
262     REGISTER_ENCDEC (PBM,               pbm);
263     REGISTER_ENCDEC (PCX,               pcx);
264     REGISTER_ENCDEC (PGM,               pgm);
265     REGISTER_ENCDEC (PGMYUV,            pgmyuv);
266     REGISTER_DECODER(PICTOR,            pictor);
267     REGISTER_ENCDEC (PNG,               png);
268     REGISTER_ENCDEC (PPM,               ppm);
269     REGISTER_ENCDEC (PRORES,            prores);
270     REGISTER_ENCODER(PRORES_AW,         prores_aw);
271     REGISTER_ENCODER(PRORES_KS,         prores_ks);
272     REGISTER_DECODER(PRORES_LGPL,       prores_lgpl);
273     REGISTER_DECODER(PTX,               ptx);
274     REGISTER_DECODER(QDRAW,             qdraw);
275     REGISTER_DECODER(QPEG,              qpeg);
276     REGISTER_ENCDEC (QTRLE,             qtrle);
277     REGISTER_ENCDEC (R10K,              r10k);
278     REGISTER_ENCDEC (R210,              r210);
279     REGISTER_ENCDEC (RAWVIDEO,          rawvideo);
280     REGISTER_DECODER(RL2,               rl2);
281     REGISTER_ENCDEC (ROQ,               roq);
282     REGISTER_DECODER(RPZA,              rpza);
283     REGISTER_DECODER(RSCC,              rscc);
284     REGISTER_ENCDEC (RV10,              rv10);
285     REGISTER_ENCDEC (RV20,              rv20);
286     REGISTER_DECODER(RV30,              rv30);
287     REGISTER_DECODER(RV40,              rv40);
288     REGISTER_ENCDEC (S302M,             s302m);
289     REGISTER_DECODER(SANM,              sanm);
290     REGISTER_DECODER(SCREENPRESSO,      screenpresso);
291     REGISTER_DECODER(SDX2_DPCM,         sdx2_dpcm);
292     REGISTER_ENCDEC (SGI,               sgi);
293     REGISTER_DECODER(SGIRLE,            sgirle);
294     REGISTER_DECODER(SMACKER,           smacker);
295     REGISTER_DECODER(SMC,               smc);
296     REGISTER_DECODER(SMVJPEG,           smvjpeg);
297     REGISTER_ENCDEC (SNOW,              snow);
298     REGISTER_DECODER(SP5X,              sp5x);
299     REGISTER_ENCDEC (SUNRAST,           sunrast);
300     REGISTER_ENCDEC (SVQ1,              svq1);
301     REGISTER_DECODER(SVQ3,              svq3);
302     REGISTER_ENCDEC (TARGA,             targa);
303     REGISTER_DECODER(TARGA_Y216,        targa_y216);
304     REGISTER_DECODER(TDSC,              tdsc);
305     REGISTER_DECODER(THEORA,            theora);
306     REGISTER_DECODER(THP,               thp);
307     REGISTER_DECODER(TIERTEXSEQVIDEO,   tiertexseqvideo);
308     REGISTER_ENCDEC (TIFF,              tiff);
309     REGISTER_DECODER(TMV,               tmv);
310     REGISTER_DECODER(TRUEMOTION1,       truemotion1);
311     REGISTER_DECODER(TRUEMOTION2,       truemotion2);
312     REGISTER_DECODER(TSCC,              tscc);
313     REGISTER_DECODER(TSCC2,             tscc2);
314     REGISTER_DECODER(TXD,               txd);
315     REGISTER_DECODER(ULTI,              ulti);
316     REGISTER_ENCDEC (UTVIDEO,           utvideo);
317     REGISTER_ENCDEC (V210,              v210);
318     REGISTER_DECODER(V210X,             v210x);
319     REGISTER_ENCDEC (V308,              v308);
320     REGISTER_ENCDEC (V408,              v408);
321     REGISTER_ENCDEC (V410,              v410);
322     REGISTER_DECODER(VB,                vb);
323     REGISTER_DECODER(VBLE,              vble);
324     REGISTER_DECODER(VC1,               vc1);
325     REGISTER_DECODER(VC1_CRYSTALHD,     vc1_crystalhd);
326 #if FF_API_VDPAU
327     REGISTER_DECODER(VC1_VDPAU,         vc1_vdpau);
328 #endif
329     REGISTER_DECODER(VC1IMAGE,          vc1image);
330     REGISTER_DECODER(VC1_QSV,           vc1_qsv);
331     REGISTER_DECODER(VCR1,              vcr1);
332     REGISTER_DECODER(VMDVIDEO,          vmdvideo);
333     REGISTER_DECODER(VMNC,              vmnc);
334     REGISTER_DECODER(VP3,               vp3);
335     REGISTER_DECODER(VP5,               vp5);
336     REGISTER_DECODER(VP6,               vp6);
337     REGISTER_DECODER(VP6A,              vp6a);
338     REGISTER_DECODER(VP6F,              vp6f);
339     REGISTER_DECODER(VP7,               vp7);
340     REGISTER_DECODER(VP8,               vp8);
341     REGISTER_DECODER(VP9,               vp9);
342     REGISTER_DECODER(VQA,               vqa);
343     REGISTER_DECODER(WEBP,              webp);
344     REGISTER_ENCODER(WRAPPED_AVFRAME,   wrapped_avframe);
345     REGISTER_ENCDEC (WMV1,              wmv1);
346     REGISTER_ENCDEC (WMV2,              wmv2);
347     REGISTER_DECODER(WMV3,              wmv3);
348     REGISTER_DECODER(WMV3_CRYSTALHD,    wmv3_crystalhd);
349 #if FF_API_VDPAU
350     REGISTER_DECODER(WMV3_VDPAU,        wmv3_vdpau);
351 #endif
352     REGISTER_DECODER(WMV3IMAGE,         wmv3image);
353     REGISTER_DECODER(WNV1,              wnv1);
354     REGISTER_DECODER(XAN_WC3,           xan_wc3);
355     REGISTER_DECODER(XAN_WC4,           xan_wc4);
356     REGISTER_ENCDEC (XBM,               xbm);
357     REGISTER_ENCDEC (XFACE,             xface);
358     REGISTER_DECODER(XL,                xl);
359     REGISTER_ENCDEC (XWD,               xwd);
360     REGISTER_ENCDEC (Y41P,              y41p);
361     REGISTER_DECODER(YOP,               yop);
362     REGISTER_ENCDEC (YUV4,              yuv4);
363     REGISTER_DECODER(ZERO12V,           zero12v);
364     REGISTER_DECODER(ZEROCODEC,         zerocodec);
365     REGISTER_ENCDEC (ZLIB,              zlib);
366     REGISTER_ENCDEC (ZMBV,              zmbv);
367
368     /* audio codecs */
369     REGISTER_ENCDEC (AAC,               aac);
370     REGISTER_DECODER(AAC_FIXED,         aac_fixed);
371     REGISTER_DECODER(AAC_LATM,          aac_latm);
372     REGISTER_ENCDEC (AC3,               ac3);
373     REGISTER_ENCDEC (AC3_FIXED,         ac3_fixed);
374     REGISTER_ENCDEC (ALAC,              alac);
375     REGISTER_DECODER(ALS,               als);
376     REGISTER_DECODER(AMRNB,             amrnb);
377     REGISTER_DECODER(AMRWB,             amrwb);
378     REGISTER_DECODER(APE,               ape);
379     REGISTER_DECODER(ATRAC1,            atrac1);
380     REGISTER_DECODER(ATRAC3,            atrac3);
381     REGISTER_DECODER(ATRAC3P,           atrac3p);
382     REGISTER_DECODER(BINKAUDIO_DCT,     binkaudio_dct);
383     REGISTER_DECODER(BINKAUDIO_RDFT,    binkaudio_rdft);
384     REGISTER_DECODER(BMV_AUDIO,         bmv_audio);
385     REGISTER_DECODER(COOK,              cook);
386     REGISTER_ENCDEC (DCA,               dca);
387     REGISTER_DECODER(DSD_LSBF,          dsd_lsbf);
388     REGISTER_DECODER(DSD_MSBF,          dsd_msbf);
389     REGISTER_DECODER(DSD_LSBF_PLANAR,   dsd_lsbf_planar);
390     REGISTER_DECODER(DSD_MSBF_PLANAR,   dsd_msbf_planar);
391     REGISTER_DECODER(DSICINAUDIO,       dsicinaudio);
392     REGISTER_DECODER(DSS_SP,            dss_sp);
393     REGISTER_ENCDEC (EAC3,              eac3);
394     REGISTER_DECODER(EVRC,              evrc);
395     REGISTER_DECODER(FFWAVESYNTH,       ffwavesynth);
396     REGISTER_ENCDEC (FLAC,              flac);
397     REGISTER_ENCDEC (G723_1,            g723_1);
398     REGISTER_DECODER(G729,              g729);
399     REGISTER_DECODER(GSM,               gsm);
400     REGISTER_DECODER(GSM_MS,            gsm_ms);
401     REGISTER_DECODER(IAC,               iac);
402     REGISTER_DECODER(IMC,               imc);
403     REGISTER_DECODER(MACE3,             mace3);
404     REGISTER_DECODER(MACE6,             mace6);
405     REGISTER_DECODER(METASOUND,         metasound);
406     REGISTER_DECODER(MLP,               mlp);
407     REGISTER_DECODER(MP1,               mp1);
408     REGISTER_DECODER(MP1FLOAT,          mp1float);
409     REGISTER_ENCDEC (MP2,               mp2);
410     REGISTER_DECODER(MP2FLOAT,          mp2float);
411     REGISTER_ENCODER(MP2FIXED,          mp2fixed);
412     REGISTER_DECODER(MP3,               mp3);
413     REGISTER_DECODER(MP3FLOAT,          mp3float);
414     REGISTER_DECODER(MP3ADU,            mp3adu);
415     REGISTER_DECODER(MP3ADUFLOAT,       mp3adufloat);
416     REGISTER_DECODER(MP3ON4,            mp3on4);
417     REGISTER_DECODER(MP3ON4FLOAT,       mp3on4float);
418     REGISTER_DECODER(MPC7,              mpc7);
419     REGISTER_DECODER(MPC8,              mpc8);
420     REGISTER_ENCDEC (NELLYMOSER,        nellymoser);
421     REGISTER_DECODER(ON2AVC,            on2avc);
422     REGISTER_DECODER(OPUS,              opus);
423     REGISTER_DECODER(PAF_AUDIO,         paf_audio);
424     REGISTER_DECODER(QCELP,             qcelp);
425     REGISTER_DECODER(QDM2,              qdm2);
426     REGISTER_ENCDEC (RA_144,            ra_144);
427     REGISTER_DECODER(RA_288,            ra_288);
428     REGISTER_DECODER(RALF,              ralf);
429     REGISTER_DECODER(SHORTEN,           shorten);
430     REGISTER_DECODER(SIPR,              sipr);
431     REGISTER_DECODER(SMACKAUD,          smackaud);
432     REGISTER_ENCDEC (SONIC,             sonic);
433     REGISTER_ENCODER(SONIC_LS,          sonic_ls);
434     REGISTER_DECODER(TAK,               tak);
435     REGISTER_DECODER(TRUEHD,            truehd);
436     REGISTER_DECODER(TRUESPEECH,        truespeech);
437     REGISTER_ENCDEC (TTA,               tta);
438     REGISTER_DECODER(TWINVQ,            twinvq);
439     REGISTER_DECODER(VMDAUDIO,          vmdaudio);
440     REGISTER_ENCDEC (VORBIS,            vorbis);
441     REGISTER_ENCDEC (WAVPACK,           wavpack);
442     REGISTER_DECODER(WMALOSSLESS,       wmalossless);
443     REGISTER_DECODER(WMAPRO,            wmapro);
444     REGISTER_ENCDEC (WMAV1,             wmav1);
445     REGISTER_ENCDEC (WMAV2,             wmav2);
446     REGISTER_DECODER(WMAVOICE,          wmavoice);
447     REGISTER_DECODER(WS_SND1,           ws_snd1);
448
449     /* PCM codecs */
450     REGISTER_ENCDEC (PCM_ALAW,          pcm_alaw);
451     REGISTER_DECODER(PCM_BLURAY,        pcm_bluray);
452     REGISTER_DECODER(PCM_DVD,           pcm_dvd);
453     REGISTER_ENCDEC (PCM_F32BE,         pcm_f32be);
454     REGISTER_ENCDEC (PCM_F32LE,         pcm_f32le);
455     REGISTER_ENCDEC (PCM_F64BE,         pcm_f64be);
456     REGISTER_ENCDEC (PCM_F64LE,         pcm_f64le);
457     REGISTER_DECODER(PCM_LXF,           pcm_lxf);
458     REGISTER_ENCDEC (PCM_MULAW,         pcm_mulaw);
459     REGISTER_ENCDEC (PCM_S8,            pcm_s8);
460     REGISTER_ENCDEC (PCM_S8_PLANAR,     pcm_s8_planar);
461     REGISTER_ENCDEC (PCM_S16BE,         pcm_s16be);
462     REGISTER_ENCDEC (PCM_S16BE_PLANAR,  pcm_s16be_planar);
463     REGISTER_ENCDEC (PCM_S16LE,         pcm_s16le);
464     REGISTER_ENCDEC (PCM_S16LE_PLANAR,  pcm_s16le_planar);
465     REGISTER_ENCDEC (PCM_S24BE,         pcm_s24be);
466     REGISTER_ENCDEC (PCM_S24DAUD,       pcm_s24daud);
467     REGISTER_ENCDEC (PCM_S24LE,         pcm_s24le);
468     REGISTER_ENCDEC (PCM_S24LE_PLANAR,  pcm_s24le_planar);
469     REGISTER_ENCDEC (PCM_S32BE,         pcm_s32be);
470     REGISTER_ENCDEC (PCM_S32LE,         pcm_s32le);
471     REGISTER_ENCDEC (PCM_S32LE_PLANAR,  pcm_s32le_planar);
472     REGISTER_ENCDEC (PCM_U8,            pcm_u8);
473     REGISTER_ENCDEC (PCM_U16BE,         pcm_u16be);
474     REGISTER_ENCDEC (PCM_U16LE,         pcm_u16le);
475     REGISTER_ENCDEC (PCM_U24BE,         pcm_u24be);
476     REGISTER_ENCDEC (PCM_U24LE,         pcm_u24le);
477     REGISTER_ENCDEC (PCM_U32BE,         pcm_u32be);
478     REGISTER_ENCDEC (PCM_U32LE,         pcm_u32le);
479     REGISTER_DECODER(PCM_ZORK,          pcm_zork);
480
481     /* DPCM codecs */
482     REGISTER_DECODER(INTERPLAY_DPCM,    interplay_dpcm);
483     REGISTER_ENCDEC (ROQ_DPCM,          roq_dpcm);
484     REGISTER_DECODER(SOL_DPCM,          sol_dpcm);
485     REGISTER_DECODER(XAN_DPCM,          xan_dpcm);
486
487     /* ADPCM codecs */
488     REGISTER_DECODER(ADPCM_4XM,         adpcm_4xm);
489     REGISTER_ENCDEC (ADPCM_ADX,         adpcm_adx);
490     REGISTER_DECODER(ADPCM_AFC,         adpcm_afc);
491     REGISTER_DECODER(ADPCM_AICA,        adpcm_aica);
492     REGISTER_DECODER(ADPCM_CT,          adpcm_ct);
493     REGISTER_DECODER(ADPCM_DTK,         adpcm_dtk);
494     REGISTER_DECODER(ADPCM_EA,          adpcm_ea);
495     REGISTER_DECODER(ADPCM_EA_MAXIS_XA, adpcm_ea_maxis_xa);
496     REGISTER_DECODER(ADPCM_EA_R1,       adpcm_ea_r1);
497     REGISTER_DECODER(ADPCM_EA_R2,       adpcm_ea_r2);
498     REGISTER_DECODER(ADPCM_EA_R3,       adpcm_ea_r3);
499     REGISTER_DECODER(ADPCM_EA_XAS,      adpcm_ea_xas);
500     REGISTER_ENCDEC (ADPCM_G722,        adpcm_g722);
501     REGISTER_ENCDEC (ADPCM_G726,        adpcm_g726);
502     REGISTER_DECODER(ADPCM_G726LE,      adpcm_g726le);
503     REGISTER_DECODER(ADPCM_IMA_AMV,     adpcm_ima_amv);
504     REGISTER_DECODER(ADPCM_IMA_APC,     adpcm_ima_apc);
505     REGISTER_DECODER(ADPCM_IMA_DK3,     adpcm_ima_dk3);
506     REGISTER_DECODER(ADPCM_IMA_DK4,     adpcm_ima_dk4);
507     REGISTER_DECODER(ADPCM_IMA_EA_EACS, adpcm_ima_ea_eacs);
508     REGISTER_DECODER(ADPCM_IMA_EA_SEAD, adpcm_ima_ea_sead);
509     REGISTER_DECODER(ADPCM_IMA_ISS,     adpcm_ima_iss);
510     REGISTER_DECODER(ADPCM_IMA_OKI,     adpcm_ima_oki);
511     REGISTER_ENCDEC (ADPCM_IMA_QT,      adpcm_ima_qt);
512     REGISTER_DECODER(ADPCM_IMA_RAD,     adpcm_ima_rad);
513     REGISTER_DECODER(ADPCM_IMA_SMJPEG,  adpcm_ima_smjpeg);
514     REGISTER_ENCDEC (ADPCM_IMA_WAV,     adpcm_ima_wav);
515     REGISTER_DECODER(ADPCM_IMA_WS,      adpcm_ima_ws);
516     REGISTER_ENCDEC (ADPCM_MS,          adpcm_ms);
517     REGISTER_DECODER(ADPCM_PSX,         adpcm_psx);
518     REGISTER_DECODER(ADPCM_SBPRO_2,     adpcm_sbpro_2);
519     REGISTER_DECODER(ADPCM_SBPRO_3,     adpcm_sbpro_3);
520     REGISTER_DECODER(ADPCM_SBPRO_4,     adpcm_sbpro_4);
521     REGISTER_ENCDEC (ADPCM_SWF,         adpcm_swf);
522     REGISTER_DECODER(ADPCM_THP,         adpcm_thp);
523     REGISTER_DECODER(ADPCM_THP_LE,      adpcm_thp_le);
524     REGISTER_DECODER(ADPCM_VIMA,        adpcm_vima);
525     REGISTER_DECODER(ADPCM_XA,          adpcm_xa);
526     REGISTER_ENCDEC (ADPCM_YAMAHA,      adpcm_yamaha);
527
528     /* subtitles */
529     REGISTER_ENCDEC (SSA,               ssa);
530     REGISTER_ENCDEC (ASS,               ass);
531     REGISTER_DECODER(CCAPTION,          ccaption);
532     REGISTER_ENCDEC (DVBSUB,            dvbsub);
533     REGISTER_ENCDEC (DVDSUB,            dvdsub);
534     REGISTER_DECODER(JACOSUB,           jacosub);
535     REGISTER_DECODER(MICRODVD,          microdvd);
536     REGISTER_ENCDEC (MOVTEXT,           movtext);
537     REGISTER_DECODER(MPL2,              mpl2);
538     REGISTER_DECODER(PGSSUB,            pgssub);
539     REGISTER_DECODER(PJS,               pjs);
540     REGISTER_DECODER(REALTEXT,          realtext);
541     REGISTER_DECODER(SAMI,              sami);
542     REGISTER_ENCDEC (SRT,               srt);
543     REGISTER_DECODER(STL,               stl);
544     REGISTER_ENCDEC (SUBRIP,            subrip);
545     REGISTER_DECODER(SUBVIEWER,         subviewer);
546     REGISTER_DECODER(SUBVIEWER1,        subviewer1);
547     REGISTER_DECODER(TEXT,              text);
548     REGISTER_DECODER(VPLAYER,           vplayer);
549     REGISTER_ENCDEC (WEBVTT,            webvtt);
550     REGISTER_ENCDEC (XSUB,              xsub);
551
552     /* external libraries */
553     REGISTER_DECODER(LIBCELT,           libcelt);
554     REGISTER_DECODER(LIBDCADEC,         libdcadec)
555     REGISTER_ENCODER(LIBFAAC,           libfaac);
556     REGISTER_ENCDEC (LIBFDK_AAC,        libfdk_aac);
557     REGISTER_ENCDEC (LIBGSM,            libgsm);
558     REGISTER_ENCDEC (LIBGSM_MS,         libgsm_ms);
559     REGISTER_ENCDEC (LIBILBC,           libilbc);
560     REGISTER_ENCODER(LIBMP3LAME,        libmp3lame);
561     REGISTER_ENCDEC (LIBOPENCORE_AMRNB, libopencore_amrnb);
562     REGISTER_DECODER(LIBOPENCORE_AMRWB, libopencore_amrwb);
563     REGISTER_ENCDEC (LIBOPENJPEG,       libopenjpeg);
564     REGISTER_ENCDEC (LIBOPUS,           libopus);
565     REGISTER_ENCDEC (LIBSCHROEDINGER,   libschroedinger);
566     REGISTER_ENCODER(LIBSHINE,          libshine);
567     REGISTER_ENCDEC (LIBSPEEX,          libspeex);
568     REGISTER_DECODER(LIBSTAGEFRIGHT_H264, libstagefright_h264);
569     REGISTER_ENCODER(LIBTHEORA,         libtheora);
570     REGISTER_ENCODER(LIBTWOLAME,        libtwolame);
571     REGISTER_ENCDEC (LIBUTVIDEO,        libutvideo);
572     REGISTER_ENCODER(LIBVO_AACENC,      libvo_aacenc);
573     REGISTER_ENCODER(LIBVO_AMRWBENC,    libvo_amrwbenc);
574     REGISTER_ENCDEC (LIBVORBIS,         libvorbis);
575     REGISTER_ENCDEC (LIBVPX_VP8,        libvpx_vp8);
576     REGISTER_ENCDEC (LIBVPX_VP9,        libvpx_vp9);
577     REGISTER_ENCODER(LIBWAVPACK,        libwavpack);
578     REGISTER_ENCODER(LIBWEBP_ANIM,      libwebp_anim);  /* preferred over libwebp */
579     REGISTER_ENCODER(LIBWEBP,           libwebp);
580     REGISTER_ENCODER(LIBX262,           libx262);
581     REGISTER_ENCODER(LIBX264,           libx264);
582     REGISTER_ENCODER(LIBX264RGB,        libx264rgb);
583     REGISTER_ENCODER(LIBX265,           libx265);
584     REGISTER_ENCODER(LIBXAVS,           libxavs);
585     REGISTER_ENCODER(LIBXVID,           libxvid);
586     REGISTER_DECODER(LIBZVBI_TELETEXT,  libzvbi_teletext);
587     REGISTER_ENCODER(LIBAACPLUS,        libaacplus);
588
589     /* text */
590     REGISTER_DECODER(BINTEXT,           bintext);
591     REGISTER_DECODER(XBIN,              xbin);
592     REGISTER_DECODER(IDF,               idf);
593
594     /* external libraries, that shouldn't be used by default if one of the
595      * above is available */
596     REGISTER_ENCODER(LIBOPENH264,       libopenh264);
597     REGISTER_ENCODER(H264_QSV,          h264_qsv);
598     REGISTER_ENCODER(NVENC,             nvenc);
599     REGISTER_ENCODER(NVENC_H264,        nvenc_h264);
600     REGISTER_ENCODER(NVENC_HEVC,        nvenc_hevc);
601     REGISTER_ENCODER(HEVC_QSV,          hevc_qsv);
602     REGISTER_ENCODER(LIBKVAZAAR,        libkvazaar);
603     REGISTER_ENCODER(MPEG2_QSV,         mpeg2_qsv);
604
605     /* parsers */
606     REGISTER_PARSER(AAC,                aac);
607     REGISTER_PARSER(AAC_LATM,           aac_latm);
608     REGISTER_PARSER(AC3,                ac3);
609     REGISTER_PARSER(ADX,                adx);
610     REGISTER_PARSER(BMP,                bmp);
611     REGISTER_PARSER(CAVSVIDEO,          cavsvideo);
612     REGISTER_PARSER(COOK,               cook);
613     REGISTER_PARSER(DCA,                dca);
614     REGISTER_PARSER(DIRAC,              dirac);
615     REGISTER_PARSER(DNXHD,              dnxhd);
616     REGISTER_PARSER(DPX,                dpx);
617     REGISTER_PARSER(DVBSUB,             dvbsub);
618     REGISTER_PARSER(DVDSUB,             dvdsub);
619     REGISTER_PARSER(DVD_NAV,            dvd_nav);
620     REGISTER_PARSER(FLAC,               flac);
621     REGISTER_PARSER(G729,               g729);
622     REGISTER_PARSER(GSM,                gsm);
623     REGISTER_PARSER(H261,               h261);
624     REGISTER_PARSER(H263,               h263);
625     REGISTER_PARSER(H264,               h264);
626     REGISTER_PARSER(HEVC,               hevc);
627     REGISTER_PARSER(MJPEG,              mjpeg);
628     REGISTER_PARSER(MLP,                mlp);
629     REGISTER_PARSER(MPEG4VIDEO,         mpeg4video);
630     REGISTER_PARSER(MPEGAUDIO,          mpegaudio);
631     REGISTER_PARSER(MPEGVIDEO,          mpegvideo);
632     REGISTER_PARSER(OPUS,               opus);
633     REGISTER_PARSER(PNG,                png);
634     REGISTER_PARSER(PNM,                pnm);
635     REGISTER_PARSER(RV30,               rv30);
636     REGISTER_PARSER(RV40,               rv40);
637     REGISTER_PARSER(TAK,                tak);
638     REGISTER_PARSER(VC1,                vc1);
639     REGISTER_PARSER(VORBIS,             vorbis);
640     REGISTER_PARSER(VP3,                vp3);
641     REGISTER_PARSER(VP8,                vp8);
642     REGISTER_PARSER(VP9,                vp9);
643
644     /* bitstream filters */
645     REGISTER_BSF(AAC_ADTSTOASC,         aac_adtstoasc);
646     REGISTER_BSF(CHOMP,                 chomp);
647     REGISTER_BSF(DUMP_EXTRADATA,        dump_extradata);
648     REGISTER_BSF(H264_MP4TOANNEXB,      h264_mp4toannexb);
649     REGISTER_BSF(HEVC_MP4TOANNEXB,      hevc_mp4toannexb);
650     REGISTER_BSF(IMX_DUMP_HEADER,       imx_dump_header);
651     REGISTER_BSF(MJPEG2JPEG,            mjpeg2jpeg);
652     REGISTER_BSF(MJPEGA_DUMP_HEADER,    mjpega_dump_header);
653     REGISTER_BSF(MP3_HEADER_DECOMPRESS, mp3_header_decompress);
654     REGISTER_BSF(MPEG4_UNPACK_BFRAMES,  mpeg4_unpack_bframes);
655     REGISTER_BSF(MOV2TEXTSUB,           mov2textsub);
656     REGISTER_BSF(NOISE,                 noise);
657     REGISTER_BSF(REMOVE_EXTRADATA,      remove_extradata);
658     REGISTER_BSF(TEXT2MOVSUB,           text2movsub);
659 }