From 5a419b2dd1881889d436f55741fd3ff3f9f436c4 Mon Sep 17 00:00:00 2001 From: Vittorio Giovara Date: Fri, 26 Sep 2014 14:15:25 +0100 Subject: [PATCH] pixdesc: return color properties names --- doc/APIchanges | 3 +++ libavutil/pixdesc.c | 58 +++++++++++++++++++++++++++++++++++++++++++++ libavutil/pixdesc.h | 25 +++++++++++++++++++ libavutil/version.h | 4 ++-- 4 files changed, 88 insertions(+), 2 deletions(-) diff --git a/doc/APIchanges b/doc/APIchanges index 3df116e0df..ee317193c5 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -13,6 +13,9 @@ libavutil: 2014-08-09 API changes, most recent first: +2014-09-xx - xxxxxxx - lavu 54.04.0 - pixdesc.h + Add API to return the name of frame and context color properties. + 2014-09-xx - xxxxxxx - lavc 56.2.0 - vdpau.h Add av_vdpau_bind_context(). This function should now be used for creating (or resetting) a AVVDPAUContext instead of av_vdpau_alloc_context(). diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c index 3215276164..baace8c9bc 100644 --- a/libavutil/pixdesc.c +++ b/libavutil/pixdesc.c @@ -1523,6 +1523,33 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { }, }; +static const char *color_range_names[AVCOL_RANGE_NB] = { + "unknown", "tv", "pc", +}; + +static const char *color_primaries_names[AVCOL_PRI_NB] = { + "reserved", "bt709", "unknown", "reserved", "bt470m", + "bt470bg", "smpte170m", "smpte240m", "film", "bt2020", +}; + +static const char *color_transfer_names[AVCOL_TRC_NB] = { + "reserved", "bt709", "unknown", "reserved", "bt470m", + "bt470bg", "smpte170m", "smpte240m", "linear", "log100", + "log316", "iec61966-2-4", "bt1361e", "iec61966-2-1", + "bt2020-10", "bt2020-20", +}; + +static const char *color_space_names[AVCOL_SPC_NB] = { + "gbr", "bt709", "unknown", "reserved", "fcc", + "bt470bg", "smpte170m", "smpte240m", "ycgco", + "bt2020nc", "bt2020c", +}; + +static const char *chroma_location_names[AVCHROMA_LOC_NB] = { + "unspecified", "left", "center", "topleft", + "top", "bottomleft", "bottom", +}; + FF_DISABLE_DEPRECATION_WARNINGS static enum AVPixelFormat get_pix_fmt_internal(const char *name) { @@ -1700,3 +1727,34 @@ enum AVPixelFormat av_pix_fmt_swap_endianness(enum AVPixelFormat pix_fmt) } #undef PIX_FMT_SWAP_ENDIANNESS } + +const char *av_color_range_name(enum AVColorRange range) +{ + return (unsigned) range < AVCOL_RANGE_NB ? + color_range_names[range] : NULL; +} + +const char *av_color_primaries_name(enum AVColorPrimaries primaries) +{ + return (unsigned) primaries < AVCOL_PRI_NB ? + color_primaries_names[primaries] : NULL; +} + +const char *av_color_transfer_name(enum AVColorTransferCharacteristic transfer) +{ + return (unsigned) transfer < AVCOL_TRC_NB ? + color_transfer_names[transfer] : NULL; +} + +const char *av_color_space_name(enum AVColorSpace space) +{ + return (unsigned) space < AVCOL_SPC_NB ? + color_space_names[space] : NULL; +} + +const char *av_chroma_location_name(enum AVChromaLocation location) +{ + return (unsigned) location < AVCHROMA_LOC_NB ? + chroma_location_names[location] : NULL; +} + diff --git a/libavutil/pixdesc.h b/libavutil/pixdesc.h index 1c9e0af11f..23dc009a12 100644 --- a/libavutil/pixdesc.h +++ b/libavutil/pixdesc.h @@ -291,4 +291,29 @@ int av_pix_fmt_count_planes(enum AVPixelFormat pix_fmt); */ enum AVPixelFormat av_pix_fmt_swap_endianness(enum AVPixelFormat pix_fmt); +/** + * @return the name for provided color range or NULL if unknown. + */ +const char *av_color_range_name(enum AVColorRange range); + +/** + * @return the name for provided color primaries or NULL if unknown. + */ +const char *av_color_primaries_name(enum AVColorPrimaries primaries); + +/** + * @return the name for provided color transfer or NULL if unknown. + */ +const char *av_color_transfer_name(enum AVColorTransferCharacteristic transfer); + +/** + * @return the name for provided color space or NULL if unknown. + */ +const char *av_color_space_name(enum AVColorSpace space); + +/** + * @return the name for provided chroma location or NULL if unknown. + */ +const char *av_chroma_location_name(enum AVChromaLocation location); + #endif /* AVUTIL_PIXDESC_H */ diff --git a/libavutil/version.h b/libavutil/version.h index 79da1aa1ab..8279635a83 100644 --- a/libavutil/version.h +++ b/libavutil/version.h @@ -54,8 +54,8 @@ */ #define LIBAVUTIL_VERSION_MAJOR 54 -#define LIBAVUTIL_VERSION_MINOR 3 -#define LIBAVUTIL_VERSION_MICRO 1 +#define LIBAVUTIL_VERSION_MINOR 4 +#define LIBAVUTIL_VERSION_MICRO 0 #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ LIBAVUTIL_VERSION_MINOR, \