ohos-native-buffer-sys 0.0.1

OpenHarmony's native buffer binding for rust
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
/* automatically generated by rust-bindgen 0.65.1 */

#![allow(non_snake_case)]
#![allow(non_upper_case_globals)]
#![allow(non_camel_case_types)]

#[repr(C)]
#[derive(Default)]
pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]);
impl<T> __IncompleteArrayField<T> {
    #[inline]
    pub const fn new() -> Self {
        __IncompleteArrayField(::std::marker::PhantomData, [])
    }
    #[inline]
    pub fn as_ptr(&self) -> *const T {
        self as *const _ as *const T
    }
    #[inline]
    pub fn as_mut_ptr(&mut self) -> *mut T {
        self as *mut _ as *mut T
    }
    #[inline]
    pub unsafe fn as_slice(&self, len: usize) -> &[T] {
        ::std::slice::from_raw_parts(self.as_ptr(), len)
    }
    #[inline]
    pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
        ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
    }
}
impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
    fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        fmt.write_str("__IncompleteArrayField")
    }
}
#[doc = " None color space"]
pub const OH_NativeBuffer_ColorSpace_OH_COLORSPACE_NONE: OH_NativeBuffer_ColorSpace = 0;
#[doc = " COLORPRIMARIES_BT601_P | (TRANSFUNC_BT709 << 8) | (MATRIX_BT601_P << 16) | (RANGE_FULL << 21)"]
pub const OH_NativeBuffer_ColorSpace_OH_COLORSPACE_BT601_EBU_FULL: OH_NativeBuffer_ColorSpace = 1;
#[doc = " COLORPRIMARIES_BT601_N | (TRANSFUNC_BT709 << 8) | (MATRIX_BT601_N << 16) | (RANGE_FULL << 21)"]
pub const OH_NativeBuffer_ColorSpace_OH_COLORSPACE_BT601_SMPTE_C_FULL: OH_NativeBuffer_ColorSpace =
    2;
#[doc = " COLORPRIMARIES_BT709 | (TRANSFUNC_BT709 << 8) | (MATRIX_BT709 << 16) | (RANGE_FULL << 21)"]
pub const OH_NativeBuffer_ColorSpace_OH_COLORSPACE_BT709_FULL: OH_NativeBuffer_ColorSpace = 3;
#[doc = " COLORPRIMARIES_BT2020 | (TRANSFUNC_HLG << 8) | (MATRIX_BT2020 << 16) | (RANGE_FULL << 21)"]
pub const OH_NativeBuffer_ColorSpace_OH_COLORSPACE_BT2020_HLG_FULL: OH_NativeBuffer_ColorSpace = 4;
#[doc = " COLORPRIMARIES_BT2020 | (TRANSFUNC_PQ << 8) | (MATRIX_BT2020 << 16) | (RANGE_FULL << 21)"]
pub const OH_NativeBuffer_ColorSpace_OH_COLORSPACE_BT2020_PQ_FULL: OH_NativeBuffer_ColorSpace = 5;
#[doc = " COLORPRIMARIES_BT601_P | (TRANSFUNC_BT709 << 8) | (MATRIX_BT601_P << 16) | (RANGE_LIMITED << 21)"]
pub const OH_NativeBuffer_ColorSpace_OH_COLORSPACE_BT601_EBU_LIMIT: OH_NativeBuffer_ColorSpace = 6;
#[doc = " COLORPRIMARIES_BT601_N | (TRANSFUNC_BT709 << 8) | (MATRIX_BT601_N << 16) | (RANGE_LIMITED << 21)"]
pub const OH_NativeBuffer_ColorSpace_OH_COLORSPACE_BT601_SMPTE_C_LIMIT: OH_NativeBuffer_ColorSpace =
    7;
