/* 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;
}