1use crate::ffi;
7use glib::{GStr, prelude::*, translate::*};
8
9#[cfg(feature = "v1_24")]
11#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
12#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
13#[non_exhaustive]
14#[doc(alias = "GstAncillaryMetaField")]
15pub enum AncillaryMetaField {
16 #[doc(alias = "GST_ANCILLARY_META_FIELD_PROGRESSIVE")]
18 Progressive,
19 #[doc(alias = "GST_ANCILLARY_META_FIELD_INTERLACED_FIRST")]
21 InterlacedFirst,
22 #[doc(alias = "GST_ANCILLARY_META_FIELD_INTERLACED_SECOND")]
24 InterlacedSecond,
25 #[doc(hidden)]
26 __Unknown(i32),
27}
28
29#[cfg(feature = "v1_24")]
30#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
31#[doc(hidden)]
32impl IntoGlib for AncillaryMetaField {
33 type GlibType = ffi::GstAncillaryMetaField;
34
35 #[inline]
36 fn into_glib(self) -> ffi::GstAncillaryMetaField {
37 match self {
38 Self::Progressive => ffi::GST_ANCILLARY_META_FIELD_PROGRESSIVE,
39 Self::InterlacedFirst => ffi::GST_ANCILLARY_META_FIELD_INTERLACED_FIRST,
40 Self::InterlacedSecond => ffi::GST_ANCILLARY_META_FIELD_INTERLACED_SECOND,
41 Self::__Unknown(value) => value,
42 }
43 }
44}
45
46#[cfg(feature = "v1_24")]
47#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
48#[doc(hidden)]
49impl FromGlib<ffi::GstAncillaryMetaField> for AncillaryMetaField {
50 #[inline]
51 unsafe fn from_glib(value: ffi::GstAncillaryMetaField) -> Self {
52 skip_assert_initialized!();
53
54 match value {
55 ffi::GST_ANCILLARY_META_FIELD_PROGRESSIVE => Self::Progressive,
56 ffi::GST_ANCILLARY_META_FIELD_INTERLACED_FIRST => Self::InterlacedFirst,
57 ffi::GST_ANCILLARY_META_FIELD_INTERLACED_SECOND => Self::InterlacedSecond,
58 value => Self::__Unknown(value),
59 }
60 }
61}
62
63#[cfg(feature = "v1_24")]
64#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
65impl StaticType for AncillaryMetaField {
66 #[inline]
67 #[doc(alias = "gst_ancillary_meta_field_get_type")]
68 fn static_type() -> glib::Type {
69 unsafe { from_glib(ffi::gst_ancillary_meta_field_get_type()) }
70 }
71}
72
73#[cfg(feature = "v1_24")]
74#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
75impl glib::HasParamSpec for AncillaryMetaField {
76 type ParamSpec = glib::ParamSpecEnum;
77 type SetValue = Self;
78 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
79
80 fn param_spec_builder() -> Self::BuilderFn {
81 Self::ParamSpec::builder_with_default
82 }
83}
84
85#[cfg(feature = "v1_24")]
86#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
87impl glib::value::ValueType for AncillaryMetaField {
88 type Type = Self;
89}
90
91#[cfg(feature = "v1_24")]
92#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
93unsafe impl<'a> glib::value::FromValue<'a> for AncillaryMetaField {
94 type Checker = glib::value::GenericValueTypeChecker<Self>;
95
96 #[inline]
97 unsafe fn from_value(value: &'a glib::Value) -> Self {
98 skip_assert_initialized!();
99 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
100 }
101}
102
103#[cfg(feature = "v1_24")]
104#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
105impl ToValue for AncillaryMetaField {
106 #[inline]
107 fn to_value(&self) -> glib::Value {
108 let mut value = glib::Value::for_value_type::<Self>();
109 unsafe {
110 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
111 }
112 value
113 }
114
115 #[inline]
116 fn value_type(&self) -> glib::Type {
117 Self::static_type()
118 }
119}
120
121#[cfg(feature = "v1_24")]
122#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
123impl From<AncillaryMetaField> for glib::Value {
124 #[inline]
125 fn from(v: AncillaryMetaField) -> Self {
126 skip_assert_initialized!();
127 ToValue::to_value(&v)
128 }
129}
130
131#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
136#[non_exhaustive]
137#[doc(alias = "GstColorBalanceType")]
138pub enum ColorBalanceType {
139 #[doc(alias = "GST_COLOR_BALANCE_HARDWARE")]
142 Hardware,
143 #[doc(alias = "GST_COLOR_BALANCE_SOFTWARE")]
146 Software,
147 #[doc(hidden)]
148 __Unknown(i32),
149}
150
151#[doc(hidden)]
152impl IntoGlib for ColorBalanceType {
153 type GlibType = ffi::GstColorBalanceType;
154
155 #[inline]
156 fn into_glib(self) -> ffi::GstColorBalanceType {
157 match self {
158 Self::Hardware => ffi::GST_COLOR_BALANCE_HARDWARE,
159 Self::Software => ffi::GST_COLOR_BALANCE_SOFTWARE,
160 Self::__Unknown(value) => value,
161 }
162 }
163}
164
165#[doc(hidden)]
166impl FromGlib<ffi::GstColorBalanceType> for ColorBalanceType {
167 #[inline]
168 unsafe fn from_glib(value: ffi::GstColorBalanceType) -> Self {
169 skip_assert_initialized!();
170
171 match value {
172 ffi::GST_COLOR_BALANCE_HARDWARE => Self::Hardware,
173 ffi::GST_COLOR_BALANCE_SOFTWARE => Self::Software,
174 value => Self::__Unknown(value),
175 }
176 }
177}
178
179impl StaticType for ColorBalanceType {
180 #[inline]
181 #[doc(alias = "gst_color_balance_type_get_type")]
182 fn static_type() -> glib::Type {
183 unsafe { from_glib(ffi::gst_color_balance_type_get_type()) }
184 }
185}
186
187impl glib::HasParamSpec for ColorBalanceType {
188 type ParamSpec = glib::ParamSpecEnum;
189 type SetValue = Self;
190 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
191
192 fn param_spec_builder() -> Self::BuilderFn {
193 Self::ParamSpec::builder_with_default
194 }
195}
196
197impl glib::value::ValueType for ColorBalanceType {
198 type Type = Self;
199}
200
201unsafe impl<'a> glib::value::FromValue<'a> for ColorBalanceType {
202 type Checker = glib::value::GenericValueTypeChecker<Self>;
203
204 #[inline]
205 unsafe fn from_value(value: &'a glib::Value) -> Self {
206 skip_assert_initialized!();
207 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
208 }
209}
210
211impl ToValue for ColorBalanceType {
212 #[inline]
213 fn to_value(&self) -> glib::Value {
214 let mut value = glib::Value::for_value_type::<Self>();
215 unsafe {
216 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
217 }
218 value
219 }
220
221 #[inline]
222 fn value_type(&self) -> glib::Type {
223 Self::static_type()
224 }
225}
226
227impl From<ColorBalanceType> for glib::Value {
228 #[inline]
229 fn from(v: ColorBalanceType) -> Self {
230 skip_assert_initialized!();
231 ToValue::to_value(&v)
232 }
233}
234
235#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
248#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
249#[non_exhaustive]
250#[doc(alias = "GstNavigationCommand")]
251pub enum NavigationCommand {
252 #[doc(alias = "GST_NAVIGATION_COMMAND_INVALID")]
254 Invalid,
255 #[doc(alias = "GST_NAVIGATION_COMMAND_MENU1")]
258 Menu1,
259 #[doc(alias = "GST_NAVIGATION_COMMAND_MENU2")]
262 Menu2,
263 #[doc(alias = "GST_NAVIGATION_COMMAND_MENU3")]
266 Menu3,
267 #[doc(alias = "GST_NAVIGATION_COMMAND_MENU4")]
270 Menu4,
271 #[doc(alias = "GST_NAVIGATION_COMMAND_MENU5")]
274 Menu5,
275 #[doc(alias = "GST_NAVIGATION_COMMAND_MENU6")]
278 Menu6,
279 #[doc(alias = "GST_NAVIGATION_COMMAND_MENU7")]
282 Menu7,
283 #[doc(alias = "GST_NAVIGATION_COMMAND_LEFT")]
286 Left,
287 #[doc(alias = "GST_NAVIGATION_COMMAND_RIGHT")]
290 Right,
291 #[doc(alias = "GST_NAVIGATION_COMMAND_UP")]
294 Up,
295 #[doc(alias = "GST_NAVIGATION_COMMAND_DOWN")]
298 Down,
299 #[doc(alias = "GST_NAVIGATION_COMMAND_ACTIVATE")]
302 Activate,
303 #[doc(alias = "GST_NAVIGATION_COMMAND_PREV_ANGLE")]
306 PrevAngle,
307 #[doc(alias = "GST_NAVIGATION_COMMAND_NEXT_ANGLE")]
310 NextAngle,
311 #[doc(hidden)]
312 __Unknown(i32),
313}
314
315#[doc(hidden)]
316impl IntoGlib for NavigationCommand {
317 type GlibType = ffi::GstNavigationCommand;
318
319 fn into_glib(self) -> ffi::GstNavigationCommand {
320 match self {
321 Self::Invalid => ffi::GST_NAVIGATION_COMMAND_INVALID,
322 Self::Menu1 => ffi::GST_NAVIGATION_COMMAND_MENU1,
323 Self::Menu2 => ffi::GST_NAVIGATION_COMMAND_MENU2,
324 Self::Menu3 => ffi::GST_NAVIGATION_COMMAND_MENU3,
325 Self::Menu4 => ffi::GST_NAVIGATION_COMMAND_MENU4,
326 Self::Menu5 => ffi::GST_NAVIGATION_COMMAND_MENU5,
327 Self::Menu6 => ffi::GST_NAVIGATION_COMMAND_MENU6,
328 Self::Menu7 => ffi::GST_NAVIGATION_COMMAND_MENU7,
329 Self::Left => ffi::GST_NAVIGATION_COMMAND_LEFT,
330 Self::Right => ffi::GST_NAVIGATION_COMMAND_RIGHT,
331 Self::Up => ffi::GST_NAVIGATION_COMMAND_UP,
332 Self::Down => ffi::GST_NAVIGATION_COMMAND_DOWN,
333 Self::Activate => ffi::GST_NAVIGATION_COMMAND_ACTIVATE,
334 Self::PrevAngle => ffi::GST_NAVIGATION_COMMAND_PREV_ANGLE,
335 Self::NextAngle => ffi::GST_NAVIGATION_COMMAND_NEXT_ANGLE,
336 Self::__Unknown(value) => value,
337 }
338 }
339}
340
341#[doc(hidden)]
342impl FromGlib<ffi::GstNavigationCommand> for NavigationCommand {
343 unsafe fn from_glib(value: ffi::GstNavigationCommand) -> Self {
344 skip_assert_initialized!();
345
346 match value {
347 ffi::GST_NAVIGATION_COMMAND_INVALID => Self::Invalid,
348 ffi::GST_NAVIGATION_COMMAND_MENU1 => Self::Menu1,
349 ffi::GST_NAVIGATION_COMMAND_MENU2 => Self::Menu2,
350 ffi::GST_NAVIGATION_COMMAND_MENU3 => Self::Menu3,
351 ffi::GST_NAVIGATION_COMMAND_MENU4 => Self::Menu4,
352 ffi::GST_NAVIGATION_COMMAND_MENU5 => Self::Menu5,
353 ffi::GST_NAVIGATION_COMMAND_MENU6 => Self::Menu6,
354 ffi::GST_NAVIGATION_COMMAND_MENU7 => Self::Menu7,
355 ffi::GST_NAVIGATION_COMMAND_LEFT => Self::Left,
356 ffi::GST_NAVIGATION_COMMAND_RIGHT => Self::Right,
357 ffi::GST_NAVIGATION_COMMAND_UP => Self::Up,
358 ffi::GST_NAVIGATION_COMMAND_DOWN => Self::Down,
359 ffi::GST_NAVIGATION_COMMAND_ACTIVATE => Self::Activate,
360 ffi::GST_NAVIGATION_COMMAND_PREV_ANGLE => Self::PrevAngle,
361 ffi::GST_NAVIGATION_COMMAND_NEXT_ANGLE => Self::NextAngle,
362 value => Self::__Unknown(value),
363 }
364 }
365}
366
367impl StaticType for NavigationCommand {
368 #[inline]
369 #[doc(alias = "gst_navigation_command_get_type")]
370 fn static_type() -> glib::Type {
371 unsafe { from_glib(ffi::gst_navigation_command_get_type()) }
372 }
373}
374
375impl glib::HasParamSpec for NavigationCommand {
376 type ParamSpec = glib::ParamSpecEnum;
377 type SetValue = Self;
378 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
379
380 fn param_spec_builder() -> Self::BuilderFn {
381 Self::ParamSpec::builder_with_default
382 }
383}
384
385impl glib::value::ValueType for NavigationCommand {
386 type Type = Self;
387}
388
389unsafe impl<'a> glib::value::FromValue<'a> for NavigationCommand {
390 type Checker = glib::value::GenericValueTypeChecker<Self>;
391
392 #[inline]
393 unsafe fn from_value(value: &'a glib::Value) -> Self {
394 skip_assert_initialized!();
395 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
396 }
397}
398
399impl ToValue for NavigationCommand {
400 #[inline]
401 fn to_value(&self) -> glib::Value {
402 let mut value = glib::Value::for_value_type::<Self>();
403 unsafe {
404 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
405 }
406 value
407 }
408
409 #[inline]
410 fn value_type(&self) -> glib::Type {
411 Self::static_type()
412 }
413}
414
415impl From<NavigationCommand> for glib::Value {
416 #[inline]
417 fn from(v: NavigationCommand) -> Self {
418 skip_assert_initialized!();
419 ToValue::to_value(&v)
420 }
421}
422
423#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
427#[non_exhaustive]
428#[doc(alias = "GstNavigationEventType")]
429pub enum NavigationEventType {
430 #[doc(alias = "GST_NAVIGATION_EVENT_INVALID")]
433 Invalid,
434 #[doc(alias = "GST_NAVIGATION_EVENT_KEY_PRESS")]
437 KeyPress,
438 #[doc(alias = "GST_NAVIGATION_EVENT_KEY_RELEASE")]
441 KeyRelease,
442 #[doc(alias = "GST_NAVIGATION_EVENT_MOUSE_BUTTON_PRESS")]
446 MouseButtonPress,
447 #[doc(alias = "GST_NAVIGATION_EVENT_MOUSE_BUTTON_RELEASE")]
451 MouseButtonRelease,
452 #[doc(alias = "GST_NAVIGATION_EVENT_MOUSE_MOVE")]
456 MouseMove,
457 #[doc(alias = "GST_NAVIGATION_EVENT_COMMAND")]
460 Command,
461 #[cfg(feature = "v1_18")]
464 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
465 #[doc(alias = "GST_NAVIGATION_EVENT_MOUSE_SCROLL")]
466 MouseScroll,
467 #[cfg(feature = "v1_22")]
472 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
473 #[doc(alias = "GST_NAVIGATION_EVENT_TOUCH_DOWN")]
474 TouchDown,
475 #[cfg(feature = "v1_22")]
479 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
480 #[doc(alias = "GST_NAVIGATION_EVENT_TOUCH_MOTION")]
481 TouchMotion,
482 #[cfg(feature = "v1_22")]
487 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
488 #[doc(alias = "GST_NAVIGATION_EVENT_TOUCH_UP")]
489 TouchUp,
490 #[cfg(feature = "v1_22")]
492 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
493 #[doc(alias = "GST_NAVIGATION_EVENT_TOUCH_FRAME")]
494 TouchFrame,
495 #[cfg(feature = "v1_22")]
497 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
498 #[doc(alias = "GST_NAVIGATION_EVENT_TOUCH_CANCEL")]
499 TouchCancel,
500 #[cfg(feature = "v1_26")]
504 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
505 #[doc(alias = "GST_NAVIGATION_EVENT_MOUSE_DOUBLE_CLICK")]
506 MouseDoubleClick,
507 #[doc(hidden)]
508 __Unknown(i32),
509}
510
511#[doc(hidden)]
512impl IntoGlib for NavigationEventType {
513 type GlibType = ffi::GstNavigationEventType;
514
515 fn into_glib(self) -> ffi::GstNavigationEventType {
516 match self {
517 Self::Invalid => ffi::GST_NAVIGATION_EVENT_INVALID,
518 Self::KeyPress => ffi::GST_NAVIGATION_EVENT_KEY_PRESS,
519 Self::KeyRelease => ffi::GST_NAVIGATION_EVENT_KEY_RELEASE,
520 Self::MouseButtonPress => ffi::GST_NAVIGATION_EVENT_MOUSE_BUTTON_PRESS,
521 Self::MouseButtonRelease => ffi::GST_NAVIGATION_EVENT_MOUSE_BUTTON_RELEASE,
522 Self::MouseMove => ffi::GST_NAVIGATION_EVENT_MOUSE_MOVE,
523 Self::Command => ffi::GST_NAVIGATION_EVENT_COMMAND,
524 #[cfg(feature = "v1_18")]
525 Self::MouseScroll => ffi::GST_NAVIGATION_EVENT_MOUSE_SCROLL,
526 #[cfg(feature = "v1_22")]
527 Self::TouchDown => ffi::GST_NAVIGATION_EVENT_TOUCH_DOWN,
528 #[cfg(feature = "v1_22")]
529 Self::TouchMotion => ffi::GST_NAVIGATION_EVENT_TOUCH_MOTION,
530 #[cfg(feature = "v1_22")]
531 Self::TouchUp => ffi::GST_NAVIGATION_EVENT_TOUCH_UP,
532 #[cfg(feature = "v1_22")]
533 Self::TouchFrame => ffi::GST_NAVIGATION_EVENT_TOUCH_FRAME,
534 #[cfg(feature = "v1_22")]
535 Self::TouchCancel => ffi::GST_NAVIGATION_EVENT_TOUCH_CANCEL,
536 #[cfg(feature = "v1_26")]
537 Self::MouseDoubleClick => ffi::GST_NAVIGATION_EVENT_MOUSE_DOUBLE_CLICK,
538 Self::__Unknown(value) => value,
539 }
540 }
541}
542
543#[doc(hidden)]
544impl FromGlib<ffi::GstNavigationEventType> for NavigationEventType {
545 unsafe fn from_glib(value: ffi::GstNavigationEventType) -> Self {
546 skip_assert_initialized!();
547
548 match value {
549 ffi::GST_NAVIGATION_EVENT_INVALID => Self::Invalid,
550 ffi::GST_NAVIGATION_EVENT_KEY_PRESS => Self::KeyPress,
551 ffi::GST_NAVIGATION_EVENT_KEY_RELEASE => Self::KeyRelease,
552 ffi::GST_NAVIGATION_EVENT_MOUSE_BUTTON_PRESS => Self::MouseButtonPress,
553 ffi::GST_NAVIGATION_EVENT_MOUSE_BUTTON_RELEASE => Self::MouseButtonRelease,
554 ffi::GST_NAVIGATION_EVENT_MOUSE_MOVE => Self::MouseMove,
555 ffi::GST_NAVIGATION_EVENT_COMMAND => Self::Command,
556 #[cfg(feature = "v1_18")]
557 ffi::GST_NAVIGATION_EVENT_MOUSE_SCROLL => Self::MouseScroll,
558 #[cfg(feature = "v1_22")]
559 ffi::GST_NAVIGATION_EVENT_TOUCH_DOWN => Self::TouchDown,
560 #[cfg(feature = "v1_22")]
561 ffi::GST_NAVIGATION_EVENT_TOUCH_MOTION => Self::TouchMotion,
562 #[cfg(feature = "v1_22")]
563 ffi::GST_NAVIGATION_EVENT_TOUCH_UP => Self::TouchUp,
564 #[cfg(feature = "v1_22")]
565 ffi::GST_NAVIGATION_EVENT_TOUCH_FRAME => Self::TouchFrame,
566 #[cfg(feature = "v1_22")]
567 ffi::GST_NAVIGATION_EVENT_TOUCH_CANCEL => Self::TouchCancel,
568 #[cfg(feature = "v1_26")]
569 ffi::GST_NAVIGATION_EVENT_MOUSE_DOUBLE_CLICK => Self::MouseDoubleClick,
570 value => Self::__Unknown(value),
571 }
572 }
573}
574
575impl StaticType for NavigationEventType {
576 #[inline]
577 #[doc(alias = "gst_navigation_event_type_get_type")]
578 fn static_type() -> glib::Type {
579 unsafe { from_glib(ffi::gst_navigation_event_type_get_type()) }
580 }
581}
582
583impl glib::HasParamSpec for NavigationEventType {
584 type ParamSpec = glib::ParamSpecEnum;
585 type SetValue = Self;
586 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
587
588 fn param_spec_builder() -> Self::BuilderFn {
589 Self::ParamSpec::builder_with_default
590 }
591}
592
593impl glib::value::ValueType for NavigationEventType {
594 type Type = Self;
595}
596
597unsafe impl<'a> glib::value::FromValue<'a> for NavigationEventType {
598 type Checker = glib::value::GenericValueTypeChecker<Self>;
599
600 #[inline]
601 unsafe fn from_value(value: &'a glib::Value) -> Self {
602 skip_assert_initialized!();
603 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
604 }
605}
606
607impl ToValue for NavigationEventType {
608 #[inline]
609 fn to_value(&self) -> glib::Value {
610 let mut value = glib::Value::for_value_type::<Self>();
611 unsafe {
612 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
613 }
614 value
615 }
616
617 #[inline]
618 fn value_type(&self) -> glib::Type {
619 Self::static_type()
620 }
621}
622
623impl From<NavigationEventType> for glib::Value {
624 #[inline]
625 fn from(v: NavigationEventType) -> Self {
626 skip_assert_initialized!();
627 ToValue::to_value(&v)
628 }
629}
630
631#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
634#[non_exhaustive]
635#[doc(alias = "GstNavigationMessageType")]
636pub enum NavigationMessageType {
637 #[doc(alias = "GST_NAVIGATION_MESSAGE_INVALID")]
641 Invalid,
642 #[doc(alias = "GST_NAVIGATION_MESSAGE_MOUSE_OVER")]
645 MouseOver,
646 #[doc(alias = "GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED")]
649 CommandsChanged,
650 #[doc(alias = "GST_NAVIGATION_MESSAGE_ANGLES_CHANGED")]
654 AnglesChanged,
655 #[doc(alias = "GST_NAVIGATION_MESSAGE_EVENT")]
658 Event,
659 #[doc(hidden)]
660 __Unknown(i32),
661}
662
663#[doc(hidden)]
664impl IntoGlib for NavigationMessageType {
665 type GlibType = ffi::GstNavigationMessageType;
666
667 #[inline]
668 fn into_glib(self) -> ffi::GstNavigationMessageType {
669 match self {
670 Self::Invalid => ffi::GST_NAVIGATION_MESSAGE_INVALID,
671 Self::MouseOver => ffi::GST_NAVIGATION_MESSAGE_MOUSE_OVER,
672 Self::CommandsChanged => ffi::GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED,
673 Self::AnglesChanged => ffi::GST_NAVIGATION_MESSAGE_ANGLES_CHANGED,
674 Self::Event => ffi::GST_NAVIGATION_MESSAGE_EVENT,
675 Self::__Unknown(value) => value,
676 }
677 }
678}
679
680#[doc(hidden)]
681impl FromGlib<ffi::GstNavigationMessageType> for NavigationMessageType {
682 #[inline]
683 unsafe fn from_glib(value: ffi::GstNavigationMessageType) -> Self {
684 skip_assert_initialized!();
685
686 match value {
687 ffi::GST_NAVIGATION_MESSAGE_INVALID => Self::Invalid,
688 ffi::GST_NAVIGATION_MESSAGE_MOUSE_OVER => Self::MouseOver,
689 ffi::GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED => Self::CommandsChanged,
690 ffi::GST_NAVIGATION_MESSAGE_ANGLES_CHANGED => Self::AnglesChanged,
691 ffi::GST_NAVIGATION_MESSAGE_EVENT => Self::Event,
692 value => Self::__Unknown(value),
693 }
694 }
695}
696
697impl StaticType for NavigationMessageType {
698 #[inline]
699 #[doc(alias = "gst_navigation_message_type_get_type")]
700 fn static_type() -> glib::Type {
701 unsafe { from_glib(ffi::gst_navigation_message_type_get_type()) }
702 }
703}
704
705impl glib::HasParamSpec for NavigationMessageType {
706 type ParamSpec = glib::ParamSpecEnum;
707 type SetValue = Self;
708 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
709
710 fn param_spec_builder() -> Self::BuilderFn {
711 Self::ParamSpec::builder_with_default
712 }
713}
714
715impl glib::value::ValueType for NavigationMessageType {
716 type Type = Self;
717}
718
719unsafe impl<'a> glib::value::FromValue<'a> for NavigationMessageType {
720 type Checker = glib::value::GenericValueTypeChecker<Self>;
721
722 #[inline]
723 unsafe fn from_value(value: &'a glib::Value) -> Self {
724 skip_assert_initialized!();
725 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
726 }
727}
728
729impl ToValue for NavigationMessageType {
730 #[inline]
731 fn to_value(&self) -> glib::Value {
732 let mut value = glib::Value::for_value_type::<Self>();
733 unsafe {
734 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
735 }
736 value
737 }
738
739 #[inline]
740 fn value_type(&self) -> glib::Type {
741 Self::static_type()
742 }
743}
744
745impl From<NavigationMessageType> for glib::Value {
746 #[inline]
747 fn from(v: NavigationMessageType) -> Self {
748 skip_assert_initialized!();
749 ToValue::to_value(&v)
750 }
751}
752
753#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
755#[non_exhaustive]
756#[doc(alias = "GstNavigationQueryType")]
757pub enum NavigationQueryType {
758 #[doc(alias = "GST_NAVIGATION_QUERY_INVALID")]
760 Invalid,
761 #[doc(alias = "GST_NAVIGATION_QUERY_COMMANDS")]
763 Commands,
764 #[doc(alias = "GST_NAVIGATION_QUERY_ANGLES")]
766 Angles,
767 #[doc(hidden)]
768 __Unknown(i32),
769}
770
771#[doc(hidden)]
772impl IntoGlib for NavigationQueryType {
773 type GlibType = ffi::GstNavigationQueryType;
774
775 #[inline]
776 fn into_glib(self) -> ffi::GstNavigationQueryType {
777 match self {
778 Self::Invalid => ffi::GST_NAVIGATION_QUERY_INVALID,
779 Self::Commands => ffi::GST_NAVIGATION_QUERY_COMMANDS,
780 Self::Angles => ffi::GST_NAVIGATION_QUERY_ANGLES,
781 Self::__Unknown(value) => value,
782 }
783 }
784}
785
786#[doc(hidden)]
787impl FromGlib<ffi::GstNavigationQueryType> for NavigationQueryType {
788 #[inline]
789 unsafe fn from_glib(value: ffi::GstNavigationQueryType) -> Self {
790 skip_assert_initialized!();
791
792 match value {
793 ffi::GST_NAVIGATION_QUERY_INVALID => Self::Invalid,
794 ffi::GST_NAVIGATION_QUERY_COMMANDS => Self::Commands,
795 ffi::GST_NAVIGATION_QUERY_ANGLES => Self::Angles,
796 value => Self::__Unknown(value),
797 }
798 }
799}
800
801impl StaticType for NavigationQueryType {
802 #[inline]
803 #[doc(alias = "gst_navigation_query_type_get_type")]
804 fn static_type() -> glib::Type {
805 unsafe { from_glib(ffi::gst_navigation_query_type_get_type()) }
806 }
807}
808
809impl glib::HasParamSpec for NavigationQueryType {
810 type ParamSpec = glib::ParamSpecEnum;
811 type SetValue = Self;
812 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
813
814 fn param_spec_builder() -> Self::BuilderFn {
815 Self::ParamSpec::builder_with_default
816 }
817}
818
819impl glib::value::ValueType for NavigationQueryType {
820 type Type = Self;
821}
822
823unsafe impl<'a> glib::value::FromValue<'a> for NavigationQueryType {
824 type Checker = glib::value::GenericValueTypeChecker<Self>;
825
826 #[inline]
827 unsafe fn from_value(value: &'a glib::Value) -> Self {
828 skip_assert_initialized!();
829 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
830 }
831}
832
833impl ToValue for NavigationQueryType {
834 #[inline]
835 fn to_value(&self) -> glib::Value {
836 let mut value = glib::Value::for_value_type::<Self>();
837 unsafe {
838 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
839 }
840 value
841 }
842
843 #[inline]
844 fn value_type(&self) -> glib::Type {
845 Self::static_type()
846 }
847}
848
849impl From<NavigationQueryType> for glib::Value {
850 #[inline]
851 fn from(v: NavigationQueryType) -> Self {
852 skip_assert_initialized!();
853 ToValue::to_value(&v)
854 }
855}
856
857#[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 = "GstVideoAFDSpec")]
871pub enum VideoAFDSpec {
872 #[doc(alias = "GST_VIDEO_AFD_SPEC_DVB_ETSI")]
874 DvbEtsi,
875 #[doc(alias = "GST_VIDEO_AFD_SPEC_ATSC_A53")]
877 AtscA53,
878 #[doc(alias = "GST_VIDEO_AFD_SPEC_SMPTE_ST2016_1")]
879 SmpteSt20161,
880 #[doc(hidden)]
881 __Unknown(i32),
882}
883
884#[cfg(feature = "v1_18")]
885#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
886#[doc(hidden)]
887impl IntoGlib for VideoAFDSpec {
888 type GlibType = ffi::GstVideoAFDSpec;
889
890 #[inline]
891 fn into_glib(self) -> ffi::GstVideoAFDSpec {
892 match self {
893 Self::DvbEtsi => ffi::GST_VIDEO_AFD_SPEC_DVB_ETSI,
894 Self::AtscA53 => ffi::GST_VIDEO_AFD_SPEC_ATSC_A53,
895 Self::SmpteSt20161 => ffi::GST_VIDEO_AFD_SPEC_SMPTE_ST2016_1,
896 Self::__Unknown(value) => value,
897 }
898 }
899}
900
901#[cfg(feature = "v1_18")]
902#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
903#[doc(hidden)]
904impl FromGlib<ffi::GstVideoAFDSpec> for VideoAFDSpec {
905 #[inline]
906 unsafe fn from_glib(value: ffi::GstVideoAFDSpec) -> Self {
907 skip_assert_initialized!();
908
909 match value {
910 ffi::GST_VIDEO_AFD_SPEC_DVB_ETSI => Self::DvbEtsi,
911 ffi::GST_VIDEO_AFD_SPEC_ATSC_A53 => Self::AtscA53,
912 ffi::GST_VIDEO_AFD_SPEC_SMPTE_ST2016_1 => Self::SmpteSt20161,
913 value => Self::__Unknown(value),
914 }
915 }
916}
917
918#[cfg(feature = "v1_18")]
919#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
920impl StaticType for VideoAFDSpec {
921 #[inline]
922 #[doc(alias = "gst_video_afd_spec_get_type")]
923 fn static_type() -> glib::Type {
924 unsafe { from_glib(ffi::gst_video_afd_spec_get_type()) }
925 }
926}
927
928#[cfg(feature = "v1_18")]
929#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
930impl glib::HasParamSpec for VideoAFDSpec {
931 type ParamSpec = glib::ParamSpecEnum;
932 type SetValue = Self;
933 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
934
935 fn param_spec_builder() -> Self::BuilderFn {
936 Self::ParamSpec::builder_with_default
937 }
938}
939
940#[cfg(feature = "v1_18")]
941#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
942impl glib::value::ValueType for VideoAFDSpec {
943 type Type = Self;
944}
945
946#[cfg(feature = "v1_18")]
947#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
948unsafe impl<'a> glib::value::FromValue<'a> for VideoAFDSpec {
949 type Checker = glib::value::GenericValueTypeChecker<Self>;
950
951 #[inline]
952 unsafe fn from_value(value: &'a glib::Value) -> Self {
953 skip_assert_initialized!();
954 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
955 }
956}
957
958#[cfg(feature = "v1_18")]
959#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
960impl ToValue for VideoAFDSpec {
961 #[inline]
962 fn to_value(&self) -> glib::Value {
963 let mut value = glib::Value::for_value_type::<Self>();
964 unsafe {
965 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
966 }
967 value
968 }
969
970 #[inline]
971 fn value_type(&self) -> glib::Type {
972 Self::static_type()
973 }
974}
975
976#[cfg(feature = "v1_18")]
977#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
978impl From<VideoAFDSpec> for glib::Value {
979 #[inline]
980 fn from(v: VideoAFDSpec) -> Self {
981 skip_assert_initialized!();
982 ToValue::to_value(&v)
983 }
984}
985
986#[cfg(feature = "v1_18")]
992#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
993#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
994#[non_exhaustive]
995#[doc(alias = "GstVideoAFDValue")]
996pub enum VideoAFDValue {
997 #[doc(alias = "GST_VIDEO_AFD_UNAVAILABLE")]
999 Unavailable,
1000 #[doc(alias = "GST_VIDEO_AFD_16_9_TOP_ALIGNED")]
1004 _169TopAligned,
1005 #[doc(alias = "GST_VIDEO_AFD_14_9_TOP_ALIGNED")]
1009 _149TopAligned,
1010 #[doc(alias = "GST_VIDEO_AFD_GREATER_THAN_16_9")]
1014 GreaterThan169,
1015 #[doc(alias = "GST_VIDEO_AFD_4_3_FULL_16_9_FULL")]
1019 _43Full169Full,
1020 #[doc(alias = "GST_VIDEO_AFD_4_3_FULL_4_3_PILLAR")]
1024 _43Full43Pillar,
1025 #[doc(alias = "GST_VIDEO_AFD_16_9_LETTER_16_9_FULL")]
1029 _169Letter169Full,
1030 #[doc(alias = "GST_VIDEO_AFD_14_9_LETTER_14_9_PILLAR")]
1034 _149Letter149Pillar,
1035 #[doc(alias = "GST_VIDEO_AFD_4_3_FULL_14_9_CENTER")]
1038 _43Full149Center,
1039 #[doc(alias = "GST_VIDEO_AFD_16_9_LETTER_14_9_CENTER")]
1042 _169Letter149Center,
1043 #[doc(alias = "GST_VIDEO_AFD_16_9_LETTER_4_3_CENTER")]
1046 _169Letter43Center,
1047 #[doc(hidden)]
1048 __Unknown(i32),
1049}
1050
1051#[cfg(feature = "v1_18")]
1052#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1053#[doc(hidden)]
1054impl IntoGlib for VideoAFDValue {
1055 type GlibType = ffi::GstVideoAFDValue;
1056
1057 #[inline]
1058 fn into_glib(self) -> ffi::GstVideoAFDValue {
1059 match self {
1060 Self::Unavailable => ffi::GST_VIDEO_AFD_UNAVAILABLE,
1061 Self::_169TopAligned => ffi::GST_VIDEO_AFD_16_9_TOP_ALIGNED,
1062 Self::_149TopAligned => ffi::GST_VIDEO_AFD_14_9_TOP_ALIGNED,
1063 Self::GreaterThan169 => ffi::GST_VIDEO_AFD_GREATER_THAN_16_9,
1064 Self::_43Full169Full => ffi::GST_VIDEO_AFD_4_3_FULL_16_9_FULL,
1065 Self::_43Full43Pillar => ffi::GST_VIDEO_AFD_4_3_FULL_4_3_PILLAR,
1066 Self::_169Letter169Full => ffi::GST_VIDEO_AFD_16_9_LETTER_16_9_FULL,
1067 Self::_149Letter149Pillar => ffi::GST_VIDEO_AFD_14_9_LETTER_14_9_PILLAR,
1068 Self::_43Full149Center => ffi::GST_VIDEO_AFD_4_3_FULL_14_9_CENTER,
1069 Self::_169Letter149Center => ffi::GST_VIDEO_AFD_16_9_LETTER_14_9_CENTER,
1070 Self::_169Letter43Center => ffi::GST_VIDEO_AFD_16_9_LETTER_4_3_CENTER,
1071 Self::__Unknown(value) => value,
1072 }
1073 }
1074}
1075
1076#[cfg(feature = "v1_18")]
1077#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1078#[doc(hidden)]
1079impl FromGlib<ffi::GstVideoAFDValue> for VideoAFDValue {
1080 #[inline]
1081 unsafe fn from_glib(value: ffi::GstVideoAFDValue) -> Self {
1082 skip_assert_initialized!();
1083
1084 match value {
1085 ffi::GST_VIDEO_AFD_UNAVAILABLE => Self::Unavailable,
1086 ffi::GST_VIDEO_AFD_16_9_TOP_ALIGNED => Self::_169TopAligned,
1087 ffi::GST_VIDEO_AFD_14_9_TOP_ALIGNED => Self::_149TopAligned,
1088 ffi::GST_VIDEO_AFD_GREATER_THAN_16_9 => Self::GreaterThan169,
1089 ffi::GST_VIDEO_AFD_4_3_FULL_16_9_FULL => Self::_43Full169Full,
1090 ffi::GST_VIDEO_AFD_4_3_FULL_4_3_PILLAR => Self::_43Full43Pillar,
1091 ffi::GST_VIDEO_AFD_16_9_LETTER_16_9_FULL => Self::_169Letter169Full,
1092 ffi::GST_VIDEO_AFD_14_9_LETTER_14_9_PILLAR => Self::_149Letter149Pillar,
1093 ffi::GST_VIDEO_AFD_4_3_FULL_14_9_CENTER => Self::_43Full149Center,
1094 ffi::GST_VIDEO_AFD_16_9_LETTER_14_9_CENTER => Self::_169Letter149Center,
1095 ffi::GST_VIDEO_AFD_16_9_LETTER_4_3_CENTER => Self::_169Letter43Center,
1096 value => Self::__Unknown(value),
1097 }
1098 }
1099}
1100
1101#[cfg(feature = "v1_18")]
1102#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1103impl StaticType for VideoAFDValue {
1104 #[inline]
1105 #[doc(alias = "gst_video_afd_value_get_type")]
1106 fn static_type() -> glib::Type {
1107 unsafe { from_glib(ffi::gst_video_afd_value_get_type()) }
1108 }
1109}
1110
1111#[cfg(feature = "v1_18")]
1112#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1113impl glib::HasParamSpec for VideoAFDValue {
1114 type ParamSpec = glib::ParamSpecEnum;
1115 type SetValue = Self;
1116 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1117
1118 fn param_spec_builder() -> Self::BuilderFn {
1119 Self::ParamSpec::builder_with_default
1120 }
1121}
1122
1123#[cfg(feature = "v1_18")]
1124#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1125impl glib::value::ValueType for VideoAFDValue {
1126 type Type = Self;
1127}
1128
1129#[cfg(feature = "v1_18")]
1130#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1131unsafe impl<'a> glib::value::FromValue<'a> for VideoAFDValue {
1132 type Checker = glib::value::GenericValueTypeChecker<Self>;
1133
1134 #[inline]
1135 unsafe fn from_value(value: &'a glib::Value) -> Self {
1136 skip_assert_initialized!();
1137 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1138 }
1139}
1140
1141#[cfg(feature = "v1_18")]
1142#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1143impl ToValue for VideoAFDValue {
1144 #[inline]
1145 fn to_value(&self) -> glib::Value {
1146 let mut value = glib::Value::for_value_type::<Self>();
1147 unsafe {
1148 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1149 }
1150 value
1151 }
1152
1153 #[inline]
1154 fn value_type(&self) -> glib::Type {
1155 Self::static_type()
1156 }
1157}
1158
1159#[cfg(feature = "v1_18")]
1160#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1161impl From<VideoAFDValue> for glib::Value {
1162 #[inline]
1163 fn from(v: VideoAFDValue) -> Self {
1164 skip_assert_initialized!();
1165 ToValue::to_value(&v)
1166 }
1167}
1168
1169#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1171#[non_exhaustive]
1172#[doc(alias = "GstVideoAlphaMode")]
1173pub enum VideoAlphaMode {
1174 #[doc(alias = "GST_VIDEO_ALPHA_MODE_COPY")]
1178 Copy,
1179 #[doc(alias = "GST_VIDEO_ALPHA_MODE_SET")]
1182 Set,
1183 #[doc(alias = "GST_VIDEO_ALPHA_MODE_MULT")]
1188 Mult,
1189 #[doc(hidden)]
1190 __Unknown(i32),
1191}
1192
1193#[doc(hidden)]
1194impl IntoGlib for VideoAlphaMode {
1195 type GlibType = ffi::GstVideoAlphaMode;
1196
1197 #[inline]
1198 fn into_glib(self) -> ffi::GstVideoAlphaMode {
1199 match self {
1200 Self::Copy => ffi::GST_VIDEO_ALPHA_MODE_COPY,
1201 Self::Set => ffi::GST_VIDEO_ALPHA_MODE_SET,
1202 Self::Mult => ffi::GST_VIDEO_ALPHA_MODE_MULT,
1203 Self::__Unknown(value) => value,
1204 }
1205 }
1206}
1207
1208#[doc(hidden)]
1209impl FromGlib<ffi::GstVideoAlphaMode> for VideoAlphaMode {
1210 #[inline]
1211 unsafe fn from_glib(value: ffi::GstVideoAlphaMode) -> Self {
1212 skip_assert_initialized!();
1213
1214 match value {
1215 ffi::GST_VIDEO_ALPHA_MODE_COPY => Self::Copy,
1216 ffi::GST_VIDEO_ALPHA_MODE_SET => Self::Set,
1217 ffi::GST_VIDEO_ALPHA_MODE_MULT => Self::Mult,
1218 value => Self::__Unknown(value),
1219 }
1220 }
1221}
1222
1223impl StaticType for VideoAlphaMode {
1224 #[inline]
1225 #[doc(alias = "gst_video_alpha_mode_get_type")]
1226 fn static_type() -> glib::Type {
1227 unsafe { from_glib(ffi::gst_video_alpha_mode_get_type()) }
1228 }
1229}
1230
1231impl glib::HasParamSpec for VideoAlphaMode {
1232 type ParamSpec = glib::ParamSpecEnum;
1233 type SetValue = Self;
1234 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1235
1236 fn param_spec_builder() -> Self::BuilderFn {
1237 Self::ParamSpec::builder_with_default
1238 }
1239}
1240
1241impl glib::value::ValueType for VideoAlphaMode {
1242 type Type = Self;
1243}
1244
1245unsafe impl<'a> glib::value::FromValue<'a> for VideoAlphaMode {
1246 type Checker = glib::value::GenericValueTypeChecker<Self>;
1247
1248 #[inline]
1249 unsafe fn from_value(value: &'a glib::Value) -> Self {
1250 skip_assert_initialized!();
1251 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1252 }
1253}
1254
1255impl ToValue for VideoAlphaMode {
1256 #[inline]
1257 fn to_value(&self) -> glib::Value {
1258 let mut value = glib::Value::for_value_type::<Self>();
1259 unsafe {
1260 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1261 }
1262 value
1263 }
1264
1265 #[inline]
1266 fn value_type(&self) -> glib::Type {
1267 Self::static_type()
1268 }
1269}
1270
1271impl From<VideoAlphaMode> for glib::Value {
1272 #[inline]
1273 fn from(v: VideoAlphaMode) -> Self {
1274 skip_assert_initialized!();
1275 ToValue::to_value(&v)
1276 }
1277}
1278
1279#[cfg(feature = "v1_16")]
1280#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1281#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1282#[non_exhaustive]
1283#[doc(alias = "GstVideoAncillaryDID")]
1284pub enum VideoAncillaryDID {
1285 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_UNDEFINED")]
1286 Undefined,
1287 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_DELETION")]
1288 Deletion,
1289 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_HANC_3G_AUDIO_DATA_FIRST")]
1290 Hanc3gAudioDataFirst,
1291 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_HANC_3G_AUDIO_DATA_LAST")]
1292 Hanc3gAudioDataLast,
1293 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_HANC_HDTV_AUDIO_DATA_FIRST")]
1294 HancHdtvAudioDataFirst,
1295 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_HANC_HDTV_AUDIO_DATA_LAST")]
1296 HancHdtvAudioDataLast,
1297 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_1_FIRST")]
1298 HancSdtvAudioData1First,
1299 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_1_LAST")]
1300 HancSdtvAudioData1Last,
1301 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_CAMERA_POSITION")]
1302 CameraPosition,
1303 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_HANC_ERROR_DETECTION")]
1304 HancErrorDetection,
1305 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_2_FIRST")]
1306 HancSdtvAudioData2First,
1307 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_2_LAST")]
1308 HancSdtvAudioData2Last,
1309 #[doc(hidden)]
1310 __Unknown(i32),
1311}
1312
1313#[cfg(feature = "v1_16")]
1314#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1315#[doc(hidden)]
1316impl IntoGlib for VideoAncillaryDID {
1317 type GlibType = ffi::GstVideoAncillaryDID;
1318
1319 #[inline]
1320 fn into_glib(self) -> ffi::GstVideoAncillaryDID {
1321 match self {
1322 Self::Undefined => ffi::GST_VIDEO_ANCILLARY_DID_UNDEFINED,
1323 Self::Deletion => ffi::GST_VIDEO_ANCILLARY_DID_DELETION,
1324 Self::Hanc3gAudioDataFirst => ffi::GST_VIDEO_ANCILLARY_DID_HANC_3G_AUDIO_DATA_FIRST,
1325 Self::Hanc3gAudioDataLast => ffi::GST_VIDEO_ANCILLARY_DID_HANC_3G_AUDIO_DATA_LAST,
1326 Self::HancHdtvAudioDataFirst => ffi::GST_VIDEO_ANCILLARY_DID_HANC_HDTV_AUDIO_DATA_FIRST,
1327 Self::HancHdtvAudioDataLast => ffi::GST_VIDEO_ANCILLARY_DID_HANC_HDTV_AUDIO_DATA_LAST,
1328 Self::HancSdtvAudioData1First => {
1329 ffi::GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_1_FIRST
1330 }
1331 Self::HancSdtvAudioData1Last => {
1332 ffi::GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_1_LAST
1333 }
1334 Self::CameraPosition => ffi::GST_VIDEO_ANCILLARY_DID_CAMERA_POSITION,
1335 Self::HancErrorDetection => ffi::GST_VIDEO_ANCILLARY_DID_HANC_ERROR_DETECTION,
1336 Self::HancSdtvAudioData2First => {
1337 ffi::GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_2_FIRST
1338 }
1339 Self::HancSdtvAudioData2Last => {
1340 ffi::GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_2_LAST
1341 }
1342 Self::__Unknown(value) => value,
1343 }
1344 }
1345}
1346
1347#[cfg(feature = "v1_16")]
1348#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1349#[doc(hidden)]
1350impl FromGlib<ffi::GstVideoAncillaryDID> for VideoAncillaryDID {
1351 #[inline]
1352 unsafe fn from_glib(value: ffi::GstVideoAncillaryDID) -> Self {
1353 skip_assert_initialized!();
1354
1355 match value {
1356 ffi::GST_VIDEO_ANCILLARY_DID_UNDEFINED => Self::Undefined,
1357 ffi::GST_VIDEO_ANCILLARY_DID_DELETION => Self::Deletion,
1358 ffi::GST_VIDEO_ANCILLARY_DID_HANC_3G_AUDIO_DATA_FIRST => Self::Hanc3gAudioDataFirst,
1359 ffi::GST_VIDEO_ANCILLARY_DID_HANC_3G_AUDIO_DATA_LAST => Self::Hanc3gAudioDataLast,
1360 ffi::GST_VIDEO_ANCILLARY_DID_HANC_HDTV_AUDIO_DATA_FIRST => Self::HancHdtvAudioDataFirst,
1361 ffi::GST_VIDEO_ANCILLARY_DID_HANC_HDTV_AUDIO_DATA_LAST => Self::HancHdtvAudioDataLast,
1362 ffi::GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_1_FIRST => {
1363 Self::HancSdtvAudioData1First
1364 }
1365 ffi::GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_1_LAST => {
1366 Self::HancSdtvAudioData1Last
1367 }
1368 ffi::GST_VIDEO_ANCILLARY_DID_CAMERA_POSITION => Self::CameraPosition,
1369 ffi::GST_VIDEO_ANCILLARY_DID_HANC_ERROR_DETECTION => Self::HancErrorDetection,
1370 ffi::GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_2_FIRST => {
1371 Self::HancSdtvAudioData2First
1372 }
1373 ffi::GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_2_LAST => {
1374 Self::HancSdtvAudioData2Last
1375 }
1376 value => Self::__Unknown(value),
1377 }
1378 }
1379}
1380
1381#[cfg(feature = "v1_16")]
1382#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1383impl StaticType for VideoAncillaryDID {
1384 #[inline]
1385 #[doc(alias = "gst_video_ancillary_did_get_type")]
1386 fn static_type() -> glib::Type {
1387 unsafe { from_glib(ffi::gst_video_ancillary_did_get_type()) }
1388 }
1389}
1390
1391#[cfg(feature = "v1_16")]
1392#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1393impl glib::HasParamSpec for VideoAncillaryDID {
1394 type ParamSpec = glib::ParamSpecEnum;
1395 type SetValue = Self;
1396 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1397
1398 fn param_spec_builder() -> Self::BuilderFn {
1399 Self::ParamSpec::builder_with_default
1400 }
1401}
1402
1403#[cfg(feature = "v1_16")]
1404#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1405impl glib::value::ValueType for VideoAncillaryDID {
1406 type Type = Self;
1407}
1408
1409#[cfg(feature = "v1_16")]
1410#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1411unsafe impl<'a> glib::value::FromValue<'a> for VideoAncillaryDID {
1412 type Checker = glib::value::GenericValueTypeChecker<Self>;
1413
1414 #[inline]
1415 unsafe fn from_value(value: &'a glib::Value) -> Self {
1416 skip_assert_initialized!();
1417 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1418 }
1419}
1420
1421#[cfg(feature = "v1_16")]
1422#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1423impl ToValue for VideoAncillaryDID {
1424 #[inline]
1425 fn to_value(&self) -> glib::Value {
1426 let mut value = glib::Value::for_value_type::<Self>();
1427 unsafe {
1428 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1429 }
1430 value
1431 }
1432
1433 #[inline]
1434 fn value_type(&self) -> glib::Type {
1435 Self::static_type()
1436 }
1437}
1438
1439#[cfg(feature = "v1_16")]
1440#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1441impl From<VideoAncillaryDID> for glib::Value {
1442 #[inline]
1443 fn from(v: VideoAncillaryDID) -> Self {
1444 skip_assert_initialized!();
1445 ToValue::to_value(&v)
1446 }
1447}
1448
1449#[cfg(feature = "v1_16")]
1451#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1452#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1453#[non_exhaustive]
1454#[doc(alias = "GstVideoAncillaryDID16")]
1455pub enum VideoAncillaryDID16 {
1456 #[doc(alias = "GST_VIDEO_ANCILLARY_DID16_S334_EIA_708")]
1458 S334Eia708,
1459 #[doc(alias = "GST_VIDEO_ANCILLARY_DID16_S334_EIA_608")]
1461 S334Eia608,
1462 #[doc(alias = "GST_VIDEO_ANCILLARY_DID16_S2016_3_AFD_BAR")]
1464 S20163AfdBar,
1465 #[doc(hidden)]
1466 __Unknown(i32),
1467}
1468
1469#[cfg(feature = "v1_16")]
1470#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1471#[doc(hidden)]
1472impl IntoGlib for VideoAncillaryDID16 {
1473 type GlibType = ffi::GstVideoAncillaryDID16;
1474
1475 #[inline]
1476 fn into_glib(self) -> ffi::GstVideoAncillaryDID16 {
1477 match self {
1478 Self::S334Eia708 => ffi::GST_VIDEO_ANCILLARY_DID16_S334_EIA_708,
1479 Self::S334Eia608 => ffi::GST_VIDEO_ANCILLARY_DID16_S334_EIA_608,
1480 Self::S20163AfdBar => ffi::GST_VIDEO_ANCILLARY_DID16_S2016_3_AFD_BAR,
1481 Self::__Unknown(value) => value,
1482 }
1483 }
1484}
1485
1486#[cfg(feature = "v1_16")]
1487#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1488#[doc(hidden)]
1489impl FromGlib<ffi::GstVideoAncillaryDID16> for VideoAncillaryDID16 {
1490 #[inline]
1491 unsafe fn from_glib(value: ffi::GstVideoAncillaryDID16) -> Self {
1492 skip_assert_initialized!();
1493
1494 match value {
1495 ffi::GST_VIDEO_ANCILLARY_DID16_S334_EIA_708 => Self::S334Eia708,
1496 ffi::GST_VIDEO_ANCILLARY_DID16_S334_EIA_608 => Self::S334Eia608,
1497 ffi::GST_VIDEO_ANCILLARY_DID16_S2016_3_AFD_BAR => Self::S20163AfdBar,
1498 value => Self::__Unknown(value),
1499 }
1500 }
1501}
1502
1503#[cfg(feature = "v1_16")]
1504#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1505impl StaticType for VideoAncillaryDID16 {
1506 #[inline]
1507 #[doc(alias = "gst_video_ancillary_di_d16_get_type")]
1508 fn static_type() -> glib::Type {
1509 unsafe { from_glib(ffi::gst_video_ancillary_di_d16_get_type()) }
1510 }
1511}
1512
1513#[cfg(feature = "v1_16")]
1514#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1515impl glib::HasParamSpec for VideoAncillaryDID16 {
1516 type ParamSpec = glib::ParamSpecEnum;
1517 type SetValue = Self;
1518 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1519
1520 fn param_spec_builder() -> Self::BuilderFn {
1521 Self::ParamSpec::builder_with_default
1522 }
1523}
1524
1525#[cfg(feature = "v1_16")]
1526#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1527impl glib::value::ValueType for VideoAncillaryDID16 {
1528 type Type = Self;
1529}
1530
1531#[cfg(feature = "v1_16")]
1532#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1533unsafe impl<'a> glib::value::FromValue<'a> for VideoAncillaryDID16 {
1534 type Checker = glib::value::GenericValueTypeChecker<Self>;
1535
1536 #[inline]
1537 unsafe fn from_value(value: &'a glib::Value) -> Self {
1538 skip_assert_initialized!();
1539 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1540 }
1541}
1542
1543#[cfg(feature = "v1_16")]
1544#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1545impl ToValue for VideoAncillaryDID16 {
1546 #[inline]
1547 fn to_value(&self) -> glib::Value {
1548 let mut value = glib::Value::for_value_type::<Self>();
1549 unsafe {
1550 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1551 }
1552 value
1553 }
1554
1555 #[inline]
1556 fn value_type(&self) -> glib::Type {
1557 Self::static_type()
1558 }
1559}
1560
1561#[cfg(feature = "v1_16")]
1562#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1563impl From<VideoAncillaryDID16> for glib::Value {
1564 #[inline]
1565 fn from(v: VideoAncillaryDID16) -> Self {
1566 skip_assert_initialized!();
1567 ToValue::to_value(&v)
1568 }
1569}
1570
1571#[cfg(feature = "v1_16")]
1573#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1574#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1575#[non_exhaustive]
1576#[doc(alias = "GstVideoCaptionType")]
1577pub enum VideoCaptionType {
1578 #[doc(alias = "GST_VIDEO_CAPTION_TYPE_UNKNOWN")]
1580 Unknown,
1581 #[doc(alias = "GST_VIDEO_CAPTION_TYPE_CEA608_RAW")]
1589 Cea608Raw,
1590 #[doc(alias = "GST_VIDEO_CAPTION_TYPE_CEA608_S334_1A")]
1599 Cea608S3341a,
1600 #[doc(alias = "GST_VIDEO_CAPTION_TYPE_CEA708_RAW")]
1604 Cea708Raw,
1605 #[doc(alias = "GST_VIDEO_CAPTION_TYPE_CEA708_CDP")]
1609 Cea708Cdp,
1610 #[doc(hidden)]
1611 __Unknown(i32),
1612}
1613
1614#[cfg(feature = "v1_16")]
1615#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1616impl VideoCaptionType {
1617 #[doc(alias = "gst_video_caption_type_to_caps")]
1618 pub fn to_caps(self) -> gst::Caps {
1619 assert_initialized_main_thread!();
1620 unsafe { from_glib_full(ffi::gst_video_caption_type_to_caps(self.into_glib())) }
1621 }
1622}
1623
1624#[cfg(feature = "v1_16")]
1625#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1626#[doc(hidden)]
1627impl IntoGlib for VideoCaptionType {
1628 type GlibType = ffi::GstVideoCaptionType;
1629
1630 #[inline]
1631 fn into_glib(self) -> ffi::GstVideoCaptionType {
1632 match self {
1633 Self::Unknown => ffi::GST_VIDEO_CAPTION_TYPE_UNKNOWN,
1634 Self::Cea608Raw => ffi::GST_VIDEO_CAPTION_TYPE_CEA608_RAW,
1635 Self::Cea608S3341a => ffi::GST_VIDEO_CAPTION_TYPE_CEA608_S334_1A,
1636 Self::Cea708Raw => ffi::GST_VIDEO_CAPTION_TYPE_CEA708_RAW,
1637 Self::Cea708Cdp => ffi::GST_VIDEO_CAPTION_TYPE_CEA708_CDP,
1638 Self::__Unknown(value) => value,
1639 }
1640 }
1641}
1642
1643#[cfg(feature = "v1_16")]
1644#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1645#[doc(hidden)]
1646impl FromGlib<ffi::GstVideoCaptionType> for VideoCaptionType {
1647 #[inline]
1648 unsafe fn from_glib(value: ffi::GstVideoCaptionType) -> Self {
1649 skip_assert_initialized!();
1650
1651 match value {
1652 ffi::GST_VIDEO_CAPTION_TYPE_UNKNOWN => Self::Unknown,
1653 ffi::GST_VIDEO_CAPTION_TYPE_CEA608_RAW => Self::Cea608Raw,
1654 ffi::GST_VIDEO_CAPTION_TYPE_CEA608_S334_1A => Self::Cea608S3341a,
1655 ffi::GST_VIDEO_CAPTION_TYPE_CEA708_RAW => Self::Cea708Raw,
1656 ffi::GST_VIDEO_CAPTION_TYPE_CEA708_CDP => Self::Cea708Cdp,
1657 value => Self::__Unknown(value),
1658 }
1659 }
1660}
1661
1662#[cfg(feature = "v1_16")]
1663#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1664impl StaticType for VideoCaptionType {
1665 #[inline]
1666 #[doc(alias = "gst_video_caption_type_get_type")]
1667 fn static_type() -> glib::Type {
1668 unsafe { from_glib(ffi::gst_video_caption_type_get_type()) }
1669 }
1670}
1671
1672#[cfg(feature = "v1_16")]
1673#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1674impl glib::HasParamSpec for VideoCaptionType {
1675 type ParamSpec = glib::ParamSpecEnum;
1676 type SetValue = Self;
1677 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1678
1679 fn param_spec_builder() -> Self::BuilderFn {
1680 Self::ParamSpec::builder_with_default
1681 }
1682}
1683
1684#[cfg(feature = "v1_16")]
1685#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1686impl glib::value::ValueType for VideoCaptionType {
1687 type Type = Self;
1688}
1689
1690#[cfg(feature = "v1_16")]
1691#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1692unsafe impl<'a> glib::value::FromValue<'a> for VideoCaptionType {
1693 type Checker = glib::value::GenericValueTypeChecker<Self>;
1694
1695 #[inline]
1696 unsafe fn from_value(value: &'a glib::Value) -> Self {
1697 skip_assert_initialized!();
1698 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1699 }
1700}
1701
1702#[cfg(feature = "v1_16")]
1703#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1704impl ToValue for VideoCaptionType {
1705 #[inline]
1706 fn to_value(&self) -> glib::Value {
1707 let mut value = glib::Value::for_value_type::<Self>();
1708 unsafe {
1709 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1710 }
1711 value
1712 }
1713
1714 #[inline]
1715 fn value_type(&self) -> glib::Type {
1716 Self::static_type()
1717 }
1718}
1719
1720#[cfg(feature = "v1_16")]
1721#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1722impl From<VideoCaptionType> for glib::Value {
1723 #[inline]
1724 fn from(v: VideoCaptionType) -> Self {
1725 skip_assert_initialized!();
1726 ToValue::to_value(&v)
1727 }
1728}
1729
1730#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1732#[non_exhaustive]
1733#[doc(alias = "GstVideoChromaMode")]
1734pub enum VideoChromaMode {
1735 #[doc(alias = "GST_VIDEO_CHROMA_MODE_FULL")]
1737 Full,
1738 #[doc(alias = "GST_VIDEO_CHROMA_MODE_UPSAMPLE_ONLY")]
1740 UpsampleOnly,
1741 #[doc(alias = "GST_VIDEO_CHROMA_MODE_DOWNSAMPLE_ONLY")]
1743 DownsampleOnly,
1744 #[doc(alias = "GST_VIDEO_CHROMA_MODE_NONE")]
1746 None,
1747 #[doc(hidden)]
1748 __Unknown(i32),
1749}
1750
1751#[doc(hidden)]
1752impl IntoGlib for VideoChromaMode {
1753 type GlibType = ffi::GstVideoChromaMode;
1754
1755 #[inline]
1756 fn into_glib(self) -> ffi::GstVideoChromaMode {
1757 match self {
1758 Self::Full => ffi::GST_VIDEO_CHROMA_MODE_FULL,
1759 Self::UpsampleOnly => ffi::GST_VIDEO_CHROMA_MODE_UPSAMPLE_ONLY,
1760 Self::DownsampleOnly => ffi::GST_VIDEO_CHROMA_MODE_DOWNSAMPLE_ONLY,
1761 Self::None => ffi::GST_VIDEO_CHROMA_MODE_NONE,
1762 Self::__Unknown(value) => value,
1763 }
1764 }
1765}
1766
1767#[doc(hidden)]
1768impl FromGlib<ffi::GstVideoChromaMode> for VideoChromaMode {
1769 #[inline]
1770 unsafe fn from_glib(value: ffi::GstVideoChromaMode) -> Self {
1771 skip_assert_initialized!();
1772
1773 match value {
1774 ffi::GST_VIDEO_CHROMA_MODE_FULL => Self::Full,
1775 ffi::GST_VIDEO_CHROMA_MODE_UPSAMPLE_ONLY => Self::UpsampleOnly,
1776 ffi::GST_VIDEO_CHROMA_MODE_DOWNSAMPLE_ONLY => Self::DownsampleOnly,
1777 ffi::GST_VIDEO_CHROMA_MODE_NONE => Self::None,
1778 value => Self::__Unknown(value),
1779 }
1780 }
1781}
1782
1783impl StaticType for VideoChromaMode {
1784 #[inline]
1785 #[doc(alias = "gst_video_chroma_mode_get_type")]
1786 fn static_type() -> glib::Type {
1787 unsafe { from_glib(ffi::gst_video_chroma_mode_get_type()) }
1788 }
1789}
1790
1791impl glib::HasParamSpec for VideoChromaMode {
1792 type ParamSpec = glib::ParamSpecEnum;
1793 type SetValue = Self;
1794 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1795
1796 fn param_spec_builder() -> Self::BuilderFn {
1797 Self::ParamSpec::builder_with_default
1798 }
1799}
1800
1801impl glib::value::ValueType for VideoChromaMode {
1802 type Type = Self;
1803}
1804
1805unsafe impl<'a> glib::value::FromValue<'a> for VideoChromaMode {
1806 type Checker = glib::value::GenericValueTypeChecker<Self>;
1807
1808 #[inline]
1809 unsafe fn from_value(value: &'a glib::Value) -> Self {
1810 skip_assert_initialized!();
1811 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1812 }
1813}
1814
1815impl ToValue for VideoChromaMode {
1816 #[inline]
1817 fn to_value(&self) -> glib::Value {
1818 let mut value = glib::Value::for_value_type::<Self>();
1819 unsafe {
1820 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1821 }
1822 value
1823 }
1824
1825 #[inline]
1826 fn value_type(&self) -> glib::Type {
1827 Self::static_type()
1828 }
1829}
1830
1831impl From<VideoChromaMode> for glib::Value {
1832 #[inline]
1833 fn from(v: VideoChromaMode) -> Self {
1834 skip_assert_initialized!();
1835 ToValue::to_value(&v)
1836 }
1837}
1838
1839#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1842#[non_exhaustive]
1843#[doc(alias = "GstVideoColorMatrix")]
1844pub enum VideoColorMatrix {
1845 #[doc(alias = "GST_VIDEO_COLOR_MATRIX_UNKNOWN")]
1847 Unknown,
1848 #[doc(alias = "GST_VIDEO_COLOR_MATRIX_RGB")]
1851 Rgb,
1852 #[doc(alias = "GST_VIDEO_COLOR_MATRIX_FCC")]
1854 Fcc,
1855 #[doc(alias = "GST_VIDEO_COLOR_MATRIX_BT709")]
1858 Bt709,
1859 #[doc(alias = "GST_VIDEO_COLOR_MATRIX_BT601")]
1861 Bt601,
1862 #[doc(alias = "GST_VIDEO_COLOR_MATRIX_SMPTE240M")]
1864 Smpte240m,
1865 #[doc(alias = "GST_VIDEO_COLOR_MATRIX_BT2020")]
1867 Bt2020,
1868 #[doc(hidden)]
1869 __Unknown(i32),
1870}
1871
1872impl VideoColorMatrix {
1873 #[cfg(feature = "v1_18")]
1874 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1875 #[doc(alias = "gst_video_color_matrix_from_iso")]
1876 pub fn from_iso(value: u32) -> VideoColorMatrix {
1877 assert_initialized_main_thread!();
1878 unsafe { from_glib(ffi::gst_video_color_matrix_from_iso(value)) }
1879 }
1880
1881 #[cfg(feature = "v1_18")]
1882 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1883 #[doc(alias = "gst_video_color_matrix_to_iso")]
1884 pub fn to_iso(self) -> u32 {
1885 assert_initialized_main_thread!();
1886 unsafe { ffi::gst_video_color_matrix_to_iso(self.into_glib()) }
1887 }
1888}
1889
1890#[doc(hidden)]
1891impl IntoGlib for VideoColorMatrix {
1892 type GlibType = ffi::GstVideoColorMatrix;
1893
1894 #[inline]
1895 fn into_glib(self) -> ffi::GstVideoColorMatrix {
1896 match self {
1897 Self::Unknown => ffi::GST_VIDEO_COLOR_MATRIX_UNKNOWN,
1898 Self::Rgb => ffi::GST_VIDEO_COLOR_MATRIX_RGB,
1899 Self::Fcc => ffi::GST_VIDEO_COLOR_MATRIX_FCC,
1900 Self::Bt709 => ffi::GST_VIDEO_COLOR_MATRIX_BT709,
1901 Self::Bt601 => ffi::GST_VIDEO_COLOR_MATRIX_BT601,
1902 Self::Smpte240m => ffi::GST_VIDEO_COLOR_MATRIX_SMPTE240M,
1903 Self::Bt2020 => ffi::GST_VIDEO_COLOR_MATRIX_BT2020,
1904 Self::__Unknown(value) => value,
1905 }
1906 }
1907}
1908
1909#[doc(hidden)]
1910impl FromGlib<ffi::GstVideoColorMatrix> for VideoColorMatrix {
1911 #[inline]
1912 unsafe fn from_glib(value: ffi::GstVideoColorMatrix) -> Self {
1913 skip_assert_initialized!();
1914
1915 match value {
1916 ffi::GST_VIDEO_COLOR_MATRIX_UNKNOWN => Self::Unknown,
1917 ffi::GST_VIDEO_COLOR_MATRIX_RGB => Self::Rgb,
1918 ffi::GST_VIDEO_COLOR_MATRIX_FCC => Self::Fcc,
1919 ffi::GST_VIDEO_COLOR_MATRIX_BT709 => Self::Bt709,
1920 ffi::GST_VIDEO_COLOR_MATRIX_BT601 => Self::Bt601,
1921 ffi::GST_VIDEO_COLOR_MATRIX_SMPTE240M => Self::Smpte240m,
1922 ffi::GST_VIDEO_COLOR_MATRIX_BT2020 => Self::Bt2020,
1923 value => Self::__Unknown(value),
1924 }
1925 }
1926}
1927
1928impl StaticType for VideoColorMatrix {
1929 #[inline]
1930 #[doc(alias = "gst_video_color_matrix_get_type")]
1931 fn static_type() -> glib::Type {
1932 unsafe { from_glib(ffi::gst_video_color_matrix_get_type()) }
1933 }
1934}
1935
1936impl glib::HasParamSpec for VideoColorMatrix {
1937 type ParamSpec = glib::ParamSpecEnum;
1938 type SetValue = Self;
1939 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1940
1941 fn param_spec_builder() -> Self::BuilderFn {
1942 Self::ParamSpec::builder_with_default
1943 }
1944}
1945
1946impl glib::value::ValueType for VideoColorMatrix {
1947 type Type = Self;
1948}
1949
1950unsafe impl<'a> glib::value::FromValue<'a> for VideoColorMatrix {
1951 type Checker = glib::value::GenericValueTypeChecker<Self>;
1952
1953 #[inline]
1954 unsafe fn from_value(value: &'a glib::Value) -> Self {
1955 skip_assert_initialized!();
1956 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1957 }
1958}
1959
1960impl ToValue for VideoColorMatrix {
1961 #[inline]
1962 fn to_value(&self) -> glib::Value {
1963 let mut value = glib::Value::for_value_type::<Self>();
1964 unsafe {
1965 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1966 }
1967 value
1968 }
1969
1970 #[inline]
1971 fn value_type(&self) -> glib::Type {
1972 Self::static_type()
1973 }
1974}
1975
1976impl From<VideoColorMatrix> for glib::Value {
1977 #[inline]
1978 fn from(v: VideoColorMatrix) -> Self {
1979 skip_assert_initialized!();
1980 ToValue::to_value(&v)
1981 }
1982}
1983
1984#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1987#[non_exhaustive]
1988#[doc(alias = "GstVideoColorPrimaries")]
1989pub enum VideoColorPrimaries {
1990 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_UNKNOWN")]
1992 Unknown,
1993 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_BT709")]
1996 Bt709,
1997 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_BT470M")]
2000 Bt470m,
2001 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_BT470BG")]
2003 Bt470bg,
2004 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_SMPTE170M")]
2007 Smpte170m,
2008 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_SMPTE240M")]
2010 Smpte240m,
2011 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_FILM")]
2014 Film,
2015 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_BT2020")]
2017 Bt2020,
2018 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_ADOBERGB")]
2020 Adobergb,
2021 #[cfg(feature = "v1_16")]
2024 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2025 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_SMPTEST428")]
2026 Smptest428,
2027 #[cfg(feature = "v1_16")]
2030 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2031 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_SMPTERP431")]
2032 Smpterp431,
2033 #[cfg(feature = "v1_16")]
2036 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2037 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_SMPTEEG432")]
2038 Smpteeg432,
2039 #[cfg(feature = "v1_16")]
2042 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2043 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_EBU3213")]
2044 Ebu3213,
2045 #[doc(hidden)]
2046 __Unknown(i32),
2047}
2048
2049impl VideoColorPrimaries {
2050 #[cfg(feature = "v1_18")]
2051 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2052 #[doc(alias = "gst_video_color_primaries_from_iso")]
2053 pub fn from_iso(value: u32) -> VideoColorPrimaries {
2054 assert_initialized_main_thread!();
2055 unsafe { from_glib(ffi::gst_video_color_primaries_from_iso(value)) }
2056 }
2057
2058 #[cfg(feature = "v1_22")]
2065 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
2066 #[doc(alias = "gst_video_color_primaries_is_equivalent")]
2067 pub fn is_equivalent(self, other: VideoColorPrimaries) -> bool {
2068 assert_initialized_main_thread!();
2069 unsafe {
2070 from_glib(ffi::gst_video_color_primaries_is_equivalent(
2071 self.into_glib(),
2072 other.into_glib(),
2073 ))
2074 }
2075 }
2076
2077 #[cfg(feature = "v1_18")]
2078 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2079 #[doc(alias = "gst_video_color_primaries_to_iso")]
2080 pub fn to_iso(self) -> u32 {
2081 assert_initialized_main_thread!();
2082 unsafe { ffi::gst_video_color_primaries_to_iso(self.into_glib()) }
2083 }
2084}
2085
2086#[doc(hidden)]
2087impl IntoGlib for VideoColorPrimaries {
2088 type GlibType = ffi::GstVideoColorPrimaries;
2089
2090 fn into_glib(self) -> ffi::GstVideoColorPrimaries {
2091 match self {
2092 Self::Unknown => ffi::GST_VIDEO_COLOR_PRIMARIES_UNKNOWN,
2093 Self::Bt709 => ffi::GST_VIDEO_COLOR_PRIMARIES_BT709,
2094 Self::Bt470m => ffi::GST_VIDEO_COLOR_PRIMARIES_BT470M,
2095 Self::Bt470bg => ffi::GST_VIDEO_COLOR_PRIMARIES_BT470BG,
2096 Self::Smpte170m => ffi::GST_VIDEO_COLOR_PRIMARIES_SMPTE170M,
2097 Self::Smpte240m => ffi::GST_VIDEO_COLOR_PRIMARIES_SMPTE240M,
2098 Self::Film => ffi::GST_VIDEO_COLOR_PRIMARIES_FILM,
2099 Self::Bt2020 => ffi::GST_VIDEO_COLOR_PRIMARIES_BT2020,
2100 Self::Adobergb => ffi::GST_VIDEO_COLOR_PRIMARIES_ADOBERGB,
2101 #[cfg(feature = "v1_16")]
2102 Self::Smptest428 => ffi::GST_VIDEO_COLOR_PRIMARIES_SMPTEST428,
2103 #[cfg(feature = "v1_16")]
2104 Self::Smpterp431 => ffi::GST_VIDEO_COLOR_PRIMARIES_SMPTERP431,
2105 #[cfg(feature = "v1_16")]
2106 Self::Smpteeg432 => ffi::GST_VIDEO_COLOR_PRIMARIES_SMPTEEG432,
2107 #[cfg(feature = "v1_16")]
2108 Self::Ebu3213 => ffi::GST_VIDEO_COLOR_PRIMARIES_EBU3213,
2109 Self::__Unknown(value) => value,
2110 }
2111 }
2112}
2113
2114#[doc(hidden)]
2115impl FromGlib<ffi::GstVideoColorPrimaries> for VideoColorPrimaries {
2116 unsafe fn from_glib(value: ffi::GstVideoColorPrimaries) -> Self {
2117 skip_assert_initialized!();
2118
2119 match value {
2120 ffi::GST_VIDEO_COLOR_PRIMARIES_UNKNOWN => Self::Unknown,
2121 ffi::GST_VIDEO_COLOR_PRIMARIES_BT709 => Self::Bt709,
2122 ffi::GST_VIDEO_COLOR_PRIMARIES_BT470M => Self::Bt470m,
2123 ffi::GST_VIDEO_COLOR_PRIMARIES_BT470BG => Self::Bt470bg,
2124 ffi::GST_VIDEO_COLOR_PRIMARIES_SMPTE170M => Self::Smpte170m,
2125 ffi::GST_VIDEO_COLOR_PRIMARIES_SMPTE240M => Self::Smpte240m,
2126 ffi::GST_VIDEO_COLOR_PRIMARIES_FILM => Self::Film,
2127 ffi::GST_VIDEO_COLOR_PRIMARIES_BT2020 => Self::Bt2020,
2128 ffi::GST_VIDEO_COLOR_PRIMARIES_ADOBERGB => Self::Adobergb,
2129 #[cfg(feature = "v1_16")]
2130 ffi::GST_VIDEO_COLOR_PRIMARIES_SMPTEST428 => Self::Smptest428,
2131 #[cfg(feature = "v1_16")]
2132 ffi::GST_VIDEO_COLOR_PRIMARIES_SMPTERP431 => Self::Smpterp431,
2133 #[cfg(feature = "v1_16")]
2134 ffi::GST_VIDEO_COLOR_PRIMARIES_SMPTEEG432 => Self::Smpteeg432,
2135 #[cfg(feature = "v1_16")]
2136 ffi::GST_VIDEO_COLOR_PRIMARIES_EBU3213 => Self::Ebu3213,
2137 value => Self::__Unknown(value),
2138 }
2139 }
2140}
2141
2142impl StaticType for VideoColorPrimaries {
2143 #[inline]
2144 #[doc(alias = "gst_video_color_primaries_get_type")]
2145 fn static_type() -> glib::Type {
2146 unsafe { from_glib(ffi::gst_video_color_primaries_get_type()) }
2147 }
2148}
2149
2150impl glib::HasParamSpec for VideoColorPrimaries {
2151 type ParamSpec = glib::ParamSpecEnum;
2152 type SetValue = Self;
2153 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2154
2155 fn param_spec_builder() -> Self::BuilderFn {
2156 Self::ParamSpec::builder_with_default
2157 }
2158}
2159
2160impl glib::value::ValueType for VideoColorPrimaries {
2161 type Type = Self;
2162}
2163
2164unsafe impl<'a> glib::value::FromValue<'a> for VideoColorPrimaries {
2165 type Checker = glib::value::GenericValueTypeChecker<Self>;
2166
2167 #[inline]
2168 unsafe fn from_value(value: &'a glib::Value) -> Self {
2169 skip_assert_initialized!();
2170 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2171 }
2172}
2173
2174impl ToValue for VideoColorPrimaries {
2175 #[inline]
2176 fn to_value(&self) -> glib::Value {
2177 let mut value = glib::Value::for_value_type::<Self>();
2178 unsafe {
2179 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2180 }
2181 value
2182 }
2183
2184 #[inline]
2185 fn value_type(&self) -> glib::Type {
2186 Self::static_type()
2187 }
2188}
2189
2190impl From<VideoColorPrimaries> for glib::Value {
2191 #[inline]
2192 fn from(v: VideoColorPrimaries) -> Self {
2193 skip_assert_initialized!();
2194 ToValue::to_value(&v)
2195 }
2196}
2197
2198#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2200#[non_exhaustive]
2201#[doc(alias = "GstVideoDitherMethod")]
2202pub enum VideoDitherMethod {
2203 #[doc(alias = "GST_VIDEO_DITHER_NONE")]
2205 None,
2206 #[doc(alias = "GST_VIDEO_DITHER_VERTERR")]
2208 Verterr,
2209 #[doc(alias = "GST_VIDEO_DITHER_FLOYD_STEINBERG")]
2211 FloydSteinberg,
2212 #[doc(alias = "GST_VIDEO_DITHER_SIERRA_LITE")]
2214 SierraLite,
2215 #[doc(alias = "GST_VIDEO_DITHER_BAYER")]
2217 Bayer,
2218 #[doc(hidden)]
2219 __Unknown(i32),
2220}
2221
2222#[doc(hidden)]
2223impl IntoGlib for VideoDitherMethod {
2224 type GlibType = ffi::GstVideoDitherMethod;
2225
2226 #[inline]
2227 fn into_glib(self) -> ffi::GstVideoDitherMethod {
2228 match self {
2229 Self::None => ffi::GST_VIDEO_DITHER_NONE,
2230 Self::Verterr => ffi::GST_VIDEO_DITHER_VERTERR,
2231 Self::FloydSteinberg => ffi::GST_VIDEO_DITHER_FLOYD_STEINBERG,
2232 Self::SierraLite => ffi::GST_VIDEO_DITHER_SIERRA_LITE,
2233 Self::Bayer => ffi::GST_VIDEO_DITHER_BAYER,
2234 Self::__Unknown(value) => value,
2235 }
2236 }
2237}
2238
2239#[doc(hidden)]
2240impl FromGlib<ffi::GstVideoDitherMethod> for VideoDitherMethod {
2241 #[inline]
2242 unsafe fn from_glib(value: ffi::GstVideoDitherMethod) -> Self {
2243 skip_assert_initialized!();
2244
2245 match value {
2246 ffi::GST_VIDEO_DITHER_NONE => Self::None,
2247 ffi::GST_VIDEO_DITHER_VERTERR => Self::Verterr,
2248 ffi::GST_VIDEO_DITHER_FLOYD_STEINBERG => Self::FloydSteinberg,
2249 ffi::GST_VIDEO_DITHER_SIERRA_LITE => Self::SierraLite,
2250 ffi::GST_VIDEO_DITHER_BAYER => Self::Bayer,
2251 value => Self::__Unknown(value),
2252 }
2253 }
2254}
2255
2256impl StaticType for VideoDitherMethod {
2257 #[inline]
2258 #[doc(alias = "gst_video_dither_method_get_type")]
2259 fn static_type() -> glib::Type {
2260 unsafe { from_glib(ffi::gst_video_dither_method_get_type()) }
2261 }
2262}
2263
2264impl glib::HasParamSpec for VideoDitherMethod {
2265 type ParamSpec = glib::ParamSpecEnum;
2266 type SetValue = Self;
2267 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2268
2269 fn param_spec_builder() -> Self::BuilderFn {
2270 Self::ParamSpec::builder_with_default
2271 }
2272}
2273
2274impl glib::value::ValueType for VideoDitherMethod {
2275 type Type = Self;
2276}
2277
2278unsafe impl<'a> glib::value::FromValue<'a> for VideoDitherMethod {
2279 type Checker = glib::value::GenericValueTypeChecker<Self>;
2280
2281 #[inline]
2282 unsafe fn from_value(value: &'a glib::Value) -> Self {
2283 skip_assert_initialized!();
2284 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2285 }
2286}
2287
2288impl ToValue for VideoDitherMethod {
2289 #[inline]
2290 fn to_value(&self) -> glib::Value {
2291 let mut value = glib::Value::for_value_type::<Self>();
2292 unsafe {
2293 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2294 }
2295 value
2296 }
2297
2298 #[inline]
2299 fn value_type(&self) -> glib::Type {
2300 Self::static_type()
2301 }
2302}
2303
2304impl From<VideoDitherMethod> for glib::Value {
2305 #[inline]
2306 fn from(v: VideoDitherMethod) -> Self {
2307 skip_assert_initialized!();
2308 ToValue::to_value(&v)
2309 }
2310}
2311
2312#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2317#[non_exhaustive]
2318#[doc(alias = "GstVideoFieldOrder")]
2319pub enum VideoFieldOrder {
2320 #[doc(alias = "GST_VIDEO_FIELD_ORDER_UNKNOWN")]
2323 Unknown,
2324 #[doc(alias = "GST_VIDEO_FIELD_ORDER_TOP_FIELD_FIRST")]
2326 TopFieldFirst,
2327 #[doc(alias = "GST_VIDEO_FIELD_ORDER_BOTTOM_FIELD_FIRST")]
2329 BottomFieldFirst,
2330 #[doc(hidden)]
2331 __Unknown(i32),
2332}
2333
2334impl VideoFieldOrder {
2335 #[doc(alias = "gst_video_field_order_from_string")]
2336 pub fn from_string(order: &str) -> VideoFieldOrder {
2337 assert_initialized_main_thread!();
2338 unsafe {
2339 from_glib(ffi::gst_video_field_order_from_string(
2340 order.to_glib_none().0,
2341 ))
2342 }
2343 }
2344}
2345
2346impl std::fmt::Display for VideoFieldOrder {
2347 #[inline]
2348 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2349 f.write_str(&self.to_str())
2350 }
2351}
2352
2353#[doc(hidden)]
2354impl IntoGlib for VideoFieldOrder {
2355 type GlibType = ffi::GstVideoFieldOrder;
2356
2357 #[inline]
2358 fn into_glib(self) -> ffi::GstVideoFieldOrder {
2359 match self {
2360 Self::Unknown => ffi::GST_VIDEO_FIELD_ORDER_UNKNOWN,
2361 Self::TopFieldFirst => ffi::GST_VIDEO_FIELD_ORDER_TOP_FIELD_FIRST,
2362 Self::BottomFieldFirst => ffi::GST_VIDEO_FIELD_ORDER_BOTTOM_FIELD_FIRST,
2363 Self::__Unknown(value) => value,
2364 }
2365 }
2366}
2367
2368#[doc(hidden)]
2369impl FromGlib<ffi::GstVideoFieldOrder> for VideoFieldOrder {
2370 #[inline]
2371 unsafe fn from_glib(value: ffi::GstVideoFieldOrder) -> Self {
2372 skip_assert_initialized!();
2373
2374 match value {
2375 ffi::GST_VIDEO_FIELD_ORDER_UNKNOWN => Self::Unknown,
2376 ffi::GST_VIDEO_FIELD_ORDER_TOP_FIELD_FIRST => Self::TopFieldFirst,
2377 ffi::GST_VIDEO_FIELD_ORDER_BOTTOM_FIELD_FIRST => Self::BottomFieldFirst,
2378 value => Self::__Unknown(value),
2379 }
2380 }
2381}
2382
2383impl StaticType for VideoFieldOrder {
2384 #[inline]
2385 #[doc(alias = "gst_video_field_order_get_type")]
2386 fn static_type() -> glib::Type {
2387 unsafe { from_glib(ffi::gst_video_field_order_get_type()) }
2388 }
2389}
2390
2391impl glib::HasParamSpec for VideoFieldOrder {
2392 type ParamSpec = glib::ParamSpecEnum;
2393 type SetValue = Self;
2394 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2395
2396 fn param_spec_builder() -> Self::BuilderFn {
2397 Self::ParamSpec::builder_with_default
2398 }
2399}
2400
2401impl glib::value::ValueType for VideoFieldOrder {
2402 type Type = Self;
2403}
2404
2405unsafe impl<'a> glib::value::FromValue<'a> for VideoFieldOrder {
2406 type Checker = glib::value::GenericValueTypeChecker<Self>;
2407
2408 #[inline]
2409 unsafe fn from_value(value: &'a glib::Value) -> Self {
2410 skip_assert_initialized!();
2411 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2412 }
2413}
2414
2415impl ToValue for VideoFieldOrder {
2416 #[inline]
2417 fn to_value(&self) -> glib::Value {
2418 let mut value = glib::Value::for_value_type::<Self>();
2419 unsafe {
2420 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2421 }
2422 value
2423 }
2424
2425 #[inline]
2426 fn value_type(&self) -> glib::Type {
2427 Self::static_type()
2428 }
2429}
2430
2431impl From<VideoFieldOrder> for glib::Value {
2432 #[inline]
2433 fn from(v: VideoFieldOrder) -> Self {
2434 skip_assert_initialized!();
2435 ToValue::to_value(&v)
2436 }
2437}
2438
2439#[derive(Debug, Eq, PartialEq, Hash, Clone, Copy)]
2444#[non_exhaustive]
2445#[doc(alias = "GstVideoFormat")]
2446pub enum VideoFormat {
2447 #[doc(alias = "GST_VIDEO_FORMAT_UNKNOWN")]
2449 Unknown,
2450 #[doc(alias = "GST_VIDEO_FORMAT_ENCODED")]
2455 Encoded,
2456 #[doc(alias = "GST_VIDEO_FORMAT_I420")]
2458 I420,
2459 #[doc(alias = "GST_VIDEO_FORMAT_YV12")]
2461 Yv12,
2462 #[doc(alias = "GST_VIDEO_FORMAT_YUY2")]
2464 Yuy2,
2465 #[doc(alias = "GST_VIDEO_FORMAT_UYVY")]
2467 Uyvy,
2468 #[doc(alias = "GST_VIDEO_FORMAT_AYUV")]
2470 Ayuv,
2471 #[doc(alias = "GST_VIDEO_FORMAT_RGBx")]
2473 Rgbx,
2474 #[doc(alias = "GST_VIDEO_FORMAT_BGRx")]
2476 Bgrx,
2477 #[doc(alias = "GST_VIDEO_FORMAT_xRGB")]
2479 Xrgb,
2480 #[doc(alias = "GST_VIDEO_FORMAT_xBGR")]
2482 Xbgr,
2483 #[doc(alias = "GST_VIDEO_FORMAT_RGBA")]
2485 Rgba,
2486 #[doc(alias = "GST_VIDEO_FORMAT_BGRA")]
2488 Bgra,
2489 #[doc(alias = "GST_VIDEO_FORMAT_ARGB")]
2491 Argb,
2492 #[doc(alias = "GST_VIDEO_FORMAT_ABGR")]
2494 Abgr,
2495 #[doc(alias = "GST_VIDEO_FORMAT_RGB")]
2497 Rgb,
2498 #[doc(alias = "GST_VIDEO_FORMAT_BGR")]
2500 Bgr,
2501 #[doc(alias = "GST_VIDEO_FORMAT_Y41B")]
2503 Y41b,
2504 #[doc(alias = "GST_VIDEO_FORMAT_Y42B")]
2506 Y42b,
2507 #[doc(alias = "GST_VIDEO_FORMAT_YVYU")]
2509 Yvyu,
2510 #[doc(alias = "GST_VIDEO_FORMAT_Y444")]
2512 Y444,
2513 #[doc(alias = "GST_VIDEO_FORMAT_v210")]
2515 V210,
2516 #[doc(alias = "GST_VIDEO_FORMAT_v216")]
2518 V216,
2519 #[doc(alias = "GST_VIDEO_FORMAT_NV12")]
2521 Nv12,
2522 #[doc(alias = "GST_VIDEO_FORMAT_NV21")]
2524 Nv21,
2525 #[doc(alias = "GST_VIDEO_FORMAT_GRAY8")]
2527 Gray8,
2528 #[doc(alias = "GST_VIDEO_FORMAT_GRAY16_BE")]
2530 Gray16Be,
2531 #[doc(alias = "GST_VIDEO_FORMAT_GRAY16_LE")]
2533 Gray16Le,
2534 #[doc(alias = "GST_VIDEO_FORMAT_v308")]
2536 V308,
2537 #[doc(alias = "GST_VIDEO_FORMAT_RGB16")]
2539 Rgb16,
2540 #[doc(alias = "GST_VIDEO_FORMAT_BGR16")]
2542 Bgr16,
2543 #[doc(alias = "GST_VIDEO_FORMAT_RGB15")]
2545 Rgb15,
2546 #[doc(alias = "GST_VIDEO_FORMAT_BGR15")]
2548 Bgr15,
2549 #[doc(alias = "GST_VIDEO_FORMAT_UYVP")]
2551 Uyvp,
2552 #[doc(alias = "GST_VIDEO_FORMAT_A420")]
2554 A420,
2555 #[doc(alias = "GST_VIDEO_FORMAT_RGB8P")]
2557 Rgb8p,
2558 #[doc(alias = "GST_VIDEO_FORMAT_YUV9")]
2560 Yuv9,
2561 #[doc(alias = "GST_VIDEO_FORMAT_YVU9")]
2563 Yvu9,
2564 #[doc(alias = "GST_VIDEO_FORMAT_IYU1")]
2566 Iyu1,
2567 #[doc(alias = "GST_VIDEO_FORMAT_ARGB64")]
2569 Argb64,
2570 #[doc(alias = "GST_VIDEO_FORMAT_AYUV64")]
2572 Ayuv64,
2573 #[doc(alias = "GST_VIDEO_FORMAT_r210")]
2575 R210,
2576 #[doc(alias = "GST_VIDEO_FORMAT_I420_10BE")]
2578 I42010be,
2579 #[doc(alias = "GST_VIDEO_FORMAT_I420_10LE")]
2581 I42010le,
2582 #[doc(alias = "GST_VIDEO_FORMAT_I422_10BE")]
2584 I42210be,
2585 #[doc(alias = "GST_VIDEO_FORMAT_I422_10LE")]
2587 I42210le,
2588 #[doc(alias = "GST_VIDEO_FORMAT_Y444_10BE")]
2590 Y44410be,
2591 #[doc(alias = "GST_VIDEO_FORMAT_Y444_10LE")]
2593 Y44410le,
2594 #[doc(alias = "GST_VIDEO_FORMAT_GBR")]
2596 Gbr,
2597 #[doc(alias = "GST_VIDEO_FORMAT_GBR_10BE")]
2599 Gbr10be,
2600 #[doc(alias = "GST_VIDEO_FORMAT_GBR_10LE")]
2602 Gbr10le,
2603 #[doc(alias = "GST_VIDEO_FORMAT_NV16")]
2605 Nv16,
2606 #[doc(alias = "GST_VIDEO_FORMAT_NV24")]
2608 Nv24,
2609 #[doc(alias = "GST_VIDEO_FORMAT_NV12_64Z32")]
2611 Nv1264z32,
2612 #[doc(alias = "GST_VIDEO_FORMAT_A420_10BE")]
2614 A42010be,
2615 #[doc(alias = "GST_VIDEO_FORMAT_A420_10LE")]
2617 A42010le,
2618 #[doc(alias = "GST_VIDEO_FORMAT_A422_10BE")]
2620 A42210be,
2621 #[doc(alias = "GST_VIDEO_FORMAT_A422_10LE")]
2623 A42210le,
2624 #[doc(alias = "GST_VIDEO_FORMAT_A444_10BE")]
2626 A44410be,
2627 #[doc(alias = "GST_VIDEO_FORMAT_A444_10LE")]
2629 A44410le,
2630 #[doc(alias = "GST_VIDEO_FORMAT_NV61")]
2632 Nv61,
2633 #[doc(alias = "GST_VIDEO_FORMAT_P010_10BE")]
2635 P01010be,
2636 #[doc(alias = "GST_VIDEO_FORMAT_P010_10LE")]
2638 P01010le,
2639 #[doc(alias = "GST_VIDEO_FORMAT_IYU2")]
2641 Iyu2,
2642 #[doc(alias = "GST_VIDEO_FORMAT_VYUY")]
2644 Vyuy,
2645 #[doc(alias = "GST_VIDEO_FORMAT_GBRA")]
2647 Gbra,
2648 #[doc(alias = "GST_VIDEO_FORMAT_GBRA_10BE")]
2650 Gbra10be,
2651 #[doc(alias = "GST_VIDEO_FORMAT_GBRA_10LE")]
2653 Gbra10le,
2654 #[doc(alias = "GST_VIDEO_FORMAT_GBR_12BE")]
2656 Gbr12be,
2657 #[doc(alias = "GST_VIDEO_FORMAT_GBR_12LE")]
2659 Gbr12le,
2660 #[doc(alias = "GST_VIDEO_FORMAT_GBRA_12BE")]
2662 Gbra12be,
2663 #[doc(alias = "GST_VIDEO_FORMAT_GBRA_12LE")]
2665 Gbra12le,
2666 #[doc(alias = "GST_VIDEO_FORMAT_I420_12BE")]
2668 I42012be,
2669 #[doc(alias = "GST_VIDEO_FORMAT_I420_12LE")]
2671 I42012le,
2672 #[doc(alias = "GST_VIDEO_FORMAT_I422_12BE")]
2674 I42212be,
2675 #[doc(alias = "GST_VIDEO_FORMAT_I422_12LE")]
2677 I42212le,
2678 #[doc(alias = "GST_VIDEO_FORMAT_Y444_12BE")]
2680 Y44412be,
2681 #[doc(alias = "GST_VIDEO_FORMAT_Y444_12LE")]
2683 Y44412le,
2684 #[doc(alias = "GST_VIDEO_FORMAT_GRAY10_LE32")]
2686 Gray10Le32,
2687 #[doc(alias = "GST_VIDEO_FORMAT_NV12_10LE32")]
2689 Nv1210le32,
2690 #[doc(alias = "GST_VIDEO_FORMAT_NV16_10LE32")]
2692 Nv1610le32,
2693 #[cfg(feature = "v1_16")]
2695 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2696 #[doc(alias = "GST_VIDEO_FORMAT_NV12_10LE40")]
2697 Nv1210le40,
2698 #[cfg(feature = "v1_16")]
2700 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2701 #[doc(alias = "GST_VIDEO_FORMAT_Y210")]
2702 Y210,
2703 #[cfg(feature = "v1_16")]
2705 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2706 #[doc(alias = "GST_VIDEO_FORMAT_Y410")]
2707 Y410,
2708 #[cfg(feature = "v1_16")]
2710 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2711 #[doc(alias = "GST_VIDEO_FORMAT_VUYA")]
2712 Vuya,
2713 #[cfg(feature = "v1_16")]
2715 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2716 #[doc(alias = "GST_VIDEO_FORMAT_BGR10A2_LE")]
2717 Bgr10a2Le,
2718 #[cfg(feature = "v1_18")]
2720 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2721 #[doc(alias = "GST_VIDEO_FORMAT_RGB10A2_LE")]
2722 Rgb10a2Le,
2723 #[cfg(feature = "v1_18")]
2725 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2726 #[doc(alias = "GST_VIDEO_FORMAT_Y444_16BE")]
2727 Y44416be,
2728 #[cfg(feature = "v1_18")]
2730 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2731 #[doc(alias = "GST_VIDEO_FORMAT_Y444_16LE")]
2732 Y44416le,
2733 #[cfg(feature = "v1_18")]
2735 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2736 #[doc(alias = "GST_VIDEO_FORMAT_P016_BE")]
2737 P016Be,
2738 #[cfg(feature = "v1_18")]
2740 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2741 #[doc(alias = "GST_VIDEO_FORMAT_P016_LE")]
2742 P016Le,
2743 #[cfg(feature = "v1_18")]
2745 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2746 #[doc(alias = "GST_VIDEO_FORMAT_P012_BE")]
2747 P012Be,
2748 #[cfg(feature = "v1_18")]
2750 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2751 #[doc(alias = "GST_VIDEO_FORMAT_P012_LE")]
2752 P012Le,
2753 #[cfg(feature = "v1_18")]
2755 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2756 #[doc(alias = "GST_VIDEO_FORMAT_Y212_BE")]
2757 Y212Be,
2758 #[cfg(feature = "v1_18")]
2760 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2761 #[doc(alias = "GST_VIDEO_FORMAT_Y212_LE")]
2762 Y212Le,
2763 #[cfg(feature = "v1_18")]
2765 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2766 #[doc(alias = "GST_VIDEO_FORMAT_Y412_BE")]
2767 Y412Be,
2768 #[cfg(feature = "v1_18")]
2770 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2771 #[doc(alias = "GST_VIDEO_FORMAT_Y412_LE")]
2772 Y412Le,
2773 #[cfg(feature = "v1_18")]
2775 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2776 #[doc(alias = "GST_VIDEO_FORMAT_NV12_4L4")]
2777 Nv124l4,
2778 #[cfg(feature = "v1_18")]
2780 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2781 #[doc(alias = "GST_VIDEO_FORMAT_NV12_32L32")]
2782 Nv1232l32,
2783 #[cfg(feature = "v1_20")]
2785 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2786 #[doc(alias = "GST_VIDEO_FORMAT_RGBP")]
2787 Rgbp,
2788 #[cfg(feature = "v1_20")]
2790 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2791 #[doc(alias = "GST_VIDEO_FORMAT_BGRP")]
2792 Bgrp,
2793 #[cfg(feature = "v1_20")]
2796 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2797 #[doc(alias = "GST_VIDEO_FORMAT_AV12")]
2798 Av12,
2799 #[cfg(feature = "v1_20")]
2802 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2803 #[doc(alias = "GST_VIDEO_FORMAT_ARGB64_LE")]
2804 Argb64Le,
2805 #[cfg(feature = "v1_20")]
2808 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2809 #[doc(alias = "GST_VIDEO_FORMAT_ARGB64_BE")]
2810 Argb64Be,
2811 #[cfg(feature = "v1_20")]
2814 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2815 #[doc(alias = "GST_VIDEO_FORMAT_RGBA64_LE")]
2816 Rgba64Le,
2817 #[cfg(feature = "v1_20")]
2820 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2821 #[doc(alias = "GST_VIDEO_FORMAT_RGBA64_BE")]
2822 Rgba64Be,
2823 #[cfg(feature = "v1_20")]
2826 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2827 #[doc(alias = "GST_VIDEO_FORMAT_BGRA64_LE")]
2828 Bgra64Le,
2829 #[cfg(feature = "v1_20")]
2832 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2833 #[doc(alias = "GST_VIDEO_FORMAT_BGRA64_BE")]
2834 Bgra64Be,
2835 #[cfg(feature = "v1_20")]
2838 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2839 #[doc(alias = "GST_VIDEO_FORMAT_ABGR64_LE")]
2840 Abgr64Le,
2841 #[cfg(feature = "v1_20")]
2844 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2845 #[doc(alias = "GST_VIDEO_FORMAT_ABGR64_BE")]
2846 Abgr64Be,
2847 #[cfg(feature = "v1_22")]
2849 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
2850 #[doc(alias = "GST_VIDEO_FORMAT_NV12_16L32S")]
2851 Nv1216l32s,
2852 #[cfg(feature = "v1_22")]
2854 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
2855 #[doc(alias = "GST_VIDEO_FORMAT_NV12_8L128")]
2856 Nv128l128,
2857 #[cfg(feature = "v1_22")]
2859 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
2860 #[doc(alias = "GST_VIDEO_FORMAT_NV12_10BE_8L128")]
2861 Nv1210be8l128,
2862 #[cfg(feature = "v1_24")]
2865 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2866 #[doc(alias = "GST_VIDEO_FORMAT_NV12_10LE40_4L4")]
2867 Nv1210le404l4,
2868 #[cfg(feature = "v1_24")]
2873 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2874 #[doc(alias = "GST_VIDEO_FORMAT_DMA_DRM")]
2875 DmaDrm,
2876 #[cfg(feature = "v1_24")]
2879 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2880 #[doc(alias = "GST_VIDEO_FORMAT_MT2110T")]
2881 Mt2110t,
2882 #[cfg(feature = "v1_24")]
2885 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2886 #[doc(alias = "GST_VIDEO_FORMAT_MT2110R")]
2887 Mt2110r,
2888 #[cfg(feature = "v1_24")]
2890 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2891 #[doc(alias = "GST_VIDEO_FORMAT_A422")]
2892 A422,
2893 #[cfg(feature = "v1_24")]
2895 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2896 #[doc(alias = "GST_VIDEO_FORMAT_A444")]
2897 A444,
2898 #[cfg(feature = "v1_24")]
2900 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2901 #[doc(alias = "GST_VIDEO_FORMAT_A444_12LE")]
2902 A44412le,
2903 #[cfg(feature = "v1_24")]
2905 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2906 #[doc(alias = "GST_VIDEO_FORMAT_A444_12BE")]
2907 A44412be,
2908 #[cfg(feature = "v1_24")]
2910 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2911 #[doc(alias = "GST_VIDEO_FORMAT_A422_12LE")]
2912 A42212le,
2913 #[cfg(feature = "v1_24")]
2915 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2916 #[doc(alias = "GST_VIDEO_FORMAT_A422_12BE")]
2917 A42212be,
2918 #[cfg(feature = "v1_24")]
2920 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2921 #[doc(alias = "GST_VIDEO_FORMAT_A420_12LE")]
2922 A42012le,
2923 #[cfg(feature = "v1_24")]
2925 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2926 #[doc(alias = "GST_VIDEO_FORMAT_A420_12BE")]
2927 A42012be,
2928 #[cfg(feature = "v1_24")]
2930 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2931 #[doc(alias = "GST_VIDEO_FORMAT_A444_16LE")]
2932 A44416le,
2933 #[cfg(feature = "v1_24")]
2935 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2936 #[doc(alias = "GST_VIDEO_FORMAT_A444_16BE")]
2937 A44416be,
2938 #[cfg(feature = "v1_24")]
2940 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2941 #[doc(alias = "GST_VIDEO_FORMAT_A422_16LE")]
2942 A42216le,
2943 #[cfg(feature = "v1_24")]
2945 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2946 #[doc(alias = "GST_VIDEO_FORMAT_A422_16BE")]
2947 A42216be,
2948 #[cfg(feature = "v1_24")]
2950 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2951 #[doc(alias = "GST_VIDEO_FORMAT_A420_16LE")]
2952 A42016le,
2953 #[cfg(feature = "v1_24")]
2955 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2956 #[doc(alias = "GST_VIDEO_FORMAT_A420_16BE")]
2957 A42016be,
2958 #[cfg(feature = "v1_24")]
2960 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2961 #[doc(alias = "GST_VIDEO_FORMAT_GBR_16LE")]
2962 Gbr16le,
2963 #[cfg(feature = "v1_24")]
2965 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2966 #[doc(alias = "GST_VIDEO_FORMAT_GBR_16BE")]
2967 Gbr16be,
2968 #[cfg(feature = "v1_24")]
2970 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2971 #[doc(alias = "GST_VIDEO_FORMAT_RBGA")]
2972 Rbga,
2973 #[cfg(feature = "v1_26")]
2975 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
2976 #[doc(alias = "GST_VIDEO_FORMAT_Y216_LE")]
2977 Y216Le,
2978 #[cfg(feature = "v1_26")]
2980 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
2981 #[doc(alias = "GST_VIDEO_FORMAT_Y216_BE")]
2982 Y216Be,
2983 #[cfg(feature = "v1_26")]
2985 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
2986 #[doc(alias = "GST_VIDEO_FORMAT_Y416_LE")]
2987 Y416Le,
2988 #[cfg(feature = "v1_26")]
2990 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
2991 #[doc(alias = "GST_VIDEO_FORMAT_Y416_BE")]
2992 Y416Be,
2993 #[cfg(feature = "v1_26")]
2995 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
2996 #[doc(alias = "GST_VIDEO_FORMAT_GRAY10_LE16")]
2997 Gray10Le16,
2998 #[cfg(feature = "v1_28")]
3000 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
3001 #[doc(alias = "GST_VIDEO_FORMAT_NV16_10LE40")]
3002 Nv1610le40,
3003 #[cfg(feature = "v1_28")]
3005 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
3006 #[doc(alias = "GST_VIDEO_FORMAT_BGR10x2_LE")]
3007 Bgr10x2Le,
3008 #[cfg(feature = "v1_28")]
3010 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
3011 #[doc(alias = "GST_VIDEO_FORMAT_RGB10x2_LE")]
3012 Rgb10x2Le,
3013 #[cfg(feature = "v1_30")]
3017 #[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
3018 #[doc(alias = "GST_VIDEO_FORMAT_AHARDWARE_BUFFER")]
3019 AhardwareBuffer,
3020 #[doc(hidden)]
3021 __Unknown(i32),
3022}
3023
3024impl VideoFormat {
3025 #[doc(alias = "gst_video_format_from_fourcc")]
3026 pub fn from_fourcc(fourcc: u32) -> VideoFormat {
3027 assert_initialized_main_thread!();
3028 unsafe { from_glib(ffi::gst_video_format_from_fourcc(fourcc)) }
3029 }
3030
3031 #[doc(alias = "gst_video_format_from_string")]
3032 pub fn from_string(format: &str) -> VideoFormat {
3033 assert_initialized_main_thread!();
3034 unsafe { from_glib(ffi::gst_video_format_from_string(format.to_glib_none().0)) }
3035 }
3036
3037 #[doc(alias = "gst_video_format_to_fourcc")]
3044 pub fn to_fourcc(self) -> u32 {
3045 assert_initialized_main_thread!();
3046 unsafe { ffi::gst_video_format_to_fourcc(self.into_glib()) }
3047 }
3048}
3049
3050impl std::fmt::Display for VideoFormat {
3051 #[inline]
3052 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3053 f.write_str(&self.to_str())
3054 }
3055}
3056
3057#[doc(hidden)]
3058impl IntoGlib for VideoFormat {
3059 type GlibType = ffi::GstVideoFormat;
3060
3061 fn into_glib(self) -> ffi::GstVideoFormat {
3062 match self {
3063 Self::Unknown => ffi::GST_VIDEO_FORMAT_UNKNOWN,
3064 Self::Encoded => ffi::GST_VIDEO_FORMAT_ENCODED,
3065 Self::I420 => ffi::GST_VIDEO_FORMAT_I420,
3066 Self::Yv12 => ffi::GST_VIDEO_FORMAT_YV12,
3067 Self::Yuy2 => ffi::GST_VIDEO_FORMAT_YUY2,
3068 Self::Uyvy => ffi::GST_VIDEO_FORMAT_UYVY,
3069 Self::Ayuv => ffi::GST_VIDEO_FORMAT_AYUV,
3070 Self::Rgbx => ffi::GST_VIDEO_FORMAT_RGBx,
3071 Self::Bgrx => ffi::GST_VIDEO_FORMAT_BGRx,
3072 Self::Xrgb => ffi::GST_VIDEO_FORMAT_xRGB,
3073 Self::Xbgr => ffi::GST_VIDEO_FORMAT_xBGR,
3074 Self::Rgba => ffi::GST_VIDEO_FORMAT_RGBA,
3075 Self::Bgra => ffi::GST_VIDEO_FORMAT_BGRA,
3076 Self::Argb => ffi::GST_VIDEO_FORMAT_ARGB,
3077 Self::Abgr => ffi::GST_VIDEO_FORMAT_ABGR,
3078 Self::Rgb => ffi::GST_VIDEO_FORMAT_RGB,
3079 Self::Bgr => ffi::GST_VIDEO_FORMAT_BGR,
3080 Self::Y41b => ffi::GST_VIDEO_FORMAT_Y41B,
3081 Self::Y42b => ffi::GST_VIDEO_FORMAT_Y42B,
3082 Self::Yvyu => ffi::GST_VIDEO_FORMAT_YVYU,
3083 Self::Y444 => ffi::GST_VIDEO_FORMAT_Y444,
3084 Self::V210 => ffi::GST_VIDEO_FORMAT_v210,
3085 Self::V216 => ffi::GST_VIDEO_FORMAT_v216,
3086 Self::Nv12 => ffi::GST_VIDEO_FORMAT_NV12,
3087 Self::Nv21 => ffi::GST_VIDEO_FORMAT_NV21,
3088 Self::Gray8 => ffi::GST_VIDEO_FORMAT_GRAY8,
3089 Self::Gray16Be => ffi::GST_VIDEO_FORMAT_GRAY16_BE,
3090 Self::Gray16Le => ffi::GST_VIDEO_FORMAT_GRAY16_LE,
3091 Self::V308 => ffi::GST_VIDEO_FORMAT_v308,
3092 Self::Rgb16 => ffi::GST_VIDEO_FORMAT_RGB16,
3093 Self::Bgr16 => ffi::GST_VIDEO_FORMAT_BGR16,
3094 Self::Rgb15 => ffi::GST_VIDEO_FORMAT_RGB15,
3095 Self::Bgr15 => ffi::GST_VIDEO_FORMAT_BGR15,
3096 Self::Uyvp => ffi::GST_VIDEO_FORMAT_UYVP,
3097 Self::A420 => ffi::GST_VIDEO_FORMAT_A420,
3098 Self::Rgb8p => ffi::GST_VIDEO_FORMAT_RGB8P,
3099 Self::Yuv9 => ffi::GST_VIDEO_FORMAT_YUV9,
3100 Self::Yvu9 => ffi::GST_VIDEO_FORMAT_YVU9,
3101 Self::Iyu1 => ffi::GST_VIDEO_FORMAT_IYU1,
3102 Self::Argb64 => ffi::GST_VIDEO_FORMAT_ARGB64,
3103 Self::Ayuv64 => ffi::GST_VIDEO_FORMAT_AYUV64,
3104 Self::R210 => ffi::GST_VIDEO_FORMAT_r210,
3105 Self::I42010be => ffi::GST_VIDEO_FORMAT_I420_10BE,
3106 Self::I42010le => ffi::GST_VIDEO_FORMAT_I420_10LE,
3107 Self::I42210be => ffi::GST_VIDEO_FORMAT_I422_10BE,
3108 Self::I42210le => ffi::GST_VIDEO_FORMAT_I422_10LE,
3109 Self::Y44410be => ffi::GST_VIDEO_FORMAT_Y444_10BE,
3110 Self::Y44410le => ffi::GST_VIDEO_FORMAT_Y444_10LE,
3111 Self::Gbr => ffi::GST_VIDEO_FORMAT_GBR,
3112 Self::Gbr10be => ffi::GST_VIDEO_FORMAT_GBR_10BE,
3113 Self::Gbr10le => ffi::GST_VIDEO_FORMAT_GBR_10LE,
3114 Self::Nv16 => ffi::GST_VIDEO_FORMAT_NV16,
3115 Self::Nv24 => ffi::GST_VIDEO_FORMAT_NV24,
3116 Self::Nv1264z32 => ffi::GST_VIDEO_FORMAT_NV12_64Z32,
3117 Self::A42010be => ffi::GST_VIDEO_FORMAT_A420_10BE,
3118 Self::A42010le => ffi::GST_VIDEO_FORMAT_A420_10LE,
3119 Self::A42210be => ffi::GST_VIDEO_FORMAT_A422_10BE,
3120 Self::A42210le => ffi::GST_VIDEO_FORMAT_A422_10LE,
3121 Self::A44410be => ffi::GST_VIDEO_FORMAT_A444_10BE,
3122 Self::A44410le => ffi::GST_VIDEO_FORMAT_A444_10LE,
3123 Self::Nv61 => ffi::GST_VIDEO_FORMAT_NV61,
3124 Self::P01010be => ffi::GST_VIDEO_FORMAT_P010_10BE,
3125 Self::P01010le => ffi::GST_VIDEO_FORMAT_P010_10LE,
3126 Self::Iyu2 => ffi::GST_VIDEO_FORMAT_IYU2,
3127 Self::Vyuy => ffi::GST_VIDEO_FORMAT_VYUY,
3128 Self::Gbra => ffi::GST_VIDEO_FORMAT_GBRA,
3129 Self::Gbra10be => ffi::GST_VIDEO_FORMAT_GBRA_10BE,
3130 Self::Gbra10le => ffi::GST_VIDEO_FORMAT_GBRA_10LE,
3131 Self::Gbr12be => ffi::GST_VIDEO_FORMAT_GBR_12BE,
3132 Self::Gbr12le => ffi::GST_VIDEO_FORMAT_GBR_12LE,
3133 Self::Gbra12be => ffi::GST_VIDEO_FORMAT_GBRA_12BE,
3134 Self::Gbra12le => ffi::GST_VIDEO_FORMAT_GBRA_12LE,
3135 Self::I42012be => ffi::GST_VIDEO_FORMAT_I420_12BE,
3136 Self::I42012le => ffi::GST_VIDEO_FORMAT_I420_12LE,
3137 Self::I42212be => ffi::GST_VIDEO_FORMAT_I422_12BE,
3138 Self::I42212le => ffi::GST_VIDEO_FORMAT_I422_12LE,
3139 Self::Y44412be => ffi::GST_VIDEO_FORMAT_Y444_12BE,
3140 Self::Y44412le => ffi::GST_VIDEO_FORMAT_Y444_12LE,
3141 Self::Gray10Le32 => ffi::GST_VIDEO_FORMAT_GRAY10_LE32,
3142 Self::Nv1210le32 => ffi::GST_VIDEO_FORMAT_NV12_10LE32,
3143 Self::Nv1610le32 => ffi::GST_VIDEO_FORMAT_NV16_10LE32,
3144 #[cfg(feature = "v1_16")]
3145 Self::Nv1210le40 => ffi::GST_VIDEO_FORMAT_NV12_10LE40,
3146 #[cfg(feature = "v1_16")]
3147 Self::Y210 => ffi::GST_VIDEO_FORMAT_Y210,
3148 #[cfg(feature = "v1_16")]
3149 Self::Y410 => ffi::GST_VIDEO_FORMAT_Y410,
3150 #[cfg(feature = "v1_16")]
3151 Self::Vuya => ffi::GST_VIDEO_FORMAT_VUYA,
3152 #[cfg(feature = "v1_16")]
3153 Self::Bgr10a2Le => ffi::GST_VIDEO_FORMAT_BGR10A2_LE,
3154 #[cfg(feature = "v1_18")]
3155 Self::Rgb10a2Le => ffi::GST_VIDEO_FORMAT_RGB10A2_LE,
3156 #[cfg(feature = "v1_18")]
3157 Self::Y44416be => ffi::GST_VIDEO_FORMAT_Y444_16BE,
3158 #[cfg(feature = "v1_18")]
3159 Self::Y44416le => ffi::GST_VIDEO_FORMAT_Y444_16LE,
3160 #[cfg(feature = "v1_18")]
3161 Self::P016Be => ffi::GST_VIDEO_FORMAT_P016_BE,
3162 #[cfg(feature = "v1_18")]
3163 Self::P016Le => ffi::GST_VIDEO_FORMAT_P016_LE,
3164 #[cfg(feature = "v1_18")]
3165 Self::P012Be => ffi::GST_VIDEO_FORMAT_P012_BE,
3166 #[cfg(feature = "v1_18")]
3167 Self::P012Le => ffi::GST_VIDEO_FORMAT_P012_LE,
3168 #[cfg(feature = "v1_18")]
3169 Self::Y212Be => ffi::GST_VIDEO_FORMAT_Y212_BE,
3170 #[cfg(feature = "v1_18")]
3171 Self::Y212Le => ffi::GST_VIDEO_FORMAT_Y212_LE,
3172 #[cfg(feature = "v1_18")]
3173 Self::Y412Be => ffi::GST_VIDEO_FORMAT_Y412_BE,
3174 #[cfg(feature = "v1_18")]
3175 Self::Y412Le => ffi::GST_VIDEO_FORMAT_Y412_LE,
3176 #[cfg(feature = "v1_18")]
3177 Self::Nv124l4 => ffi::GST_VIDEO_FORMAT_NV12_4L4,
3178 #[cfg(feature = "v1_18")]
3179 Self::Nv1232l32 => ffi::GST_VIDEO_FORMAT_NV12_32L32,
3180 #[cfg(feature = "v1_20")]
3181 Self::Rgbp => ffi::GST_VIDEO_FORMAT_RGBP,
3182 #[cfg(feature = "v1_20")]
3183 Self::Bgrp => ffi::GST_VIDEO_FORMAT_BGRP,
3184 #[cfg(feature = "v1_20")]
3185 Self::Av12 => ffi::GST_VIDEO_FORMAT_AV12,
3186 #[cfg(feature = "v1_20")]
3187 Self::Argb64Le => ffi::GST_VIDEO_FORMAT_ARGB64_LE,
3188 #[cfg(feature = "v1_20")]
3189 Self::Argb64Be => ffi::GST_VIDEO_FORMAT_ARGB64_BE,
3190 #[cfg(feature = "v1_20")]
3191 Self::Rgba64Le => ffi::GST_VIDEO_FORMAT_RGBA64_LE,
3192 #[cfg(feature = "v1_20")]
3193 Self::Rgba64Be => ffi::GST_VIDEO_FORMAT_RGBA64_BE,
3194 #[cfg(feature = "v1_20")]
3195 Self::Bgra64Le => ffi::GST_VIDEO_FORMAT_BGRA64_LE,
3196 #[cfg(feature = "v1_20")]
3197 Self::Bgra64Be => ffi::GST_VIDEO_FORMAT_BGRA64_BE,
3198 #[cfg(feature = "v1_20")]
3199 Self::Abgr64Le => ffi::GST_VIDEO_FORMAT_ABGR64_LE,
3200 #[cfg(feature = "v1_20")]
3201 Self::Abgr64Be => ffi::GST_VIDEO_FORMAT_ABGR64_BE,
3202 #[cfg(feature = "v1_22")]
3203 Self::Nv1216l32s => ffi::GST_VIDEO_FORMAT_NV12_16L32S,
3204 #[cfg(feature = "v1_22")]
3205 Self::Nv128l128 => ffi::GST_VIDEO_FORMAT_NV12_8L128,
3206 #[cfg(feature = "v1_22")]
3207 Self::Nv1210be8l128 => ffi::GST_VIDEO_FORMAT_NV12_10BE_8L128,
3208 #[cfg(feature = "v1_24")]
3209 Self::Nv1210le404l4 => ffi::GST_VIDEO_FORMAT_NV12_10LE40_4L4,
3210 #[cfg(feature = "v1_24")]
3211 Self::DmaDrm => ffi::GST_VIDEO_FORMAT_DMA_DRM,
3212 #[cfg(feature = "v1_24")]
3213 Self::Mt2110t => ffi::GST_VIDEO_FORMAT_MT2110T,
3214 #[cfg(feature = "v1_24")]
3215 Self::Mt2110r => ffi::GST_VIDEO_FORMAT_MT2110R,
3216 #[cfg(feature = "v1_24")]
3217 Self::A422 => ffi::GST_VIDEO_FORMAT_A422,
3218 #[cfg(feature = "v1_24")]
3219 Self::A444 => ffi::GST_VIDEO_FORMAT_A444,
3220 #[cfg(feature = "v1_24")]
3221 Self::A44412le => ffi::GST_VIDEO_FORMAT_A444_12LE,
3222 #[cfg(feature = "v1_24")]
3223 Self::A44412be => ffi::GST_VIDEO_FORMAT_A444_12BE,
3224 #[cfg(feature = "v1_24")]
3225 Self::A42212le => ffi::GST_VIDEO_FORMAT_A422_12LE,
3226 #[cfg(feature = "v1_24")]
3227 Self::A42212be => ffi::GST_VIDEO_FORMAT_A422_12BE,
3228 #[cfg(feature = "v1_24")]
3229 Self::A42012le => ffi::GST_VIDEO_FORMAT_A420_12LE,
3230 #[cfg(feature = "v1_24")]
3231 Self::A42012be => ffi::GST_VIDEO_FORMAT_A420_12BE,
3232 #[cfg(feature = "v1_24")]
3233 Self::A44416le => ffi::GST_VIDEO_FORMAT_A444_16LE,
3234 #[cfg(feature = "v1_24")]
3235 Self::A44416be => ffi::GST_VIDEO_FORMAT_A444_16BE,
3236 #[cfg(feature = "v1_24")]
3237 Self::A42216le => ffi::GST_VIDEO_FORMAT_A422_16LE,
3238 #[cfg(feature = "v1_24")]
3239 Self::A42216be => ffi::GST_VIDEO_FORMAT_A422_16BE,
3240 #[cfg(feature = "v1_24")]
3241 Self::A42016le => ffi::GST_VIDEO_FORMAT_A420_16LE,
3242 #[cfg(feature = "v1_24")]
3243 Self::A42016be => ffi::GST_VIDEO_FORMAT_A420_16BE,
3244 #[cfg(feature = "v1_24")]
3245 Self::Gbr16le => ffi::GST_VIDEO_FORMAT_GBR_16LE,
3246 #[cfg(feature = "v1_24")]
3247 Self::Gbr16be => ffi::GST_VIDEO_FORMAT_GBR_16BE,
3248 #[cfg(feature = "v1_24")]
3249 Self::Rbga => ffi::GST_VIDEO_FORMAT_RBGA,
3250 #[cfg(feature = "v1_26")]
3251 Self::Y216Le => ffi::GST_VIDEO_FORMAT_Y216_LE,
3252 #[cfg(feature = "v1_26")]
3253 Self::Y216Be => ffi::GST_VIDEO_FORMAT_Y216_BE,
3254 #[cfg(feature = "v1_26")]
3255 Self::Y416Le => ffi::GST_VIDEO_FORMAT_Y416_LE,
3256 #[cfg(feature = "v1_26")]
3257 Self::Y416Be => ffi::GST_VIDEO_FORMAT_Y416_BE,
3258 #[cfg(feature = "v1_26")]
3259 Self::Gray10Le16 => ffi::GST_VIDEO_FORMAT_GRAY10_LE16,
3260 #[cfg(feature = "v1_28")]
3261 Self::Nv1610le40 => ffi::GST_VIDEO_FORMAT_NV16_10LE40,
3262 #[cfg(feature = "v1_28")]
3263 Self::Bgr10x2Le => ffi::GST_VIDEO_FORMAT_BGR10x2_LE,
3264 #[cfg(feature = "v1_28")]
3265 Self::Rgb10x2Le => ffi::GST_VIDEO_FORMAT_RGB10x2_LE,
3266 #[cfg(feature = "v1_30")]
3267 Self::AhardwareBuffer => ffi::GST_VIDEO_FORMAT_AHARDWARE_BUFFER,
3268 Self::__Unknown(value) => value,
3269 }
3270 }
3271}
3272
3273#[doc(hidden)]
3274impl FromGlib<ffi::GstVideoFormat> for VideoFormat {
3275 unsafe fn from_glib(value: ffi::GstVideoFormat) -> Self {
3276 skip_assert_initialized!();
3277
3278 match value {
3279 ffi::GST_VIDEO_FORMAT_UNKNOWN => Self::Unknown,
3280 ffi::GST_VIDEO_FORMAT_ENCODED => Self::Encoded,
3281 ffi::GST_VIDEO_FORMAT_I420 => Self::I420,
3282 ffi::GST_VIDEO_FORMAT_YV12 => Self::Yv12,
3283 ffi::GST_VIDEO_FORMAT_YUY2 => Self::Yuy2,
3284 ffi::GST_VIDEO_FORMAT_UYVY => Self::Uyvy,
3285 ffi::GST_VIDEO_FORMAT_AYUV => Self::Ayuv,
3286 ffi::GST_VIDEO_FORMAT_RGBx => Self::Rgbx,
3287 ffi::GST_VIDEO_FORMAT_BGRx => Self::Bgrx,
3288 ffi::GST_VIDEO_FORMAT_xRGB => Self::Xrgb,
3289 ffi::GST_VIDEO_FORMAT_xBGR => Self::Xbgr,
3290 ffi::GST_VIDEO_FORMAT_RGBA => Self::Rgba,
3291 ffi::GST_VIDEO_FORMAT_BGRA => Self::Bgra,
3292 ffi::GST_VIDEO_FORMAT_ARGB => Self::Argb,
3293 ffi::GST_VIDEO_FORMAT_ABGR => Self::Abgr,
3294 ffi::GST_VIDEO_FORMAT_RGB => Self::Rgb,
3295 ffi::GST_VIDEO_FORMAT_BGR => Self::Bgr,
3296 ffi::GST_VIDEO_FORMAT_Y41B => Self::Y41b,
3297 ffi::GST_VIDEO_FORMAT_Y42B => Self::Y42b,
3298 ffi::GST_VIDEO_FORMAT_YVYU => Self::Yvyu,
3299 ffi::GST_VIDEO_FORMAT_Y444 => Self::Y444,
3300 ffi::GST_VIDEO_FORMAT_v210 => Self::V210,
3301 ffi::GST_VIDEO_FORMAT_v216 => Self::V216,
3302 ffi::GST_VIDEO_FORMAT_NV12 => Self::Nv12,
3303 ffi::GST_VIDEO_FORMAT_NV21 => Self::Nv21,
3304 ffi::GST_VIDEO_FORMAT_GRAY8 => Self::Gray8,
3305 ffi::GST_VIDEO_FORMAT_GRAY16_BE => Self::Gray16Be,
3306 ffi::GST_VIDEO_FORMAT_GRAY16_LE => Self::Gray16Le,
3307 ffi::GST_VIDEO_FORMAT_v308 => Self::V308,
3308 ffi::GST_VIDEO_FORMAT_RGB16 => Self::Rgb16,
3309 ffi::GST_VIDEO_FORMAT_BGR16 => Self::Bgr16,
3310 ffi::GST_VIDEO_FORMAT_RGB15 => Self::Rgb15,
3311 ffi::GST_VIDEO_FORMAT_BGR15 => Self::Bgr15,
3312 ffi::GST_VIDEO_FORMAT_UYVP => Self::Uyvp,
3313 ffi::GST_VIDEO_FORMAT_A420 => Self::A420,
3314 ffi::GST_VIDEO_FORMAT_RGB8P => Self::Rgb8p,
3315 ffi::GST_VIDEO_FORMAT_YUV9 => Self::Yuv9,
3316 ffi::GST_VIDEO_FORMAT_YVU9 => Self::Yvu9,
3317 ffi::GST_VIDEO_FORMAT_IYU1 => Self::Iyu1,
3318 ffi::GST_VIDEO_FORMAT_ARGB64 => Self::Argb64,
3319 ffi::GST_VIDEO_FORMAT_AYUV64 => Self::Ayuv64,
3320 ffi::GST_VIDEO_FORMAT_r210 => Self::R210,
3321 ffi::GST_VIDEO_FORMAT_I420_10BE => Self::I42010be,
3322 ffi::GST_VIDEO_FORMAT_I420_10LE => Self::I42010le,
3323 ffi::GST_VIDEO_FORMAT_I422_10BE => Self::I42210be,
3324 ffi::GST_VIDEO_FORMAT_I422_10LE => Self::I42210le,
3325 ffi::GST_VIDEO_FORMAT_Y444_10BE => Self::Y44410be,
3326 ffi::GST_VIDEO_FORMAT_Y444_10LE => Self::Y44410le,
3327 ffi::GST_VIDEO_FORMAT_GBR => Self::Gbr,
3328 ffi::GST_VIDEO_FORMAT_GBR_10BE => Self::Gbr10be,
3329 ffi::GST_VIDEO_FORMAT_GBR_10LE => Self::Gbr10le,
3330 ffi::GST_VIDEO_FORMAT_NV16 => Self::Nv16,
3331 ffi::GST_VIDEO_FORMAT_NV24 => Self::Nv24,
3332 ffi::GST_VIDEO_FORMAT_NV12_64Z32 => Self::Nv1264z32,
3333 ffi::GST_VIDEO_FORMAT_A420_10BE => Self::A42010be,
3334 ffi::GST_VIDEO_FORMAT_A420_10LE => Self::A42010le,
3335 ffi::GST_VIDEO_FORMAT_A422_10BE => Self::A42210be,
3336 ffi::GST_VIDEO_FORMAT_A422_10LE => Self::A42210le,
3337 ffi::GST_VIDEO_FORMAT_A444_10BE => Self::A44410be,
3338 ffi::GST_VIDEO_FORMAT_A444_10LE => Self::A44410le,
3339 ffi::GST_VIDEO_FORMAT_NV61 => Self::Nv61,
3340 ffi::GST_VIDEO_FORMAT_P010_10BE => Self::P01010be,
3341 ffi::GST_VIDEO_FORMAT_P010_10LE => Self::P01010le,
3342 ffi::GST_VIDEO_FORMAT_IYU2 => Self::Iyu2,
3343 ffi::GST_VIDEO_FORMAT_VYUY => Self::Vyuy,
3344 ffi::GST_VIDEO_FORMAT_GBRA => Self::Gbra,
3345 ffi::GST_VIDEO_FORMAT_GBRA_10BE => Self::Gbra10be,
3346 ffi::GST_VIDEO_FORMAT_GBRA_10LE => Self::Gbra10le,
3347 ffi::GST_VIDEO_FORMAT_GBR_12BE => Self::Gbr12be,
3348 ffi::GST_VIDEO_FORMAT_GBR_12LE => Self::Gbr12le,
3349 ffi::GST_VIDEO_FORMAT_GBRA_12BE => Self::Gbra12be,
3350 ffi::GST_VIDEO_FORMAT_GBRA_12LE => Self::Gbra12le,
3351 ffi::GST_VIDEO_FORMAT_I420_12BE => Self::I42012be,
3352 ffi::GST_VIDEO_FORMAT_I420_12LE => Self::I42012le,
3353 ffi::GST_VIDEO_FORMAT_I422_12BE => Self::I42212be,
3354 ffi::GST_VIDEO_FORMAT_I422_12LE => Self::I42212le,
3355 ffi::GST_VIDEO_FORMAT_Y444_12BE => Self::Y44412be,
3356 ffi::GST_VIDEO_FORMAT_Y444_12LE => Self::Y44412le,
3357 ffi::GST_VIDEO_FORMAT_GRAY10_LE32 => Self::Gray10Le32,
3358 ffi::GST_VIDEO_FORMAT_NV12_10LE32 => Self::Nv1210le32,
3359 ffi::GST_VIDEO_FORMAT_NV16_10LE32 => Self::Nv1610le32,
3360 #[cfg(feature = "v1_16")]
3361 ffi::GST_VIDEO_FORMAT_NV12_10LE40 => Self::Nv1210le40,
3362 #[cfg(feature = "v1_16")]
3363 ffi::GST_VIDEO_FORMAT_Y210 => Self::Y210,
3364 #[cfg(feature = "v1_16")]
3365 ffi::GST_VIDEO_FORMAT_Y410 => Self::Y410,
3366 #[cfg(feature = "v1_16")]
3367 ffi::GST_VIDEO_FORMAT_VUYA => Self::Vuya,
3368 #[cfg(feature = "v1_16")]
3369 ffi::GST_VIDEO_FORMAT_BGR10A2_LE => Self::Bgr10a2Le,
3370 #[cfg(feature = "v1_18")]
3371 ffi::GST_VIDEO_FORMAT_RGB10A2_LE => Self::Rgb10a2Le,
3372 #[cfg(feature = "v1_18")]
3373 ffi::GST_VIDEO_FORMAT_Y444_16BE => Self::Y44416be,
3374 #[cfg(feature = "v1_18")]
3375 ffi::GST_VIDEO_FORMAT_Y444_16LE => Self::Y44416le,
3376 #[cfg(feature = "v1_18")]
3377 ffi::GST_VIDEO_FORMAT_P016_BE => Self::P016Be,
3378 #[cfg(feature = "v1_18")]
3379 ffi::GST_VIDEO_FORMAT_P016_LE => Self::P016Le,
3380 #[cfg(feature = "v1_18")]
3381 ffi::GST_VIDEO_FORMAT_P012_BE => Self::P012Be,
3382 #[cfg(feature = "v1_18")]
3383 ffi::GST_VIDEO_FORMAT_P012_LE => Self::P012Le,
3384 #[cfg(feature = "v1_18")]
3385 ffi::GST_VIDEO_FORMAT_Y212_BE => Self::Y212Be,
3386 #[cfg(feature = "v1_18")]
3387 ffi::GST_VIDEO_FORMAT_Y212_LE => Self::Y212Le,
3388 #[cfg(feature = "v1_18")]
3389 ffi::GST_VIDEO_FORMAT_Y412_BE => Self::Y412Be,
3390 #[cfg(feature = "v1_18")]
3391 ffi::GST_VIDEO_FORMAT_Y412_LE => Self::Y412Le,
3392 #[cfg(feature = "v1_18")]
3393 ffi::GST_VIDEO_FORMAT_NV12_4L4 => Self::Nv124l4,
3394 #[cfg(feature = "v1_18")]
3395 ffi::GST_VIDEO_FORMAT_NV12_32L32 => Self::Nv1232l32,
3396 #[cfg(feature = "v1_20")]
3397 ffi::GST_VIDEO_FORMAT_RGBP => Self::Rgbp,
3398 #[cfg(feature = "v1_20")]
3399 ffi::GST_VIDEO_FORMAT_BGRP => Self::Bgrp,
3400 #[cfg(feature = "v1_20")]
3401 ffi::GST_VIDEO_FORMAT_AV12 => Self::Av12,
3402 #[cfg(feature = "v1_20")]
3403 ffi::GST_VIDEO_FORMAT_ARGB64_LE => Self::Argb64Le,
3404 #[cfg(feature = "v1_20")]
3405 ffi::GST_VIDEO_FORMAT_ARGB64_BE => Self::Argb64Be,
3406 #[cfg(feature = "v1_20")]
3407 ffi::GST_VIDEO_FORMAT_RGBA64_LE => Self::Rgba64Le,
3408 #[cfg(feature = "v1_20")]
3409 ffi::GST_VIDEO_FORMAT_RGBA64_BE => Self::Rgba64Be,
3410 #[cfg(feature = "v1_20")]
3411 ffi::GST_VIDEO_FORMAT_BGRA64_LE => Self::Bgra64Le,
3412 #[cfg(feature = "v1_20")]
3413 ffi::GST_VIDEO_FORMAT_BGRA64_BE => Self::Bgra64Be,
3414 #[cfg(feature = "v1_20")]
3415 ffi::GST_VIDEO_FORMAT_ABGR64_LE => Self::Abgr64Le,
3416 #[cfg(feature = "v1_20")]
3417 ffi::GST_VIDEO_FORMAT_ABGR64_BE => Self::Abgr64Be,
3418 #[cfg(feature = "v1_22")]
3419 ffi::GST_VIDEO_FORMAT_NV12_16L32S => Self::Nv1216l32s,
3420 #[cfg(feature = "v1_22")]
3421 ffi::GST_VIDEO_FORMAT_NV12_8L128 => Self::Nv128l128,
3422 #[cfg(feature = "v1_22")]
3423 ffi::GST_VIDEO_FORMAT_NV12_10BE_8L128 => Self::Nv1210be8l128,
3424 #[cfg(feature = "v1_24")]
3425 ffi::GST_VIDEO_FORMAT_NV12_10LE40_4L4 => Self::Nv1210le404l4,
3426 #[cfg(feature = "v1_24")]
3427 ffi::GST_VIDEO_FORMAT_DMA_DRM => Self::DmaDrm,
3428 #[cfg(feature = "v1_24")]
3429 ffi::GST_VIDEO_FORMAT_MT2110T => Self::Mt2110t,
3430 #[cfg(feature = "v1_24")]
3431 ffi::GST_VIDEO_FORMAT_MT2110R => Self::Mt2110r,
3432 #[cfg(feature = "v1_24")]
3433 ffi::GST_VIDEO_FORMAT_A422 => Self::A422,
3434 #[cfg(feature = "v1_24")]
3435 ffi::GST_VIDEO_FORMAT_A444 => Self::A444,
3436 #[cfg(feature = "v1_24")]
3437 ffi::GST_VIDEO_FORMAT_A444_12LE => Self::A44412le,
3438 #[cfg(feature = "v1_24")]
3439 ffi::GST_VIDEO_FORMAT_A444_12BE => Self::A44412be,
3440 #[cfg(feature = "v1_24")]
3441 ffi::GST_VIDEO_FORMAT_A422_12LE => Self::A42212le,
3442 #[cfg(feature = "v1_24")]
3443 ffi::GST_VIDEO_FORMAT_A422_12BE => Self::A42212be,
3444 #[cfg(feature = "v1_24")]
3445 ffi::GST_VIDEO_FORMAT_A420_12LE => Self::A42012le,
3446 #[cfg(feature = "v1_24")]
3447 ffi::GST_VIDEO_FORMAT_A420_12BE => Self::A42012be,
3448 #[cfg(feature = "v1_24")]
3449 ffi::GST_VIDEO_FORMAT_A444_16LE => Self::A44416le,
3450 #[cfg(feature = "v1_24")]
3451 ffi::GST_VIDEO_FORMAT_A444_16BE => Self::A44416be,
3452 #[cfg(feature = "v1_24")]
3453 ffi::GST_VIDEO_FORMAT_A422_16LE => Self::A42216le,
3454 #[cfg(feature = "v1_24")]
3455 ffi::GST_VIDEO_FORMAT_A422_16BE => Self::A42216be,
3456 #[cfg(feature = "v1_24")]
3457 ffi::GST_VIDEO_FORMAT_A420_16LE => Self::A42016le,
3458 #[cfg(feature = "v1_24")]
3459 ffi::GST_VIDEO_FORMAT_A420_16BE => Self::A42016be,
3460 #[cfg(feature = "v1_24")]
3461 ffi::GST_VIDEO_FORMAT_GBR_16LE => Self::Gbr16le,
3462 #[cfg(feature = "v1_24")]
3463 ffi::GST_VIDEO_FORMAT_GBR_16BE => Self::Gbr16be,
3464 #[cfg(feature = "v1_24")]
3465 ffi::GST_VIDEO_FORMAT_RBGA => Self::Rbga,
3466 #[cfg(feature = "v1_26")]
3467 ffi::GST_VIDEO_FORMAT_Y216_LE => Self::Y216Le,
3468 #[cfg(feature = "v1_26")]
3469 ffi::GST_VIDEO_FORMAT_Y216_BE => Self::Y216Be,
3470 #[cfg(feature = "v1_26")]
3471 ffi::GST_VIDEO_FORMAT_Y416_LE => Self::Y416Le,
3472 #[cfg(feature = "v1_26")]
3473 ffi::GST_VIDEO_FORMAT_Y416_BE => Self::Y416Be,
3474 #[cfg(feature = "v1_26")]
3475 ffi::GST_VIDEO_FORMAT_GRAY10_LE16 => Self::Gray10Le16,
3476 #[cfg(feature = "v1_28")]
3477 ffi::GST_VIDEO_FORMAT_NV16_10LE40 => Self::Nv1610le40,
3478 #[cfg(feature = "v1_28")]
3479 ffi::GST_VIDEO_FORMAT_BGR10x2_LE => Self::Bgr10x2Le,
3480 #[cfg(feature = "v1_28")]
3481 ffi::GST_VIDEO_FORMAT_RGB10x2_LE => Self::Rgb10x2Le,
3482 #[cfg(feature = "v1_30")]
3483 ffi::GST_VIDEO_FORMAT_AHARDWARE_BUFFER => Self::AhardwareBuffer,
3484 value => Self::__Unknown(value),
3485 }
3486 }
3487}
3488
3489impl StaticType for VideoFormat {
3490 #[inline]
3491 #[doc(alias = "gst_video_format_get_type")]
3492 fn static_type() -> glib::Type {
3493 unsafe { from_glib(ffi::gst_video_format_get_type()) }
3494 }
3495}
3496
3497impl glib::HasParamSpec for VideoFormat {
3498 type ParamSpec = glib::ParamSpecEnum;
3499 type SetValue = Self;
3500 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3501
3502 fn param_spec_builder() -> Self::BuilderFn {
3503 Self::ParamSpec::builder_with_default
3504 }
3505}
3506
3507impl glib::value::ValueType for VideoFormat {
3508 type Type = Self;
3509}
3510
3511unsafe impl<'a> glib::value::FromValue<'a> for VideoFormat {
3512 type Checker = glib::value::GenericValueTypeChecker<Self>;
3513
3514 #[inline]
3515 unsafe fn from_value(value: &'a glib::Value) -> Self {
3516 skip_assert_initialized!();
3517 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
3518 }
3519}
3520
3521impl ToValue for VideoFormat {
3522 #[inline]
3523 fn to_value(&self) -> glib::Value {
3524 let mut value = glib::Value::for_value_type::<Self>();
3525 unsafe {
3526 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3527 }
3528 value
3529 }
3530
3531 #[inline]
3532 fn value_type(&self) -> glib::Type {
3533 Self::static_type()
3534 }
3535}
3536
3537impl From<VideoFormat> for glib::Value {
3538 #[inline]
3539 fn from(v: VideoFormat) -> Self {
3540 skip_assert_initialized!();
3541 ToValue::to_value(&v)
3542 }
3543}
3544
3545#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3546#[non_exhaustive]
3547#[doc(alias = "GstVideoGammaMode")]
3548pub enum VideoGammaMode {
3549 #[doc(alias = "GST_VIDEO_GAMMA_MODE_NONE")]
3551 None,
3552 #[doc(alias = "GST_VIDEO_GAMMA_MODE_REMAP")]
3555 Remap,
3556 #[doc(hidden)]
3557 __Unknown(i32),
3558}
3559
3560#[doc(hidden)]
3561impl IntoGlib for VideoGammaMode {
3562 type GlibType = ffi::GstVideoGammaMode;
3563
3564 #[inline]
3565 fn into_glib(self) -> ffi::GstVideoGammaMode {
3566 match self {
3567 Self::None => ffi::GST_VIDEO_GAMMA_MODE_NONE,
3568 Self::Remap => ffi::GST_VIDEO_GAMMA_MODE_REMAP,
3569 Self::__Unknown(value) => value,
3570 }
3571 }
3572}
3573
3574#[doc(hidden)]
3575impl FromGlib<ffi::GstVideoGammaMode> for VideoGammaMode {
3576 #[inline]
3577 unsafe fn from_glib(value: ffi::GstVideoGammaMode) -> Self {
3578 skip_assert_initialized!();
3579
3580 match value {
3581 ffi::GST_VIDEO_GAMMA_MODE_NONE => Self::None,
3582 ffi::GST_VIDEO_GAMMA_MODE_REMAP => Self::Remap,
3583 value => Self::__Unknown(value),
3584 }
3585 }
3586}
3587
3588impl StaticType for VideoGammaMode {
3589 #[inline]
3590 #[doc(alias = "gst_video_gamma_mode_get_type")]
3591 fn static_type() -> glib::Type {
3592 unsafe { from_glib(ffi::gst_video_gamma_mode_get_type()) }
3593 }
3594}
3595
3596impl glib::HasParamSpec for VideoGammaMode {
3597 type ParamSpec = glib::ParamSpecEnum;
3598 type SetValue = Self;
3599 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3600
3601 fn param_spec_builder() -> Self::BuilderFn {
3602 Self::ParamSpec::builder_with_default
3603 }
3604}
3605
3606impl glib::value::ValueType for VideoGammaMode {
3607 type Type = Self;
3608}
3609
3610unsafe impl<'a> glib::value::FromValue<'a> for VideoGammaMode {
3611 type Checker = glib::value::GenericValueTypeChecker<Self>;
3612
3613 #[inline]
3614 unsafe fn from_value(value: &'a glib::Value) -> Self {
3615 skip_assert_initialized!();
3616 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
3617 }
3618}
3619
3620impl ToValue for VideoGammaMode {
3621 #[inline]
3622 fn to_value(&self) -> glib::Value {
3623 let mut value = glib::Value::for_value_type::<Self>();
3624 unsafe {
3625 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3626 }
3627 value
3628 }
3629
3630 #[inline]
3631 fn value_type(&self) -> glib::Type {
3632 Self::static_type()
3633 }
3634}
3635
3636impl From<VideoGammaMode> for glib::Value {
3637 #[inline]
3638 fn from(v: VideoGammaMode) -> Self {
3639 skip_assert_initialized!();
3640 ToValue::to_value(&v)
3641 }
3642}
3643
3644#[cfg(feature = "v1_30")]
3646#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
3647#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3648#[non_exhaustive]
3649#[doc(alias = "GstVideoHDRFormat")]
3650pub enum VideoHDRFormat {
3651 #[doc(alias = "GST_VIDEO_HDR_FORMAT_NONE")]
3653 None,
3654 #[doc(alias = "GST_VIDEO_HDR_FORMAT_HDR10")]
3656 Hdr10,
3657 #[doc(alias = "GST_VIDEO_HDR_FORMAT_HDR10_PLUS")]
3659 Hdr10Plus,
3660 #[doc(hidden)]
3661 __Unknown(i32),
3662}
3663
3664#[cfg(feature = "v1_30")]
3665#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
3666#[doc(hidden)]
3667impl IntoGlib for VideoHDRFormat {
3668 type GlibType = ffi::GstVideoHDRFormat;
3669
3670 #[inline]
3671 fn into_glib(self) -> ffi::GstVideoHDRFormat {
3672 match self {
3673 Self::None => ffi::GST_VIDEO_HDR_FORMAT_NONE,
3674 Self::Hdr10 => ffi::GST_VIDEO_HDR_FORMAT_HDR10,
3675 Self::Hdr10Plus => ffi::GST_VIDEO_HDR_FORMAT_HDR10_PLUS,
3676 Self::__Unknown(value) => value,
3677 }
3678 }
3679}
3680
3681#[cfg(feature = "v1_30")]
3682#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
3683#[doc(hidden)]
3684impl FromGlib<ffi::GstVideoHDRFormat> for VideoHDRFormat {
3685 #[inline]
3686 unsafe fn from_glib(value: ffi::GstVideoHDRFormat) -> Self {
3687 skip_assert_initialized!();
3688
3689 match value {
3690 ffi::GST_VIDEO_HDR_FORMAT_NONE => Self::None,
3691 ffi::GST_VIDEO_HDR_FORMAT_HDR10 => Self::Hdr10,
3692 ffi::GST_VIDEO_HDR_FORMAT_HDR10_PLUS => Self::Hdr10Plus,
3693 value => Self::__Unknown(value),
3694 }
3695 }
3696}
3697
3698#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3701#[non_exhaustive]
3702#[doc(alias = "GstVideoInterlaceMode")]
3703pub enum VideoInterlaceMode {
3704 #[doc(alias = "GST_VIDEO_INTERLACE_MODE_PROGRESSIVE")]
3706 Progressive,
3707 #[doc(alias = "GST_VIDEO_INTERLACE_MODE_INTERLEAVED")]
3710 Interleaved,
3711 #[doc(alias = "GST_VIDEO_INTERLACE_MODE_MIXED")]
3714 Mixed,
3715 #[doc(alias = "GST_VIDEO_INTERLACE_MODE_FIELDS")]
3721 Fields,
3722 #[cfg(feature = "v1_16")]
3728 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3729 #[doc(alias = "GST_VIDEO_INTERLACE_MODE_ALTERNATE")]
3730 Alternate,
3731 #[doc(hidden)]
3732 __Unknown(i32),
3733}
3734
3735impl VideoInterlaceMode {
3736 #[doc(alias = "gst_video_interlace_mode_from_string")]
3737 pub fn from_string(mode: &str) -> VideoInterlaceMode {
3738 assert_initialized_main_thread!();
3739 unsafe {
3740 from_glib(ffi::gst_video_interlace_mode_from_string(
3741 mode.to_glib_none().0,
3742 ))
3743 }
3744 }
3745
3746 pub fn to_str<'a>(self) -> &'a GStr {
3747 unsafe {
3748 GStr::from_ptr(
3749 ffi::gst_video_interlace_mode_to_string(self.into_glib())
3750 .as_ref()
3751 .expect("gst_video_interlace_mode_to_string returned NULL"),
3752 )
3753 }
3754 }
3755}
3756
3757impl std::fmt::Display for VideoInterlaceMode {
3758 #[inline]
3759 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3760 f.write_str(&self.to_str())
3761 }
3762}
3763
3764#[doc(hidden)]
3765impl IntoGlib for VideoInterlaceMode {
3766 type GlibType = ffi::GstVideoInterlaceMode;
3767
3768 #[inline]
3769 fn into_glib(self) -> ffi::GstVideoInterlaceMode {
3770 match self {
3771 Self::Progressive => ffi::GST_VIDEO_INTERLACE_MODE_PROGRESSIVE,
3772 Self::Interleaved => ffi::GST_VIDEO_INTERLACE_MODE_INTERLEAVED,
3773 Self::Mixed => ffi::GST_VIDEO_INTERLACE_MODE_MIXED,
3774 Self::Fields => ffi::GST_VIDEO_INTERLACE_MODE_FIELDS,
3775 #[cfg(feature = "v1_16")]
3776 Self::Alternate => ffi::GST_VIDEO_INTERLACE_MODE_ALTERNATE,
3777 Self::__Unknown(value) => value,
3778 }
3779 }
3780}
3781
3782#[doc(hidden)]
3783impl FromGlib<ffi::GstVideoInterlaceMode> for VideoInterlaceMode {
3784 #[inline]
3785 unsafe fn from_glib(value: ffi::GstVideoInterlaceMode) -> Self {
3786 skip_assert_initialized!();
3787
3788 match value {
3789 ffi::GST_VIDEO_INTERLACE_MODE_PROGRESSIVE => Self::Progressive,
3790 ffi::GST_VIDEO_INTERLACE_MODE_INTERLEAVED => Self::Interleaved,
3791 ffi::GST_VIDEO_INTERLACE_MODE_MIXED => Self::Mixed,
3792 ffi::GST_VIDEO_INTERLACE_MODE_FIELDS => Self::Fields,
3793 #[cfg(feature = "v1_16")]
3794 ffi::GST_VIDEO_INTERLACE_MODE_ALTERNATE => Self::Alternate,
3795 value => Self::__Unknown(value),
3796 }
3797 }
3798}
3799
3800impl StaticType for VideoInterlaceMode {
3801 #[inline]
3802 #[doc(alias = "gst_video_interlace_mode_get_type")]
3803 fn static_type() -> glib::Type {
3804 unsafe { from_glib(ffi::gst_video_interlace_mode_get_type()) }
3805 }
3806}
3807
3808impl glib::HasParamSpec for VideoInterlaceMode {
3809 type ParamSpec = glib::ParamSpecEnum;
3810 type SetValue = Self;
3811 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3812
3813 fn param_spec_builder() -> Self::BuilderFn {
3814 Self::ParamSpec::builder_with_default
3815 }
3816}
3817
3818impl glib::value::ValueType for VideoInterlaceMode {
3819 type Type = Self;
3820}
3821
3822unsafe impl<'a> glib::value::FromValue<'a> for VideoInterlaceMode {
3823 type Checker = glib::value::GenericValueTypeChecker<Self>;
3824
3825 #[inline]
3826 unsafe fn from_value(value: &'a glib::Value) -> Self {
3827 skip_assert_initialized!();
3828 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
3829 }
3830}
3831
3832impl ToValue for VideoInterlaceMode {
3833 #[inline]
3834 fn to_value(&self) -> glib::Value {
3835 let mut value = glib::Value::for_value_type::<Self>();
3836 unsafe {
3837 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3838 }
3839 value
3840 }
3841
3842 #[inline]
3843 fn value_type(&self) -> glib::Type {
3844 Self::static_type()
3845 }
3846}
3847
3848impl From<VideoInterlaceMode> for glib::Value {
3849 #[inline]
3850 fn from(v: VideoInterlaceMode) -> Self {
3851 skip_assert_initialized!();
3852 ToValue::to_value(&v)
3853 }
3854}
3855
3856#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3858#[non_exhaustive]
3859#[doc(alias = "GstVideoMatrixMode")]
3860pub enum VideoMatrixMode {
3861 #[doc(alias = "GST_VIDEO_MATRIX_MODE_FULL")]
3863 Full,
3864 #[doc(alias = "GST_VIDEO_MATRIX_MODE_INPUT_ONLY")]
3867 InputOnly,
3868 #[doc(alias = "GST_VIDEO_MATRIX_MODE_OUTPUT_ONLY")]
3871 OutputOnly,
3872 #[doc(alias = "GST_VIDEO_MATRIX_MODE_NONE")]
3874 None,
3875 #[doc(hidden)]
3876 __Unknown(i32),
3877}
3878
3879#[doc(hidden)]
3880impl IntoGlib for VideoMatrixMode {
3881 type GlibType = ffi::GstVideoMatrixMode;
3882
3883 #[inline]
3884 fn into_glib(self) -> ffi::GstVideoMatrixMode {
3885 match self {
3886 Self::Full => ffi::GST_VIDEO_MATRIX_MODE_FULL,
3887 Self::InputOnly => ffi::GST_VIDEO_MATRIX_MODE_INPUT_ONLY,
3888 Self::OutputOnly => ffi::GST_VIDEO_MATRIX_MODE_OUTPUT_ONLY,
3889 Self::None => ffi::GST_VIDEO_MATRIX_MODE_NONE,
3890 Self::__Unknown(value) => value,
3891 }
3892 }
3893}
3894
3895#[doc(hidden)]
3896impl FromGlib<ffi::GstVideoMatrixMode> for VideoMatrixMode {
3897 #[inline]
3898 unsafe fn from_glib(value: ffi::GstVideoMatrixMode) -> Self {
3899 skip_assert_initialized!();
3900
3901 match value {
3902 ffi::GST_VIDEO_MATRIX_MODE_FULL => Self::Full,
3903 ffi::GST_VIDEO_MATRIX_MODE_INPUT_ONLY => Self::InputOnly,
3904 ffi::GST_VIDEO_MATRIX_MODE_OUTPUT_ONLY => Self::OutputOnly,
3905 ffi::GST_VIDEO_MATRIX_MODE_NONE => Self::None,
3906 value => Self::__Unknown(value),
3907 }
3908 }
3909}
3910
3911impl StaticType for VideoMatrixMode {
3912 #[inline]
3913 #[doc(alias = "gst_video_matrix_mode_get_type")]
3914 fn static_type() -> glib::Type {
3915 unsafe { from_glib(ffi::gst_video_matrix_mode_get_type()) }
3916 }
3917}
3918
3919impl glib::HasParamSpec for VideoMatrixMode {
3920 type ParamSpec = glib::ParamSpecEnum;
3921 type SetValue = Self;
3922 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3923
3924 fn param_spec_builder() -> Self::BuilderFn {
3925 Self::ParamSpec::builder_with_default
3926 }
3927}
3928
3929impl glib::value::ValueType for VideoMatrixMode {
3930 type Type = Self;
3931}
3932
3933unsafe impl<'a> glib::value::FromValue<'a> for VideoMatrixMode {
3934 type Checker = glib::value::GenericValueTypeChecker<Self>;
3935
3936 #[inline]
3937 unsafe fn from_value(value: &'a glib::Value) -> Self {
3938 skip_assert_initialized!();
3939 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
3940 }
3941}
3942
3943impl ToValue for VideoMatrixMode {
3944 #[inline]
3945 fn to_value(&self) -> glib::Value {
3946 let mut value = glib::Value::for_value_type::<Self>();
3947 unsafe {
3948 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3949 }
3950 value
3951 }
3952
3953 #[inline]
3954 fn value_type(&self) -> glib::Type {
3955 Self::static_type()
3956 }
3957}
3958
3959impl From<VideoMatrixMode> for glib::Value {
3960 #[inline]
3961 fn from(v: VideoMatrixMode) -> Self {
3962 skip_assert_initialized!();
3963 ToValue::to_value(&v)
3964 }
3965}
3966
3967#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3977#[non_exhaustive]
3978#[doc(alias = "GstVideoMultiviewFramePacking")]
3979pub enum VideoMultiviewFramePacking {
3980 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_NONE")]
3983 None,
3984 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_MONO")]
3986 Mono,
3987 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_LEFT")]
3989 Left,
3990 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_RIGHT")]
3992 Right,
3993 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE")]
3996 SideBySide,
3997 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE_QUINCUNX")]
4002 SideBySideQuincunx,
4003 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_COLUMN_INTERLEAVED")]
4006 ColumnInterleaved,
4007 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_ROW_INTERLEAVED")]
4010 RowInterleaved,
4011 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_TOP_BOTTOM")]
4014 TopBottom,
4015 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_CHECKERBOARD")]
4019 Checkerboard,
4020 #[doc(hidden)]
4021 __Unknown(i32),
4022}
4023
4024#[doc(hidden)]
4025impl IntoGlib for VideoMultiviewFramePacking {
4026 type GlibType = ffi::GstVideoMultiviewFramePacking;
4027
4028 #[inline]
4029 fn into_glib(self) -> ffi::GstVideoMultiviewFramePacking {
4030 match self {
4031 Self::None => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_NONE,
4032 Self::Mono => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_MONO,
4033 Self::Left => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_LEFT,
4034 Self::Right => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_RIGHT,
4035 Self::SideBySide => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE,
4036 Self::SideBySideQuincunx => {
4037 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE_QUINCUNX
4038 }
4039 Self::ColumnInterleaved => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_COLUMN_INTERLEAVED,
4040 Self::RowInterleaved => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_ROW_INTERLEAVED,
4041 Self::TopBottom => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_TOP_BOTTOM,
4042 Self::Checkerboard => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_CHECKERBOARD,
4043 Self::__Unknown(value) => value,
4044 }
4045 }
4046}
4047
4048#[doc(hidden)]
4049impl FromGlib<ffi::GstVideoMultiviewFramePacking> for VideoMultiviewFramePacking {
4050 #[inline]
4051 unsafe fn from_glib(value: ffi::GstVideoMultiviewFramePacking) -> Self {
4052 skip_assert_initialized!();
4053
4054 match value {
4055 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_NONE => Self::None,
4056 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_MONO => Self::Mono,
4057 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_LEFT => Self::Left,
4058 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_RIGHT => Self::Right,
4059 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE => Self::SideBySide,
4060 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE_QUINCUNX => {
4061 Self::SideBySideQuincunx
4062 }
4063 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_COLUMN_INTERLEAVED => Self::ColumnInterleaved,
4064 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_ROW_INTERLEAVED => Self::RowInterleaved,
4065 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_TOP_BOTTOM => Self::TopBottom,
4066 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_CHECKERBOARD => Self::Checkerboard,
4067 value => Self::__Unknown(value),
4068 }
4069 }
4070}
4071
4072impl StaticType for VideoMultiviewFramePacking {
4073 #[inline]
4074 #[doc(alias = "gst_video_multiview_frame_packing_get_type")]
4075 fn static_type() -> glib::Type {
4076 unsafe { from_glib(ffi::gst_video_multiview_frame_packing_get_type()) }
4077 }
4078}
4079
4080impl glib::HasParamSpec for VideoMultiviewFramePacking {
4081 type ParamSpec = glib::ParamSpecEnum;
4082 type SetValue = Self;
4083 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4084
4085 fn param_spec_builder() -> Self::BuilderFn {
4086 Self::ParamSpec::builder_with_default
4087 }
4088}
4089
4090impl glib::value::ValueType for VideoMultiviewFramePacking {
4091 type Type = Self;
4092}
4093
4094unsafe impl<'a> glib::value::FromValue<'a> for VideoMultiviewFramePacking {
4095 type Checker = glib::value::GenericValueTypeChecker<Self>;
4096
4097 #[inline]
4098 unsafe fn from_value(value: &'a glib::Value) -> Self {
4099 skip_assert_initialized!();
4100 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
4101 }
4102}
4103
4104impl ToValue for VideoMultiviewFramePacking {
4105 #[inline]
4106 fn to_value(&self) -> glib::Value {
4107 let mut value = glib::Value::for_value_type::<Self>();
4108 unsafe {
4109 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4110 }
4111 value
4112 }
4113
4114 #[inline]
4115 fn value_type(&self) -> glib::Type {
4116 Self::static_type()
4117 }
4118}
4119
4120impl From<VideoMultiviewFramePacking> for glib::Value {
4121 #[inline]
4122 fn from(v: VideoMultiviewFramePacking) -> Self {
4123 skip_assert_initialized!();
4124 ToValue::to_value(&v)
4125 }
4126}
4127
4128#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4132#[non_exhaustive]
4133#[doc(alias = "GstVideoMultiviewMode")]
4134pub enum VideoMultiviewMode {
4135 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_NONE")]
4140 None,
4141 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_MONO")]
4143 Mono,
4144 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_LEFT")]
4146 Left,
4147 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_RIGHT")]
4149 Right,
4150 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE")]
4153 SideBySide,
4154 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE_QUINCUNX")]
4159 SideBySideQuincunx,
4160 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_COLUMN_INTERLEAVED")]
4163 ColumnInterleaved,
4164 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_ROW_INTERLEAVED")]
4167 RowInterleaved,
4168 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_TOP_BOTTOM")]
4171 TopBottom,
4172 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_CHECKERBOARD")]
4176 Checkerboard,
4177 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_FRAME_BY_FRAME")]
4180 FrameByFrame,
4181 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_MULTIVIEW_FRAME_BY_FRAME")]
4187 MultiviewFrameByFrame,
4188 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_SEPARATED")]
4193 Separated,
4194 #[doc(hidden)]
4195 __Unknown(i32),
4196}
4197
4198impl VideoMultiviewMode {
4199 #[doc(alias = "gst_video_multiview_mode_from_caps_string")]
4200 pub fn from_caps_string(caps_mview_mode: &str) -> VideoMultiviewMode {
4201 assert_initialized_main_thread!();
4202 unsafe {
4203 from_glib(ffi::gst_video_multiview_mode_from_caps_string(
4204 caps_mview_mode.to_glib_none().0,
4205 ))
4206 }
4207 }
4208
4209 #[doc(alias = "gst_video_multiview_mode_to_caps_string")]
4210 pub fn to_caps_string(self) -> Option<glib::GString> {
4211 assert_initialized_main_thread!();
4212 unsafe {
4213 from_glib_none(ffi::gst_video_multiview_mode_to_caps_string(
4214 self.into_glib(),
4215 ))
4216 }
4217 }
4218}
4219
4220#[doc(hidden)]
4221impl IntoGlib for VideoMultiviewMode {
4222 type GlibType = ffi::GstVideoMultiviewMode;
4223
4224 fn into_glib(self) -> ffi::GstVideoMultiviewMode {
4225 match self {
4226 Self::None => ffi::GST_VIDEO_MULTIVIEW_MODE_NONE,
4227 Self::Mono => ffi::GST_VIDEO_MULTIVIEW_MODE_MONO,
4228 Self::Left => ffi::GST_VIDEO_MULTIVIEW_MODE_LEFT,
4229 Self::Right => ffi::GST_VIDEO_MULTIVIEW_MODE_RIGHT,
4230 Self::SideBySide => ffi::GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE,
4231 Self::SideBySideQuincunx => ffi::GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE_QUINCUNX,
4232 Self::ColumnInterleaved => ffi::GST_VIDEO_MULTIVIEW_MODE_COLUMN_INTERLEAVED,
4233 Self::RowInterleaved => ffi::GST_VIDEO_MULTIVIEW_MODE_ROW_INTERLEAVED,
4234 Self::TopBottom => ffi::GST_VIDEO_MULTIVIEW_MODE_TOP_BOTTOM,
4235 Self::Checkerboard => ffi::GST_VIDEO_MULTIVIEW_MODE_CHECKERBOARD,
4236 Self::FrameByFrame => ffi::GST_VIDEO_MULTIVIEW_MODE_FRAME_BY_FRAME,
4237 Self::MultiviewFrameByFrame => ffi::GST_VIDEO_MULTIVIEW_MODE_MULTIVIEW_FRAME_BY_FRAME,
4238 Self::Separated => ffi::GST_VIDEO_MULTIVIEW_MODE_SEPARATED,
4239 Self::__Unknown(value) => value,
4240 }
4241 }
4242}
4243
4244#[doc(hidden)]
4245impl FromGlib<ffi::GstVideoMultiviewMode> for VideoMultiviewMode {
4246 unsafe fn from_glib(value: ffi::GstVideoMultiviewMode) -> Self {
4247 skip_assert_initialized!();
4248
4249 match value {
4250 ffi::GST_VIDEO_MULTIVIEW_MODE_NONE => Self::None,
4251 ffi::GST_VIDEO_MULTIVIEW_MODE_MONO => Self::Mono,
4252 ffi::GST_VIDEO_MULTIVIEW_MODE_LEFT => Self::Left,
4253 ffi::GST_VIDEO_MULTIVIEW_MODE_RIGHT => Self::Right,
4254 ffi::GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE => Self::SideBySide,
4255 ffi::GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE_QUINCUNX => Self::SideBySideQuincunx,
4256 ffi::GST_VIDEO_MULTIVIEW_MODE_COLUMN_INTERLEAVED => Self::ColumnInterleaved,
4257 ffi::GST_VIDEO_MULTIVIEW_MODE_ROW_INTERLEAVED => Self::RowInterleaved,
4258 ffi::GST_VIDEO_MULTIVIEW_MODE_TOP_BOTTOM => Self::TopBottom,
4259 ffi::GST_VIDEO_MULTIVIEW_MODE_CHECKERBOARD => Self::Checkerboard,
4260 ffi::GST_VIDEO_MULTIVIEW_MODE_FRAME_BY_FRAME => Self::FrameByFrame,
4261 ffi::GST_VIDEO_MULTIVIEW_MODE_MULTIVIEW_FRAME_BY_FRAME => Self::MultiviewFrameByFrame,
4262 ffi::GST_VIDEO_MULTIVIEW_MODE_SEPARATED => Self::Separated,
4263 value => Self::__Unknown(value),
4264 }
4265 }
4266}
4267
4268impl StaticType for VideoMultiviewMode {
4269 #[inline]
4270 #[doc(alias = "gst_video_multiview_mode_get_type")]
4271 fn static_type() -> glib::Type {
4272 unsafe { from_glib(ffi::gst_video_multiview_mode_get_type()) }
4273 }
4274}
4275
4276impl glib::HasParamSpec for VideoMultiviewMode {
4277 type ParamSpec = glib::ParamSpecEnum;
4278 type SetValue = Self;
4279 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4280
4281 fn param_spec_builder() -> Self::BuilderFn {
4282 Self::ParamSpec::builder_with_default
4283 }
4284}
4285
4286impl glib::value::ValueType for VideoMultiviewMode {
4287 type Type = Self;
4288}
4289
4290unsafe impl<'a> glib::value::FromValue<'a> for VideoMultiviewMode {
4291 type Checker = glib::value::GenericValueTypeChecker<Self>;
4292
4293 #[inline]
4294 unsafe fn from_value(value: &'a glib::Value) -> Self {
4295 skip_assert_initialized!();
4296 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
4297 }
4298}
4299
4300impl ToValue for VideoMultiviewMode {
4301 #[inline]
4302 fn to_value(&self) -> glib::Value {
4303 let mut value = glib::Value::for_value_type::<Self>();
4304 unsafe {
4305 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4306 }
4307 value
4308 }
4309
4310 #[inline]
4311 fn value_type(&self) -> glib::Type {
4312 Self::static_type()
4313 }
4314}
4315
4316impl From<VideoMultiviewMode> for glib::Value {
4317 #[inline]
4318 fn from(v: VideoMultiviewMode) -> Self {
4319 skip_assert_initialized!();
4320 ToValue::to_value(&v)
4321 }
4322}
4323
4324#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4326#[non_exhaustive]
4327#[doc(alias = "GstVideoOrientationMethod")]
4328pub enum VideoOrientationMethod {
4329 #[doc(alias = "GST_VIDEO_ORIENTATION_IDENTITY")]
4331 Identity,
4332 #[doc(alias = "GST_VIDEO_ORIENTATION_90R")]
4334 _90r,
4335 #[doc(alias = "GST_VIDEO_ORIENTATION_180")]
4337 _180,
4338 #[doc(alias = "GST_VIDEO_ORIENTATION_90L")]
4340 _90l,
4341 #[doc(alias = "GST_VIDEO_ORIENTATION_HORIZ")]
4343 Horiz,
4344 #[doc(alias = "GST_VIDEO_ORIENTATION_VERT")]
4346 Vert,
4347 #[doc(alias = "GST_VIDEO_ORIENTATION_UL_LR")]
4349 UlLr,
4350 #[doc(alias = "GST_VIDEO_ORIENTATION_UR_LL")]
4352 UrLl,
4353 #[doc(alias = "GST_VIDEO_ORIENTATION_AUTO")]
4355 Auto,
4356 #[doc(alias = "GST_VIDEO_ORIENTATION_CUSTOM")]
4358 Custom,
4359 #[doc(hidden)]
4360 __Unknown(i32),
4361}
4362
4363#[doc(hidden)]
4364impl IntoGlib for VideoOrientationMethod {
4365 type GlibType = ffi::GstVideoOrientationMethod;
4366
4367 #[inline]
4368 fn into_glib(self) -> ffi::GstVideoOrientationMethod {
4369 match self {
4370 Self::Identity => ffi::GST_VIDEO_ORIENTATION_IDENTITY,
4371 Self::_90r => ffi::GST_VIDEO_ORIENTATION_90R,
4372 Self::_180 => ffi::GST_VIDEO_ORIENTATION_180,
4373 Self::_90l => ffi::GST_VIDEO_ORIENTATION_90L,
4374 Self::Horiz => ffi::GST_VIDEO_ORIENTATION_HORIZ,
4375 Self::Vert => ffi::GST_VIDEO_ORIENTATION_VERT,
4376 Self::UlLr => ffi::GST_VIDEO_ORIENTATION_UL_LR,
4377 Self::UrLl => ffi::GST_VIDEO_ORIENTATION_UR_LL,
4378 Self::Auto => ffi::GST_VIDEO_ORIENTATION_AUTO,
4379 Self::Custom => ffi::GST_VIDEO_ORIENTATION_CUSTOM,
4380 Self::__Unknown(value) => value,
4381 }
4382 }
4383}
4384
4385#[doc(hidden)]
4386impl FromGlib<ffi::GstVideoOrientationMethod> for VideoOrientationMethod {
4387 #[inline]
4388 unsafe fn from_glib(value: ffi::GstVideoOrientationMethod) -> Self {
4389 skip_assert_initialized!();
4390
4391 match value {
4392 ffi::GST_VIDEO_ORIENTATION_IDENTITY => Self::Identity,
4393 ffi::GST_VIDEO_ORIENTATION_90R => Self::_90r,
4394 ffi::GST_VIDEO_ORIENTATION_180 => Self::_180,
4395 ffi::GST_VIDEO_ORIENTATION_90L => Self::_90l,
4396 ffi::GST_VIDEO_ORIENTATION_HORIZ => Self::Horiz,
4397 ffi::GST_VIDEO_ORIENTATION_VERT => Self::Vert,
4398 ffi::GST_VIDEO_ORIENTATION_UL_LR => Self::UlLr,
4399 ffi::GST_VIDEO_ORIENTATION_UR_LL => Self::UrLl,
4400 ffi::GST_VIDEO_ORIENTATION_AUTO => Self::Auto,
4401 ffi::GST_VIDEO_ORIENTATION_CUSTOM => Self::Custom,
4402 value => Self::__Unknown(value),
4403 }
4404 }
4405}
4406
4407impl StaticType for VideoOrientationMethod {
4408 #[inline]
4409 #[doc(alias = "gst_video_orientation_method_get_type")]
4410 fn static_type() -> glib::Type {
4411 unsafe { from_glib(ffi::gst_video_orientation_method_get_type()) }
4412 }
4413}
4414
4415impl glib::HasParamSpec for VideoOrientationMethod {
4416 type ParamSpec = glib::ParamSpecEnum;
4417 type SetValue = Self;
4418 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4419
4420 fn param_spec_builder() -> Self::BuilderFn {
4421 Self::ParamSpec::builder_with_default
4422 }
4423}
4424
4425impl glib::value::ValueType for VideoOrientationMethod {
4426 type Type = Self;
4427}
4428
4429unsafe impl<'a> glib::value::FromValue<'a> for VideoOrientationMethod {
4430 type Checker = glib::value::GenericValueTypeChecker<Self>;
4431
4432 #[inline]
4433 unsafe fn from_value(value: &'a glib::Value) -> Self {
4434 skip_assert_initialized!();
4435 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
4436 }
4437}
4438
4439impl ToValue for VideoOrientationMethod {
4440 #[inline]
4441 fn to_value(&self) -> glib::Value {
4442 let mut value = glib::Value::for_value_type::<Self>();
4443 unsafe {
4444 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4445 }
4446 value
4447 }
4448
4449 #[inline]
4450 fn value_type(&self) -> glib::Type {
4451 Self::static_type()
4452 }
4453}
4454
4455impl From<VideoOrientationMethod> for glib::Value {
4456 #[inline]
4457 fn from(v: VideoOrientationMethod) -> Self {
4458 skip_assert_initialized!();
4459 ToValue::to_value(&v)
4460 }
4461}
4462
4463#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4465#[non_exhaustive]
4466#[doc(alias = "GstVideoPrimariesMode")]
4467pub enum VideoPrimariesMode {
4468 #[doc(alias = "GST_VIDEO_PRIMARIES_MODE_NONE")]
4470 None,
4471 #[doc(alias = "GST_VIDEO_PRIMARIES_MODE_MERGE_ONLY")]
4474 MergeOnly,
4475 #[doc(alias = "GST_VIDEO_PRIMARIES_MODE_FAST")]
4477 Fast,
4478 #[doc(hidden)]
4479 __Unknown(i32),
4480}
4481
4482#[doc(hidden)]
4483impl IntoGlib for VideoPrimariesMode {
4484 type GlibType = ffi::GstVideoPrimariesMode;
4485
4486 #[inline]
4487 fn into_glib(self) -> ffi::GstVideoPrimariesMode {
4488 match self {
4489 Self::None => ffi::GST_VIDEO_PRIMARIES_MODE_NONE,
4490 Self::MergeOnly => ffi::GST_VIDEO_PRIMARIES_MODE_MERGE_ONLY,
4491 Self::Fast => ffi::GST_VIDEO_PRIMARIES_MODE_FAST,
4492 Self::__Unknown(value) => value,
4493 }
4494 }
4495}
4496
4497#[doc(hidden)]
4498impl FromGlib<ffi::GstVideoPrimariesMode> for VideoPrimariesMode {
4499 #[inline]
4500 unsafe fn from_glib(value: ffi::GstVideoPrimariesMode) -> Self {
4501 skip_assert_initialized!();
4502
4503 match value {
4504 ffi::GST_VIDEO_PRIMARIES_MODE_NONE => Self::None,
4505 ffi::GST_VIDEO_PRIMARIES_MODE_MERGE_ONLY => Self::MergeOnly,
4506 ffi::GST_VIDEO_PRIMARIES_MODE_FAST => Self::Fast,
4507 value => Self::__Unknown(value),
4508 }
4509 }
4510}
4511
4512impl StaticType for VideoPrimariesMode {
4513 #[inline]
4514 #[doc(alias = "gst_video_primaries_mode_get_type")]
4515 fn static_type() -> glib::Type {
4516 unsafe { from_glib(ffi::gst_video_primaries_mode_get_type()) }
4517 }
4518}
4519
4520impl glib::HasParamSpec for VideoPrimariesMode {
4521 type ParamSpec = glib::ParamSpecEnum;
4522 type SetValue = Self;
4523 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4524
4525 fn param_spec_builder() -> Self::BuilderFn {
4526 Self::ParamSpec::builder_with_default
4527 }
4528}
4529
4530impl glib::value::ValueType for VideoPrimariesMode {
4531 type Type = Self;
4532}
4533
4534unsafe impl<'a> glib::value::FromValue<'a> for VideoPrimariesMode {
4535 type Checker = glib::value::GenericValueTypeChecker<Self>;
4536
4537 #[inline]
4538 unsafe fn from_value(value: &'a glib::Value) -> Self {
4539 skip_assert_initialized!();
4540 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
4541 }
4542}
4543
4544impl ToValue for VideoPrimariesMode {
4545 #[inline]
4546 fn to_value(&self) -> glib::Value {
4547 let mut value = glib::Value::for_value_type::<Self>();
4548 unsafe {
4549 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4550 }
4551 value
4552 }
4553
4554 #[inline]
4555 fn value_type(&self) -> glib::Type {
4556 Self::static_type()
4557 }
4558}
4559
4560impl From<VideoPrimariesMode> for glib::Value {
4561 #[inline]
4562 fn from(v: VideoPrimariesMode) -> Self {
4563 skip_assert_initialized!();
4564 ToValue::to_value(&v)
4565 }
4566}
4567
4568#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4570#[non_exhaustive]
4571#[doc(alias = "GstVideoResamplerMethod")]
4572pub enum VideoResamplerMethod {
4573 #[doc(alias = "GST_VIDEO_RESAMPLER_METHOD_NEAREST")]
4576 Nearest,
4577 #[doc(alias = "GST_VIDEO_RESAMPLER_METHOD_LINEAR")]
4580 Linear,
4581 #[doc(alias = "GST_VIDEO_RESAMPLER_METHOD_CUBIC")]
4583 Cubic,
4584 #[doc(alias = "GST_VIDEO_RESAMPLER_METHOD_SINC")]
4586 Sinc,
4587 #[doc(alias = "GST_VIDEO_RESAMPLER_METHOD_LANCZOS")]
4589 Lanczos,
4590 #[doc(hidden)]
4591 __Unknown(i32),
4592}
4593
4594#[doc(hidden)]
4595impl IntoGlib for VideoResamplerMethod {
4596 type GlibType = ffi::GstVideoResamplerMethod;
4597
4598 #[inline]
4599 fn into_glib(self) -> ffi::GstVideoResamplerMethod {
4600 match self {
4601 Self::Nearest => ffi::GST_VIDEO_RESAMPLER_METHOD_NEAREST,
4602 Self::Linear => ffi::GST_VIDEO_RESAMPLER_METHOD_LINEAR,
4603 Self::Cubic => ffi::GST_VIDEO_RESAMPLER_METHOD_CUBIC,
4604 Self::Sinc => ffi::GST_VIDEO_RESAMPLER_METHOD_SINC,
4605 Self::Lanczos => ffi::GST_VIDEO_RESAMPLER_METHOD_LANCZOS,
4606 Self::__Unknown(value) => value,
4607 }
4608 }
4609}
4610
4611#[doc(hidden)]
4612impl FromGlib<ffi::GstVideoResamplerMethod> for VideoResamplerMethod {
4613 #[inline]
4614 unsafe fn from_glib(value: ffi::GstVideoResamplerMethod) -> Self {
4615 skip_assert_initialized!();
4616
4617 match value {
4618 ffi::GST_VIDEO_RESAMPLER_METHOD_NEAREST => Self::Nearest,
4619 ffi::GST_VIDEO_RESAMPLER_METHOD_LINEAR => Self::Linear,
4620 ffi::GST_VIDEO_RESAMPLER_METHOD_CUBIC => Self::Cubic,
4621 ffi::GST_VIDEO_RESAMPLER_METHOD_SINC => Self::Sinc,
4622 ffi::GST_VIDEO_RESAMPLER_METHOD_LANCZOS => Self::Lanczos,
4623 value => Self::__Unknown(value),
4624 }
4625 }
4626}
4627
4628impl StaticType for VideoResamplerMethod {
4629 #[inline]
4630 #[doc(alias = "gst_video_resampler_method_get_type")]
4631 fn static_type() -> glib::Type {
4632 unsafe { from_glib(ffi::gst_video_resampler_method_get_type()) }
4633 }
4634}
4635
4636impl glib::HasParamSpec for VideoResamplerMethod {
4637 type ParamSpec = glib::ParamSpecEnum;
4638 type SetValue = Self;
4639 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4640
4641 fn param_spec_builder() -> Self::BuilderFn {
4642 Self::ParamSpec::builder_with_default
4643 }
4644}
4645
4646impl glib::value::ValueType for VideoResamplerMethod {
4647 type Type = Self;
4648}
4649
4650unsafe impl<'a> glib::value::FromValue<'a> for VideoResamplerMethod {
4651 type Checker = glib::value::GenericValueTypeChecker<Self>;
4652
4653 #[inline]
4654 unsafe fn from_value(value: &'a glib::Value) -> Self {
4655 skip_assert_initialized!();
4656 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
4657 }
4658}
4659
4660impl ToValue for VideoResamplerMethod {
4661 #[inline]
4662 fn to_value(&self) -> glib::Value {
4663 let mut value = glib::Value::for_value_type::<Self>();
4664 unsafe {
4665 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4666 }
4667 value
4668 }
4669
4670 #[inline]
4671 fn value_type(&self) -> glib::Type {
4672 Self::static_type()
4673 }
4674}
4675
4676impl From<VideoResamplerMethod> for glib::Value {
4677 #[inline]
4678 fn from(v: VideoResamplerMethod) -> Self {
4679 skip_assert_initialized!();
4680 ToValue::to_value(&v)
4681 }
4682}
4683
4684#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4686#[non_exhaustive]
4687#[doc(alias = "GstVideoTileMode")]
4688pub enum VideoTileMode {
4689 #[doc(alias = "GST_VIDEO_TILE_MODE_UNKNOWN")]
4691 Unknown,
4692 #[doc(alias = "GST_VIDEO_TILE_MODE_ZFLIPZ_2X2")]
4697 Zflipz2x2,
4698 #[cfg(feature = "v1_18")]
4700 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4701 #[doc(alias = "GST_VIDEO_TILE_MODE_LINEAR")]
4702 Linear,
4703 #[doc(hidden)]
4704 __Unknown(i32),
4705}
4706
4707#[doc(hidden)]
4708impl IntoGlib for VideoTileMode {
4709 type GlibType = ffi::GstVideoTileMode;
4710
4711 #[inline]
4712 fn into_glib(self) -> ffi::GstVideoTileMode {
4713 match self {
4714 Self::Unknown => ffi::GST_VIDEO_TILE_MODE_UNKNOWN,
4715 Self::Zflipz2x2 => ffi::GST_VIDEO_TILE_MODE_ZFLIPZ_2X2,
4716 #[cfg(feature = "v1_18")]
4717 Self::Linear => ffi::GST_VIDEO_TILE_MODE_LINEAR,
4718 Self::__Unknown(value) => value,
4719 }
4720 }
4721}
4722
4723#[doc(hidden)]
4724impl FromGlib<ffi::GstVideoTileMode> for VideoTileMode {
4725 #[inline]
4726 unsafe fn from_glib(value: ffi::GstVideoTileMode) -> Self {
4727 skip_assert_initialized!();
4728
4729 match value {
4730 ffi::GST_VIDEO_TILE_MODE_UNKNOWN => Self::Unknown,
4731 ffi::GST_VIDEO_TILE_MODE_ZFLIPZ_2X2 => Self::Zflipz2x2,
4732 #[cfg(feature = "v1_18")]
4733 ffi::GST_VIDEO_TILE_MODE_LINEAR => Self::Linear,
4734 value => Self::__Unknown(value),
4735 }
4736 }
4737}
4738
4739impl StaticType for VideoTileMode {
4740 #[inline]
4741 #[doc(alias = "gst_video_tile_mode_get_type")]
4742 fn static_type() -> glib::Type {
4743 unsafe { from_glib(ffi::gst_video_tile_mode_get_type()) }
4744 }
4745}
4746
4747impl glib::HasParamSpec for VideoTileMode {
4748 type ParamSpec = glib::ParamSpecEnum;
4749 type SetValue = Self;
4750 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4751
4752 fn param_spec_builder() -> Self::BuilderFn {
4753 Self::ParamSpec::builder_with_default
4754 }
4755}
4756
4757impl glib::value::ValueType for VideoTileMode {
4758 type Type = Self;
4759}
4760
4761unsafe impl<'a> glib::value::FromValue<'a> for VideoTileMode {
4762 type Checker = glib::value::GenericValueTypeChecker<Self>;
4763
4764 #[inline]
4765 unsafe fn from_value(value: &'a glib::Value) -> Self {
4766 skip_assert_initialized!();
4767 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
4768 }
4769}
4770
4771impl ToValue for VideoTileMode {
4772 #[inline]
4773 fn to_value(&self) -> glib::Value {
4774 let mut value = glib::Value::for_value_type::<Self>();
4775 unsafe {
4776 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4777 }
4778 value
4779 }
4780
4781 #[inline]
4782 fn value_type(&self) -> glib::Type {
4783 Self::static_type()
4784 }
4785}
4786
4787impl From<VideoTileMode> for glib::Value {
4788 #[inline]
4789 fn from(v: VideoTileMode) -> Self {
4790 skip_assert_initialized!();
4791 ToValue::to_value(&v)
4792 }
4793}
4794
4795#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4798#[non_exhaustive]
4799#[doc(alias = "GstVideoTransferFunction")]
4800pub enum VideoTransferFunction {
4801 #[doc(alias = "GST_VIDEO_TRANSFER_UNKNOWN")]
4803 Unknown,
4804 #[doc(alias = "GST_VIDEO_TRANSFER_GAMMA10")]
4806 Gamma10,
4807 #[doc(alias = "GST_VIDEO_TRANSFER_GAMMA18")]
4809 Gamma18,
4810 #[doc(alias = "GST_VIDEO_TRANSFER_GAMMA20")]
4812 Gamma20,
4813 #[doc(alias = "GST_VIDEO_TRANSFER_GAMMA22")]
4815 Gamma22,
4816 #[doc(alias = "GST_VIDEO_TRANSFER_BT709")]
4819 Bt709,
4820 #[doc(alias = "GST_VIDEO_TRANSFER_SMPTE240M")]
4823 Smpte240m,
4824 #[doc(alias = "GST_VIDEO_TRANSFER_SRGB")]
4827 Srgb,
4828 #[doc(alias = "GST_VIDEO_TRANSFER_GAMMA28")]
4830 Gamma28,
4831 #[doc(alias = "GST_VIDEO_TRANSFER_LOG100")]
4834 Log100,
4835 #[doc(alias = "GST_VIDEO_TRANSFER_LOG316")]
4838 Log316,
4839 #[doc(alias = "GST_VIDEO_TRANSFER_BT2020_12")]
4843 Bt202012,
4844 #[doc(alias = "GST_VIDEO_TRANSFER_ADOBERGB")]
4846 Adobergb,
4847 #[cfg(feature = "v1_18")]
4852 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4853 #[doc(alias = "GST_VIDEO_TRANSFER_BT2020_10")]
4854 Bt202010,
4855 #[cfg(feature = "v1_18")]
4859 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4860 #[doc(alias = "GST_VIDEO_TRANSFER_SMPTE2084")]
4861 Smpte2084,
4862 #[cfg(feature = "v1_18")]
4866 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4867 #[doc(alias = "GST_VIDEO_TRANSFER_ARIB_STD_B67")]
4868 AribStdB67,
4869 #[cfg(feature = "v1_18")]
4871 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4872 #[doc(alias = "GST_VIDEO_TRANSFER_BT601")]
4873 Bt601,
4874 #[doc(hidden)]
4875 __Unknown(i32),
4876}
4877
4878impl VideoTransferFunction {
4879 #[cfg(feature = "v1_20")]
4880 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
4881 #[doc(alias = "gst_video_transfer_function_decode")]
4882 pub fn decode(self, val: f64) -> f64 {
4883 assert_initialized_main_thread!();
4884 unsafe { ffi::gst_video_transfer_function_decode(self.into_glib(), val) }
4885 }
4886
4887 #[cfg(feature = "v1_20")]
4888 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
4889 #[doc(alias = "gst_video_transfer_function_encode")]
4890 pub fn encode(self, val: f64) -> f64 {
4891 assert_initialized_main_thread!();
4892 unsafe { ffi::gst_video_transfer_function_encode(self.into_glib(), val) }
4893 }
4894
4895 #[cfg(feature = "v1_18")]
4896 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4897 #[doc(alias = "gst_video_transfer_function_from_iso")]
4898 pub fn from_iso(value: u32) -> VideoTransferFunction {
4899 assert_initialized_main_thread!();
4900 unsafe { from_glib(ffi::gst_video_transfer_function_from_iso(value)) }
4901 }
4902
4903 #[cfg(feature = "v1_18")]
4904 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4905 #[doc(alias = "gst_video_transfer_function_is_equivalent")]
4906 pub fn is_equivalent(self, from_bpp: u32, to_func: VideoTransferFunction, to_bpp: u32) -> bool {
4907 assert_initialized_main_thread!();
4908 unsafe {
4909 from_glib(ffi::gst_video_transfer_function_is_equivalent(
4910 self.into_glib(),
4911 from_bpp,
4912 to_func.into_glib(),
4913 to_bpp,
4914 ))
4915 }
4916 }
4917
4918 #[cfg(feature = "v1_18")]
4919 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4920 #[doc(alias = "gst_video_transfer_function_to_iso")]
4921 pub fn to_iso(self) -> u32 {
4922 assert_initialized_main_thread!();
4923 unsafe { ffi::gst_video_transfer_function_to_iso(self.into_glib()) }
4924 }
4925}
4926
4927#[doc(hidden)]
4928impl IntoGlib for VideoTransferFunction {
4929 type GlibType = ffi::GstVideoTransferFunction;
4930
4931 fn into_glib(self) -> ffi::GstVideoTransferFunction {
4932 match self {
4933 Self::Unknown => ffi::GST_VIDEO_TRANSFER_UNKNOWN,
4934 Self::Gamma10 => ffi::GST_VIDEO_TRANSFER_GAMMA10,
4935 Self::Gamma18 => ffi::GST_VIDEO_TRANSFER_GAMMA18,
4936 Self::Gamma20 => ffi::GST_VIDEO_TRANSFER_GAMMA20,
4937 Self::Gamma22 => ffi::GST_VIDEO_TRANSFER_GAMMA22,
4938 Self::Bt709 => ffi::GST_VIDEO_TRANSFER_BT709,
4939 Self::Smpte240m => ffi::GST_VIDEO_TRANSFER_SMPTE240M,
4940 Self::Srgb => ffi::GST_VIDEO_TRANSFER_SRGB,
4941 Self::Gamma28 => ffi::GST_VIDEO_TRANSFER_GAMMA28,
4942 Self::Log100 => ffi::GST_VIDEO_TRANSFER_LOG100,
4943 Self::Log316 => ffi::GST_VIDEO_TRANSFER_LOG316,
4944 Self::Bt202012 => ffi::GST_VIDEO_TRANSFER_BT2020_12,
4945 Self::Adobergb => ffi::GST_VIDEO_TRANSFER_ADOBERGB,
4946 #[cfg(feature = "v1_18")]
4947 Self::Bt202010 => ffi::GST_VIDEO_TRANSFER_BT2020_10,
4948 #[cfg(feature = "v1_18")]
4949 Self::Smpte2084 => ffi::GST_VIDEO_TRANSFER_SMPTE2084,
4950 #[cfg(feature = "v1_18")]
4951 Self::AribStdB67 => ffi::GST_VIDEO_TRANSFER_ARIB_STD_B67,
4952 #[cfg(feature = "v1_18")]
4953 Self::Bt601 => ffi::GST_VIDEO_TRANSFER_BT601,
4954 Self::__Unknown(value) => value,
4955 }
4956 }
4957}
4958
4959#[doc(hidden)]
4960impl FromGlib<ffi::GstVideoTransferFunction> for VideoTransferFunction {
4961 unsafe fn from_glib(value: ffi::GstVideoTransferFunction) -> Self {
4962 skip_assert_initialized!();
4963
4964 match value {
4965 ffi::GST_VIDEO_TRANSFER_UNKNOWN => Self::Unknown,
4966 ffi::GST_VIDEO_TRANSFER_GAMMA10 => Self::Gamma10,
4967 ffi::GST_VIDEO_TRANSFER_GAMMA18 => Self::Gamma18,
4968 ffi::GST_VIDEO_TRANSFER_GAMMA20 => Self::Gamma20,
4969 ffi::GST_VIDEO_TRANSFER_GAMMA22 => Self::Gamma22,
4970 ffi::GST_VIDEO_TRANSFER_BT709 => Self::Bt709,
4971 ffi::GST_VIDEO_TRANSFER_SMPTE240M => Self::Smpte240m,
4972 ffi::GST_VIDEO_TRANSFER_SRGB => Self::Srgb,
4973 ffi::GST_VIDEO_TRANSFER_GAMMA28 => Self::Gamma28,
4974 ffi::GST_VIDEO_TRANSFER_LOG100 => Self::Log100,
4975 ffi::GST_VIDEO_TRANSFER_LOG316 => Self::Log316,
4976 ffi::GST_VIDEO_TRANSFER_BT2020_12 => Self::Bt202012,
4977 ffi::GST_VIDEO_TRANSFER_ADOBERGB => Self::Adobergb,
4978 #[cfg(feature = "v1_18")]
4979 ffi::GST_VIDEO_TRANSFER_BT2020_10 => Self::Bt202010,
4980 #[cfg(feature = "v1_18")]
4981 ffi::GST_VIDEO_TRANSFER_SMPTE2084 => Self::Smpte2084,
4982 #[cfg(feature = "v1_18")]
4983 ffi::GST_VIDEO_TRANSFER_ARIB_STD_B67 => Self::AribStdB67,
4984 #[cfg(feature = "v1_18")]
4985 ffi::GST_VIDEO_TRANSFER_BT601 => Self::Bt601,
4986 value => Self::__Unknown(value),
4987 }
4988 }
4989}
4990
4991impl StaticType for VideoTransferFunction {
4992 #[inline]
4993 #[doc(alias = "gst_video_transfer_function_get_type")]
4994 fn static_type() -> glib::Type {
4995 unsafe { from_glib(ffi::gst_video_transfer_function_get_type()) }
4996 }
4997}
4998
4999impl glib::HasParamSpec for VideoTransferFunction {
5000 type ParamSpec = glib::ParamSpecEnum;
5001 type SetValue = Self;
5002 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
5003
5004 fn param_spec_builder() -> Self::BuilderFn {
5005 Self::ParamSpec::builder_with_default
5006 }
5007}
5008
5009impl glib::value::ValueType for VideoTransferFunction {
5010 type Type = Self;
5011}
5012
5013unsafe impl<'a> glib::value::FromValue<'a> for VideoTransferFunction {
5014 type Checker = glib::value::GenericValueTypeChecker<Self>;
5015
5016 #[inline]
5017 unsafe fn from_value(value: &'a glib::Value) -> Self {
5018 skip_assert_initialized!();
5019 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
5020 }
5021}
5022
5023impl ToValue for VideoTransferFunction {
5024 #[inline]
5025 fn to_value(&self) -> glib::Value {
5026 let mut value = glib::Value::for_value_type::<Self>();
5027 unsafe {
5028 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
5029 }
5030 value
5031 }
5032
5033 #[inline]
5034 fn value_type(&self) -> glib::Type {
5035 Self::static_type()
5036 }
5037}
5038
5039impl From<VideoTransferFunction> for glib::Value {
5040 #[inline]
5041 fn from(v: VideoTransferFunction) -> Self {
5042 skip_assert_initialized!();
5043 ToValue::to_value(&v)
5044 }
5045}