#[doc = " COLORPRIMARIES_BT709 | (TRANSFUNC_BT709 << 8) | (MATRIX_BT709 << 16) | (RANGE_LIMITED << 21)"]
pub const OH_NativeBuffer_ColorSpace_OH_COLORSPACE_BT709_LIMIT: OH_NativeBuffer_ColorSpace = 8;
#[doc = " COLORPRIMARIES_BT2020 | (TRANSFUNC_HLG << 8) | (MATRIX_BT2020 << 16) | (RANGE_LIMITED << 21)"]
pub const OH_NativeBuffer_ColorSpace_OH_COLORSPACE_BT2020_HLG_LIMIT: OH_NativeBuffer_ColorSpace = 9;
#[doc = " COLORPRIMARIES_BT2020 | (TRANSFUNC_PQ << 8) | (MATRIX_BT2020 << 16) | (RANGE_LIMITED << 21)"]
pub const OH_NativeBuffer_ColorSpace_OH_COLORSPACE_BT2020_PQ_LIMIT: OH_NativeBuffer_ColorSpace = 10;
#[doc = " COLORPRIMARIES_SRGB | (TRANSFUNC_SRGB << 8) | (MATRIX_BT601_N << 16) | (RANGE_FULL << 21)"]
pub const OH_NativeBuffer_ColorSpace_OH_COLORSPACE_SRGB_FULL: OH_NativeBuffer_ColorSpace = 11;
#[doc = " COLORPRIMARIES_P3_D65 | (TRANSFUNC_SRGB << 8) | (MATRIX_P3 << 16) | (RANGE_FULL << 21)"]
pub const OH_NativeBuffer_ColorSpace_OH_COLORSPACE_P3_FULL: OH_NativeBuffer_ColorSpace = 12;
#[doc = " COLORPRIMARIES_P3_D65 | (TRANSFUNC_HLG << 8) | (MATRIX_P3 << 16) | (RANGE_FULL << 21)"]
pub const OH_NativeBuffer_ColorSpace_OH_COLORSPACE_P3_HLG_FULL: OH_NativeBuffer_ColorSpace = 13;
#[doc = " COLORPRIMARIES_P3_D65 | (TRANSFUNC_PQ << 8) | (MATRIX_P3 << 16) | (RANGE_FULL << 21)"]
pub const OH_NativeBuffer_ColorSpace_OH_COLORSPACE_P3_PQ_FULL: OH_NativeBuffer_ColorSpace = 14;
#[doc = " COLORPRIMARIES_ADOBERGB | (TRANSFUNC_ADOBERGB << 8) | (MATRIX_ADOBERGB << 16) | (RANGE_FULL << 21)"]
pub const OH_NativeBuffer_ColorSpace_OH_COLORSPACE_ADOBERGB_FULL: OH_NativeBuffer_ColorSpace = 15;
#[doc = " COLORPRIMARIES_SRGB | (TRANSFUNC_SRGB << 8) | (MATRIX_BT601_N << 16) | (RANGE_LIMITED << 21)"]
pub const OH_NativeBuffer_ColorSpace_OH_COLORSPACE_SRGB_LIMIT: OH_NativeBuffer_ColorSpace = 16;
#[doc = " COLORPRIMARIES_P3_D65 | (TRANSFUNC_SRGB << 8) | (MATRIX_P3 << 16) | (RANGE_LIMITED << 21)"]
pub const OH_NativeBuffer_ColorSpace_OH_COLORSPACE_P3_LIMIT: OH_NativeBuffer_ColorSpace = 17;
#[doc = " COLORPRIMARIES_P3_D65 | (TRANSFUNC_HLG << 8) | (MATRIX_P3 << 16) | (RANGE_LIMITED << 21)"]
pub const OH_NativeBuffer_ColorSpace_OH_COLORSPACE_P3_HLG_LIMIT: OH_NativeBuffer_ColorSpace = 18;
#[doc = " COLORPRIMARIES_P3_D65 | (TRANSFUNC_PQ << 8) | (MATRIX_P3 << 16) | (RANGE_LIMITED << 21)"]
pub const OH_NativeBuffer_ColorSpace_OH_COLORSPACE_P3_PQ_LIMIT: OH_NativeBuffer_ColorSpace = 19;
#[doc = " COLORPRIMARIES_ADOBERGB | (TRANSFUNC_ADOBERGB << 8) | (MATRIX_ADOBERGB << 16) | (RANGE_LIMITED << 21)"]
pub const OH_NativeBuffer_ColorSpace_OH_COLORSPACE_ADOBERGB_LIMIT: OH_NativeBuffer_ColorSpace = 20;
#[doc = " COLORPRIMARIES_SRGB | (TRANSFUNC_LINEAR << 8)"]
pub const OH_NativeBuffer_ColorSpace_OH_COLORSPACE_LINEAR_SRGB: OH_NativeBuffer_ColorSpace = 21;
#[doc = " equal to OH_COLORSPACE_LINEAR_SRGB"]
pub const OH_NativeBuffer_ColorSpace_OH_COLORSPACE_LINEAR_BT709: OH_NativeBuffer_ColorSpace = 22;
#[doc = " COLORPRIMARIES_P3_D65 | (TRANSFUNC_LINEAR << 8)"]
pub const OH_NativeBuffer_ColorSpace_OH_COLORSPACE_LINEAR_P3: OH_NativeBuffer_ColorSpace = 23;
#[doc = " COLORPRIMARIES_BT2020 | (TRANSFUNC_LINEAR << 8)"]
pub const OH_NativeBuffer_ColorSpace_OH_COLORSPACE_LINEAR_BT2020: OH_NativeBuffer_ColorSpace = 24;
#[doc = " equal to OH_COLORSPACE_SRGB_FULL"]
pub const OH_NativeBuffer_ColorSpace_OH_COLORSPACE_DISPLAY_SRGB: OH_NativeBuffer_ColorSpace = 25;
#[doc = " equal to OH_COLORSPACE_P3_FULL"]
pub const OH_NativeBuffer_ColorSpace_OH_COLORSPACE_DISPLAY_P3_SRGB: OH_NativeBuffer_ColorSpace = 26;
#[doc = " equal to OH_COLORSPACE_P3_HLG_FULL"]
pub const OH_NativeBuffer_ColorSpace_OH_COLORSPACE_DISPLAY_P3_HLG: OH_NativeBuffer_ColorSpace = 27;
#[doc = " equal to OH_COLORSPACE_P3_PQ_FULL"]
pub const OH_NativeBuffer_ColorSpace_OH_COLORSPACE_DISPLAY_P3_PQ: OH_NativeBuffer_ColorSpace = 28;
#[doc = " COLORPRIMARIES_BT2020 | (TRANSFUNC_SRGB << 8) | (MATRIX_BT2020 << 16) | (RANGE_FULL << 21)"]
pub const OH_NativeBuffer_ColorSpace_OH_COLORSPACE_DISPLAY_BT2020_SRGB: OH_NativeBuffer_ColorSpace =
    29;
#[doc = " equal to OH_COLORSPACE_BT2020_HLG_FULL"]
pub const OH_NativeBuffer_ColorSpace_OH_COLORSPACE_DISPLAY_BT2020_HLG: OH_NativeBuffer_ColorSpace =
    30;
#[doc = " equal to OH_COLORSPACE_BT2020_PQ_FULL"]
pub const OH_NativeBuffer_ColorSpace_OH_COLORSPACE_DISPLAY_BT2020_PQ: OH_NativeBuffer_ColorSpace =
    31;
