use crate::ffi;
#[cfg(feature = "v1_30")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
use glib::translate::*;
#[cfg(feature = "v1_30")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
#[cfg(target_os = "android")]
#[cfg_attr(docsrs, doc(cfg(target_os = "android")))]
#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
#[non_exhaustive]
#[doc(alias = "GstAHardwareBufferFormat")]
pub enum AHardwareBufferFormat {
#[doc(alias = "GST_AHARDWARE_BUFFER_FORMAT_R8G8B8A8_UNORM")]
R8g8b8a8Unorm,
#[doc(alias = "GST_AHARDWARE_BUFFER_FORMAT_R8G8B8X8_UNORM")]
R8g8b8x8Unorm,
#[doc(alias = "GST_AHARDWARE_BUFFER_FORMAT_R8G8B8_UNORM")]
R8g8b8Unorm,
#[doc(alias = "GST_AHARDWARE_BUFFER_FORMAT_R5G6B5_UNORM")]
R5g6b5Unorm,
#[doc(alias = "GST_AHARDWARE_BUFFER_FORMAT_R16G16B16A16_FLOAT")]
R16g16b16a16Float,
#[doc(alias = "GST_AHARDWARE_BUFFER_FORMAT_BLOB")]
Blob,
#[doc(alias = "GST_AHARDWARE_BUFFER_FORMAT_Y8Cb8Cr8_420")]
Y8cb8cr8420,
#[doc(alias = "GST_AHARDWARE_BUFFER_FORMAT_R10G10B10A2_UNORM")]
R10g10b10a2Unorm,
#[doc(alias = "GST_AHARDWARE_BUFFER_FORMAT_D16_UNORM")]
D16Unorm,
#[doc(alias = "GST_AHARDWARE_BUFFER_FORMAT_D24_UNORM")]
D24Unorm,
#[doc(alias = "GST_AHARDWARE_BUFFER_FORMAT_D24_UNORM_S8_UINT")]
D24UnormS8Uint,
#[doc(alias = "GST_AHARDWARE_BUFFER_FORMAT_D32_FLOAT")]
D32Float,
#[doc(alias = "GST_AHARDWARE_BUFFER_FORMAT_D32_FLOAT_S8_UINT")]
D32FloatS8Uint,
#[doc(alias = "GST_AHARDWARE_BUFFER_FORMAT_S8_UINT")]
S8Uint,
#[doc(alias = "GST_AHARDWARE_BUFFER_FORMAT_YCbCr_P010")]
YcbcrP010,
#[doc(alias = "GST_AHARDWARE_BUFFER_FORMAT_R8_UNORM")]
R8Unorm,
#[doc(alias = "GST_AHARDWARE_BUFFER_FORMAT_R16_UINT")]
R16Uint,
#[doc(alias = "GST_AHARDWARE_BUFFER_FORMAT_R16G16_UINT")]
R16g16Uint,
#[doc(alias = "GST_AHARDWARE_BUFFER_FORMAT_R10G10B10A10_UNORM")]
R10g10b10a10Unorm,
#[doc(alias = "GST_AHARDWARE_BUFFER_FORMAT_YCbCr_P210")]
YcbcrP210,
#[doc(alias = "GST_AHARDWARE_BUFFER_FORMAT_R12_UINT")]
R12Uint,
#[doc(alias = "GST_AHARDWARE_BUFFER_FORMAT_R14_UINT")]
R14Uint,
#[doc(alias = "GST_AHARDWARE_BUFFER_FORMAT_R12G12_UINT")]
R12g12Uint,
#[doc(alias = "GST_AHARDWARE_BUFFER_FORMAT_R14G14_UINT")]
R14g14Uint,
#[doc(alias = "GST_AHARDWARE_BUFFER_FORMAT_R12G12B12A12_UINT")]
R12g12b12a12Uint,
#[doc(alias = "GST_AHARDWARE_BUFFER_FORMAT_R14G14B14A14_UINT")]
R14g14b14a14Uint,
#[doc(alias = "GST_AHARDWARE_BUFFER_FORMAT_B10G10R10A2_UNORM")]
B10g10r10a2Unorm,
#[doc(alias = "GST_AHARDWARE_BUFFER_FORMAT_B10G10R10X2_UNORM")]
B10g10r10x2Unorm,
#[doc(hidden)]
__Unknown(i32),
}
#[cfg(feature = "v1_30")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
#[cfg(target_os = "android")]
#[doc(hidden)]
impl IntoGlib for AHardwareBufferFormat {
type GlibType = ffi::GstAHardwareBufferFormat;
fn into_glib(self) -> ffi::GstAHardwareBufferFormat {
match self {
Self::R8g8b8a8Unorm => ffi::GST_AHARDWARE_BUFFER_FORMAT_R8G8B8A8_UNORM,
Self::R8g8b8x8Unorm => ffi::GST_AHARDWARE_BUFFER_FORMAT_R8G8B8X8_UNORM,
Self::R8g8b8Unorm => ffi::GST_AHARDWARE_BUFFER_FORMAT_R8G8B8_UNORM,
Self::R5g6b5Unorm => ffi::GST_AHARDWARE_BUFFER_FORMAT_R5G6B5_UNORM,
Self::R16g16b16a16Float => ffi::GST_AHARDWARE_BUFFER_FORMAT_R16G16B16A16_FLOAT,
Self::Blob => ffi::GST_AHARDWARE_BUFFER_FORMAT_BLOB,
Self::Y8cb8cr8420 => ffi::GST_AHARDWARE_BUFFER_FORMAT_Y8Cb8Cr8_420,
Self::R10g10b10a2Unorm => ffi::GST_AHARDWARE_BUFFER_FORMAT_R10G10B10A2_UNORM,
Self::D16Unorm => ffi::GST_AHARDWARE_BUFFER_FORMAT_D16_UNORM,
Self::D24Unorm => ffi::GST_AHARDWARE_BUFFER_FORMAT_D24_UNORM,
Self::D24UnormS8Uint => ffi::GST_AHARDWARE_BUFFER_FORMAT_D24_UNORM_S8_UINT,
Self::D32Float => ffi::GST_AHARDWARE_BUFFER_FORMAT_D32_FLOAT,
Self::D32FloatS8Uint => ffi::GST_AHARDWARE_BUFFER_FORMAT_D32_FLOAT_S8_UINT,
Self::S8Uint => ffi::GST_AHARDWARE_BUFFER_FORMAT_S8_UINT,
Self::YcbcrP010 => ffi::GST_AHARDWARE_BUFFER_FORMAT_YCbCr_P010,
Self::R8Unorm => ffi::GST_AHARDWARE_BUFFER_FORMAT_R8_UNORM,
Self::R16Uint => ffi::GST_AHARDWARE_BUFFER_FORMAT_R16_UINT,
Self::R16g16Uint => ffi::GST_AHARDWARE_BUFFER_FORMAT_R16G16_UINT,
Self::R10g10b10a10Unorm => ffi::GST_AHARDWARE_BUFFER_FORMAT_R10G10B10A10_UNORM,
Self::YcbcrP210 => ffi::GST_AHARDWARE_BUFFER_FORMAT_YCbCr_P210,
Self::R12Uint => ffi::GST_AHARDWARE_BUFFER_FORMAT_R12_UINT,
Self::R14Uint => ffi::GST_AHARDWARE_BUFFER_FORMAT_R14_UINT,
Self::R12g12Uint => ffi::GST_AHARDWARE_BUFFER_FORMAT_R12G12_UINT,
Self::R14g14Uint => ffi::GST_AHARDWARE_BUFFER_FORMAT_R14G14_UINT,
Self::R12g12b12a12Uint => ffi::GST_AHARDWARE_BUFFER_FORMAT_R12G12B12A12_UINT,
Self::R14g14b14a14Uint => ffi::GST_AHARDWARE_BUFFER_FORMAT_R14G14B14A14_UINT,
Self::B10g10r10a2Unorm => ffi::GST_AHARDWARE_BUFFER_FORMAT_B10G10R10A2_UNORM,
Self::B10g10r10x2Unorm => ffi::GST_AHARDWARE_BUFFER_FORMAT_B10G10R10X2_UNORM,
Self::__Unknown(value) => value,
}
}
}
#[cfg(feature = "v1_30")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
#[cfg(target_os = "android")]
#[doc(hidden)]
impl FromGlib<ffi::GstAHardwareBufferFormat> for AHardwareBufferFormat {
unsafe fn from_glib(value: ffi::GstAHardwareBufferFormat) -> Self {
skip_assert_initialized!();
match value {
ffi::GST_AHARDWARE_BUFFER_FORMAT_R8G8B8A8_UNORM => Self::R8g8b8a8Unorm,
ffi::GST_AHARDWARE_BUFFER_FORMAT_R8G8B8X8_UNORM => Self::R8g8b8x8Unorm,
ffi::GST_AHARDWARE_BUFFER_FORMAT_R8G8B8_UNORM => Self::R8g8b8Unorm,
ffi::GST_AHARDWARE_BUFFER_FORMAT_R5G6B5_UNORM => Self::R5g6b5Unorm,
ffi::GST_AHARDWARE_BUFFER_FORMAT_R16G16B16A16_FLOAT => Self::R16g16b16a16Float,
ffi::GST_AHARDWARE_BUFFER_FORMAT_BLOB => Self::Blob,
ffi::GST_AHARDWARE_BUFFER_FORMAT_Y8Cb8Cr8_420 => Self::Y8cb8cr8420,
ffi::GST_AHARDWARE_BUFFER_FORMAT_R10G10B10A2_UNORM => Self::R10g10b10a2Unorm,
ffi::GST_AHARDWARE_BUFFER_FORMAT_D16_UNORM => Self::D16Unorm,
ffi::GST_AHARDWARE_BUFFER_FORMAT_D24_UNORM => Self::D24Unorm,
ffi::GST_AHARDWARE_BUFFER_FORMAT_D24_UNORM_S8_UINT => Self::D24UnormS8Uint,
ffi::GST_AHARDWARE_BUFFER_FORMAT_D32_FLOAT => Self::D32Float,
ffi::GST_AHARDWARE_BUFFER_FORMAT_D32_FLOAT_S8_UINT => Self::D32FloatS8Uint,
ffi::GST_AHARDWARE_BUFFER_FORMAT_S8_UINT => Self::S8Uint,
ffi::GST_AHARDWARE_BUFFER_FORMAT_YCbCr_P010 => Self::YcbcrP010,
ffi::GST_AHARDWARE_BUFFER_FORMAT_R8_UNORM => Self::R8Unorm,
ffi::GST_AHARDWARE_BUFFER_FORMAT_R16_UINT => Self::R16Uint,
ffi::GST_AHARDWARE_BUFFER_FORMAT_R16G16_UINT => Self::R16g16Uint,
ffi::GST_AHARDWARE_BUFFER_FORMAT_R10G10B10A10_UNORM => Self::R10g10b10a10Unorm,
ffi::GST_AHARDWARE_BUFFER_FORMAT_YCbCr_P210 => Self::YcbcrP210,
ffi::GST_AHARDWARE_BUFFER_FORMAT_R12_UINT => Self::R12Uint,
ffi::GST_AHARDWARE_BUFFER_FORMAT_R14_UINT => Self::R14Uint,
ffi::GST_AHARDWARE_BUFFER_FORMAT_R12G12_UINT => Self::R12g12Uint,
ffi::GST_AHARDWARE_BUFFER_FORMAT_R14G14_UINT => Self::R14g14Uint,
ffi::GST_AHARDWARE_BUFFER_FORMAT_R12G12B12A12_UINT => Self::R12g12b12a12Uint,
ffi::GST_AHARDWARE_BUFFER_FORMAT_R14G14B14A14_UINT => Self::R14g14b14a14Uint,
ffi::GST_AHARDWARE_BUFFER_FORMAT_B10G10R10A2_UNORM => Self::B10g10r10a2Unorm,
ffi::GST_AHARDWARE_BUFFER_FORMAT_B10G10R10X2_UNORM => Self::B10g10r10x2Unorm,
value => Self::__Unknown(value),
}
}
}