This WIP patch adds descriptors for codec ids, similar to what exists for pixel
formats. They will allow us to export properties that are inherent to a codec,
not its specific implementation. The users will also be able to access them even
if no decoder or encoder is compiled in.

E.g.:

* name -- there is currently no way for the user to get a name of a codec
  without referring to a specific en/decoder.
  The point I'm not decided about is whether we should have two separate fields
  for name/long name or just one (equivalent to long name i suppose).

* type -- avcodec_get_type() is an ugly hack. This would allow to implement it
  cleanly.

* various other properties, like intra only or reordering for video. I'm sure
  people will think of some other.

---
 libavcodec/Makefile     |    1 +
 libavcodec/avcodec.h    |   16 +
 libavcodec/codec_desc.c | 1567 +++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 1584 insertions(+)
 create mode 100644 libavcodec/codec_desc.c

diff --git a/libavcodec/Makefile b/libavcodec/Makefile
index 9bff68f..0f8928b 100644
--- a/libavcodec/Makefile
+++ b/libavcodec/Makefile
@@ -16,6 +16,7 @@ OBJS = allcodecs.o                                            
          \
        avpacket.o                                                       \
        bitstream.o                                                      \
        bitstream_filter.o                                               \
+       codec_desc.o                                                     \
        dsputil.o                                                        \
        faanidct.o                                                       \
        fmtconvert.o                                                     \
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index b807ae4..94b7839 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -430,6 +430,17 @@ enum AVCodecID {
     AV_CODEC_ID_FFMETADATA = 0x21000,   ///< Dummy codec for streams 
containing only metadata information.
 };
 
+/**
+ * This struct describes the properties of a single codec described by an
+ * AVCodecID.
+ * @see avcodec_get_descriptor()
+ */
+typedef struct AVCodecDescriptor {
+    enum AVCodecID     id;
+    enum AVMediaType type;
+    const char      *name;
+} AVCodecDescriptor;
+
 #if FF_API_OLD_DECODE_AUDIO
 /* in bytes */
 #define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000 // 1 second of 48khz 32bit audio
@@ -4500,6 +4511,11 @@ int av_codec_is_encoder(AVCodec *codec);
 int av_codec_is_decoder(AVCodec *codec);
 
 /**
+ * @return descriptor for given codec ID or  NULL if no descriptor exists.
+ */
+const AVCodecDescriptor *avcodec_get_descriptor(enum AVCodecID id);
+
+/**
  * @}
  */
 
