gstreamer_analytics/auto/
enums.rs1use crate::ffi;
7#[cfg(feature = "v1_26")]
8#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
9use glib::translate::*;
10
11#[cfg(feature = "v1_28")]
12#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
13#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
14#[non_exhaustive]
15#[doc(alias = "GstAnalyticsModelInfoTensorDirection")]
16pub enum ModelInfoTensorDirection {
17 #[doc(alias = "MODELINFO_DIRECTION_UNKNOWN")]
19 Unknown,
20 #[doc(alias = "MODELINFO_DIRECTION_INPUT")]
22 Input,
23 #[doc(alias = "MODELINFO_DIRECTION_OUTPUT")]
25 Output,
26 #[doc(hidden)]
27 __Unknown(i32),
28}
29
30#[cfg(feature = "v1_28")]
31#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
32#[doc(hidden)]
33impl IntoGlib for ModelInfoTensorDirection {
34 type GlibType = ffi::GstAnalyticsModelInfoTensorDirection;
35
36 #[inline]
37 fn into_glib(self) -> ffi::GstAnalyticsModelInfoTensorDirection {
38 match self {
39 Self::Unknown => ffi::MODELINFO_DIRECTION_UNKNOWN,
40 Self::Input => ffi::MODELINFO_DIRECTION_INPUT,
41 Self::Output => ffi::MODELINFO_DIRECTION_OUTPUT,
42 Self::__Unknown(value) => value,
43 }
44 }
45}
46
47#[cfg(feature = "v1_28")]
48#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
49#[doc(hidden)]
50impl FromGlib<ffi::GstAnalyticsModelInfoTensorDirection> for ModelInfoTensorDirection {
51 #[inline]
52 unsafe fn from_glib(value: ffi::GstAnalyticsModelInfoTensorDirection) -> Self {
53 skip_assert_initialized!();
54
55 match value {
56 ffi::MODELINFO_DIRECTION_UNKNOWN => Self::Unknown,
57 ffi::MODELINFO_DIRECTION_INPUT => Self::Input,
58 ffi::MODELINFO_DIRECTION_OUTPUT => Self::Output,
59 value => Self::__Unknown(value),
60 }
61 }
62}
63
64#[cfg(feature = "v1_26")]
66#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
67#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
68#[non_exhaustive]
69#[doc(alias = "GstTensorDataType")]
70pub enum TensorDataType {
71 #[doc(alias = "GST_TENSOR_DATA_TYPE_INT4")]
73 Int4,
74 #[doc(alias = "GST_TENSOR_DATA_TYPE_INT8")]
76 Int8,
77 #[doc(alias = "GST_TENSOR_DATA_TYPE_INT16")]
79 Int16,
80 #[doc(alias = "GST_TENSOR_DATA_TYPE_INT32")]
82 Int32,
83 #[doc(alias = "GST_TENSOR_DATA_TYPE_INT64")]
85 Int64,
86 #[doc(alias = "GST_TENSOR_DATA_TYPE_UINT4")]
88 Uint4,
89 #[doc(alias = "GST_TENSOR_DATA_TYPE_UINT8")]
91 Uint8,
92 #[doc(alias = "GST_TENSOR_DATA_TYPE_UINT16")]
94 Uint16,
95 #[doc(alias = "GST_TENSOR_DATA_TYPE_UINT32")]
97 Uint32,
98 #[doc(alias = "GST_TENSOR_DATA_TYPE_UINT64")]
100 Uint64,
101 #[doc(alias = "GST_TENSOR_DATA_TYPE_FLOAT16")]
103 Float16,
104 #[doc(alias = "GST_TENSOR_DATA_TYPE_FLOAT32")]
106 Float32,
107 #[doc(alias = "GST_TENSOR_DATA_TYPE_FLOAT64")]
109 Float64,
110 #[doc(alias = "GST_TENSOR_DATA_TYPE_BFLOAT16")]
112 Bfloat16,
113 #[cfg(feature = "v1_28")]
115 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
116 #[doc(alias = "GST_TENSOR_DATA_TYPE_STRING")]
117 String,
118 #[cfg(feature = "v1_28")]
120 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
121 #[doc(alias = "GST_TENSOR_DATA_TYPE_BOOL")]
122 Bool,
123 #[cfg(feature = "v1_28")]
125 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
126 #[doc(alias = "GST_TENSOR_DATA_TYPE_COMPLEX64")]
127 Complex64,
128 #[cfg(feature = "v1_28")]
130 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
131 #[doc(alias = "GST_TENSOR_DATA_TYPE_COMPLEX128")]
132 Complex128,
133 #[cfg(feature = "v1_28")]
136 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
137 #[doc(alias = "GST_TENSOR_DATA_TYPE_FLOAT8E4M3FN")]
138 Float8e4m3fn,
139 #[cfg(feature = "v1_28")]
142 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
143 #[doc(alias = "GST_TENSOR_DATA_TYPE_FLOAT8E4M3FNUZ")]
144 Float8e4m3fnuz,
145 #[cfg(feature = "v1_28")]
148 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
149 #[doc(alias = "GST_TENSOR_DATA_TYPE_FLOAT8E5M2")]
150 Float8e5m2,
151 #[cfg(feature = "v1_28")]
154 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
155 #[doc(alias = "GST_TENSOR_DATA_TYPE_FLOAT8E5M2FNUZ")]
156 Float8e5m2fnuz,
157 #[doc(hidden)]
158 __Unknown(i32),
159}
160
161#[cfg(feature = "v1_26")]
162#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
163#[doc(hidden)]
164impl IntoGlib for TensorDataType {
165 type GlibType = ffi::GstTensorDataType;
166
167 fn into_glib(self) -> ffi::GstTensorDataType {
168 match self {
169 Self::Int4 => ffi::GST_TENSOR_DATA_TYPE_INT4,
170 Self::Int8 => ffi::GST_TENSOR_DATA_TYPE_INT8,
171 Self::Int16 => ffi::GST_TENSOR_DATA_TYPE_INT16,
172 Self::Int32 => ffi::GST_TENSOR_DATA_TYPE_INT32,
173 Self::Int64 => ffi::GST_TENSOR_DATA_TYPE_INT64,
174 Self::Uint4 => ffi::GST_TENSOR_DATA_TYPE_UINT4,
175 Self::Uint8 => ffi::GST_TENSOR_DATA_TYPE_UINT8,
176 Self::Uint16 => ffi::GST_TENSOR_DATA_TYPE_UINT16,
177 Self::Uint32 => ffi::GST_TENSOR_DATA_TYPE_UINT32,
178 Self::Uint64 => ffi::GST_TENSOR_DATA_TYPE_UINT64,
179 Self::Float16 => ffi::GST_TENSOR_DATA_TYPE_FLOAT16,
180 Self::Float32 => ffi::GST_TENSOR_DATA_TYPE_FLOAT32,
181 Self::Float64 => ffi::GST_TENSOR_DATA_TYPE_FLOAT64,
182 Self::Bfloat16 => ffi::GST_TENSOR_DATA_TYPE_BFLOAT16,
183 #[cfg(feature = "v1_28")]
184 Self::String => ffi::GST_TENSOR_DATA_TYPE_STRING,
185 #[cfg(feature = "v1_28")]
186 Self::Bool => ffi::GST_TENSOR_DATA_TYPE_BOOL,
187 #[cfg(feature = "v1_28")]
188 Self::Complex64 => ffi::GST_TENSOR_DATA_TYPE_COMPLEX64,
189 #[cfg(feature = "v1_28")]
190 Self::Complex128 => ffi::GST_TENSOR_DATA_TYPE_COMPLEX128,
191 #[cfg(feature = "v1_28")]
192 Self::Float8e4m3fn => ffi::GST_TENSOR_DATA_TYPE_FLOAT8E4M3FN,
193 #[cfg(feature = "v1_28")]
194 Self::Float8e4m3fnuz => ffi::GST_TENSOR_DATA_TYPE_FLOAT8E4M3FNUZ,
195 #[cfg(feature = "v1_28")]
196 Self::Float8e5m2 => ffi::GST_TENSOR_DATA_TYPE_FLOAT8E5M2,
197 #[cfg(feature = "v1_28")]
198 Self::Float8e5m2fnuz => ffi::GST_TENSOR_DATA_TYPE_FLOAT8E5M2FNUZ,
199 Self::__Unknown(value) => value,
200 }
201 }
202}
203
204#[cfg(feature = "v1_26")]
205#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
206#[doc(hidden)]
207impl FromGlib<ffi::GstTensorDataType> for TensorDataType {
208 unsafe fn from_glib(value: ffi::GstTensorDataType) -> Self {
209 skip_assert_initialized!();
210
211 match value {
212 ffi::GST_TENSOR_DATA_TYPE_INT4 => Self::Int4,
213 ffi::GST_TENSOR_DATA_TYPE_INT8 => Self::Int8,
214 ffi::GST_TENSOR_DATA_TYPE_INT16 => Self::Int16,
215 ffi::GST_TENSOR_DATA_TYPE_INT32 => Self::Int32,
216 ffi::GST_TENSOR_DATA_TYPE_INT64 => Self::Int64,
217 ffi::GST_TENSOR_DATA_TYPE_UINT4 => Self::Uint4,
218 ffi::GST_TENSOR_DATA_TYPE_UINT8 => Self::Uint8,
219 ffi::GST_TENSOR_DATA_TYPE_UINT16 => Self::Uint16,
220 ffi::GST_TENSOR_DATA_TYPE_UINT32 => Self::Uint32,
221 ffi::GST_TENSOR_DATA_TYPE_UINT64 => Self::Uint64,
222 ffi::GST_TENSOR_DATA_TYPE_FLOAT16 => Self::Float16,
223 ffi::GST_TENSOR_DATA_TYPE_FLOAT32 => Self::Float32,
224 ffi::GST_TENSOR_DATA_TYPE_FLOAT64 => Self::Float64,
225 ffi::GST_TENSOR_DATA_TYPE_BFLOAT16 => Self::Bfloat16,
226 #[cfg(feature = "v1_28")]
227 ffi::GST_TENSOR_DATA_TYPE_STRING => Self::String,
228 #[cfg(feature = "v1_28")]
229 ffi::GST_TENSOR_DATA_TYPE_BOOL => Self::Bool,
230 #[cfg(feature = "v1_28")]
231 ffi::GST_TENSOR_DATA_TYPE_COMPLEX64 => Self::Complex64,
232 #[cfg(feature = "v1_28")]
233 ffi::GST_TENSOR_DATA_TYPE_COMPLEX128 => Self::Complex128,
234 #[cfg(feature = "v1_28")]
235 ffi::GST_TENSOR_DATA_TYPE_FLOAT8E4M3FN => Self::Float8e4m3fn,
236 #[cfg(feature = "v1_28")]
237 ffi::GST_TENSOR_DATA_TYPE_FLOAT8E4M3FNUZ => Self::Float8e4m3fnuz,
238 #[cfg(feature = "v1_28")]
239 ffi::GST_TENSOR_DATA_TYPE_FLOAT8E5M2 => Self::Float8e5m2,
240 #[cfg(feature = "v1_28")]
241 ffi::GST_TENSOR_DATA_TYPE_FLOAT8E5M2FNUZ => Self::Float8e5m2fnuz,
242 value => Self::__Unknown(value),
243 }
244 }
245}
246
247#[cfg(feature = "v1_26")]
249#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
250#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
251#[non_exhaustive]
252#[doc(alias = "GstTensorDimOrder")]
253pub enum TensorDimOrder {
254 #[doc(alias = "GST_TENSOR_DIM_ORDER_ROW_MAJOR")]
256 RowMajor,
257 #[doc(alias = "GST_TENSOR_DIM_ORDER_COL_MAJOR")]
259 ColMajor,
260 #[doc(hidden)]
261 __Unknown(i32),
262}
263
264#[cfg(feature = "v1_26")]
265#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
266#[doc(hidden)]
267impl IntoGlib for TensorDimOrder {
268 type GlibType = ffi::GstTensorDimOrder;
269
270 #[inline]
271 fn into_glib(self) -> ffi::GstTensorDimOrder {
272 match self {
273 Self::RowMajor => ffi::GST_TENSOR_DIM_ORDER_ROW_MAJOR,
274 Self::ColMajor => ffi::GST_TENSOR_DIM_ORDER_COL_MAJOR,
275 Self::__Unknown(value) => value,
276 }
277 }
278}
279
280#[cfg(feature = "v1_26")]
281#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
282#[doc(hidden)]
283impl FromGlib<ffi::GstTensorDimOrder> for TensorDimOrder {
284 #[inline]
285 unsafe fn from_glib(value: ffi::GstTensorDimOrder) -> Self {
286 skip_assert_initialized!();
287
288 match value {
289 ffi::GST_TENSOR_DIM_ORDER_ROW_MAJOR => Self::RowMajor,
290 ffi::GST_TENSOR_DIM_ORDER_COL_MAJOR => Self::ColMajor,
291 value => Self::__Unknown(value),
292 }
293 }
294}