// Copyright 2022 The Chromium Authors
// 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_MAC_H_
#define UI_GFX_HDR_METADATA_MAC_H_
#include <CoreFoundation/CoreFoundation.h>
#include <optional>
#include "base/apple/scoped_cftyperef.h"
#include "ui/gfx/color_space_export.h"
namespace gfx {
struct HDRMetadata;
// This can be used for rendering content using AVSampleBufferDisplayLayer via
// the key kCVImageBufferContentLightLevelInfoKey or for rendering content using
// a CAMetalLayer via CAEDRMetadata.
COLOR_SPACE_EXPORT base::apple::ScopedCFTypeRef<CFDataRef>
GenerateContentLightLevelInfo(
const std::optional<gfx::HDRMetadata>& hdr_metadata);
// This can be used for rendering content using AVSampleBufferDisplayLayer via
// the key kCVImageBufferMasteringDisplayColorVolumeKey or for rendering content
// using a CAMetalLayer via CAEDRMetadata.
COLOR_SPACE_EXPORT base::apple::ScopedCFTypeRef<CFDataRef>
GenerateMasteringDisplayColorVolume(
const std::optional<gfx::HDRMetadata>& hdr_metadata);
} // namespace gfx
#endif // UI_GFX_HDR_METADATA_MAC_H_