• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2021 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef CAMERA_DEVICE_ABILITY_ITEMS_H
17 #define CAMERA_DEVICE_ABILITY_ITEMS_H
18 
19 typedef enum camera_ability_section {
20     // Camera attribute information: position(facing), type, connection, description, sensor, lens description
21     OHOS_CAMERA_PROPERTIES = 0,
22     OHOS_CAMERA_LENS,
23     OHOS_CAMERA_SENSOR,
24     OHOS_CAMERA_SENSOR_INFO,
25     OHOS_CAMERA_STATISTICS,
26 
27     // Camera device image acquisition
28     OHOS_DEVICE_CONTROL  = 0x1000, // Overall control, such as turning off automatic 3A, operating mode
29     OHOS_DEVICE_EXPOSURE,
30     OHOS_DEVICE_FOCUS,
31     OHOS_DEVICE_WHITE_BLANCE,
32     OHOS_DEVICE_FLASH,
33     OHOS_DEVICE_ZOOM,
34 
35     // Camera image post-processing related
36     OHOS_POST_PROCESS_CONTROL  = 0x2000,
37     OHOS_POST_PROCESS_COLOR,
38     OHOS_POST_PROCESS_HDR,
39     OHOS_POST_PROCESS_PORTRAIT,
40     OHOS_POST_PROCESS_NIGHT,
41 
42     // Camera flow control related
43     OHOS_STREAM_ABILITY  = 0x3000,
44     OHOS_STREAM_CONTROL,   // General control: frame rate, resolution, mirroring
45     OHOS_STREAM_JPEG,
46     OHOS_STREAM_VIDEO,     // Video encoding related
47     OHOS_STREAM_DEPTH,
48     OHOS_STREAM_METADATA,
49     OHOS_STREAM_METADATA_FACE,
50     OHOS_STREAM_METADATA_BODY,
51 
52     OHOS_ABILITY_SECTION_END
53 } camera_ability_section_t;
54 
55 typedef enum camera_device_metadata_section_start {
56     OHOS_CAMERA_PROPERTIES_START = OHOS_CAMERA_PROPERTIES << 16,
57     OHOS_CAMERA_LENS_START = OHOS_CAMERA_LENS << 16,
58     OHOS_CAMERA_SENSOR_START = OHOS_CAMERA_SENSOR << 16,
59     OHOS_CAMERA_SENSOR_INFO_START = OHOS_CAMERA_SENSOR_INFO << 16,
60     OHOS_CAMERA_STATISTICS_START = OHOS_CAMERA_STATISTICS <<16,
61 
62     OHOS_DEVICE_CONTROL_START = OHOS_DEVICE_CONTROL << 16,
63     OHOS_DEVICE_EXPOSURE_START = OHOS_DEVICE_EXPOSURE << 16,
64     OHOS_DEVICE_FOCUS_START = OHOS_DEVICE_FOCUS << 16,
65     OHOS_DEVICE_WHITE_BLANCE_START = OHOS_DEVICE_WHITE_BLANCE << 16,
66     OHOS_DEVICE_FLASH_START = OHOS_DEVICE_FLASH << 16,
67     OHOS_DEVICE_ZOOM_START = OHOS_DEVICE_ZOOM << 16,
68 
69     OHOS_POST_PROCESS_CONTROL_START = OHOS_POST_PROCESS_CONTROL << 16,
70     OHOS_POST_PROCESS_COLOR_START = OHOS_POST_PROCESS_COLOR << 16,
71     OHOS_POST_PROCESS_HDR_START = OHOS_POST_PROCESS_HDR << 16,
72     OHOS_POST_PROCESS_PORTRAIT_START = OHOS_POST_PROCESS_PORTRAIT << 16,
73     OHOS_POST_PROCESS_NIGHT_START = OHOS_POST_PROCESS_NIGHT << 16,
74 
75     OHOS_STREAM_ABILITY_START = OHOS_STREAM_ABILITY << 16,
76     OHOS_STREAM_CONTROL_START = OHOS_STREAM_CONTROL << 16,
77     OHOS_STREAM_JPEG_START = OHOS_STREAM_JPEG << 16,
78     OHOS_STREAM_VIDEO_START = OHOS_STREAM_VIDEO << 16,
79     OHOS_STREAM_DEPTH_START = OHOS_STREAM_DEPTH << 16,
80     OHOS_STREAM_METADATA_START = OHOS_STREAM_METADATA << 16,
81     OHOS_STREAM_METADATA_FACE_START = OHOS_STREAM_METADATA_FACE << 16,
82     OHOS_STREAM_METADATA_BODY_START = OHOS_STREAM_METADATA_BODY << 16
83 } camera_device_info_section_start_t;
84 
85 typedef enum camera_device_metadata_tag {
86     // Camera attribute related item
87     OHOS_ABILITY_CAMERA_POSITION = OHOS_CAMERA_PROPERTIES_START,
88     OHOS_ABILITY_CAMERA_TYPE,
89     OHOS_ABILITY_CAMERA_CONNECTION_TYPE,
90     OHOS_CAMERA_PROPERTIES_END,
91 
92     OHOS_SENSOR_EXPOSURE_TIME = OHOS_CAMERA_SENSOR_START,
93     OHOS_SENSOR_COLOR_CORRECTION_GAINS,
94     OHOS_CAMERA_SENSOR_END,
95 
96     OHOS_SENSOR_INFO_ACTIVE_ARRAY_SIZE = OHOS_CAMERA_SENSOR_INFO_START,
97     OHOS_SENSOR_INFO_SENSITIVITY_RANGE,
98     OHOS_SENSOR_INFO_MAX_FRAME_DURATION,
99     OHOS_SENSOR_INFO_PHYSICAL_SIZE,
100     OHOS_SENSOR_INFO_PIXEL_ARRAY_SIZE,
101     OHOS_CAMERA_SENSOR_INFO_END,
102 
103     OHOS_STATISTICS_FACE_DETECT_MODE = OHOS_CAMERA_STATISTICS_START,
104     OHOS_STATISTICS_HISTOGRAM_MODE,
105     OHOS_STATISTICS_FACE_IDS,
106     OHOS_STATISTICS_FACE_LANDMARKS,
107     OHOS_STATISTICS_FACE_RECTANGLES,
108     OHOS_STATISTICS_FACE_SCORES,
109     OHOS_CAMERA_STATISTICS_END,
110 
111     OHOS_CONTROL_AE_ANTIBANDING_MODE = OHOS_DEVICE_CONTROL_START,
112     OHOS_CONTROL_AE_EXPOSURE_COMPENSATION,
113     OHOS_CONTROL_AE_LOCK,
114     OHOS_CONTROL_AE_MODE,
115     OHOS_CONTROL_AE_REGIONS,
116     OHOS_CONTROL_AE_TARGET_FPS_RANGE,
117     OHOS_CONTROL_AF_MODE,
118     OHOS_CONTROL_AF_REGIONS,
119     OHOS_CONTROL_AWB_LOCK,
120     OHOS_CONTROL_AWB_MODE,
121     OHOS_CONTROL_AWB_REGIONS,
122     OHOS_CONTROL_AE_AVAILABLE_ANTIBANDING_MODES,
123     OHOS_CONTROL_AE_AVAILABLE_MODES,
124     OHOS_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES,
125     OHOS_CONTROL_AE_COMPENSATION_RANGE,
126     OHOS_CONTROL_AE_COMPENSATION_STEP,
127     OHOS_CONTROL_AF_AVAILABLE_MODES,
128     OHOS_CONTROL_AWB_AVAILABLE_MODES,
129     OHOS_CONTROL_CAPTURE_MIRROR_SUPPORTED,
130     OHOS_CONTROL_CAPTURE_MIRROR,
131     OHOS_DEVICE_CONTROL_END,
132 
133     // Camera device image acquisition related
134     OHOS_ABILITY_DEVICE_AVAILABLE_EXPOSUREMODES = OHOS_DEVICE_EXPOSURE_START,
135     OHOS_CONTROL_EXPOSUREMODE,
136     OHOS_DEVICE_EXPOSURE_END,
137 
138     OHOS_ABILITY_DEVICE_AVAILABLE_FOCUSMODES = OHOS_DEVICE_FOCUS_START,
139     OHOS_CONTROL_FOCUSMODE,
140     OHOS_DEVICE_FOCUS_END,
141 
142     OHOS_ABILITY_DEVICE_AVAILABLE_FLASHMODES = OHOS_DEVICE_FLASH_START,
143     OHOS_CONTROL_FLASHMODE,
144     OHOS_DEVICE_FLASH_END,
145 
146     OHOS_ABILITY_ZOOM_RATIO_RANGE = OHOS_DEVICE_ZOOM_START,
147     OHOS_CONTROL_ZOOM_RATIO,
148     OHOS_DEVICE_ZOOM_END,
149 
150     // Camera flow control related
151     OHOS_ABILITY_STREAM_AVAILABLE_BASIC_CONFIGURATIONS = OHOS_STREAM_ABILITY_START,
152     OHOS_STREAM_AVAILABLE_FORMATS,
153     OHOS_STREAM_ABILITY_END,
154 
155     OHOS_JPEG_GPS_COORDINATES = OHOS_STREAM_JPEG_START,
156     OHOS_JPEG_GPS_PROCESSING_METHOD,
157     OHOS_JPEG_GPS_TIMESTAMP,
158     OHOS_JPEG_ORIENTATION,
159     OHOS_JPEG_QUALITY,
160     OHOS_JPEG_THUMBNAIL_QUALITY,
161     OHOS_JPEG_THUMBNAIL_SIZE,
162     OHOS_JPEG_AVAILABLE_THUMBNAIL_SIZES,
163     OHOS_JPEG_MAX_SIZE,
164     OHOS_JPEG_SIZE,
165     OHOS_STREAM_JPEG_END,
166 } camera_device_metadata_tag_t;
167 
168 // OHOS_CAMERA_POSITION
169 typedef enum camera_position_enum {
170     OHOS_CAMERA_POSITION_FRONT = 0,
171     OHOS_CAMERA_POSITION_BACK,
172     OHOS_CAMERA_POSITION_OTHER
173 } camera_position_enum_t;
174 
175 // OHOS_CAMERA_TYPE
176 typedef enum camera_type_enum {
177     OHOS_CAMERA_TYPE_WIDE_ANGLE = 0,
178     OHOS_CAMERA_TYPE_ULTRA_WIDE,
179     OHOS_CAMERA_TYPE_TELTPHOTO,
180     OHOS_CAMERA_TYPE_TRUE_DEAPTH,
181     OHOS_CAMERA_TYPE_LOGICAL,
182     OHOS_CAMERA_TYPE_UNSPECIFIED,
183 } camera_type_enum_t;
184 
185 // OHOS_CAMERA_CONNECTION_TYPE
186 typedef enum camera_connection_type {
187     OHOS_CAMERA_CONNECTION_TYPE_BUILTIN = 0,
188     OHOS_CAMERA_CONNECTION_TYPE_USB_PLUGIN,
189     OHOS_CAMERA_CONNECTION_TYPE_REMOTE,
190 } camera_connection_type_t;
191 
192 // OHOS_EXPOSURE_MODE
193 typedef enum camera_exposure_mode_enum {
194     OHOS_CAMERA_EXPOSURE_MODE_MANUAL = 0,
195     OHOS_CAMERA_EXPOSURE_MODE_CONTINUOUS_AUTO
196 } camera_exposure_mode_enum_t;
197 
198 // OHOS_FOCUS_MODE
199 typedef enum camera_focus_mode_enum {
200     OHOS_CAMERA_FOCUS_MODE_MANUAL = 0,
201     OHOS_CAMERA_FOCUS_MODE_CONTINUOUS_AUTO,
202     OHOS_CAMERA_FOCUS_MODE_AUTO,
203     OHOS_CAMERA_FOCUS_MODE_LOCKED
204 } camera_focus_mode_enum_t;
205 
206 // OHOS_FOCUS_MODE
207 typedef enum camera_flash_mode_enum {
208     OHOS_CAMERA_FLASH_MODE_CLOSE = 0,
209     OHOS_CAMERA_FLASH_MODE_OPEN,
210     OHOS_CAMERA_FLASH_MODE_AUTO,
211     OHOS_CAMERA_FLASH_MODE_ALWAYS_OPEN
212 } camera_flash_mode_enum_t;
213 
214 // OHOS_CONTROL_AE_ANTIBANDING_MODE
215 typedef enum camera_ae_antibanding_mode {
216     OHOS_CAMERA_AE_ANTIBANDING_MODE_OFF,
217     OHOS_CAMERA_AE_ANTIBANDING_MODE_50HZ,
218     OHOS_CAMERA_AE_ANTIBANDING_MODE_60HZ,
219     OHOS_CAMERA_AE_ANTIBANDING_MODE_AUTO,
220 } camera_ae_antibanding_mode_t;
221 
222 // OHOS_CONTROL_AE_LOCK
223 typedef enum camera_ae_lock {
224     OHOS_CAMERA_AE_LOCK_OFF,
225     OHOS_CAMERA_AE_LOCK_ON,
226 } camera_ae_lock_t;
227 
228 // OHOS_CONTROL_AE_MODE
229 typedef enum camera_ae_mode {
230     OHOS_CAMERA_AE_MODE_OFF,
231     OHOS_CAMERA_AE_MODE_ON,
232     OHOS_CAMERA_AE_MODE_ON_AUTO_FLASH,
233     OHOS_CAMERA_AE_MODE_ON_ALWAYS_FLASH,
234     OHOS_CAMERA_AE_MODE_ON_AUTO_FLASH_REDEYE,
235     OHOS_CAMERA_AE_MODE_ON_EXTERNAL_FLASH,
236 } camera_ae_mode_t;
237 
238 // OHOS_CONTROL_AF_MODE
239 typedef enum camera_af_mode {
240     OHOS_CAMERA_AF_MODE_OFF,
241     OHOS_CAMERA_AF_MODE_AUTO,
242     OHOS_CAMERA_AF_MODE_MACRO,
243     OHOS_CAMERA_AF_MODE_CONTINUOUS_VIDEO,
244     OHOS_CAMERA_AF_MODE_CONTINUOUS_PICTURE,
245     OHOS_CAMERA_AF_MODE_EDOF,
246 } camera_af_mode_t;
247 
248 // OHOS_CONTROL_AWB_LOCK
249 typedef enum camera_awb_lock {
250     OHOS_CAMERA_AWB_LOCK_OFF,
251     OHOS_CAMERA_AWB_LOCK_ON,
252 } camera_awb_lock_t;
253 
254 // OHOS_CONTROL_AWB_MODE
255 typedef enum camera_awb_mode {
256     OHOS_CAMERA_AWB_MODE_OFF,
257     OHOS_CAMERA_AWB_MODE_AUTO,
258     OHOS_CAMERA_AWB_MODE_INCANDESCENT,
259     OHOS_CAMERA_AWB_MODE_FLUORESCENT,
260     OHOS_CAMERA_AWB_MODE_WARM_FLUORESCENT,
261     OHOS_CAMERA_AWB_MODE_DAYLIGHT,
262     OHOS_CAMERA_AWB_MODE_CLOUDY_DAYLIGHT,
263     OHOS_CAMERA_AWB_MODE_TWILIGHT,
264     OHOS_CAMERA_AWB_MODE_SHADE,
265 } camera_awb_mode_t;
266 
267 // OHOS_STATISTICS_FACE_DETECT_MODE
268 typedef enum camera_face_detect_mode {
269     OHOS_CAMERA_FACE_DETECT_MODE_OFF,
270     OHOS_CAMERA_FACE_DETECT_MODE_SIMPLE,
271     OHOS_CAMERA_FACE_DETECT_MODE_FULL,
272 } camera_face_detect_mode_t;
273 
274 // OHOS_STATISTICS_HISTOGRAM_MODE
275 typedef enum camera_histogram_mode {
276     OHOS_CAMERA_HISTOGRAM_MODE_OFF,
277     OHOS_CAMERA_HISTOGRAM_MODE_ON,
278 } camera_histogram_mode_t;
279 
280 // OHOS_STREAM_AVAILABLE_FORMATS
281 typedef enum camera_format {
282     OHOS_CAMERA_FORMAT_RGBA_8888 = 1,
283     OHOS_CAMERA_FORMAT_YCBCR_420_888,
284     OHOS_CAMERA_FORMAT_YCRCB_420_SP,
285     OHOS_CAMERA_FORMAT_JPEG,
286 } camera_format_t;
287 
288 #endif
289