#[doc = " @brief Indicates the color space of a native buffer.\n\n @syscap SystemCapability.Graphic.Graphic2D.NativeBuffer\n @since 11\n @version 1.0\n/\n/**\n @brief Indicates the color space of a native buffer.\n Move from native_buffer.h to native_common.h\n\n @syscap SystemCapability.Graphic.Graphic2D.NativeBuffer\n @since 12\n @version 1.0"]
pub type OH_NativeBuffer_ColorSpace = ::std::os::raw::c_uint;
#[doc = " HLG"]
pub const OH_NativeBuffer_MetadataType_OH_VIDEO_HDR_HLG: OH_NativeBuffer_MetadataType = 0;
#[doc = " HDR10"]
pub const OH_NativeBuffer_MetadataType_OH_VIDEO_HDR_HDR10: OH_NativeBuffer_MetadataType = 1;
#[doc = " HDR VIVID"]
pub const OH_NativeBuffer_MetadataType_OH_VIDEO_HDR_VIVID: OH_NativeBuffer_MetadataType = 2;
#[doc = " NONE Metadata\n @since 13"]
pub const OH_NativeBuffer_MetadataType_OH_VIDEO_NONE: OH_NativeBuffer_MetadataType = -1;
#[doc = " @brief Indicates the HDR metadata type of a native buffer.\n\n @syscap SystemCapability.Graphic.Graphic2D.NativeBuffer\n @since 12\n @version 1.0"]
pub type OH_NativeBuffer_MetadataType = ::std::os::raw::c_int;
#[doc = " @brief Indicates the color x and y.\n\n @syscap SystemCapability.Graphic.Graphic2D.NativeBuffer\n @since 12\n @version 1.0"]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OH_NativeBuffer_ColorXY {
    #[doc = " color X"]
    pub x: f32,
    #[doc = " color Y"]
    pub y: f32,
}
#[doc = " @brief Indicates the smpte2086 metadata.\n\n @syscap SystemCapability.Graphic.Graphic2D.NativeBuffer\n @since 12\n @version 1.0"]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OH_NativeBuffer_Smpte2086 {
    #[doc = " primary red"]
    pub displayPrimaryRed: OH_NativeBuffer_ColorXY,
    #[doc = " primary green"]
    pub displayPrimaryGreen: OH_NativeBuffer_ColorXY,
    #[doc = " primary blue"]
    pub displayPrimaryBlue: OH_NativeBuffer_ColorXY,
    #[doc = " white point"]
    pub whitePoint: OH_NativeBuffer_ColorXY,
    #[doc = " max luminance"]
    pub maxLuminance: f32,
    #[doc = " min luminance"]
    pub minLuminance: f32,
}
#[doc = " @brief Indicates the cta861.3 metadata.\n\n @syscap SystemCapability.Graphic.Graphic2D.NativeBuffer\n @since 12\n @version 1.0"]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OH_NativeBuffer_Cta861 {
    #[doc = " max content lightLevel"]
    pub maxContentLightLevel: f32,
    #[doc = " max frame average light level"]
    pub maxFrameAverageLightLevel: f32,
}
#[doc = " @brief Indicates the HDR static metadata.\n\n @syscap SystemCapability.Graphic.Graphic2D.NativeBuffer\n @since 12\n @version 1.0"]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OH_NativeBuffer_StaticMetadata {
    #[doc = " smpte 2086 metadata"]
    pub smpte2086: OH_NativeBuffer_Smpte2086,
    #[doc = " CTA-861.3 metadata"]
    pub cta861: OH_NativeBuffer_Cta861,
}
#[doc = " value: OH_NativeBuffer_MetadataType"]
pub const OH_NativeBuffer_MetadataKey_OH_HDR_METADATA_TYPE: OH_NativeBuffer_MetadataKey = 0;
#[doc = " value: OH_NativeBuffer_StaticMetadata"]
pub const OH_NativeBuffer_MetadataKey_OH_HDR_STATIC_METADATA: OH_NativeBuffer_MetadataKey = 1;
#[doc = " byte stream of SEI in video stream"]
pub const OH_NativeBuffer_MetadataKey_OH_HDR_DYNAMIC_METADATA: OH_NativeBuffer_MetadataKey = 2;
#[doc = " @brief Indicates the HDR metadata key of a native buffer.\n\n @syscap SystemCapability.Graphic.Graphic2D.NativeBuffer\n @since 12\n @version 1.0"]
pub type OH_NativeBuffer_MetadataKey = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug)]
pub struct BufferHandle {
    #[doc = "< buffer fd, -1 if not supported"]
    pub fd: i32,
    #[doc = "< the width of memory"]
    pub width: i32,
    #[doc = "< the stride of memory"]
    pub stride: i32,
    #[doc = "< the height of memory"]
    pub height: i32,
    pub size: i32,
    #[doc = "< the format of memory"]
    pub format: i32,
    #[doc = "< the usage of memory"]
    pub usage: u64,
    #[doc = "< Virtual address of memory"]
    pub virAddr: *mut ::std::os::raw::c_void,
    #[doc = "< Shared memory key"]
    pub key: i32,
    #[doc = "< Physical address"]
    pub phyAddr: u64,
    #[doc = "< the number of reserved fd value"]
    pub reserveFds: u32,
    #[doc = "< the number of reserved integer value"]
    pub reserveInts: u32,
    #[doc = "< the data"]
    pub reserve: __IncompleteArrayField<i32>,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OH_NativeBuffer {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OHIPCParcel {
    _unused: [u8; 0],
}
#[doc = " @brief native window buffer.\n @since 8"]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct NativeWindowBuffer {
    _unused: [u8; 0],
}
#[doc = " @brief define the new type name OHNativeWindowBuffer for struct NativeWindowBuffer.\n @since 8"]
pub type OHNativeWindowBuffer = NativeWindowBuffer;
#[doc = " @brief indicates a dirty region where content is updated.\n @since 8"]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Region {
    pub rects: *mut Region_Rect,
    #[doc = " if rectNumber is 0, fill the Buffer dirty size by default"]
    pub rectNumber: i32,
}
#[doc = " if rects is nullptr, fill the Buffer dirty size by default"]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Region_Rect {
    pub x: i32,
    pub y: i32,
    pub w: u32,
    pub h: u32,
}
#[doc = " the window content is not updated until a buffer of\n the window size is received"]
pub const OHScalingMode_OH_SCALING_MODE_FREEZE: OHScalingMode = 0;
#[doc = " the buffer is scaled in two dimensions to match the window size"]
pub const OHScalingMode_OH_SCALING_MODE_SCALE_TO_WINDOW: OHScalingMode = 1;
#[doc = " the buffer is uniformly scaled so that the smaller size of\n the buffer matches the window size"]
pub const OHScalingMode_OH_SCALING_MODE_SCALE_CROP: OHScalingMode = 2;
#[doc = " the window is clipped to the size of the buffer's clipping rectangle\n pixels outside the clipping rectangle are considered fully transparent."]
pub const OHScalingMode_OH_SCALING_MODE_NO_SCALE_CROP: OHScalingMode = 3;
#[doc = " @brief Indicates Scaling Mode.\n @since 9\n @deprecated(since = \"10\")"]
pub type OHScalingMode = ::std::os::raw::c_uint;
#[doc = " the window content is not updated until a buffer of\n the window size is received"]
pub const OHScalingModeV2_OH_SCALING_MODE_FREEZE_V2: OHScalingModeV2 = 0;
#[doc = " the buffer is scaled in two dimensions to match the window size"]
pub const OHScalingModeV2_OH_SCALING_MODE_SCALE_TO_WINDOW_V2: OHScalingModeV2 = 1;
#[doc = " the buffer is uniformly scaled so that the smaller size of\n the buffer matches the window size"]
pub const OHScalingModeV2_OH_SCALING_MODE_SCALE_CROP_V2: OHScalingModeV2 = 2;
#[doc = " the window is clipped to the size of the buffer's clipping rectangle\n pixels outside the clipping rectangle are considered fully transparent."]
pub const OHScalingModeV2_OH_SCALING_MODE_NO_SCALE_CROP_V2: OHScalingModeV2 = 3;
#[doc = " Adapt to the buffer and scale proportionally to the buffer size. Prioritize displaying all buffer content.\n If the size is not the same as the window size, fill the unfilled area of the window with a background color."]
pub const OHScalingModeV2_OH_SCALING_MODE_SCALE_FIT_V2: OHScalingModeV2 = 4;
#[doc = " @brief Indicates Scaling Mode.\n @since 12"]
pub type OHScalingModeV2 = ::std::os::raw::c_uint;
pub const OHHDRMetadataKey_OH_METAKEY_RED_PRIMARY_X: OHHDRMetadataKey = 0;
pub const OHHDRMetadataKey_OH_METAKEY_RED_PRIMARY_Y: OHHDRMetadataKey = 1;
pub const OHHDRMetadataKey_OH_METAKEY_GREEN_PRIMARY_X: OHHDRMetadataKey = 2;
pub const OHHDRMetadataKey_OH_METAKEY_GREEN_PRIMARY_Y: OHHDRMetadataKey = 3;
pub const OHHDRMetadataKey_OH_METAKEY_BLUE_PRIMARY_X: OHHDRMetadataKey = 4;
pub const OHHDRMetadataKey_OH_METAKEY_BLUE_PRIMARY_Y: OHHDRMetadataKey = 5;
pub const OHHDRMetadataKey_OH_METAKEY_WHITE_PRIMARY_X: OHHDRMetadataKey = 6;
pub const OHHDRMetadataKey_OH_METAKEY_WHITE_PRIMARY_Y: OHHDRMetadataKey = 7;
pub const OHHDRMetadataKey_OH_METAKEY_MAX_LUMINANCE: OHHDRMetadataKey = 8;
pub const OHHDRMetadataKey_OH_METAKEY_MIN_LUMINANCE: OHHDRMetadataKey = 9;
pub const OHHDRMetadataKey_OH_METAKEY_MAX_CONTENT_LIGHT_LEVEL: OHHDRMetadataKey = 10;
pub const OHHDRMetadataKey_OH_METAKEY_MAX_FRAME_AVERAGE_LIGHT_LEVEL: OHHDRMetadataKey = 11;
pub const OHHDRMetadataKey_OH_METAKEY_HDR10_PLUS: OHHDRMetadataKey = 12;
pub const OHHDRMetadataKey_OH_METAKEY_HDR_VIVID: OHHDRMetadataKey = 13;
#[doc = " @brief Enumerates the HDR metadata keys.\n @since 9\n @deprecated(since = \"10\")"]
pub type OHHDRMetadataKey = ::std::os::raw::c_uint;
#[doc = " @brief Defines the HDR metadata.\n @since 9\n @deprecated(since = \"10\")"]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OHHDRMetaData {
    pub key: OHHDRMetadataKey,
    pub value: f32,
}
#[doc = " @brief Defines the ExtData Handle\n @since 9\n @deprecated(since = \"10\")"]
#[repr(C)]
#[derive(Debug)]
pub struct OHExtDataHandle {
    pub fd: i32,
    pub reserveInts: u32,
    pub reserve: __IncompleteArrayField<i32>,
}
pub const OH_NativeBuffer_Usage_NATIVEBUFFER_USAGE_CPU_READ: OH_NativeBuffer_Usage = 1;
#[doc = " < CPU read buffer */"]
pub const OH_NativeBuffer_Usage_NATIVEBUFFER_USAGE_CPU_WRITE: OH_NativeBuffer_Usage = 2;
#[doc = " < CPU write memory */"]
pub const OH_NativeBuffer_Usage_NATIVEBUFFER_USAGE_MEM_DMA: OH_NativeBuffer_Usage = 8;
#[doc = " < Direct memory access (DMA) buffer */"]
pub const OH_NativeBuffer_Usage_NATIVEBUFFER_USAGE_HW_RENDER: OH_NativeBuffer_Usage = 256;
#[doc = " < For GPU write case */"]
pub const OH_NativeBuffer_Usage_NATIVEBUFFER_USAGE_HW_TEXTURE: OH_NativeBuffer_Usage = 512;
#[doc = " < For GPU read case */"]
pub const OH_NativeBuffer_Usage_NATIVEBUFFER_USAGE_CPU_READ_OFTEN: OH_NativeBuffer_Usage = 65536;
#[doc = " < Often be mapped for direct CPU reads */"]
pub const OH_NativeBuffer_Usage_NATIVEBUFFER_USAGE_ALIGNMENT_512: OH_NativeBuffer_Usage = 262144;
#[doc = " @brief Indicates the usage of a native buffer.\n\n @syscap SystemCapability.Graphic.Graphic2D.NativeBuffer\n @since 10\n @version 1.0"]
pub type OH_NativeBuffer_Usage = ::std::os::raw::c_uint;
#[doc = " CLUT8 format\n @since 12"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_CLUT8: OH_NativeBuffer_Format = 0;
#[doc = " CLUT1 format\n @since 12"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_CLUT1: OH_NativeBuffer_Format = 1;
#[doc = " CLUT4 format\n @since 12"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_CLUT4: OH_NativeBuffer_Format = 2;
#[doc = " CLUT4 format\n @since 12"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_RGB_565: OH_NativeBuffer_Format = 3;
#[doc = " < RGB565 format */"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_RGBA_5658: OH_NativeBuffer_Format = 4;
#[doc = " < RGBA5658 format */"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_RGBX_4444: OH_NativeBuffer_Format = 5;
#[doc = " < RGBX4444 format */"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_RGBA_4444: OH_NativeBuffer_Format = 6;
#[doc = " < RGBA4444 format */"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_RGB_444: OH_NativeBuffer_Format = 7;
#[doc = " < RGB444 format */"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_RGBX_5551: OH_NativeBuffer_Format = 8;
#[doc = " < RGBX5551 format */"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_RGBA_5551: OH_NativeBuffer_Format = 9;
#[doc = " < RGBA5551 format */"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_RGB_555: OH_NativeBuffer_Format = 10;
#[doc = " < RGB555 format */"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_RGBX_8888: OH_NativeBuffer_Format = 11;
#[doc = " < RGBX8888 format */"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_RGBA_8888: OH_NativeBuffer_Format = 12;
#[doc = " < RGBA8888 format */"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_RGB_888: OH_NativeBuffer_Format = 13;
#[doc = " < RGB888 format */"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_BGR_565: OH_NativeBuffer_Format = 14;
#[doc = " < BGR565 format */"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_BGRX_4444: OH_NativeBuffer_Format = 15;
#[doc = " < BGRX4444 format */"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_BGRA_4444: OH_NativeBuffer_Format = 16;
#[doc = " < BGRA4444 format */"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_BGRX_5551: OH_NativeBuffer_Format = 17;
#[doc = " < BGRX5551 format */"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_BGRA_5551: OH_NativeBuffer_Format = 18;
#[doc = " < BGRA5551 format */"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_BGRX_8888: OH_NativeBuffer_Format = 19;
#[doc = " < BGRX8888 format */"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_BGRA_8888: OH_NativeBuffer_Format = 20;
#[doc = " < BGRA8888 format */\n**\n* YUV422 interleaved format\n* @since 12\n*/"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_YUV_422_I: OH_NativeBuffer_Format = 21;
#[doc = " YCBCR422 semi-plannar format\n @since 12"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_YCBCR_422_SP: OH_NativeBuffer_Format = 22;
#[doc = " YCRCB422 semi-plannar format\n @since 12"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_YCRCB_422_SP: OH_NativeBuffer_Format = 23;
#[doc = " YCBCR420 semi-plannar format\n @since 12"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_YCBCR_420_SP: OH_NativeBuffer_Format = 24;
#[doc = " YCRCB420 semi-plannar format\n @since 12"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_YCRCB_420_SP: OH_NativeBuffer_Format = 25;
#[doc = " YCBCR422 plannar format\n @since 12"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_YCBCR_422_P: OH_NativeBuffer_Format = 26;
#[doc = " YCRCB422 plannar format\n @since 12"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_YCRCB_422_P: OH_NativeBuffer_Format = 27;
#[doc = " YCBCR420 plannar format\n @since 12"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_YCBCR_420_P: OH_NativeBuffer_Format = 28;
#[doc = " YCRCB420 plannar format\n @since 12"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_YCRCB_420_P: OH_NativeBuffer_Format = 29;
#[doc = " YUYV422 packed format\n @since 12"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_YUYV_422_PKG: OH_NativeBuffer_Format = 30;
#[doc = " UYVY422 packed format\n @since 12"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_UYVY_422_PKG: OH_NativeBuffer_Format = 31;
#[doc = " YVYU422 packed format\n @since 12"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_YVYU_422_PKG: OH_NativeBuffer_Format = 32;
#[doc = " VYUY422 packed format\n @since 12"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_VYUY_422_PKG: OH_NativeBuffer_Format = 33;
#[doc = " RGBA_1010102 packed format\n @since 12"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_RGBA_1010102: OH_NativeBuffer_Format = 34;
#[doc = " YCBCR420 semi-planar 10bit packed format\n @since 12"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_YCBCR_P010: OH_NativeBuffer_Format = 35;
#[doc = " YCRCB420 semi-planar 10bit packed format\n @since 12"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_YCRCB_P010: OH_NativeBuffer_Format = 36;
#[doc = " Raw 10bit packed format\n @since 12"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_RAW10: OH_NativeBuffer_Format = 37;
#[doc = " vender mask format\n @since 12"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_VENDER_MASK: OH_NativeBuffer_Format =
    2147418112;
