19bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter/* 29bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter * Copyright 2018 The Android Open Source Project 39bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter * 49bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter * Licensed under the Apache License, Version 2.0 (the "License"); 59bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter * you may not use this file except in compliance with the License. 69bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter * You may obtain a copy of the License at 79bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter * 89bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter * http://www.apache.org/licenses/LICENSE-2.0 99bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter * 109bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter * Unless required by applicable law or agreed to in writing, software 119bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter * distributed under the License is distributed on an "AS IS" BASIS, 129bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter * See the License for the specific language governing permissions and 149bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter * limitations under the License. 159bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter */ 169bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter 179bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter#pragma once 189bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter 199bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter#include <stdint.h> 209bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter 219bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter#include <system/graphics.h> 229bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter#include <utils/Flattenable.h> 239bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter 249bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchternamespace android { 259bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter 269bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchterstruct HdrMetadata : public LightFlattenable<HdrMetadata> { 279bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter enum Type : uint32_t { 289bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter SMPTE2086 = 1 << 0, 299bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter CTA861_3 = 1 << 1, 309bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter }; 319bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter uint32_t validTypes{0}; 329bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter 339bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter android_smpte2086_metadata smpte2086{}; 349bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter android_cta861_3_metadata cta8613{}; 359bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter 369bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter // LightFlattenable 379bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter bool isFixedSize() const { return false; } 389bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter size_t getFlattenedSize() const; 399bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter status_t flatten(void* buffer, size_t size) const; 409bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter status_t unflatten(void const* buffer, size_t size); 4139a0788cf6d728bd356700bb5b0a1d31cce10356Courtney Goeltzenleuchter 4239a0788cf6d728bd356700bb5b0a1d31cce10356Courtney Goeltzenleuchter bool operator==(const HdrMetadata& rhs) const; 439bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter}; 449bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter 459bad0d7e726e6b264c528a3dd13d0c58fd92c0e1Courtney Goeltzenleuchter} // namespace android 46