From c223d79945b1fafad44c6dfab9f76a1fec96f810 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Sun, 5 Aug 2012 15:18:00 +0200 Subject: lavc: add codec descriptors. They describe properties that are inherent to a codec (as described by an AVCodecID) without referring to a specific implementation. --- libavcodec/avcodec.h | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'libavcodec/avcodec.h') 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 @@ -4504,6 +4524,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); + /** * @} */ -- cgit v1.2.3