#[doc = " vender mask format\n @since 12"]
pub const OH_NativeBuffer_Format_NATIVEBUFFER_PIXEL_FMT_BUTT: OH_NativeBuffer_Format = 2147483647;
#[doc = " @brief Indicates the format of a native buffer.\n\n @syscap SystemCapability.Graphic.Graphic2D.NativeBuffer\n @since 10\n @version 1.0"]
pub type OH_NativeBuffer_Format = ::std::os::raw::c_uint;
#[doc = "< No rotation"]
pub const OH_NativeBuffer_TransformType_NATIVEBUFFER_ROTATE_NONE: OH_NativeBuffer_TransformType = 0;
#[doc = "< Rotation by 90 degrees"]
pub const OH_NativeBuffer_TransformType_NATIVEBUFFER_ROTATE_90: OH_NativeBuffer_TransformType = 1;
#[doc = "< Rotation by 180 degrees"]
pub const OH_NativeBuffer_TransformType_NATIVEBUFFER_ROTATE_180: OH_NativeBuffer_TransformType = 2;
#[doc = "< Rotation by 270 degrees"]
pub const OH_NativeBuffer_TransformType_NATIVEBUFFER_ROTATE_270: OH_NativeBuffer_TransformType = 3;
#[doc = "< Flip horizontally"]
pub const OH_NativeBuffer_TransformType_NATIVEBUFFER_FLIP_H: OH_NativeBuffer_TransformType = 4;
#[doc = "< Flip vertically"]
pub const OH_NativeBuffer_TransformType_NATIVEBUFFER_FLIP_V: OH_NativeBuffer_TransformType = 5;
#[doc = "< Flip horizontally and rotate 90 degrees"]
pub const OH_NativeBuffer_TransformType_NATIVEBUFFER_FLIP_H_ROT90: OH_NativeBuffer_TransformType =
    6;
