Commit 9c8aeacf authored by Michael Niedermayer's avatar Michael Niedermayer

avutil: add av_get_colorspace_name()

Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 63139f62
...@@ -2631,6 +2631,7 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode) ...@@ -2631,6 +2631,7 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode)
case AVMEDIA_TYPE_VIDEO: case AVMEDIA_TYPE_VIDEO:
if (enc->pix_fmt != AV_PIX_FMT_NONE) { if (enc->pix_fmt != AV_PIX_FMT_NONE) {
char detail[256] = "("; char detail[256] = "(";
const char *colorspace_name;
snprintf(buf + strlen(buf), buf_size - strlen(buf), snprintf(buf + strlen(buf), buf_size - strlen(buf),
", %s", ", %s",
av_get_pix_fmt_name(enc->pix_fmt)); av_get_pix_fmt_name(enc->pix_fmt));
...@@ -2640,21 +2641,11 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode) ...@@ -2640,21 +2641,11 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode)
if (enc->color_range != AVCOL_RANGE_UNSPECIFIED) if (enc->color_range != AVCOL_RANGE_UNSPECIFIED)
av_strlcatf(detail, sizeof(detail), av_strlcatf(detail, sizeof(detail),
enc->color_range == AVCOL_RANGE_MPEG ? "tv, ": "pc, "); enc->color_range == AVCOL_RANGE_MPEG ? "tv, ": "pc, ");
if (enc->colorspace<9U) {
static const char *name[] = { colorspace_name = av_get_colorspace_name(enc->colorspace);
"GBR", if (colorspace_name)
"bt709", av_strlcatf(detail, sizeof(detail), "%s, ", colorspace_name);
NULL,
NULL,
"fcc",
"bt470bg",
"smpte170m",
"smpte240m",
"YCgCo",
};
if (name[enc->colorspace])
av_strlcatf(detail, sizeof(detail), "%s, ", name[enc->colorspace]);
}
if (strlen(detail) > 1) { if (strlen(detail) > 1) {
detail[strlen(detail) - 2] = 0; detail[strlen(detail) - 2] = 0;
av_strlcatf(buf, buf_size, "%s)", detail); av_strlcatf(buf, buf_size, "%s)", detail);
......
...@@ -70,6 +70,22 @@ int8_t *av_frame_get_qp_table(AVFrame *f, int *stride, int *type) ...@@ -70,6 +70,22 @@ int8_t *av_frame_get_qp_table(AVFrame *f, int *stride, int *type)
return f->qp_table_buf->data; return f->qp_table_buf->data;
} }
const char *av_get_colorspace_name(enum AVColorSpace val)
{
static const char *name[] = {
[AVCOL_SPC_RGB] = "GBR",
[AVCOL_SPC_BT709] = "bt709",
[AVCOL_SPC_FCC] = "fcc",
[AVCOL_SPC_BT470BG] = "bt470bg",
[AVCOL_SPC_SMPTE170M] = "smpte170m",
[AVCOL_SPC_SMPTE240M] = "smpte240m",
[AVCOL_SPC_YCOCG] = "YCgCo",
};
if (val < 0 || val >= FF_ARRAY_ELEMS(name))
return NULL;
return name[val];
}
static void get_frame_defaults(AVFrame *frame) static void get_frame_defaults(AVFrame *frame)
{ {
if (frame->extended_data != frame->data) if (frame->extended_data != frame->data)
......
...@@ -508,6 +508,12 @@ void av_frame_set_colorspace(AVFrame *frame, enum AVColorSpace val); ...@@ -508,6 +508,12 @@ void av_frame_set_colorspace(AVFrame *frame, enum AVColorSpace val);
enum AVColorRange av_frame_get_color_range(const AVFrame *frame); enum AVColorRange av_frame_get_color_range(const AVFrame *frame);
void av_frame_set_color_range(AVFrame *frame, enum AVColorRange val); void av_frame_set_color_range(AVFrame *frame, enum AVColorRange val);
/**
* Get the name of a colorspace.
* @return a static string identifying the colorspace; can be NULL.
*/
const char *av_get_colorspace_name(enum AVColorSpace val);
/** /**
* Allocate an AVFrame and set its fields to default values. The resulting * Allocate an AVFrame and set its fields to default values. The resulting
* struct must be freed using av_frame_free(). * struct must be freed using av_frame_free().
......
...@@ -75,7 +75,7 @@ ...@@ -75,7 +75,7 @@
*/ */
#define LIBAVUTIL_VERSION_MAJOR 52 #define LIBAVUTIL_VERSION_MAJOR 52
#define LIBAVUTIL_VERSION_MINOR 44 #define LIBAVUTIL_VERSION_MINOR 45
#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