diff --git a/libavcodec/codec_desc.c b/libavcodec/codec_desc.c
new file mode 100644
index 0000000..ba2f433
--- /dev/null
+++ b/libavcodec/codec_desc.c
@@ -0,0 +1,1567 @@
+/*
+ * This file is part of Libav.
+ *
+ * Libav is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * Libav is distributed in the hope that it will be useful,
+ * 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
+ * License along with Libav; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include "avcodec.h"
+
+static const AVCodecDescriptor codec_descriptors[] = {
+    /* video codecs */
+    {
+        .id    = AV_CODEC_ID_MPEG1VIDEO,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "MPEG1VIDEO",
+    },
+    {
+        .id    = AV_CODEC_ID_MPEG2VIDEO,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "MPEG2VIDEO",
+    },
+    {
+        .id    = AV_CODEC_ID_MPEG2VIDEO_XVMC,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "MPEG2VIDEO_XVMC",
+    },
+    {
+        .id    = AV_CODEC_ID_H261,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "H.261",
+    },
+    {
+        .id    = AV_CODEC_ID_H263,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "H.263",
+    },
+    {
+        .id    = AV_CODEC_ID_RV10,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "RV10",
+    },
+    {
+        .id    = AV_CODEC_ID_RV20,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "RV20",
+    },
+    {
+        .id    = AV_CODEC_ID_MJPEG,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "MJPEG",
+    },
+    {
+        .id    = AV_CODEC_ID_MJPEGB,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "MJPEGB",
+    },
+    {
+        .id    = AV_CODEC_ID_LJPEG,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "LJPEG",
+    },
+    {
+        .id    = AV_CODEC_ID_SP5X,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "SP5X",
+    },
+    {
+        .id    = AV_CODEC_ID_JPEGLS,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "JPEGLS",
+    },
+    {
+        .id    = AV_CODEC_ID_MPEG4,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "MPEG4",
+    },
+    {
+        .id    = AV_CODEC_ID_RAWVIDEO,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "RAWVIDEO",
+    },
+    {
+        .id    = AV_CODEC_ID_MSMPEG4V1,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "MSMPEG4V1",
+    },
+    {
+        .id    = AV_CODEC_ID_MSMPEG4V2,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "MSMPEG4V2",
+    },
+    {
+        .id    = AV_CODEC_ID_MSMPEG4V3,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "MSMPEG4V3",
+    },
+    {
+        .id    = AV_CODEC_ID_WMV1,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "WMV1",
+    },
+    {
+        .id    = AV_CODEC_ID_WMV2,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "WMV2",
+    },
+    {
+        .id    = AV_CODEC_ID_H263P,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "H.263P",
+    },
+    {
+        .id    = AV_CODEC_ID_H263I,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "H.263I",
+    },
+    {
+        .id    = AV_CODEC_ID_FLV1,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "FLV1",
+    },
+    {
+        .id    = AV_CODEC_ID_SVQ1,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "SVQ1",
+    },
+    {
+        .id    = AV_CODEC_ID_SVQ3,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "SVQ3",
+    },
+    {
+        .id    = AV_CODEC_ID_DVVIDEO,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "DVVIDEO",
+    },
+    {
+        .id    = AV_CODEC_ID_HUFFYUV,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "HUFFYUV",
+    },
+    {
+        .id    = AV_CODEC_ID_CYUV,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "CYUV",
+    },
+    {
+        .id    = AV_CODEC_ID_H264,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "H.264",
+    },
+    {
+        .id    = AV_CODEC_ID_INDEO3,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "INDEO3",
+    },
+    {
+        .id    = AV_CODEC_ID_VP3,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "VP3",
+    },
+    {
+        .id    = AV_CODEC_ID_THEORA,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "THEORA",
+    },
+    {
+        .id    = AV_CODEC_ID_ASV1,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "ASV1",
+    },
+    {
+        .id    = AV_CODEC_ID_ASV2,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "ASV2",
+    },
+    {
+        .id    = AV_CODEC_ID_FFV1,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "FFV1",
+    },
+    {
+        .id    = AV_CODEC_ID_4XM,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "4XM",
+    },
+    {
+        .id    = AV_CODEC_ID_VCR1,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "VCR1",
+    },
+    {
+        .id    = AV_CODEC_ID_CLJR,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "CLJR",
+    },
+    {
+        .id    = AV_CODEC_ID_MDEC,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "MDEC",
+    },
+    {
+        .id    = AV_CODEC_ID_ROQ,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "ROQ",
+    },
+    {
+        .id    = AV_CODEC_ID_INTERPLAY_VIDEO,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "INTERPLAY_VIDEO",
+    },
+    {
+        .id    = AV_CODEC_ID_XAN_WC3,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "XAN_WC3",
+    },
+    {
+        .id    = AV_CODEC_ID_XAN_WC4,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "XAN_WC4",
+    },
+    {
+        .id    = AV_CODEC_ID_RPZA,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "RPZA",
+    },
+    {
+        .id    = AV_CODEC_ID_CINEPAK,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "CINEPAK",
+    },
+    {
+        .id    = AV_CODEC_ID_WS_VQA,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "WS_VQA",
+    },
+    {
+        .id    = AV_CODEC_ID_MSRLE,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "MSRLE",
+    },
+    {
+        .id    = AV_CODEC_ID_MSVIDEO1,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "MSVIDEO1",
+    },
+    {
+        .id    = AV_CODEC_ID_IDCIN,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "IDCIN",
+    },
+    {
+        .id    = AV_CODEC_ID_8BPS,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "8BPS",
+    },
+    {
+        .id    = AV_CODEC_ID_SMC,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "SMC",
+    },
+    {
+        .id    = AV_CODEC_ID_FLIC,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "FLIC",
+    },
+    {
+        .id    = AV_CODEC_ID_TRUEMOTION1,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "TRUEMOTION1",
+    },
+    {
+        .id    = AV_CODEC_ID_VMDVIDEO,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "VMDVIDEO",
+    },
+    {
+        .id    = AV_CODEC_ID_MSZH,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "MSZH",
+    },
+    {
+        .id    = AV_CODEC_ID_ZLIB,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "ZLIB",
+    },
+    {
+        .id    = AV_CODEC_ID_QTRLE,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "QTRLE",
+    },
+    {
+        .id    = AV_CODEC_ID_SNOW,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "SNOW",
+    },
+    {
+        .id    = AV_CODEC_ID_TSCC,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "TSCC",
+    },
+    {
+        .id    = AV_CODEC_ID_ULTI,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "ULTI",
+    },
+    {
+        .id    = AV_CODEC_ID_QDRAW,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "QDRAW",
+    },
+    {
+        .id    = AV_CODEC_ID_VIXL,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "VIXL",
+    },
+    {
+        .id    = AV_CODEC_ID_QPEG,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "QPEG",
+    },
+    {
+        .id    = AV_CODEC_ID_PNG,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "PNG",
+    },
+    {
+        .id    = AV_CODEC_ID_PPM,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "PPM",
+    },
+    {
+        .id    = AV_CODEC_ID_PBM,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "PBM",
+    },
+    {
+        .id    = AV_CODEC_ID_PGM,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "PGM",
+    },
+    {
+        .id    = AV_CODEC_ID_PGMYUV,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "PGMYUV",
+    },
+    {
+        .id    = AV_CODEC_ID_PAM,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "PAM",
+    },
+    {
+        .id    = AV_CODEC_ID_FFVHUFF,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "FFVHUFF",
+    },
+    {
+        .id    = AV_CODEC_ID_RV30,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "RV30",
+    },
+    {
+        .id    = AV_CODEC_ID_RV40,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "RV40",
+    },
+    {
+        .id    = AV_CODEC_ID_VC1,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "VC1",
+    },
+    {
+        .id    = AV_CODEC_ID_WMV3,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "WMV3",
+    },
+    {
+        .id    = AV_CODEC_ID_LOCO,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "LOCO",
+    },
+    {
+        .id    = AV_CODEC_ID_WNV1,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "WNV1",
+    },
+    {
+        .id    = AV_CODEC_ID_AASC,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "AASC",
+    },
+    {
+        .id    = AV_CODEC_ID_INDEO2,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "INDEO2",
+    },
+    {
+        .id    = AV_CODEC_ID_FRAPS,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "FRAPS",
+    },
+    {
+        .id    = AV_CODEC_ID_TRUEMOTION2,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "TRUEMOTION2",
+    },
+    {
+        .id    = AV_CODEC_ID_BMP,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "BMP",
+    },
+    {
+        .id    = AV_CODEC_ID_CSCD,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "CSCD",
+    },
+    {
+        .id    = AV_CODEC_ID_MMVIDEO,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "MMVIDEO",
+    },
+    {
+        .id    = AV_CODEC_ID_ZMBV,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "ZMBV",
+    },
+    {
+        .id    = AV_CODEC_ID_AVS,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "AVS",
+    },
+    {
+        .id    = AV_CODEC_ID_SMACKVIDEO,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "SMACKVIDEO",
+    },
+    {
+        .id    = AV_CODEC_ID_NUV,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "NUV",
+    },
+    {
+        .id    = AV_CODEC_ID_KMVC,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "KMVC",
+    },
+    {
+        .id    = AV_CODEC_ID_FLASHSV,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "FLASHSV",
+    },
+    {
+        .id    = AV_CODEC_ID_CAVS,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "CAVS",
+    },
+    {
+        .id    = AV_CODEC_ID_JPEG2000,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "JPEG2000",
+    },
+    {
+        .id    = AV_CODEC_ID_VMNC,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "VMNC",
+    },
+    {
+        .id    = AV_CODEC_ID_VP5,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "VP5",
+    },
+    {
+        .id    = AV_CODEC_ID_VP6,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "VP6",
+    },
+    {
+        .id    = AV_CODEC_ID_VP6F,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "VP6F",
+    },
+    {
+        .id    = AV_CODEC_ID_TARGA,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "TARGA",
+    },
+    {
+        .id    = AV_CODEC_ID_DSICINVIDEO,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "DSICINVIDEO",
+    },
+    {
+        .id    = AV_CODEC_ID_TIERTEXSEQVIDEO,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "TIERTEXSEQVIDEO",
+    },
+    {
+        .id    = AV_CODEC_ID_TIFF,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "TIFF",
+    },
+    {
+        .id    = AV_CODEC_ID_GIF,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "GIF",
+    },
+    {
+        .id    = AV_CODEC_ID_DXA,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "DXA",
+    },
+    {
+        .id    = AV_CODEC_ID_DNXHD,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "DNXHD",
+    },
+    {
+        .id    = AV_CODEC_ID_THP,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "THP",
+    },
+    {
+        .id    = AV_CODEC_ID_SGI,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "SGI",
+    },
+    {
+        .id    = AV_CODEC_ID_C93,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "C93",
+    },
+    {
+        .id    = AV_CODEC_ID_BETHSOFTVID,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "BETHSOFTVID",
+    },
+    {
+        .id    = AV_CODEC_ID_PTX,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "PTX",
+    },
+    {
+        .id    = AV_CODEC_ID_TXD,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "TXD",
+    },
+    {
+        .id    = AV_CODEC_ID_VP6A,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "VP6A",
+    },
+    {
+        .id    = AV_CODEC_ID_AMV,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "AMV",
+    },
+    {
+        .id    = AV_CODEC_ID_VB,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "VB",
+    },
+    {
+        .id    = AV_CODEC_ID_PCX,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "PCX",
+    },
+    {
+        .id    = AV_CODEC_ID_SUNRAST,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "SUNRAST",
+    },
+    {
+        .id    = AV_CODEC_ID_INDEO4,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "INDEO4",
+    },
+    {
+        .id    = AV_CODEC_ID_INDEO5,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "INDEO5",
+    },
+    {
+        .id    = AV_CODEC_ID_MIMIC,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "MIMIC",
+    },
+    {
+        .id    = AV_CODEC_ID_RL2,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "RL2",
+    },
+    {
+        .id    = AV_CODEC_ID_ESCAPE124,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "ESCAPE124",
+    },
+    {
+        .id    = AV_CODEC_ID_DIRAC,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "DIRAC",
+    },
+    {
+        .id    = AV_CODEC_ID_BFI,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "BFI",
+    },
+    {
+        .id    = AV_CODEC_ID_CMV,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "CMV",
+    },
+    {
+        .id    = AV_CODEC_ID_MOTIONPIXELS,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "MOTIONPIXELS",
+    },
+    {
+        .id    = AV_CODEC_ID_TGV,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "TGV",
+    },
+    {
+        .id    = AV_CODEC_ID_TGQ,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "TGQ",
+    },
+    {
+        .id    = AV_CODEC_ID_TQI,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "TQI",
+    },
+    {
+        .id    = AV_CODEC_ID_AURA,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "AURA",
+    },
+    {
+        .id    = AV_CODEC_ID_AURA2,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "AURA2",
+    },
+    {
+        .id    = AV_CODEC_ID_V210X,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "V210X",
+    },
+    {
+        .id    = AV_CODEC_ID_TMV,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "TMV",
+    },
+    {
+        .id    = AV_CODEC_ID_V210,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "V210",
+    },
+    {
+        .id    = AV_CODEC_ID_DPX,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "DPX",
+    },
+    {
+        .id    = AV_CODEC_ID_MAD,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "MAD",
+    },
+    {
+        .id    = AV_CODEC_ID_FRWU,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "FRWU",
+    },
+    {
+        .id    = AV_CODEC_ID_FLASHSV2,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "FLASHSV2",
+    },
+    {
+        .id    = AV_CODEC_ID_CDGRAPHICS,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "CDGRAPHICS",
+    },
+    {
+        .id    = AV_CODEC_ID_R210,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "R210",
+    },
+    {
+        .id    = AV_CODEC_ID_ANM,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "ANM",
+    },
+    {
+        .id    = AV_CODEC_ID_BINKVIDEO,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "BINKVIDEO",
+    },
+    {
+        .id    = AV_CODEC_ID_IFF_ILBM,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "IFF_ILBM",
+    },
+    {
+        .id    = AV_CODEC_ID_IFF_BYTERUN1,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "IFF_BYTERUN1",
+    },
+    {
+        .id    = AV_CODEC_ID_KGV1,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "KGV1",
+    },
+    {
+        .id    = AV_CODEC_ID_YOP,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "YOP",
+    },
+    {
+        .id    = AV_CODEC_ID_VP8,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "VP8",
+    },
+    {
+        .id    = AV_CODEC_ID_PICTOR,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "PICTOR",
+    },
+    {
+        .id    = AV_CODEC_ID_ANSI,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "ANSI",
+    },
+    {
+        .id    = AV_CODEC_ID_A64_MULTI,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "A64_MULTI",
+    },
+    {
+        .id    = AV_CODEC_ID_A64_MULTI5,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "A64_MULTI5",
+    },
+    {
+        .id    = AV_CODEC_ID_R10K,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "R10K",
+    },
+    {
+        .id    = AV_CODEC_ID_MXPEG,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "MXPEG",
+    },
+    {
+        .id    = AV_CODEC_ID_LAGARITH,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "LAGARITH",
+    },
+    {
+        .id    = AV_CODEC_ID_PRORES,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "PRORES",
+    },
+    {
+        .id    = AV_CODEC_ID_JV,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "JV",
+    },
+    {
+        .id    = AV_CODEC_ID_DFA,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "DFA",
+    },
+    {
+        .id    = AV_CODEC_ID_WMV3IMAGE,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "WMV3IMAGE",
+    },
+    {
+        .id    = AV_CODEC_ID_VC1IMAGE,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "VC1IMAGE",
+    },
+    {
+        .id    = AV_CODEC_ID_UTVIDEO,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "UTVIDEO",
+    },
+    {
+        .id    = AV_CODEC_ID_BMV_VIDEO,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "BMV_VIDEO",
+    },
+    {
+        .id    = AV_CODEC_ID_VBLE,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "VBLE",
+    },
+    {
+        .id    = AV_CODEC_ID_DXTORY,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "DXTORY",
+    },
+    {
+        .id    = AV_CODEC_ID_V410,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "V410",
+    },
+    {
+        .id    = AV_CODEC_ID_XWD,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "XWD",
+    },
+    {
+        .id    = AV_CODEC_ID_CDXL,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "CDXL",
+    },
+    {
+        .id    = AV_CODEC_ID_XBM,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "XBM",
+    },
+    {
+        .id    = AV_CODEC_ID_ZEROCODEC,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "ZEROCODEC",
+    },
+    {
+        .id    = AV_CODEC_ID_MSS1,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "MSS1",
+    },
+    {
+        .id    = AV_CODEC_ID_MSA1,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "MSA1",
+    },
+    {
+        .id    = AV_CODEC_ID_TSCC2,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "TSCC2",
+    },
+    {
+        .id    = AV_CODEC_ID_MTS2,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "MTS2",
+    },
+    {
+        .id    = AV_CODEC_ID_CLLC,
+        .type  = AVMEDIA_TYPE_VIDEO,
+        .name  = "CLLC",
+    },
+
+    /* various PCM "codecs" */
+    {
+        .id    = AV_CODEC_ID_PCM_S16LE,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "PCM_S16LE"
+    },
+    {
+        .id    = AV_CODEC_ID_PCM_S16BE,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "PCM_S16BE",
+    },
+    {
+        .id    = AV_CODEC_ID_PCM_U16LE,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "PCM_U16LE",
+    },
+    {
+        .id    = AV_CODEC_ID_PCM_U16BE,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "PCM_U16BE",
+    },
+    {
+        .id    = AV_CODEC_ID_PCM_S8,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "PCM_S8",
+    },
+    {
+        .id    = AV_CODEC_ID_PCM_U8,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "PCM_U8",
+    },
+    {
+        .id    = AV_CODEC_ID_PCM_MULAW,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "PCM_MULAW",
+    },
+    {
+        .id    = AV_CODEC_ID_PCM_ALAW,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "PCM_ALAW",
+    },
+    {
+        .id    = AV_CODEC_ID_PCM_S32LE,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "PCM_S32LE",
+    },
+    {
+        .id    = AV_CODEC_ID_PCM_S32BE,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "PCM_S32BE",
+    },
+    {
+        .id    = AV_CODEC_ID_PCM_U32LE,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "PCM_U32LE",
+    },
+    {
+        .id    = AV_CODEC_ID_PCM_U32BE,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "PCM_U32BE",
+    },
+    {
+        .id    = AV_CODEC_ID_PCM_S24LE,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "PCM_S24LE",
+    },
+    {
+        .id    = AV_CODEC_ID_PCM_S24BE,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "PCM_S24BE",
+    },
+    {
+        .id    = AV_CODEC_ID_PCM_U24LE,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "PCM_U24LE",
+    },
+    {
+        .id    = AV_CODEC_ID_PCM_U24BE,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "PCM_U24BE",
+    },
+    {
+        .id    = AV_CODEC_ID_PCM_S24DAUD,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "PCM_S24DAUD",
+    },
+    {
+        .id    = AV_CODEC_ID_PCM_ZORK,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "PCM_ZORK",
+    },
+    {
+        .id    = AV_CODEC_ID_PCM_S16LE_PLANAR,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "PCM_S16LE_PLANAR",
+    },
+    {
+        .id    = AV_CODEC_ID_PCM_DVD,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "PCM_DVD",
+    },
+    {
+        .id    = AV_CODEC_ID_PCM_F32BE,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "PCM_F32BE",
+    },
+    {
+        .id    = AV_CODEC_ID_PCM_F32LE,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "PCM_F32LE",
+    },
+    {
+        .id    = AV_CODEC_ID_PCM_F64BE,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "PCM_F64BE",
+    },
+    {
+        .id    = AV_CODEC_ID_PCM_F64LE,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "PCM_F64LE",
+    },
+    {
+        .id    = AV_CODEC_ID_PCM_BLURAY,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "PCM_BLURAY",
+    },
+    {
+        .id    = AV_CODEC_ID_PCM_LXF,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "PCM_LXF",
+    },
+    {
+        .id    = AV_CODEC_ID_S302M,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "S302M",
+    },
+    {
+        .id    = AV_CODEC_ID_PCM_S8_PLANAR,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "PCM_S8_PLANAR",
+    },
+
+    /* various ADPCM codecs */
+    {
+        .id    = AV_CODEC_ID_ADPCM_IMA_QT,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ADPCM_IMA_QT",
+    },
+    {
+        .id    = AV_CODEC_ID_ADPCM_IMA_WAV,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ADPCM_IMA_WAV",
+    },
+    {
+        .id    = AV_CODEC_ID_ADPCM_IMA_DK3,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ADPCM_IMA_DK3",
+    },
+    {
+        .id    = AV_CODEC_ID_ADPCM_IMA_DK4,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ADPCM_IMA_DK4",
+    },
+    {
+        .id    = AV_CODEC_ID_ADPCM_IMA_WS,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ADPCM_IMA_WS",
+    },
+    {
+        .id    = AV_CODEC_ID_ADPCM_IMA_SMJPEG,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ADPCM_IMA_SMJPEG",
+    },
+    {
+        .id    = AV_CODEC_ID_ADPCM_MS,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ADPCM_MS",
+    },
+    {
+        .id    = AV_CODEC_ID_ADPCM_4XM,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ADPCM_4XM",
+    },
+    {
+        .id    = AV_CODEC_ID_ADPCM_XA,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ADPCM_XA",
+    },
+    {
+        .id    = AV_CODEC_ID_ADPCM_ADX,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ADPCM_ADX",
+    },
+    {
+        .id    = AV_CODEC_ID_ADPCM_EA,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ADPCM_EA",
+    },
+    {
+        .id    = AV_CODEC_ID_ADPCM_G726,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ADPCM_G726",
+    },
+    {
+        .id    = AV_CODEC_ID_ADPCM_CT,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ADPCM_CT",
+    },
+    {
+        .id    = AV_CODEC_ID_ADPCM_SWF,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ADPCM_SWF",
+    },
+    {
+        .id    = AV_CODEC_ID_ADPCM_YAMAHA,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ADPCM_YAMAHA",
+    },
+    {
+        .id    = AV_CODEC_ID_ADPCM_SBPRO_4,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ADPCM_SBPRO_4",
+    },
+    {
+        .id    = AV_CODEC_ID_ADPCM_SBPRO_3,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ADPCM_SBPRO_3",
+    },
+    {
+        .id    = AV_CODEC_ID_ADPCM_SBPRO_2,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ADPCM_SBPRO_2",
+    },
+    {
+        .id    = AV_CODEC_ID_ADPCM_THP,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ADPCM_THP",
+    },
+    {
+        .id    = AV_CODEC_ID_ADPCM_IMA_AMV,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ADPCM_IMA_AMV",
+    },
+    {
+        .id    = AV_CODEC_ID_ADPCM_EA_R1,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ADPCM_EA_R1",
+    },
+    {
+        .id    = AV_CODEC_ID_ADPCM_EA_R3,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ADPCM_EA_R3",
+    },
+    {
+        .id    = AV_CODEC_ID_ADPCM_EA_R2,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ADPCM_EA_R2",
+    },
+    {
+        .id    = AV_CODEC_ID_ADPCM_IMA_EA_SEAD,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ADPCM_IMA_EA_SEAD",
+    },
+    {
+        .id    = AV_CODEC_ID_ADPCM_IMA_EA_EACS,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ADPCM_IMA_EA_EACS",
+    },
+    {
+        .id    = AV_CODEC_ID_ADPCM_EA_XAS,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ADPCM_EA_XAS",
+    },
+    {
+        .id    = AV_CODEC_ID_ADPCM_EA_MAXIS_XA,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ADPCM_EA_MAXIS_XA",
+    },
+    {
+        .id    = AV_CODEC_ID_ADPCM_IMA_ISS,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ADPCM_IMA_ISS",
+    },
+    {
+        .id    = AV_CODEC_ID_ADPCM_G722,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ADPCM_G722",
+    },
+    {
+        .id    = AV_CODEC_ID_ADPCM_IMA_APC,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ADPCM_IMA_APC",
+    },
+
+    /* AMR */
+    {
+        .id    = AV_CODEC_ID_AMR_NB,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "AMR_NB",
+    },
+    {
+        .id    = AV_CODEC_ID_AMR_WB,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "AMR_WB",
+    },
+
+    /* RealAudio codecs*/
+    {
+        .id    = AV_CODEC_ID_RA_144,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "RA_144",
+    },
+    {
+        .id    = AV_CODEC_ID_RA_288,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "RA_288",
+    },
+
+    /* various DPCM codecs */
+    {
+        .id    = AV_CODEC_ID_ROQ_DPCM,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ROQ_DPCM",
+    },
+    {
+        .id    = AV_CODEC_ID_INTERPLAY_DPCM,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "INTERPLAY_DPCM",
+    },
+    {
+        .id    = AV_CODEC_ID_XAN_DPCM,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "XAN_DPCM",
+    },
+    {
+        .id    = AV_CODEC_ID_SOL_DPCM,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "SOL_DPCM",
+    },
+
+    /* audio codecs */
+    {
+        .id    = AV_CODEC_ID_MP2,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "MP2",
+    },
+    {
+        .id    = AV_CODEC_ID_MP3,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "MP3",
+    },
+    {
+        .id    = AV_CODEC_ID_AAC,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "AAC",
+    },
+    {
+        .id    = AV_CODEC_ID_AC3,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "AC3",
+    },
+    {
+        .id    = AV_CODEC_ID_DTS,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "DTS",
+    },
+    {
+        .id    = AV_CODEC_ID_VORBIS,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "VORBIS",
+    },
+    {
+        .id    = AV_CODEC_ID_DVAUDIO,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "DVAUDIO",
+    },
+    {
+        .id    = AV_CODEC_ID_WMAV1,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "WMAV1",
+    },
+    {
+        .id    = AV_CODEC_ID_WMAV2,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "WMAV2",
+    },
+    {
+        .id    = AV_CODEC_ID_MACE3,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "MACE3",
+    },
+    {
+        .id    = AV_CODEC_ID_MACE6,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "MACE6",
+    },
+    {
+        .id    = AV_CODEC_ID_VMDAUDIO,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "VMDAUDIO",
+    },
+    {
+        .id    = AV_CODEC_ID_FLAC,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "FLAC",
+    },
+    {
+        .id    = AV_CODEC_ID_MP3ADU,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "MP3ADU",
+    },
+    {
+        .id    = AV_CODEC_ID_MP3ON4,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "MP3ON4",
+    },
+    {
+        .id    = AV_CODEC_ID_SHORTEN,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "SHORTEN",
+    },
+    {
+        .id    = AV_CODEC_ID_ALAC,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ALAC",
+    },
+    {
+        .id    = AV_CODEC_ID_WESTWOOD_SND1,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "WESTWOOD_SND1",
+    },
+    {
+        .id    = AV_CODEC_ID_GSM,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "GSM",
+    },
+    {
+        .id    = AV_CODEC_ID_QDM2,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "QDM2",
+    },
+    {
+        .id    = AV_CODEC_ID_COOK,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "COOK",
+    },
+    {
+        .id    = AV_CODEC_ID_TRUESPEECH,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "TRUESPEECH",
+    },
+    {
+        .id    = AV_CODEC_ID_TTA,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "TTA",
+    },
+    {
+        .id    = AV_CODEC_ID_SMACKAUDIO,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "SMACKAUDIO",
+    },
+    {
+        .id    = AV_CODEC_ID_QCELP,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "QCELP",
+    },
+    {
+        .id    = AV_CODEC_ID_WAVPACK,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "WAVPACK",
+    },
+    {
+        .id    = AV_CODEC_ID_DSICINAUDIO,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "DSICINAUDIO",
+    },
+    {
+        .id    = AV_CODEC_ID_IMC,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "IMC",
+    },
+    {
+        .id    = AV_CODEC_ID_MUSEPACK7,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "MUSEPACK7",
+    },
+    {
+        .id    = AV_CODEC_ID_MLP,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "MLP",
+    },
+    {
+        .id    = AV_CODEC_ID_GSM_MS,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "GSM_MS",
+    },
+    {
+        .id    = AV_CODEC_ID_ATRAC3,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ATRAC3",
+    },
+    {
+        .id    = AV_CODEC_ID_VOXWARE,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "VOXWARE",
+    },
+    {
+        .id    = AV_CODEC_ID_APE,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "APE",
+    },
+    {
+        .id    = AV_CODEC_ID_NELLYMOSER,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "NELLYMOSER",
+    },
+    {
+        .id    = AV_CODEC_ID_MUSEPACK8,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "MUSEPACK8",
+    },
+    {
+        .id    = AV_CODEC_ID_SPEEX,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "SPEEX",
+    },
+    {
+        .id    = AV_CODEC_ID_WMAVOICE,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "WMAVOICE",
+    },
+    {
+        .id    = AV_CODEC_ID_WMAPRO,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "WMAPRO",
+    },
+    {
+        .id    = AV_CODEC_ID_WMALOSSLESS,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "WMALOSSLESS",
+    },
+    {
+        .id    = AV_CODEC_ID_ATRAC3P,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ATRAC3P",
+    },
+    {
+        .id    = AV_CODEC_ID_EAC3,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "EAC3",
+    },
+    {
+        .id    = AV_CODEC_ID_SIPR,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "SIPR",
+    },
+    {
+        .id    = AV_CODEC_ID_MP1,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "MP1",
+    },
+    {
+        .id    = AV_CODEC_ID_TWINVQ,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "TWINVQ",
+    },
+    {
+        .id    = AV_CODEC_ID_TRUEHD,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "TRUEHD",
+    },
+    {
+        .id    = AV_CODEC_ID_MP4ALS,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "MP4ALS",
+    },
+    {
+        .id    = AV_CODEC_ID_ATRAC1,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ATRAC1",
+    },
+    {
+        .id    = AV_CODEC_ID_BINKAUDIO_RDFT,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "BINKAUDIO_RDFT",
+    },
+    {
+        .id    = AV_CODEC_ID_BINKAUDIO_DCT,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "BINKAUDIO_DCT",
+    },
+    {
+        .id    = AV_CODEC_ID_AAC_LATM,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "AAC_LATM",
+    },
+    {
+        .id    = AV_CODEC_ID_QDMC,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "QDMC",
+    },
+    {
+        .id    = AV_CODEC_ID_CELT,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "CELT",
+    },
+    {
+        .id    = AV_CODEC_ID_G723_1,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "G723_1",
+    },
+    {
+        .id    = AV_CODEC_ID_G729,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "G729",
+    },
+    {
+        .id    = AV_CODEC_ID_8SVX_EXP,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "8SVX_EXP",
+    },
+    {
+        .id    = AV_CODEC_ID_8SVX_FIB,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "8SVX_FIB",
+    },
+    {
+        .id    = AV_CODEC_ID_BMV_AUDIO,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "BMV_AUDIO",
+    },
+    {
+        .id    = AV_CODEC_ID_RALF,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "RALF",
+    },
+    {
+        .id    = AV_CODEC_ID_IAC,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "IAC",
+    },
+    {
+        .id    = AV_CODEC_ID_ILBC,
+        .type  = AVMEDIA_TYPE_AUDIO,
+        .name  = "ILBC",
+    },
+
+    /* subtitle codecs */
+    {
+        .id    = AV_CODEC_ID_DVD_SUBTITLE,
+        .type  = AVMEDIA_TYPE_SUBTITLE,
+        .name  = "DVD_SUBTITLE",
+    },
+    {
+        .id    = AV_CODEC_ID_DVB_SUBTITLE,
+        .type  = AVMEDIA_TYPE_SUBTITLE,
+        .name  = "DVB_SUBTITLE",
+    },
+    {
+        .id    = AV_CODEC_ID_TEXT,
+        .type  = AVMEDIA_TYPE_SUBTITLE,
+        .name  = "TEXT",
+    },
+    {
+        .id    = AV_CODEC_ID_XSUB,
+        .type  = AVMEDIA_TYPE_SUBTITLE,
+        .name  = "XSUB",
+    },
+    {
+        .id    = AV_CODEC_ID_SSA,
+        .type  = AVMEDIA_TYPE_SUBTITLE,
+        .name  = "SSA",
+    },
+    {
+        .id    = AV_CODEC_ID_MOV_TEXT,
+        .type  = AVMEDIA_TYPE_SUBTITLE,
+        .name  = "MOV_TEXT",
+    },
+    {
+        .id    = AV_CODEC_ID_HDMV_PGS_SUBTITLE,
+        .type  = AVMEDIA_TYPE_SUBTITLE,
+        .name  = "HDMV_PGS_SUBTITLE",
+    },
+    {
+        .id    = AV_CODEC_ID_DVB_TELETEXT,
+        .type  = AVMEDIA_TYPE_SUBTITLE,
+        .name  = "DVB_TELETEXT",
+    },
+    {
+        .id    = AV_CODEC_ID_SRT,
+        .type  = AVMEDIA_TYPE_SUBTITLE,
+        .name  = "SRT",
+    },
+};
+
+const AVCodecDescriptor *avcodec_get_descriptor(enum AVCodecID id)
+{
+    int i;
+
+    for (i = 0; i < FF_ARRAY_ELEMS(codec_descriptors); i++)
+        if (codec_descriptors[i].id == id)
+            return &codec_descriptors[i];
+    return NULL;
+}
-- 
1.7.10.4

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to