#[doc = "< Flip vertically and rotate 90 degrees"]
pub const OH_NativeBuffer_TransformType_NATIVEBUFFER_FLIP_V_ROT90: OH_NativeBuffer_TransformType =
    7;
#[doc = "< Flip horizontally and rotate 180 degrees"]
pub const OH_NativeBuffer_TransformType_NATIVEBUFFER_FLIP_H_ROT180: OH_NativeBuffer_TransformType =
    8;
#[doc = "< Flip vertically and rotate 180 degrees"]
pub const OH_NativeBuffer_TransformType_NATIVEBUFFER_FLIP_V_ROT180: OH_NativeBuffer_TransformType =
    9;
#[doc = "< Flip horizontally and rotate 270 degrees"]
pub const OH_NativeBuffer_TransformType_NATIVEBUFFER_FLIP_H_ROT270: OH_NativeBuffer_TransformType =
    10;
#[doc = "< Flip vertically and rotate 270 degrees"]
pub const OH_NativeBuffer_TransformType_NATIVEBUFFER_FLIP_V_ROT270: OH_NativeBuffer_TransformType =
    11;
#[doc = " @brief Indicates the transform type of a native buffer.\n\n @syscap SystemCapability.Graphic.Graphic2D.NativeBuffer\n @since 12\n @version 1.0"]
pub type OH_NativeBuffer_TransformType = ::std::os::raw::c_uint;
#[doc = "< Native or default"]
pub const OH_NativeBuffer_ColorGamut_NATIVEBUFFER_COLOR_GAMUT_NATIVE: OH_NativeBuffer_ColorGamut =
    0;
