diff options
author | Anton Khirnov <anton@khirnov.net> | 2012-08-05 17:18:00 +0400 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2012-08-11 13:32:11 +0400 |
commit | c223d79945b1fafad44c6dfab9f76a1fec96f810 (patch) | |
tree | 5c2e9765cd7d04b575f5f9285a7d682a1edea7b3 /libavcodec/avcodec.h | |
parent | 2ff67c909c95903240c30405b0b231ba68f5407a (diff) |
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.h | 34 |
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); + +/** * @} */ |