diff --git a/doc/APIchanges b/doc/APIchanges index c1f103ae2b605ad5bf58db61207aa20100ecf0a5..35940dbe4899488df6c0181a3c70d8d2f26c8c44 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -15,7 +15,9 @@ libavutil: 2012-10-22 API changes, most recent first: -libavutil 52.47.100 +2013-10-27 - xxxxxxx - lavu 52.48.100 - parseutils.h + Add av_get_known_color_name(). + 2013-10-17 - xxxxxxx - lavu 52.47.100 - opt.h Add AV_OPT_TYPE_CHANNEL_LAYOUT and channel layout option handlers av_opt_get_channel_layout() and av_opt_set_channel_layout(). diff --git a/libavutil/parseutils.c b/libavutil/parseutils.c index 1e1b93e8e5a265e17e53ebd4187d326fc3b85aaf..e793e2d4c6a3e239aa64d0e55d1f46e8ebafe0e9 100644 --- a/libavutil/parseutils.c +++ b/libavutil/parseutils.c @@ -420,6 +420,20 @@ int av_parse_color(uint8_t *rgba_color, const char *color_string, int slen, return 0; } +const char *av_get_known_color_name(int color_idx, const uint8_t **rgbp) +{ + const ColorEntry *color; + + if ((unsigned)color_idx >= FF_ARRAY_ELEMS(color_table)) + return NULL; + + color = &color_table[color_idx]; + if (rgbp) + *rgbp = color->rgb_color; + + return color->name; +} + /* get a positive number between n_min and n_max, for a maximum length of len_max. Return -1 if error. */ static int date_get_num(const char **pp, diff --git a/libavutil/parseutils.h b/libavutil/parseutils.h index dcfb7056d674250671d5befd3eafc38944a38ced..c80f0de3deeb7996788436421dbf833d3fa999d4 100644 --- a/libavutil/parseutils.h +++ b/libavutil/parseutils.h @@ -98,6 +98,19 @@ int av_parse_video_rate(AVRational *rate, const char *str); int av_parse_color(uint8_t *rgba_color, const char *color_string, int slen, void *log_ctx); +/** + * Get the name of a color from the internal table of hard-coded named + * colors. + * + * This function is meant to enumerate the color names recognized by + * av_parse_color(). + * + * @param color_idx index of the requested color, starting from 0 + * @param rgbp if not NULL, will point to a 3-elements array with the color value in RGB + * @return the color name string or NULL if color_idx is not in the array + */ +const char *av_get_known_color_name(int color_idx, const uint8_t **rgb); + /** * Parse timestr and return in *time a corresponding number of * microseconds. diff --git a/libavutil/version.h b/libavutil/version.h index 9d089d8a5fc63af79701875b17af7e573b6190fe..67a2acd1077ecc9bdfda8763059945efd6192e18 100644 --- a/libavutil/version.h +++ b/libavutil/version.h @@ -75,8 +75,8 @@ */ #define LIBAVUTIL_VERSION_MAJOR 52 -#define LIBAVUTIL_VERSION_MINOR 47 -#define LIBAVUTIL_VERSION_MICRO 101 +#define LIBAVUTIL_VERSION_MINOR 48 +#define LIBAVUTIL_VERSION_MICRO 100 #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ LIBAVUTIL_VERSION_MINOR, \