#[doc = "< Standard BT601"]
pub const OH_NativeBuffer_ColorGamut_NATIVEBUFFER_COLOR_GAMUT_STANDARD_BT601:
    OH_NativeBuffer_ColorGamut = 1;
#[doc = "< Standard BT709"]
pub const OH_NativeBuffer_ColorGamut_NATIVEBUFFER_COLOR_GAMUT_STANDARD_BT709:
    OH_NativeBuffer_ColorGamut = 2;
#[doc = "< DCI P3"]
pub const OH_NativeBuffer_ColorGamut_NATIVEBUFFER_COLOR_GAMUT_DCI_P3: OH_NativeBuffer_ColorGamut =
    3;
#[doc = "< SRGB"]
pub const OH_NativeBuffer_ColorGamut_NATIVEBUFFER_COLOR_GAMUT_SRGB: OH_NativeBuffer_ColorGamut = 4;
#[doc = "< Adobe RGB"]
pub const OH_NativeBuffer_ColorGamut_NATIVEBUFFER_COLOR_GAMUT_ADOBE_RGB:
    OH_NativeBuffer_ColorGamut = 5;
#[doc = "< Display P3"]
pub const OH_NativeBuffer_ColorGamut_NATIVEBUFFER_COLOR_GAMUT_DISPLAY_P3:
    OH_NativeBuffer_ColorGamut = 6;
#[doc = "< BT2020"]
pub const OH_NativeBuffer_ColorGamut_NATIVEBUFFER_COLOR_GAMUT_BT2020: OH_NativeBuffer_ColorGamut =
    7;
#[doc = "< BT2100 PQ"]
pub const OH_NativeBuffer_ColorGamut_NATIVEBUFFER_COLOR_GAMUT_BT2100_PQ:
    OH_NativeBuffer_ColorGamut = 8;
#[doc = "< BT2100 HLG"]
pub const OH_NativeBuffer_ColorGamut_NATIVEBUFFER_COLOR_GAMUT_BT2100_HLG:
    OH_NativeBuffer_ColorGamut = 9;
#[doc = "< Display BT2020"]
pub const OH_NativeBuffer_ColorGamut_NATIVEBUFFER_COLOR_GAMUT_DISPLAY_BT2020:
    OH_NativeBuffer_ColorGamut = 10;
