Browse Source

lavc: add codec descriptors.

They describe properties that are inherent to a codec (as described by
an AVCodecID) without referring to a specific implementation.
tags/n1.0
Anton Khirnov 13 years ago
parent
commit
c223d79945
3 changed files with 1913 additions and 0 deletions
  1. +1
    -0
      libavcodec/Makefile
  2. +34
    -0
      libavcodec/avcodec.h
  3. +1878
    -0
      libavcodec/codec_desc.c

+ 1
- 0
libavcodec/Makefile View File

@@ -16,6 +16,7 @@ OBJS = allcodecs.o \
avpacket.o \
bitstream.o \
bitstream_filter.o \
codec_desc.o \
dsputil.o \
faanidct.o \
fmtconvert.o \


+ 34
- 0
libavcodec/avcodec.h View File

@@ -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);

/**
* @}
*/


+ 1878
- 0
libavcodec/codec_desc.c
File diff suppressed because it is too large
View File


Loading…
Cancel
Save