#include "media/base/agtm.h"
#include "third_party/skia/include/core/SkData.h"
namespace media {
std::optional<gfx::HdrMetadataAgtm> GetHdrMetadataAgtmFromItutT35(
uint8_t t35_country_code,
base::span<const uint8_t> t35_payload) {
static constexpr size_t kItuT35HeaderSize = 6;
static constexpr uint8_t kItuT35USCountryCode = 0xB5;
const bool is_agtm = t35_country_code == kItuT35USCountryCode &&
t35_payload.size() >= kItuT35HeaderSize &&
t35_payload[0] == 0x00 && t35_payload[1] == 0x90 &&
t35_payload[2] == 0x00 && t35_payload[3] == 0x01 &&
t35_payload[4] == 0x01;
if (!is_agtm) {
return std::nullopt;
}
const auto agtm_payload_span = t35_payload.subspan(kItuT35HeaderSize);
sk_sp<SkData> agtm_skdata =
SkData::MakeWithCopy(agtm_payload_span.data(), agtm_payload_span.size());
return gfx::HdrMetadataAgtm(std::move(agtm_skdata));
}
}