Commit 6f15f1cd authored by Vittorio Giovara's avatar Vittorio Giovara

pixdesc: Add API to map color property names to enum values

Signed-off-by: 's avatarVittorio Giovara <vittorio.giovara@gmail.com>
parent bba9c1c6
...@@ -15,6 +15,11 @@ libavutil: 2015-08-28 ...@@ -15,6 +15,11 @@ libavutil: 2015-08-28
API changes, most recent first: API changes, most recent first:
2017-xx-xx - xxxxxxx - lavu 55.76.100 / 56.6.0 - pixdesc.h
Add av_color_range_from_name(), av_color_primaries_from_name(),
av_color_transfer_from_name(), av_color_space_from_name(), and
av_chroma_location_from_name().
2017-09-13 - xxxxxxx - lavc 57.106.100 - avcodec.h 2017-09-13 - xxxxxxx - lavc 57.106.100 - avcodec.h
Add AV_PKT_FLAG_TRUSTED. Add AV_PKT_FLAG_TRUSTED.
......
...@@ -2749,26 +2749,91 @@ const char *av_color_range_name(enum AVColorRange range) ...@@ -2749,26 +2749,91 @@ const char *av_color_range_name(enum AVColorRange range)
color_range_names[range] : NULL; color_range_names[range] : NULL;
} }
int av_color_range_from_name(const char *name)
{
int i;
for (i = 0; i < FF_ARRAY_ELEMS(color_range_names); i++) {
size_t len = strlen(color_range_names[i]);
if (!strncmp(color_range_names[i], name, len))
return i;
}
return AVERROR(EINVAL);
}
const char *av_color_primaries_name(enum AVColorPrimaries primaries) const char *av_color_primaries_name(enum AVColorPrimaries primaries)
{ {
return (unsigned) primaries < AVCOL_PRI_NB ? return (unsigned) primaries < AVCOL_PRI_NB ?
color_primaries_names[primaries] : NULL; color_primaries_names[primaries] : NULL;
} }
int av_color_primaries_from_name(const char *name)
{
int i;
for (i = 0; i < FF_ARRAY_ELEMS(color_primaries_names); i++) {
size_t len = strlen(color_primaries_names[i]);
if (!strncmp(color_primaries_names[i], name, len))
return i;
}
return AVERROR(EINVAL);
}
const char *av_color_transfer_name(enum AVColorTransferCharacteristic transfer) const char *av_color_transfer_name(enum AVColorTransferCharacteristic transfer)
{ {
return (unsigned) transfer < AVCOL_TRC_NB ? return (unsigned) transfer < AVCOL_TRC_NB ?
color_transfer_names[transfer] : NULL; color_transfer_names[transfer] : NULL;
} }
int av_color_transfer_from_name(const char *name)
{
int i;
for (i = 0; i < FF_ARRAY_ELEMS(color_transfer_names); i++) {
size_t len = strlen(color_transfer_names[i]);
if (!strncmp(color_transfer_names[i], name, len))
return i;
}
return AVERROR(EINVAL);
}
const char *av_color_space_name(enum AVColorSpace space) const char *av_color_space_name(enum AVColorSpace space)
{ {
return (unsigned) space < AVCOL_SPC_NB ? return (unsigned) space < AVCOL_SPC_NB ?
color_space_names[space] : NULL; color_space_names[space] : NULL;
} }
int av_color_space_from_name(const char *name)
{
int i;
for (i = 0; i < FF_ARRAY_ELEMS(color_space_names); i++) {
size_t len = strlen(color_space_names[i]);
if (!strncmp(color_space_names[i], name, len))
return i;
}
return AVERROR(EINVAL);
}
const char *av_chroma_location_name(enum AVChromaLocation location) const char *av_chroma_location_name(enum AVChromaLocation location)
{ {
return (unsigned) location < AVCHROMA_LOC_NB ? return (unsigned) location < AVCHROMA_LOC_NB ?
chroma_location_names[location] : NULL; chroma_location_names[location] : NULL;
} }
int av_chroma_location_from_name(const char *name)
{
int i;
for (i = 0; i < FF_ARRAY_ELEMS(chroma_location_names); i++) {
size_t len = strlen(chroma_location_names[i]);
if (!strncmp(chroma_location_names[i], name, len))
return i;
}
return AVERROR(EINVAL);
}
...@@ -250,26 +250,51 @@ int av_pix_fmt_count_planes(enum AVPixelFormat pix_fmt); ...@@ -250,26 +250,51 @@ int av_pix_fmt_count_planes(enum AVPixelFormat pix_fmt);
*/ */
const char *av_color_range_name(enum AVColorRange range); const char *av_color_range_name(enum AVColorRange range);
/**
* @return the AVColorRange value for name or an AVError if not found.
*/
int av_color_range_from_name(const char *name);
/** /**
* @return the name for provided color primaries or NULL if unknown. * @return the name for provided color primaries or NULL if unknown.
*/ */
const char *av_color_primaries_name(enum AVColorPrimaries primaries); const char *av_color_primaries_name(enum AVColorPrimaries primaries);
/**
* @return the AVColorPrimaries value for name or an AVError if not found.
*/
int av_color_primaries_from_name(const char *name);
/** /**
* @return the name for provided color transfer or NULL if unknown. * @return the name for provided color transfer or NULL if unknown.
*/ */
const char *av_color_transfer_name(enum AVColorTransferCharacteristic transfer); const char *av_color_transfer_name(enum AVColorTransferCharacteristic transfer);
/**
* @return the AVColorTransferCharacteristic value for name or an AVError if not found.
*/
int av_color_transfer_from_name(const char *name);
/** /**
* @return the name for provided color space or NULL if unknown. * @return the name for provided color space or NULL if unknown.
*/ */
const char *av_color_space_name(enum AVColorSpace space); const char *av_color_space_name(enum AVColorSpace space);
/**
* @return the AVColorSpace value for name or an AVError if not found.
*/
int av_color_space_from_name(const char *name);
/** /**
* @return the name for provided chroma location or NULL if unknown. * @return the name for provided chroma location or NULL if unknown.
*/ */
const char *av_chroma_location_name(enum AVChromaLocation location); const char *av_chroma_location_name(enum AVChromaLocation location);
/**
* @return the AVChromaLocation value for name or an AVError if not found.
*/
int av_chroma_location_from_name(const char *name);
/** /**
* Return the pixel format corresponding to name. * Return the pixel format corresponding to name.
* *
......
...@@ -80,7 +80,7 @@ ...@@ -80,7 +80,7 @@
#define LIBAVUTIL_VERSION_MAJOR 55 #define LIBAVUTIL_VERSION_MAJOR 55
#define LIBAVUTIL_VERSION_MINOR 75 #define LIBAVUTIL_VERSION_MINOR 76
#define LIBAVUTIL_VERSION_MICRO 100 #define LIBAVUTIL_VERSION_MICRO 100
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment