Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1002)

Unified Diff: media/base/video_color_space.h

Issue 2742113002: Gate support for certain EOTFs/primaries/matrices on color management / hdr flags (Closed)
Patch Set: missed updating some tests Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « media/base/video_codecs_unittest.cc ('k') | media/base/video_color_space.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/base/video_color_space.h
diff --git a/media/base/video_color_space.h b/media/base/video_color_space.h
new file mode 100644
index 0000000000000000000000000000000000000000..c8a6a0ce4f728c0e5d82e6307d56de4c95f4f369
--- /dev/null
+++ b/media/base/video_color_space.h
@@ -0,0 +1,102 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef MEDIA_BASE_VIDEO_COLOR_SPACE_H_
+#define MEDIA_BASE_VIDEO_COLOR_SPACE_H_
+
+#include "media/base/media_export.h"
+#include "ui/gfx/color_space.h"
+
+namespace media {
+
+// Described in ISO 23001-8:2016
+class MEDIA_EXPORT VideoColorSpace {
+ public:
+ // Table 2
+ enum class PrimaryID : uint8_t {
+ INVALID = 0,
+ BT709 = 1,
+ UNSPECIFIED = 2,
+ BT470M = 4,
+ BT470BG = 5,
+ SMPTE170M = 6,
+ SMPTE240M = 7,
+ FILM = 8,
+ BT2020 = 9,
+ SMPTEST428_1 = 10,
+ SMPTEST431_2 = 11,
+ SMPTEST432_1 = 12,
+ EBU_3213_E = 22
+ };
+
+ // Table 3
+ enum class TransferID : uint8_t {
+ INVALID = 0,
+ BT709 = 1,
+ UNSPECIFIED = 2,
+ GAMMA22 = 4,
+ GAMMA28 = 5,
+ SMPTE170M = 6,
+ SMPTE240M = 7,
+ LINEAR = 8,
+ LOG = 9,
+ LOG_SQRT = 10,
+ IEC61966_2_4 = 11,
+ BT1361_ECG = 12,
+ IEC61966_2_1 = 13,
+ BT2020_10 = 14,
+ BT2020_12 = 15,
+ SMPTEST2084 = 16,
+ SMPTEST428_1 = 17,
+
+ // Not yet standardized
+ ARIB_STD_B67 = 18, // AKA hybrid-log gamma, HLG.
+ };
+
+ // Table 4
+ enum class MatrixID : uint8_t {
+ RGB = 0,
+ BT709 = 1,
+ UNSPECIFIED = 2,
+ FCC = 4,
+ BT470BG = 5,
+ SMPTE170M = 6,
+ SMPTE240M = 7,
+ YCOCG = 8,
+ BT2020_NCL = 9,
+ BT2020_CL = 10,
+ YDZDX = 11,
+ INVALID = 255,
+ };
+
+ VideoColorSpace();
+ VideoColorSpace(int primaries,
+ int transfer,
+ int matrix,
+ gfx::ColorSpace::RangeID range);
+ VideoColorSpace(PrimaryID primaries,
+ TransferID transfer,
+ MatrixID matrix,
+ gfx::ColorSpace::RangeID range);
+
+ // These will return INVALID if the number you give it
+ // is not a valid enum value.
+ static PrimaryID GetPrimaryID(int primary);
+ static TransferID GetTransferID(int transfer);
+ static MatrixID GetMatrixID(int matrix);
+
+ static VideoColorSpace BT709();
+
+ gfx::ColorSpace ToGfxColorSpace() const;
+
+ // Note, these are public variables.
+ PrimaryID primaries = PrimaryID::INVALID;
+ TransferID transfer = TransferID::INVALID;
+ MatrixID matrix = MatrixID::INVALID;
+ gfx::ColorSpace::RangeID range = gfx::ColorSpace::RangeID::INVALID;
+};
+
+} // namespace media
+
+#endif
« no previous file with comments | « media/base/video_codecs_unittest.cc ('k') | media/base/video_color_space.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698