#[doc = " @brief Indicates the color gamut of a native buffer.\n\n @syscap SystemCapability.Graphic.Graphic2D.NativeBuffer\n @since 12\n @version 1.0"]
pub type OH_NativeBuffer_ColorGamut = ::std::os::raw::c_uint;
#[doc = " @brief <b>OH_NativeBuffer</b> config. \\n\n Used to allocating new <b>OH_NativeBuffer</b> andquery parameters if existing ones.\n\n @syscap SystemCapability.Graphic.Graphic2D.NativeBuffer\n @since 9\n @version 1.0"]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OH_NativeBuffer_Config {
    #[doc = "< Width in pixels"]
    pub width: i32,
    #[doc = "< Height in pixels"]
    pub height: i32,
    #[doc = "< One of PixelFormat"]
    pub format: i32,
    #[doc = "< Combination of buffer usage"]
    pub usage: i32,
    #[doc = "< the stride of memory"]
    pub stride: i32,
}
#[doc = " @brief Holds info for a single image plane. \\n\n\n @syscap SystemCapability.Graphic.Graphic2D.NativeBuffer\n @since 12\n @version 1.0"]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OH_NativeBuffer_Plane {
    #[doc = "< Offset in bytes of plane."]
    pub offset: u64,
    #[doc = "< Distance in bytes from the first value of one row of the image to the first value of the next row."]
    pub rowStride: u32,
    #[doc = "< Distance in bytes from the first value of one column of the image to the first value of the next column."]
    pub columnStride: u32,
}
#[doc = " @brief Holds all image planes. \\n\n\n @syscap SystemCapability.Graphic.Graphic2D.NativeBuffer\n @since 12\n @version 1.0"]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OH_NativeBuffer_Planes {
    #[doc = "< Number of distinct planes."]
    pub planeCount: u32,
    #[doc = "< Array of image planes."]
    pub planes: [OH_NativeBuffer_Plane; 4usize],
}
extern "C" {
    #[doc = " @brief Alloc a <b>OH_NativeBuffer</b> that matches the passed BufferRequestConfig. \\n\n A new <b>OH_NativeBuffer</b> instance is created each time this function is called.\\n\n This interface needs to be used in conjunction with <b>OH_NativeBuffer_Unreference<\\b>,\n otherwise memory leaks will occur.\\n\n This interface is a non-thread-safe type interface.\\n\n\n @syscap SystemCapability.Graphic.Graphic2D.NativeBuffer\n @param config Indicates the pointer to a <b>BufferRequestConfig</b> instance.\n @return Returns the pointer to the <b>OH_NativeBuffer</b> instance created if the operation is successful, \\n\n returns <b>NULL</b> otherwise.\n @since 9\n @version 1.0"]
    pub fn OH_NativeBuffer_Alloc(config: *const OH_NativeBuffer_Config) -> *mut OH_NativeBuffer;
}
extern "C" {
    #[doc = " @brief Adds the reference count of a OH_NativeBuffer.\\n\n This interface needs to be used in conjunction with <b>OH_NativeBuffer_Unreference<\\b>,\n otherwise memory leaks will occur.\\n\n This interface is a non-thread-safe type interface.\\n\n\n @syscap SystemCapability.Graphic.Graphic2D.NativeBuffer\n @param buffer Indicates the pointer to a <b>OH_NativeBuffer</b> instance.\n @return Returns an error code, 0 is success, otherwise, failed.\n @since 9\n @version 1.0"]
    pub fn OH_NativeBuffer_Reference(buffer: *mut OH_NativeBuffer) -> i32;
}
extern "C" {
    #[doc = " @brief Decreases the reference count of a OH_NativeBuffer and, when the reference count reaches 0,\n destroys this OH_NativeBuffer.\\n\n This interface is a non-thread-safe type interface.\\n\n\n @syscap SystemCapability.Graphic.Graphic2D.NativeBuffer\n @param buffer Indicates the pointer to a <b>OH_NativeBuffer</b> instance.\n @return Returns an error code, 0 is success, otherwise, failed.\n @since 9\n @version 1.0"]
    pub fn OH_NativeBuffer_Unreference(buffer: *mut OH_NativeBuffer) -> i32;
}
extern "C" {
    #[doc = " @brief Return a config of the OH_NativeBuffer in the passed OHNativeBufferConfig struct.\\n\n This interface is a non-thread-safe type interface.\\n\n\n @syscap SystemCapability.Graphic.Graphic2D.NativeBuffer\n @param buffer Indicates the pointer to a <b>OH_NativeBuffer</b> instance.\n @param config Indicates the pointer to the <b>NativeBufferConfig</b> of the buffer.\n @return <b>void</b>\n @since 9\n @version 1.0"]
    pub fn OH_NativeBuffer_GetConfig(
        buffer: *mut OH_NativeBuffer,
        config: *mut OH_NativeBuffer_Config,
    );
}
extern "C" {
    #[doc = " @brief Provide direct cpu access to the OH_NativeBuffer in the process's address space.\\n\n This interface needs to be used in conjunction with <b>OH_NativeBuffer_Unmap<\\b>.\\n\n This interface is a non-thread-safe type interface.\\n\n\n @syscap SystemCapability.Graphic.Graphic2D.NativeBuffer\n @param buffer Indicates the pointer to a <b>OH_NativeBuffer</b> instance.\n @param virAddr Indicates the address of the <b>OH_NativeBuffer</b> in virtual memory.\n @return Returns an error code, 0 is success, otherwise, failed.\n @since 9\n @version 1.0"]
    pub fn OH_NativeBuffer_Map(
        buffer: *mut OH_NativeBuffer,
        virAddr: *mut *mut ::std::os::raw::c_void,
    ) -> i32;
}
extern "C" {
    #[doc = " @brief Remove direct cpu access ability of the OH_NativeBuffer in the process's address space.\\n\n This interface is a non-thread-safe type interface.\\n\n\n @syscap SystemCapability.Graphic.Graphic2D.NativeBuffer\n @param buffer Indicates the pointer to a <b>OH_NativeBuffer</b> instance.\n @return Returns an error code, 0 is success, otherwise, failed.\n @since 9\n @version 1.0"]
    pub fn OH_NativeBuffer_Unmap(buffer: *mut OH_NativeBuffer) -> i32;
}
extern "C" {
    #[doc = " @brief Get the systen wide unique sequence number of the OH_NativeBuffer.\\n\n This interface is a non-thread-safe type interface.\\n\n\n @syscap SystemCapability.Graphic.Graphic2D.NativeBuffer\n @param buffer Indicates the pointer to a <b>OH_NativeBuffer</b> instance.\n @return Returns the sequence number, which is unique for each OH_NativeBuffer.\n @since 9\n @version 1.0"]
    pub fn OH_NativeBuffer_GetSeqNum(buffer: *mut OH_NativeBuffer) -> u32;
}
extern "C" {
    #[doc = " @brief Provide direct cpu access to the potentially multi-plannar OH_NativeBuffer in the process's address space.\\n\n This interface is a non-thread-safe type interface.\\n\n\n @syscap SystemCapability.Graphic.Graphic2D.NativeBuffer\n @param buffer Indicates the pointer to a <b>OH_NativeBuffer</b> instance.\n @param virAddr Indicates the address of the <b>OH_NativeBuffer</b> in virtual memory.\n @param outPlanes Indicates all image planes that contain the pixel data.\n @return Returns an error code, 0 is sucess, otherwise, failed.\n @since 12\n @version 1.0"]
    pub fn OH_NativeBuffer_MapPlanes(
        buffer: *mut OH_NativeBuffer,
        virAddr: *mut *mut ::std::os::raw::c_void,
        outPlanes: *mut OH_NativeBuffer_Planes,
    ) -> i32;
}
extern "C" {
    #[doc = " @brief Converts an <b>OHNativeWindowBuffer</b> instance to an <b>OH_NativeBuffer</b>.\\n\n This interface is a non-thread-safe type interface.\\n\n\n @syscap SystemCapability.Graphic.Graphic2D.NativeBuffer\n @param nativeWindowBuffer Indicates the pointer to a <b>OHNativeWindowBuffer</b> instance.\n @param buffer Indicates the pointer to a <b>OH_NativeBuffer</b> pointer.\n @return Returns an error code, 0 is sucess, otherwise, failed.\n @since 12\n @version 1.0"]
    pub fn OH_NativeBuffer_FromNativeWindowBuffer(
        nativeWindowBuffer: *mut OHNativeWindowBuffer,
        buffer: *mut *mut OH_NativeBuffer,
    ) -> i32;
}
extern "C" {
    #[doc = " @brief Set the color space of the OH_NativeBuffer.\\n\n This interface is a non-thread-safe type interface.\\n\n\n @syscap SystemCapability.Graphic.Graphic2D.NativeBuffer\n @param buffer Indicates the pointer to a <b>OH_NativeBuffer</b> instance.\n @param colorSpace Indicates the color space of native buffer, see <b>OH_NativeBuffer_ColorSpace</b>.\n @return Returns an error code, 0 is success, otherwise, failed.\n @since 11\n @version 1.0"]
    pub fn OH_NativeBuffer_SetColorSpace(
        buffer: *mut OH_NativeBuffer,
        colorSpace: OH_NativeBuffer_ColorSpace,
    ) -> i32;
}
extern "C" {
    #[doc = " @brief Get the color space of the OH_NativeBuffer.\\n\n This interface is a non-thread-safe type interface.\\n\n\n @syscap SystemCapability.Graphic.Graphic2D.NativeBuffer\n @param buffer Indicates the pointer to a <b>OH_NativeBuffer</b> instance.\n @param colorSpace Indicates the color space of native buffer, see <b>OH_NativeBuffer_ColorSpace</b>.\n @return {@link NATIVE_ERROR_OK} 0 - Success.\n     {@link NATIVE_ERROR_INVALID_ARGUMENTS} 40001000 - buffer is NULL.\n     {@link NATIVE_ERROR_BUFFER_STATE_INVALID} 41207000 - Incorrect colorSpace state.\n @since 12\n @version 1.0"]
    pub fn OH_NativeBuffer_GetColorSpace(
        buffer: *mut OH_NativeBuffer,
        colorSpace: *mut OH_NativeBuffer_ColorSpace,
    ) -> i32;
}
extern "C" {
    #[doc = " @brief Set the metadata type of the OH_NativeBuffer.\\n\n This interface is a non-thread-safe type interface.\\n\n\n @syscap SystemCapability.Graphic.Graphic2D.NativeBuffer\n @param buffer Indicates the pointer to a <b>OH_NativeBuffer</b> instance.\n @param metadataKey Indicates the metadata type of native buffer, see <b>OH_NativeBuffer_MetadataKey</b>.\n @param size Indicates the size of a uint8_t vector.\n @param metadata Indicates the pointer to a uint8_t vector.\n @return {@link NATIVE_ERROR_OK} 0 - Success.\n     {@link NATIVE_ERROR_INVALID_ARGUMENTS} 40001000 - buffer or metadata is NULL.\n     {@link NATIVE_ERROR_BUFFER_STATE_INVALID} 41207000 - Incorrect metadata state.\n     {@link NATIVE_ERROR_UNSUPPORTED} 50102000 - Unsupported metadata key.\n @since 12\n @version 1.0"]
    pub fn OH_NativeBuffer_SetMetadataValue(
        buffer: *mut OH_NativeBuffer,
        metadataKey: OH_NativeBuffer_MetadataKey,
        size: i32,
        metadata: *mut u8,
    ) -> i32;
}
extern "C" {
    #[doc = " @brief Set the metadata type of the OH_NativeBuffer.\\n\n This interface is a non-thread-safe type interface.\\n\n\n @syscap SystemCapability.Graphic.Graphic2D.NativeBuffer\n @param buffer Indicates the pointer to a <b>OH_NativeBuffer</b> instance.\n @param metadataKey Indicates the metadata type of native buffer, see <b>OH_NativeBuffer_MetadataKey</b>.\n @param size Indicates the size of a uint8_t vector.\n @param metadata Indicates the pointer to a uint8_t vector.\n @return {@link NATIVE_ERROR_OK} 0 - Success.\n     {@link NATIVE_ERROR_INVALID_ARGUMENTS} 40001000 - buffer, metadata, or size is NULL.\n     {@link NATIVE_ERROR_BUFFER_STATE_INVALID} 41207000 - Incorrect metadata state.\n     {@link NATIVE_ERROR_UNSUPPORTED} 50102000 - Unsupported metadata key.\n @since 12\n @version 1.0"]
    pub fn OH_NativeBuffer_GetMetadataValue(
        buffer: *mut OH_NativeBuffer,
        metadataKey: OH_NativeBuffer_MetadataKey,
        size: *mut i32,
        metadata: *mut *mut u8,
    ) -> i32;
}