1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
4// DO NOT EDIT
5
6use crate::ffi;
7use glib::{prelude::*, translate::*, GStr};
8
9#[cfg(feature = "v1_24")]
10#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
11#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
12#[non_exhaustive]
13#[doc(alias = "GstAncillaryMetaField")]
14pub enum AncillaryMetaField {
15 #[doc(alias = "GST_ANCILLARY_META_FIELD_PROGRESSIVE")]
16 Progressive,
17 #[doc(alias = "GST_ANCILLARY_META_FIELD_INTERLACED_FIRST")]
18 InterlacedFirst,
19 #[doc(alias = "GST_ANCILLARY_META_FIELD_INTERLACED_SECOND")]
20 InterlacedSecond,
21 #[doc(hidden)]
22 __Unknown(i32),
23}
24
25#[cfg(feature = "v1_24")]
26#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
27#[doc(hidden)]
28impl IntoGlib for AncillaryMetaField {
29 type GlibType = ffi::GstAncillaryMetaField;
30
31 #[inline]
32 fn into_glib(self) -> ffi::GstAncillaryMetaField {
33 match self {
34 Self::Progressive => ffi::GST_ANCILLARY_META_FIELD_PROGRESSIVE,
35 Self::InterlacedFirst => ffi::GST_ANCILLARY_META_FIELD_INTERLACED_FIRST,
36 Self::InterlacedSecond => ffi::GST_ANCILLARY_META_FIELD_INTERLACED_SECOND,
37 Self::__Unknown(value) => value,
38 }
39 }
40}
41
42#[cfg(feature = "v1_24")]
43#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
44#[doc(hidden)]
45impl FromGlib<ffi::GstAncillaryMetaField> for AncillaryMetaField {
46 #[inline]
47 unsafe fn from_glib(value: ffi::GstAncillaryMetaField) -> Self {
48 skip_assert_initialized!();
49
50 match value {
51 ffi::GST_ANCILLARY_META_FIELD_PROGRESSIVE => Self::Progressive,
52 ffi::GST_ANCILLARY_META_FIELD_INTERLACED_FIRST => Self::InterlacedFirst,
53 ffi::GST_ANCILLARY_META_FIELD_INTERLACED_SECOND => Self::InterlacedSecond,
54 value => Self::__Unknown(value),
55 }
56 }
57}
58
59#[cfg(feature = "v1_24")]
60#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
61impl StaticType for AncillaryMetaField {
62 #[inline]
63 #[doc(alias = "gst_ancillary_meta_field_get_type")]
64 fn static_type() -> glib::Type {
65 unsafe { from_glib(ffi::gst_ancillary_meta_field_get_type()) }
66 }
67}
68
69#[cfg(feature = "v1_24")]
70#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
71impl glib::HasParamSpec for AncillaryMetaField {
72 type ParamSpec = glib::ParamSpecEnum;
73 type SetValue = Self;
74 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
75
76 fn param_spec_builder() -> Self::BuilderFn {
77 Self::ParamSpec::builder_with_default
78 }
79}
80
81#[cfg(feature = "v1_24")]
82#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
83impl glib::value::ValueType for AncillaryMetaField {
84 type Type = Self;
85}
86
87#[cfg(feature = "v1_24")]
88#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
89unsafe impl<'a> glib::value::FromValue<'a> for AncillaryMetaField {
90 type Checker = glib::value::GenericValueTypeChecker<Self>;
91
92 #[inline]
93 unsafe fn from_value(value: &'a glib::Value) -> Self {
94 skip_assert_initialized!();
95 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
96 }
97}
98
99#[cfg(feature = "v1_24")]
100#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
101impl ToValue for AncillaryMetaField {
102 #[inline]
103 fn to_value(&self) -> glib::Value {
104 let mut value = glib::Value::for_value_type::<Self>();
105 unsafe {
106 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
107 }
108 value
109 }
110
111 #[inline]
112 fn value_type(&self) -> glib::Type {
113 Self::static_type()
114 }
115}
116
117#[cfg(feature = "v1_24")]
118#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
119impl From<AncillaryMetaField> for glib::Value {
120 #[inline]
121 fn from(v: AncillaryMetaField) -> Self {
122 skip_assert_initialized!();
123 ToValue::to_value(&v)
124 }
125}
126
127#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
128#[non_exhaustive]
129#[doc(alias = "GstColorBalanceType")]
130pub enum ColorBalanceType {
131 #[doc(alias = "GST_COLOR_BALANCE_HARDWARE")]
132 Hardware,
133 #[doc(alias = "GST_COLOR_BALANCE_SOFTWARE")]
134 Software,
135 #[doc(hidden)]
136 __Unknown(i32),
137}
138
139#[doc(hidden)]
140impl IntoGlib for ColorBalanceType {
141 type GlibType = ffi::GstColorBalanceType;
142
143 #[inline]
144 fn into_glib(self) -> ffi::GstColorBalanceType {
145 match self {
146 Self::Hardware => ffi::GST_COLOR_BALANCE_HARDWARE,
147 Self::Software => ffi::GST_COLOR_BALANCE_SOFTWARE,
148 Self::__Unknown(value: i32) => value,
149 }
150 }
151}
152
153#[doc(hidden)]
154impl FromGlib<ffi::GstColorBalanceType> for ColorBalanceType {
155 #[inline]
156 unsafe fn from_glib(value: ffi::GstColorBalanceType) -> Self {
157 skip_assert_initialized!();
158
159 match value {
160 ffi::GST_COLOR_BALANCE_HARDWARE => Self::Hardware,
161 ffi::GST_COLOR_BALANCE_SOFTWARE => Self::Software,
162 value: i32 => Self::__Unknown(value),
163 }
164 }
165}
166
167impl StaticType for ColorBalanceType {
168 #[inline]
169 #[doc(alias = "gst_color_balance_type_get_type")]
170 fn static_type() -> glib::Type {
171 unsafe { from_glib(val:ffi::gst_color_balance_type_get_type()) }
172 }
173}
174
175impl glib::HasParamSpec for ColorBalanceType {
176 type ParamSpec = glib::ParamSpecEnum;
177 type SetValue = Self;
178 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
179
180 fn param_spec_builder() -> Self::BuilderFn {
181 Self::ParamSpec::builder_with_default
182 }
183}
184
185impl glib::value::ValueType for ColorBalanceType {
186 type Type = Self;
187}
188
189unsafe impl<'a> glib::value::FromValue<'a> for ColorBalanceType {
190 type Checker = glib::value::GenericValueTypeChecker<Self>;
191
192 #[inline]
193 unsafe fn from_value(value: &'a glib::Value) -> Self {
194 skip_assert_initialized!();
195 from_glib(val:glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
196 }
197}
198
199impl ToValue for ColorBalanceType {
200 #[inline]
201 fn to_value(&self) -> glib::Value {
202 let mut value: Value = glib::Value::for_value_type::<Self>();
203 unsafe {
204 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
205 }
206 value
207 }
208
209 #[inline]
210 fn value_type(&self) -> glib::Type {
211 Self::static_type()
212 }
213}
214
215impl From<ColorBalanceType> for glib::Value {
216 #[inline]
217 fn from(v: ColorBalanceType) -> Self {
218 skip_assert_initialized!();
219 ToValue::to_value(&v)
220 }
221}
222
223#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
224#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
225#[non_exhaustive]
226#[doc(alias = "GstNavigationCommand")]
227pub enum NavigationCommand {
228 #[doc(alias = "GST_NAVIGATION_COMMAND_INVALID")]
229 Invalid,
230 #[doc(alias = "GST_NAVIGATION_COMMAND_MENU1")]
231 Menu1,
232 #[doc(alias = "GST_NAVIGATION_COMMAND_MENU2")]
233 Menu2,
234 #[doc(alias = "GST_NAVIGATION_COMMAND_MENU3")]
235 Menu3,
236 #[doc(alias = "GST_NAVIGATION_COMMAND_MENU4")]
237 Menu4,
238 #[doc(alias = "GST_NAVIGATION_COMMAND_MENU5")]
239 Menu5,
240 #[doc(alias = "GST_NAVIGATION_COMMAND_MENU6")]
241 Menu6,
242 #[doc(alias = "GST_NAVIGATION_COMMAND_MENU7")]
243 Menu7,
244 #[doc(alias = "GST_NAVIGATION_COMMAND_LEFT")]
245 Left,
246 #[doc(alias = "GST_NAVIGATION_COMMAND_RIGHT")]
247 Right,
248 #[doc(alias = "GST_NAVIGATION_COMMAND_UP")]
249 Up,
250 #[doc(alias = "GST_NAVIGATION_COMMAND_DOWN")]
251 Down,
252 #[doc(alias = "GST_NAVIGATION_COMMAND_ACTIVATE")]
253 Activate,
254 #[doc(alias = "GST_NAVIGATION_COMMAND_PREV_ANGLE")]
255 PrevAngle,
256 #[doc(alias = "GST_NAVIGATION_COMMAND_NEXT_ANGLE")]
257 NextAngle,
258 #[doc(hidden)]
259 __Unknown(i32),
260}
261
262#[doc(hidden)]
263impl IntoGlib for NavigationCommand {
264 type GlibType = ffi::GstNavigationCommand;
265
266 fn into_glib(self) -> ffi::GstNavigationCommand {
267 match self {
268 Self::Invalid => ffi::GST_NAVIGATION_COMMAND_INVALID,
269 Self::Menu1 => ffi::GST_NAVIGATION_COMMAND_MENU1,
270 Self::Menu2 => ffi::GST_NAVIGATION_COMMAND_MENU2,
271 Self::Menu3 => ffi::GST_NAVIGATION_COMMAND_MENU3,
272 Self::Menu4 => ffi::GST_NAVIGATION_COMMAND_MENU4,
273 Self::Menu5 => ffi::GST_NAVIGATION_COMMAND_MENU5,
274 Self::Menu6 => ffi::GST_NAVIGATION_COMMAND_MENU6,
275 Self::Menu7 => ffi::GST_NAVIGATION_COMMAND_MENU7,
276 Self::Left => ffi::GST_NAVIGATION_COMMAND_LEFT,
277 Self::Right => ffi::GST_NAVIGATION_COMMAND_RIGHT,
278 Self::Up => ffi::GST_NAVIGATION_COMMAND_UP,
279 Self::Down => ffi::GST_NAVIGATION_COMMAND_DOWN,
280 Self::Activate => ffi::GST_NAVIGATION_COMMAND_ACTIVATE,
281 Self::PrevAngle => ffi::GST_NAVIGATION_COMMAND_PREV_ANGLE,
282 Self::NextAngle => ffi::GST_NAVIGATION_COMMAND_NEXT_ANGLE,
283 Self::__Unknown(value: i32) => value,
284 }
285 }
286}
287
288#[doc(hidden)]
289impl FromGlib<ffi::GstNavigationCommand> for NavigationCommand {
290 unsafe fn from_glib(value: ffi::GstNavigationCommand) -> Self {
291 skip_assert_initialized!();
292
293 match value {
294 ffi::GST_NAVIGATION_COMMAND_INVALID => Self::Invalid,
295 ffi::GST_NAVIGATION_COMMAND_MENU1 => Self::Menu1,
296 ffi::GST_NAVIGATION_COMMAND_MENU2 => Self::Menu2,
297 ffi::GST_NAVIGATION_COMMAND_MENU3 => Self::Menu3,
298 ffi::GST_NAVIGATION_COMMAND_MENU4 => Self::Menu4,
299 ffi::GST_NAVIGATION_COMMAND_MENU5 => Self::Menu5,
300 ffi::GST_NAVIGATION_COMMAND_MENU6 => Self::Menu6,
301 ffi::GST_NAVIGATION_COMMAND_MENU7 => Self::Menu7,
302 ffi::GST_NAVIGATION_COMMAND_LEFT => Self::Left,
303 ffi::GST_NAVIGATION_COMMAND_RIGHT => Self::Right,
304 ffi::GST_NAVIGATION_COMMAND_UP => Self::Up,
305 ffi::GST_NAVIGATION_COMMAND_DOWN => Self::Down,
306 ffi::GST_NAVIGATION_COMMAND_ACTIVATE => Self::Activate,
307 ffi::GST_NAVIGATION_COMMAND_PREV_ANGLE => Self::PrevAngle,
308 ffi::GST_NAVIGATION_COMMAND_NEXT_ANGLE => Self::NextAngle,
309 value: i32 => Self::__Unknown(value),
310 }
311 }
312}
313
314impl StaticType for NavigationCommand {
315 #[inline]
316 #[doc(alias = "gst_navigation_command_get_type")]
317 fn static_type() -> glib::Type {
318 unsafe { from_glib(val:ffi::gst_navigation_command_get_type()) }
319 }
320}
321
322impl glib::HasParamSpec for NavigationCommand {
323 type ParamSpec = glib::ParamSpecEnum;
324 type SetValue = Self;
325 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
326
327 fn param_spec_builder() -> Self::BuilderFn {
328 Self::ParamSpec::builder_with_default
329 }
330}
331
332impl glib::value::ValueType for NavigationCommand {
333 type Type = Self;
334}
335
336unsafe impl<'a> glib::value::FromValue<'a> for NavigationCommand {
337 type Checker = glib::value::GenericValueTypeChecker<Self>;
338
339 #[inline]
340 unsafe fn from_value(value: &'a glib::Value) -> Self {
341 skip_assert_initialized!();
342 from_glib(val:glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
343 }
344}
345
346impl ToValue for NavigationCommand {
347 #[inline]
348 fn to_value(&self) -> glib::Value {
349 let mut value: Value = glib::Value::for_value_type::<Self>();
350 unsafe {
351 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
352 }
353 value
354 }
355
356 #[inline]
357 fn value_type(&self) -> glib::Type {
358 Self::static_type()
359 }
360}
361
362impl From<NavigationCommand> for glib::Value {
363 #[inline]
364 fn from(v: NavigationCommand) -> Self {
365 skip_assert_initialized!();
366 ToValue::to_value(&v)
367 }
368}
369
370#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
371#[non_exhaustive]
372#[doc(alias = "GstNavigationEventType")]
373pub enum NavigationEventType {
374 #[doc(alias = "GST_NAVIGATION_EVENT_INVALID")]
375 Invalid,
376 #[doc(alias = "GST_NAVIGATION_EVENT_KEY_PRESS")]
377 KeyPress,
378 #[doc(alias = "GST_NAVIGATION_EVENT_KEY_RELEASE")]
379 KeyRelease,
380 #[doc(alias = "GST_NAVIGATION_EVENT_MOUSE_BUTTON_PRESS")]
381 MouseButtonPress,
382 #[doc(alias = "GST_NAVIGATION_EVENT_MOUSE_BUTTON_RELEASE")]
383 MouseButtonRelease,
384 #[doc(alias = "GST_NAVIGATION_EVENT_MOUSE_MOVE")]
385 MouseMove,
386 #[doc(alias = "GST_NAVIGATION_EVENT_COMMAND")]
387 Command,
388 #[cfg(feature = "v1_18")]
389 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
390 #[doc(alias = "GST_NAVIGATION_EVENT_MOUSE_SCROLL")]
391 MouseScroll,
392 #[cfg(feature = "v1_22")]
393 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
394 #[doc(alias = "GST_NAVIGATION_EVENT_TOUCH_DOWN")]
395 TouchDown,
396 #[cfg(feature = "v1_22")]
397 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
398 #[doc(alias = "GST_NAVIGATION_EVENT_TOUCH_MOTION")]
399 TouchMotion,
400 #[cfg(feature = "v1_22")]
401 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
402 #[doc(alias = "GST_NAVIGATION_EVENT_TOUCH_UP")]
403 TouchUp,
404 #[cfg(feature = "v1_22")]
405 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
406 #[doc(alias = "GST_NAVIGATION_EVENT_TOUCH_FRAME")]
407 TouchFrame,
408 #[cfg(feature = "v1_22")]
409 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
410 #[doc(alias = "GST_NAVIGATION_EVENT_TOUCH_CANCEL")]
411 TouchCancel,
412 #[cfg(feature = "v1_26")]
413 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
414 #[doc(alias = "GST_NAVIGATION_EVENT_MOUSE_DOUBLE_CLICK")]
415 MouseDoubleClick,
416 #[doc(hidden)]
417 __Unknown(i32),
418}
419
420#[doc(hidden)]
421impl IntoGlib for NavigationEventType {
422 type GlibType = ffi::GstNavigationEventType;
423
424 fn into_glib(self) -> ffi::GstNavigationEventType {
425 match self {
426 Self::Invalid => ffi::GST_NAVIGATION_EVENT_INVALID,
427 Self::KeyPress => ffi::GST_NAVIGATION_EVENT_KEY_PRESS,
428 Self::KeyRelease => ffi::GST_NAVIGATION_EVENT_KEY_RELEASE,
429 Self::MouseButtonPress => ffi::GST_NAVIGATION_EVENT_MOUSE_BUTTON_PRESS,
430 Self::MouseButtonRelease => ffi::GST_NAVIGATION_EVENT_MOUSE_BUTTON_RELEASE,
431 Self::MouseMove => ffi::GST_NAVIGATION_EVENT_MOUSE_MOVE,
432 Self::Command => ffi::GST_NAVIGATION_EVENT_COMMAND,
433 #[cfg(feature = "v1_18")]
434 Self::MouseScroll => ffi::GST_NAVIGATION_EVENT_MOUSE_SCROLL,
435 #[cfg(feature = "v1_22")]
436 Self::TouchDown => ffi::GST_NAVIGATION_EVENT_TOUCH_DOWN,
437 #[cfg(feature = "v1_22")]
438 Self::TouchMotion => ffi::GST_NAVIGATION_EVENT_TOUCH_MOTION,
439 #[cfg(feature = "v1_22")]
440 Self::TouchUp => ffi::GST_NAVIGATION_EVENT_TOUCH_UP,
441 #[cfg(feature = "v1_22")]
442 Self::TouchFrame => ffi::GST_NAVIGATION_EVENT_TOUCH_FRAME,
443 #[cfg(feature = "v1_22")]
444 Self::TouchCancel => ffi::GST_NAVIGATION_EVENT_TOUCH_CANCEL,
445 #[cfg(feature = "v1_26")]
446 Self::MouseDoubleClick => ffi::GST_NAVIGATION_EVENT_MOUSE_DOUBLE_CLICK,
447 Self::__Unknown(value) => value,
448 }
449 }
450}
451
452#[doc(hidden)]
453impl FromGlib<ffi::GstNavigationEventType> for NavigationEventType {
454 unsafe fn from_glib(value: ffi::GstNavigationEventType) -> Self {
455 skip_assert_initialized!();
456
457 match value {
458 ffi::GST_NAVIGATION_EVENT_INVALID => Self::Invalid,
459 ffi::GST_NAVIGATION_EVENT_KEY_PRESS => Self::KeyPress,
460 ffi::GST_NAVIGATION_EVENT_KEY_RELEASE => Self::KeyRelease,
461 ffi::GST_NAVIGATION_EVENT_MOUSE_BUTTON_PRESS => Self::MouseButtonPress,
462 ffi::GST_NAVIGATION_EVENT_MOUSE_BUTTON_RELEASE => Self::MouseButtonRelease,
463 ffi::GST_NAVIGATION_EVENT_MOUSE_MOVE => Self::MouseMove,
464 ffi::GST_NAVIGATION_EVENT_COMMAND => Self::Command,
465 #[cfg(feature = "v1_18")]
466 ffi::GST_NAVIGATION_EVENT_MOUSE_SCROLL => Self::MouseScroll,
467 #[cfg(feature = "v1_22")]
468 ffi::GST_NAVIGATION_EVENT_TOUCH_DOWN => Self::TouchDown,
469 #[cfg(feature = "v1_22")]
470 ffi::GST_NAVIGATION_EVENT_TOUCH_MOTION => Self::TouchMotion,
471 #[cfg(feature = "v1_22")]
472 ffi::GST_NAVIGATION_EVENT_TOUCH_UP => Self::TouchUp,
473 #[cfg(feature = "v1_22")]
474 ffi::GST_NAVIGATION_EVENT_TOUCH_FRAME => Self::TouchFrame,
475 #[cfg(feature = "v1_22")]
476 ffi::GST_NAVIGATION_EVENT_TOUCH_CANCEL => Self::TouchCancel,
477 #[cfg(feature = "v1_26")]
478 ffi::GST_NAVIGATION_EVENT_MOUSE_DOUBLE_CLICK => Self::MouseDoubleClick,
479 value => Self::__Unknown(value),
480 }
481 }
482}
483
484impl StaticType for NavigationEventType {
485 #[inline]
486 #[doc(alias = "gst_navigation_event_type_get_type")]
487 fn static_type() -> glib::Type {
488 unsafe { from_glib(val:ffi::gst_navigation_event_type_get_type()) }
489 }
490}
491
492impl glib::HasParamSpec for NavigationEventType {
493 type ParamSpec = glib::ParamSpecEnum;
494 type SetValue = Self;
495 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
496
497 fn param_spec_builder() -> Self::BuilderFn {
498 Self::ParamSpec::builder_with_default
499 }
500}
501
502impl glib::value::ValueType for NavigationEventType {
503 type Type = Self;
504}
505
506unsafe impl<'a> glib::value::FromValue<'a> for NavigationEventType {
507 type Checker = glib::value::GenericValueTypeChecker<Self>;
508
509 #[inline]
510 unsafe fn from_value(value: &'a glib::Value) -> Self {
511 skip_assert_initialized!();
512 from_glib(val:glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
513 }
514}
515
516impl ToValue for NavigationEventType {
517 #[inline]
518 fn to_value(&self) -> glib::Value {
519 let mut value: Value = glib::Value::for_value_type::<Self>();
520 unsafe {
521 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
522 }
523 value
524 }
525
526 #[inline]
527 fn value_type(&self) -> glib::Type {
528 Self::static_type()
529 }
530}
531
532impl From<NavigationEventType> for glib::Value {
533 #[inline]
534 fn from(v: NavigationEventType) -> Self {
535 skip_assert_initialized!();
536 ToValue::to_value(&v)
537 }
538}
539
540#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
541#[non_exhaustive]
542#[doc(alias = "GstNavigationMessageType")]
543pub enum NavigationMessageType {
544 #[doc(alias = "GST_NAVIGATION_MESSAGE_INVALID")]
545 Invalid,
546 #[doc(alias = "GST_NAVIGATION_MESSAGE_MOUSE_OVER")]
547 MouseOver,
548 #[doc(alias = "GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED")]
549 CommandsChanged,
550 #[doc(alias = "GST_NAVIGATION_MESSAGE_ANGLES_CHANGED")]
551 AnglesChanged,
552 #[doc(alias = "GST_NAVIGATION_MESSAGE_EVENT")]
553 Event,
554 #[doc(hidden)]
555 __Unknown(i32),
556}
557
558#[doc(hidden)]
559impl IntoGlib for NavigationMessageType {
560 type GlibType = ffi::GstNavigationMessageType;
561
562 #[inline]
563 fn into_glib(self) -> ffi::GstNavigationMessageType {
564 match self {
565 Self::Invalid => ffi::GST_NAVIGATION_MESSAGE_INVALID,
566 Self::MouseOver => ffi::GST_NAVIGATION_MESSAGE_MOUSE_OVER,
567 Self::CommandsChanged => ffi::GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED,
568 Self::AnglesChanged => ffi::GST_NAVIGATION_MESSAGE_ANGLES_CHANGED,
569 Self::Event => ffi::GST_NAVIGATION_MESSAGE_EVENT,
570 Self::__Unknown(value: i32) => value,
571 }
572 }
573}
574
575#[doc(hidden)]
576impl FromGlib<ffi::GstNavigationMessageType> for NavigationMessageType {
577 #[inline]
578 unsafe fn from_glib(value: ffi::GstNavigationMessageType) -> Self {
579 skip_assert_initialized!();
580
581 match value {
582 ffi::GST_NAVIGATION_MESSAGE_INVALID => Self::Invalid,
583 ffi::GST_NAVIGATION_MESSAGE_MOUSE_OVER => Self::MouseOver,
584 ffi::GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED => Self::CommandsChanged,
585 ffi::GST_NAVIGATION_MESSAGE_ANGLES_CHANGED => Self::AnglesChanged,
586 ffi::GST_NAVIGATION_MESSAGE_EVENT => Self::Event,
587 value: i32 => Self::__Unknown(value),
588 }
589 }
590}
591
592impl StaticType for NavigationMessageType {
593 #[inline]
594 #[doc(alias = "gst_navigation_message_type_get_type")]
595 fn static_type() -> glib::Type {
596 unsafe { from_glib(val:ffi::gst_navigation_message_type_get_type()) }
597 }
598}
599
600impl glib::HasParamSpec for NavigationMessageType {
601 type ParamSpec = glib::ParamSpecEnum;
602 type SetValue = Self;
603 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
604
605 fn param_spec_builder() -> Self::BuilderFn {
606 Self::ParamSpec::builder_with_default
607 }
608}
609
610impl glib::value::ValueType for NavigationMessageType {
611 type Type = Self;
612}
613
614unsafe impl<'a> glib::value::FromValue<'a> for NavigationMessageType {
615 type Checker = glib::value::GenericValueTypeChecker<Self>;
616
617 #[inline]
618 unsafe fn from_value(value: &'a glib::Value) -> Self {
619 skip_assert_initialized!();
620 from_glib(val:glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
621 }
622}
623
624impl ToValue for NavigationMessageType {
625 #[inline]
626 fn to_value(&self) -> glib::Value {
627 let mut value: Value = glib::Value::for_value_type::<Self>();
628 unsafe {
629 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
630 }
631 value
632 }
633
634 #[inline]
635 fn value_type(&self) -> glib::Type {
636 Self::static_type()
637 }
638}
639
640impl From<NavigationMessageType> for glib::Value {
641 #[inline]
642 fn from(v: NavigationMessageType) -> Self {
643 skip_assert_initialized!();
644 ToValue::to_value(&v)
645 }
646}
647
648#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
649#[non_exhaustive]
650#[doc(alias = "GstNavigationQueryType")]
651pub enum NavigationQueryType {
652 #[doc(alias = "GST_NAVIGATION_QUERY_INVALID")]
653 Invalid,
654 #[doc(alias = "GST_NAVIGATION_QUERY_COMMANDS")]
655 Commands,
656 #[doc(alias = "GST_NAVIGATION_QUERY_ANGLES")]
657 Angles,
658 #[doc(hidden)]
659 __Unknown(i32),
660}
661
662#[doc(hidden)]
663impl IntoGlib for NavigationQueryType {
664 type GlibType = ffi::GstNavigationQueryType;
665
666 #[inline]
667 fn into_glib(self) -> ffi::GstNavigationQueryType {
668 match self {
669 Self::Invalid => ffi::GST_NAVIGATION_QUERY_INVALID,
670 Self::Commands => ffi::GST_NAVIGATION_QUERY_COMMANDS,
671 Self::Angles => ffi::GST_NAVIGATION_QUERY_ANGLES,
672 Self::__Unknown(value: i32) => value,
673 }
674 }
675}
676
677#[doc(hidden)]
678impl FromGlib<ffi::GstNavigationQueryType> for NavigationQueryType {
679 #[inline]
680 unsafe fn from_glib(value: ffi::GstNavigationQueryType) -> Self {
681 skip_assert_initialized!();
682
683 match value {
684 ffi::GST_NAVIGATION_QUERY_INVALID => Self::Invalid,
685 ffi::GST_NAVIGATION_QUERY_COMMANDS => Self::Commands,
686 ffi::GST_NAVIGATION_QUERY_ANGLES => Self::Angles,
687 value: i32 => Self::__Unknown(value),
688 }
689 }
690}
691
692impl StaticType for NavigationQueryType {
693 #[inline]
694 #[doc(alias = "gst_navigation_query_type_get_type")]
695 fn static_type() -> glib::Type {
696 unsafe { from_glib(val:ffi::gst_navigation_query_type_get_type()) }
697 }
698}
699
700impl glib::HasParamSpec for NavigationQueryType {
701 type ParamSpec = glib::ParamSpecEnum;
702 type SetValue = Self;
703 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
704
705 fn param_spec_builder() -> Self::BuilderFn {
706 Self::ParamSpec::builder_with_default
707 }
708}
709
710impl glib::value::ValueType for NavigationQueryType {
711 type Type = Self;
712}
713
714unsafe impl<'a> glib::value::FromValue<'a> for NavigationQueryType {
715 type Checker = glib::value::GenericValueTypeChecker<Self>;
716
717 #[inline]
718 unsafe fn from_value(value: &'a glib::Value) -> Self {
719 skip_assert_initialized!();
720 from_glib(val:glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
721 }
722}
723
724impl ToValue for NavigationQueryType {
725 #[inline]
726 fn to_value(&self) -> glib::Value {
727 let mut value: Value = glib::Value::for_value_type::<Self>();
728 unsafe {
729 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
730 }
731 value
732 }
733
734 #[inline]
735 fn value_type(&self) -> glib::Type {
736 Self::static_type()
737 }
738}
739
740impl From<NavigationQueryType> for glib::Value {
741 #[inline]
742 fn from(v: NavigationQueryType) -> Self {
743 skip_assert_initialized!();
744 ToValue::to_value(&v)
745 }
746}
747
748#[cfg(feature = "v1_18")]
749#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
750#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
751#[non_exhaustive]
752#[doc(alias = "GstVideoAFDSpec")]
753pub enum VideoAFDSpec {
754 #[doc(alias = "GST_VIDEO_AFD_SPEC_DVB_ETSI")]
755 DvbEtsi,
756 #[doc(alias = "GST_VIDEO_AFD_SPEC_ATSC_A53")]
757 AtscA53,
758 #[doc(alias = "GST_VIDEO_AFD_SPEC_SMPTE_ST2016_1")]
759 SmpteSt20161,
760 #[doc(hidden)]
761 __Unknown(i32),
762}
763
764#[cfg(feature = "v1_18")]
765#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
766#[doc(hidden)]
767impl IntoGlib for VideoAFDSpec {
768 type GlibType = ffi::GstVideoAFDSpec;
769
770 #[inline]
771 fn into_glib(self) -> ffi::GstVideoAFDSpec {
772 match self {
773 Self::DvbEtsi => ffi::GST_VIDEO_AFD_SPEC_DVB_ETSI,
774 Self::AtscA53 => ffi::GST_VIDEO_AFD_SPEC_ATSC_A53,
775 Self::SmpteSt20161 => ffi::GST_VIDEO_AFD_SPEC_SMPTE_ST2016_1,
776 Self::__Unknown(value) => value,
777 }
778 }
779}
780
781#[cfg(feature = "v1_18")]
782#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
783#[doc(hidden)]
784impl FromGlib<ffi::GstVideoAFDSpec> for VideoAFDSpec {
785 #[inline]
786 unsafe fn from_glib(value: ffi::GstVideoAFDSpec) -> Self {
787 skip_assert_initialized!();
788
789 match value {
790 ffi::GST_VIDEO_AFD_SPEC_DVB_ETSI => Self::DvbEtsi,
791 ffi::GST_VIDEO_AFD_SPEC_ATSC_A53 => Self::AtscA53,
792 ffi::GST_VIDEO_AFD_SPEC_SMPTE_ST2016_1 => Self::SmpteSt20161,
793 value => Self::__Unknown(value),
794 }
795 }
796}
797
798#[cfg(feature = "v1_18")]
799#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
800impl StaticType for VideoAFDSpec {
801 #[inline]
802 #[doc(alias = "gst_video_afd_spec_get_type")]
803 fn static_type() -> glib::Type {
804 unsafe { from_glib(ffi::gst_video_afd_spec_get_type()) }
805 }
806}
807
808#[cfg(feature = "v1_18")]
809#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
810impl glib::HasParamSpec for VideoAFDSpec {
811 type ParamSpec = glib::ParamSpecEnum;
812 type SetValue = Self;
813 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
814
815 fn param_spec_builder() -> Self::BuilderFn {
816 Self::ParamSpec::builder_with_default
817 }
818}
819
820#[cfg(feature = "v1_18")]
821#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
822impl glib::value::ValueType for VideoAFDSpec {
823 type Type = Self;
824}
825
826#[cfg(feature = "v1_18")]
827#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
828unsafe impl<'a> glib::value::FromValue<'a> for VideoAFDSpec {
829 type Checker = glib::value::GenericValueTypeChecker<Self>;
830
831 #[inline]
832 unsafe fn from_value(value: &'a glib::Value) -> Self {
833 skip_assert_initialized!();
834 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
835 }
836}
837
838#[cfg(feature = "v1_18")]
839#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
840impl ToValue for VideoAFDSpec {
841 #[inline]
842 fn to_value(&self) -> glib::Value {
843 let mut value = glib::Value::for_value_type::<Self>();
844 unsafe {
845 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
846 }
847 value
848 }
849
850 #[inline]
851 fn value_type(&self) -> glib::Type {
852 Self::static_type()
853 }
854}
855
856#[cfg(feature = "v1_18")]
857#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
858impl From<VideoAFDSpec> for glib::Value {
859 #[inline]
860 fn from(v: VideoAFDSpec) -> Self {
861 skip_assert_initialized!();
862 ToValue::to_value(&v)
863 }
864}
865
866#[cfg(feature = "v1_18")]
867#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
868#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
869#[non_exhaustive]
870#[doc(alias = "GstVideoAFDValue")]
871pub enum VideoAFDValue {
872 #[doc(alias = "GST_VIDEO_AFD_UNAVAILABLE")]
873 Unavailable,
874 #[doc(alias = "GST_VIDEO_AFD_16_9_TOP_ALIGNED")]
875 _169TopAligned,
876 #[doc(alias = "GST_VIDEO_AFD_14_9_TOP_ALIGNED")]
877 _149TopAligned,
878 #[doc(alias = "GST_VIDEO_AFD_GREATER_THAN_16_9")]
879 GreaterThan169,
880 #[doc(alias = "GST_VIDEO_AFD_4_3_FULL_16_9_FULL")]
881 _43Full169Full,
882 #[doc(alias = "GST_VIDEO_AFD_4_3_FULL_4_3_PILLAR")]
883 _43Full43Pillar,
884 #[doc(alias = "GST_VIDEO_AFD_16_9_LETTER_16_9_FULL")]
885 _169Letter169Full,
886 #[doc(alias = "GST_VIDEO_AFD_14_9_LETTER_14_9_PILLAR")]
887 _149Letter149Pillar,
888 #[doc(alias = "GST_VIDEO_AFD_4_3_FULL_14_9_CENTER")]
889 _43Full149Center,
890 #[doc(alias = "GST_VIDEO_AFD_16_9_LETTER_14_9_CENTER")]
891 _169Letter149Center,
892 #[doc(alias = "GST_VIDEO_AFD_16_9_LETTER_4_3_CENTER")]
893 _169Letter43Center,
894 #[doc(hidden)]
895 __Unknown(i32),
896}
897
898#[cfg(feature = "v1_18")]
899#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
900#[doc(hidden)]
901impl IntoGlib for VideoAFDValue {
902 type GlibType = ffi::GstVideoAFDValue;
903
904 #[inline]
905 fn into_glib(self) -> ffi::GstVideoAFDValue {
906 match self {
907 Self::Unavailable => ffi::GST_VIDEO_AFD_UNAVAILABLE,
908 Self::_169TopAligned => ffi::GST_VIDEO_AFD_16_9_TOP_ALIGNED,
909 Self::_149TopAligned => ffi::GST_VIDEO_AFD_14_9_TOP_ALIGNED,
910 Self::GreaterThan169 => ffi::GST_VIDEO_AFD_GREATER_THAN_16_9,
911 Self::_43Full169Full => ffi::GST_VIDEO_AFD_4_3_FULL_16_9_FULL,
912 Self::_43Full43Pillar => ffi::GST_VIDEO_AFD_4_3_FULL_4_3_PILLAR,
913 Self::_169Letter169Full => ffi::GST_VIDEO_AFD_16_9_LETTER_16_9_FULL,
914 Self::_149Letter149Pillar => ffi::GST_VIDEO_AFD_14_9_LETTER_14_9_PILLAR,
915 Self::_43Full149Center => ffi::GST_VIDEO_AFD_4_3_FULL_14_9_CENTER,
916 Self::_169Letter149Center => ffi::GST_VIDEO_AFD_16_9_LETTER_14_9_CENTER,
917 Self::_169Letter43Center => ffi::GST_VIDEO_AFD_16_9_LETTER_4_3_CENTER,
918 Self::__Unknown(value) => value,
919 }
920 }
921}
922
923#[cfg(feature = "v1_18")]
924#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
925#[doc(hidden)]
926impl FromGlib<ffi::GstVideoAFDValue> for VideoAFDValue {
927 #[inline]
928 unsafe fn from_glib(value: ffi::GstVideoAFDValue) -> Self {
929 skip_assert_initialized!();
930
931 match value {
932 ffi::GST_VIDEO_AFD_UNAVAILABLE => Self::Unavailable,
933 ffi::GST_VIDEO_AFD_16_9_TOP_ALIGNED => Self::_169TopAligned,
934 ffi::GST_VIDEO_AFD_14_9_TOP_ALIGNED => Self::_149TopAligned,
935 ffi::GST_VIDEO_AFD_GREATER_THAN_16_9 => Self::GreaterThan169,
936 ffi::GST_VIDEO_AFD_4_3_FULL_16_9_FULL => Self::_43Full169Full,
937 ffi::GST_VIDEO_AFD_4_3_FULL_4_3_PILLAR => Self::_43Full43Pillar,
938 ffi::GST_VIDEO_AFD_16_9_LETTER_16_9_FULL => Self::_169Letter169Full,
939 ffi::GST_VIDEO_AFD_14_9_LETTER_14_9_PILLAR => Self::_149Letter149Pillar,
940 ffi::GST_VIDEO_AFD_4_3_FULL_14_9_CENTER => Self::_43Full149Center,
941 ffi::GST_VIDEO_AFD_16_9_LETTER_14_9_CENTER => Self::_169Letter149Center,
942 ffi::GST_VIDEO_AFD_16_9_LETTER_4_3_CENTER => Self::_169Letter43Center,
943 value => Self::__Unknown(value),
944 }
945 }
946}
947
948#[cfg(feature = "v1_18")]
949#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
950impl StaticType for VideoAFDValue {
951 #[inline]
952 #[doc(alias = "gst_video_afd_value_get_type")]
953 fn static_type() -> glib::Type {
954 unsafe { from_glib(ffi::gst_video_afd_value_get_type()) }
955 }
956}
957
958#[cfg(feature = "v1_18")]
959#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
960impl glib::HasParamSpec for VideoAFDValue {
961 type ParamSpec = glib::ParamSpecEnum;
962 type SetValue = Self;
963 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
964
965 fn param_spec_builder() -> Self::BuilderFn {
966 Self::ParamSpec::builder_with_default
967 }
968}
969
970#[cfg(feature = "v1_18")]
971#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
972impl glib::value::ValueType for VideoAFDValue {
973 type Type = Self;
974}
975
976#[cfg(feature = "v1_18")]
977#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
978unsafe impl<'a> glib::value::FromValue<'a> for VideoAFDValue {
979 type Checker = glib::value::GenericValueTypeChecker<Self>;
980
981 #[inline]
982 unsafe fn from_value(value: &'a glib::Value) -> Self {
983 skip_assert_initialized!();
984 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
985 }
986}
987
988#[cfg(feature = "v1_18")]
989#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
990impl ToValue for VideoAFDValue {
991 #[inline]
992 fn to_value(&self) -> glib::Value {
993 let mut value = glib::Value::for_value_type::<Self>();
994 unsafe {
995 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
996 }
997 value
998 }
999
1000 #[inline]
1001 fn value_type(&self) -> glib::Type {
1002 Self::static_type()
1003 }
1004}
1005
1006#[cfg(feature = "v1_18")]
1007#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1008impl From<VideoAFDValue> for glib::Value {
1009 #[inline]
1010 fn from(v: VideoAFDValue) -> Self {
1011 skip_assert_initialized!();
1012 ToValue::to_value(&v)
1013 }
1014}
1015
1016#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1017#[non_exhaustive]
1018#[doc(alias = "GstVideoAlphaMode")]
1019pub enum VideoAlphaMode {
1020 #[doc(alias = "GST_VIDEO_ALPHA_MODE_COPY")]
1021 Copy,
1022 #[doc(alias = "GST_VIDEO_ALPHA_MODE_SET")]
1023 Set,
1024 #[doc(alias = "GST_VIDEO_ALPHA_MODE_MULT")]
1025 Mult,
1026 #[doc(hidden)]
1027 __Unknown(i32),
1028}
1029
1030#[doc(hidden)]
1031impl IntoGlib for VideoAlphaMode {
1032 type GlibType = ffi::GstVideoAlphaMode;
1033
1034 #[inline]
1035 fn into_glib(self) -> ffi::GstVideoAlphaMode {
1036 match self {
1037 Self::Copy => ffi::GST_VIDEO_ALPHA_MODE_COPY,
1038 Self::Set => ffi::GST_VIDEO_ALPHA_MODE_SET,
1039 Self::Mult => ffi::GST_VIDEO_ALPHA_MODE_MULT,
1040 Self::__Unknown(value: i32) => value,
1041 }
1042 }
1043}
1044
1045#[doc(hidden)]
1046impl FromGlib<ffi::GstVideoAlphaMode> for VideoAlphaMode {
1047 #[inline]
1048 unsafe fn from_glib(value: ffi::GstVideoAlphaMode) -> Self {
1049 skip_assert_initialized!();
1050
1051 match value {
1052 ffi::GST_VIDEO_ALPHA_MODE_COPY => Self::Copy,
1053 ffi::GST_VIDEO_ALPHA_MODE_SET => Self::Set,
1054 ffi::GST_VIDEO_ALPHA_MODE_MULT => Self::Mult,
1055 value: i32 => Self::__Unknown(value),
1056 }
1057 }
1058}
1059
1060impl StaticType for VideoAlphaMode {
1061 #[inline]
1062 #[doc(alias = "gst_video_alpha_mode_get_type")]
1063 fn static_type() -> glib::Type {
1064 unsafe { from_glib(val:ffi::gst_video_alpha_mode_get_type()) }
1065 }
1066}
1067
1068impl glib::HasParamSpec for VideoAlphaMode {
1069 type ParamSpec = glib::ParamSpecEnum;
1070 type SetValue = Self;
1071 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1072
1073 fn param_spec_builder() -> Self::BuilderFn {
1074 Self::ParamSpec::builder_with_default
1075 }
1076}
1077
1078impl glib::value::ValueType for VideoAlphaMode {
1079 type Type = Self;
1080}
1081
1082unsafe impl<'a> glib::value::FromValue<'a> for VideoAlphaMode {
1083 type Checker = glib::value::GenericValueTypeChecker<Self>;
1084
1085 #[inline]
1086 unsafe fn from_value(value: &'a glib::Value) -> Self {
1087 skip_assert_initialized!();
1088 from_glib(val:glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1089 }
1090}
1091
1092impl ToValue for VideoAlphaMode {
1093 #[inline]
1094 fn to_value(&self) -> glib::Value {
1095 let mut value: Value = glib::Value::for_value_type::<Self>();
1096 unsafe {
1097 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1098 }
1099 value
1100 }
1101
1102 #[inline]
1103 fn value_type(&self) -> glib::Type {
1104 Self::static_type()
1105 }
1106}
1107
1108impl From<VideoAlphaMode> for glib::Value {
1109 #[inline]
1110 fn from(v: VideoAlphaMode) -> Self {
1111 skip_assert_initialized!();
1112 ToValue::to_value(&v)
1113 }
1114}
1115
1116#[cfg(feature = "v1_16")]
1117#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1118#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1119#[non_exhaustive]
1120#[doc(alias = "GstVideoAncillaryDID")]
1121pub enum VideoAncillaryDID {
1122 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_UNDEFINED")]
1123 Undefined,
1124 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_DELETION")]
1125 Deletion,
1126 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_HANC_3G_AUDIO_DATA_FIRST")]
1127 Hanc3gAudioDataFirst,
1128 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_HANC_3G_AUDIO_DATA_LAST")]
1129 Hanc3gAudioDataLast,
1130 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_HANC_HDTV_AUDIO_DATA_FIRST")]
1131 HancHdtvAudioDataFirst,
1132 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_HANC_HDTV_AUDIO_DATA_LAST")]
1133 HancHdtvAudioDataLast,
1134 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_1_FIRST")]
1135 HancSdtvAudioData1First,
1136 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_1_LAST")]
1137 HancSdtvAudioData1Last,
1138 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_CAMERA_POSITION")]
1139 CameraPosition,
1140 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_HANC_ERROR_DETECTION")]
1141 HancErrorDetection,
1142 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_2_FIRST")]
1143 HancSdtvAudioData2First,
1144 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_2_LAST")]
1145 HancSdtvAudioData2Last,
1146 #[doc(hidden)]
1147 __Unknown(i32),
1148}
1149
1150#[cfg(feature = "v1_16")]
1151#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1152#[doc(hidden)]
1153impl IntoGlib for VideoAncillaryDID {
1154 type GlibType = ffi::GstVideoAncillaryDID;
1155
1156 #[inline]
1157 fn into_glib(self) -> ffi::GstVideoAncillaryDID {
1158 match self {
1159 Self::Undefined => ffi::GST_VIDEO_ANCILLARY_DID_UNDEFINED,
1160 Self::Deletion => ffi::GST_VIDEO_ANCILLARY_DID_DELETION,
1161 Self::Hanc3gAudioDataFirst => ffi::GST_VIDEO_ANCILLARY_DID_HANC_3G_AUDIO_DATA_FIRST,
1162 Self::Hanc3gAudioDataLast => ffi::GST_VIDEO_ANCILLARY_DID_HANC_3G_AUDIO_DATA_LAST,
1163 Self::HancHdtvAudioDataFirst => ffi::GST_VIDEO_ANCILLARY_DID_HANC_HDTV_AUDIO_DATA_FIRST,
1164 Self::HancHdtvAudioDataLast => ffi::GST_VIDEO_ANCILLARY_DID_HANC_HDTV_AUDIO_DATA_LAST,
1165 Self::HancSdtvAudioData1First => {
1166 ffi::GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_1_FIRST
1167 }
1168 Self::HancSdtvAudioData1Last => {
1169 ffi::GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_1_LAST
1170 }
1171 Self::CameraPosition => ffi::GST_VIDEO_ANCILLARY_DID_CAMERA_POSITION,
1172 Self::HancErrorDetection => ffi::GST_VIDEO_ANCILLARY_DID_HANC_ERROR_DETECTION,
1173 Self::HancSdtvAudioData2First => {
1174 ffi::GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_2_FIRST
1175 }
1176 Self::HancSdtvAudioData2Last => {
1177 ffi::GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_2_LAST
1178 }
1179 Self::__Unknown(value) => value,
1180 }
1181 }
1182}
1183
1184#[cfg(feature = "v1_16")]
1185#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1186#[doc(hidden)]
1187impl FromGlib<ffi::GstVideoAncillaryDID> for VideoAncillaryDID {
1188 #[inline]
1189 unsafe fn from_glib(value: ffi::GstVideoAncillaryDID) -> Self {
1190 skip_assert_initialized!();
1191
1192 match value {
1193 ffi::GST_VIDEO_ANCILLARY_DID_UNDEFINED => Self::Undefined,
1194 ffi::GST_VIDEO_ANCILLARY_DID_DELETION => Self::Deletion,
1195 ffi::GST_VIDEO_ANCILLARY_DID_HANC_3G_AUDIO_DATA_FIRST => Self::Hanc3gAudioDataFirst,
1196 ffi::GST_VIDEO_ANCILLARY_DID_HANC_3G_AUDIO_DATA_LAST => Self::Hanc3gAudioDataLast,
1197 ffi::GST_VIDEO_ANCILLARY_DID_HANC_HDTV_AUDIO_DATA_FIRST => Self::HancHdtvAudioDataFirst,
1198 ffi::GST_VIDEO_ANCILLARY_DID_HANC_HDTV_AUDIO_DATA_LAST => Self::HancHdtvAudioDataLast,
1199 ffi::GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_1_FIRST => {
1200 Self::HancSdtvAudioData1First
1201 }
1202 ffi::GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_1_LAST => {
1203 Self::HancSdtvAudioData1Last
1204 }
1205 ffi::GST_VIDEO_ANCILLARY_DID_CAMERA_POSITION => Self::CameraPosition,
1206 ffi::GST_VIDEO_ANCILLARY_DID_HANC_ERROR_DETECTION => Self::HancErrorDetection,
1207 ffi::GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_2_FIRST => {
1208 Self::HancSdtvAudioData2First
1209 }
1210 ffi::GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_2_LAST => {
1211 Self::HancSdtvAudioData2Last
1212 }
1213 value => Self::__Unknown(value),
1214 }
1215 }
1216}
1217
1218#[cfg(feature = "v1_16")]
1219#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1220impl StaticType for VideoAncillaryDID {
1221 #[inline]
1222 #[doc(alias = "gst_video_ancillary_did_get_type")]
1223 fn static_type() -> glib::Type {
1224 unsafe { from_glib(ffi::gst_video_ancillary_did_get_type()) }
1225 }
1226}
1227
1228#[cfg(feature = "v1_16")]
1229#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1230impl glib::HasParamSpec for VideoAncillaryDID {
1231 type ParamSpec = glib::ParamSpecEnum;
1232 type SetValue = Self;
1233 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1234
1235 fn param_spec_builder() -> Self::BuilderFn {
1236 Self::ParamSpec::builder_with_default
1237 }
1238}
1239
1240#[cfg(feature = "v1_16")]
1241#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1242impl glib::value::ValueType for VideoAncillaryDID {
1243 type Type = Self;
1244}
1245
1246#[cfg(feature = "v1_16")]
1247#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1248unsafe impl<'a> glib::value::FromValue<'a> for VideoAncillaryDID {
1249 type Checker = glib::value::GenericValueTypeChecker<Self>;
1250
1251 #[inline]
1252 unsafe fn from_value(value: &'a glib::Value) -> Self {
1253 skip_assert_initialized!();
1254 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1255 }
1256}
1257
1258#[cfg(feature = "v1_16")]
1259#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1260impl ToValue for VideoAncillaryDID {
1261 #[inline]
1262 fn to_value(&self) -> glib::Value {
1263 let mut value = glib::Value::for_value_type::<Self>();
1264 unsafe {
1265 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1266 }
1267 value
1268 }
1269
1270 #[inline]
1271 fn value_type(&self) -> glib::Type {
1272 Self::static_type()
1273 }
1274}
1275
1276#[cfg(feature = "v1_16")]
1277#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1278impl From<VideoAncillaryDID> for glib::Value {
1279 #[inline]
1280 fn from(v: VideoAncillaryDID) -> Self {
1281 skip_assert_initialized!();
1282 ToValue::to_value(&v)
1283 }
1284}
1285
1286#[cfg(feature = "v1_16")]
1287#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1288#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1289#[non_exhaustive]
1290#[doc(alias = "GstVideoAncillaryDID16")]
1291pub enum VideoAncillaryDID16 {
1292 #[doc(alias = "GST_VIDEO_ANCILLARY_DID16_S334_EIA_708")]
1293 S334Eia708,
1294 #[doc(alias = "GST_VIDEO_ANCILLARY_DID16_S334_EIA_608")]
1295 S334Eia608,
1296 #[doc(alias = "GST_VIDEO_ANCILLARY_DID16_S2016_3_AFD_BAR")]
1297 S20163AfdBar,
1298 #[doc(hidden)]
1299 __Unknown(i32),
1300}
1301
1302#[cfg(feature = "v1_16")]
1303#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1304#[doc(hidden)]
1305impl IntoGlib for VideoAncillaryDID16 {
1306 type GlibType = ffi::GstVideoAncillaryDID16;
1307
1308 #[inline]
1309 fn into_glib(self) -> ffi::GstVideoAncillaryDID16 {
1310 match self {
1311 Self::S334Eia708 => ffi::GST_VIDEO_ANCILLARY_DID16_S334_EIA_708,
1312 Self::S334Eia608 => ffi::GST_VIDEO_ANCILLARY_DID16_S334_EIA_608,
1313 Self::S20163AfdBar => ffi::GST_VIDEO_ANCILLARY_DID16_S2016_3_AFD_BAR,
1314 Self::__Unknown(value) => value,
1315 }
1316 }
1317}
1318
1319#[cfg(feature = "v1_16")]
1320#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1321#[doc(hidden)]
1322impl FromGlib<ffi::GstVideoAncillaryDID16> for VideoAncillaryDID16 {
1323 #[inline]
1324 unsafe fn from_glib(value: ffi::GstVideoAncillaryDID16) -> Self {
1325 skip_assert_initialized!();
1326
1327 match value {
1328 ffi::GST_VIDEO_ANCILLARY_DID16_S334_EIA_708 => Self::S334Eia708,
1329 ffi::GST_VIDEO_ANCILLARY_DID16_S334_EIA_608 => Self::S334Eia608,
1330 ffi::GST_VIDEO_ANCILLARY_DID16_S2016_3_AFD_BAR => Self::S20163AfdBar,
1331 value => Self::__Unknown(value),
1332 }
1333 }
1334}
1335
1336#[cfg(feature = "v1_16")]
1337#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1338impl StaticType for VideoAncillaryDID16 {
1339 #[inline]
1340 #[doc(alias = "gst_video_ancillary_di_d16_get_type")]
1341 fn static_type() -> glib::Type {
1342 unsafe { from_glib(ffi::gst_video_ancillary_di_d16_get_type()) }
1343 }
1344}
1345
1346#[cfg(feature = "v1_16")]
1347#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1348impl glib::HasParamSpec for VideoAncillaryDID16 {
1349 type ParamSpec = glib::ParamSpecEnum;
1350 type SetValue = Self;
1351 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1352
1353 fn param_spec_builder() -> Self::BuilderFn {
1354 Self::ParamSpec::builder_with_default
1355 }
1356}
1357
1358#[cfg(feature = "v1_16")]
1359#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1360impl glib::value::ValueType for VideoAncillaryDID16 {
1361 type Type = Self;
1362}
1363
1364#[cfg(feature = "v1_16")]
1365#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1366unsafe impl<'a> glib::value::FromValue<'a> for VideoAncillaryDID16 {
1367 type Checker = glib::value::GenericValueTypeChecker<Self>;
1368
1369 #[inline]
1370 unsafe fn from_value(value: &'a glib::Value) -> Self {
1371 skip_assert_initialized!();
1372 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1373 }
1374}
1375
1376#[cfg(feature = "v1_16")]
1377#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1378impl ToValue for VideoAncillaryDID16 {
1379 #[inline]
1380 fn to_value(&self) -> glib::Value {
1381 let mut value = glib::Value::for_value_type::<Self>();
1382 unsafe {
1383 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1384 }
1385 value
1386 }
1387
1388 #[inline]
1389 fn value_type(&self) -> glib::Type {
1390 Self::static_type()
1391 }
1392}
1393
1394#[cfg(feature = "v1_16")]
1395#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1396impl From<VideoAncillaryDID16> for glib::Value {
1397 #[inline]
1398 fn from(v: VideoAncillaryDID16) -> Self {
1399 skip_assert_initialized!();
1400 ToValue::to_value(&v)
1401 }
1402}
1403
1404#[cfg(feature = "v1_16")]
1405#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1406#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1407#[non_exhaustive]
1408#[doc(alias = "GstVideoCaptionType")]
1409pub enum VideoCaptionType {
1410 #[doc(alias = "GST_VIDEO_CAPTION_TYPE_UNKNOWN")]
1411 Unknown,
1412 #[doc(alias = "GST_VIDEO_CAPTION_TYPE_CEA608_RAW")]
1413 Cea608Raw,
1414 #[doc(alias = "GST_VIDEO_CAPTION_TYPE_CEA608_S334_1A")]
1415 Cea608S3341a,
1416 #[doc(alias = "GST_VIDEO_CAPTION_TYPE_CEA708_RAW")]
1417 Cea708Raw,
1418 #[doc(alias = "GST_VIDEO_CAPTION_TYPE_CEA708_CDP")]
1419 Cea708Cdp,
1420 #[doc(hidden)]
1421 __Unknown(i32),
1422}
1423
1424#[cfg(feature = "v1_16")]
1425#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1426impl VideoCaptionType {
1427 #[doc(alias = "gst_video_caption_type_to_caps")]
1428 pub fn to_caps(self) -> gst::Caps {
1429 assert_initialized_main_thread!();
1430 unsafe { from_glib_full(ffi::gst_video_caption_type_to_caps(self.into_glib())) }
1431 }
1432}
1433
1434#[cfg(feature = "v1_16")]
1435#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1436#[doc(hidden)]
1437impl IntoGlib for VideoCaptionType {
1438 type GlibType = ffi::GstVideoCaptionType;
1439
1440 #[inline]
1441 fn into_glib(self) -> ffi::GstVideoCaptionType {
1442 match self {
1443 Self::Unknown => ffi::GST_VIDEO_CAPTION_TYPE_UNKNOWN,
1444 Self::Cea608Raw => ffi::GST_VIDEO_CAPTION_TYPE_CEA608_RAW,
1445 Self::Cea608S3341a => ffi::GST_VIDEO_CAPTION_TYPE_CEA608_S334_1A,
1446 Self::Cea708Raw => ffi::GST_VIDEO_CAPTION_TYPE_CEA708_RAW,
1447 Self::Cea708Cdp => ffi::GST_VIDEO_CAPTION_TYPE_CEA708_CDP,
1448 Self::__Unknown(value) => value,
1449 }
1450 }
1451}
1452
1453#[cfg(feature = "v1_16")]
1454#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1455#[doc(hidden)]
1456impl FromGlib<ffi::GstVideoCaptionType> for VideoCaptionType {
1457 #[inline]
1458 unsafe fn from_glib(value: ffi::GstVideoCaptionType) -> Self {
1459 skip_assert_initialized!();
1460
1461 match value {
1462 ffi::GST_VIDEO_CAPTION_TYPE_UNKNOWN => Self::Unknown,
1463 ffi::GST_VIDEO_CAPTION_TYPE_CEA608_RAW => Self::Cea608Raw,
1464 ffi::GST_VIDEO_CAPTION_TYPE_CEA608_S334_1A => Self::Cea608S3341a,
1465 ffi::GST_VIDEO_CAPTION_TYPE_CEA708_RAW => Self::Cea708Raw,
1466 ffi::GST_VIDEO_CAPTION_TYPE_CEA708_CDP => Self::Cea708Cdp,
1467 value => Self::__Unknown(value),
1468 }
1469 }
1470}
1471
1472#[cfg(feature = "v1_16")]
1473#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1474impl StaticType for VideoCaptionType {
1475 #[inline]
1476 #[doc(alias = "gst_video_caption_type_get_type")]
1477 fn static_type() -> glib::Type {
1478 unsafe { from_glib(ffi::gst_video_caption_type_get_type()) }
1479 }
1480}
1481
1482#[cfg(feature = "v1_16")]
1483#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1484impl glib::HasParamSpec for VideoCaptionType {
1485 type ParamSpec = glib::ParamSpecEnum;
1486 type SetValue = Self;
1487 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1488
1489 fn param_spec_builder() -> Self::BuilderFn {
1490 Self::ParamSpec::builder_with_default
1491 }
1492}
1493
1494#[cfg(feature = "v1_16")]
1495#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1496impl glib::value::ValueType for VideoCaptionType {
1497 type Type = Self;
1498}
1499
1500#[cfg(feature = "v1_16")]
1501#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1502unsafe impl<'a> glib::value::FromValue<'a> for VideoCaptionType {
1503 type Checker = glib::value::GenericValueTypeChecker<Self>;
1504
1505 #[inline]
1506 unsafe fn from_value(value: &'a glib::Value) -> Self {
1507 skip_assert_initialized!();
1508 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1509 }
1510}
1511
1512#[cfg(feature = "v1_16")]
1513#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1514impl ToValue for VideoCaptionType {
1515 #[inline]
1516 fn to_value(&self) -> glib::Value {
1517 let mut value = glib::Value::for_value_type::<Self>();
1518 unsafe {
1519 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1520 }
1521 value
1522 }
1523
1524 #[inline]
1525 fn value_type(&self) -> glib::Type {
1526 Self::static_type()
1527 }
1528}
1529
1530#[cfg(feature = "v1_16")]
1531#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1532impl From<VideoCaptionType> for glib::Value {
1533 #[inline]
1534 fn from(v: VideoCaptionType) -> Self {
1535 skip_assert_initialized!();
1536 ToValue::to_value(&v)
1537 }
1538}
1539
1540#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1541#[non_exhaustive]
1542#[doc(alias = "GstVideoChromaMode")]
1543pub enum VideoChromaMode {
1544 #[doc(alias = "GST_VIDEO_CHROMA_MODE_FULL")]
1545 Full,
1546 #[doc(alias = "GST_VIDEO_CHROMA_MODE_UPSAMPLE_ONLY")]
1547 UpsampleOnly,
1548 #[doc(alias = "GST_VIDEO_CHROMA_MODE_DOWNSAMPLE_ONLY")]
1549 DownsampleOnly,
1550 #[doc(alias = "GST_VIDEO_CHROMA_MODE_NONE")]
1551 None,
1552 #[doc(hidden)]
1553 __Unknown(i32),
1554}
1555
1556#[doc(hidden)]
1557impl IntoGlib for VideoChromaMode {
1558 type GlibType = ffi::GstVideoChromaMode;
1559
1560 #[inline]
1561 fn into_glib(self) -> ffi::GstVideoChromaMode {
1562 match self {
1563 Self::Full => ffi::GST_VIDEO_CHROMA_MODE_FULL,
1564 Self::UpsampleOnly => ffi::GST_VIDEO_CHROMA_MODE_UPSAMPLE_ONLY,
1565 Self::DownsampleOnly => ffi::GST_VIDEO_CHROMA_MODE_DOWNSAMPLE_ONLY,
1566 Self::None => ffi::GST_VIDEO_CHROMA_MODE_NONE,
1567 Self::__Unknown(value: i32) => value,
1568 }
1569 }
1570}
1571
1572#[doc(hidden)]
1573impl FromGlib<ffi::GstVideoChromaMode> for VideoChromaMode {
1574 #[inline]
1575 unsafe fn from_glib(value: ffi::GstVideoChromaMode) -> Self {
1576 skip_assert_initialized!();
1577
1578 match value {
1579 ffi::GST_VIDEO_CHROMA_MODE_FULL => Self::Full,
1580 ffi::GST_VIDEO_CHROMA_MODE_UPSAMPLE_ONLY => Self::UpsampleOnly,
1581 ffi::GST_VIDEO_CHROMA_MODE_DOWNSAMPLE_ONLY => Self::DownsampleOnly,
1582 ffi::GST_VIDEO_CHROMA_MODE_NONE => Self::None,
1583 value: i32 => Self::__Unknown(value),
1584 }
1585 }
1586}
1587
1588impl StaticType for VideoChromaMode {
1589 #[inline]
1590 #[doc(alias = "gst_video_chroma_mode_get_type")]
1591 fn static_type() -> glib::Type {
1592 unsafe { from_glib(val:ffi::gst_video_chroma_mode_get_type()) }
1593 }
1594}
1595
1596impl glib::HasParamSpec for VideoChromaMode {
1597 type ParamSpec = glib::ParamSpecEnum;
1598 type SetValue = Self;
1599 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1600
1601 fn param_spec_builder() -> Self::BuilderFn {
1602 Self::ParamSpec::builder_with_default
1603 }
1604}
1605
1606impl glib::value::ValueType for VideoChromaMode {
1607 type Type = Self;
1608}
1609
1610unsafe impl<'a> glib::value::FromValue<'a> for VideoChromaMode {
1611 type Checker = glib::value::GenericValueTypeChecker<Self>;
1612
1613 #[inline]
1614 unsafe fn from_value(value: &'a glib::Value) -> Self {
1615 skip_assert_initialized!();
1616 from_glib(val:glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1617 }
1618}
1619
1620impl ToValue for VideoChromaMode {
1621 #[inline]
1622 fn to_value(&self) -> glib::Value {
1623 let mut value: Value = glib::Value::for_value_type::<Self>();
1624 unsafe {
1625 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1626 }
1627 value
1628 }
1629
1630 #[inline]
1631 fn value_type(&self) -> glib::Type {
1632 Self::static_type()
1633 }
1634}
1635
1636impl From<VideoChromaMode> for glib::Value {
1637 #[inline]
1638 fn from(v: VideoChromaMode) -> Self {
1639 skip_assert_initialized!();
1640 ToValue::to_value(&v)
1641 }
1642}
1643
1644#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1645#[non_exhaustive]
1646#[doc(alias = "GstVideoColorMatrix")]
1647pub enum VideoColorMatrix {
1648 #[doc(alias = "GST_VIDEO_COLOR_MATRIX_UNKNOWN")]
1649 Unknown,
1650 #[doc(alias = "GST_VIDEO_COLOR_MATRIX_RGB")]
1651 Rgb,
1652 #[doc(alias = "GST_VIDEO_COLOR_MATRIX_FCC")]
1653 Fcc,
1654 #[doc(alias = "GST_VIDEO_COLOR_MATRIX_BT709")]
1655 Bt709,
1656 #[doc(alias = "GST_VIDEO_COLOR_MATRIX_BT601")]
1657 Bt601,
1658 #[doc(alias = "GST_VIDEO_COLOR_MATRIX_SMPTE240M")]
1659 Smpte240m,
1660 #[doc(alias = "GST_VIDEO_COLOR_MATRIX_BT2020")]
1661 Bt2020,
1662 #[doc(hidden)]
1663 __Unknown(i32),
1664}
1665
1666impl VideoColorMatrix {
1667 #[cfg(feature = "v1_18")]
1668 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1669 #[doc(alias = "gst_video_color_matrix_from_iso")]
1670 pub fn from_iso(value: u32) -> VideoColorMatrix {
1671 assert_initialized_main_thread!();
1672 unsafe { from_glib(ffi::gst_video_color_matrix_from_iso(value)) }
1673 }
1674
1675 #[cfg(feature = "v1_18")]
1676 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1677 #[doc(alias = "gst_video_color_matrix_to_iso")]
1678 pub fn to_iso(self) -> u32 {
1679 assert_initialized_main_thread!();
1680 unsafe { ffi::gst_video_color_matrix_to_iso(self.into_glib()) }
1681 }
1682}
1683
1684#[doc(hidden)]
1685impl IntoGlib for VideoColorMatrix {
1686 type GlibType = ffi::GstVideoColorMatrix;
1687
1688 #[inline]
1689 fn into_glib(self) -> ffi::GstVideoColorMatrix {
1690 match self {
1691 Self::Unknown => ffi::GST_VIDEO_COLOR_MATRIX_UNKNOWN,
1692 Self::Rgb => ffi::GST_VIDEO_COLOR_MATRIX_RGB,
1693 Self::Fcc => ffi::GST_VIDEO_COLOR_MATRIX_FCC,
1694 Self::Bt709 => ffi::GST_VIDEO_COLOR_MATRIX_BT709,
1695 Self::Bt601 => ffi::GST_VIDEO_COLOR_MATRIX_BT601,
1696 Self::Smpte240m => ffi::GST_VIDEO_COLOR_MATRIX_SMPTE240M,
1697 Self::Bt2020 => ffi::GST_VIDEO_COLOR_MATRIX_BT2020,
1698 Self::__Unknown(value: i32) => value,
1699 }
1700 }
1701}
1702
1703#[doc(hidden)]
1704impl FromGlib<ffi::GstVideoColorMatrix> for VideoColorMatrix {
1705 #[inline]
1706 unsafe fn from_glib(value: ffi::GstVideoColorMatrix) -> Self {
1707 skip_assert_initialized!();
1708
1709 match value {
1710 ffi::GST_VIDEO_COLOR_MATRIX_UNKNOWN => Self::Unknown,
1711 ffi::GST_VIDEO_COLOR_MATRIX_RGB => Self::Rgb,
1712 ffi::GST_VIDEO_COLOR_MATRIX_FCC => Self::Fcc,
1713 ffi::GST_VIDEO_COLOR_MATRIX_BT709 => Self::Bt709,
1714 ffi::GST_VIDEO_COLOR_MATRIX_BT601 => Self::Bt601,
1715 ffi::GST_VIDEO_COLOR_MATRIX_SMPTE240M => Self::Smpte240m,
1716 ffi::GST_VIDEO_COLOR_MATRIX_BT2020 => Self::Bt2020,
1717 value: i32 => Self::__Unknown(value),
1718 }
1719 }
1720}
1721
1722impl StaticType for VideoColorMatrix {
1723 #[inline]
1724 #[doc(alias = "gst_video_color_matrix_get_type")]
1725 fn static_type() -> glib::Type {
1726 unsafe { from_glib(val:ffi::gst_video_color_matrix_get_type()) }
1727 }
1728}
1729
1730impl glib::HasParamSpec for VideoColorMatrix {
1731 type ParamSpec = glib::ParamSpecEnum;
1732 type SetValue = Self;
1733 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1734
1735 fn param_spec_builder() -> Self::BuilderFn {
1736 Self::ParamSpec::builder_with_default
1737 }
1738}
1739
1740impl glib::value::ValueType for VideoColorMatrix {
1741 type Type = Self;
1742}
1743
1744unsafe impl<'a> glib::value::FromValue<'a> for VideoColorMatrix {
1745 type Checker = glib::value::GenericValueTypeChecker<Self>;
1746
1747 #[inline]
1748 unsafe fn from_value(value: &'a glib::Value) -> Self {
1749 skip_assert_initialized!();
1750 from_glib(val:glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1751 }
1752}
1753
1754impl ToValue for VideoColorMatrix {
1755 #[inline]
1756 fn to_value(&self) -> glib::Value {
1757 let mut value: Value = glib::Value::for_value_type::<Self>();
1758 unsafe {
1759 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1760 }
1761 value
1762 }
1763
1764 #[inline]
1765 fn value_type(&self) -> glib::Type {
1766 Self::static_type()
1767 }
1768}
1769
1770impl From<VideoColorMatrix> for glib::Value {
1771 #[inline]
1772 fn from(v: VideoColorMatrix) -> Self {
1773 skip_assert_initialized!();
1774 ToValue::to_value(&v)
1775 }
1776}
1777
1778#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1779#[non_exhaustive]
1780#[doc(alias = "GstVideoColorPrimaries")]
1781pub enum VideoColorPrimaries {
1782 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_UNKNOWN")]
1783 Unknown,
1784 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_BT709")]
1785 Bt709,
1786 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_BT470M")]
1787 Bt470m,
1788 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_BT470BG")]
1789 Bt470bg,
1790 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_SMPTE170M")]
1791 Smpte170m,
1792 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_SMPTE240M")]
1793 Smpte240m,
1794 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_FILM")]
1795 Film,
1796 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_BT2020")]
1797 Bt2020,
1798 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_ADOBERGB")]
1799 Adobergb,
1800 #[cfg(feature = "v1_16")]
1801 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1802 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_SMPTEST428")]
1803 Smptest428,
1804 #[cfg(feature = "v1_16")]
1805 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1806 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_SMPTERP431")]
1807 Smpterp431,
1808 #[cfg(feature = "v1_16")]
1809 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1810 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_SMPTEEG432")]
1811 Smpteeg432,
1812 #[cfg(feature = "v1_16")]
1813 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1814 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_EBU3213")]
1815 Ebu3213,
1816 #[doc(hidden)]
1817 __Unknown(i32),
1818}
1819
1820impl VideoColorPrimaries {
1821 #[cfg(feature = "v1_18")]
1822 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1823 #[doc(alias = "gst_video_color_primaries_from_iso")]
1824 pub fn from_iso(value: u32) -> VideoColorPrimaries {
1825 assert_initialized_main_thread!();
1826 unsafe { from_glib(ffi::gst_video_color_primaries_from_iso(value)) }
1827 }
1828
1829 //#[doc(alias = "gst_video_color_primaries_get_info")]
1830 //#[doc(alias = "get_info")]
1831 //pub fn info(self) -> /*Ignored*/VideoColorPrimariesInfo {
1832 // unsafe { TODO: call ffi:gst_video_color_primaries_get_info() }
1833 //}
1834
1835 #[cfg(feature = "v1_22")]
1836 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
1837 #[doc(alias = "gst_video_color_primaries_is_equivalent")]
1838 pub fn is_equivalent(self, other: VideoColorPrimaries) -> bool {
1839 assert_initialized_main_thread!();
1840 unsafe {
1841 from_glib(ffi::gst_video_color_primaries_is_equivalent(
1842 self.into_glib(),
1843 other.into_glib(),
1844 ))
1845 }
1846 }
1847
1848 #[cfg(feature = "v1_18")]
1849 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1850 #[doc(alias = "gst_video_color_primaries_to_iso")]
1851 pub fn to_iso(self) -> u32 {
1852 assert_initialized_main_thread!();
1853 unsafe { ffi::gst_video_color_primaries_to_iso(self.into_glib()) }
1854 }
1855}
1856
1857#[doc(hidden)]
1858impl IntoGlib for VideoColorPrimaries {
1859 type GlibType = ffi::GstVideoColorPrimaries;
1860
1861 fn into_glib(self) -> ffi::GstVideoColorPrimaries {
1862 match self {
1863 Self::Unknown => ffi::GST_VIDEO_COLOR_PRIMARIES_UNKNOWN,
1864 Self::Bt709 => ffi::GST_VIDEO_COLOR_PRIMARIES_BT709,
1865 Self::Bt470m => ffi::GST_VIDEO_COLOR_PRIMARIES_BT470M,
1866 Self::Bt470bg => ffi::GST_VIDEO_COLOR_PRIMARIES_BT470BG,
1867 Self::Smpte170m => ffi::GST_VIDEO_COLOR_PRIMARIES_SMPTE170M,
1868 Self::Smpte240m => ffi::GST_VIDEO_COLOR_PRIMARIES_SMPTE240M,
1869 Self::Film => ffi::GST_VIDEO_COLOR_PRIMARIES_FILM,
1870 Self::Bt2020 => ffi::GST_VIDEO_COLOR_PRIMARIES_BT2020,
1871 Self::Adobergb => ffi::GST_VIDEO_COLOR_PRIMARIES_ADOBERGB,
1872 #[cfg(feature = "v1_16")]
1873 Self::Smptest428 => ffi::GST_VIDEO_COLOR_PRIMARIES_SMPTEST428,
1874 #[cfg(feature = "v1_16")]
1875 Self::Smpterp431 => ffi::GST_VIDEO_COLOR_PRIMARIES_SMPTERP431,
1876 #[cfg(feature = "v1_16")]
1877 Self::Smpteeg432 => ffi::GST_VIDEO_COLOR_PRIMARIES_SMPTEEG432,
1878 #[cfg(feature = "v1_16")]
1879 Self::Ebu3213 => ffi::GST_VIDEO_COLOR_PRIMARIES_EBU3213,
1880 Self::__Unknown(value) => value,
1881 }
1882 }
1883}
1884
1885#[doc(hidden)]
1886impl FromGlib<ffi::GstVideoColorPrimaries> for VideoColorPrimaries {
1887 unsafe fn from_glib(value: ffi::GstVideoColorPrimaries) -> Self {
1888 skip_assert_initialized!();
1889
1890 match value {
1891 ffi::GST_VIDEO_COLOR_PRIMARIES_UNKNOWN => Self::Unknown,
1892 ffi::GST_VIDEO_COLOR_PRIMARIES_BT709 => Self::Bt709,
1893 ffi::GST_VIDEO_COLOR_PRIMARIES_BT470M => Self::Bt470m,
1894 ffi::GST_VIDEO_COLOR_PRIMARIES_BT470BG => Self::Bt470bg,
1895 ffi::GST_VIDEO_COLOR_PRIMARIES_SMPTE170M => Self::Smpte170m,
1896 ffi::GST_VIDEO_COLOR_PRIMARIES_SMPTE240M => Self::Smpte240m,
1897 ffi::GST_VIDEO_COLOR_PRIMARIES_FILM => Self::Film,
1898 ffi::GST_VIDEO_COLOR_PRIMARIES_BT2020 => Self::Bt2020,
1899 ffi::GST_VIDEO_COLOR_PRIMARIES_ADOBERGB => Self::Adobergb,
1900 #[cfg(feature = "v1_16")]
1901 ffi::GST_VIDEO_COLOR_PRIMARIES_SMPTEST428 => Self::Smptest428,
1902 #[cfg(feature = "v1_16")]
1903 ffi::GST_VIDEO_COLOR_PRIMARIES_SMPTERP431 => Self::Smpterp431,
1904 #[cfg(feature = "v1_16")]
1905 ffi::GST_VIDEO_COLOR_PRIMARIES_SMPTEEG432 => Self::Smpteeg432,
1906 #[cfg(feature = "v1_16")]
1907 ffi::GST_VIDEO_COLOR_PRIMARIES_EBU3213 => Self::Ebu3213,
1908 value => Self::__Unknown(value),
1909 }
1910 }
1911}
1912
1913impl StaticType for VideoColorPrimaries {
1914 #[inline]
1915 #[doc(alias = "gst_video_color_primaries_get_type")]
1916 fn static_type() -> glib::Type {
1917 unsafe { from_glib(val:ffi::gst_video_color_primaries_get_type()) }
1918 }
1919}
1920
1921impl glib::HasParamSpec for VideoColorPrimaries {
1922 type ParamSpec = glib::ParamSpecEnum;
1923 type SetValue = Self;
1924 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1925
1926 fn param_spec_builder() -> Self::BuilderFn {
1927 Self::ParamSpec::builder_with_default
1928 }
1929}
1930
1931impl glib::value::ValueType for VideoColorPrimaries {
1932 type Type = Self;
1933}
1934
1935unsafe impl<'a> glib::value::FromValue<'a> for VideoColorPrimaries {
1936 type Checker = glib::value::GenericValueTypeChecker<Self>;
1937
1938 #[inline]
1939 unsafe fn from_value(value: &'a glib::Value) -> Self {
1940 skip_assert_initialized!();
1941 from_glib(val:glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1942 }
1943}
1944
1945impl ToValue for VideoColorPrimaries {
1946 #[inline]
1947 fn to_value(&self) -> glib::Value {
1948 let mut value: Value = glib::Value::for_value_type::<Self>();
1949 unsafe {
1950 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1951 }
1952 value
1953 }
1954
1955 #[inline]
1956 fn value_type(&self) -> glib::Type {
1957 Self::static_type()
1958 }
1959}
1960
1961impl From<VideoColorPrimaries> for glib::Value {
1962 #[inline]
1963 fn from(v: VideoColorPrimaries) -> Self {
1964 skip_assert_initialized!();
1965 ToValue::to_value(&v)
1966 }
1967}
1968
1969#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1970#[non_exhaustive]
1971#[doc(alias = "GstVideoDitherMethod")]
1972pub enum VideoDitherMethod {
1973 #[doc(alias = "GST_VIDEO_DITHER_NONE")]
1974 None,
1975 #[doc(alias = "GST_VIDEO_DITHER_VERTERR")]
1976 Verterr,
1977 #[doc(alias = "GST_VIDEO_DITHER_FLOYD_STEINBERG")]
1978 FloydSteinberg,
1979 #[doc(alias = "GST_VIDEO_DITHER_SIERRA_LITE")]
1980 SierraLite,
1981 #[doc(alias = "GST_VIDEO_DITHER_BAYER")]
1982 Bayer,
1983 #[doc(hidden)]
1984 __Unknown(i32),
1985}
1986
1987#[doc(hidden)]
1988impl IntoGlib for VideoDitherMethod {
1989 type GlibType = ffi::GstVideoDitherMethod;
1990
1991 #[inline]
1992 fn into_glib(self) -> ffi::GstVideoDitherMethod {
1993 match self {
1994 Self::None => ffi::GST_VIDEO_DITHER_NONE,
1995 Self::Verterr => ffi::GST_VIDEO_DITHER_VERTERR,
1996 Self::FloydSteinberg => ffi::GST_VIDEO_DITHER_FLOYD_STEINBERG,
1997 Self::SierraLite => ffi::GST_VIDEO_DITHER_SIERRA_LITE,
1998 Self::Bayer => ffi::GST_VIDEO_DITHER_BAYER,
1999 Self::__Unknown(value: i32) => value,
2000 }
2001 }
2002}
2003
2004#[doc(hidden)]
2005impl FromGlib<ffi::GstVideoDitherMethod> for VideoDitherMethod {
2006 #[inline]
2007 unsafe fn from_glib(value: ffi::GstVideoDitherMethod) -> Self {
2008 skip_assert_initialized!();
2009
2010 match value {
2011 ffi::GST_VIDEO_DITHER_NONE => Self::None,
2012 ffi::GST_VIDEO_DITHER_VERTERR => Self::Verterr,
2013 ffi::GST_VIDEO_DITHER_FLOYD_STEINBERG => Self::FloydSteinberg,
2014 ffi::GST_VIDEO_DITHER_SIERRA_LITE => Self::SierraLite,
2015 ffi::GST_VIDEO_DITHER_BAYER => Self::Bayer,
2016 value: i32 => Self::__Unknown(value),
2017 }
2018 }
2019}
2020
2021impl StaticType for VideoDitherMethod {
2022 #[inline]
2023 #[doc(alias = "gst_video_dither_method_get_type")]
2024 fn static_type() -> glib::Type {
2025 unsafe { from_glib(val:ffi::gst_video_dither_method_get_type()) }
2026 }
2027}
2028
2029impl glib::HasParamSpec for VideoDitherMethod {
2030 type ParamSpec = glib::ParamSpecEnum;
2031 type SetValue = Self;
2032 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2033
2034 fn param_spec_builder() -> Self::BuilderFn {
2035 Self::ParamSpec::builder_with_default
2036 }
2037}
2038
2039impl glib::value::ValueType for VideoDitherMethod {
2040 type Type = Self;
2041}
2042
2043unsafe impl<'a> glib::value::FromValue<'a> for VideoDitherMethod {
2044 type Checker = glib::value::GenericValueTypeChecker<Self>;
2045
2046 #[inline]
2047 unsafe fn from_value(value: &'a glib::Value) -> Self {
2048 skip_assert_initialized!();
2049 from_glib(val:glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2050 }
2051}
2052
2053impl ToValue for VideoDitherMethod {
2054 #[inline]
2055 fn to_value(&self) -> glib::Value {
2056 let mut value: Value = glib::Value::for_value_type::<Self>();
2057 unsafe {
2058 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2059 }
2060 value
2061 }
2062
2063 #[inline]
2064 fn value_type(&self) -> glib::Type {
2065 Self::static_type()
2066 }
2067}
2068
2069impl From<VideoDitherMethod> for glib::Value {
2070 #[inline]
2071 fn from(v: VideoDitherMethod) -> Self {
2072 skip_assert_initialized!();
2073 ToValue::to_value(&v)
2074 }
2075}
2076
2077#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2078#[non_exhaustive]
2079#[doc(alias = "GstVideoFieldOrder")]
2080pub enum VideoFieldOrder {
2081 #[doc(alias = "GST_VIDEO_FIELD_ORDER_UNKNOWN")]
2082 Unknown,
2083 #[doc(alias = "GST_VIDEO_FIELD_ORDER_TOP_FIELD_FIRST")]
2084 TopFieldFirst,
2085 #[doc(alias = "GST_VIDEO_FIELD_ORDER_BOTTOM_FIELD_FIRST")]
2086 BottomFieldFirst,
2087 #[doc(hidden)]
2088 __Unknown(i32),
2089}
2090
2091impl VideoFieldOrder {
2092 #[doc(alias = "gst_video_field_order_from_string")]
2093 pub fn from_string(order: &str) -> VideoFieldOrder {
2094 assert_initialized_main_thread!();
2095 unsafe {
2096 from_glib(val:ffi::gst_video_field_order_from_string(
2097 order.to_glib_none().0,
2098 ))
2099 }
2100 }
2101}
2102
2103impl std::fmt::Display for VideoFieldOrder {
2104 #[inline]
2105 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2106 f.write_str(&self.to_str())
2107 }
2108}
2109
2110#[doc(hidden)]
2111impl IntoGlib for VideoFieldOrder {
2112 type GlibType = ffi::GstVideoFieldOrder;
2113
2114 #[inline]
2115 fn into_glib(self) -> ffi::GstVideoFieldOrder {
2116 match self {
2117 Self::Unknown => ffi::GST_VIDEO_FIELD_ORDER_UNKNOWN,
2118 Self::TopFieldFirst => ffi::GST_VIDEO_FIELD_ORDER_TOP_FIELD_FIRST,
2119 Self::BottomFieldFirst => ffi::GST_VIDEO_FIELD_ORDER_BOTTOM_FIELD_FIRST,
2120 Self::__Unknown(value: i32) => value,
2121 }
2122 }
2123}
2124
2125#[doc(hidden)]
2126impl FromGlib<ffi::GstVideoFieldOrder> for VideoFieldOrder {
2127 #[inline]
2128 unsafe fn from_glib(value: ffi::GstVideoFieldOrder) -> Self {
2129 skip_assert_initialized!();
2130
2131 match value {
2132 ffi::GST_VIDEO_FIELD_ORDER_UNKNOWN => Self::Unknown,
2133 ffi::GST_VIDEO_FIELD_ORDER_TOP_FIELD_FIRST => Self::TopFieldFirst,
2134 ffi::GST_VIDEO_FIELD_ORDER_BOTTOM_FIELD_FIRST => Self::BottomFieldFirst,
2135 value: i32 => Self::__Unknown(value),
2136 }
2137 }
2138}
2139
2140impl StaticType for VideoFieldOrder {
2141 #[inline]
2142 #[doc(alias = "gst_video_field_order_get_type")]
2143 fn static_type() -> glib::Type {
2144 unsafe { from_glib(val:ffi::gst_video_field_order_get_type()) }
2145 }
2146}
2147
2148impl glib::HasParamSpec for VideoFieldOrder {
2149 type ParamSpec = glib::ParamSpecEnum;
2150 type SetValue = Self;
2151 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2152
2153 fn param_spec_builder() -> Self::BuilderFn {
2154 Self::ParamSpec::builder_with_default
2155 }
2156}
2157
2158impl glib::value::ValueType for VideoFieldOrder {
2159 type Type = Self;
2160}
2161
2162unsafe impl<'a> glib::value::FromValue<'a> for VideoFieldOrder {
2163 type Checker = glib::value::GenericValueTypeChecker<Self>;
2164
2165 #[inline]
2166 unsafe fn from_value(value: &'a glib::Value) -> Self {
2167 skip_assert_initialized!();
2168 from_glib(val:glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2169 }
2170}
2171
2172impl ToValue for VideoFieldOrder {
2173 #[inline]
2174 fn to_value(&self) -> glib::Value {
2175 let mut value: Value = glib::Value::for_value_type::<Self>();
2176 unsafe {
2177 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2178 }
2179 value
2180 }
2181
2182 #[inline]
2183 fn value_type(&self) -> glib::Type {
2184 Self::static_type()
2185 }
2186}
2187
2188impl From<VideoFieldOrder> for glib::Value {
2189 #[inline]
2190 fn from(v: VideoFieldOrder) -> Self {
2191 skip_assert_initialized!();
2192 ToValue::to_value(&v)
2193 }
2194}
2195
2196#[derive(Debug, Eq, PartialEq, Hash, Clone, Copy)]
2197#[non_exhaustive]
2198#[doc(alias = "GstVideoFormat")]
2199pub enum VideoFormat {
2200 #[doc(alias = "GST_VIDEO_FORMAT_UNKNOWN")]
2201 Unknown,
2202 #[doc(alias = "GST_VIDEO_FORMAT_ENCODED")]
2203 Encoded,
2204 #[doc(alias = "GST_VIDEO_FORMAT_I420")]
2205 I420,
2206 #[doc(alias = "GST_VIDEO_FORMAT_YV12")]
2207 Yv12,
2208 #[doc(alias = "GST_VIDEO_FORMAT_YUY2")]
2209 Yuy2,
2210 #[doc(alias = "GST_VIDEO_FORMAT_UYVY")]
2211 Uyvy,
2212 #[doc(alias = "GST_VIDEO_FORMAT_AYUV")]
2213 Ayuv,
2214 #[doc(alias = "GST_VIDEO_FORMAT_RGBx")]
2215 Rgbx,
2216 #[doc(alias = "GST_VIDEO_FORMAT_BGRx")]
2217 Bgrx,
2218 #[doc(alias = "GST_VIDEO_FORMAT_xRGB")]
2219 Xrgb,
2220 #[doc(alias = "GST_VIDEO_FORMAT_xBGR")]
2221 Xbgr,
2222 #[doc(alias = "GST_VIDEO_FORMAT_RGBA")]
2223 Rgba,
2224 #[doc(alias = "GST_VIDEO_FORMAT_BGRA")]
2225 Bgra,
2226 #[doc(alias = "GST_VIDEO_FORMAT_ARGB")]
2227 Argb,
2228 #[doc(alias = "GST_VIDEO_FORMAT_ABGR")]
2229 Abgr,
2230 #[doc(alias = "GST_VIDEO_FORMAT_RGB")]
2231 Rgb,
2232 #[doc(alias = "GST_VIDEO_FORMAT_BGR")]
2233 Bgr,
2234 #[doc(alias = "GST_VIDEO_FORMAT_Y41B")]
2235 Y41b,
2236 #[doc(alias = "GST_VIDEO_FORMAT_Y42B")]
2237 Y42b,
2238 #[doc(alias = "GST_VIDEO_FORMAT_YVYU")]
2239 Yvyu,
2240 #[doc(alias = "GST_VIDEO_FORMAT_Y444")]
2241 Y444,
2242 #[doc(alias = "GST_VIDEO_FORMAT_v210")]
2243 V210,
2244 #[doc(alias = "GST_VIDEO_FORMAT_v216")]
2245 V216,
2246 #[doc(alias = "GST_VIDEO_FORMAT_NV12")]
2247 Nv12,
2248 #[doc(alias = "GST_VIDEO_FORMAT_NV21")]
2249 Nv21,
2250 #[doc(alias = "GST_VIDEO_FORMAT_GRAY8")]
2251 Gray8,
2252 #[doc(alias = "GST_VIDEO_FORMAT_GRAY16_BE")]
2253 Gray16Be,
2254 #[doc(alias = "GST_VIDEO_FORMAT_GRAY16_LE")]
2255 Gray16Le,
2256 #[doc(alias = "GST_VIDEO_FORMAT_v308")]
2257 V308,
2258 #[doc(alias = "GST_VIDEO_FORMAT_RGB16")]
2259 Rgb16,
2260 #[doc(alias = "GST_VIDEO_FORMAT_BGR16")]
2261 Bgr16,
2262 #[doc(alias = "GST_VIDEO_FORMAT_RGB15")]
2263 Rgb15,
2264 #[doc(alias = "GST_VIDEO_FORMAT_BGR15")]
2265 Bgr15,
2266 #[doc(alias = "GST_VIDEO_FORMAT_UYVP")]
2267 Uyvp,
2268 #[doc(alias = "GST_VIDEO_FORMAT_A420")]
2269 A420,
2270 #[doc(alias = "GST_VIDEO_FORMAT_RGB8P")]
2271 Rgb8p,
2272 #[doc(alias = "GST_VIDEO_FORMAT_YUV9")]
2273 Yuv9,
2274 #[doc(alias = "GST_VIDEO_FORMAT_YVU9")]
2275 Yvu9,
2276 #[doc(alias = "GST_VIDEO_FORMAT_IYU1")]
2277 Iyu1,
2278 #[doc(alias = "GST_VIDEO_FORMAT_ARGB64")]
2279 Argb64,
2280 #[doc(alias = "GST_VIDEO_FORMAT_AYUV64")]
2281 Ayuv64,
2282 #[doc(alias = "GST_VIDEO_FORMAT_r210")]
2283 R210,
2284 #[doc(alias = "GST_VIDEO_FORMAT_I420_10BE")]
2285 I42010be,
2286 #[doc(alias = "GST_VIDEO_FORMAT_I420_10LE")]
2287 I42010le,
2288 #[doc(alias = "GST_VIDEO_FORMAT_I422_10BE")]
2289 I42210be,
2290 #[doc(alias = "GST_VIDEO_FORMAT_I422_10LE")]
2291 I42210le,
2292 #[doc(alias = "GST_VIDEO_FORMAT_Y444_10BE")]
2293 Y44410be,
2294 #[doc(alias = "GST_VIDEO_FORMAT_Y444_10LE")]
2295 Y44410le,
2296 #[doc(alias = "GST_VIDEO_FORMAT_GBR")]
2297 Gbr,
2298 #[doc(alias = "GST_VIDEO_FORMAT_GBR_10BE")]
2299 Gbr10be,
2300 #[doc(alias = "GST_VIDEO_FORMAT_GBR_10LE")]
2301 Gbr10le,
2302 #[doc(alias = "GST_VIDEO_FORMAT_NV16")]
2303 Nv16,
2304 #[doc(alias = "GST_VIDEO_FORMAT_NV24")]
2305 Nv24,
2306 #[doc(alias = "GST_VIDEO_FORMAT_NV12_64Z32")]
2307 Nv1264z32,
2308 #[doc(alias = "GST_VIDEO_FORMAT_A420_10BE")]
2309 A42010be,
2310 #[doc(alias = "GST_VIDEO_FORMAT_A420_10LE")]
2311 A42010le,
2312 #[doc(alias = "GST_VIDEO_FORMAT_A422_10BE")]
2313 A42210be,
2314 #[doc(alias = "GST_VIDEO_FORMAT_A422_10LE")]
2315 A42210le,
2316 #[doc(alias = "GST_VIDEO_FORMAT_A444_10BE")]
2317 A44410be,
2318 #[doc(alias = "GST_VIDEO_FORMAT_A444_10LE")]
2319 A44410le,
2320 #[doc(alias = "GST_VIDEO_FORMAT_NV61")]
2321 Nv61,
2322 #[doc(alias = "GST_VIDEO_FORMAT_P010_10BE")]
2323 P01010be,
2324 #[doc(alias = "GST_VIDEO_FORMAT_P010_10LE")]
2325 P01010le,
2326 #[doc(alias = "GST_VIDEO_FORMAT_IYU2")]
2327 Iyu2,
2328 #[doc(alias = "GST_VIDEO_FORMAT_VYUY")]
2329 Vyuy,
2330 #[doc(alias = "GST_VIDEO_FORMAT_GBRA")]
2331 Gbra,
2332 #[doc(alias = "GST_VIDEO_FORMAT_GBRA_10BE")]
2333 Gbra10be,
2334 #[doc(alias = "GST_VIDEO_FORMAT_GBRA_10LE")]
2335 Gbra10le,
2336 #[doc(alias = "GST_VIDEO_FORMAT_GBR_12BE")]
2337 Gbr12be,
2338 #[doc(alias = "GST_VIDEO_FORMAT_GBR_12LE")]
2339 Gbr12le,
2340 #[doc(alias = "GST_VIDEO_FORMAT_GBRA_12BE")]
2341 Gbra12be,
2342 #[doc(alias = "GST_VIDEO_FORMAT_GBRA_12LE")]
2343 Gbra12le,
2344 #[doc(alias = "GST_VIDEO_FORMAT_I420_12BE")]
2345 I42012be,
2346 #[doc(alias = "GST_VIDEO_FORMAT_I420_12LE")]
2347 I42012le,
2348 #[doc(alias = "GST_VIDEO_FORMAT_I422_12BE")]
2349 I42212be,
2350 #[doc(alias = "GST_VIDEO_FORMAT_I422_12LE")]
2351 I42212le,
2352 #[doc(alias = "GST_VIDEO_FORMAT_Y444_12BE")]
2353 Y44412be,
2354 #[doc(alias = "GST_VIDEO_FORMAT_Y444_12LE")]
2355 Y44412le,
2356 #[doc(alias = "GST_VIDEO_FORMAT_GRAY10_LE32")]
2357 Gray10Le32,
2358 #[doc(alias = "GST_VIDEO_FORMAT_NV12_10LE32")]
2359 Nv1210le32,
2360 #[doc(alias = "GST_VIDEO_FORMAT_NV16_10LE32")]
2361 Nv1610le32,
2362 #[cfg(feature = "v1_16")]
2363 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2364 #[doc(alias = "GST_VIDEO_FORMAT_NV12_10LE40")]
2365 Nv1210le40,
2366 #[cfg(feature = "v1_16")]
2367 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2368 #[doc(alias = "GST_VIDEO_FORMAT_Y210")]
2369 Y210,
2370 #[cfg(feature = "v1_16")]
2371 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2372 #[doc(alias = "GST_VIDEO_FORMAT_Y410")]
2373 Y410,
2374 #[cfg(feature = "v1_16")]
2375 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2376 #[doc(alias = "GST_VIDEO_FORMAT_VUYA")]
2377 Vuya,
2378 #[cfg(feature = "v1_16")]
2379 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2380 #[doc(alias = "GST_VIDEO_FORMAT_BGR10A2_LE")]
2381 Bgr10a2Le,
2382 #[cfg(feature = "v1_18")]
2383 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2384 #[doc(alias = "GST_VIDEO_FORMAT_RGB10A2_LE")]
2385 Rgb10a2Le,
2386 #[cfg(feature = "v1_18")]
2387 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2388 #[doc(alias = "GST_VIDEO_FORMAT_Y444_16BE")]
2389 Y44416be,
2390 #[cfg(feature = "v1_18")]
2391 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2392 #[doc(alias = "GST_VIDEO_FORMAT_Y444_16LE")]
2393 Y44416le,
2394 #[cfg(feature = "v1_18")]
2395 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2396 #[doc(alias = "GST_VIDEO_FORMAT_P016_BE")]
2397 P016Be,
2398 #[cfg(feature = "v1_18")]
2399 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2400 #[doc(alias = "GST_VIDEO_FORMAT_P016_LE")]
2401 P016Le,
2402 #[cfg(feature = "v1_18")]
2403 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2404 #[doc(alias = "GST_VIDEO_FORMAT_P012_BE")]
2405 P012Be,
2406 #[cfg(feature = "v1_18")]
2407 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2408 #[doc(alias = "GST_VIDEO_FORMAT_P012_LE")]
2409 P012Le,
2410 #[cfg(feature = "v1_18")]
2411 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2412 #[doc(alias = "GST_VIDEO_FORMAT_Y212_BE")]
2413 Y212Be,
2414 #[cfg(feature = "v1_18")]
2415 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2416 #[doc(alias = "GST_VIDEO_FORMAT_Y212_LE")]
2417 Y212Le,
2418 #[cfg(feature = "v1_18")]
2419 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2420 #[doc(alias = "GST_VIDEO_FORMAT_Y412_BE")]
2421 Y412Be,
2422 #[cfg(feature = "v1_18")]
2423 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2424 #[doc(alias = "GST_VIDEO_FORMAT_Y412_LE")]
2425 Y412Le,
2426 #[cfg(feature = "v1_18")]
2427 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2428 #[doc(alias = "GST_VIDEO_FORMAT_NV12_4L4")]
2429 Nv124l4,
2430 #[cfg(feature = "v1_18")]
2431 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2432 #[doc(alias = "GST_VIDEO_FORMAT_NV12_32L32")]
2433 Nv1232l32,
2434 #[cfg(feature = "v1_20")]
2435 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2436 #[doc(alias = "GST_VIDEO_FORMAT_RGBP")]
2437 Rgbp,
2438 #[cfg(feature = "v1_20")]
2439 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2440 #[doc(alias = "GST_VIDEO_FORMAT_BGRP")]
2441 Bgrp,
2442 #[cfg(feature = "v1_20")]
2443 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2444 #[doc(alias = "GST_VIDEO_FORMAT_AV12")]
2445 Av12,
2446 #[cfg(feature = "v1_20")]
2447 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2448 #[doc(alias = "GST_VIDEO_FORMAT_ARGB64_LE")]
2449 Argb64Le,
2450 #[cfg(feature = "v1_20")]
2451 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2452 #[doc(alias = "GST_VIDEO_FORMAT_ARGB64_BE")]
2453 Argb64Be,
2454 #[cfg(feature = "v1_20")]
2455 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2456 #[doc(alias = "GST_VIDEO_FORMAT_RGBA64_LE")]
2457 Rgba64Le,
2458 #[cfg(feature = "v1_20")]
2459 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2460 #[doc(alias = "GST_VIDEO_FORMAT_RGBA64_BE")]
2461 Rgba64Be,
2462 #[cfg(feature = "v1_20")]
2463 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2464 #[doc(alias = "GST_VIDEO_FORMAT_BGRA64_LE")]
2465 Bgra64Le,
2466 #[cfg(feature = "v1_20")]
2467 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2468 #[doc(alias = "GST_VIDEO_FORMAT_BGRA64_BE")]
2469 Bgra64Be,
2470 #[cfg(feature = "v1_20")]
2471 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2472 #[doc(alias = "GST_VIDEO_FORMAT_ABGR64_LE")]
2473 Abgr64Le,
2474 #[cfg(feature = "v1_20")]
2475 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2476 #[doc(alias = "GST_VIDEO_FORMAT_ABGR64_BE")]
2477 Abgr64Be,
2478 #[cfg(feature = "v1_22")]
2479 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
2480 #[doc(alias = "GST_VIDEO_FORMAT_NV12_16L32S")]
2481 Nv1216l32s,
2482 #[cfg(feature = "v1_22")]
2483 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
2484 #[doc(alias = "GST_VIDEO_FORMAT_NV12_8L128")]
2485 Nv128l128,
2486 #[cfg(feature = "v1_22")]
2487 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
2488 #[doc(alias = "GST_VIDEO_FORMAT_NV12_10BE_8L128")]
2489 Nv1210be8l128,
2490 #[cfg(feature = "v1_24")]
2491 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2492 #[doc(alias = "GST_VIDEO_FORMAT_NV12_10LE40_4L4")]
2493 Nv1210le404l4,
2494 #[cfg(feature = "v1_24")]
2495 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2496 #[doc(alias = "GST_VIDEO_FORMAT_DMA_DRM")]
2497 DmaDrm,
2498 #[cfg(feature = "v1_24")]
2499 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2500 #[doc(alias = "GST_VIDEO_FORMAT_MT2110T")]
2501 Mt2110t,
2502 #[cfg(feature = "v1_24")]
2503 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2504 #[doc(alias = "GST_VIDEO_FORMAT_MT2110R")]
2505 Mt2110r,
2506 #[cfg(feature = "v1_24")]
2507 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2508 #[doc(alias = "GST_VIDEO_FORMAT_A422")]
2509 A422,
2510 #[cfg(feature = "v1_24")]
2511 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2512 #[doc(alias = "GST_VIDEO_FORMAT_A444")]
2513 A444,
2514 #[cfg(feature = "v1_24")]
2515 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2516 #[doc(alias = "GST_VIDEO_FORMAT_A444_12LE")]
2517 A44412le,
2518 #[cfg(feature = "v1_24")]
2519 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2520 #[doc(alias = "GST_VIDEO_FORMAT_A444_12BE")]
2521 A44412be,
2522 #[cfg(feature = "v1_24")]
2523 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2524 #[doc(alias = "GST_VIDEO_FORMAT_A422_12LE")]
2525 A42212le,
2526 #[cfg(feature = "v1_24")]
2527 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2528 #[doc(alias = "GST_VIDEO_FORMAT_A422_12BE")]
2529 A42212be,
2530 #[cfg(feature = "v1_24")]
2531 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2532 #[doc(alias = "GST_VIDEO_FORMAT_A420_12LE")]
2533 A42012le,
2534 #[cfg(feature = "v1_24")]
2535 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2536 #[doc(alias = "GST_VIDEO_FORMAT_A420_12BE")]
2537 A42012be,
2538 #[cfg(feature = "v1_24")]
2539 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2540 #[doc(alias = "GST_VIDEO_FORMAT_A444_16LE")]
2541 A44416le,
2542 #[cfg(feature = "v1_24")]
2543 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2544 #[doc(alias = "GST_VIDEO_FORMAT_A444_16BE")]
2545 A44416be,
2546 #[cfg(feature = "v1_24")]
2547 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2548 #[doc(alias = "GST_VIDEO_FORMAT_A422_16LE")]
2549 A42216le,
2550 #[cfg(feature = "v1_24")]
2551 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2552 #[doc(alias = "GST_VIDEO_FORMAT_A422_16BE")]
2553 A42216be,
2554 #[cfg(feature = "v1_24")]
2555 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2556 #[doc(alias = "GST_VIDEO_FORMAT_A420_16LE")]
2557 A42016le,
2558 #[cfg(feature = "v1_24")]
2559 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2560 #[doc(alias = "GST_VIDEO_FORMAT_A420_16BE")]
2561 A42016be,
2562 #[cfg(feature = "v1_24")]
2563 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2564 #[doc(alias = "GST_VIDEO_FORMAT_GBR_16LE")]
2565 Gbr16le,
2566 #[cfg(feature = "v1_24")]
2567 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2568 #[doc(alias = "GST_VIDEO_FORMAT_GBR_16BE")]
2569 Gbr16be,
2570 #[cfg(feature = "v1_24")]
2571 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2572 #[doc(alias = "GST_VIDEO_FORMAT_RBGA")]
2573 Rbga,
2574 #[cfg(feature = "v1_26")]
2575 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
2576 #[doc(alias = "GST_VIDEO_FORMAT_Y216_LE")]
2577 Y216Le,
2578 #[cfg(feature = "v1_26")]
2579 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
2580 #[doc(alias = "GST_VIDEO_FORMAT_Y216_BE")]
2581 Y216Be,
2582 #[cfg(feature = "v1_26")]
2583 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
2584 #[doc(alias = "GST_VIDEO_FORMAT_Y416_LE")]
2585 Y416Le,
2586 #[cfg(feature = "v1_26")]
2587 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
2588 #[doc(alias = "GST_VIDEO_FORMAT_Y416_BE")]
2589 Y416Be,
2590 #[cfg(feature = "v1_26")]
2591 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
2592 #[doc(alias = "GST_VIDEO_FORMAT_GRAY10_LE16")]
2593 Gray10Le16,
2594 #[doc(hidden)]
2595 __Unknown(i32),
2596}
2597
2598impl VideoFormat {
2599 #[doc(alias = "gst_video_format_from_fourcc")]
2600 pub fn from_fourcc(fourcc: u32) -> VideoFormat {
2601 assert_initialized_main_thread!();
2602 unsafe { from_glib(ffi::gst_video_format_from_fourcc(fourcc)) }
2603 }
2604
2605 #[doc(alias = "gst_video_format_from_string")]
2606 pub fn from_string(format: &str) -> VideoFormat {
2607 assert_initialized_main_thread!();
2608 unsafe { from_glib(ffi::gst_video_format_from_string(format.to_glib_none().0)) }
2609 }
2610
2611 //#[doc(alias = "gst_video_format_get_palette")]
2612 //#[doc(alias = "get_palette")]
2613 //pub fn palette(self) -> (/*Unimplemented*/Option<Basic: Pointer>, usize) {
2614 // unsafe { TODO: call ffi:gst_video_format_get_palette() }
2615 //}
2616
2617 #[doc(alias = "gst_video_format_to_fourcc")]
2618 pub fn to_fourcc(self) -> u32 {
2619 assert_initialized_main_thread!();
2620 unsafe { ffi::gst_video_format_to_fourcc(self.into_glib()) }
2621 }
2622}
2623
2624impl std::fmt::Display for VideoFormat {
2625 #[inline]
2626 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2627 f.write_str(&self.to_str())
2628 }
2629}
2630
2631#[doc(hidden)]
2632impl IntoGlib for VideoFormat {
2633 type GlibType = ffi::GstVideoFormat;
2634
2635 fn into_glib(self) -> ffi::GstVideoFormat {
2636 match self {
2637 Self::Unknown => ffi::GST_VIDEO_FORMAT_UNKNOWN,
2638 Self::Encoded => ffi::GST_VIDEO_FORMAT_ENCODED,
2639 Self::I420 => ffi::GST_VIDEO_FORMAT_I420,
2640 Self::Yv12 => ffi::GST_VIDEO_FORMAT_YV12,
2641 Self::Yuy2 => ffi::GST_VIDEO_FORMAT_YUY2,
2642 Self::Uyvy => ffi::GST_VIDEO_FORMAT_UYVY,
2643 Self::Ayuv => ffi::GST_VIDEO_FORMAT_AYUV,
2644 Self::Rgbx => ffi::GST_VIDEO_FORMAT_RGBx,
2645 Self::Bgrx => ffi::GST_VIDEO_FORMAT_BGRx,
2646 Self::Xrgb => ffi::GST_VIDEO_FORMAT_xRGB,
2647 Self::Xbgr => ffi::GST_VIDEO_FORMAT_xBGR,
2648 Self::Rgba => ffi::GST_VIDEO_FORMAT_RGBA,
2649 Self::Bgra => ffi::GST_VIDEO_FORMAT_BGRA,
2650 Self::Argb => ffi::GST_VIDEO_FORMAT_ARGB,
2651 Self::Abgr => ffi::GST_VIDEO_FORMAT_ABGR,
2652 Self::Rgb => ffi::GST_VIDEO_FORMAT_RGB,
2653 Self::Bgr => ffi::GST_VIDEO_FORMAT_BGR,
2654 Self::Y41b => ffi::GST_VIDEO_FORMAT_Y41B,
2655 Self::Y42b => ffi::GST_VIDEO_FORMAT_Y42B,
2656 Self::Yvyu => ffi::GST_VIDEO_FORMAT_YVYU,
2657 Self::Y444 => ffi::GST_VIDEO_FORMAT_Y444,
2658 Self::V210 => ffi::GST_VIDEO_FORMAT_v210,
2659 Self::V216 => ffi::GST_VIDEO_FORMAT_v216,
2660 Self::Nv12 => ffi::GST_VIDEO_FORMAT_NV12,
2661 Self::Nv21 => ffi::GST_VIDEO_FORMAT_NV21,
2662 Self::Gray8 => ffi::GST_VIDEO_FORMAT_GRAY8,
2663 Self::Gray16Be => ffi::GST_VIDEO_FORMAT_GRAY16_BE,
2664 Self::Gray16Le => ffi::GST_VIDEO_FORMAT_GRAY16_LE,
2665 Self::V308 => ffi::GST_VIDEO_FORMAT_v308,
2666 Self::Rgb16 => ffi::GST_VIDEO_FORMAT_RGB16,
2667 Self::Bgr16 => ffi::GST_VIDEO_FORMAT_BGR16,
2668 Self::Rgb15 => ffi::GST_VIDEO_FORMAT_RGB15,
2669 Self::Bgr15 => ffi::GST_VIDEO_FORMAT_BGR15,
2670 Self::Uyvp => ffi::GST_VIDEO_FORMAT_UYVP,
2671 Self::A420 => ffi::GST_VIDEO_FORMAT_A420,
2672 Self::Rgb8p => ffi::GST_VIDEO_FORMAT_RGB8P,
2673 Self::Yuv9 => ffi::GST_VIDEO_FORMAT_YUV9,
2674 Self::Yvu9 => ffi::GST_VIDEO_FORMAT_YVU9,
2675 Self::Iyu1 => ffi::GST_VIDEO_FORMAT_IYU1,
2676 Self::Argb64 => ffi::GST_VIDEO_FORMAT_ARGB64,
2677 Self::Ayuv64 => ffi::GST_VIDEO_FORMAT_AYUV64,
2678 Self::R210 => ffi::GST_VIDEO_FORMAT_r210,
2679 Self::I42010be => ffi::GST_VIDEO_FORMAT_I420_10BE,
2680 Self::I42010le => ffi::GST_VIDEO_FORMAT_I420_10LE,
2681 Self::I42210be => ffi::GST_VIDEO_FORMAT_I422_10BE,
2682 Self::I42210le => ffi::GST_VIDEO_FORMAT_I422_10LE,
2683 Self::Y44410be => ffi::GST_VIDEO_FORMAT_Y444_10BE,
2684 Self::Y44410le => ffi::GST_VIDEO_FORMAT_Y444_10LE,
2685 Self::Gbr => ffi::GST_VIDEO_FORMAT_GBR,
2686 Self::Gbr10be => ffi::GST_VIDEO_FORMAT_GBR_10BE,
2687 Self::Gbr10le => ffi::GST_VIDEO_FORMAT_GBR_10LE,
2688 Self::Nv16 => ffi::GST_VIDEO_FORMAT_NV16,
2689 Self::Nv24 => ffi::GST_VIDEO_FORMAT_NV24,
2690 Self::Nv1264z32 => ffi::GST_VIDEO_FORMAT_NV12_64Z32,
2691 Self::A42010be => ffi::GST_VIDEO_FORMAT_A420_10BE,
2692 Self::A42010le => ffi::GST_VIDEO_FORMAT_A420_10LE,
2693 Self::A42210be => ffi::GST_VIDEO_FORMAT_A422_10BE,
2694 Self::A42210le => ffi::GST_VIDEO_FORMAT_A422_10LE,
2695 Self::A44410be => ffi::GST_VIDEO_FORMAT_A444_10BE,
2696 Self::A44410le => ffi::GST_VIDEO_FORMAT_A444_10LE,
2697 Self::Nv61 => ffi::GST_VIDEO_FORMAT_NV61,
2698 Self::P01010be => ffi::GST_VIDEO_FORMAT_P010_10BE,
2699 Self::P01010le => ffi::GST_VIDEO_FORMAT_P010_10LE,
2700 Self::Iyu2 => ffi::GST_VIDEO_FORMAT_IYU2,
2701 Self::Vyuy => ffi::GST_VIDEO_FORMAT_VYUY,
2702 Self::Gbra => ffi::GST_VIDEO_FORMAT_GBRA,
2703 Self::Gbra10be => ffi::GST_VIDEO_FORMAT_GBRA_10BE,
2704 Self::Gbra10le => ffi::GST_VIDEO_FORMAT_GBRA_10LE,
2705 Self::Gbr12be => ffi::GST_VIDEO_FORMAT_GBR_12BE,
2706 Self::Gbr12le => ffi::GST_VIDEO_FORMAT_GBR_12LE,
2707 Self::Gbra12be => ffi::GST_VIDEO_FORMAT_GBRA_12BE,
2708 Self::Gbra12le => ffi::GST_VIDEO_FORMAT_GBRA_12LE,
2709 Self::I42012be => ffi::GST_VIDEO_FORMAT_I420_12BE,
2710 Self::I42012le => ffi::GST_VIDEO_FORMAT_I420_12LE,
2711 Self::I42212be => ffi::GST_VIDEO_FORMAT_I422_12BE,
2712 Self::I42212le => ffi::GST_VIDEO_FORMAT_I422_12LE,
2713 Self::Y44412be => ffi::GST_VIDEO_FORMAT_Y444_12BE,
2714 Self::Y44412le => ffi::GST_VIDEO_FORMAT_Y444_12LE,
2715 Self::Gray10Le32 => ffi::GST_VIDEO_FORMAT_GRAY10_LE32,
2716 Self::Nv1210le32 => ffi::GST_VIDEO_FORMAT_NV12_10LE32,
2717 Self::Nv1610le32 => ffi::GST_VIDEO_FORMAT_NV16_10LE32,
2718 #[cfg(feature = "v1_16")]
2719 Self::Nv1210le40 => ffi::GST_VIDEO_FORMAT_NV12_10LE40,
2720 #[cfg(feature = "v1_16")]
2721 Self::Y210 => ffi::GST_VIDEO_FORMAT_Y210,
2722 #[cfg(feature = "v1_16")]
2723 Self::Y410 => ffi::GST_VIDEO_FORMAT_Y410,
2724 #[cfg(feature = "v1_16")]
2725 Self::Vuya => ffi::GST_VIDEO_FORMAT_VUYA,
2726 #[cfg(feature = "v1_16")]
2727 Self::Bgr10a2Le => ffi::GST_VIDEO_FORMAT_BGR10A2_LE,
2728 #[cfg(feature = "v1_18")]
2729 Self::Rgb10a2Le => ffi::GST_VIDEO_FORMAT_RGB10A2_LE,
2730 #[cfg(feature = "v1_18")]
2731 Self::Y44416be => ffi::GST_VIDEO_FORMAT_Y444_16BE,
2732 #[cfg(feature = "v1_18")]
2733 Self::Y44416le => ffi::GST_VIDEO_FORMAT_Y444_16LE,
2734 #[cfg(feature = "v1_18")]
2735 Self::P016Be => ffi::GST_VIDEO_FORMAT_P016_BE,
2736 #[cfg(feature = "v1_18")]
2737 Self::P016Le => ffi::GST_VIDEO_FORMAT_P016_LE,
2738 #[cfg(feature = "v1_18")]
2739 Self::P012Be => ffi::GST_VIDEO_FORMAT_P012_BE,
2740 #[cfg(feature = "v1_18")]
2741 Self::P012Le => ffi::GST_VIDEO_FORMAT_P012_LE,
2742 #[cfg(feature = "v1_18")]
2743 Self::Y212Be => ffi::GST_VIDEO_FORMAT_Y212_BE,
2744 #[cfg(feature = "v1_18")]
2745 Self::Y212Le => ffi::GST_VIDEO_FORMAT_Y212_LE,
2746 #[cfg(feature = "v1_18")]
2747 Self::Y412Be => ffi::GST_VIDEO_FORMAT_Y412_BE,
2748 #[cfg(feature = "v1_18")]
2749 Self::Y412Le => ffi::GST_VIDEO_FORMAT_Y412_LE,
2750 #[cfg(feature = "v1_18")]
2751 Self::Nv124l4 => ffi::GST_VIDEO_FORMAT_NV12_4L4,
2752 #[cfg(feature = "v1_18")]
2753 Self::Nv1232l32 => ffi::GST_VIDEO_FORMAT_NV12_32L32,
2754 #[cfg(feature = "v1_20")]
2755 Self::Rgbp => ffi::GST_VIDEO_FORMAT_RGBP,
2756 #[cfg(feature = "v1_20")]
2757 Self::Bgrp => ffi::GST_VIDEO_FORMAT_BGRP,
2758 #[cfg(feature = "v1_20")]
2759 Self::Av12 => ffi::GST_VIDEO_FORMAT_AV12,
2760 #[cfg(feature = "v1_20")]
2761 Self::Argb64Le => ffi::GST_VIDEO_FORMAT_ARGB64_LE,
2762 #[cfg(feature = "v1_20")]
2763 Self::Argb64Be => ffi::GST_VIDEO_FORMAT_ARGB64_BE,
2764 #[cfg(feature = "v1_20")]
2765 Self::Rgba64Le => ffi::GST_VIDEO_FORMAT_RGBA64_LE,
2766 #[cfg(feature = "v1_20")]
2767 Self::Rgba64Be => ffi::GST_VIDEO_FORMAT_RGBA64_BE,
2768 #[cfg(feature = "v1_20")]
2769 Self::Bgra64Le => ffi::GST_VIDEO_FORMAT_BGRA64_LE,
2770 #[cfg(feature = "v1_20")]
2771 Self::Bgra64Be => ffi::GST_VIDEO_FORMAT_BGRA64_BE,
2772 #[cfg(feature = "v1_20")]
2773 Self::Abgr64Le => ffi::GST_VIDEO_FORMAT_ABGR64_LE,
2774 #[cfg(feature = "v1_20")]
2775 Self::Abgr64Be => ffi::GST_VIDEO_FORMAT_ABGR64_BE,
2776 #[cfg(feature = "v1_22")]
2777 Self::Nv1216l32s => ffi::GST_VIDEO_FORMAT_NV12_16L32S,
2778 #[cfg(feature = "v1_22")]
2779 Self::Nv128l128 => ffi::GST_VIDEO_FORMAT_NV12_8L128,
2780 #[cfg(feature = "v1_22")]
2781 Self::Nv1210be8l128 => ffi::GST_VIDEO_FORMAT_NV12_10BE_8L128,
2782 #[cfg(feature = "v1_24")]
2783 Self::Nv1210le404l4 => ffi::GST_VIDEO_FORMAT_NV12_10LE40_4L4,
2784 #[cfg(feature = "v1_24")]
2785 Self::DmaDrm => ffi::GST_VIDEO_FORMAT_DMA_DRM,
2786 #[cfg(feature = "v1_24")]
2787 Self::Mt2110t => ffi::GST_VIDEO_FORMAT_MT2110T,
2788 #[cfg(feature = "v1_24")]
2789 Self::Mt2110r => ffi::GST_VIDEO_FORMAT_MT2110R,
2790 #[cfg(feature = "v1_24")]
2791 Self::A422 => ffi::GST_VIDEO_FORMAT_A422,
2792 #[cfg(feature = "v1_24")]
2793 Self::A444 => ffi::GST_VIDEO_FORMAT_A444,
2794 #[cfg(feature = "v1_24")]
2795 Self::A44412le => ffi::GST_VIDEO_FORMAT_A444_12LE,
2796 #[cfg(feature = "v1_24")]
2797 Self::A44412be => ffi::GST_VIDEO_FORMAT_A444_12BE,
2798 #[cfg(feature = "v1_24")]
2799 Self::A42212le => ffi::GST_VIDEO_FORMAT_A422_12LE,
2800 #[cfg(feature = "v1_24")]
2801 Self::A42212be => ffi::GST_VIDEO_FORMAT_A422_12BE,
2802 #[cfg(feature = "v1_24")]
2803 Self::A42012le => ffi::GST_VIDEO_FORMAT_A420_12LE,
2804 #[cfg(feature = "v1_24")]
2805 Self::A42012be => ffi::GST_VIDEO_FORMAT_A420_12BE,
2806 #[cfg(feature = "v1_24")]
2807 Self::A44416le => ffi::GST_VIDEO_FORMAT_A444_16LE,
2808 #[cfg(feature = "v1_24")]
2809 Self::A44416be => ffi::GST_VIDEO_FORMAT_A444_16BE,
2810 #[cfg(feature = "v1_24")]
2811 Self::A42216le => ffi::GST_VIDEO_FORMAT_A422_16LE,
2812 #[cfg(feature = "v1_24")]
2813 Self::A42216be => ffi::GST_VIDEO_FORMAT_A422_16BE,
2814 #[cfg(feature = "v1_24")]
2815 Self::A42016le => ffi::GST_VIDEO_FORMAT_A420_16LE,
2816 #[cfg(feature = "v1_24")]
2817 Self::A42016be => ffi::GST_VIDEO_FORMAT_A420_16BE,
2818 #[cfg(feature = "v1_24")]
2819 Self::Gbr16le => ffi::GST_VIDEO_FORMAT_GBR_16LE,
2820 #[cfg(feature = "v1_24")]
2821 Self::Gbr16be => ffi::GST_VIDEO_FORMAT_GBR_16BE,
2822 #[cfg(feature = "v1_24")]
2823 Self::Rbga => ffi::GST_VIDEO_FORMAT_RBGA,
2824 #[cfg(feature = "v1_26")]
2825 Self::Y216Le => ffi::GST_VIDEO_FORMAT_Y216_LE,
2826 #[cfg(feature = "v1_26")]
2827 Self::Y216Be => ffi::GST_VIDEO_FORMAT_Y216_BE,
2828 #[cfg(feature = "v1_26")]
2829 Self::Y416Le => ffi::GST_VIDEO_FORMAT_Y416_LE,
2830 #[cfg(feature = "v1_26")]
2831 Self::Y416Be => ffi::GST_VIDEO_FORMAT_Y416_BE,
2832 #[cfg(feature = "v1_26")]
2833 Self::Gray10Le16 => ffi::GST_VIDEO_FORMAT_GRAY10_LE16,
2834 Self::__Unknown(value) => value,
2835 }
2836 }
2837}
2838
2839#[doc(hidden)]
2840impl FromGlib<ffi::GstVideoFormat> for VideoFormat {
2841 unsafe fn from_glib(value: ffi::GstVideoFormat) -> Self {
2842 skip_assert_initialized!();
2843
2844 match value {
2845 ffi::GST_VIDEO_FORMAT_UNKNOWN => Self::Unknown,
2846 ffi::GST_VIDEO_FORMAT_ENCODED => Self::Encoded,
2847 ffi::GST_VIDEO_FORMAT_I420 => Self::I420,
2848 ffi::GST_VIDEO_FORMAT_YV12 => Self::Yv12,
2849 ffi::GST_VIDEO_FORMAT_YUY2 => Self::Yuy2,
2850 ffi::GST_VIDEO_FORMAT_UYVY => Self::Uyvy,
2851 ffi::GST_VIDEO_FORMAT_AYUV => Self::Ayuv,
2852 ffi::GST_VIDEO_FORMAT_RGBx => Self::Rgbx,
2853 ffi::GST_VIDEO_FORMAT_BGRx => Self::Bgrx,
2854 ffi::GST_VIDEO_FORMAT_xRGB => Self::Xrgb,
2855 ffi::GST_VIDEO_FORMAT_xBGR => Self::Xbgr,
2856 ffi::GST_VIDEO_FORMAT_RGBA => Self::Rgba,
2857 ffi::GST_VIDEO_FORMAT_BGRA => Self::Bgra,
2858 ffi::GST_VIDEO_FORMAT_ARGB => Self::Argb,
2859 ffi::GST_VIDEO_FORMAT_ABGR => Self::Abgr,
2860 ffi::GST_VIDEO_FORMAT_RGB => Self::Rgb,
2861 ffi::GST_VIDEO_FORMAT_BGR => Self::Bgr,
2862 ffi::GST_VIDEO_FORMAT_Y41B => Self::Y41b,
2863 ffi::GST_VIDEO_FORMAT_Y42B => Self::Y42b,
2864 ffi::GST_VIDEO_FORMAT_YVYU => Self::Yvyu,
2865 ffi::GST_VIDEO_FORMAT_Y444 => Self::Y444,
2866 ffi::GST_VIDEO_FORMAT_v210 => Self::V210,
2867 ffi::GST_VIDEO_FORMAT_v216 => Self::V216,
2868 ffi::GST_VIDEO_FORMAT_NV12 => Self::Nv12,
2869 ffi::GST_VIDEO_FORMAT_NV21 => Self::Nv21,
2870 ffi::GST_VIDEO_FORMAT_GRAY8 => Self::Gray8,
2871 ffi::GST_VIDEO_FORMAT_GRAY16_BE => Self::Gray16Be,
2872 ffi::GST_VIDEO_FORMAT_GRAY16_LE => Self::Gray16Le,
2873 ffi::GST_VIDEO_FORMAT_v308 => Self::V308,
2874 ffi::GST_VIDEO_FORMAT_RGB16 => Self::Rgb16,
2875 ffi::GST_VIDEO_FORMAT_BGR16 => Self::Bgr16,
2876 ffi::GST_VIDEO_FORMAT_RGB15 => Self::Rgb15,
2877 ffi::GST_VIDEO_FORMAT_BGR15 => Self::Bgr15,
2878 ffi::GST_VIDEO_FORMAT_UYVP => Self::Uyvp,
2879 ffi::GST_VIDEO_FORMAT_A420 => Self::A420,
2880 ffi::GST_VIDEO_FORMAT_RGB8P => Self::Rgb8p,
2881 ffi::GST_VIDEO_FORMAT_YUV9 => Self::Yuv9,
2882 ffi::GST_VIDEO_FORMAT_YVU9 => Self::Yvu9,
2883 ffi::GST_VIDEO_FORMAT_IYU1 => Self::Iyu1,
2884 ffi::GST_VIDEO_FORMAT_ARGB64 => Self::Argb64,
2885 ffi::GST_VIDEO_FORMAT_AYUV64 => Self::Ayuv64,
2886 ffi::GST_VIDEO_FORMAT_r210 => Self::R210,
2887 ffi::GST_VIDEO_FORMAT_I420_10BE => Self::I42010be,
2888 ffi::GST_VIDEO_FORMAT_I420_10LE => Self::I42010le,
2889 ffi::GST_VIDEO_FORMAT_I422_10BE => Self::I42210be,
2890 ffi::GST_VIDEO_FORMAT_I422_10LE => Self::I42210le,
2891 ffi::GST_VIDEO_FORMAT_Y444_10BE => Self::Y44410be,
2892 ffi::GST_VIDEO_FORMAT_Y444_10LE => Self::Y44410le,
2893 ffi::GST_VIDEO_FORMAT_GBR => Self::Gbr,
2894 ffi::GST_VIDEO_FORMAT_GBR_10BE => Self::Gbr10be,
2895 ffi::GST_VIDEO_FORMAT_GBR_10LE => Self::Gbr10le,
2896 ffi::GST_VIDEO_FORMAT_NV16 => Self::Nv16,
2897 ffi::GST_VIDEO_FORMAT_NV24 => Self::Nv24,
2898 ffi::GST_VIDEO_FORMAT_NV12_64Z32 => Self::Nv1264z32,
2899 ffi::GST_VIDEO_FORMAT_A420_10BE => Self::A42010be,
2900 ffi::GST_VIDEO_FORMAT_A420_10LE => Self::A42010le,
2901 ffi::GST_VIDEO_FORMAT_A422_10BE => Self::A42210be,
2902 ffi::GST_VIDEO_FORMAT_A422_10LE => Self::A42210le,
2903 ffi::GST_VIDEO_FORMAT_A444_10BE => Self::A44410be,
2904 ffi::GST_VIDEO_FORMAT_A444_10LE => Self::A44410le,
2905 ffi::GST_VIDEO_FORMAT_NV61 => Self::Nv61,
2906 ffi::GST_VIDEO_FORMAT_P010_10BE => Self::P01010be,
2907 ffi::GST_VIDEO_FORMAT_P010_10LE => Self::P01010le,
2908 ffi::GST_VIDEO_FORMAT_IYU2 => Self::Iyu2,
2909 ffi::GST_VIDEO_FORMAT_VYUY => Self::Vyuy,
2910 ffi::GST_VIDEO_FORMAT_GBRA => Self::Gbra,
2911 ffi::GST_VIDEO_FORMAT_GBRA_10BE => Self::Gbra10be,
2912 ffi::GST_VIDEO_FORMAT_GBRA_10LE => Self::Gbra10le,
2913 ffi::GST_VIDEO_FORMAT_GBR_12BE => Self::Gbr12be,
2914 ffi::GST_VIDEO_FORMAT_GBR_12LE => Self::Gbr12le,
2915 ffi::GST_VIDEO_FORMAT_GBRA_12BE => Self::Gbra12be,
2916 ffi::GST_VIDEO_FORMAT_GBRA_12LE => Self::Gbra12le,
2917 ffi::GST_VIDEO_FORMAT_I420_12BE => Self::I42012be,
2918 ffi::GST_VIDEO_FORMAT_I420_12LE => Self::I42012le,
2919 ffi::GST_VIDEO_FORMAT_I422_12BE => Self::I42212be,
2920 ffi::GST_VIDEO_FORMAT_I422_12LE => Self::I42212le,
2921 ffi::GST_VIDEO_FORMAT_Y444_12BE => Self::Y44412be,
2922 ffi::GST_VIDEO_FORMAT_Y444_12LE => Self::Y44412le,
2923 ffi::GST_VIDEO_FORMAT_GRAY10_LE32 => Self::Gray10Le32,
2924 ffi::GST_VIDEO_FORMAT_NV12_10LE32 => Self::Nv1210le32,
2925 ffi::GST_VIDEO_FORMAT_NV16_10LE32 => Self::Nv1610le32,
2926 #[cfg(feature = "v1_16")]
2927 ffi::GST_VIDEO_FORMAT_NV12_10LE40 => Self::Nv1210le40,
2928 #[cfg(feature = "v1_16")]
2929 ffi::GST_VIDEO_FORMAT_Y210 => Self::Y210,
2930 #[cfg(feature = "v1_16")]
2931 ffi::GST_VIDEO_FORMAT_Y410 => Self::Y410,
2932 #[cfg(feature = "v1_16")]
2933 ffi::GST_VIDEO_FORMAT_VUYA => Self::Vuya,
2934 #[cfg(feature = "v1_16")]
2935 ffi::GST_VIDEO_FORMAT_BGR10A2_LE => Self::Bgr10a2Le,
2936 #[cfg(feature = "v1_18")]
2937 ffi::GST_VIDEO_FORMAT_RGB10A2_LE => Self::Rgb10a2Le,
2938 #[cfg(feature = "v1_18")]
2939 ffi::GST_VIDEO_FORMAT_Y444_16BE => Self::Y44416be,
2940 #[cfg(feature = "v1_18")]
2941 ffi::GST_VIDEO_FORMAT_Y444_16LE => Self::Y44416le,
2942 #[cfg(feature = "v1_18")]
2943 ffi::GST_VIDEO_FORMAT_P016_BE => Self::P016Be,
2944 #[cfg(feature = "v1_18")]
2945 ffi::GST_VIDEO_FORMAT_P016_LE => Self::P016Le,
2946 #[cfg(feature = "v1_18")]
2947 ffi::GST_VIDEO_FORMAT_P012_BE => Self::P012Be,
2948 #[cfg(feature = "v1_18")]
2949 ffi::GST_VIDEO_FORMAT_P012_LE => Self::P012Le,
2950 #[cfg(feature = "v1_18")]
2951 ffi::GST_VIDEO_FORMAT_Y212_BE => Self::Y212Be,
2952 #[cfg(feature = "v1_18")]
2953 ffi::GST_VIDEO_FORMAT_Y212_LE => Self::Y212Le,
2954 #[cfg(feature = "v1_18")]
2955 ffi::GST_VIDEO_FORMAT_Y412_BE => Self::Y412Be,
2956 #[cfg(feature = "v1_18")]
2957 ffi::GST_VIDEO_FORMAT_Y412_LE => Self::Y412Le,
2958 #[cfg(feature = "v1_18")]
2959 ffi::GST_VIDEO_FORMAT_NV12_4L4 => Self::Nv124l4,
2960 #[cfg(feature = "v1_18")]
2961 ffi::GST_VIDEO_FORMAT_NV12_32L32 => Self::Nv1232l32,
2962 #[cfg(feature = "v1_20")]
2963 ffi::GST_VIDEO_FORMAT_RGBP => Self::Rgbp,
2964 #[cfg(feature = "v1_20")]
2965 ffi::GST_VIDEO_FORMAT_BGRP => Self::Bgrp,
2966 #[cfg(feature = "v1_20")]
2967 ffi::GST_VIDEO_FORMAT_AV12 => Self::Av12,
2968 #[cfg(feature = "v1_20")]
2969 ffi::GST_VIDEO_FORMAT_ARGB64_LE => Self::Argb64Le,
2970 #[cfg(feature = "v1_20")]
2971 ffi::GST_VIDEO_FORMAT_ARGB64_BE => Self::Argb64Be,
2972 #[cfg(feature = "v1_20")]
2973 ffi::GST_VIDEO_FORMAT_RGBA64_LE => Self::Rgba64Le,
2974 #[cfg(feature = "v1_20")]
2975 ffi::GST_VIDEO_FORMAT_RGBA64_BE => Self::Rgba64Be,
2976 #[cfg(feature = "v1_20")]
2977 ffi::GST_VIDEO_FORMAT_BGRA64_LE => Self::Bgra64Le,
2978 #[cfg(feature = "v1_20")]
2979 ffi::GST_VIDEO_FORMAT_BGRA64_BE => Self::Bgra64Be,
2980 #[cfg(feature = "v1_20")]
2981 ffi::GST_VIDEO_FORMAT_ABGR64_LE => Self::Abgr64Le,
2982 #[cfg(feature = "v1_20")]
2983 ffi::GST_VIDEO_FORMAT_ABGR64_BE => Self::Abgr64Be,
2984 #[cfg(feature = "v1_22")]
2985 ffi::GST_VIDEO_FORMAT_NV12_16L32S => Self::Nv1216l32s,
2986 #[cfg(feature = "v1_22")]
2987 ffi::GST_VIDEO_FORMAT_NV12_8L128 => Self::Nv128l128,
2988 #[cfg(feature = "v1_22")]
2989 ffi::GST_VIDEO_FORMAT_NV12_10BE_8L128 => Self::Nv1210be8l128,
2990 #[cfg(feature = "v1_24")]
2991 ffi::GST_VIDEO_FORMAT_NV12_10LE40_4L4 => Self::Nv1210le404l4,
2992 #[cfg(feature = "v1_24")]
2993 ffi::GST_VIDEO_FORMAT_DMA_DRM => Self::DmaDrm,
2994 #[cfg(feature = "v1_24")]
2995 ffi::GST_VIDEO_FORMAT_MT2110T => Self::Mt2110t,
2996 #[cfg(feature = "v1_24")]
2997 ffi::GST_VIDEO_FORMAT_MT2110R => Self::Mt2110r,
2998 #[cfg(feature = "v1_24")]
2999 ffi::GST_VIDEO_FORMAT_A422 => Self::A422,
3000 #[cfg(feature = "v1_24")]
3001 ffi::GST_VIDEO_FORMAT_A444 => Self::A444,
3002 #[cfg(feature = "v1_24")]
3003 ffi::GST_VIDEO_FORMAT_A444_12LE => Self::A44412le,
3004 #[cfg(feature = "v1_24")]
3005 ffi::GST_VIDEO_FORMAT_A444_12BE => Self::A44412be,
3006 #[cfg(feature = "v1_24")]
3007 ffi::GST_VIDEO_FORMAT_A422_12LE => Self::A42212le,
3008 #[cfg(feature = "v1_24")]
3009 ffi::GST_VIDEO_FORMAT_A422_12BE => Self::A42212be,
3010 #[cfg(feature = "v1_24")]
3011 ffi::GST_VIDEO_FORMAT_A420_12LE => Self::A42012le,
3012 #[cfg(feature = "v1_24")]
3013 ffi::GST_VIDEO_FORMAT_A420_12BE => Self::A42012be,
3014 #[cfg(feature = "v1_24")]
3015 ffi::GST_VIDEO_FORMAT_A444_16LE => Self::A44416le,
3016 #[cfg(feature = "v1_24")]
3017 ffi::GST_VIDEO_FORMAT_A444_16BE => Self::A44416be,
3018 #[cfg(feature = "v1_24")]
3019 ffi::GST_VIDEO_FORMAT_A422_16LE => Self::A42216le,
3020 #[cfg(feature = "v1_24")]
3021 ffi::GST_VIDEO_FORMAT_A422_16BE => Self::A42216be,
3022 #[cfg(feature = "v1_24")]
3023 ffi::GST_VIDEO_FORMAT_A420_16LE => Self::A42016le,
3024 #[cfg(feature = "v1_24")]
3025 ffi::GST_VIDEO_FORMAT_A420_16BE => Self::A42016be,
3026 #[cfg(feature = "v1_24")]
3027 ffi::GST_VIDEO_FORMAT_GBR_16LE => Self::Gbr16le,
3028 #[cfg(feature = "v1_24")]
3029 ffi::GST_VIDEO_FORMAT_GBR_16BE => Self::Gbr16be,
3030 #[cfg(feature = "v1_24")]
3031 ffi::GST_VIDEO_FORMAT_RBGA => Self::Rbga,
3032 #[cfg(feature = "v1_26")]
3033 ffi::GST_VIDEO_FORMAT_Y216_LE => Self::Y216Le,
3034 #[cfg(feature = "v1_26")]
3035 ffi::GST_VIDEO_FORMAT_Y216_BE => Self::Y216Be,
3036 #[cfg(feature = "v1_26")]
3037 ffi::GST_VIDEO_FORMAT_Y416_LE => Self::Y416Le,
3038 #[cfg(feature = "v1_26")]
3039 ffi::GST_VIDEO_FORMAT_Y416_BE => Self::Y416Be,
3040 #[cfg(feature = "v1_26")]
3041 ffi::GST_VIDEO_FORMAT_GRAY10_LE16 => Self::Gray10Le16,
3042 value => Self::__Unknown(value),
3043 }
3044 }
3045}
3046
3047impl StaticType for VideoFormat {
3048 #[inline]
3049 #[doc(alias = "gst_video_format_get_type")]
3050 fn static_type() -> glib::Type {
3051 unsafe { from_glib(val:ffi::gst_video_format_get_type()) }
3052 }
3053}
3054
3055impl glib::HasParamSpec for VideoFormat {
3056 type ParamSpec = glib::ParamSpecEnum;
3057 type SetValue = Self;
3058 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3059
3060 fn param_spec_builder() -> Self::BuilderFn {
3061 Self::ParamSpec::builder_with_default
3062 }
3063}
3064
3065impl glib::value::ValueType for VideoFormat {
3066 type Type = Self;
3067}
3068
3069unsafe impl<'a> glib::value::FromValue<'a> for VideoFormat {
3070 type Checker = glib::value::GenericValueTypeChecker<Self>;
3071
3072 #[inline]
3073 unsafe fn from_value(value: &'a glib::Value) -> Self {
3074 skip_assert_initialized!();
3075 from_glib(val:glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3076 }
3077}
3078
3079impl ToValue for VideoFormat {
3080 #[inline]
3081 fn to_value(&self) -> glib::Value {
3082 let mut value: Value = glib::Value::for_value_type::<Self>();
3083 unsafe {
3084 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3085 }
3086 value
3087 }
3088
3089 #[inline]
3090 fn value_type(&self) -> glib::Type {
3091 Self::static_type()
3092 }
3093}
3094
3095impl From<VideoFormat> for glib::Value {
3096 #[inline]
3097 fn from(v: VideoFormat) -> Self {
3098 skip_assert_initialized!();
3099 ToValue::to_value(&v)
3100 }
3101}
3102
3103#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3104#[non_exhaustive]
3105#[doc(alias = "GstVideoGammaMode")]
3106pub enum VideoGammaMode {
3107 #[doc(alias = "GST_VIDEO_GAMMA_MODE_NONE")]
3108 None,
3109 #[doc(alias = "GST_VIDEO_GAMMA_MODE_REMAP")]
3110 Remap,
3111 #[doc(hidden)]
3112 __Unknown(i32),
3113}
3114
3115#[doc(hidden)]
3116impl IntoGlib for VideoGammaMode {
3117 type GlibType = ffi::GstVideoGammaMode;
3118
3119 #[inline]
3120 fn into_glib(self) -> ffi::GstVideoGammaMode {
3121 match self {
3122 Self::None => ffi::GST_VIDEO_GAMMA_MODE_NONE,
3123 Self::Remap => ffi::GST_VIDEO_GAMMA_MODE_REMAP,
3124 Self::__Unknown(value: i32) => value,
3125 }
3126 }
3127}
3128
3129#[doc(hidden)]
3130impl FromGlib<ffi::GstVideoGammaMode> for VideoGammaMode {
3131 #[inline]
3132 unsafe fn from_glib(value: ffi::GstVideoGammaMode) -> Self {
3133 skip_assert_initialized!();
3134
3135 match value {
3136 ffi::GST_VIDEO_GAMMA_MODE_NONE => Self::None,
3137 ffi::GST_VIDEO_GAMMA_MODE_REMAP => Self::Remap,
3138 value: i32 => Self::__Unknown(value),
3139 }
3140 }
3141}
3142
3143impl StaticType for VideoGammaMode {
3144 #[inline]
3145 #[doc(alias = "gst_video_gamma_mode_get_type")]
3146 fn static_type() -> glib::Type {
3147 unsafe { from_glib(val:ffi::gst_video_gamma_mode_get_type()) }
3148 }
3149}
3150
3151impl glib::HasParamSpec for VideoGammaMode {
3152 type ParamSpec = glib::ParamSpecEnum;
3153 type SetValue = Self;
3154 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3155
3156 fn param_spec_builder() -> Self::BuilderFn {
3157 Self::ParamSpec::builder_with_default
3158 }
3159}
3160
3161impl glib::value::ValueType for VideoGammaMode {
3162 type Type = Self;
3163}
3164
3165unsafe impl<'a> glib::value::FromValue<'a> for VideoGammaMode {
3166 type Checker = glib::value::GenericValueTypeChecker<Self>;
3167
3168 #[inline]
3169 unsafe fn from_value(value: &'a glib::Value) -> Self {
3170 skip_assert_initialized!();
3171 from_glib(val:glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3172 }
3173}
3174
3175impl ToValue for VideoGammaMode {
3176 #[inline]
3177 fn to_value(&self) -> glib::Value {
3178 let mut value: Value = glib::Value::for_value_type::<Self>();
3179 unsafe {
3180 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3181 }
3182 value
3183 }
3184
3185 #[inline]
3186 fn value_type(&self) -> glib::Type {
3187 Self::static_type()
3188 }
3189}
3190
3191impl From<VideoGammaMode> for glib::Value {
3192 #[inline]
3193 fn from(v: VideoGammaMode) -> Self {
3194 skip_assert_initialized!();
3195 ToValue::to_value(&v)
3196 }
3197}
3198
3199#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3200#[non_exhaustive]
3201#[doc(alias = "GstVideoInterlaceMode")]
3202pub enum VideoInterlaceMode {
3203 #[doc(alias = "GST_VIDEO_INTERLACE_MODE_PROGRESSIVE")]
3204 Progressive,
3205 #[doc(alias = "GST_VIDEO_INTERLACE_MODE_INTERLEAVED")]
3206 Interleaved,
3207 #[doc(alias = "GST_VIDEO_INTERLACE_MODE_MIXED")]
3208 Mixed,
3209 #[doc(alias = "GST_VIDEO_INTERLACE_MODE_FIELDS")]
3210 Fields,
3211 #[cfg(feature = "v1_16")]
3212 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3213 #[doc(alias = "GST_VIDEO_INTERLACE_MODE_ALTERNATE")]
3214 Alternate,
3215 #[doc(hidden)]
3216 __Unknown(i32),
3217}
3218
3219impl VideoInterlaceMode {
3220 #[doc(alias = "gst_video_interlace_mode_from_string")]
3221 pub fn from_string(mode: &str) -> VideoInterlaceMode {
3222 assert_initialized_main_thread!();
3223 unsafe {
3224 from_glib(val:ffi::gst_video_interlace_mode_from_string(
3225 mode.to_glib_none().0,
3226 ))
3227 }
3228 }
3229
3230 pub fn to_str<'a>(self) -> &'a GStr {
3231 unsafe {
3232 GStr::from_ptr(
3233 ffi::gst_video_interlace_mode_to_string(self.into_glib())
3234 .as_ref()
3235 .expect(msg:"gst_video_interlace_mode_to_string returned NULL"),
3236 )
3237 }
3238 }
3239}
3240
3241impl std::fmt::Display for VideoInterlaceMode {
3242 #[inline]
3243 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3244 f.write_str(&self.to_str())
3245 }
3246}
3247
3248#[doc(hidden)]
3249impl IntoGlib for VideoInterlaceMode {
3250 type GlibType = ffi::GstVideoInterlaceMode;
3251
3252 #[inline]
3253 fn into_glib(self) -> ffi::GstVideoInterlaceMode {
3254 match self {
3255 Self::Progressive => ffi::GST_VIDEO_INTERLACE_MODE_PROGRESSIVE,
3256 Self::Interleaved => ffi::GST_VIDEO_INTERLACE_MODE_INTERLEAVED,
3257 Self::Mixed => ffi::GST_VIDEO_INTERLACE_MODE_MIXED,
3258 Self::Fields => ffi::GST_VIDEO_INTERLACE_MODE_FIELDS,
3259 #[cfg(feature = "v1_16")]
3260 Self::Alternate => ffi::GST_VIDEO_INTERLACE_MODE_ALTERNATE,
3261 Self::__Unknown(value: i32) => value,
3262 }
3263 }
3264}
3265
3266#[doc(hidden)]
3267impl FromGlib<ffi::GstVideoInterlaceMode> for VideoInterlaceMode {
3268 #[inline]
3269 unsafe fn from_glib(value: ffi::GstVideoInterlaceMode) -> Self {
3270 skip_assert_initialized!();
3271
3272 match value {
3273 ffi::GST_VIDEO_INTERLACE_MODE_PROGRESSIVE => Self::Progressive,
3274 ffi::GST_VIDEO_INTERLACE_MODE_INTERLEAVED => Self::Interleaved,
3275 ffi::GST_VIDEO_INTERLACE_MODE_MIXED => Self::Mixed,
3276 ffi::GST_VIDEO_INTERLACE_MODE_FIELDS => Self::Fields,
3277 #[cfg(feature = "v1_16")]
3278 ffi::GST_VIDEO_INTERLACE_MODE_ALTERNATE => Self::Alternate,
3279 value: i32 => Self::__Unknown(value),
3280 }
3281 }
3282}
3283
3284impl StaticType for VideoInterlaceMode {
3285 #[inline]
3286 #[doc(alias = "gst_video_interlace_mode_get_type")]
3287 fn static_type() -> glib::Type {
3288 unsafe { from_glib(val:ffi::gst_video_interlace_mode_get_type()) }
3289 }
3290}
3291
3292impl glib::HasParamSpec for VideoInterlaceMode {
3293 type ParamSpec = glib::ParamSpecEnum;
3294 type SetValue = Self;
3295 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3296
3297 fn param_spec_builder() -> Self::BuilderFn {
3298 Self::ParamSpec::builder_with_default
3299 }
3300}
3301
3302impl glib::value::ValueType for VideoInterlaceMode {
3303 type Type = Self;
3304}
3305
3306unsafe impl<'a> glib::value::FromValue<'a> for VideoInterlaceMode {
3307 type Checker = glib::value::GenericValueTypeChecker<Self>;
3308
3309 #[inline]
3310 unsafe fn from_value(value: &'a glib::Value) -> Self {
3311 skip_assert_initialized!();
3312 from_glib(val:glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3313 }
3314}
3315
3316impl ToValue for VideoInterlaceMode {
3317 #[inline]
3318 fn to_value(&self) -> glib::Value {
3319 let mut value: Value = glib::Value::for_value_type::<Self>();
3320 unsafe {
3321 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3322 }
3323 value
3324 }
3325
3326 #[inline]
3327 fn value_type(&self) -> glib::Type {
3328 Self::static_type()
3329 }
3330}
3331
3332impl From<VideoInterlaceMode> for glib::Value {
3333 #[inline]
3334 fn from(v: VideoInterlaceMode) -> Self {
3335 skip_assert_initialized!();
3336 ToValue::to_value(&v)
3337 }
3338}
3339
3340#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3341#[non_exhaustive]
3342#[doc(alias = "GstVideoMatrixMode")]
3343pub enum VideoMatrixMode {
3344 #[doc(alias = "GST_VIDEO_MATRIX_MODE_FULL")]
3345 Full,
3346 #[doc(alias = "GST_VIDEO_MATRIX_MODE_INPUT_ONLY")]
3347 InputOnly,
3348 #[doc(alias = "GST_VIDEO_MATRIX_MODE_OUTPUT_ONLY")]
3349 OutputOnly,
3350 #[doc(alias = "GST_VIDEO_MATRIX_MODE_NONE")]
3351 None,
3352 #[doc(hidden)]
3353 __Unknown(i32),
3354}
3355
3356#[doc(hidden)]
3357impl IntoGlib for VideoMatrixMode {
3358 type GlibType = ffi::GstVideoMatrixMode;
3359
3360 #[inline]
3361 fn into_glib(self) -> ffi::GstVideoMatrixMode {
3362 match self {
3363 Self::Full => ffi::GST_VIDEO_MATRIX_MODE_FULL,
3364 Self::InputOnly => ffi::GST_VIDEO_MATRIX_MODE_INPUT_ONLY,
3365 Self::OutputOnly => ffi::GST_VIDEO_MATRIX_MODE_OUTPUT_ONLY,
3366 Self::None => ffi::GST_VIDEO_MATRIX_MODE_NONE,
3367 Self::__Unknown(value: i32) => value,
3368 }
3369 }
3370}
3371
3372#[doc(hidden)]
3373impl FromGlib<ffi::GstVideoMatrixMode> for VideoMatrixMode {
3374 #[inline]
3375 unsafe fn from_glib(value: ffi::GstVideoMatrixMode) -> Self {
3376 skip_assert_initialized!();
3377
3378 match value {
3379 ffi::GST_VIDEO_MATRIX_MODE_FULL => Self::Full,
3380 ffi::GST_VIDEO_MATRIX_MODE_INPUT_ONLY => Self::InputOnly,
3381 ffi::GST_VIDEO_MATRIX_MODE_OUTPUT_ONLY => Self::OutputOnly,
3382 ffi::GST_VIDEO_MATRIX_MODE_NONE => Self::None,
3383 value: i32 => Self::__Unknown(value),
3384 }
3385 }
3386}
3387
3388impl StaticType for VideoMatrixMode {
3389 #[inline]
3390 #[doc(alias = "gst_video_matrix_mode_get_type")]
3391 fn static_type() -> glib::Type {
3392 unsafe { from_glib(val:ffi::gst_video_matrix_mode_get_type()) }
3393 }
3394}
3395
3396impl glib::HasParamSpec for VideoMatrixMode {
3397 type ParamSpec = glib::ParamSpecEnum;
3398 type SetValue = Self;
3399 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3400
3401 fn param_spec_builder() -> Self::BuilderFn {
3402 Self::ParamSpec::builder_with_default
3403 }
3404}
3405
3406impl glib::value::ValueType for VideoMatrixMode {
3407 type Type = Self;
3408}
3409
3410unsafe impl<'a> glib::value::FromValue<'a> for VideoMatrixMode {
3411 type Checker = glib::value::GenericValueTypeChecker<Self>;
3412
3413 #[inline]
3414 unsafe fn from_value(value: &'a glib::Value) -> Self {
3415 skip_assert_initialized!();
3416 from_glib(val:glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3417 }
3418}
3419
3420impl ToValue for VideoMatrixMode {
3421 #[inline]
3422 fn to_value(&self) -> glib::Value {
3423 let mut value: Value = glib::Value::for_value_type::<Self>();
3424 unsafe {
3425 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3426 }
3427 value
3428 }
3429
3430 #[inline]
3431 fn value_type(&self) -> glib::Type {
3432 Self::static_type()
3433 }
3434}
3435
3436impl From<VideoMatrixMode> for glib::Value {
3437 #[inline]
3438 fn from(v: VideoMatrixMode) -> Self {
3439 skip_assert_initialized!();
3440 ToValue::to_value(&v)
3441 }
3442}
3443
3444#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3445#[non_exhaustive]
3446#[doc(alias = "GstVideoMultiviewFramePacking")]
3447pub enum VideoMultiviewFramePacking {
3448 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_NONE")]
3449 None,
3450 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_MONO")]
3451 Mono,
3452 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_LEFT")]
3453 Left,
3454 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_RIGHT")]
3455 Right,
3456 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE")]
3457 SideBySide,
3458 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE_QUINCUNX")]
3459 SideBySideQuincunx,
3460 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_COLUMN_INTERLEAVED")]
3461 ColumnInterleaved,
3462 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_ROW_INTERLEAVED")]
3463 RowInterleaved,
3464 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_TOP_BOTTOM")]
3465 TopBottom,
3466 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_CHECKERBOARD")]
3467 Checkerboard,
3468 #[doc(hidden)]
3469 __Unknown(i32),
3470}
3471
3472#[doc(hidden)]
3473impl IntoGlib for VideoMultiviewFramePacking {
3474 type GlibType = ffi::GstVideoMultiviewFramePacking;
3475
3476 #[inline]
3477 fn into_glib(self) -> ffi::GstVideoMultiviewFramePacking {
3478 match self {
3479 Self::None => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_NONE,
3480 Self::Mono => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_MONO,
3481 Self::Left => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_LEFT,
3482 Self::Right => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_RIGHT,
3483 Self::SideBySide => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE,
3484 Self::SideBySideQuincunx => {
3485 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE_QUINCUNX
3486 }
3487 Self::ColumnInterleaved => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_COLUMN_INTERLEAVED,
3488 Self::RowInterleaved => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_ROW_INTERLEAVED,
3489 Self::TopBottom => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_TOP_BOTTOM,
3490 Self::Checkerboard => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_CHECKERBOARD,
3491 Self::__Unknown(value: i32) => value,
3492 }
3493 }
3494}
3495
3496#[doc(hidden)]
3497impl FromGlib<ffi::GstVideoMultiviewFramePacking> for VideoMultiviewFramePacking {
3498 #[inline]
3499 unsafe fn from_glib(value: ffi::GstVideoMultiviewFramePacking) -> Self {
3500 skip_assert_initialized!();
3501
3502 match value {
3503 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_NONE => Self::None,
3504 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_MONO => Self::Mono,
3505 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_LEFT => Self::Left,
3506 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_RIGHT => Self::Right,
3507 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE => Self::SideBySide,
3508 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE_QUINCUNX => {
3509 Self::SideBySideQuincunx
3510 }
3511 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_COLUMN_INTERLEAVED => Self::ColumnInterleaved,
3512 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_ROW_INTERLEAVED => Self::RowInterleaved,
3513 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_TOP_BOTTOM => Self::TopBottom,
3514 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_CHECKERBOARD => Self::Checkerboard,
3515 value: i32 => Self::__Unknown(value),
3516 }
3517 }
3518}
3519
3520impl StaticType for VideoMultiviewFramePacking {
3521 #[inline]
3522 #[doc(alias = "gst_video_multiview_frame_packing_get_type")]
3523 fn static_type() -> glib::Type {
3524 unsafe { from_glib(val:ffi::gst_video_multiview_frame_packing_get_type()) }
3525 }
3526}
3527
3528impl glib::HasParamSpec for VideoMultiviewFramePacking {
3529 type ParamSpec = glib::ParamSpecEnum;
3530 type SetValue = Self;
3531 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3532
3533 fn param_spec_builder() -> Self::BuilderFn {
3534 Self::ParamSpec::builder_with_default
3535 }
3536}
3537
3538impl glib::value::ValueType for VideoMultiviewFramePacking {
3539 type Type = Self;
3540}
3541
3542unsafe impl<'a> glib::value::FromValue<'a> for VideoMultiviewFramePacking {
3543 type Checker = glib::value::GenericValueTypeChecker<Self>;
3544
3545 #[inline]
3546 unsafe fn from_value(value: &'a glib::Value) -> Self {
3547 skip_assert_initialized!();
3548 from_glib(val:glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3549 }
3550}
3551
3552impl ToValue for VideoMultiviewFramePacking {
3553 #[inline]
3554 fn to_value(&self) -> glib::Value {
3555 let mut value: Value = glib::Value::for_value_type::<Self>();
3556 unsafe {
3557 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3558 }
3559 value
3560 }
3561
3562 #[inline]
3563 fn value_type(&self) -> glib::Type {
3564 Self::static_type()
3565 }
3566}
3567
3568impl From<VideoMultiviewFramePacking> for glib::Value {
3569 #[inline]
3570 fn from(v: VideoMultiviewFramePacking) -> Self {
3571 skip_assert_initialized!();
3572 ToValue::to_value(&v)
3573 }
3574}
3575
3576#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3577#[non_exhaustive]
3578#[doc(alias = "GstVideoMultiviewMode")]
3579pub enum VideoMultiviewMode {
3580 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_NONE")]
3581 None,
3582 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_MONO")]
3583 Mono,
3584 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_LEFT")]
3585 Left,
3586 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_RIGHT")]
3587 Right,
3588 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE")]
3589 SideBySide,
3590 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE_QUINCUNX")]
3591 SideBySideQuincunx,
3592 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_COLUMN_INTERLEAVED")]
3593 ColumnInterleaved,
3594 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_ROW_INTERLEAVED")]
3595 RowInterleaved,
3596 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_TOP_BOTTOM")]
3597 TopBottom,
3598 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_CHECKERBOARD")]
3599 Checkerboard,
3600 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_FRAME_BY_FRAME")]
3601 FrameByFrame,
3602 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_MULTIVIEW_FRAME_BY_FRAME")]
3603 MultiviewFrameByFrame,
3604 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_SEPARATED")]
3605 Separated,
3606 #[doc(hidden)]
3607 __Unknown(i32),
3608}
3609
3610impl VideoMultiviewMode {
3611 #[doc(alias = "gst_video_multiview_mode_from_caps_string")]
3612 pub fn from_caps_string(caps_mview_mode: &str) -> VideoMultiviewMode {
3613 assert_initialized_main_thread!();
3614 unsafe {
3615 from_glib(val:ffi::gst_video_multiview_mode_from_caps_string(
3616 caps_mview_mode.to_glib_none().0,
3617 ))
3618 }
3619 }
3620
3621 #[doc(alias = "gst_video_multiview_mode_to_caps_string")]
3622 pub fn to_caps_string(self) -> Option<glib::GString> {
3623 assert_initialized_main_thread!();
3624 unsafe {
3625 from_glib_none(ptr:ffi::gst_video_multiview_mode_to_caps_string(
3626 self.into_glib(),
3627 ))
3628 }
3629 }
3630}
3631
3632#[doc(hidden)]
3633impl IntoGlib for VideoMultiviewMode {
3634 type GlibType = ffi::GstVideoMultiviewMode;
3635
3636 fn into_glib(self) -> ffi::GstVideoMultiviewMode {
3637 match self {
3638 Self::None => ffi::GST_VIDEO_MULTIVIEW_MODE_NONE,
3639 Self::Mono => ffi::GST_VIDEO_MULTIVIEW_MODE_MONO,
3640 Self::Left => ffi::GST_VIDEO_MULTIVIEW_MODE_LEFT,
3641 Self::Right => ffi::GST_VIDEO_MULTIVIEW_MODE_RIGHT,
3642 Self::SideBySide => ffi::GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE,
3643 Self::SideBySideQuincunx => ffi::GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE_QUINCUNX,
3644 Self::ColumnInterleaved => ffi::GST_VIDEO_MULTIVIEW_MODE_COLUMN_INTERLEAVED,
3645 Self::RowInterleaved => ffi::GST_VIDEO_MULTIVIEW_MODE_ROW_INTERLEAVED,
3646 Self::TopBottom => ffi::GST_VIDEO_MULTIVIEW_MODE_TOP_BOTTOM,
3647 Self::Checkerboard => ffi::GST_VIDEO_MULTIVIEW_MODE_CHECKERBOARD,
3648 Self::FrameByFrame => ffi::GST_VIDEO_MULTIVIEW_MODE_FRAME_BY_FRAME,
3649 Self::MultiviewFrameByFrame => ffi::GST_VIDEO_MULTIVIEW_MODE_MULTIVIEW_FRAME_BY_FRAME,
3650 Self::Separated => ffi::GST_VIDEO_MULTIVIEW_MODE_SEPARATED,
3651 Self::__Unknown(value: i32) => value,
3652 }
3653 }
3654}
3655
3656#[doc(hidden)]
3657impl FromGlib<ffi::GstVideoMultiviewMode> for VideoMultiviewMode {
3658 unsafe fn from_glib(value: ffi::GstVideoMultiviewMode) -> Self {
3659 skip_assert_initialized!();
3660
3661 match value {
3662 ffi::GST_VIDEO_MULTIVIEW_MODE_NONE => Self::None,
3663 ffi::GST_VIDEO_MULTIVIEW_MODE_MONO => Self::Mono,
3664 ffi::GST_VIDEO_MULTIVIEW_MODE_LEFT => Self::Left,
3665 ffi::GST_VIDEO_MULTIVIEW_MODE_RIGHT => Self::Right,
3666 ffi::GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE => Self::SideBySide,
3667 ffi::GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE_QUINCUNX => Self::SideBySideQuincunx,
3668 ffi::GST_VIDEO_MULTIVIEW_MODE_COLUMN_INTERLEAVED => Self::ColumnInterleaved,
3669 ffi::GST_VIDEO_MULTIVIEW_MODE_ROW_INTERLEAVED => Self::RowInterleaved,
3670 ffi::GST_VIDEO_MULTIVIEW_MODE_TOP_BOTTOM => Self::TopBottom,
3671 ffi::GST_VIDEO_MULTIVIEW_MODE_CHECKERBOARD => Self::Checkerboard,
3672 ffi::GST_VIDEO_MULTIVIEW_MODE_FRAME_BY_FRAME => Self::FrameByFrame,
3673 ffi::GST_VIDEO_MULTIVIEW_MODE_MULTIVIEW_FRAME_BY_FRAME => Self::MultiviewFrameByFrame,
3674 ffi::GST_VIDEO_MULTIVIEW_MODE_SEPARATED => Self::Separated,
3675 value: i32 => Self::__Unknown(value),
3676 }
3677 }
3678}
3679
3680impl StaticType for VideoMultiviewMode {
3681 #[inline]
3682 #[doc(alias = "gst_video_multiview_mode_get_type")]
3683 fn static_type() -> glib::Type {
3684 unsafe { from_glib(val:ffi::gst_video_multiview_mode_get_type()) }
3685 }
3686}
3687
3688impl glib::HasParamSpec for VideoMultiviewMode {
3689 type ParamSpec = glib::ParamSpecEnum;
3690 type SetValue = Self;
3691 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3692
3693 fn param_spec_builder() -> Self::BuilderFn {
3694 Self::ParamSpec::builder_with_default
3695 }
3696}
3697
3698impl glib::value::ValueType for VideoMultiviewMode {
3699 type Type = Self;
3700}
3701
3702unsafe impl<'a> glib::value::FromValue<'a> for VideoMultiviewMode {
3703 type Checker = glib::value::GenericValueTypeChecker<Self>;
3704
3705 #[inline]
3706 unsafe fn from_value(value: &'a glib::Value) -> Self {
3707 skip_assert_initialized!();
3708 from_glib(val:glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3709 }
3710}
3711
3712impl ToValue for VideoMultiviewMode {
3713 #[inline]
3714 fn to_value(&self) -> glib::Value {
3715 let mut value: Value = glib::Value::for_value_type::<Self>();
3716 unsafe {
3717 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3718 }
3719 value
3720 }
3721
3722 #[inline]
3723 fn value_type(&self) -> glib::Type {
3724 Self::static_type()
3725 }
3726}
3727
3728impl From<VideoMultiviewMode> for glib::Value {
3729 #[inline]
3730 fn from(v: VideoMultiviewMode) -> Self {
3731 skip_assert_initialized!();
3732 ToValue::to_value(&v)
3733 }
3734}
3735
3736#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3737#[non_exhaustive]
3738#[doc(alias = "GstVideoOrientationMethod")]
3739pub enum VideoOrientationMethod {
3740 #[doc(alias = "GST_VIDEO_ORIENTATION_IDENTITY")]
3741 Identity,
3742 #[doc(alias = "GST_VIDEO_ORIENTATION_90R")]
3743 _90r,
3744 #[doc(alias = "GST_VIDEO_ORIENTATION_180")]
3745 _180,
3746 #[doc(alias = "GST_VIDEO_ORIENTATION_90L")]
3747 _90l,
3748 #[doc(alias = "GST_VIDEO_ORIENTATION_HORIZ")]
3749 Horiz,
3750 #[doc(alias = "GST_VIDEO_ORIENTATION_VERT")]
3751 Vert,
3752 #[doc(alias = "GST_VIDEO_ORIENTATION_UL_LR")]
3753 UlLr,
3754 #[doc(alias = "GST_VIDEO_ORIENTATION_UR_LL")]
3755 UrLl,
3756 #[doc(alias = "GST_VIDEO_ORIENTATION_AUTO")]
3757 Auto,
3758 #[doc(alias = "GST_VIDEO_ORIENTATION_CUSTOM")]
3759 Custom,
3760 #[doc(hidden)]
3761 __Unknown(i32),
3762}
3763
3764#[doc(hidden)]
3765impl IntoGlib for VideoOrientationMethod {
3766 type GlibType = ffi::GstVideoOrientationMethod;
3767
3768 #[inline]
3769 fn into_glib(self) -> ffi::GstVideoOrientationMethod {
3770 match self {
3771 Self::Identity => ffi::GST_VIDEO_ORIENTATION_IDENTITY,
3772 Self::_90r => ffi::GST_VIDEO_ORIENTATION_90R,
3773 Self::_180 => ffi::GST_VIDEO_ORIENTATION_180,
3774 Self::_90l => ffi::GST_VIDEO_ORIENTATION_90L,
3775 Self::Horiz => ffi::GST_VIDEO_ORIENTATION_HORIZ,
3776 Self::Vert => ffi::GST_VIDEO_ORIENTATION_VERT,
3777 Self::UlLr => ffi::GST_VIDEO_ORIENTATION_UL_LR,
3778 Self::UrLl => ffi::GST_VIDEO_ORIENTATION_UR_LL,
3779 Self::Auto => ffi::GST_VIDEO_ORIENTATION_AUTO,
3780 Self::Custom => ffi::GST_VIDEO_ORIENTATION_CUSTOM,
3781 Self::__Unknown(value: i32) => value,
3782 }
3783 }
3784}
3785
3786#[doc(hidden)]
3787impl FromGlib<ffi::GstVideoOrientationMethod> for VideoOrientationMethod {
3788 #[inline]
3789 unsafe fn from_glib(value: ffi::GstVideoOrientationMethod) -> Self {
3790 skip_assert_initialized!();
3791
3792 match value {
3793 ffi::GST_VIDEO_ORIENTATION_IDENTITY => Self::Identity,
3794 ffi::GST_VIDEO_ORIENTATION_90R => Self::_90r,
3795 ffi::GST_VIDEO_ORIENTATION_180 => Self::_180,
3796 ffi::GST_VIDEO_ORIENTATION_90L => Self::_90l,
3797 ffi::GST_VIDEO_ORIENTATION_HORIZ => Self::Horiz,
3798 ffi::GST_VIDEO_ORIENTATION_VERT => Self::Vert,
3799 ffi::GST_VIDEO_ORIENTATION_UL_LR => Self::UlLr,
3800 ffi::GST_VIDEO_ORIENTATION_UR_LL => Self::UrLl,
3801 ffi::GST_VIDEO_ORIENTATION_AUTO => Self::Auto,
3802 ffi::GST_VIDEO_ORIENTATION_CUSTOM => Self::Custom,
3803 value: i32 => Self::__Unknown(value),
3804 }
3805 }
3806}
3807
3808impl StaticType for VideoOrientationMethod {
3809 #[inline]
3810 #[doc(alias = "gst_video_orientation_method_get_type")]
3811 fn static_type() -> glib::Type {
3812 unsafe { from_glib(val:ffi::gst_video_orientation_method_get_type()) }
3813 }
3814}
3815
3816impl glib::HasParamSpec for VideoOrientationMethod {
3817 type ParamSpec = glib::ParamSpecEnum;
3818 type SetValue = Self;
3819 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3820
3821 fn param_spec_builder() -> Self::BuilderFn {
3822 Self::ParamSpec::builder_with_default
3823 }
3824}
3825
3826impl glib::value::ValueType for VideoOrientationMethod {
3827 type Type = Self;
3828}
3829
3830unsafe impl<'a> glib::value::FromValue<'a> for VideoOrientationMethod {
3831 type Checker = glib::value::GenericValueTypeChecker<Self>;
3832
3833 #[inline]
3834 unsafe fn from_value(value: &'a glib::Value) -> Self {
3835 skip_assert_initialized!();
3836 from_glib(val:glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3837 }
3838}
3839
3840impl ToValue for VideoOrientationMethod {
3841 #[inline]
3842 fn to_value(&self) -> glib::Value {
3843 let mut value: Value = glib::Value::for_value_type::<Self>();
3844 unsafe {
3845 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3846 }
3847 value
3848 }
3849
3850 #[inline]
3851 fn value_type(&self) -> glib::Type {
3852 Self::static_type()
3853 }
3854}
3855
3856impl From<VideoOrientationMethod> for glib::Value {
3857 #[inline]
3858 fn from(v: VideoOrientationMethod) -> Self {
3859 skip_assert_initialized!();
3860 ToValue::to_value(&v)
3861 }
3862}
3863
3864#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3865#[non_exhaustive]
3866#[doc(alias = "GstVideoPrimariesMode")]
3867pub enum VideoPrimariesMode {
3868 #[doc(alias = "GST_VIDEO_PRIMARIES_MODE_NONE")]
3869 None,
3870 #[doc(alias = "GST_VIDEO_PRIMARIES_MODE_MERGE_ONLY")]
3871 MergeOnly,
3872 #[doc(alias = "GST_VIDEO_PRIMARIES_MODE_FAST")]
3873 Fast,
3874 #[doc(hidden)]
3875 __Unknown(i32),
3876}
3877
3878#[doc(hidden)]
3879impl IntoGlib for VideoPrimariesMode {
3880 type GlibType = ffi::GstVideoPrimariesMode;
3881
3882 #[inline]
3883 fn into_glib(self) -> ffi::GstVideoPrimariesMode {
3884 match self {
3885 Self::None => ffi::GST_VIDEO_PRIMARIES_MODE_NONE,
3886 Self::MergeOnly => ffi::GST_VIDEO_PRIMARIES_MODE_MERGE_ONLY,
3887 Self::Fast => ffi::GST_VIDEO_PRIMARIES_MODE_FAST,
3888 Self::__Unknown(value: i32) => value,
3889 }
3890 }
3891}
3892
3893#[doc(hidden)]
3894impl FromGlib<ffi::GstVideoPrimariesMode> for VideoPrimariesMode {
3895 #[inline]
3896 unsafe fn from_glib(value: ffi::GstVideoPrimariesMode) -> Self {
3897 skip_assert_initialized!();
3898
3899 match value {
3900 ffi::GST_VIDEO_PRIMARIES_MODE_NONE => Self::None,
3901 ffi::GST_VIDEO_PRIMARIES_MODE_MERGE_ONLY => Self::MergeOnly,
3902 ffi::GST_VIDEO_PRIMARIES_MODE_FAST => Self::Fast,
3903 value: i32 => Self::__Unknown(value),
3904 }
3905 }
3906}
3907
3908impl StaticType for VideoPrimariesMode {
3909 #[inline]
3910 #[doc(alias = "gst_video_primaries_mode_get_type")]
3911 fn static_type() -> glib::Type {
3912 unsafe { from_glib(val:ffi::gst_video_primaries_mode_get_type()) }
3913 }
3914}
3915
3916impl glib::HasParamSpec for VideoPrimariesMode {
3917 type ParamSpec = glib::ParamSpecEnum;
3918 type SetValue = Self;
3919 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3920
3921 fn param_spec_builder() -> Self::BuilderFn {
3922 Self::ParamSpec::builder_with_default
3923 }
3924}
3925
3926impl glib::value::ValueType for VideoPrimariesMode {
3927 type Type = Self;
3928}
3929
3930unsafe impl<'a> glib::value::FromValue<'a> for VideoPrimariesMode {
3931 type Checker = glib::value::GenericValueTypeChecker<Self>;
3932
3933 #[inline]
3934 unsafe fn from_value(value: &'a glib::Value) -> Self {
3935 skip_assert_initialized!();
3936 from_glib(val:glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3937 }
3938}
3939
3940impl ToValue for VideoPrimariesMode {
3941 #[inline]
3942 fn to_value(&self) -> glib::Value {
3943 let mut value: Value = glib::Value::for_value_type::<Self>();
3944 unsafe {
3945 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3946 }
3947 value
3948 }
3949
3950 #[inline]
3951 fn value_type(&self) -> glib::Type {
3952 Self::static_type()
3953 }
3954}
3955
3956impl From<VideoPrimariesMode> for glib::Value {
3957 #[inline]
3958 fn from(v: VideoPrimariesMode) -> Self {
3959 skip_assert_initialized!();
3960 ToValue::to_value(&v)
3961 }
3962}
3963
3964#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3965#[non_exhaustive]
3966#[doc(alias = "GstVideoResamplerMethod")]
3967pub enum VideoResamplerMethod {
3968 #[doc(alias = "GST_VIDEO_RESAMPLER_METHOD_NEAREST")]
3969 Nearest,
3970 #[doc(alias = "GST_VIDEO_RESAMPLER_METHOD_LINEAR")]
3971 Linear,
3972 #[doc(alias = "GST_VIDEO_RESAMPLER_METHOD_CUBIC")]
3973 Cubic,
3974 #[doc(alias = "GST_VIDEO_RESAMPLER_METHOD_SINC")]
3975 Sinc,
3976 #[doc(alias = "GST_VIDEO_RESAMPLER_METHOD_LANCZOS")]
3977 Lanczos,
3978 #[doc(hidden)]
3979 __Unknown(i32),
3980}
3981
3982#[doc(hidden)]
3983impl IntoGlib for VideoResamplerMethod {
3984 type GlibType = ffi::GstVideoResamplerMethod;
3985
3986 #[inline]
3987 fn into_glib(self) -> ffi::GstVideoResamplerMethod {
3988 match self {
3989 Self::Nearest => ffi::GST_VIDEO_RESAMPLER_METHOD_NEAREST,
3990 Self::Linear => ffi::GST_VIDEO_RESAMPLER_METHOD_LINEAR,
3991 Self::Cubic => ffi::GST_VIDEO_RESAMPLER_METHOD_CUBIC,
3992 Self::Sinc => ffi::GST_VIDEO_RESAMPLER_METHOD_SINC,
3993 Self::Lanczos => ffi::GST_VIDEO_RESAMPLER_METHOD_LANCZOS,
3994 Self::__Unknown(value: i32) => value,
3995 }
3996 }
3997}
3998
3999#[doc(hidden)]
4000impl FromGlib<ffi::GstVideoResamplerMethod> for VideoResamplerMethod {
4001 #[inline]
4002 unsafe fn from_glib(value: ffi::GstVideoResamplerMethod) -> Self {
4003 skip_assert_initialized!();
4004
4005 match value {
4006 ffi::GST_VIDEO_RESAMPLER_METHOD_NEAREST => Self::Nearest,
4007 ffi::GST_VIDEO_RESAMPLER_METHOD_LINEAR => Self::Linear,
4008 ffi::GST_VIDEO_RESAMPLER_METHOD_CUBIC => Self::Cubic,
4009 ffi::GST_VIDEO_RESAMPLER_METHOD_SINC => Self::Sinc,
4010 ffi::GST_VIDEO_RESAMPLER_METHOD_LANCZOS => Self::Lanczos,
4011 value: i32 => Self::__Unknown(value),
4012 }
4013 }
4014}
4015
4016impl StaticType for VideoResamplerMethod {
4017 #[inline]
4018 #[doc(alias = "gst_video_resampler_method_get_type")]
4019 fn static_type() -> glib::Type {
4020 unsafe { from_glib(val:ffi::gst_video_resampler_method_get_type()) }
4021 }
4022}
4023
4024impl glib::HasParamSpec for VideoResamplerMethod {
4025 type ParamSpec = glib::ParamSpecEnum;
4026 type SetValue = Self;
4027 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4028
4029 fn param_spec_builder() -> Self::BuilderFn {
4030 Self::ParamSpec::builder_with_default
4031 }
4032}
4033
4034impl glib::value::ValueType for VideoResamplerMethod {
4035 type Type = Self;
4036}
4037
4038unsafe impl<'a> glib::value::FromValue<'a> for VideoResamplerMethod {
4039 type Checker = glib::value::GenericValueTypeChecker<Self>;
4040
4041 #[inline]
4042 unsafe fn from_value(value: &'a glib::Value) -> Self {
4043 skip_assert_initialized!();
4044 from_glib(val:glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4045 }
4046}
4047
4048impl ToValue for VideoResamplerMethod {
4049 #[inline]
4050 fn to_value(&self) -> glib::Value {
4051 let mut value: Value = glib::Value::for_value_type::<Self>();
4052 unsafe {
4053 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4054 }
4055 value
4056 }
4057
4058 #[inline]
4059 fn value_type(&self) -> glib::Type {
4060 Self::static_type()
4061 }
4062}
4063
4064impl From<VideoResamplerMethod> for glib::Value {
4065 #[inline]
4066 fn from(v: VideoResamplerMethod) -> Self {
4067 skip_assert_initialized!();
4068 ToValue::to_value(&v)
4069 }
4070}
4071
4072#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4073#[non_exhaustive]
4074#[doc(alias = "GstVideoTileMode")]
4075pub enum VideoTileMode {
4076 #[doc(alias = "GST_VIDEO_TILE_MODE_UNKNOWN")]
4077 Unknown,
4078 #[doc(alias = "GST_VIDEO_TILE_MODE_ZFLIPZ_2X2")]
4079 Zflipz2x2,
4080 #[cfg(feature = "v1_18")]
4081 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4082 #[doc(alias = "GST_VIDEO_TILE_MODE_LINEAR")]
4083 Linear,
4084 #[doc(hidden)]
4085 __Unknown(i32),
4086}
4087
4088#[doc(hidden)]
4089impl IntoGlib for VideoTileMode {
4090 type GlibType = ffi::GstVideoTileMode;
4091
4092 #[inline]
4093 fn into_glib(self) -> ffi::GstVideoTileMode {
4094 match self {
4095 Self::Unknown => ffi::GST_VIDEO_TILE_MODE_UNKNOWN,
4096 Self::Zflipz2x2 => ffi::GST_VIDEO_TILE_MODE_ZFLIPZ_2X2,
4097 #[cfg(feature = "v1_18")]
4098 Self::Linear => ffi::GST_VIDEO_TILE_MODE_LINEAR,
4099 Self::__Unknown(value: i32) => value,
4100 }
4101 }
4102}
4103
4104#[doc(hidden)]
4105impl FromGlib<ffi::GstVideoTileMode> for VideoTileMode {
4106 #[inline]
4107 unsafe fn from_glib(value: ffi::GstVideoTileMode) -> Self {
4108 skip_assert_initialized!();
4109
4110 match value {
4111 ffi::GST_VIDEO_TILE_MODE_UNKNOWN => Self::Unknown,
4112 ffi::GST_VIDEO_TILE_MODE_ZFLIPZ_2X2 => Self::Zflipz2x2,
4113 #[cfg(feature = "v1_18")]
4114 ffi::GST_VIDEO_TILE_MODE_LINEAR => Self::Linear,
4115 value: i32 => Self::__Unknown(value),
4116 }
4117 }
4118}
4119
4120impl StaticType for VideoTileMode {
4121 #[inline]
4122 #[doc(alias = "gst_video_tile_mode_get_type")]
4123 fn static_type() -> glib::Type {
4124 unsafe { from_glib(val:ffi::gst_video_tile_mode_get_type()) }
4125 }
4126}
4127
4128impl glib::HasParamSpec for VideoTileMode {
4129 type ParamSpec = glib::ParamSpecEnum;
4130 type SetValue = Self;
4131 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4132
4133 fn param_spec_builder() -> Self::BuilderFn {
4134 Self::ParamSpec::builder_with_default
4135 }
4136}
4137
4138impl glib::value::ValueType for VideoTileMode {
4139 type Type = Self;
4140}
4141
4142unsafe impl<'a> glib::value::FromValue<'a> for VideoTileMode {
4143 type Checker = glib::value::GenericValueTypeChecker<Self>;
4144
4145 #[inline]
4146 unsafe fn from_value(value: &'a glib::Value) -> Self {
4147 skip_assert_initialized!();
4148 from_glib(val:glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4149 }
4150}
4151
4152impl ToValue for VideoTileMode {
4153 #[inline]
4154 fn to_value(&self) -> glib::Value {
4155 let mut value: Value = glib::Value::for_value_type::<Self>();
4156 unsafe {
4157 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4158 }
4159 value
4160 }
4161
4162 #[inline]
4163 fn value_type(&self) -> glib::Type {
4164 Self::static_type()
4165 }
4166}
4167
4168impl From<VideoTileMode> for glib::Value {
4169 #[inline]
4170 fn from(v: VideoTileMode) -> Self {
4171 skip_assert_initialized!();
4172 ToValue::to_value(&v)
4173 }
4174}
4175
4176#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4177#[non_exhaustive]
4178#[doc(alias = "GstVideoTransferFunction")]
4179pub enum VideoTransferFunction {
4180 #[doc(alias = "GST_VIDEO_TRANSFER_UNKNOWN")]
4181 Unknown,
4182 #[doc(alias = "GST_VIDEO_TRANSFER_GAMMA10")]
4183 Gamma10,
4184 #[doc(alias = "GST_VIDEO_TRANSFER_GAMMA18")]
4185 Gamma18,
4186 #[doc(alias = "GST_VIDEO_TRANSFER_GAMMA20")]
4187 Gamma20,
4188 #[doc(alias = "GST_VIDEO_TRANSFER_GAMMA22")]
4189 Gamma22,
4190 #[doc(alias = "GST_VIDEO_TRANSFER_BT709")]
4191 Bt709,
4192 #[doc(alias = "GST_VIDEO_TRANSFER_SMPTE240M")]
4193 Smpte240m,
4194 #[doc(alias = "GST_VIDEO_TRANSFER_SRGB")]
4195 Srgb,
4196 #[doc(alias = "GST_VIDEO_TRANSFER_GAMMA28")]
4197 Gamma28,
4198 #[doc(alias = "GST_VIDEO_TRANSFER_LOG100")]
4199 Log100,
4200 #[doc(alias = "GST_VIDEO_TRANSFER_LOG316")]
4201 Log316,
4202 #[doc(alias = "GST_VIDEO_TRANSFER_BT2020_12")]
4203 Bt202012,
4204 #[doc(alias = "GST_VIDEO_TRANSFER_ADOBERGB")]
4205 Adobergb,
4206 #[cfg(feature = "v1_18")]
4207 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4208 #[doc(alias = "GST_VIDEO_TRANSFER_BT2020_10")]
4209 Bt202010,
4210 #[cfg(feature = "v1_18")]
4211 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4212 #[doc(alias = "GST_VIDEO_TRANSFER_SMPTE2084")]
4213 Smpte2084,
4214 #[cfg(feature = "v1_18")]
4215 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4216 #[doc(alias = "GST_VIDEO_TRANSFER_ARIB_STD_B67")]
4217 AribStdB67,
4218 #[cfg(feature = "v1_18")]
4219 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4220 #[doc(alias = "GST_VIDEO_TRANSFER_BT601")]
4221 Bt601,
4222 #[doc(hidden)]
4223 __Unknown(i32),
4224}
4225
4226impl VideoTransferFunction {
4227 #[cfg(feature = "v1_20")]
4228 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
4229 #[doc(alias = "gst_video_transfer_function_decode")]
4230 pub fn decode(self, val: f64) -> f64 {
4231 assert_initialized_main_thread!();
4232 unsafe { ffi::gst_video_transfer_function_decode(self.into_glib(), val) }
4233 }
4234
4235 #[cfg(feature = "v1_20")]
4236 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
4237 #[doc(alias = "gst_video_transfer_function_encode")]
4238 pub fn encode(self, val: f64) -> f64 {
4239 assert_initialized_main_thread!();
4240 unsafe { ffi::gst_video_transfer_function_encode(self.into_glib(), val) }
4241 }
4242
4243 #[cfg(feature = "v1_18")]
4244 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4245 #[doc(alias = "gst_video_transfer_function_from_iso")]
4246 pub fn from_iso(value: u32) -> VideoTransferFunction {
4247 assert_initialized_main_thread!();
4248 unsafe { from_glib(ffi::gst_video_transfer_function_from_iso(value)) }
4249 }
4250
4251 #[cfg(feature = "v1_18")]
4252 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4253 #[doc(alias = "gst_video_transfer_function_is_equivalent")]
4254 pub fn is_equivalent(self, from_bpp: u32, to_func: VideoTransferFunction, to_bpp: u32) -> bool {
4255 assert_initialized_main_thread!();
4256 unsafe {
4257 from_glib(ffi::gst_video_transfer_function_is_equivalent(
4258 self.into_glib(),
4259 from_bpp,
4260 to_func.into_glib(),
4261 to_bpp,
4262 ))
4263 }
4264 }
4265
4266 #[cfg(feature = "v1_18")]
4267 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4268 #[doc(alias = "gst_video_transfer_function_to_iso")]
4269 pub fn to_iso(self) -> u32 {
4270 assert_initialized_main_thread!();
4271 unsafe { ffi::gst_video_transfer_function_to_iso(self.into_glib()) }
4272 }
4273}
4274
4275#[doc(hidden)]
4276impl IntoGlib for VideoTransferFunction {
4277 type GlibType = ffi::GstVideoTransferFunction;
4278
4279 fn into_glib(self) -> ffi::GstVideoTransferFunction {
4280 match self {
4281 Self::Unknown => ffi::GST_VIDEO_TRANSFER_UNKNOWN,
4282 Self::Gamma10 => ffi::GST_VIDEO_TRANSFER_GAMMA10,
4283 Self::Gamma18 => ffi::GST_VIDEO_TRANSFER_GAMMA18,
4284 Self::Gamma20 => ffi::GST_VIDEO_TRANSFER_GAMMA20,
4285 Self::Gamma22 => ffi::GST_VIDEO_TRANSFER_GAMMA22,
4286 Self::Bt709 => ffi::GST_VIDEO_TRANSFER_BT709,
4287 Self::Smpte240m => ffi::GST_VIDEO_TRANSFER_SMPTE240M,
4288 Self::Srgb => ffi::GST_VIDEO_TRANSFER_SRGB,
4289 Self::Gamma28 => ffi::GST_VIDEO_TRANSFER_GAMMA28,
4290 Self::Log100 => ffi::GST_VIDEO_TRANSFER_LOG100,
4291 Self::Log316 => ffi::GST_VIDEO_TRANSFER_LOG316,
4292 Self::Bt202012 => ffi::GST_VIDEO_TRANSFER_BT2020_12,
4293 Self::Adobergb => ffi::GST_VIDEO_TRANSFER_ADOBERGB,
4294 #[cfg(feature = "v1_18")]
4295 Self::Bt202010 => ffi::GST_VIDEO_TRANSFER_BT2020_10,
4296 #[cfg(feature = "v1_18")]
4297 Self::Smpte2084 => ffi::GST_VIDEO_TRANSFER_SMPTE2084,
4298 #[cfg(feature = "v1_18")]
4299 Self::AribStdB67 => ffi::GST_VIDEO_TRANSFER_ARIB_STD_B67,
4300 #[cfg(feature = "v1_18")]
4301 Self::Bt601 => ffi::GST_VIDEO_TRANSFER_BT601,
4302 Self::__Unknown(value) => value,
4303 }
4304 }
4305}
4306
4307#[doc(hidden)]
4308impl FromGlib<ffi::GstVideoTransferFunction> for VideoTransferFunction {
4309 unsafe fn from_glib(value: ffi::GstVideoTransferFunction) -> Self {
4310 skip_assert_initialized!();
4311
4312 match value {
4313 ffi::GST_VIDEO_TRANSFER_UNKNOWN => Self::Unknown,
4314 ffi::GST_VIDEO_TRANSFER_GAMMA10 => Self::Gamma10,
4315 ffi::GST_VIDEO_TRANSFER_GAMMA18 => Self::Gamma18,
4316 ffi::GST_VIDEO_TRANSFER_GAMMA20 => Self::Gamma20,
4317 ffi::GST_VIDEO_TRANSFER_GAMMA22 => Self::Gamma22,
4318 ffi::GST_VIDEO_TRANSFER_BT709 => Self::Bt709,
4319 ffi::GST_VIDEO_TRANSFER_SMPTE240M => Self::Smpte240m,
4320 ffi::GST_VIDEO_TRANSFER_SRGB => Self::Srgb,
4321 ffi::GST_VIDEO_TRANSFER_GAMMA28 => Self::Gamma28,
4322 ffi::GST_VIDEO_TRANSFER_LOG100 => Self::Log100,
4323 ffi::GST_VIDEO_TRANSFER_LOG316 => Self::Log316,
4324 ffi::GST_VIDEO_TRANSFER_BT2020_12 => Self::Bt202012,
4325 ffi::GST_VIDEO_TRANSFER_ADOBERGB => Self::Adobergb,
4326 #[cfg(feature = "v1_18")]
4327 ffi::GST_VIDEO_TRANSFER_BT2020_10 => Self::Bt202010,
4328 #[cfg(feature = "v1_18")]
4329 ffi::GST_VIDEO_TRANSFER_SMPTE2084 => Self::Smpte2084,
4330 #[cfg(feature = "v1_18")]
4331 ffi::GST_VIDEO_TRANSFER_ARIB_STD_B67 => Self::AribStdB67,
4332 #[cfg(feature = "v1_18")]
4333 ffi::GST_VIDEO_TRANSFER_BT601 => Self::Bt601,
4334 value => Self::__Unknown(value),
4335 }
4336 }
4337}
4338
4339impl StaticType for VideoTransferFunction {
4340 #[inline]
4341 #[doc(alias = "gst_video_transfer_function_get_type")]
4342 fn static_type() -> glib::Type {
4343 unsafe { from_glib(val:ffi::gst_video_transfer_function_get_type()) }
4344 }
4345}
4346
4347impl glib::HasParamSpec for VideoTransferFunction {
4348 type ParamSpec = glib::ParamSpecEnum;
4349 type SetValue = Self;
4350 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4351
4352 fn param_spec_builder() -> Self::BuilderFn {
4353 Self::ParamSpec::builder_with_default
4354 }
4355}
4356
4357impl glib::value::ValueType for VideoTransferFunction {
4358 type Type = Self;
4359}
4360
4361unsafe impl<'a> glib::value::FromValue<'a> for VideoTransferFunction {
4362 type Checker = glib::value::GenericValueTypeChecker<Self>;
4363
4364 #[inline]
4365 unsafe fn from_value(value: &'a glib::Value) -> Self {
4366 skip_assert_initialized!();
4367 from_glib(val:glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4368 }
4369}
4370
4371impl ToValue for VideoTransferFunction {
4372 #[inline]
4373 fn to_value(&self) -> glib::Value {
4374 let mut value: Value = glib::Value::for_value_type::<Self>();
4375 unsafe {
4376 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4377 }
4378 value
4379 }
4380
4381 #[inline]
4382 fn value_type(&self) -> glib::Type {
4383 Self::static_type()
4384 }
4385}
4386
4387impl From<VideoTransferFunction> for glib::Value {
4388 #[inline]
4389 fn from(v: VideoTransferFunction) -> Self {
4390 skip_assert_initialized!();
4391 ToValue::to_value(&v)
4392 }
4393}
4394