blob: 9058a0d07ab158965319cbdec940780c55b61af0 [file] [log] [blame]
// Copyright 2016 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 COBALT_MEDIA_BASE_HDR_METADATA_H_
#define COBALT_MEDIA_BASE_HDR_METADATA_H_
#include "cobalt/media/base/media_export.h"
namespace cobalt {
namespace media {
// SMPTE ST 2086 mastering metadata.
struct MEDIA_EXPORT MasteringMetadata {
float primary_r_chromaticity_x;
float primary_r_chromaticity_y;
float primary_g_chromaticity_x;
float primary_g_chromaticity_y;
float primary_b_chromaticity_x;
float primary_b_chromaticity_y;
float white_point_chromaticity_x;
float white_point_chromaticity_y;
float luminance_max;
float luminance_min;
MasteringMetadata();
MasteringMetadata(const MasteringMetadata& rhs);
bool operator==(const MasteringMetadata& rhs) const {
return ((primary_r_chromaticity_x == rhs.primary_r_chromaticity_x) &&
(primary_r_chromaticity_y == rhs.primary_r_chromaticity_y) &&
(primary_g_chromaticity_x == rhs.primary_g_chromaticity_x) &&
(primary_g_chromaticity_y == rhs.primary_g_chromaticity_y) &&
(primary_b_chromaticity_x == rhs.primary_b_chromaticity_x) &&
(primary_b_chromaticity_y == rhs.primary_b_chromaticity_y) &&
(white_point_chromaticity_x == rhs.white_point_chromaticity_x) &&
(white_point_chromaticity_y == rhs.white_point_chromaticity_y) &&
(luminance_max == rhs.luminance_max) &&
(luminance_min == rhs.luminance_min));
}
};
// HDR metadata common for HDR10 and WebM/VP9-based HDR formats.
struct MEDIA_EXPORT HDRMetadata {
MasteringMetadata mastering_metadata;
unsigned max_cll;
unsigned max_fall;
HDRMetadata();
HDRMetadata(const HDRMetadata& rhs);
bool operator==(const HDRMetadata& rhs) const {
return ((max_cll == rhs.max_cll) && (max_fall == rhs.max_fall) &&
(mastering_metadata == rhs.mastering_metadata));
}
};
} // namespace media
} // namespace cobalt
#endif // COBALT_MEDIA_BASE_HDR_METADATA_H_