aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/avcodec.h
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2012-08-05 15:18:00 +0200
committerAnton Khirnov <anton@khirnov.net>2012-08-11 11:32:11 +0200
commitc223d79945b1fafad44c6dfab9f76a1fec96f810 (patch)
tree5c2e9765cd7d04b575f5f9285a7d682a1edea7b3 /libavcodec/avcodec.h
parent2ff67c909c95903240c30405b0b231ba68f5407a (diff)
downloadffmpeg-c223d79945b1fafad44c6dfab9f76a1fec96f810.tar.gz
lavc: add codec descriptors.
They describe properties that are inherent to a codec (as described by an AVCodecID) without referring to a specific implementation.
Diffstat (limited to 'libavcodec/avcodec.h')
-rw-r--r--libavcodec/avcodec.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 8c28b6538a..8753a2f072 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -435,6 +435,26 @@ enum AVCodecID {
#define CodecID AVCodecID
#endif
+/**
+ * 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;
+ /**
+ * Name of the codec described by this descriptor. It is non-empty and
+ * unique for each codec descriptor. It should contain alphanumeric
+ * characters and '_' only.
+ */
+ const char *name;
+ /**
+ * A more descriptive name for this codec. May be NULL.
+ */
+ const char *long_name;
+} AVCodecDescriptor;
+
#if FF_API_OLD_DECODE_AUDIO
/* in bytes */
#define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000 // 1 second of 48khz 32bit audio
@@ -4505,6 +4525,20 @@ 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_descriptor_get(enum AVCodecID id);
+
+/**
+ * Iterate over all codec descriptors known to libavcodec.
+ *
+ * @param prev previous descriptor. NULL to get the first descriptor.
+ *
+ * @return next descriptor or NULL after the last descriptor
+ */
+const AVCodecDescriptor *avcodec_descriptor_next(const AVCodecDescriptor *prev);
+
+/**
* @}
*/