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

Side by Side Diff: media/base/hdr_metadata.h

Issue 2333663003: Add color metadata info to VideoDecoderConfig. (Closed)
Patch Set: buildfix Created 4 years, 3 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef MEDIA_BASE_HDR_METADATA_H_
6 #define MEDIA_BASE_HDR_METADATA_H_
7
8 #include <cstdint>
9 #include "media/base/media_export.h"
10
11 namespace media {
12
13 // The definitions below are copied from the current libwebm top-of-tree.
14 // Chromium's third_party/libwebm doesn't have these yet. We can probably just
15 // include libwebm header directly in the future.
16 // ---- Begin copy/paste from libwebm/webm_parser/include/webm/dom_types.h ----
17
18 /**
19 A parsed \WebMID{MatrixCoefficients} element.
20
21 Matroska/WebM adopted these values from Table 4 of ISO/IEC 23001-8:2013/DCOR1.
22 See that document for further details.
23 */
24 enum class MatrixCoefficients : std::uint64_t {
hubbe 2016/09/14 17:34:16 Plase use gfx::ColorSpace
servolk 2016/09/14 22:34:35 Ah, ok, thank for the pointer I didn't know about
hubbe 2016/09/14 22:41:25 We made the range an enum specifically so that we
25 /**
26 The identity matrix.
27
28 Typically used for GBR (often referred to as RGB); however, may also be used
29 for YZX (often referred to as XYZ).
30 */
31 kRgb = 0,
32
33 /**
34 Rec. ITU-R BT.709-5.
35 */
36 kBt709 = 1,
37
38 /**
39 Image characteristics are unknown or are determined by the application.
40 */
41 kUnspecified = 2,
42
43 /**
44 United States Federal Communications Commission Title 47 Code of Federal
45 Regulations (2003) 73.682 (a) (20).
46 */
47 kFcc = 4,
48
49 /**
50 Rec. ITU-R BT.470‑6 System B, G (historical).
51 */
52 kBt470Bg = 5,
53
54 /**
55 Society of Motion Picture and Television Engineers 170M (2004).
56 */
57 kSmpte170M = 6,
58
59 /**
60 Society of Motion Picture and Television Engineers 240M (1999).
61 */
62 kSmpte240M = 7,
63
64 /**
65 YCgCo.
66 */
67 kYCgCo = 8,
68
69 /**
70 Rec. ITU-R BT.2020 (non-constant luminance).
71 */
72 kBt2020NonconstantLuminance = 9,
73
74 /**
75 Rec. ITU-R BT.2020 (constant luminance).
76 */
77 kBt2020ConstantLuminance = 10,
78 };
79
80 /**
81 A parsed \WebMID{Range} element.
82 */
83 enum class Range : std::uint64_t {
84 /**
85 Unspecified.
86 */
87 kUnspecified = 0,
88
89 /**
90 Broadcast range.
91 */
92 kBroadcast = 1,
93
94 /**
95 Full range (no clipping).
96 */
97 kFull = 2,
98
99 /**
100 Defined by MatrixCoefficients/TransferCharacteristics.
101 */
102 kDerived = 3,
103 };
104
105 /**
106 A parsed \WebMID{TransferCharacteristics} element.
107
108 Matroska/WebM adopted these values from Table 3 of ISO/IEC 23001-8:2013/DCOR1.
109 See that document for further details.
110 */
111 enum class TransferCharacteristics : std::uint64_t {
112 /**
113 Rec. ITU-R BT.709-6.
114 */
115 kBt709 = 1,
116
117 /**
118 Image characteristics are unknown or are determined by the application.
119 */
120 kUnspecified = 2,
121
122 /**
123 Rec. ITU‑R BT.470‑6 System M (historical) with assumed display gamma 2.2.
124 */
125 kGamma22curve = 4,
126
127 /**
128 Rec. ITU‑R BT.470-6 System B, G (historical) with assumed display gamma 2.8.
129 */
130 kGamma28curve = 5,
131
132 /**
133 Society of Motion Picture and Television Engineers 170M (2004).
134 */
135 kSmpte170M = 6,
136
137 /**
138 Society of Motion Picture and Television Engineers 240M (1999).
139 */
140 kSmpte240M = 7,
141
142 /**
143 Linear transfer characteristics.
144 */
145 kLinear = 8,
146
147 /**
148 Logarithmic transfer characteristic (100:1 range).
149 */
150 kLog = 9,
151
152 /**
153 Logarithmic transfer characteristic (100 * Sqrt(10) : 1 range).
154 */
155 kLogSqrt = 10,
156
157 /**
158 IEC 61966-2-4.
159 */
160 kIec6196624 = 11,
161
162 /**
163 Rec. ITU‑R BT.1361-0 extended colour gamut system (historical).
164 */
165 kBt1361ExtendedColourGamut = 12,
166
167 /**
168 IEC 61966-2-1 sRGB or sYCC.
169 */
170 kIec6196621 = 13,
171
172 /**
173 Rec. ITU-R BT.2020-2 (10-bit system).
174 */
175 k10BitBt2020 = 14,
176
177 /**
178 Rec. ITU-R BT.2020-2 (12-bit system).
179 */
180 k12BitBt2020 = 15,
181
182 /**
183 Society of Motion Picture and Television Engineers ST 2084.
184 */
185 kSmpteSt2084 = 16,
186
187 /**
188 Society of Motion Picture and Television Engineers ST 428-1.
189 */
190 kSmpteSt4281 = 17,
191
192 /**
193 Association of Radio Industries and Businesses (ARIB) STD-B67.
194 */
195 kAribStdB67Hlg = 18,
196 };
197
198 /**
199 A parsed \WebMID{Primaries} element.
200
201 Matroska/WebM adopted these values from Table 2 of ISO/IEC 23001-8:2013/DCOR1.
202 See that document for further details.
203 */
204 enum class Primaries : std::uint64_t {
205 /**
206 Rec. ITU‑R BT.709-6.
207 */
208 kBt709 = 1,
209
210 /**
211 Image characteristics are unknown or are determined by the application.
212 */
213 kUnspecified = 2,
214
215 /**
216 Rec. ITU‑R BT.470‑6 System M (historical).
217 */
218 kBt470M = 4,
219
220 /**
221 Rec. ITU‑R BT.470‑6 System B, G (historical).
222 */
223 kBt470Bg = 5,
224
225 /**
226 Society of Motion Picture and Television Engineers 170M (2004).
227 */
228 kSmpte170M = 6,
229
230 /**
231 Society of Motion Picture and Television Engineers 240M (1999).
232 */
233 kSmpte240M = 7,
234
235 /**
236 Generic film.
237 */
238 kFilm = 8,
239
240 /**
241 Rec. ITU-R BT.2020-2.
242 */
243 kBt2020 = 9,
244
245 /**
246 Society of Motion Picture and Television Engineers ST 428-1.
247 */
248 kSmpteSt4281 = 10,
249
250 /**
251 JEDEC P22 phosphors/EBU Tech. 3213-E (1975).
252 */
253 kJedecP22Phosphors = 22,
254 };
255
256 // ---- End copy/paste from libwebm/webm_parser/include/webm/dom_types.h ----
257
258 // SMPTE ST 2086 mastering metadata.
259 struct MEDIA_EXPORT MasteringMetadata {
260 float PrimaryRChromaticityX = 0;
halliwell 2016/09/14 18:58:40 nit: here and below, not following standard for me
servolk 2016/09/15 01:50:03 Done.
261 float PrimaryRChromaticityY = 0;
262 float PrimaryGChromaticityX = 0;
263 float PrimaryGChromaticityY = 0;
264 float PrimaryBChromaticityX = 0;
265 float PrimaryBChromaticityY = 0;
266 float WhitePointChromaticityX = 0;
267 float WhitePointChromaticityY = 0;
268 float LuminanceMax = 0;
269 float LuminanceMin = 0;
270
271 MasteringMetadata();
272 MasteringMetadata(const MasteringMetadata& rhs);
273 };
274
275 // HDR metadata common for HDR10 and WebM/VP9-based HDR formats.
276 struct MEDIA_EXPORT HDRMetadata {
277 MasteringMetadata mastering_metadata;
278 unsigned MaxCLL = 0;
279 unsigned MaxFALL = 0;
280
281 HDRMetadata();
282 HDRMetadata(const HDRMetadata& rhs);
283 };
284
285 // WebM color information, containing HDR metadata:
286 // http://www.webmproject.org/docs/container/#Colour
287 struct MEDIA_EXPORT ColorMetadata {
halliwell 2016/09/14 18:58:40 nit, shouldn't the file be called color_metadata?
servolk 2016/09/14 22:34:35 I'm actually not sure about it yes, since this Col
288 MatrixCoefficients matrix_coefficients = MatrixCoefficients::kUnspecified;
289 unsigned BitsPerChannel = 0;
290 unsigned ChromaSubsamplingHorz = 0;
291 unsigned ChromaSubsamplingVert = 0;
292 unsigned CbSubsamplingHorz = 0;
293 unsigned CbSubsamplingVert = 0;
294 unsigned ChromaSitingHorz = 0;
295 unsigned ChromaSitingVert = 0;
296 Range range = Range::kUnspecified;
297 TransferCharacteristics transfer_characteristics =
298 TransferCharacteristics::kUnspecified;
299 Primaries primaries = Primaries::kUnspecified;
300
301 HDRMetadata hdr_metadata;
302
303 ColorMetadata();
304 ColorMetadata(const ColorMetadata& rhs);
305 };
306
307 } // namespace media
308
309 #endif // MEDIA_BASE_HDR_METADATA_H_
OLDNEW
« no previous file with comments | « media/base/BUILD.gn ('k') | media/base/hdr_metadata.cc » ('j') | media/base/hdr_metadata.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698