1use crate::ffi;
7use glib::{prelude::*, translate::*, GStr};
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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3664#[non_exhaustive]
3665#[doc(alias = "GstVideoInterlaceMode")]
3666pub enum VideoInterlaceMode {
3667 #[doc(alias = "GST_VIDEO_INTERLACE_MODE_PROGRESSIVE")]
3669 Progressive,
3670 #[doc(alias = "GST_VIDEO_INTERLACE_MODE_INTERLEAVED")]
3673 Interleaved,
3674 #[doc(alias = "GST_VIDEO_INTERLACE_MODE_MIXED")]
3677 Mixed,
3678 #[doc(alias = "GST_VIDEO_INTERLACE_MODE_FIELDS")]
3686 Fields,
3687 #[cfg(feature = "v1_16")]
3693 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3694 #[doc(alias = "GST_VIDEO_INTERLACE_MODE_ALTERNATE")]
3695 Alternate,
3696 #[doc(hidden)]
3697 __Unknown(i32),
3698}
3699
3700impl VideoInterlaceMode {
3701 #[doc(alias = "gst_video_interlace_mode_from_string")]
3702 pub fn from_string(mode: &str) -> VideoInterlaceMode {
3703 assert_initialized_main_thread!();
3704 unsafe {
3705 from_glib(ffi::gst_video_interlace_mode_from_string(
3706 mode.to_glib_none().0,
3707 ))
3708 }
3709 }
3710
3711 pub fn to_str<'a>(self) -> &'a GStr {
3712 unsafe {
3713 GStr::from_ptr(
3714 ffi::gst_video_interlace_mode_to_string(self.into_glib())
3715 .as_ref()
3716 .expect("gst_video_interlace_mode_to_string returned NULL"),
3717 )
3718 }
3719 }
3720}
3721
3722impl std::fmt::Display for VideoInterlaceMode {
3723 #[inline]
3724 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3725 f.write_str(&self.to_str())
3726 }
3727}
3728
3729#[doc(hidden)]
3730impl IntoGlib for VideoInterlaceMode {
3731 type GlibType = ffi::GstVideoInterlaceMode;
3732
3733 #[inline]
3734 fn into_glib(self) -> ffi::GstVideoInterlaceMode {
3735 match self {
3736 Self::Progressive => ffi::GST_VIDEO_INTERLACE_MODE_PROGRESSIVE,
3737 Self::Interleaved => ffi::GST_VIDEO_INTERLACE_MODE_INTERLEAVED,
3738 Self::Mixed => ffi::GST_VIDEO_INTERLACE_MODE_MIXED,
3739 Self::Fields => ffi::GST_VIDEO_INTERLACE_MODE_FIELDS,
3740 #[cfg(feature = "v1_16")]
3741 Self::Alternate => ffi::GST_VIDEO_INTERLACE_MODE_ALTERNATE,
3742 Self::__Unknown(value) => value,
3743 }
3744 }
3745}
3746
3747#[doc(hidden)]
3748impl FromGlib<ffi::GstVideoInterlaceMode> for VideoInterlaceMode {
3749 #[inline]
3750 unsafe fn from_glib(value: ffi::GstVideoInterlaceMode) -> Self {
3751 skip_assert_initialized!();
3752
3753 match value {
3754 ffi::GST_VIDEO_INTERLACE_MODE_PROGRESSIVE => Self::Progressive,
3755 ffi::GST_VIDEO_INTERLACE_MODE_INTERLEAVED => Self::Interleaved,
3756 ffi::GST_VIDEO_INTERLACE_MODE_MIXED => Self::Mixed,
3757 ffi::GST_VIDEO_INTERLACE_MODE_FIELDS => Self::Fields,
3758 #[cfg(feature = "v1_16")]
3759 ffi::GST_VIDEO_INTERLACE_MODE_ALTERNATE => Self::Alternate,
3760 value => Self::__Unknown(value),
3761 }
3762 }
3763}
3764
3765impl StaticType for VideoInterlaceMode {
3766 #[inline]
3767 #[doc(alias = "gst_video_interlace_mode_get_type")]
3768 fn static_type() -> glib::Type {
3769 unsafe { from_glib(ffi::gst_video_interlace_mode_get_type()) }
3770 }
3771}
3772
3773impl glib::HasParamSpec for VideoInterlaceMode {
3774 type ParamSpec = glib::ParamSpecEnum;
3775 type SetValue = Self;
3776 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3777
3778 fn param_spec_builder() -> Self::BuilderFn {
3779 Self::ParamSpec::builder_with_default
3780 }
3781}
3782
3783impl glib::value::ValueType for VideoInterlaceMode {
3784 type Type = Self;
3785}
3786
3787unsafe impl<'a> glib::value::FromValue<'a> for VideoInterlaceMode {
3788 type Checker = glib::value::GenericValueTypeChecker<Self>;
3789
3790 #[inline]
3791 unsafe fn from_value(value: &'a glib::Value) -> Self {
3792 skip_assert_initialized!();
3793 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3794 }
3795}
3796
3797impl ToValue for VideoInterlaceMode {
3798 #[inline]
3799 fn to_value(&self) -> glib::Value {
3800 let mut value = glib::Value::for_value_type::<Self>();
3801 unsafe {
3802 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3803 }
3804 value
3805 }
3806
3807 #[inline]
3808 fn value_type(&self) -> glib::Type {
3809 Self::static_type()
3810 }
3811}
3812
3813impl From<VideoInterlaceMode> for glib::Value {
3814 #[inline]
3815 fn from(v: VideoInterlaceMode) -> Self {
3816 skip_assert_initialized!();
3817 ToValue::to_value(&v)
3818 }
3819}
3820
3821#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3823#[non_exhaustive]
3824#[doc(alias = "GstVideoMatrixMode")]
3825pub enum VideoMatrixMode {
3826 #[doc(alias = "GST_VIDEO_MATRIX_MODE_FULL")]
3828 Full,
3829 #[doc(alias = "GST_VIDEO_MATRIX_MODE_INPUT_ONLY")]
3832 InputOnly,
3833 #[doc(alias = "GST_VIDEO_MATRIX_MODE_OUTPUT_ONLY")]
3836 OutputOnly,
3837 #[doc(alias = "GST_VIDEO_MATRIX_MODE_NONE")]
3839 None,
3840 #[doc(hidden)]
3841 __Unknown(i32),
3842}
3843
3844#[doc(hidden)]
3845impl IntoGlib for VideoMatrixMode {
3846 type GlibType = ffi::GstVideoMatrixMode;
3847
3848 #[inline]
3849 fn into_glib(self) -> ffi::GstVideoMatrixMode {
3850 match self {
3851 Self::Full => ffi::GST_VIDEO_MATRIX_MODE_FULL,
3852 Self::InputOnly => ffi::GST_VIDEO_MATRIX_MODE_INPUT_ONLY,
3853 Self::OutputOnly => ffi::GST_VIDEO_MATRIX_MODE_OUTPUT_ONLY,
3854 Self::None => ffi::GST_VIDEO_MATRIX_MODE_NONE,
3855 Self::__Unknown(value) => value,
3856 }
3857 }
3858}
3859
3860#[doc(hidden)]
3861impl FromGlib<ffi::GstVideoMatrixMode> for VideoMatrixMode {
3862 #[inline]
3863 unsafe fn from_glib(value: ffi::GstVideoMatrixMode) -> Self {
3864 skip_assert_initialized!();
3865
3866 match value {
3867 ffi::GST_VIDEO_MATRIX_MODE_FULL => Self::Full,
3868 ffi::GST_VIDEO_MATRIX_MODE_INPUT_ONLY => Self::InputOnly,
3869 ffi::GST_VIDEO_MATRIX_MODE_OUTPUT_ONLY => Self::OutputOnly,
3870 ffi::GST_VIDEO_MATRIX_MODE_NONE => Self::None,
3871 value => Self::__Unknown(value),
3872 }
3873 }
3874}
3875
3876impl StaticType for VideoMatrixMode {
3877 #[inline]
3878 #[doc(alias = "gst_video_matrix_mode_get_type")]
3879 fn static_type() -> glib::Type {
3880 unsafe { from_glib(ffi::gst_video_matrix_mode_get_type()) }
3881 }
3882}
3883
3884impl glib::HasParamSpec for VideoMatrixMode {
3885 type ParamSpec = glib::ParamSpecEnum;
3886 type SetValue = Self;
3887 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3888
3889 fn param_spec_builder() -> Self::BuilderFn {
3890 Self::ParamSpec::builder_with_default
3891 }
3892}
3893
3894impl glib::value::ValueType for VideoMatrixMode {
3895 type Type = Self;
3896}
3897
3898unsafe impl<'a> glib::value::FromValue<'a> for VideoMatrixMode {
3899 type Checker = glib::value::GenericValueTypeChecker<Self>;
3900
3901 #[inline]
3902 unsafe fn from_value(value: &'a glib::Value) -> Self {
3903 skip_assert_initialized!();
3904 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3905 }
3906}
3907
3908impl ToValue for VideoMatrixMode {
3909 #[inline]
3910 fn to_value(&self) -> glib::Value {
3911 let mut value = glib::Value::for_value_type::<Self>();
3912 unsafe {
3913 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3914 }
3915 value
3916 }
3917
3918 #[inline]
3919 fn value_type(&self) -> glib::Type {
3920 Self::static_type()
3921 }
3922}
3923
3924impl From<VideoMatrixMode> for glib::Value {
3925 #[inline]
3926 fn from(v: VideoMatrixMode) -> Self {
3927 skip_assert_initialized!();
3928 ToValue::to_value(&v)
3929 }
3930}
3931
3932#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3942#[non_exhaustive]
3943#[doc(alias = "GstVideoMultiviewFramePacking")]
3944pub enum VideoMultiviewFramePacking {
3945 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_NONE")]
3948 None,
3949 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_MONO")]
3951 Mono,
3952 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_LEFT")]
3954 Left,
3955 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_RIGHT")]
3957 Right,
3958 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE")]
3961 SideBySide,
3962 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE_QUINCUNX")]
3967 SideBySideQuincunx,
3968 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_COLUMN_INTERLEAVED")]
3971 ColumnInterleaved,
3972 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_ROW_INTERLEAVED")]
3975 RowInterleaved,
3976 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_TOP_BOTTOM")]
3979 TopBottom,
3980 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_CHECKERBOARD")]
3984 Checkerboard,
3985 #[doc(hidden)]
3986 __Unknown(i32),
3987}
3988
3989#[doc(hidden)]
3990impl IntoGlib for VideoMultiviewFramePacking {
3991 type GlibType = ffi::GstVideoMultiviewFramePacking;
3992
3993 #[inline]
3994 fn into_glib(self) -> ffi::GstVideoMultiviewFramePacking {
3995 match self {
3996 Self::None => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_NONE,
3997 Self::Mono => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_MONO,
3998 Self::Left => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_LEFT,
3999 Self::Right => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_RIGHT,
4000 Self::SideBySide => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE,
4001 Self::SideBySideQuincunx => {
4002 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE_QUINCUNX
4003 }
4004 Self::ColumnInterleaved => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_COLUMN_INTERLEAVED,
4005 Self::RowInterleaved => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_ROW_INTERLEAVED,
4006 Self::TopBottom => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_TOP_BOTTOM,
4007 Self::Checkerboard => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_CHECKERBOARD,
4008 Self::__Unknown(value) => value,
4009 }
4010 }
4011}
4012
4013#[doc(hidden)]
4014impl FromGlib<ffi::GstVideoMultiviewFramePacking> for VideoMultiviewFramePacking {
4015 #[inline]
4016 unsafe fn from_glib(value: ffi::GstVideoMultiviewFramePacking) -> Self {
4017 skip_assert_initialized!();
4018
4019 match value {
4020 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_NONE => Self::None,
4021 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_MONO => Self::Mono,
4022 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_LEFT => Self::Left,
4023 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_RIGHT => Self::Right,
4024 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE => Self::SideBySide,
4025 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE_QUINCUNX => {
4026 Self::SideBySideQuincunx
4027 }
4028 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_COLUMN_INTERLEAVED => Self::ColumnInterleaved,
4029 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_ROW_INTERLEAVED => Self::RowInterleaved,
4030 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_TOP_BOTTOM => Self::TopBottom,
4031 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_CHECKERBOARD => Self::Checkerboard,
4032 value => Self::__Unknown(value),
4033 }
4034 }
4035}
4036
4037impl StaticType for VideoMultiviewFramePacking {
4038 #[inline]
4039 #[doc(alias = "gst_video_multiview_frame_packing_get_type")]
4040 fn static_type() -> glib::Type {
4041 unsafe { from_glib(ffi::gst_video_multiview_frame_packing_get_type()) }
4042 }
4043}
4044
4045impl glib::HasParamSpec for VideoMultiviewFramePacking {
4046 type ParamSpec = glib::ParamSpecEnum;
4047 type SetValue = Self;
4048 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4049
4050 fn param_spec_builder() -> Self::BuilderFn {
4051 Self::ParamSpec::builder_with_default
4052 }
4053}
4054
4055impl glib::value::ValueType for VideoMultiviewFramePacking {
4056 type Type = Self;
4057}
4058
4059unsafe impl<'a> glib::value::FromValue<'a> for VideoMultiviewFramePacking {
4060 type Checker = glib::value::GenericValueTypeChecker<Self>;
4061
4062 #[inline]
4063 unsafe fn from_value(value: &'a glib::Value) -> Self {
4064 skip_assert_initialized!();
4065 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4066 }
4067}
4068
4069impl ToValue for VideoMultiviewFramePacking {
4070 #[inline]
4071 fn to_value(&self) -> glib::Value {
4072 let mut value = glib::Value::for_value_type::<Self>();
4073 unsafe {
4074 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4075 }
4076 value
4077 }
4078
4079 #[inline]
4080 fn value_type(&self) -> glib::Type {
4081 Self::static_type()
4082 }
4083}
4084
4085impl From<VideoMultiviewFramePacking> for glib::Value {
4086 #[inline]
4087 fn from(v: VideoMultiviewFramePacking) -> Self {
4088 skip_assert_initialized!();
4089 ToValue::to_value(&v)
4090 }
4091}
4092
4093#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4097#[non_exhaustive]
4098#[doc(alias = "GstVideoMultiviewMode")]
4099pub enum VideoMultiviewMode {
4100 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_NONE")]
4105 None,
4106 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_MONO")]
4108 Mono,
4109 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_LEFT")]
4111 Left,
4112 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_RIGHT")]
4114 Right,
4115 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE")]
4118 SideBySide,
4119 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE_QUINCUNX")]
4124 SideBySideQuincunx,
4125 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_COLUMN_INTERLEAVED")]
4128 ColumnInterleaved,
4129 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_ROW_INTERLEAVED")]
4132 RowInterleaved,
4133 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_TOP_BOTTOM")]
4136 TopBottom,
4137 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_CHECKERBOARD")]
4141 Checkerboard,
4142 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_FRAME_BY_FRAME")]
4145 FrameByFrame,
4146 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_MULTIVIEW_FRAME_BY_FRAME")]
4152 MultiviewFrameByFrame,
4153 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_SEPARATED")]
4158 Separated,
4159 #[doc(hidden)]
4160 __Unknown(i32),
4161}
4162
4163impl VideoMultiviewMode {
4164 #[doc(alias = "gst_video_multiview_mode_from_caps_string")]
4165 pub fn from_caps_string(caps_mview_mode: &str) -> VideoMultiviewMode {
4166 assert_initialized_main_thread!();
4167 unsafe {
4168 from_glib(ffi::gst_video_multiview_mode_from_caps_string(
4169 caps_mview_mode.to_glib_none().0,
4170 ))
4171 }
4172 }
4173
4174 #[doc(alias = "gst_video_multiview_mode_to_caps_string")]
4175 pub fn to_caps_string(self) -> Option<glib::GString> {
4176 assert_initialized_main_thread!();
4177 unsafe {
4178 from_glib_none(ffi::gst_video_multiview_mode_to_caps_string(
4179 self.into_glib(),
4180 ))
4181 }
4182 }
4183}
4184
4185#[doc(hidden)]
4186impl IntoGlib for VideoMultiviewMode {
4187 type GlibType = ffi::GstVideoMultiviewMode;
4188
4189 fn into_glib(self) -> ffi::GstVideoMultiviewMode {
4190 match self {
4191 Self::None => ffi::GST_VIDEO_MULTIVIEW_MODE_NONE,
4192 Self::Mono => ffi::GST_VIDEO_MULTIVIEW_MODE_MONO,
4193 Self::Left => ffi::GST_VIDEO_MULTIVIEW_MODE_LEFT,
4194 Self::Right => ffi::GST_VIDEO_MULTIVIEW_MODE_RIGHT,
4195 Self::SideBySide => ffi::GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE,
4196 Self::SideBySideQuincunx => ffi::GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE_QUINCUNX,
4197 Self::ColumnInterleaved => ffi::GST_VIDEO_MULTIVIEW_MODE_COLUMN_INTERLEAVED,
4198 Self::RowInterleaved => ffi::GST_VIDEO_MULTIVIEW_MODE_ROW_INTERLEAVED,
4199 Self::TopBottom => ffi::GST_VIDEO_MULTIVIEW_MODE_TOP_BOTTOM,
4200 Self::Checkerboard => ffi::GST_VIDEO_MULTIVIEW_MODE_CHECKERBOARD,
4201 Self::FrameByFrame => ffi::GST_VIDEO_MULTIVIEW_MODE_FRAME_BY_FRAME,
4202 Self::MultiviewFrameByFrame => ffi::GST_VIDEO_MULTIVIEW_MODE_MULTIVIEW_FRAME_BY_FRAME,
4203 Self::Separated => ffi::GST_VIDEO_MULTIVIEW_MODE_SEPARATED,
4204 Self::__Unknown(value) => value,
4205 }
4206 }
4207}
4208
4209#[doc(hidden)]
4210impl FromGlib<ffi::GstVideoMultiviewMode> for VideoMultiviewMode {
4211 unsafe fn from_glib(value: ffi::GstVideoMultiviewMode) -> Self {
4212 skip_assert_initialized!();
4213
4214 match value {
4215 ffi::GST_VIDEO_MULTIVIEW_MODE_NONE => Self::None,
4216 ffi::GST_VIDEO_MULTIVIEW_MODE_MONO => Self::Mono,
4217 ffi::GST_VIDEO_MULTIVIEW_MODE_LEFT => Self::Left,
4218 ffi::GST_VIDEO_MULTIVIEW_MODE_RIGHT => Self::Right,
4219 ffi::GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE => Self::SideBySide,
4220 ffi::GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE_QUINCUNX => Self::SideBySideQuincunx,
4221 ffi::GST_VIDEO_MULTIVIEW_MODE_COLUMN_INTERLEAVED => Self::ColumnInterleaved,
4222 ffi::GST_VIDEO_MULTIVIEW_MODE_ROW_INTERLEAVED => Self::RowInterleaved,
4223 ffi::GST_VIDEO_MULTIVIEW_MODE_TOP_BOTTOM => Self::TopBottom,
4224 ffi::GST_VIDEO_MULTIVIEW_MODE_CHECKERBOARD => Self::Checkerboard,
4225 ffi::GST_VIDEO_MULTIVIEW_MODE_FRAME_BY_FRAME => Self::FrameByFrame,
4226 ffi::GST_VIDEO_MULTIVIEW_MODE_MULTIVIEW_FRAME_BY_FRAME => Self::MultiviewFrameByFrame,
4227 ffi::GST_VIDEO_MULTIVIEW_MODE_SEPARATED => Self::Separated,
4228 value => Self::__Unknown(value),
4229 }
4230 }
4231}
4232
4233impl StaticType for VideoMultiviewMode {
4234 #[inline]
4235 #[doc(alias = "gst_video_multiview_mode_get_type")]
4236 fn static_type() -> glib::Type {
4237 unsafe { from_glib(ffi::gst_video_multiview_mode_get_type()) }
4238 }
4239}
4240
4241impl glib::HasParamSpec for VideoMultiviewMode {
4242 type ParamSpec = glib::ParamSpecEnum;
4243 type SetValue = Self;
4244 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4245
4246 fn param_spec_builder() -> Self::BuilderFn {
4247 Self::ParamSpec::builder_with_default
4248 }
4249}
4250
4251impl glib::value::ValueType for VideoMultiviewMode {
4252 type Type = Self;
4253}
4254
4255unsafe impl<'a> glib::value::FromValue<'a> for VideoMultiviewMode {
4256 type Checker = glib::value::GenericValueTypeChecker<Self>;
4257
4258 #[inline]
4259 unsafe fn from_value(value: &'a glib::Value) -> Self {
4260 skip_assert_initialized!();
4261 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4262 }
4263}
4264
4265impl ToValue for VideoMultiviewMode {
4266 #[inline]
4267 fn to_value(&self) -> glib::Value {
4268 let mut value = glib::Value::for_value_type::<Self>();
4269 unsafe {
4270 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4271 }
4272 value
4273 }
4274
4275 #[inline]
4276 fn value_type(&self) -> glib::Type {
4277 Self::static_type()
4278 }
4279}
4280
4281impl From<VideoMultiviewMode> for glib::Value {
4282 #[inline]
4283 fn from(v: VideoMultiviewMode) -> Self {
4284 skip_assert_initialized!();
4285 ToValue::to_value(&v)
4286 }
4287}
4288
4289#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4291#[non_exhaustive]
4292#[doc(alias = "GstVideoOrientationMethod")]
4293pub enum VideoOrientationMethod {
4294 #[doc(alias = "GST_VIDEO_ORIENTATION_IDENTITY")]
4296 Identity,
4297 #[doc(alias = "GST_VIDEO_ORIENTATION_90R")]
4299 _90r,
4300 #[doc(alias = "GST_VIDEO_ORIENTATION_180")]
4302 _180,
4303 #[doc(alias = "GST_VIDEO_ORIENTATION_90L")]
4305 _90l,
4306 #[doc(alias = "GST_VIDEO_ORIENTATION_HORIZ")]
4308 Horiz,
4309 #[doc(alias = "GST_VIDEO_ORIENTATION_VERT")]
4311 Vert,
4312 #[doc(alias = "GST_VIDEO_ORIENTATION_UL_LR")]
4314 UlLr,
4315 #[doc(alias = "GST_VIDEO_ORIENTATION_UR_LL")]
4317 UrLl,
4318 #[doc(alias = "GST_VIDEO_ORIENTATION_AUTO")]
4320 Auto,
4321 #[doc(alias = "GST_VIDEO_ORIENTATION_CUSTOM")]
4323 Custom,
4324 #[doc(hidden)]
4325 __Unknown(i32),
4326}
4327
4328#[doc(hidden)]
4329impl IntoGlib for VideoOrientationMethod {
4330 type GlibType = ffi::GstVideoOrientationMethod;
4331
4332 #[inline]
4333 fn into_glib(self) -> ffi::GstVideoOrientationMethod {
4334 match self {
4335 Self::Identity => ffi::GST_VIDEO_ORIENTATION_IDENTITY,
4336 Self::_90r => ffi::GST_VIDEO_ORIENTATION_90R,
4337 Self::_180 => ffi::GST_VIDEO_ORIENTATION_180,
4338 Self::_90l => ffi::GST_VIDEO_ORIENTATION_90L,
4339 Self::Horiz => ffi::GST_VIDEO_ORIENTATION_HORIZ,
4340 Self::Vert => ffi::GST_VIDEO_ORIENTATION_VERT,
4341 Self::UlLr => ffi::GST_VIDEO_ORIENTATION_UL_LR,
4342 Self::UrLl => ffi::GST_VIDEO_ORIENTATION_UR_LL,
4343 Self::Auto => ffi::GST_VIDEO_ORIENTATION_AUTO,
4344 Self::Custom => ffi::GST_VIDEO_ORIENTATION_CUSTOM,
4345 Self::__Unknown(value) => value,
4346 }
4347 }
4348}
4349
4350#[doc(hidden)]
4351impl FromGlib<ffi::GstVideoOrientationMethod> for VideoOrientationMethod {
4352 #[inline]
4353 unsafe fn from_glib(value: ffi::GstVideoOrientationMethod) -> Self {
4354 skip_assert_initialized!();
4355
4356 match value {
4357 ffi::GST_VIDEO_ORIENTATION_IDENTITY => Self::Identity,
4358 ffi::GST_VIDEO_ORIENTATION_90R => Self::_90r,
4359 ffi::GST_VIDEO_ORIENTATION_180 => Self::_180,
4360 ffi::GST_VIDEO_ORIENTATION_90L => Self::_90l,
4361 ffi::GST_VIDEO_ORIENTATION_HORIZ => Self::Horiz,
4362 ffi::GST_VIDEO_ORIENTATION_VERT => Self::Vert,
4363 ffi::GST_VIDEO_ORIENTATION_UL_LR => Self::UlLr,
4364 ffi::GST_VIDEO_ORIENTATION_UR_LL => Self::UrLl,
4365 ffi::GST_VIDEO_ORIENTATION_AUTO => Self::Auto,
4366 ffi::GST_VIDEO_ORIENTATION_CUSTOM => Self::Custom,
4367 value => Self::__Unknown(value),
4368 }
4369 }
4370}
4371
4372impl StaticType for VideoOrientationMethod {
4373 #[inline]
4374 #[doc(alias = "gst_video_orientation_method_get_type")]
4375 fn static_type() -> glib::Type {
4376 unsafe { from_glib(ffi::gst_video_orientation_method_get_type()) }
4377 }
4378}
4379
4380impl glib::HasParamSpec for VideoOrientationMethod {
4381 type ParamSpec = glib::ParamSpecEnum;
4382 type SetValue = Self;
4383 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4384
4385 fn param_spec_builder() -> Self::BuilderFn {
4386 Self::ParamSpec::builder_with_default
4387 }
4388}
4389
4390impl glib::value::ValueType for VideoOrientationMethod {
4391 type Type = Self;
4392}
4393
4394unsafe impl<'a> glib::value::FromValue<'a> for VideoOrientationMethod {
4395 type Checker = glib::value::GenericValueTypeChecker<Self>;
4396
4397 #[inline]
4398 unsafe fn from_value(value: &'a glib::Value) -> Self {
4399 skip_assert_initialized!();
4400 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4401 }
4402}
4403
4404impl ToValue for VideoOrientationMethod {
4405 #[inline]
4406 fn to_value(&self) -> glib::Value {
4407 let mut value = glib::Value::for_value_type::<Self>();
4408 unsafe {
4409 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4410 }
4411 value
4412 }
4413
4414 #[inline]
4415 fn value_type(&self) -> glib::Type {
4416 Self::static_type()
4417 }
4418}
4419
4420impl From<VideoOrientationMethod> for glib::Value {
4421 #[inline]
4422 fn from(v: VideoOrientationMethod) -> Self {
4423 skip_assert_initialized!();
4424 ToValue::to_value(&v)
4425 }
4426}
4427
4428#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4430#[non_exhaustive]
4431#[doc(alias = "GstVideoPrimariesMode")]
4432pub enum VideoPrimariesMode {
4433 #[doc(alias = "GST_VIDEO_PRIMARIES_MODE_NONE")]
4435 None,
4436 #[doc(alias = "GST_VIDEO_PRIMARIES_MODE_MERGE_ONLY")]
4439 MergeOnly,
4440 #[doc(alias = "GST_VIDEO_PRIMARIES_MODE_FAST")]
4442 Fast,
4443 #[doc(hidden)]
4444 __Unknown(i32),
4445}
4446
4447#[doc(hidden)]
4448impl IntoGlib for VideoPrimariesMode {
4449 type GlibType = ffi::GstVideoPrimariesMode;
4450
4451 #[inline]
4452 fn into_glib(self) -> ffi::GstVideoPrimariesMode {
4453 match self {
4454 Self::None => ffi::GST_VIDEO_PRIMARIES_MODE_NONE,
4455 Self::MergeOnly => ffi::GST_VIDEO_PRIMARIES_MODE_MERGE_ONLY,
4456 Self::Fast => ffi::GST_VIDEO_PRIMARIES_MODE_FAST,
4457 Self::__Unknown(value) => value,
4458 }
4459 }
4460}
4461
4462#[doc(hidden)]
4463impl FromGlib<ffi::GstVideoPrimariesMode> for VideoPrimariesMode {
4464 #[inline]
4465 unsafe fn from_glib(value: ffi::GstVideoPrimariesMode) -> Self {
4466 skip_assert_initialized!();
4467
4468 match value {
4469 ffi::GST_VIDEO_PRIMARIES_MODE_NONE => Self::None,
4470 ffi::GST_VIDEO_PRIMARIES_MODE_MERGE_ONLY => Self::MergeOnly,
4471 ffi::GST_VIDEO_PRIMARIES_MODE_FAST => Self::Fast,
4472 value => Self::__Unknown(value),
4473 }
4474 }
4475}
4476
4477impl StaticType for VideoPrimariesMode {
4478 #[inline]
4479 #[doc(alias = "gst_video_primaries_mode_get_type")]
4480 fn static_type() -> glib::Type {
4481 unsafe { from_glib(ffi::gst_video_primaries_mode_get_type()) }
4482 }
4483}
4484
4485impl glib::HasParamSpec for VideoPrimariesMode {
4486 type ParamSpec = glib::ParamSpecEnum;
4487 type SetValue = Self;
4488 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4489
4490 fn param_spec_builder() -> Self::BuilderFn {
4491 Self::ParamSpec::builder_with_default
4492 }
4493}
4494
4495impl glib::value::ValueType for VideoPrimariesMode {
4496 type Type = Self;
4497}
4498
4499unsafe impl<'a> glib::value::FromValue<'a> for VideoPrimariesMode {
4500 type Checker = glib::value::GenericValueTypeChecker<Self>;
4501
4502 #[inline]
4503 unsafe fn from_value(value: &'a glib::Value) -> Self {
4504 skip_assert_initialized!();
4505 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4506 }
4507}
4508
4509impl ToValue for VideoPrimariesMode {
4510 #[inline]
4511 fn to_value(&self) -> glib::Value {
4512 let mut value = glib::Value::for_value_type::<Self>();
4513 unsafe {
4514 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4515 }
4516 value
4517 }
4518
4519 #[inline]
4520 fn value_type(&self) -> glib::Type {
4521 Self::static_type()
4522 }
4523}
4524
4525impl From<VideoPrimariesMode> for glib::Value {
4526 #[inline]
4527 fn from(v: VideoPrimariesMode) -> Self {
4528 skip_assert_initialized!();
4529 ToValue::to_value(&v)
4530 }
4531}
4532
4533#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4535#[non_exhaustive]
4536#[doc(alias = "GstVideoResamplerMethod")]
4537pub enum VideoResamplerMethod {
4538 #[doc(alias = "GST_VIDEO_RESAMPLER_METHOD_NEAREST")]
4541 Nearest,
4542 #[doc(alias = "GST_VIDEO_RESAMPLER_METHOD_LINEAR")]
4545 Linear,
4546 #[doc(alias = "GST_VIDEO_RESAMPLER_METHOD_CUBIC")]
4548 Cubic,
4549 #[doc(alias = "GST_VIDEO_RESAMPLER_METHOD_SINC")]
4551 Sinc,
4552 #[doc(alias = "GST_VIDEO_RESAMPLER_METHOD_LANCZOS")]
4554 Lanczos,
4555 #[doc(hidden)]
4556 __Unknown(i32),
4557}
4558
4559#[doc(hidden)]
4560impl IntoGlib for VideoResamplerMethod {
4561 type GlibType = ffi::GstVideoResamplerMethod;
4562
4563 #[inline]
4564 fn into_glib(self) -> ffi::GstVideoResamplerMethod {
4565 match self {
4566 Self::Nearest => ffi::GST_VIDEO_RESAMPLER_METHOD_NEAREST,
4567 Self::Linear => ffi::GST_VIDEO_RESAMPLER_METHOD_LINEAR,
4568 Self::Cubic => ffi::GST_VIDEO_RESAMPLER_METHOD_CUBIC,
4569 Self::Sinc => ffi::GST_VIDEO_RESAMPLER_METHOD_SINC,
4570 Self::Lanczos => ffi::GST_VIDEO_RESAMPLER_METHOD_LANCZOS,
4571 Self::__Unknown(value) => value,
4572 }
4573 }
4574}
4575
4576#[doc(hidden)]
4577impl FromGlib<ffi::GstVideoResamplerMethod> for VideoResamplerMethod {
4578 #[inline]
4579 unsafe fn from_glib(value: ffi::GstVideoResamplerMethod) -> Self {
4580 skip_assert_initialized!();
4581
4582 match value {
4583 ffi::GST_VIDEO_RESAMPLER_METHOD_NEAREST => Self::Nearest,
4584 ffi::GST_VIDEO_RESAMPLER_METHOD_LINEAR => Self::Linear,
4585 ffi::GST_VIDEO_RESAMPLER_METHOD_CUBIC => Self::Cubic,
4586 ffi::GST_VIDEO_RESAMPLER_METHOD_SINC => Self::Sinc,
4587 ffi::GST_VIDEO_RESAMPLER_METHOD_LANCZOS => Self::Lanczos,
4588 value => Self::__Unknown(value),
4589 }
4590 }
4591}
4592
4593impl StaticType for VideoResamplerMethod {
4594 #[inline]
4595 #[doc(alias = "gst_video_resampler_method_get_type")]
4596 fn static_type() -> glib::Type {
4597 unsafe { from_glib(ffi::gst_video_resampler_method_get_type()) }
4598 }
4599}
4600
4601impl glib::HasParamSpec for VideoResamplerMethod {
4602 type ParamSpec = glib::ParamSpecEnum;
4603 type SetValue = Self;
4604 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4605
4606 fn param_spec_builder() -> Self::BuilderFn {
4607 Self::ParamSpec::builder_with_default
4608 }
4609}
4610
4611impl glib::value::ValueType for VideoResamplerMethod {
4612 type Type = Self;
4613}
4614
4615unsafe impl<'a> glib::value::FromValue<'a> for VideoResamplerMethod {
4616 type Checker = glib::value::GenericValueTypeChecker<Self>;
4617
4618 #[inline]
4619 unsafe fn from_value(value: &'a glib::Value) -> Self {
4620 skip_assert_initialized!();
4621 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4622 }
4623}
4624
4625impl ToValue for VideoResamplerMethod {
4626 #[inline]
4627 fn to_value(&self) -> glib::Value {
4628 let mut value = glib::Value::for_value_type::<Self>();
4629 unsafe {
4630 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4631 }
4632 value
4633 }
4634
4635 #[inline]
4636 fn value_type(&self) -> glib::Type {
4637 Self::static_type()
4638 }
4639}
4640
4641impl From<VideoResamplerMethod> for glib::Value {
4642 #[inline]
4643 fn from(v: VideoResamplerMethod) -> Self {
4644 skip_assert_initialized!();
4645 ToValue::to_value(&v)
4646 }
4647}
4648
4649#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4651#[non_exhaustive]
4652#[doc(alias = "GstVideoTileMode")]
4653pub enum VideoTileMode {
4654 #[doc(alias = "GST_VIDEO_TILE_MODE_UNKNOWN")]
4656 Unknown,
4657 #[doc(alias = "GST_VIDEO_TILE_MODE_ZFLIPZ_2X2")]
4662 Zflipz2x2,
4663 #[cfg(feature = "v1_18")]
4665 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4666 #[doc(alias = "GST_VIDEO_TILE_MODE_LINEAR")]
4667 Linear,
4668 #[doc(hidden)]
4669 __Unknown(i32),
4670}
4671
4672#[doc(hidden)]
4673impl IntoGlib for VideoTileMode {
4674 type GlibType = ffi::GstVideoTileMode;
4675
4676 #[inline]
4677 fn into_glib(self) -> ffi::GstVideoTileMode {
4678 match self {
4679 Self::Unknown => ffi::GST_VIDEO_TILE_MODE_UNKNOWN,
4680 Self::Zflipz2x2 => ffi::GST_VIDEO_TILE_MODE_ZFLIPZ_2X2,
4681 #[cfg(feature = "v1_18")]
4682 Self::Linear => ffi::GST_VIDEO_TILE_MODE_LINEAR,
4683 Self::__Unknown(value) => value,
4684 }
4685 }
4686}
4687
4688#[doc(hidden)]
4689impl FromGlib<ffi::GstVideoTileMode> for VideoTileMode {
4690 #[inline]
4691 unsafe fn from_glib(value: ffi::GstVideoTileMode) -> Self {
4692 skip_assert_initialized!();
4693
4694 match value {
4695 ffi::GST_VIDEO_TILE_MODE_UNKNOWN => Self::Unknown,
4696 ffi::GST_VIDEO_TILE_MODE_ZFLIPZ_2X2 => Self::Zflipz2x2,
4697 #[cfg(feature = "v1_18")]
4698 ffi::GST_VIDEO_TILE_MODE_LINEAR => Self::Linear,
4699 value => Self::__Unknown(value),
4700 }
4701 }
4702}
4703
4704impl StaticType for VideoTileMode {
4705 #[inline]
4706 #[doc(alias = "gst_video_tile_mode_get_type")]
4707 fn static_type() -> glib::Type {
4708 unsafe { from_glib(ffi::gst_video_tile_mode_get_type()) }
4709 }
4710}
4711
4712impl glib::HasParamSpec for VideoTileMode {
4713 type ParamSpec = glib::ParamSpecEnum;
4714 type SetValue = Self;
4715 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4716
4717 fn param_spec_builder() -> Self::BuilderFn {
4718 Self::ParamSpec::builder_with_default
4719 }
4720}
4721
4722impl glib::value::ValueType for VideoTileMode {
4723 type Type = Self;
4724}
4725
4726unsafe impl<'a> glib::value::FromValue<'a> for VideoTileMode {
4727 type Checker = glib::value::GenericValueTypeChecker<Self>;
4728
4729 #[inline]
4730 unsafe fn from_value(value: &'a glib::Value) -> Self {
4731 skip_assert_initialized!();
4732 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4733 }
4734}
4735
4736impl ToValue for VideoTileMode {
4737 #[inline]
4738 fn to_value(&self) -> glib::Value {
4739 let mut value = glib::Value::for_value_type::<Self>();
4740 unsafe {
4741 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4742 }
4743 value
4744 }
4745
4746 #[inline]
4747 fn value_type(&self) -> glib::Type {
4748 Self::static_type()
4749 }
4750}
4751
4752impl From<VideoTileMode> for glib::Value {
4753 #[inline]
4754 fn from(v: VideoTileMode) -> Self {
4755 skip_assert_initialized!();
4756 ToValue::to_value(&v)
4757 }
4758}
4759
4760#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4763#[non_exhaustive]
4764#[doc(alias = "GstVideoTransferFunction")]
4765pub enum VideoTransferFunction {
4766 #[doc(alias = "GST_VIDEO_TRANSFER_UNKNOWN")]
4768 Unknown,
4769 #[doc(alias = "GST_VIDEO_TRANSFER_GAMMA10")]
4771 Gamma10,
4772 #[doc(alias = "GST_VIDEO_TRANSFER_GAMMA18")]
4774 Gamma18,
4775 #[doc(alias = "GST_VIDEO_TRANSFER_GAMMA20")]
4777 Gamma20,
4778 #[doc(alias = "GST_VIDEO_TRANSFER_GAMMA22")]
4780 Gamma22,
4781 #[doc(alias = "GST_VIDEO_TRANSFER_BT709")]
4785 Bt709,
4786 #[doc(alias = "GST_VIDEO_TRANSFER_SMPTE240M")]
4789 Smpte240m,
4790 #[doc(alias = "GST_VIDEO_TRANSFER_SRGB")]
4793 Srgb,
4794 #[doc(alias = "GST_VIDEO_TRANSFER_GAMMA28")]
4796 Gamma28,
4797 #[doc(alias = "GST_VIDEO_TRANSFER_LOG100")]
4800 Log100,
4801 #[doc(alias = "GST_VIDEO_TRANSFER_LOG316")]
4804 Log316,
4805 #[doc(alias = "GST_VIDEO_TRANSFER_BT2020_12")]
4809 Bt202012,
4810 #[doc(alias = "GST_VIDEO_TRANSFER_ADOBERGB")]
4812 Adobergb,
4813 #[cfg(feature = "v1_18")]
4818 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4819 #[doc(alias = "GST_VIDEO_TRANSFER_BT2020_10")]
4820 Bt202010,
4821 #[cfg(feature = "v1_18")]
4825 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4826 #[doc(alias = "GST_VIDEO_TRANSFER_SMPTE2084")]
4827 Smpte2084,
4828 #[cfg(feature = "v1_18")]
4832 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4833 #[doc(alias = "GST_VIDEO_TRANSFER_ARIB_STD_B67")]
4834 AribStdB67,
4835 #[cfg(feature = "v1_18")]
4837 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4838 #[doc(alias = "GST_VIDEO_TRANSFER_BT601")]
4839 Bt601,
4840 #[doc(hidden)]
4841 __Unknown(i32),
4842}
4843
4844impl VideoTransferFunction {
4845 #[cfg(feature = "v1_20")]
4846 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
4847 #[doc(alias = "gst_video_transfer_function_decode")]
4848 pub fn decode(self, val: f64) -> f64 {
4849 assert_initialized_main_thread!();
4850 unsafe { ffi::gst_video_transfer_function_decode(self.into_glib(), val) }
4851 }
4852
4853 #[cfg(feature = "v1_20")]
4854 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
4855 #[doc(alias = "gst_video_transfer_function_encode")]
4856 pub fn encode(self, val: f64) -> f64 {
4857 assert_initialized_main_thread!();
4858 unsafe { ffi::gst_video_transfer_function_encode(self.into_glib(), val) }
4859 }
4860
4861 #[cfg(feature = "v1_18")]
4862 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4863 #[doc(alias = "gst_video_transfer_function_from_iso")]
4864 pub fn from_iso(value: u32) -> VideoTransferFunction {
4865 assert_initialized_main_thread!();
4866 unsafe { from_glib(ffi::gst_video_transfer_function_from_iso(value)) }
4867 }
4868
4869 #[cfg(feature = "v1_18")]
4870 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4871 #[doc(alias = "gst_video_transfer_function_is_equivalent")]
4872 pub fn is_equivalent(self, from_bpp: u32, to_func: VideoTransferFunction, to_bpp: u32) -> bool {
4873 assert_initialized_main_thread!();
4874 unsafe {
4875 from_glib(ffi::gst_video_transfer_function_is_equivalent(
4876 self.into_glib(),
4877 from_bpp,
4878 to_func.into_glib(),
4879 to_bpp,
4880 ))
4881 }
4882 }
4883
4884 #[cfg(feature = "v1_18")]
4885 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4886 #[doc(alias = "gst_video_transfer_function_to_iso")]
4887 pub fn to_iso(self) -> u32 {
4888 assert_initialized_main_thread!();
4889 unsafe { ffi::gst_video_transfer_function_to_iso(self.into_glib()) }
4890 }
4891}
4892
4893#[doc(hidden)]
4894impl IntoGlib for VideoTransferFunction {
4895 type GlibType = ffi::GstVideoTransferFunction;
4896
4897 fn into_glib(self) -> ffi::GstVideoTransferFunction {
4898 match self {
4899 Self::Unknown => ffi::GST_VIDEO_TRANSFER_UNKNOWN,
4900 Self::Gamma10 => ffi::GST_VIDEO_TRANSFER_GAMMA10,
4901 Self::Gamma18 => ffi::GST_VIDEO_TRANSFER_GAMMA18,
4902 Self::Gamma20 => ffi::GST_VIDEO_TRANSFER_GAMMA20,
4903 Self::Gamma22 => ffi::GST_VIDEO_TRANSFER_GAMMA22,
4904 Self::Bt709 => ffi::GST_VIDEO_TRANSFER_BT709,
4905 Self::Smpte240m => ffi::GST_VIDEO_TRANSFER_SMPTE240M,
4906 Self::Srgb => ffi::GST_VIDEO_TRANSFER_SRGB,
4907 Self::Gamma28 => ffi::GST_VIDEO_TRANSFER_GAMMA28,
4908 Self::Log100 => ffi::GST_VIDEO_TRANSFER_LOG100,
4909 Self::Log316 => ffi::GST_VIDEO_TRANSFER_LOG316,
4910 Self::Bt202012 => ffi::GST_VIDEO_TRANSFER_BT2020_12,
4911 Self::Adobergb => ffi::GST_VIDEO_TRANSFER_ADOBERGB,
4912 #[cfg(feature = "v1_18")]
4913 Self::Bt202010 => ffi::GST_VIDEO_TRANSFER_BT2020_10,
4914 #[cfg(feature = "v1_18")]
4915 Self::Smpte2084 => ffi::GST_VIDEO_TRANSFER_SMPTE2084,
4916 #[cfg(feature = "v1_18")]
4917 Self::AribStdB67 => ffi::GST_VIDEO_TRANSFER_ARIB_STD_B67,
4918 #[cfg(feature = "v1_18")]
4919 Self::Bt601 => ffi::GST_VIDEO_TRANSFER_BT601,
4920 Self::__Unknown(value) => value,
4921 }
4922 }
4923}
4924
4925#[doc(hidden)]
4926impl FromGlib<ffi::GstVideoTransferFunction> for VideoTransferFunction {
4927 unsafe fn from_glib(value: ffi::GstVideoTransferFunction) -> Self {
4928 skip_assert_initialized!();
4929
4930 match value {
4931 ffi::GST_VIDEO_TRANSFER_UNKNOWN => Self::Unknown,
4932 ffi::GST_VIDEO_TRANSFER_GAMMA10 => Self::Gamma10,
4933 ffi::GST_VIDEO_TRANSFER_GAMMA18 => Self::Gamma18,
4934 ffi::GST_VIDEO_TRANSFER_GAMMA20 => Self::Gamma20,
4935 ffi::GST_VIDEO_TRANSFER_GAMMA22 => Self::Gamma22,
4936 ffi::GST_VIDEO_TRANSFER_BT709 => Self::Bt709,
4937 ffi::GST_VIDEO_TRANSFER_SMPTE240M => Self::Smpte240m,
4938 ffi::GST_VIDEO_TRANSFER_SRGB => Self::Srgb,
4939 ffi::GST_VIDEO_TRANSFER_GAMMA28 => Self::Gamma28,
4940 ffi::GST_VIDEO_TRANSFER_LOG100 => Self::Log100,
4941 ffi::GST_VIDEO_TRANSFER_LOG316 => Self::Log316,
4942 ffi::GST_VIDEO_TRANSFER_BT2020_12 => Self::Bt202012,
4943 ffi::GST_VIDEO_TRANSFER_ADOBERGB => Self::Adobergb,
4944 #[cfg(feature = "v1_18")]
4945 ffi::GST_VIDEO_TRANSFER_BT2020_10 => Self::Bt202010,
4946 #[cfg(feature = "v1_18")]
4947 ffi::GST_VIDEO_TRANSFER_SMPTE2084 => Self::Smpte2084,
4948 #[cfg(feature = "v1_18")]
4949 ffi::GST_VIDEO_TRANSFER_ARIB_STD_B67 => Self::AribStdB67,
4950 #[cfg(feature = "v1_18")]
4951 ffi::GST_VIDEO_TRANSFER_BT601 => Self::Bt601,
4952 value => Self::__Unknown(value),
4953 }
4954 }
4955}
4956
4957impl StaticType for VideoTransferFunction {
4958 #[inline]
4959 #[doc(alias = "gst_video_transfer_function_get_type")]
4960 fn static_type() -> glib::Type {
4961 unsafe { from_glib(ffi::gst_video_transfer_function_get_type()) }
4962 }
4963}
4964
4965impl glib::HasParamSpec for VideoTransferFunction {
4966 type ParamSpec = glib::ParamSpecEnum;
4967 type SetValue = Self;
4968 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4969
4970 fn param_spec_builder() -> Self::BuilderFn {
4971 Self::ParamSpec::builder_with_default
4972 }
4973}
4974
4975impl glib::value::ValueType for VideoTransferFunction {
4976 type Type = Self;
4977}
4978
4979unsafe impl<'a> glib::value::FromValue<'a> for VideoTransferFunction {
4980 type Checker = glib::value::GenericValueTypeChecker<Self>;
4981
4982 #[inline]
4983 unsafe fn from_value(value: &'a glib::Value) -> Self {
4984 skip_assert_initialized!();
4985 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4986 }
4987}
4988
4989impl ToValue for VideoTransferFunction {
4990 #[inline]
4991 fn to_value(&self) -> glib::Value {
4992 let mut value = glib::Value::for_value_type::<Self>();
4993 unsafe {
4994 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4995 }
4996 value
4997 }
4998
4999 #[inline]
5000 fn value_type(&self) -> glib::Type {
5001 Self::static_type()
5002 }
5003}
5004
5005impl From<VideoTransferFunction> for glib::Value {
5006 #[inline]
5007 fn from(v: VideoTransferFunction) -> Self {
5008 skip_assert_initialized!();
5009 ToValue::to_value(&v)
5010 }
5011}