/* * Copyright (C) 2017 ARM Limited. All rights reserved. * * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef MALI_GRALLOC_PRIVATE_INTERFACE_TYPES_H_ #define MALI_GRALLOC_PRIVATE_INTERFACE_TYPES_H_ #define GRALLOC_ARM_BUFFER_ATTR_HDR_INFO_SUPPORT typedef enum { MALI_HDR_NO_INFO, MALI_HDR_ST2084, MALI_HDR_HLG, MALI_HDR_LAST } mali_transfer_function; typedef struct { //values are in units of 0.00002 uint16_t x; uint16_t y; } primaries; typedef struct { primaries r; primaries g; primaries b; primaries w; uint16_t minDisplayLuminance; // in cd/m^2 uint16_t maxDisplayLuminance; // in 0.0001 cd/m^2 uint16_t maxContentLightLevel; // in cd/m^2 uint16_t maxFrameAverageLightLevel; // in cd/m^2 mali_transfer_function eotf; } mali_hdr_info; enum { /* CROP_RECT and YUV_TRANS are intended to be * written by producers and read by consumers. * A producer should write these parameters before * it queues a buffer to the consumer. */ /* CROP RECT, defined as an int array of top, left, height, width. Origin in top-left corner */ GRALLOC_ARM_BUFFER_ATTR_CROP_RECT = 1, /* Set if the AFBC format used a YUV transform before compressing */ GRALLOC_ARM_BUFFER_ATTR_AFBC_YUV_TRANS = 2, /* Set if the AFBC format uses sparse allocation */ GRALLOC_ARM_BUFFER_ATTR_AFBC_SPARSE_ALLOC = 3, /* HDR Informations*/ GRALLOC_ARM_BUFFER_ATTR_HDR_INFO = 4, GRALLOC_ARM_BUFFER_ATTR_LAST }; typedef uint32_t buf_attr; typedef enum { MALI_YUV_NO_INFO, MALI_YUV_BT601_NARROW, MALI_YUV_BT601_WIDE, MALI_YUV_BT709_NARROW, MALI_YUV_BT709_WIDE } mali_gralloc_yuv_info; #endif /* MALI_GRALLOC_PRIVATE_INTERFACE_TYPES_H_ */