diff --git a/doc/APIchanges b/doc/APIchanges index 4d8404cc73..359ac32d99 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -15,6 +15,10 @@ libavutil: 2011-04-18 API changes, most recent first: +2012-07-30 - xxxxxxx - lavu 51.66.100 + Add av_get_channel_description() + and av_get_standard_channel_layout() functions. + 2012-07-20 - xxxxxxx - lavc 54.43.100 Add decode_error_flags field to AVFrame. diff --git a/libavutil/audioconvert.c b/libavutil/audioconvert.c index 224db86b04..01641711d6 100644 --- a/libavutil/audioconvert.c +++ b/libavutil/audioconvert.c @@ -243,3 +243,13 @@ uint64_t av_channel_layout_extract_channel(uint64_t channel_layout, int index) } return 0; } + +int av_get_standard_channel_layout(unsigned index, uint64_t *layout, + const char **name) +{ + if (index >= FF_ARRAY_ELEMS(channel_layout_map)) + return AVERROR_EOF; + if (layout) *layout = channel_layout_map[index].layout; + if (name) *name = channel_layout_map[index].name; + return 0; +} diff --git a/libavutil/audioconvert.h b/libavutil/audioconvert.h index f1399b964c..5ddda0cbc5 100644 --- a/libavutil/audioconvert.h +++ b/libavutil/audioconvert.h @@ -188,6 +188,18 @@ const char *av_get_channel_name(uint64_t channel); */ const char *av_get_channel_description(uint64_t channel); +/** + * Get the value and name of a standard channel layout. + * + * @param[in] index index in an internal list, starting at 0 + * @param[out] layout channel layout mask + * @param[out] name name of the layout + * @return 0 if the layout exists, + * <0 if index is beyond the limits + */ +int av_get_standard_channel_layout(unsigned index, uint64_t *layout, + const char **name); + /** * @} */ diff --git a/libavutil/version.h b/libavutil/version.h index a06fbc71ef..04d111b74b 100644 --- a/libavutil/version.h +++ b/libavutil/version.h @@ -39,7 +39,7 @@ */ #define LIBAVUTIL_VERSION_MAJOR 51 -#define LIBAVUTIL_VERSION_MINOR 65 +#define LIBAVUTIL_VERSION_MINOR 66 #define LIBAVUTIL_VERSION_MICRO 100 #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \