diff options
author | Anssi Hannula <anssi.hannula@iki.fi> | 2011-01-07 22:27:26 +0000 |
---|---|---|
committer | Carl Eugen Hoyos <cehoyos@rainbow.studorg.tuwien.ac.at> | 2011-01-07 22:27:26 +0000 |
commit | 060ec0a8294d912f694cf48546f1543805f83a48 (patch) | |
tree | 99ce4f4ec8cd7f90b6d6f557b49727af957c1225 | |
parent | f2953365d1c1da8c1e586270c6eb2c7437c77a9f (diff) | |
download | ffmpeg-060ec0a8294d912f694cf48546f1543805f83a48.tar.gz |
Add av_get_profile_name() to get profile names.
Patch by Anssi Hannula, anssi d hannula a iki d fi
Originally committed as revision 26259 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r-- | doc/APIchanges | 3 | ||||
-rw-r--r-- | libavcodec/avcodec.h | 22 | ||||
-rw-r--r-- | libavcodec/utils.c | 13 |
3 files changed, 36 insertions, 2 deletions
diff --git a/doc/APIchanges b/doc/APIchanges index bf9d11dca7..f1722c7d20 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -13,6 +13,9 @@ libavutil: 2009-03-08 API changes, most recent first: +2011-01-XX - r26XXX - lavc 52.104.0 - av_get_profile_name() + Add av_get_profile_name to libavcodec/avcodec.h. + 2010-12-27 - r26108 - lavfi 1.71.0 - AV_PERM_NEG_LINESIZES Add AV_PERM_NEG_LINESIZES in avfilter.h. diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 7850e1da07..309edae365 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -32,8 +32,8 @@ #include "libavutil/cpu.h" #define LIBAVCODEC_VERSION_MAJOR 52 -#define LIBAVCODEC_VERSION_MINOR 103 -#define LIBAVCODEC_VERSION_MICRO 1 +#define LIBAVCODEC_VERSION_MINOR 104 +#define LIBAVCODEC_VERSION_MICRO 0 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ LIBAVCODEC_VERSION_MINOR, \ @@ -2794,6 +2794,14 @@ typedef struct AVCodecContext { } AVCodecContext; /** + * AVProfile. + */ +typedef struct AVProfile { + int profile; + const char *name; ///< short name for the profile +} AVProfile; + +/** * AVCodec. */ typedef struct AVCodec { @@ -2834,6 +2842,7 @@ typedef struct AVCodec { const int64_t *channel_layouts; ///< array of support channel layouts, or NULL if unknown. array is terminated by 0 uint8_t max_lowres; ///< maximum value for lowres supported by the decoder AVClass *priv_class; ///< AVClass for the private context + const AVProfile *profiles; ///< array of recognized profiles, or NULL if unknown, array is terminated by {FF_PROFILE_UNKNOWN} } AVCodec; /** @@ -3394,6 +3403,15 @@ AVCodec *avcodec_find_decoder_by_name(const char *name); void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode); /** + * Return a name for the specified profile, if available. + * + * @param codec the codec that is searched for the given profile + * @param profile the profile value for which a name is requested + * @return A name for the profile if found, NULL otherwise. + */ +const char *av_get_profile_name(const AVCodec *codec, int profile); + +/** * Set the fields of the given AVCodecContext to default values. * * @param s The AVCodecContext of which the fields should be set to default values. diff --git a/libavcodec/utils.c b/libavcodec/utils.c index ce7473587e..c11e4f56d3 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -966,6 +966,19 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode) } } +const char *av_get_profile_name(const AVCodec *codec, int profile) +{ + const AVProfile *p; + if (profile == FF_PROFILE_UNKNOWN || !codec->profiles) + return NULL; + + for (p = codec->profiles; p->profile != FF_PROFILE_UNKNOWN; p++) + if (p->profile == profile) + return p->name; + + return NULL; +} + unsigned avcodec_version( void ) { return LIBAVCODEC_VERSION_INT; |