1094332d3Sopenharmony_ci/*
2094332d3Sopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd.
3094332d3Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4094332d3Sopenharmony_ci * you may not use this file except in compliance with the License.
5094332d3Sopenharmony_ci * You may obtain a copy of the License at
6094332d3Sopenharmony_ci *
7094332d3Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0
8094332d3Sopenharmony_ci *
9094332d3Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10094332d3Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11094332d3Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12094332d3Sopenharmony_ci * See the License for the specific language governing permissions and
13094332d3Sopenharmony_ci * limitations under the License.
14094332d3Sopenharmony_ci */
15094332d3Sopenharmony_ci
16094332d3Sopenharmony_ci/**
17094332d3Sopenharmony_ci * @file display_format.h
18094332d3Sopenharmony_ci *
19094332d3Sopenharmony_ci * @brief Declares display format-related enumeration.
20094332d3Sopenharmony_ci *
21094332d3Sopenharmony_ci * @since 1.0
22094332d3Sopenharmony_ci * @version 1.0
23094332d3Sopenharmony_ci */
24094332d3Sopenharmony_ci
25094332d3Sopenharmony_ci#ifndef DISPLAY_FORMAT_H
26094332d3Sopenharmony_ci#define DISPLAY_FORMAT_H
27094332d3Sopenharmony_ci
28094332d3Sopenharmony_ci#include <cstdint>
29094332d3Sopenharmony_ci
30094332d3Sopenharmony_cinamespace OHOS::Camera {
31094332d3Sopenharmony_ci
32094332d3Sopenharmony_cienum BufferUsage : uint64_t {
33094332d3Sopenharmony_ci    HBM_USE_CPU_READ = (1ULL << 0),
34094332d3Sopenharmony_ci    HBM_USE_CPU_WRITE = (1ULL << 1),
35094332d3Sopenharmony_ci    HBM_USE_MEM_MMZ = (1ULL << 2),
36094332d3Sopenharmony_ci    HBM_USE_MEM_DMA = (1ULL << 3),
37094332d3Sopenharmony_ci    HBM_USE_MEM_SHARE = (1ULL << 4),
38094332d3Sopenharmony_ci    HBM_USE_MEM_MMZ_CACHE = (1ULL << 5),
39094332d3Sopenharmony_ci    HBM_USE_MEM_FB = (1ULL << 6),
40094332d3Sopenharmony_ci    HBM_USE_ASSIGN_SIZE = (1ULL << 7),
41094332d3Sopenharmony_ci    HBM_USE_HW_RENDER = (1ULL << 8),
42094332d3Sopenharmony_ci    HBM_USE_HW_TEXTURE = (1ULL << 9),
43094332d3Sopenharmony_ci    HBM_USE_HW_COMPOSER = (1ULL << 10),
44094332d3Sopenharmony_ci    HBM_USE_PROTECTED = (1ULL << 11),
45094332d3Sopenharmony_ci    HBM_USE_CAMERA_READ = (1ULL << 12),
46094332d3Sopenharmony_ci    HBM_USE_CAMERA_WRITE = (1ULL << 13),
47094332d3Sopenharmony_ci    HBM_USE_VIDEO_ENCODER = (1ULL << 14),
48094332d3Sopenharmony_ci    HBM_USE_VIDEO_DECODER = (1ULL << 15),
49094332d3Sopenharmony_ci    HBM_USE_CPU_READ_OFTEN = (1ULL << 16),
50094332d3Sopenharmony_ci    HBM_USE_VENDOR_PRI0 = (1ULL << 44),
51094332d3Sopenharmony_ci    HBM_USE_VENDOR_PRI1 = (1ULL << 45),
52094332d3Sopenharmony_ci    HBM_USE_VENDOR_PRI2 = (1ULL << 46),
53094332d3Sopenharmony_ci    HBM_USE_VENDOR_PRI3 = (1ULL << 47),
54094332d3Sopenharmony_ci    HBM_USE_VENDOR_PRI4 = (1ULL << 48),
55094332d3Sopenharmony_ci    HBM_USE_VENDOR_PRI5 = (1ULL << 49),
56094332d3Sopenharmony_ci    HBM_USE_VENDOR_PRI6 = (1ULL << 50),
57094332d3Sopenharmony_ci    HBM_USE_VENDOR_PRI7 = (1ULL << 51),
58094332d3Sopenharmony_ci    HBM_USE_VENDOR_PRI8 = (1ULL << 52),
59094332d3Sopenharmony_ci    HBM_USE_VENDOR_PRI9 = (1ULL << 53),
60094332d3Sopenharmony_ci    HBM_USE_VENDOR_PRI10 = (1ULL << 54),
61094332d3Sopenharmony_ci    HBM_USE_VENDOR_PRI11 = (1ULL << 55),
62094332d3Sopenharmony_ci    HBM_USE_VENDOR_PRI12 = (1ULL << 56),
63094332d3Sopenharmony_ci    HBM_USE_VENDOR_PRI13 = (1ULL << 57),
64094332d3Sopenharmony_ci    HBM_USE_VENDOR_PRI14 = (1ULL << 58),
65094332d3Sopenharmony_ci    HBM_USE_VENDOR_PRI15 = (1ULL << 59),
66094332d3Sopenharmony_ci    HBM_USE_VENDOR_PRI16 = (1ULL << 60),
67094332d3Sopenharmony_ci    HBM_USE_VENDOR_PRI17 = (1ULL << 61),
68094332d3Sopenharmony_ci    HBM_USE_VENDOR_PRI18 = (1ULL << 62),
69094332d3Sopenharmony_ci    HBM_USE_VENDOR_PRI19 = (1ULL << 63),
70094332d3Sopenharmony_ci};
71094332d3Sopenharmony_ci
72094332d3Sopenharmony_cienum PixelFormat : int32_t {
73094332d3Sopenharmony_ci    PIXEL_FMT_CLUT8 = 0,
74094332d3Sopenharmony_ci    PIXEL_FMT_CLUT1,
75094332d3Sopenharmony_ci    PIXEL_FMT_CLUT4,
76094332d3Sopenharmony_ci    PIXEL_FMT_RGB_565,
77094332d3Sopenharmony_ci    PIXEL_FMT_RGBA_5658,
78094332d3Sopenharmony_ci    PIXEL_FMT_RGBX_4444,
79094332d3Sopenharmony_ci    PIXEL_FMT_RGBA_4444,
80094332d3Sopenharmony_ci    PIXEL_FMT_RGB_444,
81094332d3Sopenharmony_ci    PIXEL_FMT_RGBX_5551,
82094332d3Sopenharmony_ci    PIXEL_FMT_RGBA_5551,
83094332d3Sopenharmony_ci    PIXEL_FMT_RGB_555,
84094332d3Sopenharmony_ci    PIXEL_FMT_RGBX_8888,
85094332d3Sopenharmony_ci    PIXEL_FMT_RGBA_8888,
86094332d3Sopenharmony_ci    PIXEL_FMT_RGB_888,
87094332d3Sopenharmony_ci    PIXEL_FMT_BGR_565,
88094332d3Sopenharmony_ci    PIXEL_FMT_BGRX_4444,
89094332d3Sopenharmony_ci    PIXEL_FMT_BGRA_4444,
90094332d3Sopenharmony_ci    PIXEL_FMT_BGRX_5551,
91094332d3Sopenharmony_ci    PIXEL_FMT_BGRA_5551,
92094332d3Sopenharmony_ci    PIXEL_FMT_BGRX_8888,
93094332d3Sopenharmony_ci    PIXEL_FMT_BGRA_8888,
94094332d3Sopenharmony_ci    PIXEL_FMT_YUV_422_I,
95094332d3Sopenharmony_ci    PIXEL_FMT_YCBCR_422_SP,
96094332d3Sopenharmony_ci    PIXEL_FMT_YCRCB_422_SP,
97094332d3Sopenharmony_ci    PIXEL_FMT_YCBCR_420_SP,
98094332d3Sopenharmony_ci    PIXEL_FMT_YCRCB_420_SP,
99094332d3Sopenharmony_ci    PIXEL_FMT_YCBCR_422_P,
100094332d3Sopenharmony_ci    PIXEL_FMT_YCRCB_422_P,
101094332d3Sopenharmony_ci    PIXEL_FMT_YCBCR_420_P,
102094332d3Sopenharmony_ci    PIXEL_FMT_YCRCB_420_P,
103094332d3Sopenharmony_ci    PIXEL_FMT_YUYV_422_PKG,
104094332d3Sopenharmony_ci    PIXEL_FMT_UYVY_422_PKG,
105094332d3Sopenharmony_ci    PIXEL_FMT_YVYU_422_PKG,
106094332d3Sopenharmony_ci    PIXEL_FMT_VYUY_422_PKG,
107094332d3Sopenharmony_ci    PIXEL_FMT_RGBA_1010102,
108094332d3Sopenharmony_ci    PIXEL_FMT_YCBCR_P010,
109094332d3Sopenharmony_ci    PIXEL_FMT_YCRCB_P010,
110094332d3Sopenharmony_ci    PIXEL_FMT_RAW10,
111094332d3Sopenharmony_ci    PIXEL_FMT_VENDER_MASK = 0X7FFF0000,
112094332d3Sopenharmony_ci    PIXEL_FMT_BUTT = 0X7FFFFFFF,
113094332d3Sopenharmony_ci};
114094332d3Sopenharmony_ci
115094332d3Sopenharmony_cienum OhosColorSpace {
116094332d3Sopenharmony_ci    OHOS_CAMERA_COLORSPACE_NONE,
117094332d3Sopenharmony_ci    // COLORPRIMARIES_BT709   | (TRANSFUNC_BT709 << 8) | (MATRIX_BT709   << 16) | (RANGE_FULL << 21)
118094332d3Sopenharmony_ci    OHOS_CAMERA_BT709_FULL          = 1 | (1 << 8) | (1 << 16) | (1 << 21),
119094332d3Sopenharmony_ci    // COLORPRIMARIES_BT2020  | (TRANSFUNC_HLG   << 8) | (MATRIX_BT2020  << 16) | (RANGE_FULL << 21)
120094332d3Sopenharmony_ci    OHOS_CAMERA_BT2020_HLG_FULL     = 4 | (5 << 8) | (4 << 16) | (1 << 21),
121094332d3Sopenharmony_ci    // COLORPRIMARIES_BT2020  | (TRANSFUNC_PQ    << 8) | (MATRIX_BT2020  << 16) | (RANGE_FULL << 21)
122094332d3Sopenharmony_ci    OHOS_CAMERA_BT2020_PQ_FULL      = 4 | (4 << 8) | (4 << 16) | (1 << 21),
123094332d3Sopenharmony_ci    // COLORPRIMARIES_SRGB    | (TRANSFUNC_SRGB  << 8) | (MATRIX_BT601_N << 16) | (RANGE_FULL << 21)
124094332d3Sopenharmony_ci    OHOS_CAMERA_SRGB_FULL           = 1 | (2 << 8) | (3 << 16) | (1 << 21),
125094332d3Sopenharmony_ci    // COLORPRIMARIES_P3_D65  | (TRANSFUNC_SRGB  << 8) | (MATRIX_P3      << 16) | (RANGE_FULL << 21)
126094332d3Sopenharmony_ci    OHOS_CAMERA_P3_FULL             = 6 | (2 << 8) | (3 << 16) | (1 << 21),
127094332d3Sopenharmony_ci};
128094332d3Sopenharmony_ci
129094332d3Sopenharmony_ci} // end namespace OHOS::Camera
130094332d3Sopenharmony_ci#endif
131