libavcodec/allcodecs.c
771b9a70
 /*
49bd8e4b
  * Provide registration of all codecs, parsers and bitstream filters for libavcodec.
406792e7
  * Copyright (c) 2002 Fabrice Bellard
771b9a70
  *
b78e7197
  * This file is part of FFmpeg.
  *
  * FFmpeg is free software; you can redistribute it and/or
771b9a70
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
b78e7197
  * version 2.1 of the License, or (at your option) any later version.
771b9a70
  *
b78e7197
  * FFmpeg is distributed in the hope that it will be useful,
771b9a70
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
b78e7197
  * License along with FFmpeg; if not, write to the Free Software
5509bffa
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
771b9a70
  */
983e3246
 
 /**
ba87f080
  * @file
49bd8e4b
  * Provide registration of all codecs, parsers and bitstream filters for libavcodec.
983e3246
  */
 
1d9c2dc8
 #include "config.h"
e85e8408
 #include "libavutil/thread.h"
19e30a58
 #include "avcodec.h"
 #include "version.h"
771b9a70
 
c73c87b4
 #define REGISTER_HWACCEL(X, x)                                          \
     {                                                                   \
         extern AVHWAccel ff_##x##_hwaccel;                              \
         if (CONFIG_##X##_HWACCEL)                                       \
             av_register_hwaccel(&ff_##x##_hwaccel);                     \
     }
eb2c2423
 
c73c87b4
 #define REGISTER_ENCODER(X, x)                                          \
     {                                                                   \
         extern AVCodec ff_##x##_encoder;                                \
         if (CONFIG_##X##_ENCODER)                                       \
             avcodec_register(&ff_##x##_encoder);                        \
     }
f3902026
 
c73c87b4
 #define REGISTER_DECODER(X, x)                                          \
     {                                                                   \
         extern AVCodec ff_##x##_decoder;                                \
         if (CONFIG_##X##_DECODER)                                       \
             avcodec_register(&ff_##x##_decoder);                        \
     }
 
3048fae6
 #define REGISTER_ENCDEC(X, x) REGISTER_ENCODER(X, x); REGISTER_DECODER(X, x)
c73c87b4
 
 #define REGISTER_PARSER(X, x)                                           \
     {                                                                   \
         extern AVCodecParser ff_##x##_parser;                           \
         if (CONFIG_##X##_PARSER)                                        \
             av_register_codec_parser(&ff_##x##_parser);                 \
     }
 
e85e8408
 static void register_all(void)
771b9a70
 {
eb2c2423
     /* hardware accelerators */
c73c87b4
     REGISTER_HWACCEL(H263_VAAPI,        h263_vaapi);
11d923d4
     REGISTER_HWACCEL(H263_VIDEOTOOLBOX, h263_videotoolbox);
88e8aef9
     REGISTER_HWACCEL(H264_CUVID,        h264_cuvid);
d8039ef8
     REGISTER_HWACCEL(H264_D3D11VA,      h264_d3d11va);
70143a39
     REGISTER_HWACCEL(H264_D3D11VA2,     h264_d3d11va2);
c73c87b4
     REGISTER_HWACCEL(H264_DXVA2,        h264_dxva2);
0f2654c9
     REGISTER_HWACCEL(H264_MEDIACODEC,   h264_mediacodec);
c4845616
     REGISTER_HWACCEL(H264_MMAL,         h264_mmal);
4e08c821
     REGISTER_HWACCEL(H264_QSV,          h264_qsv);
c73c87b4
     REGISTER_HWACCEL(H264_VAAPI,        h264_vaapi);
     REGISTER_HWACCEL(H264_VDA,          h264_vda);
67afcefb
     REGISTER_HWACCEL(H264_VDA_OLD,      h264_vda_old);
51b56a07
     REGISTER_HWACCEL(H264_VDPAU,        h264_vdpau);
11d923d4
     REGISTER_HWACCEL(H264_VIDEOTOOLBOX, h264_videotoolbox);
88e8aef9
     REGISTER_HWACCEL(HEVC_CUVID,        hevc_cuvid);
d8039ef8
     REGISTER_HWACCEL(HEVC_D3D11VA,      hevc_d3d11va);
70143a39
     REGISTER_HWACCEL(HEVC_D3D11VA2,     hevc_d3d11va2);
36962ad2
     REGISTER_HWACCEL(HEVC_DXVA2,        hevc_dxva2);
140da8e8
     REGISTER_HWACCEL(HEVC_MEDIACODEC,   hevc_mediacodec);
41d47ea8
     REGISTER_HWACCEL(HEVC_QSV,          hevc_qsv);
1dd854e1
     REGISTER_HWACCEL(HEVC_VAAPI,        hevc_vaapi);
6e5e139f
     REGISTER_HWACCEL(HEVC_VDPAU,        hevc_vdpau);
3d4f8b91
     REGISTER_HWACCEL(HEVC_VIDEOTOOLBOX, hevc_videotoolbox);
1891dfe0
     REGISTER_HWACCEL(MJPEG_CUVID,       mjpeg_cuvid);
     REGISTER_HWACCEL(MPEG1_CUVID,       mpeg1_cuvid);
1c63aed2
     REGISTER_HWACCEL(MPEG1_XVMC,        mpeg1_xvmc);
83d4a844
     REGISTER_HWACCEL(MPEG1_VDPAU,       mpeg1_vdpau);
11d923d4
     REGISTER_HWACCEL(MPEG1_VIDEOTOOLBOX, mpeg1_videotoolbox);
1891dfe0
     REGISTER_HWACCEL(MPEG2_CUVID,       mpeg2_cuvid);
1c63aed2
     REGISTER_HWACCEL(MPEG2_XVMC,        mpeg2_xvmc);
d8039ef8
     REGISTER_HWACCEL(MPEG2_D3D11VA,     mpeg2_d3d11va);
70143a39
     REGISTER_HWACCEL(MPEG2_D3D11VA2,    mpeg2_d3d11va2);
c73c87b4
     REGISTER_HWACCEL(MPEG2_DXVA2,       mpeg2_dxva2);
7ebe12fc
     REGISTER_HWACCEL(MPEG2_MMAL,        mpeg2_mmal);
bf52f773
     REGISTER_HWACCEL(MPEG2_QSV,         mpeg2_qsv);
c73c87b4
     REGISTER_HWACCEL(MPEG2_VAAPI,       mpeg2_vaapi);
83d4a844
     REGISTER_HWACCEL(MPEG2_VDPAU,       mpeg2_vdpau);
11d923d4
     REGISTER_HWACCEL(MPEG2_VIDEOTOOLBOX, mpeg2_videotoolbox);
a32a6b42
     REGISTER_HWACCEL(MPEG2_MEDIACODEC,  mpeg2_mediacodec);
1891dfe0
     REGISTER_HWACCEL(MPEG4_CUVID,       mpeg4_cuvid);
f62c5445
     REGISTER_HWACCEL(MPEG4_MEDIACODEC,  mpeg4_mediacodec);
7b1b53f3
     REGISTER_HWACCEL(MPEG4_MMAL,        mpeg4_mmal);
c73c87b4
     REGISTER_HWACCEL(MPEG4_VAAPI,       mpeg4_vaapi);
200e8ac9
     REGISTER_HWACCEL(MPEG4_VDPAU,       mpeg4_vdpau);
11d923d4
     REGISTER_HWACCEL(MPEG4_VIDEOTOOLBOX, mpeg4_videotoolbox);
88e8aef9
     REGISTER_HWACCEL(VC1_CUVID,         vc1_cuvid);
d8039ef8
     REGISTER_HWACCEL(VC1_D3D11VA,       vc1_d3d11va);
70143a39
     REGISTER_HWACCEL(VC1_D3D11VA2,      vc1_d3d11va2);
c73c87b4
     REGISTER_HWACCEL(VC1_DXVA2,         vc1_dxva2);
     REGISTER_HWACCEL(VC1_VAAPI,         vc1_vaapi);
77525327
     REGISTER_HWACCEL(VC1_VDPAU,         vc1_vdpau);
b07cbf67
     REGISTER_HWACCEL(VC1_MMAL,          vc1_mmal);
fb57bc6c
     REGISTER_HWACCEL(VC1_QSV,           vc1_qsv);
88e8aef9
     REGISTER_HWACCEL(VP8_CUVID,         vp8_cuvid);
0f7fce87
     REGISTER_HWACCEL(VP8_MEDIACODEC,    vp8_mediacodec);
e0b16457
     REGISTER_HWACCEL(VP8_QSV,           vp8_qsv);
88e8aef9
     REGISTER_HWACCEL(VP9_CUVID,         vp9_cuvid);
1e6cf727
     REGISTER_HWACCEL(VP9_D3D11VA,       vp9_d3d11va);
70143a39
     REGISTER_HWACCEL(VP9_D3D11VA2,      vp9_d3d11va2);
1e6cf727
     REGISTER_HWACCEL(VP9_DXVA2,         vp9_dxva2);
0f7fce87
     REGISTER_HWACCEL(VP9_MEDIACODEC,    vp9_mediacodec);
d7c2b756
     REGISTER_HWACCEL(VP9_VAAPI,         vp9_vaapi);
d8039ef8
     REGISTER_HWACCEL(WMV3_D3D11VA,      wmv3_d3d11va);
70143a39
     REGISTER_HWACCEL(WMV3_D3D11VA2,     wmv3_d3d11va2);
c73c87b4
     REGISTER_HWACCEL(WMV3_DXVA2,        wmv3_dxva2);
     REGISTER_HWACCEL(WMV3_VAAPI,        wmv3_vaapi);
77525327
     REGISTER_HWACCEL(WMV3_VDPAU,        wmv3_vdpau);
eb2c2423
 
f3902026
     /* video codecs */
c73c87b4
     REGISTER_ENCODER(A64MULTI,          a64multi);
     REGISTER_ENCODER(A64MULTI5,         a64multi5);
     REGISTER_DECODER(AASC,              aasc);
1232a164
     REGISTER_DECODER(AIC,               aic);
e50f5d3c
     REGISTER_ENCDEC (ALIAS_PIX,         alias_pix);
83d4a844
     REGISTER_ENCDEC (AMV,               amv);
c73c87b4
     REGISTER_DECODER(ANM,               anm);
     REGISTER_DECODER(ANSI,              ansi);
d7598448
     REGISTER_ENCDEC (APNG,              apng);
c73c87b4
     REGISTER_ENCDEC (ASV1,              asv1);
     REGISTER_ENCDEC (ASV2,              asv2);
     REGISTER_DECODER(AURA,              aura);
     REGISTER_DECODER(AURA2,             aura2);
83d4a844
     REGISTER_ENCDEC (AVRP,              avrp);
     REGISTER_DECODER(AVRN,              avrn);
c73c87b4
     REGISTER_DECODER(AVS,               avs);
83d4a844
     REGISTER_ENCDEC (AVUI,              avui);
     REGISTER_ENCDEC (AYUV,              ayuv);
c73c87b4
     REGISTER_DECODER(BETHSOFTVID,       bethsoftvid);
     REGISTER_DECODER(BFI,               bfi);
     REGISTER_DECODER(BINK,              bink);
     REGISTER_ENCDEC (BMP,               bmp);
     REGISTER_DECODER(BMV_VIDEO,         bmv_video);
83d4a844
     REGISTER_DECODER(BRENDER_PIX,       brender_pix);
c73c87b4
     REGISTER_DECODER(C93,               c93);
     REGISTER_DECODER(CAVS,              cavs);
     REGISTER_DECODER(CDGRAPHICS,        cdgraphics);
     REGISTER_DECODER(CDXL,              cdxl);
3485332b
     REGISTER_DECODER(CFHD,              cfhd);
59dbc36f
     REGISTER_ENCDEC (CINEPAK,           cinepak);
a63496cc
     REGISTER_DECODER(CLEARVIDEO,        clearvideo);
c73c87b4
     REGISTER_ENCDEC (CLJR,              cljr);
     REGISTER_DECODER(CLLC,              cllc);
     REGISTER_ENCDEC (COMFORTNOISE,      comfortnoise);
83d4a844
     REGISTER_DECODER(CPIA,              cpia);
c73c87b4
     REGISTER_DECODER(CSCD,              cscd);
     REGISTER_DECODER(CYUV,              cyuv);
5c018ee1
     REGISTER_DECODER(DDS,               dds);
c73c87b4
     REGISTER_DECODER(DFA,               dfa);
83d4a844
     REGISTER_DECODER(DIRAC,             dirac);
c73c87b4
     REGISTER_ENCDEC (DNXHD,             dnxhd);
     REGISTER_ENCDEC (DPX,               dpx);
     REGISTER_DECODER(DSICINVIDEO,       dsicinvideo);
e9e62336
     REGISTER_DECODER(DVAUDIO,           dvaudio);
c73c87b4
     REGISTER_ENCDEC (DVVIDEO,           dvvideo);
     REGISTER_DECODER(DXA,               dxa);
     REGISTER_DECODER(DXTORY,            dxtory);
c45fcf30
     REGISTER_DECODER(DXV,               dxv);
c73c87b4
     REGISTER_DECODER(EACMV,             eacmv);
     REGISTER_DECODER(EAMAD,             eamad);
     REGISTER_DECODER(EATGQ,             eatgq);
     REGISTER_DECODER(EATGV,             eatgv);
     REGISTER_DECODER(EATQI,             eatqi);
     REGISTER_DECODER(EIGHTBPS,          eightbps);
     REGISTER_DECODER(EIGHTSVX_EXP,      eightsvx_exp);
     REGISTER_DECODER(EIGHTSVX_FIB,      eightsvx_fib);
     REGISTER_DECODER(ESCAPE124,         escape124);
83d4a844
     REGISTER_DECODER(ESCAPE130,         escape130);
     REGISTER_DECODER(EXR,               exr);
c73c87b4
     REGISTER_ENCDEC (FFV1,              ffv1);
     REGISTER_ENCDEC (FFVHUFF,           ffvhuff);
cde7df25
     REGISTER_DECODER(FIC,               fic);
6e02f66f
     REGISTER_ENCDEC (FITS,              fits);
c73c87b4
     REGISTER_ENCDEC (FLASHSV,           flashsv);
83d4a844
     REGISTER_ENCDEC (FLASHSV2,          flashsv2);
c73c87b4
     REGISTER_DECODER(FLIC,              flic);
     REGISTER_ENCDEC (FLV,               flv);
8259f8a7
     REGISTER_DECODER(FMVC,              fmvc);
c73c87b4
     REGISTER_DECODER(FOURXM,            fourxm);
     REGISTER_DECODER(FRAPS,             fraps);
     REGISTER_DECODER(FRWU,              frwu);
2d66a58c
     REGISTER_DECODER(G2M,               g2m);
d1c08027
     REGISTER_DECODER(GDV,               gdv);
c73c87b4
     REGISTER_ENCDEC (GIF,               gif);
     REGISTER_ENCDEC (H261,              h261);
     REGISTER_ENCDEC (H263,              h263);
     REGISTER_DECODER(H263I,             h263i);
83d4a844
     REGISTER_ENCDEC (H263P,             h263p);
c1f22c29
     REGISTER_DECODER(H263_V4L2M2M,      h263_v4l2m2m);
c73c87b4
     REGISTER_DECODER(H264,              h264);
83d4a844
     REGISTER_DECODER(H264_CRYSTALHD,    h264_crystalhd);
c1f22c29
     REGISTER_DECODER(H264_V4L2M2M,      h264_v4l2m2m);
4737fe69
     REGISTER_DECODER(H264_MEDIACODEC,   h264_mediacodec);
c4845616
     REGISTER_DECODER(H264_MMAL,         h264_mmal);
4e08c821
     REGISTER_DECODER(H264_QSV,          h264_qsv);
f3aefb3e
     REGISTER_DECODER(H264_RKMPP,        h264_rkmpp);
83d4a844
     REGISTER_DECODER(H264_VDA,          h264_vda);
a383f226
 #if FF_API_VDPAU
a0c6c8e5
     REGISTER_DECODER(H264_VDPAU,        h264_vdpau);
a383f226
 #endif
7ca3e520
     REGISTER_ENCDEC (HAP,               hap);
c8dd048a
     REGISTER_DECODER(HEVC,              hevc);
41d47ea8
     REGISTER_DECODER(HEVC_QSV,          hevc_qsv);
f3aefb3e
     REGISTER_DECODER(HEVC_RKMPP,        hevc_rkmpp);
c1f22c29
     REGISTER_DECODER(HEVC_V4L2M2M,      hevc_v4l2m2m);
9af7a852
     REGISTER_DECODER(HNM4_VIDEO,        hnm4_video);
22526c1f
     REGISTER_DECODER(HQ_HQA,            hq_hqa);
35c6ce76
     REGISTER_DECODER(HQX,               hqx);
c73c87b4
     REGISTER_ENCDEC (HUFFYUV,           huffyuv);
     REGISTER_DECODER(IDCIN,             idcin);
     REGISTER_DECODER(IFF_ILBM,          iff_ilbm);
     REGISTER_DECODER(INDEO2,            indeo2);
     REGISTER_DECODER(INDEO3,            indeo3);
     REGISTER_DECODER(INDEO4,            indeo4);
     REGISTER_DECODER(INDEO5,            indeo5);
     REGISTER_DECODER(INTERPLAY_VIDEO,   interplay_video);
9d56ccf5
     REGISTER_ENCDEC (JPEG2000,          jpeg2000);
c73c87b4
     REGISTER_ENCDEC (JPEGLS,            jpegls);
     REGISTER_DECODER(JV,                jv);
     REGISTER_DECODER(KGV1,              kgv1);
     REGISTER_DECODER(KMVC,              kmvc);
     REGISTER_DECODER(LAGARITH,          lagarith);
     REGISTER_ENCODER(LJPEG,             ljpeg);
     REGISTER_DECODER(LOCO,              loco);
4155d5e0
     REGISTER_DECODER(M101,              m101);
77f9c4b7
     REGISTER_DECODER(MAGICYUV,          magicyuv);
c73c87b4
     REGISTER_DECODER(MDEC,              mdec);
     REGISTER_DECODER(MIMIC,             mimic);
     REGISTER_ENCDEC (MJPEG,             mjpeg);
     REGISTER_DECODER(MJPEGB,            mjpegb);
     REGISTER_DECODER(MMVIDEO,           mmvideo);
     REGISTER_DECODER(MOTIONPIXELS,      motionpixels);
19e30a58
 #if FF_API_XVMC
c73c87b4
     REGISTER_DECODER(MPEG_XVMC,         mpeg_xvmc);
19e30a58
 #endif /* FF_API_XVMC */
c73c87b4
     REGISTER_ENCDEC (MPEG1VIDEO,        mpeg1video);
     REGISTER_ENCDEC (MPEG2VIDEO,        mpeg2video);
     REGISTER_ENCDEC (MPEG4,             mpeg4);
83d4a844
     REGISTER_DECODER(MPEG4_CRYSTALHD,   mpeg4_crystalhd);
c1f22c29
     REGISTER_DECODER(MPEG4_V4L2M2M,     mpeg4_v4l2m2m);
7b1b53f3
     REGISTER_DECODER(MPEG4_MMAL,        mpeg4_mmal);
a383f226
 #if FF_API_VDPAU
a0c6c8e5
     REGISTER_DECODER(MPEG4_VDPAU,       mpeg4_vdpau);
a383f226
 #endif
83d4a844
     REGISTER_DECODER(MPEGVIDEO,         mpegvideo);
a383f226
 #if FF_API_VDPAU
a0c6c8e5
     REGISTER_DECODER(MPEG_VDPAU,        mpeg_vdpau);
     REGISTER_DECODER(MPEG1_VDPAU,       mpeg1_vdpau);
a383f226
 #endif
1ef7752d
     REGISTER_DECODER(MPEG1_V4L2M2M,     mpeg1_v4l2m2m);
7ebe12fc
     REGISTER_DECODER(MPEG2_MMAL,        mpeg2_mmal);
83d4a844
     REGISTER_DECODER(MPEG2_CRYSTALHD,   mpeg2_crystalhd);
1ef7752d
     REGISTER_DECODER(MPEG2_V4L2M2M,     mpeg2_v4l2m2m);
6d0123f4
     REGISTER_DECODER(MPEG2_QSV,         mpeg2_qsv);
a32a6b42
     REGISTER_DECODER(MPEG2_MEDIACODEC,  mpeg2_mediacodec);
c73c87b4
     REGISTER_DECODER(MSA1,              msa1);
a96db6be
     REGISTER_DECODER(MSCC,              mscc);
c73c87b4
     REGISTER_DECODER(MSMPEG4V1,         msmpeg4v1);
     REGISTER_ENCDEC (MSMPEG4V2,         msmpeg4v2);
     REGISTER_ENCDEC (MSMPEG4V3,         msmpeg4v3);
7c27da68
     REGISTER_DECODER(MSMPEG4_CRYSTALHD, msmpeg4_crystalhd);
c73c87b4
     REGISTER_DECODER(MSRLE,             msrle);
     REGISTER_DECODER(MSS1,              mss1);
     REGISTER_DECODER(MSS2,              mss2);
83d4a844
     REGISTER_ENCDEC (MSVIDEO1,          msvideo1);
c73c87b4
     REGISTER_DECODER(MSZH,              mszh);
     REGISTER_DECODER(MTS2,              mts2);
83d4a844
     REGISTER_DECODER(MVC1,              mvc1);
     REGISTER_DECODER(MVC2,              mvc2);
c73c87b4
     REGISTER_DECODER(MXPEG,             mxpeg);
     REGISTER_DECODER(NUV,               nuv);
83d4a844
     REGISTER_DECODER(PAF_VIDEO,         paf_video);
c73c87b4
     REGISTER_ENCDEC (PAM,               pam);
     REGISTER_ENCDEC (PBM,               pbm);
     REGISTER_ENCDEC (PCX,               pcx);
     REGISTER_ENCDEC (PGM,               pgm);
     REGISTER_ENCDEC (PGMYUV,            pgmyuv);
     REGISTER_DECODER(PICTOR,            pictor);
73651090
     REGISTER_DECODER(PIXLET,            pixlet);
c73c87b4
     REGISTER_ENCDEC (PNG,               png);
     REGISTER_ENCDEC (PPM,               ppm);
     REGISTER_ENCDEC (PRORES,            prores);
b3c39962
     REGISTER_ENCODER(PRORES_AW,         prores_aw);
     REGISTER_ENCODER(PRORES_KS,         prores_ks);
83d4a844
     REGISTER_DECODER(PRORES_LGPL,       prores_lgpl);
90af9629
     REGISTER_DECODER(PSD,               psd);
c73c87b4
     REGISTER_DECODER(PTX,               ptx);
     REGISTER_DECODER(QDRAW,             qdraw);
     REGISTER_DECODER(QPEG,              qpeg);
     REGISTER_ENCDEC (QTRLE,             qtrle);
83d4a844
     REGISTER_ENCDEC (R10K,              r10k);
     REGISTER_ENCDEC (R210,              r210);
c73c87b4
     REGISTER_ENCDEC (RAWVIDEO,          rawvideo);
     REGISTER_DECODER(RL2,               rl2);
     REGISTER_ENCDEC (ROQ,               roq);
     REGISTER_DECODER(RPZA,              rpza);
533a6198
     REGISTER_DECODER(RSCC,              rscc);
c73c87b4
     REGISTER_ENCDEC (RV10,              rv10);
     REGISTER_ENCDEC (RV20,              rv20);
     REGISTER_DECODER(RV30,              rv30);
     REGISTER_DECODER(RV40,              rv40);
3e160475
     REGISTER_ENCDEC (S302M,             s302m);
83d4a844
     REGISTER_DECODER(SANM,              sanm);
039011b6
     REGISTER_DECODER(SCPR,              scpr);
9a3202a9
     REGISTER_DECODER(SCREENPRESSO,      screenpresso);
035ae3c0
     REGISTER_DECODER(SDX2_DPCM,         sdx2_dpcm);
c73c87b4
     REGISTER_ENCDEC (SGI,               sgi);
83d4a844
     REGISTER_DECODER(SGIRLE,            sgirle);
fdf832a9
     REGISTER_DECODER(SHEERVIDEO,        sheervideo);
c73c87b4
     REGISTER_DECODER(SMACKER,           smacker);
     REGISTER_DECODER(SMC,               smc);
14ec9d25
     REGISTER_DECODER(SMVJPEG,           smvjpeg);
c73c87b4
     REGISTER_ENCDEC (SNOW,              snow);
     REGISTER_DECODER(SP5X,              sp5x);
2a293ec7
     REGISTER_DECODER(SPEEDHQ,           speedhq);
61088051
     REGISTER_DECODER(SRGC,              srgc);
c73c87b4
     REGISTER_ENCDEC (SUNRAST,           sunrast);
     REGISTER_ENCDEC (SVQ1,              svq1);
     REGISTER_DECODER(SVQ3,              svq3);
     REGISTER_ENCDEC (TARGA,             targa);
83d4a844
     REGISTER_DECODER(TARGA_Y216,        targa_y216);
247e370e
     REGISTER_DECODER(TDSC,              tdsc);
c73c87b4
     REGISTER_DECODER(THEORA,            theora);
     REGISTER_DECODER(THP,               thp);
     REGISTER_DECODER(TIERTEXSEQVIDEO,   tiertexseqvideo);
     REGISTER_ENCDEC (TIFF,              tiff);
     REGISTER_DECODER(TMV,               tmv);
     REGISTER_DECODER(TRUEMOTION1,       truemotion1);
     REGISTER_DECODER(TRUEMOTION2,       truemotion2);
c85d0425
     REGISTER_DECODER(TRUEMOTION2RT,     truemotion2rt);
c73c87b4
     REGISTER_DECODER(TSCC,              tscc);
     REGISTER_DECODER(TSCC2,             tscc2);
     REGISTER_DECODER(TXD,               txd);
     REGISTER_DECODER(ULTI,              ulti);
     REGISTER_ENCDEC (UTVIDEO,           utvideo);
     REGISTER_ENCDEC (V210,              v210);
     REGISTER_DECODER(V210X,             v210x);
83d4a844
     REGISTER_ENCDEC (V308,              v308);
     REGISTER_ENCDEC (V408,              v408);
c73c87b4
     REGISTER_ENCDEC (V410,              v410);
     REGISTER_DECODER(VB,                vb);
     REGISTER_DECODER(VBLE,              vble);
     REGISTER_DECODER(VC1,               vc1);
83d4a844
     REGISTER_DECODER(VC1_CRYSTALHD,     vc1_crystalhd);
a383f226
 #if FF_API_VDPAU
a0c6c8e5
     REGISTER_DECODER(VC1_VDPAU,         vc1_vdpau);
a383f226
 #endif
c73c87b4
     REGISTER_DECODER(VC1IMAGE,          vc1image);
b07cbf67
     REGISTER_DECODER(VC1_MMAL,          vc1_mmal);
fb57bc6c
     REGISTER_DECODER(VC1_QSV,           vc1_qsv);
1ef7752d
     REGISTER_DECODER(VC1_V4L2M2M,       vc1_v4l2m2m);
ec9e87c9
     REGISTER_ENCODER(VC2,               vc2);
c73c87b4
     REGISTER_DECODER(VCR1,              vcr1);
     REGISTER_DECODER(VMDVIDEO,          vmdvideo);
     REGISTER_DECODER(VMNC,              vmnc);
     REGISTER_DECODER(VP3,               vp3);
     REGISTER_DECODER(VP5,               vp5);
     REGISTER_DECODER(VP6,               vp6);
     REGISTER_DECODER(VP6A,              vp6a);
     REGISTER_DECODER(VP6F,              vp6f);
89f2f5db
     REGISTER_DECODER(VP7,               vp7);
c73c87b4
     REGISTER_DECODER(VP8,               vp8);
f3aefb3e
     REGISTER_DECODER(VP8_RKMPP,         vp8_rkmpp);
c1f22c29
     REGISTER_DECODER(VP8_V4L2M2M,       vp8_v4l2m2m);
848826f5
     REGISTER_DECODER(VP9,               vp9);
f3aefb3e
     REGISTER_DECODER(VP9_RKMPP,         vp9_rkmpp);
1ef7752d
     REGISTER_DECODER(VP9_V4L2M2M,       vp9_v4l2m2m);
c73c87b4
     REGISTER_DECODER(VQA,               vqa);
549acc99
     REGISTER_DECODER(BITPACKED,         bitpacked);
076c1c95
     REGISTER_DECODER(WEBP,              webp);
c8dea819
     REGISTER_ENCDEC (WRAPPED_AVFRAME,   wrapped_avframe);
c73c87b4
     REGISTER_ENCDEC (WMV1,              wmv1);
     REGISTER_ENCDEC (WMV2,              wmv2);
     REGISTER_DECODER(WMV3,              wmv3);
83d4a844
     REGISTER_DECODER(WMV3_CRYSTALHD,    wmv3_crystalhd);
a383f226
 #if FF_API_VDPAU
a0c6c8e5
     REGISTER_DECODER(WMV3_VDPAU,        wmv3_vdpau);
a383f226
 #endif
c73c87b4
     REGISTER_DECODER(WMV3IMAGE,         wmv3image);
     REGISTER_DECODER(WNV1,              wnv1);
     REGISTER_DECODER(XAN_WC3,           xan_wc3);
     REGISTER_DECODER(XAN_WC4,           xan_wc4);
83d4a844
     REGISTER_ENCDEC (XBM,               xbm);
     REGISTER_ENCDEC (XFACE,             xface);
c73c87b4
     REGISTER_DECODER(XL,                xl);
5dab7b91
     REGISTER_DECODER(XPM,               xpm);
c73c87b4
     REGISTER_ENCDEC (XWD,               xwd);
83d4a844
     REGISTER_ENCDEC (Y41P,              y41p);
8fb92ea7
     REGISTER_DECODER(YLC,               ylc);
c73c87b4
     REGISTER_DECODER(YOP,               yop);
83d4a844
     REGISTER_ENCDEC (YUV4,              yuv4);
9ff92cf1
     REGISTER_DECODER(ZERO12V,           zero12v);
c73c87b4
     REGISTER_DECODER(ZEROCODEC,         zerocodec);
     REGISTER_ENCDEC (ZLIB,              zlib);
     REGISTER_ENCDEC (ZMBV,              zmbv);
771b9a70
 
f3902026
     /* audio codecs */
c73c87b4
     REGISTER_ENCDEC (AAC,               aac);
f21b4472
     REGISTER_DECODER(AAC_FIXED,         aac_fixed);
c73c87b4
     REGISTER_DECODER(AAC_LATM,          aac_latm);
     REGISTER_ENCDEC (AC3,               ac3);
696e34a6
     REGISTER_ENCDEC (AC3_FIXED,         ac3_fixed);
c73c87b4
     REGISTER_ENCDEC (ALAC,              alac);
     REGISTER_DECODER(ALS,               als);
     REGISTER_DECODER(AMRNB,             amrnb);
     REGISTER_DECODER(AMRWB,             amrwb);
     REGISTER_DECODER(APE,               ape);
     REGISTER_DECODER(ATRAC1,            atrac1);
     REGISTER_DECODER(ATRAC3,            atrac3);
280a40dd
     REGISTER_DECODER(ATRAC3AL,          atrac3al);
2e1fb96a
     REGISTER_DECODER(ATRAC3P,           atrac3p);
280a40dd
     REGISTER_DECODER(ATRAC3PAL,         atrac3pal);
c73c87b4
     REGISTER_DECODER(BINKAUDIO_DCT,     binkaudio_dct);
     REGISTER_DECODER(BINKAUDIO_RDFT,    binkaudio_rdft);
     REGISTER_DECODER(BMV_AUDIO,         bmv_audio);
     REGISTER_DECODER(COOK,              cook);
ae5b2c52
     REGISTER_ENCDEC (DCA,               dca);
930fe4b1
     REGISTER_DECODER(DOLBY_E,           dolby_e);
5f4f9ee9
     REGISTER_DECODER(DSD_LSBF,          dsd_lsbf);
     REGISTER_DECODER(DSD_MSBF,          dsd_msbf);
     REGISTER_DECODER(DSD_LSBF_PLANAR,   dsd_lsbf_planar);
     REGISTER_DECODER(DSD_MSBF_PLANAR,   dsd_msbf_planar);
c73c87b4
     REGISTER_DECODER(DSICINAUDIO,       dsicinaudio);
c56b9b1e
     REGISTER_DECODER(DSS_SP,            dss_sp);
86e493a6
     REGISTER_DECODER(DST,               dst);
c73c87b4
     REGISTER_ENCDEC (EAC3,              eac3);
098d3891
     REGISTER_DECODER(EVRC,              evrc);
83d4a844
     REGISTER_DECODER(FFWAVESYNTH,       ffwavesynth);
c73c87b4
     REGISTER_ENCDEC (FLAC,              flac);
83d4a844
     REGISTER_ENCDEC (G723_1,            g723_1);
     REGISTER_DECODER(G729,              g729);
c73c87b4
     REGISTER_DECODER(GSM,               gsm);
     REGISTER_DECODER(GSM_MS,            gsm_ms);
     REGISTER_DECODER(IAC,               iac);
     REGISTER_DECODER(IMC,               imc);
c89e075d
     REGISTER_DECODER(INTERPLAY_ACM,     interplay_acm);
c73c87b4
     REGISTER_DECODER(MACE3,             mace3);
     REGISTER_DECODER(MACE6,             mace6);
3e589878
     REGISTER_DECODER(METASOUND,         metasound);
15b86f48
     REGISTER_ENCDEC (MLP,               mlp);
c73c87b4
     REGISTER_DECODER(MP1,               mp1);
     REGISTER_DECODER(MP1FLOAT,          mp1float);
     REGISTER_ENCDEC (MP2,               mp2);
     REGISTER_DECODER(MP2FLOAT,          mp2float);
04e06cdf
     REGISTER_ENCODER(MP2FIXED,          mp2fixed);
c73c87b4
     REGISTER_DECODER(MP3,               mp3);
     REGISTER_DECODER(MP3FLOAT,          mp3float);
     REGISTER_DECODER(MP3ADU,            mp3adu);
     REGISTER_DECODER(MP3ADUFLOAT,       mp3adufloat);
     REGISTER_DECODER(MP3ON4,            mp3on4);
     REGISTER_DECODER(MP3ON4FLOAT,       mp3on4float);
     REGISTER_DECODER(MPC7,              mpc7);
     REGISTER_DECODER(MPC8,              mpc8);
     REGISTER_ENCDEC (NELLYMOSER,        nellymoser);
e2834567
     REGISTER_DECODER(ON2AVC,            on2avc);
5f47c85e
     REGISTER_ENCDEC (OPUS,              opus);
83d4a844
     REGISTER_DECODER(PAF_AUDIO,         paf_audio);
c73c87b4
     REGISTER_DECODER(QCELP,             qcelp);
     REGISTER_DECODER(QDM2,              qdm2);
90ac9f40
     REGISTER_DECODER(QDMC,              qdmc);
c73c87b4
     REGISTER_ENCDEC (RA_144,            ra_144);
     REGISTER_DECODER(RA_288,            ra_288);
     REGISTER_DECODER(RALF,              ralf);
     REGISTER_DECODER(SHORTEN,           shorten);
     REGISTER_DECODER(SIPR,              sipr);
     REGISTER_DECODER(SMACKAUD,          smackaud);
83d4a844
     REGISTER_ENCDEC (SONIC,             sonic);
     REGISTER_ENCODER(SONIC_LS,          sonic_ls);
c73c87b4
     REGISTER_DECODER(TAK,               tak);
15b86f48
     REGISTER_ENCDEC (TRUEHD,            truehd);
c73c87b4
     REGISTER_DECODER(TRUESPEECH,        truespeech);
514cb9bb
     REGISTER_ENCDEC (TTA,               tta);
c73c87b4
     REGISTER_DECODER(TWINVQ,            twinvq);
     REGISTER_DECODER(VMDAUDIO,          vmdaudio);
     REGISTER_ENCDEC (VORBIS,            vorbis);
93f42777
     REGISTER_ENCDEC (WAVPACK,           wavpack);
c73c87b4
     REGISTER_DECODER(WMALOSSLESS,       wmalossless);
     REGISTER_DECODER(WMAPRO,            wmapro);
     REGISTER_ENCDEC (WMAV1,             wmav1);
     REGISTER_ENCDEC (WMAV2,             wmav2);
     REGISTER_DECODER(WMAVOICE,          wmavoice);
     REGISTER_DECODER(WS_SND1,           ws_snd1);
b456ece5
     REGISTER_DECODER(XMA1,              xma1);
     REGISTER_DECODER(XMA2,              xma2);
4e114829
 
37ff38c6
     /* PCM codecs */
c73c87b4
     REGISTER_ENCDEC (PCM_ALAW,          pcm_alaw);
     REGISTER_DECODER(PCM_BLURAY,        pcm_bluray);
     REGISTER_DECODER(PCM_DVD,           pcm_dvd);
95fb9e02
     REGISTER_DECODER(PCM_F16LE,         pcm_f16le);
     REGISTER_DECODER(PCM_F24LE,         pcm_f24le);
c73c87b4
     REGISTER_ENCDEC (PCM_F32BE,         pcm_f32be);
     REGISTER_ENCDEC (PCM_F32LE,         pcm_f32le);
     REGISTER_ENCDEC (PCM_F64BE,         pcm_f64be);
     REGISTER_ENCDEC (PCM_F64LE,         pcm_f64le);
     REGISTER_DECODER(PCM_LXF,           pcm_lxf);
     REGISTER_ENCDEC (PCM_MULAW,         pcm_mulaw);
     REGISTER_ENCDEC (PCM_S8,            pcm_s8);
83d4a844
     REGISTER_ENCDEC (PCM_S8_PLANAR,     pcm_s8_planar);
c73c87b4
     REGISTER_ENCDEC (PCM_S16BE,         pcm_s16be);
83d4a844
     REGISTER_ENCDEC (PCM_S16BE_PLANAR,  pcm_s16be_planar);
c73c87b4
     REGISTER_ENCDEC (PCM_S16LE,         pcm_s16le);
83d4a844
     REGISTER_ENCDEC (PCM_S16LE_PLANAR,  pcm_s16le_planar);
c73c87b4
     REGISTER_ENCDEC (PCM_S24BE,         pcm_s24be);
     REGISTER_ENCDEC (PCM_S24DAUD,       pcm_s24daud);
     REGISTER_ENCDEC (PCM_S24LE,         pcm_s24le);
83d4a844
     REGISTER_ENCDEC (PCM_S24LE_PLANAR,  pcm_s24le_planar);
c73c87b4
     REGISTER_ENCDEC (PCM_S32BE,         pcm_s32be);
     REGISTER_ENCDEC (PCM_S32LE,         pcm_s32le);
83d4a844
     REGISTER_ENCDEC (PCM_S32LE_PLANAR,  pcm_s32le_planar);
fc600eff
     REGISTER_ENCDEC (PCM_S64BE,         pcm_s64be);
     REGISTER_ENCDEC (PCM_S64LE,         pcm_s64le);
c73c87b4
     REGISTER_ENCDEC (PCM_U8,            pcm_u8);
     REGISTER_ENCDEC (PCM_U16BE,         pcm_u16be);
     REGISTER_ENCDEC (PCM_U16LE,         pcm_u16le);
     REGISTER_ENCDEC (PCM_U24BE,         pcm_u24be);
     REGISTER_ENCDEC (PCM_U24LE,         pcm_u24le);
     REGISTER_ENCDEC (PCM_U32BE,         pcm_u32be);
     REGISTER_ENCDEC (PCM_U32LE,         pcm_u32le);
83d4a844
     REGISTER_DECODER(PCM_ZORK,          pcm_zork);
fc384777
 
37ff38c6
     /* DPCM codecs */
29bdcf58
     REGISTER_DECODER(GREMLIN_DPCM,      gremlin_dpcm);
c73c87b4
     REGISTER_DECODER(INTERPLAY_DPCM,    interplay_dpcm);
     REGISTER_ENCDEC (ROQ_DPCM,          roq_dpcm);
     REGISTER_DECODER(SOL_DPCM,          sol_dpcm);
     REGISTER_DECODER(XAN_DPCM,          xan_dpcm);
f3902026
 
37ff38c6
     /* ADPCM codecs */
c73c87b4
     REGISTER_DECODER(ADPCM_4XM,         adpcm_4xm);
     REGISTER_ENCDEC (ADPCM_ADX,         adpcm_adx);
83d4a844
     REGISTER_DECODER(ADPCM_AFC,         adpcm_afc);
af3f793f
     REGISTER_DECODER(ADPCM_AICA,        adpcm_aica);
c73c87b4
     REGISTER_DECODER(ADPCM_CT,          adpcm_ct);
e7814ed8
     REGISTER_DECODER(ADPCM_DTK,         adpcm_dtk);
c73c87b4
     REGISTER_DECODER(ADPCM_EA,          adpcm_ea);
     REGISTER_DECODER(ADPCM_EA_MAXIS_XA, adpcm_ea_maxis_xa);
     REGISTER_DECODER(ADPCM_EA_R1,       adpcm_ea_r1);
     REGISTER_DECODER(ADPCM_EA_R2,       adpcm_ea_r2);
     REGISTER_DECODER(ADPCM_EA_R3,       adpcm_ea_r3);
     REGISTER_DECODER(ADPCM_EA_XAS,      adpcm_ea_xas);
     REGISTER_ENCDEC (ADPCM_G722,        adpcm_g722);
     REGISTER_ENCDEC (ADPCM_G726,        adpcm_g726);
898ea658
     REGISTER_ENCDEC (ADPCM_G726LE,      adpcm_g726le);
c73c87b4
     REGISTER_DECODER(ADPCM_IMA_AMV,     adpcm_ima_amv);
     REGISTER_DECODER(ADPCM_IMA_APC,     adpcm_ima_apc);
8a4c3f52
     REGISTER_DECODER(ADPCM_IMA_DAT4,    adpcm_ima_dat4);
c73c87b4
     REGISTER_DECODER(ADPCM_IMA_DK3,     adpcm_ima_dk3);
     REGISTER_DECODER(ADPCM_IMA_DK4,     adpcm_ima_dk4);
     REGISTER_DECODER(ADPCM_IMA_EA_EACS, adpcm_ima_ea_eacs);
     REGISTER_DECODER(ADPCM_IMA_EA_SEAD, adpcm_ima_ea_sead);
     REGISTER_DECODER(ADPCM_IMA_ISS,     adpcm_ima_iss);
83d4a844
     REGISTER_DECODER(ADPCM_IMA_OKI,     adpcm_ima_oki);
c73c87b4
     REGISTER_ENCDEC (ADPCM_IMA_QT,      adpcm_ima_qt);
67fad0d2
     REGISTER_DECODER(ADPCM_IMA_RAD,     adpcm_ima_rad);
c73c87b4
     REGISTER_DECODER(ADPCM_IMA_SMJPEG,  adpcm_ima_smjpeg);
     REGISTER_ENCDEC (ADPCM_IMA_WAV,     adpcm_ima_wav);
     REGISTER_DECODER(ADPCM_IMA_WS,      adpcm_ima_ws);
     REGISTER_ENCDEC (ADPCM_MS,          adpcm_ms);
8c17eea4
     REGISTER_DECODER(ADPCM_MTAF,        adpcm_mtaf);
8b11e437
     REGISTER_DECODER(ADPCM_PSX,         adpcm_psx);
c73c87b4
     REGISTER_DECODER(ADPCM_SBPRO_2,     adpcm_sbpro_2);
     REGISTER_DECODER(ADPCM_SBPRO_3,     adpcm_sbpro_3);
     REGISTER_DECODER(ADPCM_SBPRO_4,     adpcm_sbpro_4);
     REGISTER_ENCDEC (ADPCM_SWF,         adpcm_swf);
     REGISTER_DECODER(ADPCM_THP,         adpcm_thp);
7e7256c3
     REGISTER_DECODER(ADPCM_THP_LE,      adpcm_thp_le);
6f273093
     REGISTER_DECODER(ADPCM_VIMA,        adpcm_vima);
c73c87b4
     REGISTER_DECODER(ADPCM_XA,          adpcm_xa);
     REGISTER_ENCDEC (ADPCM_YAMAHA,      adpcm_yamaha);
8424cf50
 
2c5ee47d
     /* subtitles */
7c1a002c
     REGISTER_ENCDEC (SSA,               ssa);
c73c87b4
     REGISTER_ENCDEC (ASS,               ass);
4b626261
     REGISTER_DECODER(CCAPTION,          ccaption);
c73c87b4
     REGISTER_ENCDEC (DVBSUB,            dvbsub);
     REGISTER_ENCDEC (DVDSUB,            dvdsub);
83d4a844
     REGISTER_DECODER(JACOSUB,           jacosub);
     REGISTER_DECODER(MICRODVD,          microdvd);
     REGISTER_ENCDEC (MOVTEXT,           movtext);
5f02844c
     REGISTER_DECODER(MPL2,              mpl2);
c73c87b4
     REGISTER_DECODER(PGSSUB,            pgssub);
7b434027
     REGISTER_DECODER(PJS,               pjs);
83d4a844
     REGISTER_DECODER(REALTEXT,          realtext);
     REGISTER_DECODER(SAMI,              sami);
     REGISTER_ENCDEC (SRT,               srt);
6dc99fdf
     REGISTER_DECODER(STL,               stl);
83d4a844
     REGISTER_ENCDEC (SUBRIP,            subrip);
     REGISTER_DECODER(SUBVIEWER,         subviewer);
faa94061
     REGISTER_DECODER(SUBVIEWER1,        subviewer1);
f122ba36
     REGISTER_ENCDEC (TEXT,              text);
5c68aae9
     REGISTER_DECODER(VPLAYER,           vplayer);
4372fb7a
     REGISTER_ENCDEC (WEBVTT,            webvtt);
c73c87b4
     REGISTER_ENCDEC (XSUB,              xsub);
240c1657
 
a045e515
     /* external libraries */
65cff814
     REGISTER_ENCDEC (AAC_AT,            aac_at);
d5d32805
     REGISTER_DECODER(AC3_AT,            ac3_at);
     REGISTER_DECODER(ADPCM_IMA_QT_AT,   adpcm_ima_qt_at);
65cff814
     REGISTER_ENCDEC (ALAC_AT,           alac_at);
d5d32805
     REGISTER_DECODER(AMR_NB_AT,         amr_nb_at);
b4daa2c4
     REGISTER_DECODER(EAC3_AT,           eac3_at);
d5d32805
     REGISTER_DECODER(GSM_MS_AT,         gsm_ms_at);
65cff814
     REGISTER_ENCDEC (ILBC_AT,           ilbc_at);
d5d32805
     REGISTER_DECODER(MP1_AT,            mp1_at);
     REGISTER_DECODER(MP2_AT,            mp2_at);
     REGISTER_DECODER(MP3_AT,            mp3_at);
65cff814
     REGISTER_ENCDEC (PCM_ALAW_AT,       pcm_alaw_at);
     REGISTER_ENCDEC (PCM_MULAW_AT,      pcm_mulaw_at);
d5d32805
     REGISTER_DECODER(QDMC_AT,           qdmc_at);
     REGISTER_DECODER(QDM2_AT,           qdm2_at);
83d4a844
     REGISTER_DECODER(LIBCELT,           libcelt);
4f2b469d
     REGISTER_ENCDEC (LIBFDK_AAC,        libfdk_aac);
c73c87b4
     REGISTER_ENCDEC (LIBGSM,            libgsm);
     REGISTER_ENCDEC (LIBGSM_MS,         libgsm_ms);
     REGISTER_ENCDEC (LIBILBC,           libilbc);
     REGISTER_ENCODER(LIBMP3LAME,        libmp3lame);
     REGISTER_ENCDEC (LIBOPENCORE_AMRNB, libopencore_amrnb);
     REGISTER_DECODER(LIBOPENCORE_AMRWB, libopencore_amrwb);
     REGISTER_ENCDEC (LIBOPENJPEG,       libopenjpeg);
     REGISTER_ENCDEC (LIBOPUS,           libopus);
605c5ca3
     REGISTER_DECODER(LIBRSVG,           librsvg);
d1853436
     REGISTER_ENCODER(LIBSHINE,          libshine);
c73c87b4
     REGISTER_ENCDEC (LIBSPEEX,          libspeex);
     REGISTER_ENCODER(LIBTHEORA,         libtheora);
83d4a844
     REGISTER_ENCODER(LIBTWOLAME,        libtwolame);
c73c87b4
     REGISTER_ENCODER(LIBVO_AMRWBENC,    libvo_amrwbenc);
83d4a844
     REGISTER_ENCDEC (LIBVORBIS,         libvorbis);
3f111804
     REGISTER_ENCDEC (LIBVPX_VP8,        libvpx_vp8);
     REGISTER_ENCDEC (LIBVPX_VP9,        libvpx_vp9);
84d3ff50
     REGISTER_ENCODER(LIBWAVPACK,        libwavpack);
02cf59f3
     REGISTER_ENCODER(LIBWEBP_ANIM,      libwebp_anim);  /* preferred over libwebp */
be7c3231
     REGISTER_ENCODER(LIBWEBP,           libwebp);
e1319aa1
     REGISTER_ENCODER(LIBX262,           libx262);
c73c87b4
     REGISTER_ENCODER(LIBX264,           libx264);
83d4a844
     REGISTER_ENCODER(LIBX264RGB,        libx264rgb);
bb6b1731
     REGISTER_ENCODER(LIBX265,           libx265);
c73c87b4
     REGISTER_ENCODER(LIBXAVS,           libxavs);
     REGISTER_ENCODER(LIBXVID,           libxvid);
b339dccb
     REGISTER_DECODER(LIBZVBI_TELETEXT,  libzvbi_teletext);
a045e515
 
07a70cab
     /* text */
83d4a844
     REGISTER_DECODER(BINTEXT,           bintext);
     REGISTER_DECODER(XBIN,              xbin);
     REGISTER_DECODER(IDF,               idf);
07a70cab
 
b21af32a
     /* external libraries, that shouldn't be used by default if one of the
      * above is available */
c1f22c29
     REGISTER_ENCODER(H263_V4L2M2M,      h263_v4l2m2m);
c5d326f5
     REGISTER_ENCDEC (LIBOPENH264,       libopenh264);
88e8aef9
     REGISTER_DECODER(H264_CUVID,        h264_cuvid);
888a5c79
     REGISTER_ENCODER(H264_NVENC,        h264_nvenc);
     REGISTER_ENCODER(H264_OMX,          h264_omx);
72b7441a
     REGISTER_ENCODER(H264_QSV,          h264_qsv);
c1f22c29
     REGISTER_ENCODER(H264_V4L2M2M,      h264_v4l2m2m);
5e1a3ea3
     REGISTER_ENCODER(H264_VAAPI,        h264_vaapi);
3af71ac3
     REGISTER_ENCODER(H264_VIDEOTOOLBOX, h264_videotoolbox);
888a5c79
 #if FF_API_NVENC_OLD_NAME
cc904353
     REGISTER_ENCODER(NVENC,             nvenc);
     REGISTER_ENCODER(NVENC_H264,        nvenc_h264);
     REGISTER_ENCODER(NVENC_HEVC,        nvenc_hevc);
888a5c79
 #endif
88e8aef9
     REGISTER_DECODER(HEVC_CUVID,        hevc_cuvid);
140da8e8
     REGISTER_DECODER(HEVC_MEDIACODEC,   hevc_mediacodec);
888a5c79
     REGISTER_ENCODER(HEVC_NVENC,        hevc_nvenc);
66acb76b
     REGISTER_ENCODER(HEVC_QSV,          hevc_qsv);
c1f22c29
     REGISTER_ENCODER(HEVC_V4L2M2M,      hevc_v4l2m2m);
5e1a3ea3
     REGISTER_ENCODER(HEVC_VAAPI,        hevc_vaapi);
b90b6af7
     REGISTER_ENCODER(LIBKVAZAAR,        libkvazaar);
1891dfe0
     REGISTER_DECODER(MJPEG_CUVID,       mjpeg_cuvid);
5e1a3ea3
     REGISTER_ENCODER(MJPEG_VAAPI,       mjpeg_vaapi);
1891dfe0
     REGISTER_DECODER(MPEG1_CUVID,       mpeg1_cuvid);
     REGISTER_DECODER(MPEG2_CUVID,       mpeg2_cuvid);
3a85397e
     REGISTER_ENCODER(MPEG2_QSV,         mpeg2_qsv);
3b95c7c1
     REGISTER_ENCODER(MPEG2_VAAPI,       mpeg2_vaapi);
1891dfe0
     REGISTER_DECODER(MPEG4_CUVID,       mpeg4_cuvid);
f62c5445
     REGISTER_DECODER(MPEG4_MEDIACODEC,  mpeg4_mediacodec);
c1f22c29
     REGISTER_ENCODER(MPEG4_V4L2M2M,     mpeg4_v4l2m2m);
88e8aef9
     REGISTER_DECODER(VC1_CUVID,         vc1_cuvid);
     REGISTER_DECODER(VP8_CUVID,         vp8_cuvid);
0f7fce87
     REGISTER_DECODER(VP8_MEDIACODEC,    vp8_mediacodec);
e06b8b07
     REGISTER_DECODER(VP8_QSV,           vp8_qsv);
c1f22c29
     REGISTER_ENCODER(VP8_V4L2M2M,       vp8_v4l2m2m);
d1acab82
     REGISTER_ENCODER(VP8_VAAPI,         vp8_vaapi);
88e8aef9
     REGISTER_DECODER(VP9_CUVID,         vp9_cuvid);
0f7fce87
     REGISTER_DECODER(VP9_MEDIACODEC,    vp9_mediacodec);
bde04604
     REGISTER_ENCODER(VP9_VAAPI,         vp9_vaapi);
b21af32a
 
115329f1
     /* parsers */
c73c87b4
     REGISTER_PARSER(AAC,                aac);
     REGISTER_PARSER(AAC_LATM,           aac_latm);
     REGISTER_PARSER(AC3,                ac3);
     REGISTER_PARSER(ADX,                adx);
83d4a844
     REGISTER_PARSER(BMP,                bmp);
c73c87b4
     REGISTER_PARSER(CAVSVIDEO,          cavsvideo);
     REGISTER_PARSER(COOK,               cook);
     REGISTER_PARSER(DCA,                dca);
     REGISTER_PARSER(DIRAC,              dirac);
     REGISTER_PARSER(DNXHD,              dnxhd);
8ec32866
     REGISTER_PARSER(DPX,                dpx);
2edd4758
     REGISTER_PARSER(DVAUDIO,            dvaudio);
c73c87b4
     REGISTER_PARSER(DVBSUB,             dvbsub);
     REGISTER_PARSER(DVDSUB,             dvdsub);
9cde9f70
     REGISTER_PARSER(DVD_NAV,            dvd_nav);
c73c87b4
     REGISTER_PARSER(FLAC,               flac);
0581ab2c
     REGISTER_PARSER(G729,               g729);
c73c87b4
     REGISTER_PARSER(GSM,                gsm);
     REGISTER_PARSER(H261,               h261);
     REGISTER_PARSER(H263,               h263);
     REGISTER_PARSER(H264,               h264);
c8dd048a
     REGISTER_PARSER(HEVC,               hevc);
c73c87b4
     REGISTER_PARSER(MJPEG,              mjpeg);
     REGISTER_PARSER(MLP,                mlp);
     REGISTER_PARSER(MPEG4VIDEO,         mpeg4video);
     REGISTER_PARSER(MPEGAUDIO,          mpegaudio);
     REGISTER_PARSER(MPEGVIDEO,          mpegvideo);
b70d7a4a
     REGISTER_PARSER(OPUS,               opus);
83d4a844
     REGISTER_PARSER(PNG,                png);
c73c87b4
     REGISTER_PARSER(PNM,                pnm);
     REGISTER_PARSER(RV30,               rv30);
     REGISTER_PARSER(RV40,               rv40);
40cf9437
     REGISTER_PARSER(SIPR,               sipr);
c73c87b4
     REGISTER_PARSER(TAK,                tak);
     REGISTER_PARSER(VC1,                vc1);
     REGISTER_PARSER(VORBIS,             vorbis);
     REGISTER_PARSER(VP3,                vp3);
     REGISTER_PARSER(VP8,                vp8);
84d362f0
     REGISTER_PARSER(VP9,                vp9);
5d260992
     REGISTER_PARSER(XMA,                xma);
771b9a70
 }
e85e8408
 
 void avcodec_register_all(void)
 {
     static AVOnce control = AV_ONCE_INIT;
 
     ff_thread_once(&control, register_all);
 }