blob: dfb55a9b3f4a68d79a85e7e4590a3f4302b6f191 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
// Copyright 2020 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 UI_GFX_HDR_METADATA_H_
#define UI_GFX_HDR_METADATA_H_
#include "ui/gfx/geometry/point_f.h"
#include "ui/gfx/gfx_export.h"
namespace gfx {
// SMPTE ST 2086 mastering metadata.
struct GFX_EXPORT MasteringMetadata {
using Chromaticity = PointF;
Chromaticity primary_r;
Chromaticity primary_g;
Chromaticity primary_b;
Chromaticity white_point;
float luminance_max = 0;
float luminance_min = 0;
MasteringMetadata();
MasteringMetadata(const MasteringMetadata& rhs);
bool operator==(const MasteringMetadata& rhs) const {
return ((primary_r == rhs.primary_r) && (primary_g == rhs.primary_g) &&
(primary_b == rhs.primary_b) && (white_point == rhs.white_point) &&
(luminance_max == rhs.luminance_max) &&
(luminance_min == rhs.luminance_min));
}
};
// HDR metadata common for HDR10 and WebM/VP9-based HDR formats.
struct GFX_EXPORT HDRMetadata {
MasteringMetadata mastering_metadata;
// Max content light level (CLL), i.e. maximum brightness level present in the
// stream), in nits.
unsigned max_content_light_level = 0;
// Max frame-average light level (FALL), i.e. maximum average brightness of
// the brightest frame in the stream), in nits.
unsigned max_frame_average_light_level = 0;
HDRMetadata();
HDRMetadata(const HDRMetadata& rhs);
bool IsValid() const {
return !((max_content_light_level == 0) &&
(max_frame_average_light_level == 0) &&
(mastering_metadata == MasteringMetadata()));
}
bool operator==(const HDRMetadata& rhs) const {
return (
(max_content_light_level == rhs.max_content_light_level) &&
(max_frame_average_light_level == rhs.max_frame_average_light_level) &&
(mastering_metadata == rhs.mastering_metadata));
}
};
// HDR metadata types as described in
// https://w3c.github.io/media-capabilities/#enumdef-hdrmetadatatype
enum class HdrMetadataType {
kNone,
kSmpteSt2086,
kSmpteSt2094_10,
kSmpteSt2094_40,
};
} // namespace gfx
#endif // UI_GFX_HDR_METADATA_H_
|