Reorder methods and members of HdrMetadata
Bug: webrtc:8651 Change-Id: I67941a5918d5cd31a7b04b11aa20c500d49e9a62 Reviewed-on: https://webrtc-review.googlesource.com/c/114283 Reviewed-by: Niels Moller <nisse@webrtc.org> Commit-Queue: Johannes Kron <kron@webrtc.org> Cr-Commit-Position: refs/heads/master@{#26002}
This commit is contained in:
parent
d96b275cd6
commit
fe79b34c11
@ -11,21 +11,14 @@
|
|||||||
#ifndef API_VIDEO_HDR_METADATA_H_
|
#ifndef API_VIDEO_HDR_METADATA_H_
|
||||||
#define API_VIDEO_HDR_METADATA_H_
|
#define API_VIDEO_HDR_METADATA_H_
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
// SMPTE ST 2086 mastering metadata,
|
// SMPTE ST 2086 mastering metadata,
|
||||||
// see https://ieeexplore.ieee.org/document/8353899.
|
// see https://ieeexplore.ieee.org/document/8353899.
|
||||||
struct HdrMasteringMetadata {
|
struct HdrMasteringMetadata {
|
||||||
struct Chromaticity {
|
struct Chromaticity {
|
||||||
// xy chromaticity coordinates must be calculated as specified in ISO
|
Chromaticity();
|
||||||
// 11664-3:2012 Section 7, and must be specified with four decimal places.
|
|
||||||
// The x coordinate should be in the range [0.0001, 0.7400] and the y
|
|
||||||
// coordinate should be in the range [0.0001, 0.8400]. Valid range [0.0000,
|
|
||||||
// 1.0000].
|
|
||||||
float x = 0.0f;
|
|
||||||
float y = 0.0f;
|
|
||||||
bool operator==(const Chromaticity& rhs) const {
|
bool operator==(const Chromaticity& rhs) const {
|
||||||
return x == rhs.x && y == rhs.y;
|
return x == rhs.x && y == rhs.y;
|
||||||
}
|
}
|
||||||
@ -34,9 +27,31 @@ struct HdrMasteringMetadata {
|
|||||||
return x >= 0.0 && x <= 1.0 && y >= 0.0 && y <= 1.0;
|
return x >= 0.0 && x <= 1.0 && y >= 0.0 && y <= 1.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
Chromaticity();
|
// xy chromaticity coordinates must be calculated as specified in ISO
|
||||||
|
// 11664-3:2012 Section 7, and must be specified with four decimal places.
|
||||||
|
// The x coordinate should be in the range [0.0001, 0.7400] and the y
|
||||||
|
// coordinate should be in the range [0.0001, 0.8400]. Valid range [0.0000,
|
||||||
|
// 1.0000].
|
||||||
|
float x = 0.0f;
|
||||||
|
float y = 0.0f;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
HdrMasteringMetadata();
|
||||||
|
|
||||||
|
bool operator==(const HdrMasteringMetadata& 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));
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Validate() const {
|
||||||
|
return luminance_max >= 0.0 && luminance_max <= 20000.0 &&
|
||||||
|
luminance_min >= 0.0 && luminance_min <= 5.0 &&
|
||||||
|
primary_r.Validate() && primary_g.Validate() &&
|
||||||
|
primary_b.Validate() && white_point.Validate();
|
||||||
|
}
|
||||||
|
|
||||||
// The nominal primaries of the mastering display.
|
// The nominal primaries of the mastering display.
|
||||||
Chromaticity primary_r;
|
Chromaticity primary_r;
|
||||||
Chromaticity primary_g;
|
Chromaticity primary_g;
|
||||||
@ -54,36 +69,12 @@ struct HdrMasteringMetadata {
|
|||||||
// in the unit candela/m2. The value should be in the range [0.0001, 5.0000]
|
// in the unit candela/m2. The value should be in the range [0.0001, 5.0000]
|
||||||
// with four decimal places. Valid range [0.0000, 5.0000].
|
// with four decimal places. Valid range [0.0000, 5.0000].
|
||||||
float luminance_min = 0.0f;
|
float luminance_min = 0.0f;
|
||||||
|
|
||||||
HdrMasteringMetadata();
|
|
||||||
|
|
||||||
bool operator==(const HdrMasteringMetadata& 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));
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Validate() const {
|
|
||||||
return luminance_max >= 0.0 && luminance_max <= 20000.0 &&
|
|
||||||
luminance_min >= 0.0 && luminance_min <= 5.0 &&
|
|
||||||
primary_r.Validate() && primary_g.Validate() &&
|
|
||||||
primary_b.Validate() && white_point.Validate();
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// High dynamic range (HDR) metadata common for HDR10 and WebM/VP9-based HDR
|
// High dynamic range (HDR) metadata common for HDR10 and WebM/VP9-based HDR
|
||||||
// formats. This struct replicates the HDRMetadata struct defined in
|
// formats. This struct replicates the HDRMetadata struct defined in
|
||||||
// https://cs.chromium.org/chromium/src/media/base/hdr_metadata.h
|
// https://cs.chromium.org/chromium/src/media/base/hdr_metadata.h
|
||||||
struct HdrMetadata {
|
struct HdrMetadata {
|
||||||
HdrMasteringMetadata mastering_metadata;
|
|
||||||
// Max content light level (CLL), i.e. maximum brightness level present in the
|
|
||||||
// stream, in nits. 1 nit = 1 candela/m2. Valid range [0, 20000].
|
|
||||||
int 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. Valid range [0, 20000].
|
|
||||||
int max_frame_average_light_level = 0;
|
|
||||||
|
|
||||||
HdrMetadata();
|
HdrMetadata();
|
||||||
|
|
||||||
bool operator==(const HdrMetadata& rhs) const {
|
bool operator==(const HdrMetadata& rhs) const {
|
||||||
@ -99,6 +90,14 @@ struct HdrMetadata {
|
|||||||
max_frame_average_light_level <= 20000 &&
|
max_frame_average_light_level <= 20000 &&
|
||||||
mastering_metadata.Validate();
|
mastering_metadata.Validate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HdrMasteringMetadata mastering_metadata;
|
||||||
|
// Max content light level (CLL), i.e. maximum brightness level present in the
|
||||||
|
// stream, in nits. 1 nit = 1 candela/m2. Valid range [0, 20000].
|
||||||
|
int 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. Valid range [0, 20000].
|
||||||
|
int max_frame_average_light_level = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user