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")]
1019#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1020#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1021#[non_exhaustive]
1022#[doc(alias = "GstVideoAFDValue")]
1023pub enum VideoAFDValue {
1024 #[doc(alias = "GST_VIDEO_AFD_UNAVAILABLE")]
1026 Unavailable,
1027 #[doc(alias = "GST_VIDEO_AFD_16_9_TOP_ALIGNED")]
1031 _169TopAligned,
1032 #[doc(alias = "GST_VIDEO_AFD_14_9_TOP_ALIGNED")]
1036 _149TopAligned,
1037 #[doc(alias = "GST_VIDEO_AFD_GREATER_THAN_16_9")]
1041 GreaterThan169,
1042 #[doc(alias = "GST_VIDEO_AFD_4_3_FULL_16_9_FULL")]
1046 _43Full169Full,
1047 #[doc(alias = "GST_VIDEO_AFD_4_3_FULL_4_3_PILLAR")]
1051 _43Full43Pillar,
1052 #[doc(alias = "GST_VIDEO_AFD_16_9_LETTER_16_9_FULL")]
1056 _169Letter169Full,
1057 #[doc(alias = "GST_VIDEO_AFD_14_9_LETTER_14_9_PILLAR")]
1061 _149Letter149Pillar,
1062 #[doc(alias = "GST_VIDEO_AFD_4_3_FULL_14_9_CENTER")]
1065 _43Full149Center,
1066 #[doc(alias = "GST_VIDEO_AFD_16_9_LETTER_14_9_CENTER")]
1069 _169Letter149Center,
1070 #[doc(alias = "GST_VIDEO_AFD_16_9_LETTER_4_3_CENTER")]
1073 _169Letter43Center,
1074 #[doc(hidden)]
1075 __Unknown(i32),
1076}
1077
1078#[cfg(feature = "v1_18")]
1079#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1080#[doc(hidden)]
1081impl IntoGlib for VideoAFDValue {
1082 type GlibType = ffi::GstVideoAFDValue;
1083
1084 #[inline]
1085 fn into_glib(self) -> ffi::GstVideoAFDValue {
1086 match self {
1087 Self::Unavailable => ffi::GST_VIDEO_AFD_UNAVAILABLE,
1088 Self::_169TopAligned => ffi::GST_VIDEO_AFD_16_9_TOP_ALIGNED,
1089 Self::_149TopAligned => ffi::GST_VIDEO_AFD_14_9_TOP_ALIGNED,
1090 Self::GreaterThan169 => ffi::GST_VIDEO_AFD_GREATER_THAN_16_9,
1091 Self::_43Full169Full => ffi::GST_VIDEO_AFD_4_3_FULL_16_9_FULL,
1092 Self::_43Full43Pillar => ffi::GST_VIDEO_AFD_4_3_FULL_4_3_PILLAR,
1093 Self::_169Letter169Full => ffi::GST_VIDEO_AFD_16_9_LETTER_16_9_FULL,
1094 Self::_149Letter149Pillar => ffi::GST_VIDEO_AFD_14_9_LETTER_14_9_PILLAR,
1095 Self::_43Full149Center => ffi::GST_VIDEO_AFD_4_3_FULL_14_9_CENTER,
1096 Self::_169Letter149Center => ffi::GST_VIDEO_AFD_16_9_LETTER_14_9_CENTER,
1097 Self::_169Letter43Center => ffi::GST_VIDEO_AFD_16_9_LETTER_4_3_CENTER,
1098 Self::__Unknown(value) => value,
1099 }
1100 }
1101}
1102
1103#[cfg(feature = "v1_18")]
1104#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1105#[doc(hidden)]
1106impl FromGlib<ffi::GstVideoAFDValue> for VideoAFDValue {
1107 #[inline]
1108 unsafe fn from_glib(value: ffi::GstVideoAFDValue) -> Self {
1109 skip_assert_initialized!();
1110
1111 match value {
1112 ffi::GST_VIDEO_AFD_UNAVAILABLE => Self::Unavailable,
1113 ffi::GST_VIDEO_AFD_16_9_TOP_ALIGNED => Self::_169TopAligned,
1114 ffi::GST_VIDEO_AFD_14_9_TOP_ALIGNED => Self::_149TopAligned,
1115 ffi::GST_VIDEO_AFD_GREATER_THAN_16_9 => Self::GreaterThan169,
1116 ffi::GST_VIDEO_AFD_4_3_FULL_16_9_FULL => Self::_43Full169Full,
1117 ffi::GST_VIDEO_AFD_4_3_FULL_4_3_PILLAR => Self::_43Full43Pillar,
1118 ffi::GST_VIDEO_AFD_16_9_LETTER_16_9_FULL => Self::_169Letter169Full,
1119 ffi::GST_VIDEO_AFD_14_9_LETTER_14_9_PILLAR => Self::_149Letter149Pillar,
1120 ffi::GST_VIDEO_AFD_4_3_FULL_14_9_CENTER => Self::_43Full149Center,
1121 ffi::GST_VIDEO_AFD_16_9_LETTER_14_9_CENTER => Self::_169Letter149Center,
1122 ffi::GST_VIDEO_AFD_16_9_LETTER_4_3_CENTER => Self::_169Letter43Center,
1123 value => Self::__Unknown(value),
1124 }
1125 }
1126}
1127
1128#[cfg(feature = "v1_18")]
1129#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1130impl StaticType for VideoAFDValue {
1131 #[inline]
1132 #[doc(alias = "gst_video_afd_value_get_type")]
1133 fn static_type() -> glib::Type {
1134 unsafe { from_glib(ffi::gst_video_afd_value_get_type()) }
1135 }
1136}
1137
1138#[cfg(feature = "v1_18")]
1139#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1140impl glib::HasParamSpec for VideoAFDValue {
1141 type ParamSpec = glib::ParamSpecEnum;
1142 type SetValue = Self;
1143 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1144
1145 fn param_spec_builder() -> Self::BuilderFn {
1146 Self::ParamSpec::builder_with_default
1147 }
1148}
1149
1150#[cfg(feature = "v1_18")]
1151#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1152impl glib::value::ValueType for VideoAFDValue {
1153 type Type = Self;
1154}
1155
1156#[cfg(feature = "v1_18")]
1157#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1158unsafe impl<'a> glib::value::FromValue<'a> for VideoAFDValue {
1159 type Checker = glib::value::GenericValueTypeChecker<Self>;
1160
1161 #[inline]
1162 unsafe fn from_value(value: &'a glib::Value) -> Self {
1163 skip_assert_initialized!();
1164 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1165 }
1166}
1167
1168#[cfg(feature = "v1_18")]
1169#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1170impl ToValue for VideoAFDValue {
1171 #[inline]
1172 fn to_value(&self) -> glib::Value {
1173 let mut value = glib::Value::for_value_type::<Self>();
1174 unsafe {
1175 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1176 }
1177 value
1178 }
1179
1180 #[inline]
1181 fn value_type(&self) -> glib::Type {
1182 Self::static_type()
1183 }
1184}
1185
1186#[cfg(feature = "v1_18")]
1187#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1188impl From<VideoAFDValue> for glib::Value {
1189 #[inline]
1190 fn from(v: VideoAFDValue) -> Self {
1191 skip_assert_initialized!();
1192 ToValue::to_value(&v)
1193 }
1194}
1195
1196#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1198#[non_exhaustive]
1199#[doc(alias = "GstVideoAlphaMode")]
1200pub enum VideoAlphaMode {
1201 #[doc(alias = "GST_VIDEO_ALPHA_MODE_COPY")]
1205 Copy,
1206 #[doc(alias = "GST_VIDEO_ALPHA_MODE_SET")]
1209 Set,
1210 #[doc(alias = "GST_VIDEO_ALPHA_MODE_MULT")]
1215 Mult,
1216 #[doc(hidden)]
1217 __Unknown(i32),
1218}
1219
1220#[doc(hidden)]
1221impl IntoGlib for VideoAlphaMode {
1222 type GlibType = ffi::GstVideoAlphaMode;
1223
1224 #[inline]
1225 fn into_glib(self) -> ffi::GstVideoAlphaMode {
1226 match self {
1227 Self::Copy => ffi::GST_VIDEO_ALPHA_MODE_COPY,
1228 Self::Set => ffi::GST_VIDEO_ALPHA_MODE_SET,
1229 Self::Mult => ffi::GST_VIDEO_ALPHA_MODE_MULT,
1230 Self::__Unknown(value) => value,
1231 }
1232 }
1233}
1234
1235#[doc(hidden)]
1236impl FromGlib<ffi::GstVideoAlphaMode> for VideoAlphaMode {
1237 #[inline]
1238 unsafe fn from_glib(value: ffi::GstVideoAlphaMode) -> Self {
1239 skip_assert_initialized!();
1240
1241 match value {
1242 ffi::GST_VIDEO_ALPHA_MODE_COPY => Self::Copy,
1243 ffi::GST_VIDEO_ALPHA_MODE_SET => Self::Set,
1244 ffi::GST_VIDEO_ALPHA_MODE_MULT => Self::Mult,
1245 value => Self::__Unknown(value),
1246 }
1247 }
1248}
1249
1250impl StaticType for VideoAlphaMode {
1251 #[inline]
1252 #[doc(alias = "gst_video_alpha_mode_get_type")]
1253 fn static_type() -> glib::Type {
1254 unsafe { from_glib(ffi::gst_video_alpha_mode_get_type()) }
1255 }
1256}
1257
1258impl glib::HasParamSpec for VideoAlphaMode {
1259 type ParamSpec = glib::ParamSpecEnum;
1260 type SetValue = Self;
1261 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1262
1263 fn param_spec_builder() -> Self::BuilderFn {
1264 Self::ParamSpec::builder_with_default
1265 }
1266}
1267
1268impl glib::value::ValueType for VideoAlphaMode {
1269 type Type = Self;
1270}
1271
1272unsafe impl<'a> glib::value::FromValue<'a> for VideoAlphaMode {
1273 type Checker = glib::value::GenericValueTypeChecker<Self>;
1274
1275 #[inline]
1276 unsafe fn from_value(value: &'a glib::Value) -> Self {
1277 skip_assert_initialized!();
1278 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1279 }
1280}
1281
1282impl ToValue for VideoAlphaMode {
1283 #[inline]
1284 fn to_value(&self) -> glib::Value {
1285 let mut value = glib::Value::for_value_type::<Self>();
1286 unsafe {
1287 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1288 }
1289 value
1290 }
1291
1292 #[inline]
1293 fn value_type(&self) -> glib::Type {
1294 Self::static_type()
1295 }
1296}
1297
1298impl From<VideoAlphaMode> for glib::Value {
1299 #[inline]
1300 fn from(v: VideoAlphaMode) -> Self {
1301 skip_assert_initialized!();
1302 ToValue::to_value(&v)
1303 }
1304}
1305
1306#[cfg(feature = "v1_16")]
1307#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1308#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1309#[non_exhaustive]
1310#[doc(alias = "GstVideoAncillaryDID")]
1311pub enum VideoAncillaryDID {
1312 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_UNDEFINED")]
1313 Undefined,
1314 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_DELETION")]
1315 Deletion,
1316 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_HANC_3G_AUDIO_DATA_FIRST")]
1317 Hanc3gAudioDataFirst,
1318 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_HANC_3G_AUDIO_DATA_LAST")]
1319 Hanc3gAudioDataLast,
1320 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_HANC_HDTV_AUDIO_DATA_FIRST")]
1321 HancHdtvAudioDataFirst,
1322 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_HANC_HDTV_AUDIO_DATA_LAST")]
1323 HancHdtvAudioDataLast,
1324 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_1_FIRST")]
1325 HancSdtvAudioData1First,
1326 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_1_LAST")]
1327 HancSdtvAudioData1Last,
1328 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_CAMERA_POSITION")]
1329 CameraPosition,
1330 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_HANC_ERROR_DETECTION")]
1331 HancErrorDetection,
1332 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_2_FIRST")]
1333 HancSdtvAudioData2First,
1334 #[doc(alias = "GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_2_LAST")]
1335 HancSdtvAudioData2Last,
1336 #[doc(hidden)]
1337 __Unknown(i32),
1338}
1339
1340#[cfg(feature = "v1_16")]
1341#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1342#[doc(hidden)]
1343impl IntoGlib for VideoAncillaryDID {
1344 type GlibType = ffi::GstVideoAncillaryDID;
1345
1346 #[inline]
1347 fn into_glib(self) -> ffi::GstVideoAncillaryDID {
1348 match self {
1349 Self::Undefined => ffi::GST_VIDEO_ANCILLARY_DID_UNDEFINED,
1350 Self::Deletion => ffi::GST_VIDEO_ANCILLARY_DID_DELETION,
1351 Self::Hanc3gAudioDataFirst => ffi::GST_VIDEO_ANCILLARY_DID_HANC_3G_AUDIO_DATA_FIRST,
1352 Self::Hanc3gAudioDataLast => ffi::GST_VIDEO_ANCILLARY_DID_HANC_3G_AUDIO_DATA_LAST,
1353 Self::HancHdtvAudioDataFirst => ffi::GST_VIDEO_ANCILLARY_DID_HANC_HDTV_AUDIO_DATA_FIRST,
1354 Self::HancHdtvAudioDataLast => ffi::GST_VIDEO_ANCILLARY_DID_HANC_HDTV_AUDIO_DATA_LAST,
1355 Self::HancSdtvAudioData1First => {
1356 ffi::GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_1_FIRST
1357 }
1358 Self::HancSdtvAudioData1Last => {
1359 ffi::GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_1_LAST
1360 }
1361 Self::CameraPosition => ffi::GST_VIDEO_ANCILLARY_DID_CAMERA_POSITION,
1362 Self::HancErrorDetection => ffi::GST_VIDEO_ANCILLARY_DID_HANC_ERROR_DETECTION,
1363 Self::HancSdtvAudioData2First => {
1364 ffi::GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_2_FIRST
1365 }
1366 Self::HancSdtvAudioData2Last => {
1367 ffi::GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_2_LAST
1368 }
1369 Self::__Unknown(value) => value,
1370 }
1371 }
1372}
1373
1374#[cfg(feature = "v1_16")]
1375#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1376#[doc(hidden)]
1377impl FromGlib<ffi::GstVideoAncillaryDID> for VideoAncillaryDID {
1378 #[inline]
1379 unsafe fn from_glib(value: ffi::GstVideoAncillaryDID) -> Self {
1380 skip_assert_initialized!();
1381
1382 match value {
1383 ffi::GST_VIDEO_ANCILLARY_DID_UNDEFINED => Self::Undefined,
1384 ffi::GST_VIDEO_ANCILLARY_DID_DELETION => Self::Deletion,
1385 ffi::GST_VIDEO_ANCILLARY_DID_HANC_3G_AUDIO_DATA_FIRST => Self::Hanc3gAudioDataFirst,
1386 ffi::GST_VIDEO_ANCILLARY_DID_HANC_3G_AUDIO_DATA_LAST => Self::Hanc3gAudioDataLast,
1387 ffi::GST_VIDEO_ANCILLARY_DID_HANC_HDTV_AUDIO_DATA_FIRST => Self::HancHdtvAudioDataFirst,
1388 ffi::GST_VIDEO_ANCILLARY_DID_HANC_HDTV_AUDIO_DATA_LAST => Self::HancHdtvAudioDataLast,
1389 ffi::GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_1_FIRST => {
1390 Self::HancSdtvAudioData1First
1391 }
1392 ffi::GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_1_LAST => {
1393 Self::HancSdtvAudioData1Last
1394 }
1395 ffi::GST_VIDEO_ANCILLARY_DID_CAMERA_POSITION => Self::CameraPosition,
1396 ffi::GST_VIDEO_ANCILLARY_DID_HANC_ERROR_DETECTION => Self::HancErrorDetection,
1397 ffi::GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_2_FIRST => {
1398 Self::HancSdtvAudioData2First
1399 }
1400 ffi::GST_VIDEO_ANCILLARY_DID_HANC_SDTV_AUDIO_DATA_2_LAST => {
1401 Self::HancSdtvAudioData2Last
1402 }
1403 value => Self::__Unknown(value),
1404 }
1405 }
1406}
1407
1408#[cfg(feature = "v1_16")]
1409#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1410impl StaticType for VideoAncillaryDID {
1411 #[inline]
1412 #[doc(alias = "gst_video_ancillary_did_get_type")]
1413 fn static_type() -> glib::Type {
1414 unsafe { from_glib(ffi::gst_video_ancillary_did_get_type()) }
1415 }
1416}
1417
1418#[cfg(feature = "v1_16")]
1419#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1420impl glib::HasParamSpec for VideoAncillaryDID {
1421 type ParamSpec = glib::ParamSpecEnum;
1422 type SetValue = Self;
1423 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1424
1425 fn param_spec_builder() -> Self::BuilderFn {
1426 Self::ParamSpec::builder_with_default
1427 }
1428}
1429
1430#[cfg(feature = "v1_16")]
1431#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1432impl glib::value::ValueType for VideoAncillaryDID {
1433 type Type = Self;
1434}
1435
1436#[cfg(feature = "v1_16")]
1437#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1438unsafe impl<'a> glib::value::FromValue<'a> for VideoAncillaryDID {
1439 type Checker = glib::value::GenericValueTypeChecker<Self>;
1440
1441 #[inline]
1442 unsafe fn from_value(value: &'a glib::Value) -> Self {
1443 skip_assert_initialized!();
1444 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1445 }
1446}
1447
1448#[cfg(feature = "v1_16")]
1449#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1450impl ToValue for VideoAncillaryDID {
1451 #[inline]
1452 fn to_value(&self) -> glib::Value {
1453 let mut value = glib::Value::for_value_type::<Self>();
1454 unsafe {
1455 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1456 }
1457 value
1458 }
1459
1460 #[inline]
1461 fn value_type(&self) -> glib::Type {
1462 Self::static_type()
1463 }
1464}
1465
1466#[cfg(feature = "v1_16")]
1467#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1468impl From<VideoAncillaryDID> for glib::Value {
1469 #[inline]
1470 fn from(v: VideoAncillaryDID) -> Self {
1471 skip_assert_initialized!();
1472 ToValue::to_value(&v)
1473 }
1474}
1475
1476#[cfg(feature = "v1_16")]
1478#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1479#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1480#[non_exhaustive]
1481#[doc(alias = "GstVideoAncillaryDID16")]
1482pub enum VideoAncillaryDID16 {
1483 #[doc(alias = "GST_VIDEO_ANCILLARY_DID16_S334_EIA_708")]
1485 S334Eia708,
1486 #[doc(alias = "GST_VIDEO_ANCILLARY_DID16_S334_EIA_608")]
1488 S334Eia608,
1489 #[doc(alias = "GST_VIDEO_ANCILLARY_DID16_S2016_3_AFD_BAR")]
1491 S20163AfdBar,
1492 #[doc(hidden)]
1493 __Unknown(i32),
1494}
1495
1496#[cfg(feature = "v1_16")]
1497#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1498#[doc(hidden)]
1499impl IntoGlib for VideoAncillaryDID16 {
1500 type GlibType = ffi::GstVideoAncillaryDID16;
1501
1502 #[inline]
1503 fn into_glib(self) -> ffi::GstVideoAncillaryDID16 {
1504 match self {
1505 Self::S334Eia708 => ffi::GST_VIDEO_ANCILLARY_DID16_S334_EIA_708,
1506 Self::S334Eia608 => ffi::GST_VIDEO_ANCILLARY_DID16_S334_EIA_608,
1507 Self::S20163AfdBar => ffi::GST_VIDEO_ANCILLARY_DID16_S2016_3_AFD_BAR,
1508 Self::__Unknown(value) => value,
1509 }
1510 }
1511}
1512
1513#[cfg(feature = "v1_16")]
1514#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1515#[doc(hidden)]
1516impl FromGlib<ffi::GstVideoAncillaryDID16> for VideoAncillaryDID16 {
1517 #[inline]
1518 unsafe fn from_glib(value: ffi::GstVideoAncillaryDID16) -> Self {
1519 skip_assert_initialized!();
1520
1521 match value {
1522 ffi::GST_VIDEO_ANCILLARY_DID16_S334_EIA_708 => Self::S334Eia708,
1523 ffi::GST_VIDEO_ANCILLARY_DID16_S334_EIA_608 => Self::S334Eia608,
1524 ffi::GST_VIDEO_ANCILLARY_DID16_S2016_3_AFD_BAR => Self::S20163AfdBar,
1525 value => Self::__Unknown(value),
1526 }
1527 }
1528}
1529
1530#[cfg(feature = "v1_16")]
1531#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1532impl StaticType for VideoAncillaryDID16 {
1533 #[inline]
1534 #[doc(alias = "gst_video_ancillary_di_d16_get_type")]
1535 fn static_type() -> glib::Type {
1536 unsafe { from_glib(ffi::gst_video_ancillary_di_d16_get_type()) }
1537 }
1538}
1539
1540#[cfg(feature = "v1_16")]
1541#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1542impl glib::HasParamSpec for VideoAncillaryDID16 {
1543 type ParamSpec = glib::ParamSpecEnum;
1544 type SetValue = Self;
1545 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1546
1547 fn param_spec_builder() -> Self::BuilderFn {
1548 Self::ParamSpec::builder_with_default
1549 }
1550}
1551
1552#[cfg(feature = "v1_16")]
1553#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1554impl glib::value::ValueType for VideoAncillaryDID16 {
1555 type Type = Self;
1556}
1557
1558#[cfg(feature = "v1_16")]
1559#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1560unsafe impl<'a> glib::value::FromValue<'a> for VideoAncillaryDID16 {
1561 type Checker = glib::value::GenericValueTypeChecker<Self>;
1562
1563 #[inline]
1564 unsafe fn from_value(value: &'a glib::Value) -> Self {
1565 skip_assert_initialized!();
1566 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1567 }
1568}
1569
1570#[cfg(feature = "v1_16")]
1571#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1572impl ToValue for VideoAncillaryDID16 {
1573 #[inline]
1574 fn to_value(&self) -> glib::Value {
1575 let mut value = glib::Value::for_value_type::<Self>();
1576 unsafe {
1577 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1578 }
1579 value
1580 }
1581
1582 #[inline]
1583 fn value_type(&self) -> glib::Type {
1584 Self::static_type()
1585 }
1586}
1587
1588#[cfg(feature = "v1_16")]
1589#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1590impl From<VideoAncillaryDID16> for glib::Value {
1591 #[inline]
1592 fn from(v: VideoAncillaryDID16) -> Self {
1593 skip_assert_initialized!();
1594 ToValue::to_value(&v)
1595 }
1596}
1597
1598#[cfg(feature = "v1_16")]
1600#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1601#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1602#[non_exhaustive]
1603#[doc(alias = "GstVideoCaptionType")]
1604pub enum VideoCaptionType {
1605 #[doc(alias = "GST_VIDEO_CAPTION_TYPE_UNKNOWN")]
1607 Unknown,
1608 #[doc(alias = "GST_VIDEO_CAPTION_TYPE_CEA608_RAW")]
1616 Cea608Raw,
1617 #[doc(alias = "GST_VIDEO_CAPTION_TYPE_CEA608_S334_1A")]
1626 Cea608S3341a,
1627 #[doc(alias = "GST_VIDEO_CAPTION_TYPE_CEA708_RAW")]
1631 Cea708Raw,
1632 #[doc(alias = "GST_VIDEO_CAPTION_TYPE_CEA708_CDP")]
1636 Cea708Cdp,
1637 #[doc(hidden)]
1638 __Unknown(i32),
1639}
1640
1641#[cfg(feature = "v1_16")]
1642#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1643impl VideoCaptionType {
1644 #[doc(alias = "gst_video_caption_type_to_caps")]
1645 pub fn to_caps(self) -> gst::Caps {
1646 assert_initialized_main_thread!();
1647 unsafe { from_glib_full(ffi::gst_video_caption_type_to_caps(self.into_glib())) }
1648 }
1649}
1650
1651#[cfg(feature = "v1_16")]
1652#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1653#[doc(hidden)]
1654impl IntoGlib for VideoCaptionType {
1655 type GlibType = ffi::GstVideoCaptionType;
1656
1657 #[inline]
1658 fn into_glib(self) -> ffi::GstVideoCaptionType {
1659 match self {
1660 Self::Unknown => ffi::GST_VIDEO_CAPTION_TYPE_UNKNOWN,
1661 Self::Cea608Raw => ffi::GST_VIDEO_CAPTION_TYPE_CEA608_RAW,
1662 Self::Cea608S3341a => ffi::GST_VIDEO_CAPTION_TYPE_CEA608_S334_1A,
1663 Self::Cea708Raw => ffi::GST_VIDEO_CAPTION_TYPE_CEA708_RAW,
1664 Self::Cea708Cdp => ffi::GST_VIDEO_CAPTION_TYPE_CEA708_CDP,
1665 Self::__Unknown(value) => value,
1666 }
1667 }
1668}
1669
1670#[cfg(feature = "v1_16")]
1671#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1672#[doc(hidden)]
1673impl FromGlib<ffi::GstVideoCaptionType> for VideoCaptionType {
1674 #[inline]
1675 unsafe fn from_glib(value: ffi::GstVideoCaptionType) -> Self {
1676 skip_assert_initialized!();
1677
1678 match value {
1679 ffi::GST_VIDEO_CAPTION_TYPE_UNKNOWN => Self::Unknown,
1680 ffi::GST_VIDEO_CAPTION_TYPE_CEA608_RAW => Self::Cea608Raw,
1681 ffi::GST_VIDEO_CAPTION_TYPE_CEA608_S334_1A => Self::Cea608S3341a,
1682 ffi::GST_VIDEO_CAPTION_TYPE_CEA708_RAW => Self::Cea708Raw,
1683 ffi::GST_VIDEO_CAPTION_TYPE_CEA708_CDP => Self::Cea708Cdp,
1684 value => Self::__Unknown(value),
1685 }
1686 }
1687}
1688
1689#[cfg(feature = "v1_16")]
1690#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1691impl StaticType for VideoCaptionType {
1692 #[inline]
1693 #[doc(alias = "gst_video_caption_type_get_type")]
1694 fn static_type() -> glib::Type {
1695 unsafe { from_glib(ffi::gst_video_caption_type_get_type()) }
1696 }
1697}
1698
1699#[cfg(feature = "v1_16")]
1700#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1701impl glib::HasParamSpec for VideoCaptionType {
1702 type ParamSpec = glib::ParamSpecEnum;
1703 type SetValue = Self;
1704 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1705
1706 fn param_spec_builder() -> Self::BuilderFn {
1707 Self::ParamSpec::builder_with_default
1708 }
1709}
1710
1711#[cfg(feature = "v1_16")]
1712#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1713impl glib::value::ValueType for VideoCaptionType {
1714 type Type = Self;
1715}
1716
1717#[cfg(feature = "v1_16")]
1718#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1719unsafe impl<'a> glib::value::FromValue<'a> for VideoCaptionType {
1720 type Checker = glib::value::GenericValueTypeChecker<Self>;
1721
1722 #[inline]
1723 unsafe fn from_value(value: &'a glib::Value) -> Self {
1724 skip_assert_initialized!();
1725 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1726 }
1727}
1728
1729#[cfg(feature = "v1_16")]
1730#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1731impl ToValue for VideoCaptionType {
1732 #[inline]
1733 fn to_value(&self) -> glib::Value {
1734 let mut value = glib::Value::for_value_type::<Self>();
1735 unsafe {
1736 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1737 }
1738 value
1739 }
1740
1741 #[inline]
1742 fn value_type(&self) -> glib::Type {
1743 Self::static_type()
1744 }
1745}
1746
1747#[cfg(feature = "v1_16")]
1748#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1749impl From<VideoCaptionType> for glib::Value {
1750 #[inline]
1751 fn from(v: VideoCaptionType) -> Self {
1752 skip_assert_initialized!();
1753 ToValue::to_value(&v)
1754 }
1755}
1756
1757#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1759#[non_exhaustive]
1760#[doc(alias = "GstVideoChromaMode")]
1761pub enum VideoChromaMode {
1762 #[doc(alias = "GST_VIDEO_CHROMA_MODE_FULL")]
1764 Full,
1765 #[doc(alias = "GST_VIDEO_CHROMA_MODE_UPSAMPLE_ONLY")]
1767 UpsampleOnly,
1768 #[doc(alias = "GST_VIDEO_CHROMA_MODE_DOWNSAMPLE_ONLY")]
1770 DownsampleOnly,
1771 #[doc(alias = "GST_VIDEO_CHROMA_MODE_NONE")]
1773 None,
1774 #[doc(hidden)]
1775 __Unknown(i32),
1776}
1777
1778#[doc(hidden)]
1779impl IntoGlib for VideoChromaMode {
1780 type GlibType = ffi::GstVideoChromaMode;
1781
1782 #[inline]
1783 fn into_glib(self) -> ffi::GstVideoChromaMode {
1784 match self {
1785 Self::Full => ffi::GST_VIDEO_CHROMA_MODE_FULL,
1786 Self::UpsampleOnly => ffi::GST_VIDEO_CHROMA_MODE_UPSAMPLE_ONLY,
1787 Self::DownsampleOnly => ffi::GST_VIDEO_CHROMA_MODE_DOWNSAMPLE_ONLY,
1788 Self::None => ffi::GST_VIDEO_CHROMA_MODE_NONE,
1789 Self::__Unknown(value) => value,
1790 }
1791 }
1792}
1793
1794#[doc(hidden)]
1795impl FromGlib<ffi::GstVideoChromaMode> for VideoChromaMode {
1796 #[inline]
1797 unsafe fn from_glib(value: ffi::GstVideoChromaMode) -> Self {
1798 skip_assert_initialized!();
1799
1800 match value {
1801 ffi::GST_VIDEO_CHROMA_MODE_FULL => Self::Full,
1802 ffi::GST_VIDEO_CHROMA_MODE_UPSAMPLE_ONLY => Self::UpsampleOnly,
1803 ffi::GST_VIDEO_CHROMA_MODE_DOWNSAMPLE_ONLY => Self::DownsampleOnly,
1804 ffi::GST_VIDEO_CHROMA_MODE_NONE => Self::None,
1805 value => Self::__Unknown(value),
1806 }
1807 }
1808}
1809
1810impl StaticType for VideoChromaMode {
1811 #[inline]
1812 #[doc(alias = "gst_video_chroma_mode_get_type")]
1813 fn static_type() -> glib::Type {
1814 unsafe { from_glib(ffi::gst_video_chroma_mode_get_type()) }
1815 }
1816}
1817
1818impl glib::HasParamSpec for VideoChromaMode {
1819 type ParamSpec = glib::ParamSpecEnum;
1820 type SetValue = Self;
1821 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1822
1823 fn param_spec_builder() -> Self::BuilderFn {
1824 Self::ParamSpec::builder_with_default
1825 }
1826}
1827
1828impl glib::value::ValueType for VideoChromaMode {
1829 type Type = Self;
1830}
1831
1832unsafe impl<'a> glib::value::FromValue<'a> for VideoChromaMode {
1833 type Checker = glib::value::GenericValueTypeChecker<Self>;
1834
1835 #[inline]
1836 unsafe fn from_value(value: &'a glib::Value) -> Self {
1837 skip_assert_initialized!();
1838 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1839 }
1840}
1841
1842impl ToValue for VideoChromaMode {
1843 #[inline]
1844 fn to_value(&self) -> glib::Value {
1845 let mut value = glib::Value::for_value_type::<Self>();
1846 unsafe {
1847 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1848 }
1849 value
1850 }
1851
1852 #[inline]
1853 fn value_type(&self) -> glib::Type {
1854 Self::static_type()
1855 }
1856}
1857
1858impl From<VideoChromaMode> for glib::Value {
1859 #[inline]
1860 fn from(v: VideoChromaMode) -> Self {
1861 skip_assert_initialized!();
1862 ToValue::to_value(&v)
1863 }
1864}
1865
1866#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1869#[non_exhaustive]
1870#[doc(alias = "GstVideoColorMatrix")]
1871pub enum VideoColorMatrix {
1872 #[doc(alias = "GST_VIDEO_COLOR_MATRIX_UNKNOWN")]
1874 Unknown,
1875 #[doc(alias = "GST_VIDEO_COLOR_MATRIX_RGB")]
1878 Rgb,
1879 #[doc(alias = "GST_VIDEO_COLOR_MATRIX_FCC")]
1881 Fcc,
1882 #[doc(alias = "GST_VIDEO_COLOR_MATRIX_BT709")]
1885 Bt709,
1886 #[doc(alias = "GST_VIDEO_COLOR_MATRIX_BT601")]
1888 Bt601,
1889 #[doc(alias = "GST_VIDEO_COLOR_MATRIX_SMPTE240M")]
1891 Smpte240m,
1892 #[doc(alias = "GST_VIDEO_COLOR_MATRIX_BT2020")]
1894 Bt2020,
1895 #[doc(hidden)]
1896 __Unknown(i32),
1897}
1898
1899impl VideoColorMatrix {
1900 #[cfg(feature = "v1_18")]
1901 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1902 #[doc(alias = "gst_video_color_matrix_from_iso")]
1903 pub fn from_iso(value: u32) -> VideoColorMatrix {
1904 assert_initialized_main_thread!();
1905 unsafe { from_glib(ffi::gst_video_color_matrix_from_iso(value)) }
1906 }
1907
1908 #[cfg(feature = "v1_18")]
1909 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1910 #[doc(alias = "gst_video_color_matrix_to_iso")]
1911 pub fn to_iso(self) -> u32 {
1912 assert_initialized_main_thread!();
1913 unsafe { ffi::gst_video_color_matrix_to_iso(self.into_glib()) }
1914 }
1915}
1916
1917#[doc(hidden)]
1918impl IntoGlib for VideoColorMatrix {
1919 type GlibType = ffi::GstVideoColorMatrix;
1920
1921 #[inline]
1922 fn into_glib(self) -> ffi::GstVideoColorMatrix {
1923 match self {
1924 Self::Unknown => ffi::GST_VIDEO_COLOR_MATRIX_UNKNOWN,
1925 Self::Rgb => ffi::GST_VIDEO_COLOR_MATRIX_RGB,
1926 Self::Fcc => ffi::GST_VIDEO_COLOR_MATRIX_FCC,
1927 Self::Bt709 => ffi::GST_VIDEO_COLOR_MATRIX_BT709,
1928 Self::Bt601 => ffi::GST_VIDEO_COLOR_MATRIX_BT601,
1929 Self::Smpte240m => ffi::GST_VIDEO_COLOR_MATRIX_SMPTE240M,
1930 Self::Bt2020 => ffi::GST_VIDEO_COLOR_MATRIX_BT2020,
1931 Self::__Unknown(value) => value,
1932 }
1933 }
1934}
1935
1936#[doc(hidden)]
1937impl FromGlib<ffi::GstVideoColorMatrix> for VideoColorMatrix {
1938 #[inline]
1939 unsafe fn from_glib(value: ffi::GstVideoColorMatrix) -> Self {
1940 skip_assert_initialized!();
1941
1942 match value {
1943 ffi::GST_VIDEO_COLOR_MATRIX_UNKNOWN => Self::Unknown,
1944 ffi::GST_VIDEO_COLOR_MATRIX_RGB => Self::Rgb,
1945 ffi::GST_VIDEO_COLOR_MATRIX_FCC => Self::Fcc,
1946 ffi::GST_VIDEO_COLOR_MATRIX_BT709 => Self::Bt709,
1947 ffi::GST_VIDEO_COLOR_MATRIX_BT601 => Self::Bt601,
1948 ffi::GST_VIDEO_COLOR_MATRIX_SMPTE240M => Self::Smpte240m,
1949 ffi::GST_VIDEO_COLOR_MATRIX_BT2020 => Self::Bt2020,
1950 value => Self::__Unknown(value),
1951 }
1952 }
1953}
1954
1955impl StaticType for VideoColorMatrix {
1956 #[inline]
1957 #[doc(alias = "gst_video_color_matrix_get_type")]
1958 fn static_type() -> glib::Type {
1959 unsafe { from_glib(ffi::gst_video_color_matrix_get_type()) }
1960 }
1961}
1962
1963impl glib::HasParamSpec for VideoColorMatrix {
1964 type ParamSpec = glib::ParamSpecEnum;
1965 type SetValue = Self;
1966 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1967
1968 fn param_spec_builder() -> Self::BuilderFn {
1969 Self::ParamSpec::builder_with_default
1970 }
1971}
1972
1973impl glib::value::ValueType for VideoColorMatrix {
1974 type Type = Self;
1975}
1976
1977unsafe impl<'a> glib::value::FromValue<'a> for VideoColorMatrix {
1978 type Checker = glib::value::GenericValueTypeChecker<Self>;
1979
1980 #[inline]
1981 unsafe fn from_value(value: &'a glib::Value) -> Self {
1982 skip_assert_initialized!();
1983 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1984 }
1985}
1986
1987impl ToValue for VideoColorMatrix {
1988 #[inline]
1989 fn to_value(&self) -> glib::Value {
1990 let mut value = glib::Value::for_value_type::<Self>();
1991 unsafe {
1992 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1993 }
1994 value
1995 }
1996
1997 #[inline]
1998 fn value_type(&self) -> glib::Type {
1999 Self::static_type()
2000 }
2001}
2002
2003impl From<VideoColorMatrix> for glib::Value {
2004 #[inline]
2005 fn from(v: VideoColorMatrix) -> Self {
2006 skip_assert_initialized!();
2007 ToValue::to_value(&v)
2008 }
2009}
2010
2011#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2014#[non_exhaustive]
2015#[doc(alias = "GstVideoColorPrimaries")]
2016pub enum VideoColorPrimaries {
2017 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_UNKNOWN")]
2019 Unknown,
2020 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_BT709")]
2023 Bt709,
2024 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_BT470M")]
2027 Bt470m,
2028 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_BT470BG")]
2031 Bt470bg,
2032 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_SMPTE170M")]
2035 Smpte170m,
2036 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_SMPTE240M")]
2038 Smpte240m,
2039 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_FILM")]
2042 Film,
2043 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_BT2020")]
2045 Bt2020,
2046 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_ADOBERGB")]
2048 Adobergb,
2049 #[cfg(feature = "v1_16")]
2052 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2053 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_SMPTEST428")]
2054 Smptest428,
2055 #[cfg(feature = "v1_16")]
2058 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2059 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_SMPTERP431")]
2060 Smpterp431,
2061 #[cfg(feature = "v1_16")]
2064 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2065 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_SMPTEEG432")]
2066 Smpteeg432,
2067 #[cfg(feature = "v1_16")]
2070 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2071 #[doc(alias = "GST_VIDEO_COLOR_PRIMARIES_EBU3213")]
2072 Ebu3213,
2073 #[doc(hidden)]
2074 __Unknown(i32),
2075}
2076
2077impl VideoColorPrimaries {
2078 #[cfg(feature = "v1_18")]
2079 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2080 #[doc(alias = "gst_video_color_primaries_from_iso")]
2081 pub fn from_iso(value: u32) -> VideoColorPrimaries {
2082 assert_initialized_main_thread!();
2083 unsafe { from_glib(ffi::gst_video_color_primaries_from_iso(value)) }
2084 }
2085
2086 #[cfg(feature = "v1_22")]
2093 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
2094 #[doc(alias = "gst_video_color_primaries_is_equivalent")]
2095 pub fn is_equivalent(self, other: VideoColorPrimaries) -> bool {
2096 assert_initialized_main_thread!();
2097 unsafe {
2098 from_glib(ffi::gst_video_color_primaries_is_equivalent(
2099 self.into_glib(),
2100 other.into_glib(),
2101 ))
2102 }
2103 }
2104
2105 #[cfg(feature = "v1_18")]
2106 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2107 #[doc(alias = "gst_video_color_primaries_to_iso")]
2108 pub fn to_iso(self) -> u32 {
2109 assert_initialized_main_thread!();
2110 unsafe { ffi::gst_video_color_primaries_to_iso(self.into_glib()) }
2111 }
2112}
2113
2114#[doc(hidden)]
2115impl IntoGlib for VideoColorPrimaries {
2116 type GlibType = ffi::GstVideoColorPrimaries;
2117
2118 fn into_glib(self) -> ffi::GstVideoColorPrimaries {
2119 match self {
2120 Self::Unknown => ffi::GST_VIDEO_COLOR_PRIMARIES_UNKNOWN,
2121 Self::Bt709 => ffi::GST_VIDEO_COLOR_PRIMARIES_BT709,
2122 Self::Bt470m => ffi::GST_VIDEO_COLOR_PRIMARIES_BT470M,
2123 Self::Bt470bg => ffi::GST_VIDEO_COLOR_PRIMARIES_BT470BG,
2124 Self::Smpte170m => ffi::GST_VIDEO_COLOR_PRIMARIES_SMPTE170M,
2125 Self::Smpte240m => ffi::GST_VIDEO_COLOR_PRIMARIES_SMPTE240M,
2126 Self::Film => ffi::GST_VIDEO_COLOR_PRIMARIES_FILM,
2127 Self::Bt2020 => ffi::GST_VIDEO_COLOR_PRIMARIES_BT2020,
2128 Self::Adobergb => ffi::GST_VIDEO_COLOR_PRIMARIES_ADOBERGB,
2129 #[cfg(feature = "v1_16")]
2130 Self::Smptest428 => ffi::GST_VIDEO_COLOR_PRIMARIES_SMPTEST428,
2131 #[cfg(feature = "v1_16")]
2132 Self::Smpterp431 => ffi::GST_VIDEO_COLOR_PRIMARIES_SMPTERP431,
2133 #[cfg(feature = "v1_16")]
2134 Self::Smpteeg432 => ffi::GST_VIDEO_COLOR_PRIMARIES_SMPTEEG432,
2135 #[cfg(feature = "v1_16")]
2136 Self::Ebu3213 => ffi::GST_VIDEO_COLOR_PRIMARIES_EBU3213,
2137 Self::__Unknown(value) => value,
2138 }
2139 }
2140}
2141
2142#[doc(hidden)]
2143impl FromGlib<ffi::GstVideoColorPrimaries> for VideoColorPrimaries {
2144 unsafe fn from_glib(value: ffi::GstVideoColorPrimaries) -> Self {
2145 skip_assert_initialized!();
2146
2147 match value {
2148 ffi::GST_VIDEO_COLOR_PRIMARIES_UNKNOWN => Self::Unknown,
2149 ffi::GST_VIDEO_COLOR_PRIMARIES_BT709 => Self::Bt709,
2150 ffi::GST_VIDEO_COLOR_PRIMARIES_BT470M => Self::Bt470m,
2151 ffi::GST_VIDEO_COLOR_PRIMARIES_BT470BG => Self::Bt470bg,
2152 ffi::GST_VIDEO_COLOR_PRIMARIES_SMPTE170M => Self::Smpte170m,
2153 ffi::GST_VIDEO_COLOR_PRIMARIES_SMPTE240M => Self::Smpte240m,
2154 ffi::GST_VIDEO_COLOR_PRIMARIES_FILM => Self::Film,
2155 ffi::GST_VIDEO_COLOR_PRIMARIES_BT2020 => Self::Bt2020,
2156 ffi::GST_VIDEO_COLOR_PRIMARIES_ADOBERGB => Self::Adobergb,
2157 #[cfg(feature = "v1_16")]
2158 ffi::GST_VIDEO_COLOR_PRIMARIES_SMPTEST428 => Self::Smptest428,
2159 #[cfg(feature = "v1_16")]
2160 ffi::GST_VIDEO_COLOR_PRIMARIES_SMPTERP431 => Self::Smpterp431,
2161 #[cfg(feature = "v1_16")]
2162 ffi::GST_VIDEO_COLOR_PRIMARIES_SMPTEEG432 => Self::Smpteeg432,
2163 #[cfg(feature = "v1_16")]
2164 ffi::GST_VIDEO_COLOR_PRIMARIES_EBU3213 => Self::Ebu3213,
2165 value => Self::__Unknown(value),
2166 }
2167 }
2168}
2169
2170impl StaticType for VideoColorPrimaries {
2171 #[inline]
2172 #[doc(alias = "gst_video_color_primaries_get_type")]
2173 fn static_type() -> glib::Type {
2174 unsafe { from_glib(ffi::gst_video_color_primaries_get_type()) }
2175 }
2176}
2177
2178impl glib::HasParamSpec for VideoColorPrimaries {
2179 type ParamSpec = glib::ParamSpecEnum;
2180 type SetValue = Self;
2181 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2182
2183 fn param_spec_builder() -> Self::BuilderFn {
2184 Self::ParamSpec::builder_with_default
2185 }
2186}
2187
2188impl glib::value::ValueType for VideoColorPrimaries {
2189 type Type = Self;
2190}
2191
2192unsafe impl<'a> glib::value::FromValue<'a> for VideoColorPrimaries {
2193 type Checker = glib::value::GenericValueTypeChecker<Self>;
2194
2195 #[inline]
2196 unsafe fn from_value(value: &'a glib::Value) -> Self {
2197 skip_assert_initialized!();
2198 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2199 }
2200}
2201
2202impl ToValue for VideoColorPrimaries {
2203 #[inline]
2204 fn to_value(&self) -> glib::Value {
2205 let mut value = glib::Value::for_value_type::<Self>();
2206 unsafe {
2207 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2208 }
2209 value
2210 }
2211
2212 #[inline]
2213 fn value_type(&self) -> glib::Type {
2214 Self::static_type()
2215 }
2216}
2217
2218impl From<VideoColorPrimaries> for glib::Value {
2219 #[inline]
2220 fn from(v: VideoColorPrimaries) -> Self {
2221 skip_assert_initialized!();
2222 ToValue::to_value(&v)
2223 }
2224}
2225
2226#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2228#[non_exhaustive]
2229#[doc(alias = "GstVideoDitherMethod")]
2230pub enum VideoDitherMethod {
2231 #[doc(alias = "GST_VIDEO_DITHER_NONE")]
2233 None,
2234 #[doc(alias = "GST_VIDEO_DITHER_VERTERR")]
2236 Verterr,
2237 #[doc(alias = "GST_VIDEO_DITHER_FLOYD_STEINBERG")]
2239 FloydSteinberg,
2240 #[doc(alias = "GST_VIDEO_DITHER_SIERRA_LITE")]
2242 SierraLite,
2243 #[doc(alias = "GST_VIDEO_DITHER_BAYER")]
2245 Bayer,
2246 #[doc(hidden)]
2247 __Unknown(i32),
2248}
2249
2250#[doc(hidden)]
2251impl IntoGlib for VideoDitherMethod {
2252 type GlibType = ffi::GstVideoDitherMethod;
2253
2254 #[inline]
2255 fn into_glib(self) -> ffi::GstVideoDitherMethod {
2256 match self {
2257 Self::None => ffi::GST_VIDEO_DITHER_NONE,
2258 Self::Verterr => ffi::GST_VIDEO_DITHER_VERTERR,
2259 Self::FloydSteinberg => ffi::GST_VIDEO_DITHER_FLOYD_STEINBERG,
2260 Self::SierraLite => ffi::GST_VIDEO_DITHER_SIERRA_LITE,
2261 Self::Bayer => ffi::GST_VIDEO_DITHER_BAYER,
2262 Self::__Unknown(value) => value,
2263 }
2264 }
2265}
2266
2267#[doc(hidden)]
2268impl FromGlib<ffi::GstVideoDitherMethod> for VideoDitherMethod {
2269 #[inline]
2270 unsafe fn from_glib(value: ffi::GstVideoDitherMethod) -> Self {
2271 skip_assert_initialized!();
2272
2273 match value {
2274 ffi::GST_VIDEO_DITHER_NONE => Self::None,
2275 ffi::GST_VIDEO_DITHER_VERTERR => Self::Verterr,
2276 ffi::GST_VIDEO_DITHER_FLOYD_STEINBERG => Self::FloydSteinberg,
2277 ffi::GST_VIDEO_DITHER_SIERRA_LITE => Self::SierraLite,
2278 ffi::GST_VIDEO_DITHER_BAYER => Self::Bayer,
2279 value => Self::__Unknown(value),
2280 }
2281 }
2282}
2283
2284impl StaticType for VideoDitherMethod {
2285 #[inline]
2286 #[doc(alias = "gst_video_dither_method_get_type")]
2287 fn static_type() -> glib::Type {
2288 unsafe { from_glib(ffi::gst_video_dither_method_get_type()) }
2289 }
2290}
2291
2292impl glib::HasParamSpec for VideoDitherMethod {
2293 type ParamSpec = glib::ParamSpecEnum;
2294 type SetValue = Self;
2295 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2296
2297 fn param_spec_builder() -> Self::BuilderFn {
2298 Self::ParamSpec::builder_with_default
2299 }
2300}
2301
2302impl glib::value::ValueType for VideoDitherMethod {
2303 type Type = Self;
2304}
2305
2306unsafe impl<'a> glib::value::FromValue<'a> for VideoDitherMethod {
2307 type Checker = glib::value::GenericValueTypeChecker<Self>;
2308
2309 #[inline]
2310 unsafe fn from_value(value: &'a glib::Value) -> Self {
2311 skip_assert_initialized!();
2312 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2313 }
2314}
2315
2316impl ToValue for VideoDitherMethod {
2317 #[inline]
2318 fn to_value(&self) -> glib::Value {
2319 let mut value = glib::Value::for_value_type::<Self>();
2320 unsafe {
2321 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2322 }
2323 value
2324 }
2325
2326 #[inline]
2327 fn value_type(&self) -> glib::Type {
2328 Self::static_type()
2329 }
2330}
2331
2332impl From<VideoDitherMethod> for glib::Value {
2333 #[inline]
2334 fn from(v: VideoDitherMethod) -> Self {
2335 skip_assert_initialized!();
2336 ToValue::to_value(&v)
2337 }
2338}
2339
2340#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2345#[non_exhaustive]
2346#[doc(alias = "GstVideoFieldOrder")]
2347pub enum VideoFieldOrder {
2348 #[doc(alias = "GST_VIDEO_FIELD_ORDER_UNKNOWN")]
2351 Unknown,
2352 #[doc(alias = "GST_VIDEO_FIELD_ORDER_TOP_FIELD_FIRST")]
2354 TopFieldFirst,
2355 #[doc(alias = "GST_VIDEO_FIELD_ORDER_BOTTOM_FIELD_FIRST")]
2357 BottomFieldFirst,
2358 #[doc(hidden)]
2359 __Unknown(i32),
2360}
2361
2362impl VideoFieldOrder {
2363 #[doc(alias = "gst_video_field_order_from_string")]
2364 pub fn from_string(order: &str) -> VideoFieldOrder {
2365 assert_initialized_main_thread!();
2366 unsafe {
2367 from_glib(ffi::gst_video_field_order_from_string(
2368 order.to_glib_none().0,
2369 ))
2370 }
2371 }
2372}
2373
2374impl std::fmt::Display for VideoFieldOrder {
2375 #[inline]
2376 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2377 f.write_str(&self.to_str())
2378 }
2379}
2380
2381#[doc(hidden)]
2382impl IntoGlib for VideoFieldOrder {
2383 type GlibType = ffi::GstVideoFieldOrder;
2384
2385 #[inline]
2386 fn into_glib(self) -> ffi::GstVideoFieldOrder {
2387 match self {
2388 Self::Unknown => ffi::GST_VIDEO_FIELD_ORDER_UNKNOWN,
2389 Self::TopFieldFirst => ffi::GST_VIDEO_FIELD_ORDER_TOP_FIELD_FIRST,
2390 Self::BottomFieldFirst => ffi::GST_VIDEO_FIELD_ORDER_BOTTOM_FIELD_FIRST,
2391 Self::__Unknown(value) => value,
2392 }
2393 }
2394}
2395
2396#[doc(hidden)]
2397impl FromGlib<ffi::GstVideoFieldOrder> for VideoFieldOrder {
2398 #[inline]
2399 unsafe fn from_glib(value: ffi::GstVideoFieldOrder) -> Self {
2400 skip_assert_initialized!();
2401
2402 match value {
2403 ffi::GST_VIDEO_FIELD_ORDER_UNKNOWN => Self::Unknown,
2404 ffi::GST_VIDEO_FIELD_ORDER_TOP_FIELD_FIRST => Self::TopFieldFirst,
2405 ffi::GST_VIDEO_FIELD_ORDER_BOTTOM_FIELD_FIRST => Self::BottomFieldFirst,
2406 value => Self::__Unknown(value),
2407 }
2408 }
2409}
2410
2411impl StaticType for VideoFieldOrder {
2412 #[inline]
2413 #[doc(alias = "gst_video_field_order_get_type")]
2414 fn static_type() -> glib::Type {
2415 unsafe { from_glib(ffi::gst_video_field_order_get_type()) }
2416 }
2417}
2418
2419impl glib::HasParamSpec for VideoFieldOrder {
2420 type ParamSpec = glib::ParamSpecEnum;
2421 type SetValue = Self;
2422 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2423
2424 fn param_spec_builder() -> Self::BuilderFn {
2425 Self::ParamSpec::builder_with_default
2426 }
2427}
2428
2429impl glib::value::ValueType for VideoFieldOrder {
2430 type Type = Self;
2431}
2432
2433unsafe impl<'a> glib::value::FromValue<'a> for VideoFieldOrder {
2434 type Checker = glib::value::GenericValueTypeChecker<Self>;
2435
2436 #[inline]
2437 unsafe fn from_value(value: &'a glib::Value) -> Self {
2438 skip_assert_initialized!();
2439 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2440 }
2441}
2442
2443impl ToValue for VideoFieldOrder {
2444 #[inline]
2445 fn to_value(&self) -> glib::Value {
2446 let mut value = glib::Value::for_value_type::<Self>();
2447 unsafe {
2448 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2449 }
2450 value
2451 }
2452
2453 #[inline]
2454 fn value_type(&self) -> glib::Type {
2455 Self::static_type()
2456 }
2457}
2458
2459impl From<VideoFieldOrder> for glib::Value {
2460 #[inline]
2461 fn from(v: VideoFieldOrder) -> Self {
2462 skip_assert_initialized!();
2463 ToValue::to_value(&v)
2464 }
2465}
2466
2467#[derive(Debug, Eq, PartialEq, Hash, Clone, Copy)]
2472#[non_exhaustive]
2473#[doc(alias = "GstVideoFormat")]
2474pub enum VideoFormat {
2475 #[doc(alias = "GST_VIDEO_FORMAT_UNKNOWN")]
2477 Unknown,
2478 #[doc(alias = "GST_VIDEO_FORMAT_ENCODED")]
2483 Encoded,
2484 #[doc(alias = "GST_VIDEO_FORMAT_I420")]
2486 I420,
2487 #[doc(alias = "GST_VIDEO_FORMAT_YV12")]
2489 Yv12,
2490 #[doc(alias = "GST_VIDEO_FORMAT_YUY2")]
2492 Yuy2,
2493 #[doc(alias = "GST_VIDEO_FORMAT_UYVY")]
2495 Uyvy,
2496 #[doc(alias = "GST_VIDEO_FORMAT_AYUV")]
2498 Ayuv,
2499 #[doc(alias = "GST_VIDEO_FORMAT_RGBx")]
2501 Rgbx,
2502 #[doc(alias = "GST_VIDEO_FORMAT_BGRx")]
2504 Bgrx,
2505 #[doc(alias = "GST_VIDEO_FORMAT_xRGB")]
2507 Xrgb,
2508 #[doc(alias = "GST_VIDEO_FORMAT_xBGR")]
2510 Xbgr,
2511 #[doc(alias = "GST_VIDEO_FORMAT_RGBA")]
2513 Rgba,
2514 #[doc(alias = "GST_VIDEO_FORMAT_BGRA")]
2516 Bgra,
2517 #[doc(alias = "GST_VIDEO_FORMAT_ARGB")]
2519 Argb,
2520 #[doc(alias = "GST_VIDEO_FORMAT_ABGR")]
2522 Abgr,
2523 #[doc(alias = "GST_VIDEO_FORMAT_RGB")]
2525 Rgb,
2526 #[doc(alias = "GST_VIDEO_FORMAT_BGR")]
2528 Bgr,
2529 #[doc(alias = "GST_VIDEO_FORMAT_Y41B")]
2531 Y41b,
2532 #[doc(alias = "GST_VIDEO_FORMAT_Y42B")]
2534 Y42b,
2535 #[doc(alias = "GST_VIDEO_FORMAT_YVYU")]
2537 Yvyu,
2538 #[doc(alias = "GST_VIDEO_FORMAT_Y444")]
2540 Y444,
2541 #[doc(alias = "GST_VIDEO_FORMAT_v210")]
2543 V210,
2544 #[doc(alias = "GST_VIDEO_FORMAT_v216")]
2546 V216,
2547 #[doc(alias = "GST_VIDEO_FORMAT_NV12")]
2549 Nv12,
2550 #[doc(alias = "GST_VIDEO_FORMAT_NV21")]
2552 Nv21,
2553 #[doc(alias = "GST_VIDEO_FORMAT_GRAY8")]
2555 Gray8,
2556 #[doc(alias = "GST_VIDEO_FORMAT_GRAY16_BE")]
2558 Gray16Be,
2559 #[doc(alias = "GST_VIDEO_FORMAT_GRAY16_LE")]
2561 Gray16Le,
2562 #[doc(alias = "GST_VIDEO_FORMAT_v308")]
2564 V308,
2565 #[doc(alias = "GST_VIDEO_FORMAT_RGB16")]
2567 Rgb16,
2568 #[doc(alias = "GST_VIDEO_FORMAT_BGR16")]
2570 Bgr16,
2571 #[doc(alias = "GST_VIDEO_FORMAT_RGB15")]
2573 Rgb15,
2574 #[doc(alias = "GST_VIDEO_FORMAT_BGR15")]
2576 Bgr15,
2577 #[doc(alias = "GST_VIDEO_FORMAT_UYVP")]
2579 Uyvp,
2580 #[doc(alias = "GST_VIDEO_FORMAT_A420")]
2582 A420,
2583 #[doc(alias = "GST_VIDEO_FORMAT_RGB8P")]
2585 Rgb8p,
2586 #[doc(alias = "GST_VIDEO_FORMAT_YUV9")]
2588 Yuv9,
2589 #[doc(alias = "GST_VIDEO_FORMAT_YVU9")]
2591 Yvu9,
2592 #[doc(alias = "GST_VIDEO_FORMAT_IYU1")]
2594 Iyu1,
2595 #[doc(alias = "GST_VIDEO_FORMAT_ARGB64")]
2597 Argb64,
2598 #[doc(alias = "GST_VIDEO_FORMAT_AYUV64")]
2600 Ayuv64,
2601 #[doc(alias = "GST_VIDEO_FORMAT_r210")]
2603 R210,
2604 #[doc(alias = "GST_VIDEO_FORMAT_I420_10BE")]
2606 I42010be,
2607 #[doc(alias = "GST_VIDEO_FORMAT_I420_10LE")]
2609 I42010le,
2610 #[doc(alias = "GST_VIDEO_FORMAT_I422_10BE")]
2612 I42210be,
2613 #[doc(alias = "GST_VIDEO_FORMAT_I422_10LE")]
2615 I42210le,
2616 #[doc(alias = "GST_VIDEO_FORMAT_Y444_10BE")]
2618 Y44410be,
2619 #[doc(alias = "GST_VIDEO_FORMAT_Y444_10LE")]
2621 Y44410le,
2622 #[doc(alias = "GST_VIDEO_FORMAT_GBR")]
2624 Gbr,
2625 #[doc(alias = "GST_VIDEO_FORMAT_GBR_10BE")]
2627 Gbr10be,
2628 #[doc(alias = "GST_VIDEO_FORMAT_GBR_10LE")]
2630 Gbr10le,
2631 #[doc(alias = "GST_VIDEO_FORMAT_NV16")]
2633 Nv16,
2634 #[doc(alias = "GST_VIDEO_FORMAT_NV24")]
2636 Nv24,
2637 #[doc(alias = "GST_VIDEO_FORMAT_NV12_64Z32")]
2639 Nv1264z32,
2640 #[doc(alias = "GST_VIDEO_FORMAT_A420_10BE")]
2642 A42010be,
2643 #[doc(alias = "GST_VIDEO_FORMAT_A420_10LE")]
2645 A42010le,
2646 #[doc(alias = "GST_VIDEO_FORMAT_A422_10BE")]
2648 A42210be,
2649 #[doc(alias = "GST_VIDEO_FORMAT_A422_10LE")]
2651 A42210le,
2652 #[doc(alias = "GST_VIDEO_FORMAT_A444_10BE")]
2654 A44410be,
2655 #[doc(alias = "GST_VIDEO_FORMAT_A444_10LE")]
2657 A44410le,
2658 #[doc(alias = "GST_VIDEO_FORMAT_NV61")]
2660 Nv61,
2661 #[doc(alias = "GST_VIDEO_FORMAT_P010_10BE")]
2663 P01010be,
2664 #[doc(alias = "GST_VIDEO_FORMAT_P010_10LE")]
2666 P01010le,
2667 #[doc(alias = "GST_VIDEO_FORMAT_IYU2")]
2669 Iyu2,
2670 #[doc(alias = "GST_VIDEO_FORMAT_VYUY")]
2672 Vyuy,
2673 #[doc(alias = "GST_VIDEO_FORMAT_GBRA")]
2675 Gbra,
2676 #[doc(alias = "GST_VIDEO_FORMAT_GBRA_10BE")]
2678 Gbra10be,
2679 #[doc(alias = "GST_VIDEO_FORMAT_GBRA_10LE")]
2681 Gbra10le,
2682 #[doc(alias = "GST_VIDEO_FORMAT_GBR_12BE")]
2684 Gbr12be,
2685 #[doc(alias = "GST_VIDEO_FORMAT_GBR_12LE")]
2687 Gbr12le,
2688 #[doc(alias = "GST_VIDEO_FORMAT_GBRA_12BE")]
2690 Gbra12be,
2691 #[doc(alias = "GST_VIDEO_FORMAT_GBRA_12LE")]
2693 Gbra12le,
2694 #[doc(alias = "GST_VIDEO_FORMAT_I420_12BE")]
2696 I42012be,
2697 #[doc(alias = "GST_VIDEO_FORMAT_I420_12LE")]
2699 I42012le,
2700 #[doc(alias = "GST_VIDEO_FORMAT_I422_12BE")]
2702 I42212be,
2703 #[doc(alias = "GST_VIDEO_FORMAT_I422_12LE")]
2705 I42212le,
2706 #[doc(alias = "GST_VIDEO_FORMAT_Y444_12BE")]
2708 Y44412be,
2709 #[doc(alias = "GST_VIDEO_FORMAT_Y444_12LE")]
2711 Y44412le,
2712 #[doc(alias = "GST_VIDEO_FORMAT_GRAY10_LE32")]
2714 Gray10Le32,
2715 #[doc(alias = "GST_VIDEO_FORMAT_NV12_10LE32")]
2717 Nv1210le32,
2718 #[doc(alias = "GST_VIDEO_FORMAT_NV16_10LE32")]
2720 Nv1610le32,
2721 #[cfg(feature = "v1_16")]
2723 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2724 #[doc(alias = "GST_VIDEO_FORMAT_NV12_10LE40")]
2725 Nv1210le40,
2726 #[cfg(feature = "v1_16")]
2728 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2729 #[doc(alias = "GST_VIDEO_FORMAT_Y210")]
2730 Y210,
2731 #[cfg(feature = "v1_16")]
2733 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2734 #[doc(alias = "GST_VIDEO_FORMAT_Y410")]
2735 Y410,
2736 #[cfg(feature = "v1_16")]
2738 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2739 #[doc(alias = "GST_VIDEO_FORMAT_VUYA")]
2740 Vuya,
2741 #[cfg(feature = "v1_16")]
2743 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2744 #[doc(alias = "GST_VIDEO_FORMAT_BGR10A2_LE")]
2745 Bgr10a2Le,
2746 #[cfg(feature = "v1_18")]
2748 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2749 #[doc(alias = "GST_VIDEO_FORMAT_RGB10A2_LE")]
2750 Rgb10a2Le,
2751 #[cfg(feature = "v1_18")]
2753 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2754 #[doc(alias = "GST_VIDEO_FORMAT_Y444_16BE")]
2755 Y44416be,
2756 #[cfg(feature = "v1_18")]
2758 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2759 #[doc(alias = "GST_VIDEO_FORMAT_Y444_16LE")]
2760 Y44416le,
2761 #[cfg(feature = "v1_18")]
2763 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2764 #[doc(alias = "GST_VIDEO_FORMAT_P016_BE")]
2765 P016Be,
2766 #[cfg(feature = "v1_18")]
2768 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2769 #[doc(alias = "GST_VIDEO_FORMAT_P016_LE")]
2770 P016Le,
2771 #[cfg(feature = "v1_18")]
2773 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2774 #[doc(alias = "GST_VIDEO_FORMAT_P012_BE")]
2775 P012Be,
2776 #[cfg(feature = "v1_18")]
2778 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2779 #[doc(alias = "GST_VIDEO_FORMAT_P012_LE")]
2780 P012Le,
2781 #[cfg(feature = "v1_18")]
2783 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2784 #[doc(alias = "GST_VIDEO_FORMAT_Y212_BE")]
2785 Y212Be,
2786 #[cfg(feature = "v1_18")]
2788 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2789 #[doc(alias = "GST_VIDEO_FORMAT_Y212_LE")]
2790 Y212Le,
2791 #[cfg(feature = "v1_18")]
2793 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2794 #[doc(alias = "GST_VIDEO_FORMAT_Y412_BE")]
2795 Y412Be,
2796 #[cfg(feature = "v1_18")]
2798 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2799 #[doc(alias = "GST_VIDEO_FORMAT_Y412_LE")]
2800 Y412Le,
2801 #[cfg(feature = "v1_18")]
2803 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2804 #[doc(alias = "GST_VIDEO_FORMAT_NV12_4L4")]
2805 Nv124l4,
2806 #[cfg(feature = "v1_18")]
2808 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2809 #[doc(alias = "GST_VIDEO_FORMAT_NV12_32L32")]
2810 Nv1232l32,
2811 #[cfg(feature = "v1_20")]
2813 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2814 #[doc(alias = "GST_VIDEO_FORMAT_RGBP")]
2815 Rgbp,
2816 #[cfg(feature = "v1_20")]
2818 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2819 #[doc(alias = "GST_VIDEO_FORMAT_BGRP")]
2820 Bgrp,
2821 #[cfg(feature = "v1_20")]
2824 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2825 #[doc(alias = "GST_VIDEO_FORMAT_AV12")]
2826 Av12,
2827 #[cfg(feature = "v1_20")]
2830 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2831 #[doc(alias = "GST_VIDEO_FORMAT_ARGB64_LE")]
2832 Argb64Le,
2833 #[cfg(feature = "v1_20")]
2836 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2837 #[doc(alias = "GST_VIDEO_FORMAT_ARGB64_BE")]
2838 Argb64Be,
2839 #[cfg(feature = "v1_20")]
2842 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2843 #[doc(alias = "GST_VIDEO_FORMAT_RGBA64_LE")]
2844 Rgba64Le,
2845 #[cfg(feature = "v1_20")]
2848 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2849 #[doc(alias = "GST_VIDEO_FORMAT_RGBA64_BE")]
2850 Rgba64Be,
2851 #[cfg(feature = "v1_20")]
2854 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2855 #[doc(alias = "GST_VIDEO_FORMAT_BGRA64_LE")]
2856 Bgra64Le,
2857 #[cfg(feature = "v1_20")]
2860 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2861 #[doc(alias = "GST_VIDEO_FORMAT_BGRA64_BE")]
2862 Bgra64Be,
2863 #[cfg(feature = "v1_20")]
2866 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2867 #[doc(alias = "GST_VIDEO_FORMAT_ABGR64_LE")]
2868 Abgr64Le,
2869 #[cfg(feature = "v1_20")]
2872 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2873 #[doc(alias = "GST_VIDEO_FORMAT_ABGR64_BE")]
2874 Abgr64Be,
2875 #[cfg(feature = "v1_22")]
2877 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
2878 #[doc(alias = "GST_VIDEO_FORMAT_NV12_16L32S")]
2879 Nv1216l32s,
2880 #[cfg(feature = "v1_22")]
2882 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
2883 #[doc(alias = "GST_VIDEO_FORMAT_NV12_8L128")]
2884 Nv128l128,
2885 #[cfg(feature = "v1_22")]
2887 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
2888 #[doc(alias = "GST_VIDEO_FORMAT_NV12_10BE_8L128")]
2889 Nv1210be8l128,
2890 #[cfg(feature = "v1_24")]
2893 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2894 #[doc(alias = "GST_VIDEO_FORMAT_NV12_10LE40_4L4")]
2895 Nv1210le404l4,
2896 #[cfg(feature = "v1_24")]
2901 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2902 #[doc(alias = "GST_VIDEO_FORMAT_DMA_DRM")]
2903 DmaDrm,
2904 #[cfg(feature = "v1_24")]
2907 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2908 #[doc(alias = "GST_VIDEO_FORMAT_MT2110T")]
2909 Mt2110t,
2910 #[cfg(feature = "v1_24")]
2913 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2914 #[doc(alias = "GST_VIDEO_FORMAT_MT2110R")]
2915 Mt2110r,
2916 #[cfg(feature = "v1_24")]
2918 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2919 #[doc(alias = "GST_VIDEO_FORMAT_A422")]
2920 A422,
2921 #[cfg(feature = "v1_24")]
2923 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2924 #[doc(alias = "GST_VIDEO_FORMAT_A444")]
2925 A444,
2926 #[cfg(feature = "v1_24")]
2928 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2929 #[doc(alias = "GST_VIDEO_FORMAT_A444_12LE")]
2930 A44412le,
2931 #[cfg(feature = "v1_24")]
2933 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2934 #[doc(alias = "GST_VIDEO_FORMAT_A444_12BE")]
2935 A44412be,
2936 #[cfg(feature = "v1_24")]
2938 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2939 #[doc(alias = "GST_VIDEO_FORMAT_A422_12LE")]
2940 A42212le,
2941 #[cfg(feature = "v1_24")]
2943 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2944 #[doc(alias = "GST_VIDEO_FORMAT_A422_12BE")]
2945 A42212be,
2946 #[cfg(feature = "v1_24")]
2948 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2949 #[doc(alias = "GST_VIDEO_FORMAT_A420_12LE")]
2950 A42012le,
2951 #[cfg(feature = "v1_24")]
2953 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2954 #[doc(alias = "GST_VIDEO_FORMAT_A420_12BE")]
2955 A42012be,
2956 #[cfg(feature = "v1_24")]
2958 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2959 #[doc(alias = "GST_VIDEO_FORMAT_A444_16LE")]
2960 A44416le,
2961 #[cfg(feature = "v1_24")]
2963 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2964 #[doc(alias = "GST_VIDEO_FORMAT_A444_16BE")]
2965 A44416be,
2966 #[cfg(feature = "v1_24")]
2968 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2969 #[doc(alias = "GST_VIDEO_FORMAT_A422_16LE")]
2970 A42216le,
2971 #[cfg(feature = "v1_24")]
2973 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2974 #[doc(alias = "GST_VIDEO_FORMAT_A422_16BE")]
2975 A42216be,
2976 #[cfg(feature = "v1_24")]
2978 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2979 #[doc(alias = "GST_VIDEO_FORMAT_A420_16LE")]
2980 A42016le,
2981 #[cfg(feature = "v1_24")]
2983 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2984 #[doc(alias = "GST_VIDEO_FORMAT_A420_16BE")]
2985 A42016be,
2986 #[cfg(feature = "v1_24")]
2988 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2989 #[doc(alias = "GST_VIDEO_FORMAT_GBR_16LE")]
2990 Gbr16le,
2991 #[cfg(feature = "v1_24")]
2993 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2994 #[doc(alias = "GST_VIDEO_FORMAT_GBR_16BE")]
2995 Gbr16be,
2996 #[cfg(feature = "v1_24")]
2998 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2999 #[doc(alias = "GST_VIDEO_FORMAT_RBGA")]
3000 Rbga,
3001 #[cfg(feature = "v1_26")]
3003 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
3004 #[doc(alias = "GST_VIDEO_FORMAT_Y216_LE")]
3005 Y216Le,
3006 #[cfg(feature = "v1_26")]
3008 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
3009 #[doc(alias = "GST_VIDEO_FORMAT_Y216_BE")]
3010 Y216Be,
3011 #[cfg(feature = "v1_26")]
3013 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
3014 #[doc(alias = "GST_VIDEO_FORMAT_Y416_LE")]
3015 Y416Le,
3016 #[cfg(feature = "v1_26")]
3018 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
3019 #[doc(alias = "GST_VIDEO_FORMAT_Y416_BE")]
3020 Y416Be,
3021 #[cfg(feature = "v1_26")]
3023 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
3024 #[doc(alias = "GST_VIDEO_FORMAT_GRAY10_LE16")]
3025 Gray10Le16,
3026 #[cfg(feature = "v1_28")]
3028 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
3029 #[doc(alias = "GST_VIDEO_FORMAT_NV16_10LE40")]
3030 Nv1610le40,
3031 #[cfg(feature = "v1_28")]
3033 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
3034 #[doc(alias = "GST_VIDEO_FORMAT_BGR10x2_LE")]
3035 Bgr10x2Le,
3036 #[cfg(feature = "v1_28")]
3038 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
3039 #[doc(alias = "GST_VIDEO_FORMAT_RGB10x2_LE")]
3040 Rgb10x2Le,
3041 #[doc(hidden)]
3042 __Unknown(i32),
3043}
3044
3045impl VideoFormat {
3046 #[doc(alias = "gst_video_format_from_fourcc")]
3047 pub fn from_fourcc(fourcc: u32) -> VideoFormat {
3048 assert_initialized_main_thread!();
3049 unsafe { from_glib(ffi::gst_video_format_from_fourcc(fourcc)) }
3050 }
3051
3052 #[doc(alias = "gst_video_format_from_string")]
3053 pub fn from_string(format: &str) -> VideoFormat {
3054 assert_initialized_main_thread!();
3055 unsafe { from_glib(ffi::gst_video_format_from_string(format.to_glib_none().0)) }
3056 }
3057
3058 #[doc(alias = "gst_video_format_to_fourcc")]
3065 pub fn to_fourcc(self) -> u32 {
3066 assert_initialized_main_thread!();
3067 unsafe { ffi::gst_video_format_to_fourcc(self.into_glib()) }
3068 }
3069}
3070
3071impl std::fmt::Display for VideoFormat {
3072 #[inline]
3073 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3074 f.write_str(&self.to_str())
3075 }
3076}
3077
3078#[doc(hidden)]
3079impl IntoGlib for VideoFormat {
3080 type GlibType = ffi::GstVideoFormat;
3081
3082 fn into_glib(self) -> ffi::GstVideoFormat {
3083 match self {
3084 Self::Unknown => ffi::GST_VIDEO_FORMAT_UNKNOWN,
3085 Self::Encoded => ffi::GST_VIDEO_FORMAT_ENCODED,
3086 Self::I420 => ffi::GST_VIDEO_FORMAT_I420,
3087 Self::Yv12 => ffi::GST_VIDEO_FORMAT_YV12,
3088 Self::Yuy2 => ffi::GST_VIDEO_FORMAT_YUY2,
3089 Self::Uyvy => ffi::GST_VIDEO_FORMAT_UYVY,
3090 Self::Ayuv => ffi::GST_VIDEO_FORMAT_AYUV,
3091 Self::Rgbx => ffi::GST_VIDEO_FORMAT_RGBx,
3092 Self::Bgrx => ffi::GST_VIDEO_FORMAT_BGRx,
3093 Self::Xrgb => ffi::GST_VIDEO_FORMAT_xRGB,
3094 Self::Xbgr => ffi::GST_VIDEO_FORMAT_xBGR,
3095 Self::Rgba => ffi::GST_VIDEO_FORMAT_RGBA,
3096 Self::Bgra => ffi::GST_VIDEO_FORMAT_BGRA,
3097 Self::Argb => ffi::GST_VIDEO_FORMAT_ARGB,
3098 Self::Abgr => ffi::GST_VIDEO_FORMAT_ABGR,
3099 Self::Rgb => ffi::GST_VIDEO_FORMAT_RGB,
3100 Self::Bgr => ffi::GST_VIDEO_FORMAT_BGR,
3101 Self::Y41b => ffi::GST_VIDEO_FORMAT_Y41B,
3102 Self::Y42b => ffi::GST_VIDEO_FORMAT_Y42B,
3103 Self::Yvyu => ffi::GST_VIDEO_FORMAT_YVYU,
3104 Self::Y444 => ffi::GST_VIDEO_FORMAT_Y444,
3105 Self::V210 => ffi::GST_VIDEO_FORMAT_v210,
3106 Self::V216 => ffi::GST_VIDEO_FORMAT_v216,
3107 Self::Nv12 => ffi::GST_VIDEO_FORMAT_NV12,
3108 Self::Nv21 => ffi::GST_VIDEO_FORMAT_NV21,
3109 Self::Gray8 => ffi::GST_VIDEO_FORMAT_GRAY8,
3110 Self::Gray16Be => ffi::GST_VIDEO_FORMAT_GRAY16_BE,
3111 Self::Gray16Le => ffi::GST_VIDEO_FORMAT_GRAY16_LE,
3112 Self::V308 => ffi::GST_VIDEO_FORMAT_v308,
3113 Self::Rgb16 => ffi::GST_VIDEO_FORMAT_RGB16,
3114 Self::Bgr16 => ffi::GST_VIDEO_FORMAT_BGR16,
3115 Self::Rgb15 => ffi::GST_VIDEO_FORMAT_RGB15,
3116 Self::Bgr15 => ffi::GST_VIDEO_FORMAT_BGR15,
3117 Self::Uyvp => ffi::GST_VIDEO_FORMAT_UYVP,
3118 Self::A420 => ffi::GST_VIDEO_FORMAT_A420,
3119 Self::Rgb8p => ffi::GST_VIDEO_FORMAT_RGB8P,
3120 Self::Yuv9 => ffi::GST_VIDEO_FORMAT_YUV9,
3121 Self::Yvu9 => ffi::GST_VIDEO_FORMAT_YVU9,
3122 Self::Iyu1 => ffi::GST_VIDEO_FORMAT_IYU1,
3123 Self::Argb64 => ffi::GST_VIDEO_FORMAT_ARGB64,
3124 Self::Ayuv64 => ffi::GST_VIDEO_FORMAT_AYUV64,
3125 Self::R210 => ffi::GST_VIDEO_FORMAT_r210,
3126 Self::I42010be => ffi::GST_VIDEO_FORMAT_I420_10BE,
3127 Self::I42010le => ffi::GST_VIDEO_FORMAT_I420_10LE,
3128 Self::I42210be => ffi::GST_VIDEO_FORMAT_I422_10BE,
3129 Self::I42210le => ffi::GST_VIDEO_FORMAT_I422_10LE,
3130 Self::Y44410be => ffi::GST_VIDEO_FORMAT_Y444_10BE,
3131 Self::Y44410le => ffi::GST_VIDEO_FORMAT_Y444_10LE,
3132 Self::Gbr => ffi::GST_VIDEO_FORMAT_GBR,
3133 Self::Gbr10be => ffi::GST_VIDEO_FORMAT_GBR_10BE,
3134 Self::Gbr10le => ffi::GST_VIDEO_FORMAT_GBR_10LE,
3135 Self::Nv16 => ffi::GST_VIDEO_FORMAT_NV16,
3136 Self::Nv24 => ffi::GST_VIDEO_FORMAT_NV24,
3137 Self::Nv1264z32 => ffi::GST_VIDEO_FORMAT_NV12_64Z32,
3138 Self::A42010be => ffi::GST_VIDEO_FORMAT_A420_10BE,
3139 Self::A42010le => ffi::GST_VIDEO_FORMAT_A420_10LE,
3140 Self::A42210be => ffi::GST_VIDEO_FORMAT_A422_10BE,
3141 Self::A42210le => ffi::GST_VIDEO_FORMAT_A422_10LE,
3142 Self::A44410be => ffi::GST_VIDEO_FORMAT_A444_10BE,
3143 Self::A44410le => ffi::GST_VIDEO_FORMAT_A444_10LE,
3144 Self::Nv61 => ffi::GST_VIDEO_FORMAT_NV61,
3145 Self::P01010be => ffi::GST_VIDEO_FORMAT_P010_10BE,
3146 Self::P01010le => ffi::GST_VIDEO_FORMAT_P010_10LE,
3147 Self::Iyu2 => ffi::GST_VIDEO_FORMAT_IYU2,
3148 Self::Vyuy => ffi::GST_VIDEO_FORMAT_VYUY,
3149 Self::Gbra => ffi::GST_VIDEO_FORMAT_GBRA,
3150 Self::Gbra10be => ffi::GST_VIDEO_FORMAT_GBRA_10BE,
3151 Self::Gbra10le => ffi::GST_VIDEO_FORMAT_GBRA_10LE,
3152 Self::Gbr12be => ffi::GST_VIDEO_FORMAT_GBR_12BE,
3153 Self::Gbr12le => ffi::GST_VIDEO_FORMAT_GBR_12LE,
3154 Self::Gbra12be => ffi::GST_VIDEO_FORMAT_GBRA_12BE,
3155 Self::Gbra12le => ffi::GST_VIDEO_FORMAT_GBRA_12LE,
3156 Self::I42012be => ffi::GST_VIDEO_FORMAT_I420_12BE,
3157 Self::I42012le => ffi::GST_VIDEO_FORMAT_I420_12LE,
3158 Self::I42212be => ffi::GST_VIDEO_FORMAT_I422_12BE,
3159 Self::I42212le => ffi::GST_VIDEO_FORMAT_I422_12LE,
3160 Self::Y44412be => ffi::GST_VIDEO_FORMAT_Y444_12BE,
3161 Self::Y44412le => ffi::GST_VIDEO_FORMAT_Y444_12LE,
3162 Self::Gray10Le32 => ffi::GST_VIDEO_FORMAT_GRAY10_LE32,
3163 Self::Nv1210le32 => ffi::GST_VIDEO_FORMAT_NV12_10LE32,
3164 Self::Nv1610le32 => ffi::GST_VIDEO_FORMAT_NV16_10LE32,
3165 #[cfg(feature = "v1_16")]
3166 Self::Nv1210le40 => ffi::GST_VIDEO_FORMAT_NV12_10LE40,
3167 #[cfg(feature = "v1_16")]
3168 Self::Y210 => ffi::GST_VIDEO_FORMAT_Y210,
3169 #[cfg(feature = "v1_16")]
3170 Self::Y410 => ffi::GST_VIDEO_FORMAT_Y410,
3171 #[cfg(feature = "v1_16")]
3172 Self::Vuya => ffi::GST_VIDEO_FORMAT_VUYA,
3173 #[cfg(feature = "v1_16")]
3174 Self::Bgr10a2Le => ffi::GST_VIDEO_FORMAT_BGR10A2_LE,
3175 #[cfg(feature = "v1_18")]
3176 Self::Rgb10a2Le => ffi::GST_VIDEO_FORMAT_RGB10A2_LE,
3177 #[cfg(feature = "v1_18")]
3178 Self::Y44416be => ffi::GST_VIDEO_FORMAT_Y444_16BE,
3179 #[cfg(feature = "v1_18")]
3180 Self::Y44416le => ffi::GST_VIDEO_FORMAT_Y444_16LE,
3181 #[cfg(feature = "v1_18")]
3182 Self::P016Be => ffi::GST_VIDEO_FORMAT_P016_BE,
3183 #[cfg(feature = "v1_18")]
3184 Self::P016Le => ffi::GST_VIDEO_FORMAT_P016_LE,
3185 #[cfg(feature = "v1_18")]
3186 Self::P012Be => ffi::GST_VIDEO_FORMAT_P012_BE,
3187 #[cfg(feature = "v1_18")]
3188 Self::P012Le => ffi::GST_VIDEO_FORMAT_P012_LE,
3189 #[cfg(feature = "v1_18")]
3190 Self::Y212Be => ffi::GST_VIDEO_FORMAT_Y212_BE,
3191 #[cfg(feature = "v1_18")]
3192 Self::Y212Le => ffi::GST_VIDEO_FORMAT_Y212_LE,
3193 #[cfg(feature = "v1_18")]
3194 Self::Y412Be => ffi::GST_VIDEO_FORMAT_Y412_BE,
3195 #[cfg(feature = "v1_18")]
3196 Self::Y412Le => ffi::GST_VIDEO_FORMAT_Y412_LE,
3197 #[cfg(feature = "v1_18")]
3198 Self::Nv124l4 => ffi::GST_VIDEO_FORMAT_NV12_4L4,
3199 #[cfg(feature = "v1_18")]
3200 Self::Nv1232l32 => ffi::GST_VIDEO_FORMAT_NV12_32L32,
3201 #[cfg(feature = "v1_20")]
3202 Self::Rgbp => ffi::GST_VIDEO_FORMAT_RGBP,
3203 #[cfg(feature = "v1_20")]
3204 Self::Bgrp => ffi::GST_VIDEO_FORMAT_BGRP,
3205 #[cfg(feature = "v1_20")]
3206 Self::Av12 => ffi::GST_VIDEO_FORMAT_AV12,
3207 #[cfg(feature = "v1_20")]
3208 Self::Argb64Le => ffi::GST_VIDEO_FORMAT_ARGB64_LE,
3209 #[cfg(feature = "v1_20")]
3210 Self::Argb64Be => ffi::GST_VIDEO_FORMAT_ARGB64_BE,
3211 #[cfg(feature = "v1_20")]
3212 Self::Rgba64Le => ffi::GST_VIDEO_FORMAT_RGBA64_LE,
3213 #[cfg(feature = "v1_20")]
3214 Self::Rgba64Be => ffi::GST_VIDEO_FORMAT_RGBA64_BE,
3215 #[cfg(feature = "v1_20")]
3216 Self::Bgra64Le => ffi::GST_VIDEO_FORMAT_BGRA64_LE,
3217 #[cfg(feature = "v1_20")]
3218 Self::Bgra64Be => ffi::GST_VIDEO_FORMAT_BGRA64_BE,
3219 #[cfg(feature = "v1_20")]
3220 Self::Abgr64Le => ffi::GST_VIDEO_FORMAT_ABGR64_LE,
3221 #[cfg(feature = "v1_20")]
3222 Self::Abgr64Be => ffi::GST_VIDEO_FORMAT_ABGR64_BE,
3223 #[cfg(feature = "v1_22")]
3224 Self::Nv1216l32s => ffi::GST_VIDEO_FORMAT_NV12_16L32S,
3225 #[cfg(feature = "v1_22")]
3226 Self::Nv128l128 => ffi::GST_VIDEO_FORMAT_NV12_8L128,
3227 #[cfg(feature = "v1_22")]
3228 Self::Nv1210be8l128 => ffi::GST_VIDEO_FORMAT_NV12_10BE_8L128,
3229 #[cfg(feature = "v1_24")]
3230 Self::Nv1210le404l4 => ffi::GST_VIDEO_FORMAT_NV12_10LE40_4L4,
3231 #[cfg(feature = "v1_24")]
3232 Self::DmaDrm => ffi::GST_VIDEO_FORMAT_DMA_DRM,
3233 #[cfg(feature = "v1_24")]
3234 Self::Mt2110t => ffi::GST_VIDEO_FORMAT_MT2110T,
3235 #[cfg(feature = "v1_24")]
3236 Self::Mt2110r => ffi::GST_VIDEO_FORMAT_MT2110R,
3237 #[cfg(feature = "v1_24")]
3238 Self::A422 => ffi::GST_VIDEO_FORMAT_A422,
3239 #[cfg(feature = "v1_24")]
3240 Self::A444 => ffi::GST_VIDEO_FORMAT_A444,
3241 #[cfg(feature = "v1_24")]
3242 Self::A44412le => ffi::GST_VIDEO_FORMAT_A444_12LE,
3243 #[cfg(feature = "v1_24")]
3244 Self::A44412be => ffi::GST_VIDEO_FORMAT_A444_12BE,
3245 #[cfg(feature = "v1_24")]
3246 Self::A42212le => ffi::GST_VIDEO_FORMAT_A422_12LE,
3247 #[cfg(feature = "v1_24")]
3248 Self::A42212be => ffi::GST_VIDEO_FORMAT_A422_12BE,
3249 #[cfg(feature = "v1_24")]
3250 Self::A42012le => ffi::GST_VIDEO_FORMAT_A420_12LE,
3251 #[cfg(feature = "v1_24")]
3252 Self::A42012be => ffi::GST_VIDEO_FORMAT_A420_12BE,
3253 #[cfg(feature = "v1_24")]
3254 Self::A44416le => ffi::GST_VIDEO_FORMAT_A444_16LE,
3255 #[cfg(feature = "v1_24")]
3256 Self::A44416be => ffi::GST_VIDEO_FORMAT_A444_16BE,
3257 #[cfg(feature = "v1_24")]
3258 Self::A42216le => ffi::GST_VIDEO_FORMAT_A422_16LE,
3259 #[cfg(feature = "v1_24")]
3260 Self::A42216be => ffi::GST_VIDEO_FORMAT_A422_16BE,
3261 #[cfg(feature = "v1_24")]
3262 Self::A42016le => ffi::GST_VIDEO_FORMAT_A420_16LE,
3263 #[cfg(feature = "v1_24")]
3264 Self::A42016be => ffi::GST_VIDEO_FORMAT_A420_16BE,
3265 #[cfg(feature = "v1_24")]
3266 Self::Gbr16le => ffi::GST_VIDEO_FORMAT_GBR_16LE,
3267 #[cfg(feature = "v1_24")]
3268 Self::Gbr16be => ffi::GST_VIDEO_FORMAT_GBR_16BE,
3269 #[cfg(feature = "v1_24")]
3270 Self::Rbga => ffi::GST_VIDEO_FORMAT_RBGA,
3271 #[cfg(feature = "v1_26")]
3272 Self::Y216Le => ffi::GST_VIDEO_FORMAT_Y216_LE,
3273 #[cfg(feature = "v1_26")]
3274 Self::Y216Be => ffi::GST_VIDEO_FORMAT_Y216_BE,
3275 #[cfg(feature = "v1_26")]
3276 Self::Y416Le => ffi::GST_VIDEO_FORMAT_Y416_LE,
3277 #[cfg(feature = "v1_26")]
3278 Self::Y416Be => ffi::GST_VIDEO_FORMAT_Y416_BE,
3279 #[cfg(feature = "v1_26")]
3280 Self::Gray10Le16 => ffi::GST_VIDEO_FORMAT_GRAY10_LE16,
3281 #[cfg(feature = "v1_28")]
3282 Self::Nv1610le40 => ffi::GST_VIDEO_FORMAT_NV16_10LE40,
3283 #[cfg(feature = "v1_28")]
3284 Self::Bgr10x2Le => ffi::GST_VIDEO_FORMAT_BGR10x2_LE,
3285 #[cfg(feature = "v1_28")]
3286 Self::Rgb10x2Le => ffi::GST_VIDEO_FORMAT_RGB10x2_LE,
3287 Self::__Unknown(value) => value,
3288 }
3289 }
3290}
3291
3292#[doc(hidden)]
3293impl FromGlib<ffi::GstVideoFormat> for VideoFormat {
3294 unsafe fn from_glib(value: ffi::GstVideoFormat) -> Self {
3295 skip_assert_initialized!();
3296
3297 match value {
3298 ffi::GST_VIDEO_FORMAT_UNKNOWN => Self::Unknown,
3299 ffi::GST_VIDEO_FORMAT_ENCODED => Self::Encoded,
3300 ffi::GST_VIDEO_FORMAT_I420 => Self::I420,
3301 ffi::GST_VIDEO_FORMAT_YV12 => Self::Yv12,
3302 ffi::GST_VIDEO_FORMAT_YUY2 => Self::Yuy2,
3303 ffi::GST_VIDEO_FORMAT_UYVY => Self::Uyvy,
3304 ffi::GST_VIDEO_FORMAT_AYUV => Self::Ayuv,
3305 ffi::GST_VIDEO_FORMAT_RGBx => Self::Rgbx,
3306 ffi::GST_VIDEO_FORMAT_BGRx => Self::Bgrx,
3307 ffi::GST_VIDEO_FORMAT_xRGB => Self::Xrgb,
3308 ffi::GST_VIDEO_FORMAT_xBGR => Self::Xbgr,
3309 ffi::GST_VIDEO_FORMAT_RGBA => Self::Rgba,
3310 ffi::GST_VIDEO_FORMAT_BGRA => Self::Bgra,
3311 ffi::GST_VIDEO_FORMAT_ARGB => Self::Argb,
3312 ffi::GST_VIDEO_FORMAT_ABGR => Self::Abgr,
3313 ffi::GST_VIDEO_FORMAT_RGB => Self::Rgb,
3314 ffi::GST_VIDEO_FORMAT_BGR => Self::Bgr,
3315 ffi::GST_VIDEO_FORMAT_Y41B => Self::Y41b,
3316 ffi::GST_VIDEO_FORMAT_Y42B => Self::Y42b,
3317 ffi::GST_VIDEO_FORMAT_YVYU => Self::Yvyu,
3318 ffi::GST_VIDEO_FORMAT_Y444 => Self::Y444,
3319 ffi::GST_VIDEO_FORMAT_v210 => Self::V210,
3320 ffi::GST_VIDEO_FORMAT_v216 => Self::V216,
3321 ffi::GST_VIDEO_FORMAT_NV12 => Self::Nv12,
3322 ffi::GST_VIDEO_FORMAT_NV21 => Self::Nv21,
3323 ffi::GST_VIDEO_FORMAT_GRAY8 => Self::Gray8,
3324 ffi::GST_VIDEO_FORMAT_GRAY16_BE => Self::Gray16Be,
3325 ffi::GST_VIDEO_FORMAT_GRAY16_LE => Self::Gray16Le,
3326 ffi::GST_VIDEO_FORMAT_v308 => Self::V308,
3327 ffi::GST_VIDEO_FORMAT_RGB16 => Self::Rgb16,
3328 ffi::GST_VIDEO_FORMAT_BGR16 => Self::Bgr16,
3329 ffi::GST_VIDEO_FORMAT_RGB15 => Self::Rgb15,
3330 ffi::GST_VIDEO_FORMAT_BGR15 => Self::Bgr15,
3331 ffi::GST_VIDEO_FORMAT_UYVP => Self::Uyvp,
3332 ffi::GST_VIDEO_FORMAT_A420 => Self::A420,
3333 ffi::GST_VIDEO_FORMAT_RGB8P => Self::Rgb8p,
3334 ffi::GST_VIDEO_FORMAT_YUV9 => Self::Yuv9,
3335 ffi::GST_VIDEO_FORMAT_YVU9 => Self::Yvu9,
3336 ffi::GST_VIDEO_FORMAT_IYU1 => Self::Iyu1,
3337 ffi::GST_VIDEO_FORMAT_ARGB64 => Self::Argb64,
3338 ffi::GST_VIDEO_FORMAT_AYUV64 => Self::Ayuv64,
3339 ffi::GST_VIDEO_FORMAT_r210 => Self::R210,
3340 ffi::GST_VIDEO_FORMAT_I420_10BE => Self::I42010be,
3341 ffi::GST_VIDEO_FORMAT_I420_10LE => Self::I42010le,
3342 ffi::GST_VIDEO_FORMAT_I422_10BE => Self::I42210be,
3343 ffi::GST_VIDEO_FORMAT_I422_10LE => Self::I42210le,
3344 ffi::GST_VIDEO_FORMAT_Y444_10BE => Self::Y44410be,
3345 ffi::GST_VIDEO_FORMAT_Y444_10LE => Self::Y44410le,
3346 ffi::GST_VIDEO_FORMAT_GBR => Self::Gbr,
3347 ffi::GST_VIDEO_FORMAT_GBR_10BE => Self::Gbr10be,
3348 ffi::GST_VIDEO_FORMAT_GBR_10LE => Self::Gbr10le,
3349 ffi::GST_VIDEO_FORMAT_NV16 => Self::Nv16,
3350 ffi::GST_VIDEO_FORMAT_NV24 => Self::Nv24,
3351 ffi::GST_VIDEO_FORMAT_NV12_64Z32 => Self::Nv1264z32,
3352 ffi::GST_VIDEO_FORMAT_A420_10BE => Self::A42010be,
3353 ffi::GST_VIDEO_FORMAT_A420_10LE => Self::A42010le,
3354 ffi::GST_VIDEO_FORMAT_A422_10BE => Self::A42210be,
3355 ffi::GST_VIDEO_FORMAT_A422_10LE => Self::A42210le,
3356 ffi::GST_VIDEO_FORMAT_A444_10BE => Self::A44410be,
3357 ffi::GST_VIDEO_FORMAT_A444_10LE => Self::A44410le,
3358 ffi::GST_VIDEO_FORMAT_NV61 => Self::Nv61,
3359 ffi::GST_VIDEO_FORMAT_P010_10BE => Self::P01010be,
3360 ffi::GST_VIDEO_FORMAT_P010_10LE => Self::P01010le,
3361 ffi::GST_VIDEO_FORMAT_IYU2 => Self::Iyu2,
3362 ffi::GST_VIDEO_FORMAT_VYUY => Self::Vyuy,
3363 ffi::GST_VIDEO_FORMAT_GBRA => Self::Gbra,
3364 ffi::GST_VIDEO_FORMAT_GBRA_10BE => Self::Gbra10be,
3365 ffi::GST_VIDEO_FORMAT_GBRA_10LE => Self::Gbra10le,
3366 ffi::GST_VIDEO_FORMAT_GBR_12BE => Self::Gbr12be,
3367 ffi::GST_VIDEO_FORMAT_GBR_12LE => Self::Gbr12le,
3368 ffi::GST_VIDEO_FORMAT_GBRA_12BE => Self::Gbra12be,
3369 ffi::GST_VIDEO_FORMAT_GBRA_12LE => Self::Gbra12le,
3370 ffi::GST_VIDEO_FORMAT_I420_12BE => Self::I42012be,
3371 ffi::GST_VIDEO_FORMAT_I420_12LE => Self::I42012le,
3372 ffi::GST_VIDEO_FORMAT_I422_12BE => Self::I42212be,
3373 ffi::GST_VIDEO_FORMAT_I422_12LE => Self::I42212le,
3374 ffi::GST_VIDEO_FORMAT_Y444_12BE => Self::Y44412be,
3375 ffi::GST_VIDEO_FORMAT_Y444_12LE => Self::Y44412le,
3376 ffi::GST_VIDEO_FORMAT_GRAY10_LE32 => Self::Gray10Le32,
3377 ffi::GST_VIDEO_FORMAT_NV12_10LE32 => Self::Nv1210le32,
3378 ffi::GST_VIDEO_FORMAT_NV16_10LE32 => Self::Nv1610le32,
3379 #[cfg(feature = "v1_16")]
3380 ffi::GST_VIDEO_FORMAT_NV12_10LE40 => Self::Nv1210le40,
3381 #[cfg(feature = "v1_16")]
3382 ffi::GST_VIDEO_FORMAT_Y210 => Self::Y210,
3383 #[cfg(feature = "v1_16")]
3384 ffi::GST_VIDEO_FORMAT_Y410 => Self::Y410,
3385 #[cfg(feature = "v1_16")]
3386 ffi::GST_VIDEO_FORMAT_VUYA => Self::Vuya,
3387 #[cfg(feature = "v1_16")]
3388 ffi::GST_VIDEO_FORMAT_BGR10A2_LE => Self::Bgr10a2Le,
3389 #[cfg(feature = "v1_18")]
3390 ffi::GST_VIDEO_FORMAT_RGB10A2_LE => Self::Rgb10a2Le,
3391 #[cfg(feature = "v1_18")]
3392 ffi::GST_VIDEO_FORMAT_Y444_16BE => Self::Y44416be,
3393 #[cfg(feature = "v1_18")]
3394 ffi::GST_VIDEO_FORMAT_Y444_16LE => Self::Y44416le,
3395 #[cfg(feature = "v1_18")]
3396 ffi::GST_VIDEO_FORMAT_P016_BE => Self::P016Be,
3397 #[cfg(feature = "v1_18")]
3398 ffi::GST_VIDEO_FORMAT_P016_LE => Self::P016Le,
3399 #[cfg(feature = "v1_18")]
3400 ffi::GST_VIDEO_FORMAT_P012_BE => Self::P012Be,
3401 #[cfg(feature = "v1_18")]
3402 ffi::GST_VIDEO_FORMAT_P012_LE => Self::P012Le,
3403 #[cfg(feature = "v1_18")]
3404 ffi::GST_VIDEO_FORMAT_Y212_BE => Self::Y212Be,
3405 #[cfg(feature = "v1_18")]
3406 ffi::GST_VIDEO_FORMAT_Y212_LE => Self::Y212Le,
3407 #[cfg(feature = "v1_18")]
3408 ffi::GST_VIDEO_FORMAT_Y412_BE => Self::Y412Be,
3409 #[cfg(feature = "v1_18")]
3410 ffi::GST_VIDEO_FORMAT_Y412_LE => Self::Y412Le,
3411 #[cfg(feature = "v1_18")]
3412 ffi::GST_VIDEO_FORMAT_NV12_4L4 => Self::Nv124l4,
3413 #[cfg(feature = "v1_18")]
3414 ffi::GST_VIDEO_FORMAT_NV12_32L32 => Self::Nv1232l32,
3415 #[cfg(feature = "v1_20")]
3416 ffi::GST_VIDEO_FORMAT_RGBP => Self::Rgbp,
3417 #[cfg(feature = "v1_20")]
3418 ffi::GST_VIDEO_FORMAT_BGRP => Self::Bgrp,
3419 #[cfg(feature = "v1_20")]
3420 ffi::GST_VIDEO_FORMAT_AV12 => Self::Av12,
3421 #[cfg(feature = "v1_20")]
3422 ffi::GST_VIDEO_FORMAT_ARGB64_LE => Self::Argb64Le,
3423 #[cfg(feature = "v1_20")]
3424 ffi::GST_VIDEO_FORMAT_ARGB64_BE => Self::Argb64Be,
3425 #[cfg(feature = "v1_20")]
3426 ffi::GST_VIDEO_FORMAT_RGBA64_LE => Self::Rgba64Le,
3427 #[cfg(feature = "v1_20")]
3428 ffi::GST_VIDEO_FORMAT_RGBA64_BE => Self::Rgba64Be,
3429 #[cfg(feature = "v1_20")]
3430 ffi::GST_VIDEO_FORMAT_BGRA64_LE => Self::Bgra64Le,
3431 #[cfg(feature = "v1_20")]
3432 ffi::GST_VIDEO_FORMAT_BGRA64_BE => Self::Bgra64Be,
3433 #[cfg(feature = "v1_20")]
3434 ffi::GST_VIDEO_FORMAT_ABGR64_LE => Self::Abgr64Le,
3435 #[cfg(feature = "v1_20")]
3436 ffi::GST_VIDEO_FORMAT_ABGR64_BE => Self::Abgr64Be,
3437 #[cfg(feature = "v1_22")]
3438 ffi::GST_VIDEO_FORMAT_NV12_16L32S => Self::Nv1216l32s,
3439 #[cfg(feature = "v1_22")]
3440 ffi::GST_VIDEO_FORMAT_NV12_8L128 => Self::Nv128l128,
3441 #[cfg(feature = "v1_22")]
3442 ffi::GST_VIDEO_FORMAT_NV12_10BE_8L128 => Self::Nv1210be8l128,
3443 #[cfg(feature = "v1_24")]
3444 ffi::GST_VIDEO_FORMAT_NV12_10LE40_4L4 => Self::Nv1210le404l4,
3445 #[cfg(feature = "v1_24")]
3446 ffi::GST_VIDEO_FORMAT_DMA_DRM => Self::DmaDrm,
3447 #[cfg(feature = "v1_24")]
3448 ffi::GST_VIDEO_FORMAT_MT2110T => Self::Mt2110t,
3449 #[cfg(feature = "v1_24")]
3450 ffi::GST_VIDEO_FORMAT_MT2110R => Self::Mt2110r,
3451 #[cfg(feature = "v1_24")]
3452 ffi::GST_VIDEO_FORMAT_A422 => Self::A422,
3453 #[cfg(feature = "v1_24")]
3454 ffi::GST_VIDEO_FORMAT_A444 => Self::A444,
3455 #[cfg(feature = "v1_24")]
3456 ffi::GST_VIDEO_FORMAT_A444_12LE => Self::A44412le,
3457 #[cfg(feature = "v1_24")]
3458 ffi::GST_VIDEO_FORMAT_A444_12BE => Self::A44412be,
3459 #[cfg(feature = "v1_24")]
3460 ffi::GST_VIDEO_FORMAT_A422_12LE => Self::A42212le,
3461 #[cfg(feature = "v1_24")]
3462 ffi::GST_VIDEO_FORMAT_A422_12BE => Self::A42212be,
3463 #[cfg(feature = "v1_24")]
3464 ffi::GST_VIDEO_FORMAT_A420_12LE => Self::A42012le,
3465 #[cfg(feature = "v1_24")]
3466 ffi::GST_VIDEO_FORMAT_A420_12BE => Self::A42012be,
3467 #[cfg(feature = "v1_24")]
3468 ffi::GST_VIDEO_FORMAT_A444_16LE => Self::A44416le,
3469 #[cfg(feature = "v1_24")]
3470 ffi::GST_VIDEO_FORMAT_A444_16BE => Self::A44416be,
3471 #[cfg(feature = "v1_24")]
3472 ffi::GST_VIDEO_FORMAT_A422_16LE => Self::A42216le,
3473 #[cfg(feature = "v1_24")]
3474 ffi::GST_VIDEO_FORMAT_A422_16BE => Self::A42216be,
3475 #[cfg(feature = "v1_24")]
3476 ffi::GST_VIDEO_FORMAT_A420_16LE => Self::A42016le,
3477 #[cfg(feature = "v1_24")]
3478 ffi::GST_VIDEO_FORMAT_A420_16BE => Self::A42016be,
3479 #[cfg(feature = "v1_24")]
3480 ffi::GST_VIDEO_FORMAT_GBR_16LE => Self::Gbr16le,
3481 #[cfg(feature = "v1_24")]
3482 ffi::GST_VIDEO_FORMAT_GBR_16BE => Self::Gbr16be,
3483 #[cfg(feature = "v1_24")]
3484 ffi::GST_VIDEO_FORMAT_RBGA => Self::Rbga,
3485 #[cfg(feature = "v1_26")]
3486 ffi::GST_VIDEO_FORMAT_Y216_LE => Self::Y216Le,
3487 #[cfg(feature = "v1_26")]
3488 ffi::GST_VIDEO_FORMAT_Y216_BE => Self::Y216Be,
3489 #[cfg(feature = "v1_26")]
3490 ffi::GST_VIDEO_FORMAT_Y416_LE => Self::Y416Le,
3491 #[cfg(feature = "v1_26")]
3492 ffi::GST_VIDEO_FORMAT_Y416_BE => Self::Y416Be,
3493 #[cfg(feature = "v1_26")]
3494 ffi::GST_VIDEO_FORMAT_GRAY10_LE16 => Self::Gray10Le16,
3495 #[cfg(feature = "v1_28")]
3496 ffi::GST_VIDEO_FORMAT_NV16_10LE40 => Self::Nv1610le40,
3497 #[cfg(feature = "v1_28")]
3498 ffi::GST_VIDEO_FORMAT_BGR10x2_LE => Self::Bgr10x2Le,
3499 #[cfg(feature = "v1_28")]
3500 ffi::GST_VIDEO_FORMAT_RGB10x2_LE => Self::Rgb10x2Le,
3501 value => Self::__Unknown(value),
3502 }
3503 }
3504}
3505
3506impl StaticType for VideoFormat {
3507 #[inline]
3508 #[doc(alias = "gst_video_format_get_type")]
3509 fn static_type() -> glib::Type {
3510 unsafe { from_glib(ffi::gst_video_format_get_type()) }
3511 }
3512}
3513
3514impl glib::HasParamSpec for VideoFormat {
3515 type ParamSpec = glib::ParamSpecEnum;
3516 type SetValue = Self;
3517 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3518
3519 fn param_spec_builder() -> Self::BuilderFn {
3520 Self::ParamSpec::builder_with_default
3521 }
3522}
3523
3524impl glib::value::ValueType for VideoFormat {
3525 type Type = Self;
3526}
3527
3528unsafe impl<'a> glib::value::FromValue<'a> for VideoFormat {
3529 type Checker = glib::value::GenericValueTypeChecker<Self>;
3530
3531 #[inline]
3532 unsafe fn from_value(value: &'a glib::Value) -> Self {
3533 skip_assert_initialized!();
3534 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
3535 }
3536}
3537
3538impl ToValue for VideoFormat {
3539 #[inline]
3540 fn to_value(&self) -> glib::Value {
3541 let mut value = glib::Value::for_value_type::<Self>();
3542 unsafe {
3543 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3544 }
3545 value
3546 }
3547
3548 #[inline]
3549 fn value_type(&self) -> glib::Type {
3550 Self::static_type()
3551 }
3552}
3553
3554impl From<VideoFormat> for glib::Value {
3555 #[inline]
3556 fn from(v: VideoFormat) -> Self {
3557 skip_assert_initialized!();
3558 ToValue::to_value(&v)
3559 }
3560}
3561
3562#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3563#[non_exhaustive]
3564#[doc(alias = "GstVideoGammaMode")]
3565pub enum VideoGammaMode {
3566 #[doc(alias = "GST_VIDEO_GAMMA_MODE_NONE")]
3568 None,
3569 #[doc(alias = "GST_VIDEO_GAMMA_MODE_REMAP")]
3572 Remap,
3573 #[doc(hidden)]
3574 __Unknown(i32),
3575}
3576
3577#[doc(hidden)]
3578impl IntoGlib for VideoGammaMode {
3579 type GlibType = ffi::GstVideoGammaMode;
3580
3581 #[inline]
3582 fn into_glib(self) -> ffi::GstVideoGammaMode {
3583 match self {
3584 Self::None => ffi::GST_VIDEO_GAMMA_MODE_NONE,
3585 Self::Remap => ffi::GST_VIDEO_GAMMA_MODE_REMAP,
3586 Self::__Unknown(value) => value,
3587 }
3588 }
3589}
3590
3591#[doc(hidden)]
3592impl FromGlib<ffi::GstVideoGammaMode> for VideoGammaMode {
3593 #[inline]
3594 unsafe fn from_glib(value: ffi::GstVideoGammaMode) -> Self {
3595 skip_assert_initialized!();
3596
3597 match value {
3598 ffi::GST_VIDEO_GAMMA_MODE_NONE => Self::None,
3599 ffi::GST_VIDEO_GAMMA_MODE_REMAP => Self::Remap,
3600 value => Self::__Unknown(value),
3601 }
3602 }
3603}
3604
3605impl StaticType for VideoGammaMode {
3606 #[inline]
3607 #[doc(alias = "gst_video_gamma_mode_get_type")]
3608 fn static_type() -> glib::Type {
3609 unsafe { from_glib(ffi::gst_video_gamma_mode_get_type()) }
3610 }
3611}
3612
3613impl glib::HasParamSpec for VideoGammaMode {
3614 type ParamSpec = glib::ParamSpecEnum;
3615 type SetValue = Self;
3616 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3617
3618 fn param_spec_builder() -> Self::BuilderFn {
3619 Self::ParamSpec::builder_with_default
3620 }
3621}
3622
3623impl glib::value::ValueType for VideoGammaMode {
3624 type Type = Self;
3625}
3626
3627unsafe impl<'a> glib::value::FromValue<'a> for VideoGammaMode {
3628 type Checker = glib::value::GenericValueTypeChecker<Self>;
3629
3630 #[inline]
3631 unsafe fn from_value(value: &'a glib::Value) -> Self {
3632 skip_assert_initialized!();
3633 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
3634 }
3635}
3636
3637impl ToValue for VideoGammaMode {
3638 #[inline]
3639 fn to_value(&self) -> glib::Value {
3640 let mut value = glib::Value::for_value_type::<Self>();
3641 unsafe {
3642 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3643 }
3644 value
3645 }
3646
3647 #[inline]
3648 fn value_type(&self) -> glib::Type {
3649 Self::static_type()
3650 }
3651}
3652
3653impl From<VideoGammaMode> for glib::Value {
3654 #[inline]
3655 fn from(v: VideoGammaMode) -> Self {
3656 skip_assert_initialized!();
3657 ToValue::to_value(&v)
3658 }
3659}
3660
3661#[cfg(feature = "v1_30")]
3663#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
3664#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3665#[non_exhaustive]
3666#[doc(alias = "GstVideoHDRFormat")]
3667pub enum VideoHDRFormat {
3668 #[doc(alias = "GST_VIDEO_HDR_FORMAT_NONE")]
3670 None,
3671 #[doc(alias = "GST_VIDEO_HDR_FORMAT_HDR10")]
3673 Hdr10,
3674 #[doc(alias = "GST_VIDEO_HDR_FORMAT_HDR10_PLUS")]
3676 Hdr10Plus,
3677 #[doc(hidden)]
3678 __Unknown(i32),
3679}
3680
3681#[cfg(feature = "v1_30")]
3682#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
3683#[doc(hidden)]
3684impl IntoGlib for VideoHDRFormat {
3685 type GlibType = ffi::GstVideoHDRFormat;
3686
3687 #[inline]
3688 fn into_glib(self) -> ffi::GstVideoHDRFormat {
3689 match self {
3690 Self::None => ffi::GST_VIDEO_HDR_FORMAT_NONE,
3691 Self::Hdr10 => ffi::GST_VIDEO_HDR_FORMAT_HDR10,
3692 Self::Hdr10Plus => ffi::GST_VIDEO_HDR_FORMAT_HDR10_PLUS,
3693 Self::__Unknown(value) => value,
3694 }
3695 }
3696}
3697
3698#[cfg(feature = "v1_30")]
3699#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
3700#[doc(hidden)]
3701impl FromGlib<ffi::GstVideoHDRFormat> for VideoHDRFormat {
3702 #[inline]
3703 unsafe fn from_glib(value: ffi::GstVideoHDRFormat) -> Self {
3704 skip_assert_initialized!();
3705
3706 match value {
3707 ffi::GST_VIDEO_HDR_FORMAT_NONE => Self::None,
3708 ffi::GST_VIDEO_HDR_FORMAT_HDR10 => Self::Hdr10,
3709 ffi::GST_VIDEO_HDR_FORMAT_HDR10_PLUS => Self::Hdr10Plus,
3710 value => Self::__Unknown(value),
3711 }
3712 }
3713}
3714
3715#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3718#[non_exhaustive]
3719#[doc(alias = "GstVideoInterlaceMode")]
3720pub enum VideoInterlaceMode {
3721 #[doc(alias = "GST_VIDEO_INTERLACE_MODE_PROGRESSIVE")]
3723 Progressive,
3724 #[doc(alias = "GST_VIDEO_INTERLACE_MODE_INTERLEAVED")]
3727 Interleaved,
3728 #[doc(alias = "GST_VIDEO_INTERLACE_MODE_MIXED")]
3731 Mixed,
3732 #[doc(alias = "GST_VIDEO_INTERLACE_MODE_FIELDS")]
3740 Fields,
3741 #[cfg(feature = "v1_16")]
3747 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3748 #[doc(alias = "GST_VIDEO_INTERLACE_MODE_ALTERNATE")]
3749 Alternate,
3750 #[doc(hidden)]
3751 __Unknown(i32),
3752}
3753
3754impl VideoInterlaceMode {
3755 #[doc(alias = "gst_video_interlace_mode_from_string")]
3756 pub fn from_string(mode: &str) -> VideoInterlaceMode {
3757 assert_initialized_main_thread!();
3758 unsafe {
3759 from_glib(ffi::gst_video_interlace_mode_from_string(
3760 mode.to_glib_none().0,
3761 ))
3762 }
3763 }
3764
3765 pub fn to_str<'a>(self) -> &'a GStr {
3766 unsafe {
3767 GStr::from_ptr(
3768 ffi::gst_video_interlace_mode_to_string(self.into_glib())
3769 .as_ref()
3770 .expect("gst_video_interlace_mode_to_string returned NULL"),
3771 )
3772 }
3773 }
3774}
3775
3776impl std::fmt::Display for VideoInterlaceMode {
3777 #[inline]
3778 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3779 f.write_str(&self.to_str())
3780 }
3781}
3782
3783#[doc(hidden)]
3784impl IntoGlib for VideoInterlaceMode {
3785 type GlibType = ffi::GstVideoInterlaceMode;
3786
3787 #[inline]
3788 fn into_glib(self) -> ffi::GstVideoInterlaceMode {
3789 match self {
3790 Self::Progressive => ffi::GST_VIDEO_INTERLACE_MODE_PROGRESSIVE,
3791 Self::Interleaved => ffi::GST_VIDEO_INTERLACE_MODE_INTERLEAVED,
3792 Self::Mixed => ffi::GST_VIDEO_INTERLACE_MODE_MIXED,
3793 Self::Fields => ffi::GST_VIDEO_INTERLACE_MODE_FIELDS,
3794 #[cfg(feature = "v1_16")]
3795 Self::Alternate => ffi::GST_VIDEO_INTERLACE_MODE_ALTERNATE,
3796 Self::__Unknown(value) => value,
3797 }
3798 }
3799}
3800
3801#[doc(hidden)]
3802impl FromGlib<ffi::GstVideoInterlaceMode> for VideoInterlaceMode {
3803 #[inline]
3804 unsafe fn from_glib(value: ffi::GstVideoInterlaceMode) -> Self {
3805 skip_assert_initialized!();
3806
3807 match value {
3808 ffi::GST_VIDEO_INTERLACE_MODE_PROGRESSIVE => Self::Progressive,
3809 ffi::GST_VIDEO_INTERLACE_MODE_INTERLEAVED => Self::Interleaved,
3810 ffi::GST_VIDEO_INTERLACE_MODE_MIXED => Self::Mixed,
3811 ffi::GST_VIDEO_INTERLACE_MODE_FIELDS => Self::Fields,
3812 #[cfg(feature = "v1_16")]
3813 ffi::GST_VIDEO_INTERLACE_MODE_ALTERNATE => Self::Alternate,
3814 value => Self::__Unknown(value),
3815 }
3816 }
3817}
3818
3819impl StaticType for VideoInterlaceMode {
3820 #[inline]
3821 #[doc(alias = "gst_video_interlace_mode_get_type")]
3822 fn static_type() -> glib::Type {
3823 unsafe { from_glib(ffi::gst_video_interlace_mode_get_type()) }
3824 }
3825}
3826
3827impl glib::HasParamSpec for VideoInterlaceMode {
3828 type ParamSpec = glib::ParamSpecEnum;
3829 type SetValue = Self;
3830 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3831
3832 fn param_spec_builder() -> Self::BuilderFn {
3833 Self::ParamSpec::builder_with_default
3834 }
3835}
3836
3837impl glib::value::ValueType for VideoInterlaceMode {
3838 type Type = Self;
3839}
3840
3841unsafe impl<'a> glib::value::FromValue<'a> for VideoInterlaceMode {
3842 type Checker = glib::value::GenericValueTypeChecker<Self>;
3843
3844 #[inline]
3845 unsafe fn from_value(value: &'a glib::Value) -> Self {
3846 skip_assert_initialized!();
3847 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
3848 }
3849}
3850
3851impl ToValue for VideoInterlaceMode {
3852 #[inline]
3853 fn to_value(&self) -> glib::Value {
3854 let mut value = glib::Value::for_value_type::<Self>();
3855 unsafe {
3856 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3857 }
3858 value
3859 }
3860
3861 #[inline]
3862 fn value_type(&self) -> glib::Type {
3863 Self::static_type()
3864 }
3865}
3866
3867impl From<VideoInterlaceMode> for glib::Value {
3868 #[inline]
3869 fn from(v: VideoInterlaceMode) -> Self {
3870 skip_assert_initialized!();
3871 ToValue::to_value(&v)
3872 }
3873}
3874
3875#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3877#[non_exhaustive]
3878#[doc(alias = "GstVideoMatrixMode")]
3879pub enum VideoMatrixMode {
3880 #[doc(alias = "GST_VIDEO_MATRIX_MODE_FULL")]
3882 Full,
3883 #[doc(alias = "GST_VIDEO_MATRIX_MODE_INPUT_ONLY")]
3886 InputOnly,
3887 #[doc(alias = "GST_VIDEO_MATRIX_MODE_OUTPUT_ONLY")]
3890 OutputOnly,
3891 #[doc(alias = "GST_VIDEO_MATRIX_MODE_NONE")]
3893 None,
3894 #[doc(hidden)]
3895 __Unknown(i32),
3896}
3897
3898#[doc(hidden)]
3899impl IntoGlib for VideoMatrixMode {
3900 type GlibType = ffi::GstVideoMatrixMode;
3901
3902 #[inline]
3903 fn into_glib(self) -> ffi::GstVideoMatrixMode {
3904 match self {
3905 Self::Full => ffi::GST_VIDEO_MATRIX_MODE_FULL,
3906 Self::InputOnly => ffi::GST_VIDEO_MATRIX_MODE_INPUT_ONLY,
3907 Self::OutputOnly => ffi::GST_VIDEO_MATRIX_MODE_OUTPUT_ONLY,
3908 Self::None => ffi::GST_VIDEO_MATRIX_MODE_NONE,
3909 Self::__Unknown(value) => value,
3910 }
3911 }
3912}
3913
3914#[doc(hidden)]
3915impl FromGlib<ffi::GstVideoMatrixMode> for VideoMatrixMode {
3916 #[inline]
3917 unsafe fn from_glib(value: ffi::GstVideoMatrixMode) -> Self {
3918 skip_assert_initialized!();
3919
3920 match value {
3921 ffi::GST_VIDEO_MATRIX_MODE_FULL => Self::Full,
3922 ffi::GST_VIDEO_MATRIX_MODE_INPUT_ONLY => Self::InputOnly,
3923 ffi::GST_VIDEO_MATRIX_MODE_OUTPUT_ONLY => Self::OutputOnly,
3924 ffi::GST_VIDEO_MATRIX_MODE_NONE => Self::None,
3925 value => Self::__Unknown(value),
3926 }
3927 }
3928}
3929
3930impl StaticType for VideoMatrixMode {
3931 #[inline]
3932 #[doc(alias = "gst_video_matrix_mode_get_type")]
3933 fn static_type() -> glib::Type {
3934 unsafe { from_glib(ffi::gst_video_matrix_mode_get_type()) }
3935 }
3936}
3937
3938impl glib::HasParamSpec for VideoMatrixMode {
3939 type ParamSpec = glib::ParamSpecEnum;
3940 type SetValue = Self;
3941 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3942
3943 fn param_spec_builder() -> Self::BuilderFn {
3944 Self::ParamSpec::builder_with_default
3945 }
3946}
3947
3948impl glib::value::ValueType for VideoMatrixMode {
3949 type Type = Self;
3950}
3951
3952unsafe impl<'a> glib::value::FromValue<'a> for VideoMatrixMode {
3953 type Checker = glib::value::GenericValueTypeChecker<Self>;
3954
3955 #[inline]
3956 unsafe fn from_value(value: &'a glib::Value) -> Self {
3957 skip_assert_initialized!();
3958 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
3959 }
3960}
3961
3962impl ToValue for VideoMatrixMode {
3963 #[inline]
3964 fn to_value(&self) -> glib::Value {
3965 let mut value = glib::Value::for_value_type::<Self>();
3966 unsafe {
3967 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3968 }
3969 value
3970 }
3971
3972 #[inline]
3973 fn value_type(&self) -> glib::Type {
3974 Self::static_type()
3975 }
3976}
3977
3978impl From<VideoMatrixMode> for glib::Value {
3979 #[inline]
3980 fn from(v: VideoMatrixMode) -> Self {
3981 skip_assert_initialized!();
3982 ToValue::to_value(&v)
3983 }
3984}
3985
3986#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3996#[non_exhaustive]
3997#[doc(alias = "GstVideoMultiviewFramePacking")]
3998pub enum VideoMultiviewFramePacking {
3999 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_NONE")]
4002 None,
4003 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_MONO")]
4005 Mono,
4006 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_LEFT")]
4008 Left,
4009 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_RIGHT")]
4011 Right,
4012 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE")]
4015 SideBySide,
4016 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE_QUINCUNX")]
4021 SideBySideQuincunx,
4022 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_COLUMN_INTERLEAVED")]
4025 ColumnInterleaved,
4026 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_ROW_INTERLEAVED")]
4029 RowInterleaved,
4030 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_TOP_BOTTOM")]
4033 TopBottom,
4034 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_CHECKERBOARD")]
4038 Checkerboard,
4039 #[doc(hidden)]
4040 __Unknown(i32),
4041}
4042
4043#[doc(hidden)]
4044impl IntoGlib for VideoMultiviewFramePacking {
4045 type GlibType = ffi::GstVideoMultiviewFramePacking;
4046
4047 #[inline]
4048 fn into_glib(self) -> ffi::GstVideoMultiviewFramePacking {
4049 match self {
4050 Self::None => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_NONE,
4051 Self::Mono => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_MONO,
4052 Self::Left => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_LEFT,
4053 Self::Right => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_RIGHT,
4054 Self::SideBySide => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE,
4055 Self::SideBySideQuincunx => {
4056 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE_QUINCUNX
4057 }
4058 Self::ColumnInterleaved => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_COLUMN_INTERLEAVED,
4059 Self::RowInterleaved => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_ROW_INTERLEAVED,
4060 Self::TopBottom => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_TOP_BOTTOM,
4061 Self::Checkerboard => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_CHECKERBOARD,
4062 Self::__Unknown(value) => value,
4063 }
4064 }
4065}
4066
4067#[doc(hidden)]
4068impl FromGlib<ffi::GstVideoMultiviewFramePacking> for VideoMultiviewFramePacking {
4069 #[inline]
4070 unsafe fn from_glib(value: ffi::GstVideoMultiviewFramePacking) -> Self {
4071 skip_assert_initialized!();
4072
4073 match value {
4074 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_NONE => Self::None,
4075 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_MONO => Self::Mono,
4076 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_LEFT => Self::Left,
4077 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_RIGHT => Self::Right,
4078 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE => Self::SideBySide,
4079 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE_QUINCUNX => {
4080 Self::SideBySideQuincunx
4081 }
4082 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_COLUMN_INTERLEAVED => Self::ColumnInterleaved,
4083 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_ROW_INTERLEAVED => Self::RowInterleaved,
4084 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_TOP_BOTTOM => Self::TopBottom,
4085 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_CHECKERBOARD => Self::Checkerboard,
4086 value => Self::__Unknown(value),
4087 }
4088 }
4089}
4090
4091impl StaticType for VideoMultiviewFramePacking {
4092 #[inline]
4093 #[doc(alias = "gst_video_multiview_frame_packing_get_type")]
4094 fn static_type() -> glib::Type {
4095 unsafe { from_glib(ffi::gst_video_multiview_frame_packing_get_type()) }
4096 }
4097}
4098
4099impl glib::HasParamSpec for VideoMultiviewFramePacking {
4100 type ParamSpec = glib::ParamSpecEnum;
4101 type SetValue = Self;
4102 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4103
4104 fn param_spec_builder() -> Self::BuilderFn {
4105 Self::ParamSpec::builder_with_default
4106 }
4107}
4108
4109impl glib::value::ValueType for VideoMultiviewFramePacking {
4110 type Type = Self;
4111}
4112
4113unsafe impl<'a> glib::value::FromValue<'a> for VideoMultiviewFramePacking {
4114 type Checker = glib::value::GenericValueTypeChecker<Self>;
4115
4116 #[inline]
4117 unsafe fn from_value(value: &'a glib::Value) -> Self {
4118 skip_assert_initialized!();
4119 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
4120 }
4121}
4122
4123impl ToValue for VideoMultiviewFramePacking {
4124 #[inline]
4125 fn to_value(&self) -> glib::Value {
4126 let mut value = glib::Value::for_value_type::<Self>();
4127 unsafe {
4128 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4129 }
4130 value
4131 }
4132
4133 #[inline]
4134 fn value_type(&self) -> glib::Type {
4135 Self::static_type()
4136 }
4137}
4138
4139impl From<VideoMultiviewFramePacking> for glib::Value {
4140 #[inline]
4141 fn from(v: VideoMultiviewFramePacking) -> Self {
4142 skip_assert_initialized!();
4143 ToValue::to_value(&v)
4144 }
4145}
4146
4147#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4151#[non_exhaustive]
4152#[doc(alias = "GstVideoMultiviewMode")]
4153pub enum VideoMultiviewMode {
4154 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_NONE")]
4159 None,
4160 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_MONO")]
4162 Mono,
4163 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_LEFT")]
4165 Left,
4166 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_RIGHT")]
4168 Right,
4169 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE")]
4172 SideBySide,
4173 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE_QUINCUNX")]
4178 SideBySideQuincunx,
4179 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_COLUMN_INTERLEAVED")]
4182 ColumnInterleaved,
4183 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_ROW_INTERLEAVED")]
4186 RowInterleaved,
4187 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_TOP_BOTTOM")]
4190 TopBottom,
4191 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_CHECKERBOARD")]
4195 Checkerboard,
4196 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_FRAME_BY_FRAME")]
4199 FrameByFrame,
4200 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_MULTIVIEW_FRAME_BY_FRAME")]
4206 MultiviewFrameByFrame,
4207 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_SEPARATED")]
4212 Separated,
4213 #[doc(hidden)]
4214 __Unknown(i32),
4215}
4216
4217impl VideoMultiviewMode {
4218 #[doc(alias = "gst_video_multiview_mode_from_caps_string")]
4219 pub fn from_caps_string(caps_mview_mode: &str) -> VideoMultiviewMode {
4220 assert_initialized_main_thread!();
4221 unsafe {
4222 from_glib(ffi::gst_video_multiview_mode_from_caps_string(
4223 caps_mview_mode.to_glib_none().0,
4224 ))
4225 }
4226 }
4227
4228 #[doc(alias = "gst_video_multiview_mode_to_caps_string")]
4229 pub fn to_caps_string(self) -> Option<glib::GString> {
4230 assert_initialized_main_thread!();
4231 unsafe {
4232 from_glib_none(ffi::gst_video_multiview_mode_to_caps_string(
4233 self.into_glib(),
4234 ))
4235 }
4236 }
4237}
4238
4239#[doc(hidden)]
4240impl IntoGlib for VideoMultiviewMode {
4241 type GlibType = ffi::GstVideoMultiviewMode;
4242
4243 fn into_glib(self) -> ffi::GstVideoMultiviewMode {
4244 match self {
4245 Self::None => ffi::GST_VIDEO_MULTIVIEW_MODE_NONE,
4246 Self::Mono => ffi::GST_VIDEO_MULTIVIEW_MODE_MONO,
4247 Self::Left => ffi::GST_VIDEO_MULTIVIEW_MODE_LEFT,
4248 Self::Right => ffi::GST_VIDEO_MULTIVIEW_MODE_RIGHT,
4249 Self::SideBySide => ffi::GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE,
4250 Self::SideBySideQuincunx => ffi::GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE_QUINCUNX,
4251 Self::ColumnInterleaved => ffi::GST_VIDEO_MULTIVIEW_MODE_COLUMN_INTERLEAVED,
4252 Self::RowInterleaved => ffi::GST_VIDEO_MULTIVIEW_MODE_ROW_INTERLEAVED,
4253 Self::TopBottom => ffi::GST_VIDEO_MULTIVIEW_MODE_TOP_BOTTOM,
4254 Self::Checkerboard => ffi::GST_VIDEO_MULTIVIEW_MODE_CHECKERBOARD,
4255 Self::FrameByFrame => ffi::GST_VIDEO_MULTIVIEW_MODE_FRAME_BY_FRAME,
4256 Self::MultiviewFrameByFrame => ffi::GST_VIDEO_MULTIVIEW_MODE_MULTIVIEW_FRAME_BY_FRAME,
4257 Self::Separated => ffi::GST_VIDEO_MULTIVIEW_MODE_SEPARATED,
4258 Self::__Unknown(value) => value,
4259 }
4260 }
4261}
4262
4263#[doc(hidden)]
4264impl FromGlib<ffi::GstVideoMultiviewMode> for VideoMultiviewMode {
4265 unsafe fn from_glib(value: ffi::GstVideoMultiviewMode) -> Self {
4266 skip_assert_initialized!();
4267
4268 match value {
4269 ffi::GST_VIDEO_MULTIVIEW_MODE_NONE => Self::None,
4270 ffi::GST_VIDEO_MULTIVIEW_MODE_MONO => Self::Mono,
4271 ffi::GST_VIDEO_MULTIVIEW_MODE_LEFT => Self::Left,
4272 ffi::GST_VIDEO_MULTIVIEW_MODE_RIGHT => Self::Right,
4273 ffi::GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE => Self::SideBySide,
4274 ffi::GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE_QUINCUNX => Self::SideBySideQuincunx,
4275 ffi::GST_VIDEO_MULTIVIEW_MODE_COLUMN_INTERLEAVED => Self::ColumnInterleaved,
4276 ffi::GST_VIDEO_MULTIVIEW_MODE_ROW_INTERLEAVED => Self::RowInterleaved,
4277 ffi::GST_VIDEO_MULTIVIEW_MODE_TOP_BOTTOM => Self::TopBottom,
4278 ffi::GST_VIDEO_MULTIVIEW_MODE_CHECKERBOARD => Self::Checkerboard,
4279 ffi::GST_VIDEO_MULTIVIEW_MODE_FRAME_BY_FRAME => Self::FrameByFrame,
4280 ffi::GST_VIDEO_MULTIVIEW_MODE_MULTIVIEW_FRAME_BY_FRAME => Self::MultiviewFrameByFrame,
4281 ffi::GST_VIDEO_MULTIVIEW_MODE_SEPARATED => Self::Separated,
4282 value => Self::__Unknown(value),
4283 }
4284 }
4285}
4286
4287impl StaticType for VideoMultiviewMode {
4288 #[inline]
4289 #[doc(alias = "gst_video_multiview_mode_get_type")]
4290 fn static_type() -> glib::Type {
4291 unsafe { from_glib(ffi::gst_video_multiview_mode_get_type()) }
4292 }
4293}
4294
4295impl glib::HasParamSpec for VideoMultiviewMode {
4296 type ParamSpec = glib::ParamSpecEnum;
4297 type SetValue = Self;
4298 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4299
4300 fn param_spec_builder() -> Self::BuilderFn {
4301 Self::ParamSpec::builder_with_default
4302 }
4303}
4304
4305impl glib::value::ValueType for VideoMultiviewMode {
4306 type Type = Self;
4307}
4308
4309unsafe impl<'a> glib::value::FromValue<'a> for VideoMultiviewMode {
4310 type Checker = glib::value::GenericValueTypeChecker<Self>;
4311
4312 #[inline]
4313 unsafe fn from_value(value: &'a glib::Value) -> Self {
4314 skip_assert_initialized!();
4315 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
4316 }
4317}
4318
4319impl ToValue for VideoMultiviewMode {
4320 #[inline]
4321 fn to_value(&self) -> glib::Value {
4322 let mut value = glib::Value::for_value_type::<Self>();
4323 unsafe {
4324 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4325 }
4326 value
4327 }
4328
4329 #[inline]
4330 fn value_type(&self) -> glib::Type {
4331 Self::static_type()
4332 }
4333}
4334
4335impl From<VideoMultiviewMode> for glib::Value {
4336 #[inline]
4337 fn from(v: VideoMultiviewMode) -> Self {
4338 skip_assert_initialized!();
4339 ToValue::to_value(&v)
4340 }
4341}
4342
4343#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4345#[non_exhaustive]
4346#[doc(alias = "GstVideoOrientationMethod")]
4347pub enum VideoOrientationMethod {
4348 #[doc(alias = "GST_VIDEO_ORIENTATION_IDENTITY")]
4350 Identity,
4351 #[doc(alias = "GST_VIDEO_ORIENTATION_90R")]
4353 _90r,
4354 #[doc(alias = "GST_VIDEO_ORIENTATION_180")]
4356 _180,
4357 #[doc(alias = "GST_VIDEO_ORIENTATION_90L")]
4359 _90l,
4360 #[doc(alias = "GST_VIDEO_ORIENTATION_HORIZ")]
4362 Horiz,
4363 #[doc(alias = "GST_VIDEO_ORIENTATION_VERT")]
4365 Vert,
4366 #[doc(alias = "GST_VIDEO_ORIENTATION_UL_LR")]
4368 UlLr,
4369 #[doc(alias = "GST_VIDEO_ORIENTATION_UR_LL")]
4371 UrLl,
4372 #[doc(alias = "GST_VIDEO_ORIENTATION_AUTO")]
4374 Auto,
4375 #[doc(alias = "GST_VIDEO_ORIENTATION_CUSTOM")]
4377 Custom,
4378 #[doc(hidden)]
4379 __Unknown(i32),
4380}
4381
4382#[doc(hidden)]
4383impl IntoGlib for VideoOrientationMethod {
4384 type GlibType = ffi::GstVideoOrientationMethod;
4385
4386 #[inline]
4387 fn into_glib(self) -> ffi::GstVideoOrientationMethod {
4388 match self {
4389 Self::Identity => ffi::GST_VIDEO_ORIENTATION_IDENTITY,
4390 Self::_90r => ffi::GST_VIDEO_ORIENTATION_90R,
4391 Self::_180 => ffi::GST_VIDEO_ORIENTATION_180,
4392 Self::_90l => ffi::GST_VIDEO_ORIENTATION_90L,
4393 Self::Horiz => ffi::GST_VIDEO_ORIENTATION_HORIZ,
4394 Self::Vert => ffi::GST_VIDEO_ORIENTATION_VERT,
4395 Self::UlLr => ffi::GST_VIDEO_ORIENTATION_UL_LR,
4396 Self::UrLl => ffi::GST_VIDEO_ORIENTATION_UR_LL,
4397 Self::Auto => ffi::GST_VIDEO_ORIENTATION_AUTO,
4398 Self::Custom => ffi::GST_VIDEO_ORIENTATION_CUSTOM,
4399 Self::__Unknown(value) => value,
4400 }
4401 }
4402}
4403
4404#[doc(hidden)]
4405impl FromGlib<ffi::GstVideoOrientationMethod> for VideoOrientationMethod {
4406 #[inline]
4407 unsafe fn from_glib(value: ffi::GstVideoOrientationMethod) -> Self {
4408 skip_assert_initialized!();
4409
4410 match value {
4411 ffi::GST_VIDEO_ORIENTATION_IDENTITY => Self::Identity,
4412 ffi::GST_VIDEO_ORIENTATION_90R => Self::_90r,
4413 ffi::GST_VIDEO_ORIENTATION_180 => Self::_180,
4414 ffi::GST_VIDEO_ORIENTATION_90L => Self::_90l,
4415 ffi::GST_VIDEO_ORIENTATION_HORIZ => Self::Horiz,
4416 ffi::GST_VIDEO_ORIENTATION_VERT => Self::Vert,
4417 ffi::GST_VIDEO_ORIENTATION_UL_LR => Self::UlLr,
4418 ffi::GST_VIDEO_ORIENTATION_UR_LL => Self::UrLl,
4419 ffi::GST_VIDEO_ORIENTATION_AUTO => Self::Auto,
4420 ffi::GST_VIDEO_ORIENTATION_CUSTOM => Self::Custom,
4421 value => Self::__Unknown(value),
4422 }
4423 }
4424}
4425
4426impl StaticType for VideoOrientationMethod {
4427 #[inline]
4428 #[doc(alias = "gst_video_orientation_method_get_type")]
4429 fn static_type() -> glib::Type {
4430 unsafe { from_glib(ffi::gst_video_orientation_method_get_type()) }
4431 }
4432}
4433
4434impl glib::HasParamSpec for VideoOrientationMethod {
4435 type ParamSpec = glib::ParamSpecEnum;
4436 type SetValue = Self;
4437 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4438
4439 fn param_spec_builder() -> Self::BuilderFn {
4440 Self::ParamSpec::builder_with_default
4441 }
4442}
4443
4444impl glib::value::ValueType for VideoOrientationMethod {
4445 type Type = Self;
4446}
4447
4448unsafe impl<'a> glib::value::FromValue<'a> for VideoOrientationMethod {
4449 type Checker = glib::value::GenericValueTypeChecker<Self>;
4450
4451 #[inline]
4452 unsafe fn from_value(value: &'a glib::Value) -> Self {
4453 skip_assert_initialized!();
4454 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
4455 }
4456}
4457
4458impl ToValue for VideoOrientationMethod {
4459 #[inline]
4460 fn to_value(&self) -> glib::Value {
4461 let mut value = glib::Value::for_value_type::<Self>();
4462 unsafe {
4463 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4464 }
4465 value
4466 }
4467
4468 #[inline]
4469 fn value_type(&self) -> glib::Type {
4470 Self::static_type()
4471 }
4472}
4473
4474impl From<VideoOrientationMethod> for glib::Value {
4475 #[inline]
4476 fn from(v: VideoOrientationMethod) -> Self {
4477 skip_assert_initialized!();
4478 ToValue::to_value(&v)
4479 }
4480}
4481
4482#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4484#[non_exhaustive]
4485#[doc(alias = "GstVideoPrimariesMode")]
4486pub enum VideoPrimariesMode {
4487 #[doc(alias = "GST_VIDEO_PRIMARIES_MODE_NONE")]
4489 None,
4490 #[doc(alias = "GST_VIDEO_PRIMARIES_MODE_MERGE_ONLY")]
4493 MergeOnly,
4494 #[doc(alias = "GST_VIDEO_PRIMARIES_MODE_FAST")]
4496 Fast,
4497 #[doc(hidden)]
4498 __Unknown(i32),
4499}
4500
4501#[doc(hidden)]
4502impl IntoGlib for VideoPrimariesMode {
4503 type GlibType = ffi::GstVideoPrimariesMode;
4504
4505 #[inline]
4506 fn into_glib(self) -> ffi::GstVideoPrimariesMode {
4507 match self {
4508 Self::None => ffi::GST_VIDEO_PRIMARIES_MODE_NONE,
4509 Self::MergeOnly => ffi::GST_VIDEO_PRIMARIES_MODE_MERGE_ONLY,
4510 Self::Fast => ffi::GST_VIDEO_PRIMARIES_MODE_FAST,
4511 Self::__Unknown(value) => value,
4512 }
4513 }
4514}
4515
4516#[doc(hidden)]
4517impl FromGlib<ffi::GstVideoPrimariesMode> for VideoPrimariesMode {
4518 #[inline]
4519 unsafe fn from_glib(value: ffi::GstVideoPrimariesMode) -> Self {
4520 skip_assert_initialized!();
4521
4522 match value {
4523 ffi::GST_VIDEO_PRIMARIES_MODE_NONE => Self::None,
4524 ffi::GST_VIDEO_PRIMARIES_MODE_MERGE_ONLY => Self::MergeOnly,
4525 ffi::GST_VIDEO_PRIMARIES_MODE_FAST => Self::Fast,
4526 value => Self::__Unknown(value),
4527 }
4528 }
4529}
4530
4531impl StaticType for VideoPrimariesMode {
4532 #[inline]
4533 #[doc(alias = "gst_video_primaries_mode_get_type")]
4534 fn static_type() -> glib::Type {
4535 unsafe { from_glib(ffi::gst_video_primaries_mode_get_type()) }
4536 }
4537}
4538
4539impl glib::HasParamSpec for VideoPrimariesMode {
4540 type ParamSpec = glib::ParamSpecEnum;
4541 type SetValue = Self;
4542 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4543
4544 fn param_spec_builder() -> Self::BuilderFn {
4545 Self::ParamSpec::builder_with_default
4546 }
4547}
4548
4549impl glib::value::ValueType for VideoPrimariesMode {
4550 type Type = Self;
4551}
4552
4553unsafe impl<'a> glib::value::FromValue<'a> for VideoPrimariesMode {
4554 type Checker = glib::value::GenericValueTypeChecker<Self>;
4555
4556 #[inline]
4557 unsafe fn from_value(value: &'a glib::Value) -> Self {
4558 skip_assert_initialized!();
4559 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
4560 }
4561}
4562
4563impl ToValue for VideoPrimariesMode {
4564 #[inline]
4565 fn to_value(&self) -> glib::Value {
4566 let mut value = glib::Value::for_value_type::<Self>();
4567 unsafe {
4568 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4569 }
4570 value
4571 }
4572
4573 #[inline]
4574 fn value_type(&self) -> glib::Type {
4575 Self::static_type()
4576 }
4577}
4578
4579impl From<VideoPrimariesMode> for glib::Value {
4580 #[inline]
4581 fn from(v: VideoPrimariesMode) -> Self {
4582 skip_assert_initialized!();
4583 ToValue::to_value(&v)
4584 }
4585}
4586
4587#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4589#[non_exhaustive]
4590#[doc(alias = "GstVideoResamplerMethod")]
4591pub enum VideoResamplerMethod {
4592 #[doc(alias = "GST_VIDEO_RESAMPLER_METHOD_NEAREST")]
4595 Nearest,
4596 #[doc(alias = "GST_VIDEO_RESAMPLER_METHOD_LINEAR")]
4599 Linear,
4600 #[doc(alias = "GST_VIDEO_RESAMPLER_METHOD_CUBIC")]
4602 Cubic,
4603 #[doc(alias = "GST_VIDEO_RESAMPLER_METHOD_SINC")]
4605 Sinc,
4606 #[doc(alias = "GST_VIDEO_RESAMPLER_METHOD_LANCZOS")]
4608 Lanczos,
4609 #[doc(hidden)]
4610 __Unknown(i32),
4611}
4612
4613#[doc(hidden)]
4614impl IntoGlib for VideoResamplerMethod {
4615 type GlibType = ffi::GstVideoResamplerMethod;
4616
4617 #[inline]
4618 fn into_glib(self) -> ffi::GstVideoResamplerMethod {
4619 match self {
4620 Self::Nearest => ffi::GST_VIDEO_RESAMPLER_METHOD_NEAREST,
4621 Self::Linear => ffi::GST_VIDEO_RESAMPLER_METHOD_LINEAR,
4622 Self::Cubic => ffi::GST_VIDEO_RESAMPLER_METHOD_CUBIC,
4623 Self::Sinc => ffi::GST_VIDEO_RESAMPLER_METHOD_SINC,
4624 Self::Lanczos => ffi::GST_VIDEO_RESAMPLER_METHOD_LANCZOS,
4625 Self::__Unknown(value) => value,
4626 }
4627 }
4628}
4629
4630#[doc(hidden)]
4631impl FromGlib<ffi::GstVideoResamplerMethod> for VideoResamplerMethod {
4632 #[inline]
4633 unsafe fn from_glib(value: ffi::GstVideoResamplerMethod) -> Self {
4634 skip_assert_initialized!();
4635
4636 match value {
4637 ffi::GST_VIDEO_RESAMPLER_METHOD_NEAREST => Self::Nearest,
4638 ffi::GST_VIDEO_RESAMPLER_METHOD_LINEAR => Self::Linear,
4639 ffi::GST_VIDEO_RESAMPLER_METHOD_CUBIC => Self::Cubic,
4640 ffi::GST_VIDEO_RESAMPLER_METHOD_SINC => Self::Sinc,
4641 ffi::GST_VIDEO_RESAMPLER_METHOD_LANCZOS => Self::Lanczos,
4642 value => Self::__Unknown(value),
4643 }
4644 }
4645}
4646
4647impl StaticType for VideoResamplerMethod {
4648 #[inline]
4649 #[doc(alias = "gst_video_resampler_method_get_type")]
4650 fn static_type() -> glib::Type {
4651 unsafe { from_glib(ffi::gst_video_resampler_method_get_type()) }
4652 }
4653}
4654
4655impl glib::HasParamSpec for VideoResamplerMethod {
4656 type ParamSpec = glib::ParamSpecEnum;
4657 type SetValue = Self;
4658 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4659
4660 fn param_spec_builder() -> Self::BuilderFn {
4661 Self::ParamSpec::builder_with_default
4662 }
4663}
4664
4665impl glib::value::ValueType for VideoResamplerMethod {
4666 type Type = Self;
4667}
4668
4669unsafe impl<'a> glib::value::FromValue<'a> for VideoResamplerMethod {
4670 type Checker = glib::value::GenericValueTypeChecker<Self>;
4671
4672 #[inline]
4673 unsafe fn from_value(value: &'a glib::Value) -> Self {
4674 skip_assert_initialized!();
4675 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
4676 }
4677}
4678
4679impl ToValue for VideoResamplerMethod {
4680 #[inline]
4681 fn to_value(&self) -> glib::Value {
4682 let mut value = glib::Value::for_value_type::<Self>();
4683 unsafe {
4684 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4685 }
4686 value
4687 }
4688
4689 #[inline]
4690 fn value_type(&self) -> glib::Type {
4691 Self::static_type()
4692 }
4693}
4694
4695impl From<VideoResamplerMethod> for glib::Value {
4696 #[inline]
4697 fn from(v: VideoResamplerMethod) -> Self {
4698 skip_assert_initialized!();
4699 ToValue::to_value(&v)
4700 }
4701}
4702
4703#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4705#[non_exhaustive]
4706#[doc(alias = "GstVideoTileMode")]
4707pub enum VideoTileMode {
4708 #[doc(alias = "GST_VIDEO_TILE_MODE_UNKNOWN")]
4710 Unknown,
4711 #[doc(alias = "GST_VIDEO_TILE_MODE_ZFLIPZ_2X2")]
4716 Zflipz2x2,
4717 #[cfg(feature = "v1_18")]
4719 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4720 #[doc(alias = "GST_VIDEO_TILE_MODE_LINEAR")]
4721 Linear,
4722 #[doc(hidden)]
4723 __Unknown(i32),
4724}
4725
4726#[doc(hidden)]
4727impl IntoGlib for VideoTileMode {
4728 type GlibType = ffi::GstVideoTileMode;
4729
4730 #[inline]
4731 fn into_glib(self) -> ffi::GstVideoTileMode {
4732 match self {
4733 Self::Unknown => ffi::GST_VIDEO_TILE_MODE_UNKNOWN,
4734 Self::Zflipz2x2 => ffi::GST_VIDEO_TILE_MODE_ZFLIPZ_2X2,
4735 #[cfg(feature = "v1_18")]
4736 Self::Linear => ffi::GST_VIDEO_TILE_MODE_LINEAR,
4737 Self::__Unknown(value) => value,
4738 }
4739 }
4740}
4741
4742#[doc(hidden)]
4743impl FromGlib<ffi::GstVideoTileMode> for VideoTileMode {
4744 #[inline]
4745 unsafe fn from_glib(value: ffi::GstVideoTileMode) -> Self {
4746 skip_assert_initialized!();
4747
4748 match value {
4749 ffi::GST_VIDEO_TILE_MODE_UNKNOWN => Self::Unknown,
4750 ffi::GST_VIDEO_TILE_MODE_ZFLIPZ_2X2 => Self::Zflipz2x2,
4751 #[cfg(feature = "v1_18")]
4752 ffi::GST_VIDEO_TILE_MODE_LINEAR => Self::Linear,
4753 value => Self::__Unknown(value),
4754 }
4755 }
4756}
4757
4758impl StaticType for VideoTileMode {
4759 #[inline]
4760 #[doc(alias = "gst_video_tile_mode_get_type")]
4761 fn static_type() -> glib::Type {
4762 unsafe { from_glib(ffi::gst_video_tile_mode_get_type()) }
4763 }
4764}
4765
4766impl glib::HasParamSpec for VideoTileMode {
4767 type ParamSpec = glib::ParamSpecEnum;
4768 type SetValue = Self;
4769 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4770
4771 fn param_spec_builder() -> Self::BuilderFn {
4772 Self::ParamSpec::builder_with_default
4773 }
4774}
4775
4776impl glib::value::ValueType for VideoTileMode {
4777 type Type = Self;
4778}
4779
4780unsafe impl<'a> glib::value::FromValue<'a> for VideoTileMode {
4781 type Checker = glib::value::GenericValueTypeChecker<Self>;
4782
4783 #[inline]
4784 unsafe fn from_value(value: &'a glib::Value) -> Self {
4785 skip_assert_initialized!();
4786 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
4787 }
4788}
4789
4790impl ToValue for VideoTileMode {
4791 #[inline]
4792 fn to_value(&self) -> glib::Value {
4793 let mut value = glib::Value::for_value_type::<Self>();
4794 unsafe {
4795 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4796 }
4797 value
4798 }
4799
4800 #[inline]
4801 fn value_type(&self) -> glib::Type {
4802 Self::static_type()
4803 }
4804}
4805
4806impl From<VideoTileMode> for glib::Value {
4807 #[inline]
4808 fn from(v: VideoTileMode) -> Self {
4809 skip_assert_initialized!();
4810 ToValue::to_value(&v)
4811 }
4812}
4813
4814#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4817#[non_exhaustive]
4818#[doc(alias = "GstVideoTransferFunction")]
4819pub enum VideoTransferFunction {
4820 #[doc(alias = "GST_VIDEO_TRANSFER_UNKNOWN")]
4822 Unknown,
4823 #[doc(alias = "GST_VIDEO_TRANSFER_GAMMA10")]
4825 Gamma10,
4826 #[doc(alias = "GST_VIDEO_TRANSFER_GAMMA18")]
4828 Gamma18,
4829 #[doc(alias = "GST_VIDEO_TRANSFER_GAMMA20")]
4831 Gamma20,
4832 #[doc(alias = "GST_VIDEO_TRANSFER_GAMMA22")]
4834 Gamma22,
4835 #[doc(alias = "GST_VIDEO_TRANSFER_BT709")]
4839 Bt709,
4840 #[doc(alias = "GST_VIDEO_TRANSFER_SMPTE240M")]
4843 Smpte240m,
4844 #[doc(alias = "GST_VIDEO_TRANSFER_SRGB")]
4847 Srgb,
4848 #[doc(alias = "GST_VIDEO_TRANSFER_GAMMA28")]
4850 Gamma28,
4851 #[doc(alias = "GST_VIDEO_TRANSFER_LOG100")]
4854 Log100,
4855 #[doc(alias = "GST_VIDEO_TRANSFER_LOG316")]
4858 Log316,
4859 #[doc(alias = "GST_VIDEO_TRANSFER_BT2020_12")]
4863 Bt202012,
4864 #[doc(alias = "GST_VIDEO_TRANSFER_ADOBERGB")]
4866 Adobergb,
4867 #[cfg(feature = "v1_18")]
4872 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4873 #[doc(alias = "GST_VIDEO_TRANSFER_BT2020_10")]
4874 Bt202010,
4875 #[cfg(feature = "v1_18")]
4879 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4880 #[doc(alias = "GST_VIDEO_TRANSFER_SMPTE2084")]
4881 Smpte2084,
4882 #[cfg(feature = "v1_18")]
4886 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4887 #[doc(alias = "GST_VIDEO_TRANSFER_ARIB_STD_B67")]
4888 AribStdB67,
4889 #[cfg(feature = "v1_18")]
4891 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4892 #[doc(alias = "GST_VIDEO_TRANSFER_BT601")]
4893 Bt601,
4894 #[doc(hidden)]
4895 __Unknown(i32),
4896}
4897
4898impl VideoTransferFunction {
4899 #[cfg(feature = "v1_20")]
4900 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
4901 #[doc(alias = "gst_video_transfer_function_decode")]
4902 pub fn decode(self, val: f64) -> f64 {
4903 assert_initialized_main_thread!();
4904 unsafe { ffi::gst_video_transfer_function_decode(self.into_glib(), val) }
4905 }
4906
4907 #[cfg(feature = "v1_20")]
4908 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
4909 #[doc(alias = "gst_video_transfer_function_encode")]
4910 pub fn encode(self, val: f64) -> f64 {
4911 assert_initialized_main_thread!();
4912 unsafe { ffi::gst_video_transfer_function_encode(self.into_glib(), val) }
4913 }
4914
4915 #[cfg(feature = "v1_18")]
4916 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4917 #[doc(alias = "gst_video_transfer_function_from_iso")]
4918 pub fn from_iso(value: u32) -> VideoTransferFunction {
4919 assert_initialized_main_thread!();
4920 unsafe { from_glib(ffi::gst_video_transfer_function_from_iso(value)) }
4921 }
4922
4923 #[cfg(feature = "v1_18")]
4924 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4925 #[doc(alias = "gst_video_transfer_function_is_equivalent")]
4926 pub fn is_equivalent(self, from_bpp: u32, to_func: VideoTransferFunction, to_bpp: u32) -> bool {
4927 assert_initialized_main_thread!();
4928 unsafe {
4929 from_glib(ffi::gst_video_transfer_function_is_equivalent(
4930 self.into_glib(),
4931 from_bpp,
4932 to_func.into_glib(),
4933 to_bpp,
4934 ))
4935 }
4936 }
4937
4938 #[cfg(feature = "v1_18")]
4939 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4940 #[doc(alias = "gst_video_transfer_function_to_iso")]
4941 pub fn to_iso(self) -> u32 {
4942 assert_initialized_main_thread!();
4943 unsafe { ffi::gst_video_transfer_function_to_iso(self.into_glib()) }
4944 }
4945}
4946
4947#[doc(hidden)]
4948impl IntoGlib for VideoTransferFunction {
4949 type GlibType = ffi::GstVideoTransferFunction;
4950
4951 fn into_glib(self) -> ffi::GstVideoTransferFunction {
4952 match self {
4953 Self::Unknown => ffi::GST_VIDEO_TRANSFER_UNKNOWN,
4954 Self::Gamma10 => ffi::GST_VIDEO_TRANSFER_GAMMA10,
4955 Self::Gamma18 => ffi::GST_VIDEO_TRANSFER_GAMMA18,
4956 Self::Gamma20 => ffi::GST_VIDEO_TRANSFER_GAMMA20,
4957 Self::Gamma22 => ffi::GST_VIDEO_TRANSFER_GAMMA22,
4958 Self::Bt709 => ffi::GST_VIDEO_TRANSFER_BT709,
4959 Self::Smpte240m => ffi::GST_VIDEO_TRANSFER_SMPTE240M,
4960 Self::Srgb => ffi::GST_VIDEO_TRANSFER_SRGB,
4961 Self::Gamma28 => ffi::GST_VIDEO_TRANSFER_GAMMA28,
4962 Self::Log100 => ffi::GST_VIDEO_TRANSFER_LOG100,
4963 Self::Log316 => ffi::GST_VIDEO_TRANSFER_LOG316,
4964 Self::Bt202012 => ffi::GST_VIDEO_TRANSFER_BT2020_12,
4965 Self::Adobergb => ffi::GST_VIDEO_TRANSFER_ADOBERGB,
4966 #[cfg(feature = "v1_18")]
4967 Self::Bt202010 => ffi::GST_VIDEO_TRANSFER_BT2020_10,
4968 #[cfg(feature = "v1_18")]
4969 Self::Smpte2084 => ffi::GST_VIDEO_TRANSFER_SMPTE2084,
4970 #[cfg(feature = "v1_18")]
4971 Self::AribStdB67 => ffi::GST_VIDEO_TRANSFER_ARIB_STD_B67,
4972 #[cfg(feature = "v1_18")]
4973 Self::Bt601 => ffi::GST_VIDEO_TRANSFER_BT601,
4974 Self::__Unknown(value) => value,
4975 }
4976 }
4977}
4978
4979#[doc(hidden)]
4980impl FromGlib<ffi::GstVideoTransferFunction> for VideoTransferFunction {
4981 unsafe fn from_glib(value: ffi::GstVideoTransferFunction) -> Self {
4982 skip_assert_initialized!();
4983
4984 match value {
4985 ffi::GST_VIDEO_TRANSFER_UNKNOWN => Self::Unknown,
4986 ffi::GST_VIDEO_TRANSFER_GAMMA10 => Self::Gamma10,
4987 ffi::GST_VIDEO_TRANSFER_GAMMA18 => Self::Gamma18,
4988 ffi::GST_VIDEO_TRANSFER_GAMMA20 => Self::Gamma20,
4989 ffi::GST_VIDEO_TRANSFER_GAMMA22 => Self::Gamma22,
4990 ffi::GST_VIDEO_TRANSFER_BT709 => Self::Bt709,
4991 ffi::GST_VIDEO_TRANSFER_SMPTE240M => Self::Smpte240m,
4992 ffi::GST_VIDEO_TRANSFER_SRGB => Self::Srgb,
4993 ffi::GST_VIDEO_TRANSFER_GAMMA28 => Self::Gamma28,
4994 ffi::GST_VIDEO_TRANSFER_LOG100 => Self::Log100,
4995 ffi::GST_VIDEO_TRANSFER_LOG316 => Self::Log316,
4996 ffi::GST_VIDEO_TRANSFER_BT2020_12 => Self::Bt202012,
4997 ffi::GST_VIDEO_TRANSFER_ADOBERGB => Self::Adobergb,
4998 #[cfg(feature = "v1_18")]
4999 ffi::GST_VIDEO_TRANSFER_BT2020_10 => Self::Bt202010,
5000 #[cfg(feature = "v1_18")]
5001 ffi::GST_VIDEO_TRANSFER_SMPTE2084 => Self::Smpte2084,
5002 #[cfg(feature = "v1_18")]
5003 ffi::GST_VIDEO_TRANSFER_ARIB_STD_B67 => Self::AribStdB67,
5004 #[cfg(feature = "v1_18")]
5005 ffi::GST_VIDEO_TRANSFER_BT601 => Self::Bt601,
5006 value => Self::__Unknown(value),
5007 }
5008 }
5009}
5010
5011impl StaticType for VideoTransferFunction {
5012 #[inline]
5013 #[doc(alias = "gst_video_transfer_function_get_type")]
5014 fn static_type() -> glib::Type {
5015 unsafe { from_glib(ffi::gst_video_transfer_function_get_type()) }
5016 }
5017}
5018
5019impl glib::HasParamSpec for VideoTransferFunction {
5020 type ParamSpec = glib::ParamSpecEnum;
5021 type SetValue = Self;
5022 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
5023
5024 fn param_spec_builder() -> Self::BuilderFn {
5025 Self::ParamSpec::builder_with_default
5026 }
5027}
5028
5029impl glib::value::ValueType for VideoTransferFunction {
5030 type Type = Self;
5031}
5032
5033unsafe impl<'a> glib::value::FromValue<'a> for VideoTransferFunction {
5034 type Checker = glib::value::GenericValueTypeChecker<Self>;
5035
5036 #[inline]
5037 unsafe fn from_value(value: &'a glib::Value) -> Self {
5038 skip_assert_initialized!();
5039 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
5040 }
5041}
5042
5043impl ToValue for VideoTransferFunction {
5044 #[inline]
5045 fn to_value(&self) -> glib::Value {
5046 let mut value = glib::Value::for_value_type::<Self>();
5047 unsafe {
5048 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
5049 }
5050 value
5051 }
5052
5053 #[inline]
5054 fn value_type(&self) -> glib::Type {
5055 Self::static_type()
5056 }
5057}
5058
5059impl From<VideoTransferFunction> for glib::Value {
5060 #[inline]
5061 fn from(v: VideoTransferFunction) -> Self {
5062 skip_assert_initialized!();
5063 ToValue::to_value(&v)
5064 }
5065}