---
 libavutil/pixdesc.c | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 libavutil/pixdesc.h | 29 ++++++++++++++++++
 2 files changed, 115 insertions(+)

diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c
index 3215276..42d5dd2 100644
--- a/libavutil/pixdesc.c
+++ b/libavutil/pixdesc.c
@@ -1700,3 +1700,89 @@ enum AVPixelFormat av_pix_fmt_swap_endianness(enum 
AVPixelFormat pix_fmt)
     }
 #undef PIX_FMT_SWAP_ENDIANNESS
 }
+
+const char* av_get_color_primaries_name(enum AVColorPrimaries color_primaries)
+{
+    switch (color_primaries) {
+    case AVCOL_PRI_BT709:       return "ITU-R BT.709";
+    case AVCOL_PRI_UNSPECIFIED: return "Unspecified";
+    case AVCOL_PRI_BT470M:      return "ITU-R BT.470M";
+    case AVCOL_PRI_BT470BG:     return "ITU-R BT.470BG";
+    case AVCOL_PRI_SMPTE170M:   return "SMPTE 170M";
+    case AVCOL_PRI_SMPTE240M:   return "SMPTE 240M";
+    case AVCOL_PRI_FILM:        return "Film";
+    case AVCOL_PRI_BT2020:      return "ITU-R BT.2020";
+    case AVCOL_PRI_RESERVED:
+    case AVCOL_PRI_NB:          return NULL;
+    }
+    return NULL;
+}
+
+const char* av_get_color_transfer_name(enum AVColorTransferCharacteristic
+                                       color_transfer)
+{
+    switch (color_transfer) {
+    case AVCOL_TRC_BT709:        return "BT.709";
+    case AVCOL_TRC_UNSPECIFIED:  return "Unspecified";
+    case AVCOL_TRC_GAMMA22:      return "Gamma 2.2";
+    case AVCOL_TRC_GAMMA28:      return "Gamma 2.8";
+    case AVCOL_TRC_SMPTE170M:    return "SMPTE 170 M";
+    case AVCOL_TRC_SMPTE240M:    return "SMPTE 240 M";
+    case AVCOL_TRC_LINEAR:       return "Linear";
+    case AVCOL_TRC_LOG:          return "Log";
+    case AVCOL_TRC_LOG_SQRT:     return "Log square root";
+    case AVCOL_TRC_IEC61966_2_4: return "IEC 61966-2-4";
+    case AVCOL_TRC_BT1361_ECG:   return "BT.1361 ECG";
+    case AVCOL_TRC_IEC61966_2_1: return "IEC 61966-2-1";
+    case AVCOL_TRC_BT2020_10:    return "BT.2020 10 bits";
+    case AVCOL_TRC_BT2020_12:    return "BT.2020 12 bits";
+    case AVCOL_TRC_RESERVED:
+    case AVCOL_TRC_NB:           return NULL;
+    }
+    return NULL;
+}
+
+const char* av_get_colorspace_name(enum AVColorSpace colorspace)
+{
+    switch (colorspace) {
+    case AVCOL_SPC_RGB:         return "RGB";
+    case AVCOL_SPC_BT709:       return "BT.709";
+    case AVCOL_SPC_UNSPECIFIED: return "Unspecified";
+    case AVCOL_SPC_FCC:         return "FourCC";
+    case AVCOL_SPC_BT470BG:     return "BT.470 BG";
+    case AVCOL_SPC_SMPTE170M:   return "SMPTE 170 M";
+    case AVCOL_SPC_SMPTE240M:   return "SMPTE 240 M";
+    case AVCOL_SPC_YCOCG:       return "YCOCG";
+    case AVCOL_SPC_BT2020_NCL:  return "BT.2020 NCL";
+    case AVCOL_SPC_BT2020_CL:   return "BT.2020 CL";
+    case AVCOL_SPC_RESERVED:
+    case AVCOL_SPC_NB:          return NULL;
+    }
+    return NULL;
+}
+
+const char* av_get_color_range_name(enum AVColorRange color_range)
+{
+    switch (color_range) {
+    case AVCOL_RANGE_UNSPECIFIED: return "Unspecified";
+    case AVCOL_RANGE_MPEG:        return "MPEG (219*2^(n-8))";
+    case AVCOL_RANGE_JPEG:        return "JPEG (2^n-1)";
+    case AVCOL_RANGE_NB:          return NULL;
+    }
+    return NULL;
+}
+
+const char* av_get_chroma_location_name(enum AVChromaLocation chroma_location)
+{
+    switch (chroma_location) {
+    case AVCHROMA_LOC_UNSPECIFIED: return "Unspecified";
+    case AVCHROMA_LOC_LEFT:        return "Left";
+    case AVCHROMA_LOC_CENTER:      return "Center";
+    case AVCHROMA_LOC_TOPLEFT:     return "Top-left";
+    case AVCHROMA_LOC_TOP:         return "Top";
+    case AVCHROMA_LOC_BOTTOMLEFT:  return "Bottom-left";
+    case AVCHROMA_LOC_BOTTOM:      return "Bottom";
+    case AVCHROMA_LOC_NB:          return NULL;
+    }
+    return NULL; 
+}
diff --git a/libavutil/pixdesc.h b/libavutil/pixdesc.h
index 1c9e0af..1a09bff 100644
--- a/libavutil/pixdesc.h
+++ b/libavutil/pixdesc.h
@@ -291,4 +291,33 @@ 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 a color primaries, NULL in case color_primaries is
+ * unknown.
+ */
+const char* av_get_color_primaries_name(enum AVColorPrimaries color_primaries);
+
+/**
+ * Return the name for a color transfer charateristic, NULL in case 
+ * color_transfer is unknown.
+ */
+const char* av_get_color_transfer_name(enum AVColorTransferCharacteristic
+                                       color_transfer);
+
+/**
+ * Return the name for a colorspace, NULL in case colorspace is unknown.
+ */
+const char* av_get_colorspace_name(enum AVColorSpace colorspace);
+
+/**
+ * Return the name for a color range, NULL in case color_range is unknown.
+ */
+const char* av_get_color_range_name(enum AVColorRange color_range);
+
+/**
+ * Return the name for a color location, NULL in case chroma_location is
+ * unknown.
+ */
+const char* av_get_chroma_location_name(enum AVChromaLocation chroma_location);
+
 #endif /* AVUTIL_PIXDESC_H */
-- 
2.1.0

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to