gstreamer-allocators 0.25.4

Rust bindings for GStreamer Allocators library
// This file was generated by gir (https://github.com/gtk-rs/gir)
// from gir-files (https://github.com/gtk-rs/gir-files)
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
// DO NOT EDIT

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),
        }
    }
}