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 #[doc(hidden)]
3027 __Unknown(i32),
3028}
3029
3030impl VideoFormat {
3031 #[doc(alias = "gst_video_format_from_fourcc")]
3032 pub fn from_fourcc(fourcc: u32) -> VideoFormat {
3033 assert_initialized_main_thread!();
3034 unsafe { from_glib(ffi::gst_video_format_from_fourcc(fourcc)) }
3035 }
3036
3037 #[doc(alias = "gst_video_format_from_string")]
3038 pub fn from_string(format: &str) -> VideoFormat {
3039 assert_initialized_main_thread!();
3040 unsafe { from_glib(ffi::gst_video_format_from_string(format.to_glib_none().0)) }
3041 }
3042
3043 #[doc(alias = "gst_video_format_to_fourcc")]
3050 pub fn to_fourcc(self) -> u32 {
3051 assert_initialized_main_thread!();
3052 unsafe { ffi::gst_video_format_to_fourcc(self.into_glib()) }
3053 }
3054}
3055
3056impl std::fmt::Display for VideoFormat {
3057 #[inline]
3058 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3059 f.write_str(&self.to_str())
3060 }
3061}
3062
3063#[doc(hidden)]
3064impl IntoGlib for VideoFormat {
3065 type GlibType = ffi::GstVideoFormat;
3066
3067 fn into_glib(self) -> ffi::GstVideoFormat {
3068 match self {
3069 Self::Unknown => ffi::GST_VIDEO_FORMAT_UNKNOWN,
3070 Self::Encoded => ffi::GST_VIDEO_FORMAT_ENCODED,
3071 Self::I420 => ffi::GST_VIDEO_FORMAT_I420,
3072 Self::Yv12 => ffi::GST_VIDEO_FORMAT_YV12,
3073 Self::Yuy2 => ffi::GST_VIDEO_FORMAT_YUY2,
3074 Self::Uyvy => ffi::GST_VIDEO_FORMAT_UYVY,
3075 Self::Ayuv => ffi::GST_VIDEO_FORMAT_AYUV,
3076 Self::Rgbx => ffi::GST_VIDEO_FORMAT_RGBx,
3077 Self::Bgrx => ffi::GST_VIDEO_FORMAT_BGRx,
3078 Self::Xrgb => ffi::GST_VIDEO_FORMAT_xRGB,
3079 Self::Xbgr => ffi::GST_VIDEO_FORMAT_xBGR,
3080 Self::Rgba => ffi::GST_VIDEO_FORMAT_RGBA,
3081 Self::Bgra => ffi::GST_VIDEO_FORMAT_BGRA,
3082 Self::Argb => ffi::GST_VIDEO_FORMAT_ARGB,
3083 Self::Abgr => ffi::GST_VIDEO_FORMAT_ABGR,
3084 Self::Rgb => ffi::GST_VIDEO_FORMAT_RGB,
3085 Self::Bgr => ffi::GST_VIDEO_FORMAT_BGR,
3086 Self::Y41b => ffi::GST_VIDEO_FORMAT_Y41B,
3087 Self::Y42b => ffi::GST_VIDEO_FORMAT_Y42B,
3088 Self::Yvyu => ffi::GST_VIDEO_FORMAT_YVYU,
3089 Self::Y444 => ffi::GST_VIDEO_FORMAT_Y444,
3090 Self::V210 => ffi::GST_VIDEO_FORMAT_v210,
3091 Self::V216 => ffi::GST_VIDEO_FORMAT_v216,
3092 Self::Nv12 => ffi::GST_VIDEO_FORMAT_NV12,
3093 Self::Nv21 => ffi::GST_VIDEO_FORMAT_NV21,
3094 Self::Gray8 => ffi::GST_VIDEO_FORMAT_GRAY8,
3095 Self::Gray16Be => ffi::GST_VIDEO_FORMAT_GRAY16_BE,
3096 Self::Gray16Le => ffi::GST_VIDEO_FORMAT_GRAY16_LE,
3097 Self::V308 => ffi::GST_VIDEO_FORMAT_v308,
3098 Self::Rgb16 => ffi::GST_VIDEO_FORMAT_RGB16,
3099 Self::Bgr16 => ffi::GST_VIDEO_FORMAT_BGR16,
3100 Self::Rgb15 => ffi::GST_VIDEO_FORMAT_RGB15,
3101 Self::Bgr15 => ffi::GST_VIDEO_FORMAT_BGR15,
3102 Self::Uyvp => ffi::GST_VIDEO_FORMAT_UYVP,
3103 Self::A420 => ffi::GST_VIDEO_FORMAT_A420,
3104 Self::Rgb8p => ffi::GST_VIDEO_FORMAT_RGB8P,
3105 Self::Yuv9 => ffi::GST_VIDEO_FORMAT_YUV9,
3106 Self::Yvu9 => ffi::GST_VIDEO_FORMAT_YVU9,
3107 Self::Iyu1 => ffi::GST_VIDEO_FORMAT_IYU1,
3108 Self::Argb64 => ffi::GST_VIDEO_FORMAT_ARGB64,
3109 Self::Ayuv64 => ffi::GST_VIDEO_FORMAT_AYUV64,
3110 Self::R210 => ffi::GST_VIDEO_FORMAT_r210,
3111 Self::I42010be => ffi::GST_VIDEO_FORMAT_I420_10BE,
3112 Self::I42010le => ffi::GST_VIDEO_FORMAT_I420_10LE,
3113 Self::I42210be => ffi::GST_VIDEO_FORMAT_I422_10BE,
3114 Self::I42210le => ffi::GST_VIDEO_FORMAT_I422_10LE,
3115 Self::Y44410be => ffi::GST_VIDEO_FORMAT_Y444_10BE,
3116 Self::Y44410le => ffi::GST_VIDEO_FORMAT_Y444_10LE,
3117 Self::Gbr => ffi::GST_VIDEO_FORMAT_GBR,
3118 Self::Gbr10be => ffi::GST_VIDEO_FORMAT_GBR_10BE,
3119 Self::Gbr10le => ffi::GST_VIDEO_FORMAT_GBR_10LE,
3120 Self::Nv16 => ffi::GST_VIDEO_FORMAT_NV16,
3121 Self::Nv24 => ffi::GST_VIDEO_FORMAT_NV24,
3122 Self::Nv1264z32 => ffi::GST_VIDEO_FORMAT_NV12_64Z32,
3123 Self::A42010be => ffi::GST_VIDEO_FORMAT_A420_10BE,
3124 Self::A42010le => ffi::GST_VIDEO_FORMAT_A420_10LE,
3125 Self::A42210be => ffi::GST_VIDEO_FORMAT_A422_10BE,
3126 Self::A42210le => ffi::GST_VIDEO_FORMAT_A422_10LE,
3127 Self::A44410be => ffi::GST_VIDEO_FORMAT_A444_10BE,
3128 Self::A44410le => ffi::GST_VIDEO_FORMAT_A444_10LE,
3129 Self::Nv61 => ffi::GST_VIDEO_FORMAT_NV61,
3130 Self::P01010be => ffi::GST_VIDEO_FORMAT_P010_10BE,
3131 Self::P01010le => ffi::GST_VIDEO_FORMAT_P010_10LE,
3132 Self::Iyu2 => ffi::GST_VIDEO_FORMAT_IYU2,
3133 Self::Vyuy => ffi::GST_VIDEO_FORMAT_VYUY,
3134 Self::Gbra => ffi::GST_VIDEO_FORMAT_GBRA,
3135 Self::Gbra10be => ffi::GST_VIDEO_FORMAT_GBRA_10BE,
3136 Self::Gbra10le => ffi::GST_VIDEO_FORMAT_GBRA_10LE,
3137 Self::Gbr12be => ffi::GST_VIDEO_FORMAT_GBR_12BE,
3138 Self::Gbr12le => ffi::GST_VIDEO_FORMAT_GBR_12LE,
3139 Self::Gbra12be => ffi::GST_VIDEO_FORMAT_GBRA_12BE,
3140 Self::Gbra12le => ffi::GST_VIDEO_FORMAT_GBRA_12LE,
3141 Self::I42012be => ffi::GST_VIDEO_FORMAT_I420_12BE,
3142 Self::I42012le => ffi::GST_VIDEO_FORMAT_I420_12LE,
3143 Self::I42212be => ffi::GST_VIDEO_FORMAT_I422_12BE,
3144 Self::I42212le => ffi::GST_VIDEO_FORMAT_I422_12LE,
3145 Self::Y44412be => ffi::GST_VIDEO_FORMAT_Y444_12BE,
3146 Self::Y44412le => ffi::GST_VIDEO_FORMAT_Y444_12LE,
3147 Self::Gray10Le32 => ffi::GST_VIDEO_FORMAT_GRAY10_LE32,
3148 Self::Nv1210le32 => ffi::GST_VIDEO_FORMAT_NV12_10LE32,
3149 Self::Nv1610le32 => ffi::GST_VIDEO_FORMAT_NV16_10LE32,
3150 #[cfg(feature = "v1_16")]
3151 Self::Nv1210le40 => ffi::GST_VIDEO_FORMAT_NV12_10LE40,
3152 #[cfg(feature = "v1_16")]
3153 Self::Y210 => ffi::GST_VIDEO_FORMAT_Y210,
3154 #[cfg(feature = "v1_16")]
3155 Self::Y410 => ffi::GST_VIDEO_FORMAT_Y410,
3156 #[cfg(feature = "v1_16")]
3157 Self::Vuya => ffi::GST_VIDEO_FORMAT_VUYA,
3158 #[cfg(feature = "v1_16")]
3159 Self::Bgr10a2Le => ffi::GST_VIDEO_FORMAT_BGR10A2_LE,
3160 #[cfg(feature = "v1_18")]
3161 Self::Rgb10a2Le => ffi::GST_VIDEO_FORMAT_RGB10A2_LE,
3162 #[cfg(feature = "v1_18")]
3163 Self::Y44416be => ffi::GST_VIDEO_FORMAT_Y444_16BE,
3164 #[cfg(feature = "v1_18")]
3165 Self::Y44416le => ffi::GST_VIDEO_FORMAT_Y444_16LE,
3166 #[cfg(feature = "v1_18")]
3167 Self::P016Be => ffi::GST_VIDEO_FORMAT_P016_BE,
3168 #[cfg(feature = "v1_18")]
3169 Self::P016Le => ffi::GST_VIDEO_FORMAT_P016_LE,
3170 #[cfg(feature = "v1_18")]
3171 Self::P012Be => ffi::GST_VIDEO_FORMAT_P012_BE,
3172 #[cfg(feature = "v1_18")]
3173 Self::P012Le => ffi::GST_VIDEO_FORMAT_P012_LE,
3174 #[cfg(feature = "v1_18")]
3175 Self::Y212Be => ffi::GST_VIDEO_FORMAT_Y212_BE,
3176 #[cfg(feature = "v1_18")]
3177 Self::Y212Le => ffi::GST_VIDEO_FORMAT_Y212_LE,
3178 #[cfg(feature = "v1_18")]
3179 Self::Y412Be => ffi::GST_VIDEO_FORMAT_Y412_BE,
3180 #[cfg(feature = "v1_18")]
3181 Self::Y412Le => ffi::GST_VIDEO_FORMAT_Y412_LE,
3182 #[cfg(feature = "v1_18")]
3183 Self::Nv124l4 => ffi::GST_VIDEO_FORMAT_NV12_4L4,
3184 #[cfg(feature = "v1_18")]
3185 Self::Nv1232l32 => ffi::GST_VIDEO_FORMAT_NV12_32L32,
3186 #[cfg(feature = "v1_20")]
3187 Self::Rgbp => ffi::GST_VIDEO_FORMAT_RGBP,
3188 #[cfg(feature = "v1_20")]
3189 Self::Bgrp => ffi::GST_VIDEO_FORMAT_BGRP,
3190 #[cfg(feature = "v1_20")]
3191 Self::Av12 => ffi::GST_VIDEO_FORMAT_AV12,
3192 #[cfg(feature = "v1_20")]
3193 Self::Argb64Le => ffi::GST_VIDEO_FORMAT_ARGB64_LE,
3194 #[cfg(feature = "v1_20")]
3195 Self::Argb64Be => ffi::GST_VIDEO_FORMAT_ARGB64_BE,
3196 #[cfg(feature = "v1_20")]
3197 Self::Rgba64Le => ffi::GST_VIDEO_FORMAT_RGBA64_LE,
3198 #[cfg(feature = "v1_20")]
3199 Self::Rgba64Be => ffi::GST_VIDEO_FORMAT_RGBA64_BE,
3200 #[cfg(feature = "v1_20")]
3201 Self::Bgra64Le => ffi::GST_VIDEO_FORMAT_BGRA64_LE,
3202 #[cfg(feature = "v1_20")]
3203 Self::Bgra64Be => ffi::GST_VIDEO_FORMAT_BGRA64_BE,
3204 #[cfg(feature = "v1_20")]
3205 Self::Abgr64Le => ffi::GST_VIDEO_FORMAT_ABGR64_LE,
3206 #[cfg(feature = "v1_20")]
3207 Self::Abgr64Be => ffi::GST_VIDEO_FORMAT_ABGR64_BE,
3208 #[cfg(feature = "v1_22")]
3209 Self::Nv1216l32s => ffi::GST_VIDEO_FORMAT_NV12_16L32S,
3210 #[cfg(feature = "v1_22")]
3211 Self::Nv128l128 => ffi::GST_VIDEO_FORMAT_NV12_8L128,
3212 #[cfg(feature = "v1_22")]
3213 Self::Nv1210be8l128 => ffi::GST_VIDEO_FORMAT_NV12_10BE_8L128,
3214 #[cfg(feature = "v1_24")]
3215 Self::Nv1210le404l4 => ffi::GST_VIDEO_FORMAT_NV12_10LE40_4L4,
3216 #[cfg(feature = "v1_24")]
3217 Self::DmaDrm => ffi::GST_VIDEO_FORMAT_DMA_DRM,
3218 #[cfg(feature = "v1_24")]
3219 Self::Mt2110t => ffi::GST_VIDEO_FORMAT_MT2110T,
3220 #[cfg(feature = "v1_24")]
3221 Self::Mt2110r => ffi::GST_VIDEO_FORMAT_MT2110R,
3222 #[cfg(feature = "v1_24")]
3223 Self::A422 => ffi::GST_VIDEO_FORMAT_A422,
3224 #[cfg(feature = "v1_24")]
3225 Self::A444 => ffi::GST_VIDEO_FORMAT_A444,
3226 #[cfg(feature = "v1_24")]
3227 Self::A44412le => ffi::GST_VIDEO_FORMAT_A444_12LE,
3228 #[cfg(feature = "v1_24")]
3229 Self::A44412be => ffi::GST_VIDEO_FORMAT_A444_12BE,
3230 #[cfg(feature = "v1_24")]
3231 Self::A42212le => ffi::GST_VIDEO_FORMAT_A422_12LE,
3232 #[cfg(feature = "v1_24")]
3233 Self::A42212be => ffi::GST_VIDEO_FORMAT_A422_12BE,
3234 #[cfg(feature = "v1_24")]
3235 Self::A42012le => ffi::GST_VIDEO_FORMAT_A420_12LE,
3236 #[cfg(feature = "v1_24")]
3237 Self::A42012be => ffi::GST_VIDEO_FORMAT_A420_12BE,
3238 #[cfg(feature = "v1_24")]
3239 Self::A44416le => ffi::GST_VIDEO_FORMAT_A444_16LE,
3240 #[cfg(feature = "v1_24")]
3241 Self::A44416be => ffi::GST_VIDEO_FORMAT_A444_16BE,
3242 #[cfg(feature = "v1_24")]
3243 Self::A42216le => ffi::GST_VIDEO_FORMAT_A422_16LE,
3244 #[cfg(feature = "v1_24")]
3245 Self::A42216be => ffi::GST_VIDEO_FORMAT_A422_16BE,
3246 #[cfg(feature = "v1_24")]
3247 Self::A42016le => ffi::GST_VIDEO_FORMAT_A420_16LE,
3248 #[cfg(feature = "v1_24")]
3249 Self::A42016be => ffi::GST_VIDEO_FORMAT_A420_16BE,
3250 #[cfg(feature = "v1_24")]
3251 Self::Gbr16le => ffi::GST_VIDEO_FORMAT_GBR_16LE,
3252 #[cfg(feature = "v1_24")]
3253 Self::Gbr16be => ffi::GST_VIDEO_FORMAT_GBR_16BE,
3254 #[cfg(feature = "v1_24")]
3255 Self::Rbga => ffi::GST_VIDEO_FORMAT_RBGA,
3256 #[cfg(feature = "v1_26")]
3257 Self::Y216Le => ffi::GST_VIDEO_FORMAT_Y216_LE,
3258 #[cfg(feature = "v1_26")]
3259 Self::Y216Be => ffi::GST_VIDEO_FORMAT_Y216_BE,
3260 #[cfg(feature = "v1_26")]
3261 Self::Y416Le => ffi::GST_VIDEO_FORMAT_Y416_LE,
3262 #[cfg(feature = "v1_26")]
3263 Self::Y416Be => ffi::GST_VIDEO_FORMAT_Y416_BE,
3264 #[cfg(feature = "v1_26")]
3265 Self::Gray10Le16 => ffi::GST_VIDEO_FORMAT_GRAY10_LE16,
3266 Self::__Unknown(value) => value,
3267 }
3268 }
3269}
3270
3271#[doc(hidden)]
3272impl FromGlib<ffi::GstVideoFormat> for VideoFormat {
3273 unsafe fn from_glib(value: ffi::GstVideoFormat) -> Self {
3274 skip_assert_initialized!();
3275
3276 match value {
3277 ffi::GST_VIDEO_FORMAT_UNKNOWN => Self::Unknown,
3278 ffi::GST_VIDEO_FORMAT_ENCODED => Self::Encoded,
3279 ffi::GST_VIDEO_FORMAT_I420 => Self::I420,
3280 ffi::GST_VIDEO_FORMAT_YV12 => Self::Yv12,
3281 ffi::GST_VIDEO_FORMAT_YUY2 => Self::Yuy2,
3282 ffi::GST_VIDEO_FORMAT_UYVY => Self::Uyvy,
3283 ffi::GST_VIDEO_FORMAT_AYUV => Self::Ayuv,
3284 ffi::GST_VIDEO_FORMAT_RGBx => Self::Rgbx,
3285 ffi::GST_VIDEO_FORMAT_BGRx => Self::Bgrx,
3286 ffi::GST_VIDEO_FORMAT_xRGB => Self::Xrgb,
3287 ffi::GST_VIDEO_FORMAT_xBGR => Self::Xbgr,
3288 ffi::GST_VIDEO_FORMAT_RGBA => Self::Rgba,
3289 ffi::GST_VIDEO_FORMAT_BGRA => Self::Bgra,
3290 ffi::GST_VIDEO_FORMAT_ARGB => Self::Argb,
3291 ffi::GST_VIDEO_FORMAT_ABGR => Self::Abgr,
3292 ffi::GST_VIDEO_FORMAT_RGB => Self::Rgb,
3293 ffi::GST_VIDEO_FORMAT_BGR => Self::Bgr,
3294 ffi::GST_VIDEO_FORMAT_Y41B => Self::Y41b,
3295 ffi::GST_VIDEO_FORMAT_Y42B => Self::Y42b,
3296 ffi::GST_VIDEO_FORMAT_YVYU => Self::Yvyu,
3297 ffi::GST_VIDEO_FORMAT_Y444 => Self::Y444,
3298 ffi::GST_VIDEO_FORMAT_v210 => Self::V210,
3299 ffi::GST_VIDEO_FORMAT_v216 => Self::V216,
3300 ffi::GST_VIDEO_FORMAT_NV12 => Self::Nv12,
3301 ffi::GST_VIDEO_FORMAT_NV21 => Self::Nv21,
3302 ffi::GST_VIDEO_FORMAT_GRAY8 => Self::Gray8,
3303 ffi::GST_VIDEO_FORMAT_GRAY16_BE => Self::Gray16Be,
3304 ffi::GST_VIDEO_FORMAT_GRAY16_LE => Self::Gray16Le,
3305 ffi::GST_VIDEO_FORMAT_v308 => Self::V308,
3306 ffi::GST_VIDEO_FORMAT_RGB16 => Self::Rgb16,
3307 ffi::GST_VIDEO_FORMAT_BGR16 => Self::Bgr16,
3308 ffi::GST_VIDEO_FORMAT_RGB15 => Self::Rgb15,
3309 ffi::GST_VIDEO_FORMAT_BGR15 => Self::Bgr15,
3310 ffi::GST_VIDEO_FORMAT_UYVP => Self::Uyvp,
3311 ffi::GST_VIDEO_FORMAT_A420 => Self::A420,
3312 ffi::GST_VIDEO_FORMAT_RGB8P => Self::Rgb8p,
3313 ffi::GST_VIDEO_FORMAT_YUV9 => Self::Yuv9,
3314 ffi::GST_VIDEO_FORMAT_YVU9 => Self::Yvu9,
3315 ffi::GST_VIDEO_FORMAT_IYU1 => Self::Iyu1,
3316 ffi::GST_VIDEO_FORMAT_ARGB64 => Self::Argb64,
3317 ffi::GST_VIDEO_FORMAT_AYUV64 => Self::Ayuv64,
3318 ffi::GST_VIDEO_FORMAT_r210 => Self::R210,
3319 ffi::GST_VIDEO_FORMAT_I420_10BE => Self::I42010be,
3320 ffi::GST_VIDEO_FORMAT_I420_10LE => Self::I42010le,
3321 ffi::GST_VIDEO_FORMAT_I422_10BE => Self::I42210be,
3322 ffi::GST_VIDEO_FORMAT_I422_10LE => Self::I42210le,
3323 ffi::GST_VIDEO_FORMAT_Y444_10BE => Self::Y44410be,
3324 ffi::GST_VIDEO_FORMAT_Y444_10LE => Self::Y44410le,
3325 ffi::GST_VIDEO_FORMAT_GBR => Self::Gbr,
3326 ffi::GST_VIDEO_FORMAT_GBR_10BE => Self::Gbr10be,
3327 ffi::GST_VIDEO_FORMAT_GBR_10LE => Self::Gbr10le,
3328 ffi::GST_VIDEO_FORMAT_NV16 => Self::Nv16,
3329 ffi::GST_VIDEO_FORMAT_NV24 => Self::Nv24,
3330 ffi::GST_VIDEO_FORMAT_NV12_64Z32 => Self::Nv1264z32,
3331 ffi::GST_VIDEO_FORMAT_A420_10BE => Self::A42010be,
3332 ffi::GST_VIDEO_FORMAT_A420_10LE => Self::A42010le,
3333 ffi::GST_VIDEO_FORMAT_A422_10BE => Self::A42210be,
3334 ffi::GST_VIDEO_FORMAT_A422_10LE => Self::A42210le,
3335 ffi::GST_VIDEO_FORMAT_A444_10BE => Self::A44410be,
3336 ffi::GST_VIDEO_FORMAT_A444_10LE => Self::A44410le,
3337 ffi::GST_VIDEO_FORMAT_NV61 => Self::Nv61,
3338 ffi::GST_VIDEO_FORMAT_P010_10BE => Self::P01010be,
3339 ffi::GST_VIDEO_FORMAT_P010_10LE => Self::P01010le,
3340 ffi::GST_VIDEO_FORMAT_IYU2 => Self::Iyu2,
3341 ffi::GST_VIDEO_FORMAT_VYUY => Self::Vyuy,
3342 ffi::GST_VIDEO_FORMAT_GBRA => Self::Gbra,
3343 ffi::GST_VIDEO_FORMAT_GBRA_10BE => Self::Gbra10be,
3344 ffi::GST_VIDEO_FORMAT_GBRA_10LE => Self::Gbra10le,
3345 ffi::GST_VIDEO_FORMAT_GBR_12BE => Self::Gbr12be,
3346 ffi::GST_VIDEO_FORMAT_GBR_12LE => Self::Gbr12le,
3347 ffi::GST_VIDEO_FORMAT_GBRA_12BE => Self::Gbra12be,
3348 ffi::GST_VIDEO_FORMAT_GBRA_12LE => Self::Gbra12le,
3349 ffi::GST_VIDEO_FORMAT_I420_12BE => Self::I42012be,
3350 ffi::GST_VIDEO_FORMAT_I420_12LE => Self::I42012le,
3351 ffi::GST_VIDEO_FORMAT_I422_12BE => Self::I42212be,
3352 ffi::GST_VIDEO_FORMAT_I422_12LE => Self::I42212le,
3353 ffi::GST_VIDEO_FORMAT_Y444_12BE => Self::Y44412be,
3354 ffi::GST_VIDEO_FORMAT_Y444_12LE => Self::Y44412le,
3355 ffi::GST_VIDEO_FORMAT_GRAY10_LE32 => Self::Gray10Le32,
3356 ffi::GST_VIDEO_FORMAT_NV12_10LE32 => Self::Nv1210le32,
3357 ffi::GST_VIDEO_FORMAT_NV16_10LE32 => Self::Nv1610le32,
3358 #[cfg(feature = "v1_16")]
3359 ffi::GST_VIDEO_FORMAT_NV12_10LE40 => Self::Nv1210le40,
3360 #[cfg(feature = "v1_16")]
3361 ffi::GST_VIDEO_FORMAT_Y210 => Self::Y210,
3362 #[cfg(feature = "v1_16")]
3363 ffi::GST_VIDEO_FORMAT_Y410 => Self::Y410,
3364 #[cfg(feature = "v1_16")]
3365 ffi::GST_VIDEO_FORMAT_VUYA => Self::Vuya,
3366 #[cfg(feature = "v1_16")]
3367 ffi::GST_VIDEO_FORMAT_BGR10A2_LE => Self::Bgr10a2Le,
3368 #[cfg(feature = "v1_18")]
3369 ffi::GST_VIDEO_FORMAT_RGB10A2_LE => Self::Rgb10a2Le,
3370 #[cfg(feature = "v1_18")]
3371 ffi::GST_VIDEO_FORMAT_Y444_16BE => Self::Y44416be,
3372 #[cfg(feature = "v1_18")]
3373 ffi::GST_VIDEO_FORMAT_Y444_16LE => Self::Y44416le,
3374 #[cfg(feature = "v1_18")]
3375 ffi::GST_VIDEO_FORMAT_P016_BE => Self::P016Be,
3376 #[cfg(feature = "v1_18")]
3377 ffi::GST_VIDEO_FORMAT_P016_LE => Self::P016Le,
3378 #[cfg(feature = "v1_18")]
3379 ffi::GST_VIDEO_FORMAT_P012_BE => Self::P012Be,
3380 #[cfg(feature = "v1_18")]
3381 ffi::GST_VIDEO_FORMAT_P012_LE => Self::P012Le,
3382 #[cfg(feature = "v1_18")]
3383 ffi::GST_VIDEO_FORMAT_Y212_BE => Self::Y212Be,
3384 #[cfg(feature = "v1_18")]
3385 ffi::GST_VIDEO_FORMAT_Y212_LE => Self::Y212Le,
3386 #[cfg(feature = "v1_18")]
3387 ffi::GST_VIDEO_FORMAT_Y412_BE => Self::Y412Be,
3388 #[cfg(feature = "v1_18")]
3389 ffi::GST_VIDEO_FORMAT_Y412_LE => Self::Y412Le,
3390 #[cfg(feature = "v1_18")]
3391 ffi::GST_VIDEO_FORMAT_NV12_4L4 => Self::Nv124l4,
3392 #[cfg(feature = "v1_18")]
3393 ffi::GST_VIDEO_FORMAT_NV12_32L32 => Self::Nv1232l32,
3394 #[cfg(feature = "v1_20")]
3395 ffi::GST_VIDEO_FORMAT_RGBP => Self::Rgbp,
3396 #[cfg(feature = "v1_20")]
3397 ffi::GST_VIDEO_FORMAT_BGRP => Self::Bgrp,
3398 #[cfg(feature = "v1_20")]
3399 ffi::GST_VIDEO_FORMAT_AV12 => Self::Av12,
3400 #[cfg(feature = "v1_20")]
3401 ffi::GST_VIDEO_FORMAT_ARGB64_LE => Self::Argb64Le,
3402 #[cfg(feature = "v1_20")]
3403 ffi::GST_VIDEO_FORMAT_ARGB64_BE => Self::Argb64Be,
3404 #[cfg(feature = "v1_20")]
3405 ffi::GST_VIDEO_FORMAT_RGBA64_LE => Self::Rgba64Le,
3406 #[cfg(feature = "v1_20")]
3407 ffi::GST_VIDEO_FORMAT_RGBA64_BE => Self::Rgba64Be,
3408 #[cfg(feature = "v1_20")]
3409 ffi::GST_VIDEO_FORMAT_BGRA64_LE => Self::Bgra64Le,
3410 #[cfg(feature = "v1_20")]
3411 ffi::GST_VIDEO_FORMAT_BGRA64_BE => Self::Bgra64Be,
3412 #[cfg(feature = "v1_20")]
3413 ffi::GST_VIDEO_FORMAT_ABGR64_LE => Self::Abgr64Le,
3414 #[cfg(feature = "v1_20")]
3415 ffi::GST_VIDEO_FORMAT_ABGR64_BE => Self::Abgr64Be,
3416 #[cfg(feature = "v1_22")]
3417 ffi::GST_VIDEO_FORMAT_NV12_16L32S => Self::Nv1216l32s,
3418 #[cfg(feature = "v1_22")]
3419 ffi::GST_VIDEO_FORMAT_NV12_8L128 => Self::Nv128l128,
3420 #[cfg(feature = "v1_22")]
3421 ffi::GST_VIDEO_FORMAT_NV12_10BE_8L128 => Self::Nv1210be8l128,
3422 #[cfg(feature = "v1_24")]
3423 ffi::GST_VIDEO_FORMAT_NV12_10LE40_4L4 => Self::Nv1210le404l4,
3424 #[cfg(feature = "v1_24")]
3425 ffi::GST_VIDEO_FORMAT_DMA_DRM => Self::DmaDrm,
3426 #[cfg(feature = "v1_24")]
3427 ffi::GST_VIDEO_FORMAT_MT2110T => Self::Mt2110t,
3428 #[cfg(feature = "v1_24")]
3429 ffi::GST_VIDEO_FORMAT_MT2110R => Self::Mt2110r,
3430 #[cfg(feature = "v1_24")]
3431 ffi::GST_VIDEO_FORMAT_A422 => Self::A422,
3432 #[cfg(feature = "v1_24")]
3433 ffi::GST_VIDEO_FORMAT_A444 => Self::A444,
3434 #[cfg(feature = "v1_24")]
3435 ffi::GST_VIDEO_FORMAT_A444_12LE => Self::A44412le,
3436 #[cfg(feature = "v1_24")]
3437 ffi::GST_VIDEO_FORMAT_A444_12BE => Self::A44412be,
3438 #[cfg(feature = "v1_24")]
3439 ffi::GST_VIDEO_FORMAT_A422_12LE => Self::A42212le,
3440 #[cfg(feature = "v1_24")]
3441 ffi::GST_VIDEO_FORMAT_A422_12BE => Self::A42212be,
3442 #[cfg(feature = "v1_24")]
3443 ffi::GST_VIDEO_FORMAT_A420_12LE => Self::A42012le,
3444 #[cfg(feature = "v1_24")]
3445 ffi::GST_VIDEO_FORMAT_A420_12BE => Self::A42012be,
3446 #[cfg(feature = "v1_24")]
3447 ffi::GST_VIDEO_FORMAT_A444_16LE => Self::A44416le,
3448 #[cfg(feature = "v1_24")]
3449 ffi::GST_VIDEO_FORMAT_A444_16BE => Self::A44416be,
3450 #[cfg(feature = "v1_24")]
3451 ffi::GST_VIDEO_FORMAT_A422_16LE => Self::A42216le,
3452 #[cfg(feature = "v1_24")]
3453 ffi::GST_VIDEO_FORMAT_A422_16BE => Self::A42216be,
3454 #[cfg(feature = "v1_24")]
3455 ffi::GST_VIDEO_FORMAT_A420_16LE => Self::A42016le,
3456 #[cfg(feature = "v1_24")]
3457 ffi::GST_VIDEO_FORMAT_A420_16BE => Self::A42016be,
3458 #[cfg(feature = "v1_24")]
3459 ffi::GST_VIDEO_FORMAT_GBR_16LE => Self::Gbr16le,
3460 #[cfg(feature = "v1_24")]
3461 ffi::GST_VIDEO_FORMAT_GBR_16BE => Self::Gbr16be,
3462 #[cfg(feature = "v1_24")]
3463 ffi::GST_VIDEO_FORMAT_RBGA => Self::Rbga,
3464 #[cfg(feature = "v1_26")]
3465 ffi::GST_VIDEO_FORMAT_Y216_LE => Self::Y216Le,
3466 #[cfg(feature = "v1_26")]
3467 ffi::GST_VIDEO_FORMAT_Y216_BE => Self::Y216Be,
3468 #[cfg(feature = "v1_26")]
3469 ffi::GST_VIDEO_FORMAT_Y416_LE => Self::Y416Le,
3470 #[cfg(feature = "v1_26")]
3471 ffi::GST_VIDEO_FORMAT_Y416_BE => Self::Y416Be,
3472 #[cfg(feature = "v1_26")]
3473 ffi::GST_VIDEO_FORMAT_GRAY10_LE16 => Self::Gray10Le16,
3474 value => Self::__Unknown(value),
3475 }
3476 }
3477}
3478
3479impl StaticType for VideoFormat {
3480 #[inline]
3481 #[doc(alias = "gst_video_format_get_type")]
3482 fn static_type() -> glib::Type {
3483 unsafe { from_glib(ffi::gst_video_format_get_type()) }
3484 }
3485}
3486
3487impl glib::HasParamSpec for VideoFormat {
3488 type ParamSpec = glib::ParamSpecEnum;
3489 type SetValue = Self;
3490 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3491
3492 fn param_spec_builder() -> Self::BuilderFn {
3493 Self::ParamSpec::builder_with_default
3494 }
3495}
3496
3497impl glib::value::ValueType for VideoFormat {
3498 type Type = Self;
3499}
3500
3501unsafe impl<'a> glib::value::FromValue<'a> for VideoFormat {
3502 type Checker = glib::value::GenericValueTypeChecker<Self>;
3503
3504 #[inline]
3505 unsafe fn from_value(value: &'a glib::Value) -> Self {
3506 skip_assert_initialized!();
3507 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3508 }
3509}
3510
3511impl ToValue for VideoFormat {
3512 #[inline]
3513 fn to_value(&self) -> glib::Value {
3514 let mut value = glib::Value::for_value_type::<Self>();
3515 unsafe {
3516 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3517 }
3518 value
3519 }
3520
3521 #[inline]
3522 fn value_type(&self) -> glib::Type {
3523 Self::static_type()
3524 }
3525}
3526
3527impl From<VideoFormat> for glib::Value {
3528 #[inline]
3529 fn from(v: VideoFormat) -> Self {
3530 skip_assert_initialized!();
3531 ToValue::to_value(&v)
3532 }
3533}
3534
3535#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3536#[non_exhaustive]
3537#[doc(alias = "GstVideoGammaMode")]
3538pub enum VideoGammaMode {
3539 #[doc(alias = "GST_VIDEO_GAMMA_MODE_NONE")]
3541 None,
3542 #[doc(alias = "GST_VIDEO_GAMMA_MODE_REMAP")]
3545 Remap,
3546 #[doc(hidden)]
3547 __Unknown(i32),
3548}
3549
3550#[doc(hidden)]
3551impl IntoGlib for VideoGammaMode {
3552 type GlibType = ffi::GstVideoGammaMode;
3553
3554 #[inline]
3555 fn into_glib(self) -> ffi::GstVideoGammaMode {
3556 match self {
3557 Self::None => ffi::GST_VIDEO_GAMMA_MODE_NONE,
3558 Self::Remap => ffi::GST_VIDEO_GAMMA_MODE_REMAP,
3559 Self::__Unknown(value) => value,
3560 }
3561 }
3562}
3563
3564#[doc(hidden)]
3565impl FromGlib<ffi::GstVideoGammaMode> for VideoGammaMode {
3566 #[inline]
3567 unsafe fn from_glib(value: ffi::GstVideoGammaMode) -> Self {
3568 skip_assert_initialized!();
3569
3570 match value {
3571 ffi::GST_VIDEO_GAMMA_MODE_NONE => Self::None,
3572 ffi::GST_VIDEO_GAMMA_MODE_REMAP => Self::Remap,
3573 value => Self::__Unknown(value),
3574 }
3575 }
3576}
3577
3578impl StaticType for VideoGammaMode {
3579 #[inline]
3580 #[doc(alias = "gst_video_gamma_mode_get_type")]
3581 fn static_type() -> glib::Type {
3582 unsafe { from_glib(ffi::gst_video_gamma_mode_get_type()) }
3583 }
3584}
3585
3586impl glib::HasParamSpec for VideoGammaMode {
3587 type ParamSpec = glib::ParamSpecEnum;
3588 type SetValue = Self;
3589 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3590
3591 fn param_spec_builder() -> Self::BuilderFn {
3592 Self::ParamSpec::builder_with_default
3593 }
3594}
3595
3596impl glib::value::ValueType for VideoGammaMode {
3597 type Type = Self;
3598}
3599
3600unsafe impl<'a> glib::value::FromValue<'a> for VideoGammaMode {
3601 type Checker = glib::value::GenericValueTypeChecker<Self>;
3602
3603 #[inline]
3604 unsafe fn from_value(value: &'a glib::Value) -> Self {
3605 skip_assert_initialized!();
3606 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3607 }
3608}
3609
3610impl ToValue for VideoGammaMode {
3611 #[inline]
3612 fn to_value(&self) -> glib::Value {
3613 let mut value = glib::Value::for_value_type::<Self>();
3614 unsafe {
3615 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3616 }
3617 value
3618 }
3619
3620 #[inline]
3621 fn value_type(&self) -> glib::Type {
3622 Self::static_type()
3623 }
3624}
3625
3626impl From<VideoGammaMode> for glib::Value {
3627 #[inline]
3628 fn from(v: VideoGammaMode) -> Self {
3629 skip_assert_initialized!();
3630 ToValue::to_value(&v)
3631 }
3632}
3633
3634#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3637#[non_exhaustive]
3638#[doc(alias = "GstVideoInterlaceMode")]
3639pub enum VideoInterlaceMode {
3640 #[doc(alias = "GST_VIDEO_INTERLACE_MODE_PROGRESSIVE")]
3642 Progressive,
3643 #[doc(alias = "GST_VIDEO_INTERLACE_MODE_INTERLEAVED")]
3646 Interleaved,
3647 #[doc(alias = "GST_VIDEO_INTERLACE_MODE_MIXED")]
3650 Mixed,
3651 #[doc(alias = "GST_VIDEO_INTERLACE_MODE_FIELDS")]
3659 Fields,
3660 #[cfg(feature = "v1_16")]
3666 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3667 #[doc(alias = "GST_VIDEO_INTERLACE_MODE_ALTERNATE")]
3668 Alternate,
3669 #[doc(hidden)]
3670 __Unknown(i32),
3671}
3672
3673impl VideoInterlaceMode {
3674 #[doc(alias = "gst_video_interlace_mode_from_string")]
3675 pub fn from_string(mode: &str) -> VideoInterlaceMode {
3676 assert_initialized_main_thread!();
3677 unsafe {
3678 from_glib(ffi::gst_video_interlace_mode_from_string(
3679 mode.to_glib_none().0,
3680 ))
3681 }
3682 }
3683
3684 pub fn to_str<'a>(self) -> &'a GStr {
3685 unsafe {
3686 GStr::from_ptr(
3687 ffi::gst_video_interlace_mode_to_string(self.into_glib())
3688 .as_ref()
3689 .expect("gst_video_interlace_mode_to_string returned NULL"),
3690 )
3691 }
3692 }
3693}
3694
3695impl std::fmt::Display for VideoInterlaceMode {
3696 #[inline]
3697 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3698 f.write_str(&self.to_str())
3699 }
3700}
3701
3702#[doc(hidden)]
3703impl IntoGlib for VideoInterlaceMode {
3704 type GlibType = ffi::GstVideoInterlaceMode;
3705
3706 #[inline]
3707 fn into_glib(self) -> ffi::GstVideoInterlaceMode {
3708 match self {
3709 Self::Progressive => ffi::GST_VIDEO_INTERLACE_MODE_PROGRESSIVE,
3710 Self::Interleaved => ffi::GST_VIDEO_INTERLACE_MODE_INTERLEAVED,
3711 Self::Mixed => ffi::GST_VIDEO_INTERLACE_MODE_MIXED,
3712 Self::Fields => ffi::GST_VIDEO_INTERLACE_MODE_FIELDS,
3713 #[cfg(feature = "v1_16")]
3714 Self::Alternate => ffi::GST_VIDEO_INTERLACE_MODE_ALTERNATE,
3715 Self::__Unknown(value) => value,
3716 }
3717 }
3718}
3719
3720#[doc(hidden)]
3721impl FromGlib<ffi::GstVideoInterlaceMode> for VideoInterlaceMode {
3722 #[inline]
3723 unsafe fn from_glib(value: ffi::GstVideoInterlaceMode) -> Self {
3724 skip_assert_initialized!();
3725
3726 match value {
3727 ffi::GST_VIDEO_INTERLACE_MODE_PROGRESSIVE => Self::Progressive,
3728 ffi::GST_VIDEO_INTERLACE_MODE_INTERLEAVED => Self::Interleaved,
3729 ffi::GST_VIDEO_INTERLACE_MODE_MIXED => Self::Mixed,
3730 ffi::GST_VIDEO_INTERLACE_MODE_FIELDS => Self::Fields,
3731 #[cfg(feature = "v1_16")]
3732 ffi::GST_VIDEO_INTERLACE_MODE_ALTERNATE => Self::Alternate,
3733 value => Self::__Unknown(value),
3734 }
3735 }
3736}
3737
3738impl StaticType for VideoInterlaceMode {
3739 #[inline]
3740 #[doc(alias = "gst_video_interlace_mode_get_type")]
3741 fn static_type() -> glib::Type {
3742 unsafe { from_glib(ffi::gst_video_interlace_mode_get_type()) }
3743 }
3744}
3745
3746impl glib::HasParamSpec for VideoInterlaceMode {
3747 type ParamSpec = glib::ParamSpecEnum;
3748 type SetValue = Self;
3749 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3750
3751 fn param_spec_builder() -> Self::BuilderFn {
3752 Self::ParamSpec::builder_with_default
3753 }
3754}
3755
3756impl glib::value::ValueType for VideoInterlaceMode {
3757 type Type = Self;
3758}
3759
3760unsafe impl<'a> glib::value::FromValue<'a> for VideoInterlaceMode {
3761 type Checker = glib::value::GenericValueTypeChecker<Self>;
3762
3763 #[inline]
3764 unsafe fn from_value(value: &'a glib::Value) -> Self {
3765 skip_assert_initialized!();
3766 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3767 }
3768}
3769
3770impl ToValue for VideoInterlaceMode {
3771 #[inline]
3772 fn to_value(&self) -> glib::Value {
3773 let mut value = glib::Value::for_value_type::<Self>();
3774 unsafe {
3775 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3776 }
3777 value
3778 }
3779
3780 #[inline]
3781 fn value_type(&self) -> glib::Type {
3782 Self::static_type()
3783 }
3784}
3785
3786impl From<VideoInterlaceMode> for glib::Value {
3787 #[inline]
3788 fn from(v: VideoInterlaceMode) -> Self {
3789 skip_assert_initialized!();
3790 ToValue::to_value(&v)
3791 }
3792}
3793
3794#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3796#[non_exhaustive]
3797#[doc(alias = "GstVideoMatrixMode")]
3798pub enum VideoMatrixMode {
3799 #[doc(alias = "GST_VIDEO_MATRIX_MODE_FULL")]
3801 Full,
3802 #[doc(alias = "GST_VIDEO_MATRIX_MODE_INPUT_ONLY")]
3805 InputOnly,
3806 #[doc(alias = "GST_VIDEO_MATRIX_MODE_OUTPUT_ONLY")]
3809 OutputOnly,
3810 #[doc(alias = "GST_VIDEO_MATRIX_MODE_NONE")]
3812 None,
3813 #[doc(hidden)]
3814 __Unknown(i32),
3815}
3816
3817#[doc(hidden)]
3818impl IntoGlib for VideoMatrixMode {
3819 type GlibType = ffi::GstVideoMatrixMode;
3820
3821 #[inline]
3822 fn into_glib(self) -> ffi::GstVideoMatrixMode {
3823 match self {
3824 Self::Full => ffi::GST_VIDEO_MATRIX_MODE_FULL,
3825 Self::InputOnly => ffi::GST_VIDEO_MATRIX_MODE_INPUT_ONLY,
3826 Self::OutputOnly => ffi::GST_VIDEO_MATRIX_MODE_OUTPUT_ONLY,
3827 Self::None => ffi::GST_VIDEO_MATRIX_MODE_NONE,
3828 Self::__Unknown(value) => value,
3829 }
3830 }
3831}
3832
3833#[doc(hidden)]
3834impl FromGlib<ffi::GstVideoMatrixMode> for VideoMatrixMode {
3835 #[inline]
3836 unsafe fn from_glib(value: ffi::GstVideoMatrixMode) -> Self {
3837 skip_assert_initialized!();
3838
3839 match value {
3840 ffi::GST_VIDEO_MATRIX_MODE_FULL => Self::Full,
3841 ffi::GST_VIDEO_MATRIX_MODE_INPUT_ONLY => Self::InputOnly,
3842 ffi::GST_VIDEO_MATRIX_MODE_OUTPUT_ONLY => Self::OutputOnly,
3843 ffi::GST_VIDEO_MATRIX_MODE_NONE => Self::None,
3844 value => Self::__Unknown(value),
3845 }
3846 }
3847}
3848
3849impl StaticType for VideoMatrixMode {
3850 #[inline]
3851 #[doc(alias = "gst_video_matrix_mode_get_type")]
3852 fn static_type() -> glib::Type {
3853 unsafe { from_glib(ffi::gst_video_matrix_mode_get_type()) }
3854 }
3855}
3856
3857impl glib::HasParamSpec for VideoMatrixMode {
3858 type ParamSpec = glib::ParamSpecEnum;
3859 type SetValue = Self;
3860 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3861
3862 fn param_spec_builder() -> Self::BuilderFn {
3863 Self::ParamSpec::builder_with_default
3864 }
3865}
3866
3867impl glib::value::ValueType for VideoMatrixMode {
3868 type Type = Self;
3869}
3870
3871unsafe impl<'a> glib::value::FromValue<'a> for VideoMatrixMode {
3872 type Checker = glib::value::GenericValueTypeChecker<Self>;
3873
3874 #[inline]
3875 unsafe fn from_value(value: &'a glib::Value) -> Self {
3876 skip_assert_initialized!();
3877 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3878 }
3879}
3880
3881impl ToValue for VideoMatrixMode {
3882 #[inline]
3883 fn to_value(&self) -> glib::Value {
3884 let mut value = glib::Value::for_value_type::<Self>();
3885 unsafe {
3886 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3887 }
3888 value
3889 }
3890
3891 #[inline]
3892 fn value_type(&self) -> glib::Type {
3893 Self::static_type()
3894 }
3895}
3896
3897impl From<VideoMatrixMode> for glib::Value {
3898 #[inline]
3899 fn from(v: VideoMatrixMode) -> Self {
3900 skip_assert_initialized!();
3901 ToValue::to_value(&v)
3902 }
3903}
3904
3905#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3915#[non_exhaustive]
3916#[doc(alias = "GstVideoMultiviewFramePacking")]
3917pub enum VideoMultiviewFramePacking {
3918 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_NONE")]
3921 None,
3922 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_MONO")]
3924 Mono,
3925 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_LEFT")]
3927 Left,
3928 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_RIGHT")]
3930 Right,
3931 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE")]
3934 SideBySide,
3935 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE_QUINCUNX")]
3940 SideBySideQuincunx,
3941 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_COLUMN_INTERLEAVED")]
3944 ColumnInterleaved,
3945 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_ROW_INTERLEAVED")]
3948 RowInterleaved,
3949 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_TOP_BOTTOM")]
3952 TopBottom,
3953 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_CHECKERBOARD")]
3957 Checkerboard,
3958 #[doc(hidden)]
3959 __Unknown(i32),
3960}
3961
3962#[doc(hidden)]
3963impl IntoGlib for VideoMultiviewFramePacking {
3964 type GlibType = ffi::GstVideoMultiviewFramePacking;
3965
3966 #[inline]
3967 fn into_glib(self) -> ffi::GstVideoMultiviewFramePacking {
3968 match self {
3969 Self::None => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_NONE,
3970 Self::Mono => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_MONO,
3971 Self::Left => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_LEFT,
3972 Self::Right => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_RIGHT,
3973 Self::SideBySide => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE,
3974 Self::SideBySideQuincunx => {
3975 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE_QUINCUNX
3976 }
3977 Self::ColumnInterleaved => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_COLUMN_INTERLEAVED,
3978 Self::RowInterleaved => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_ROW_INTERLEAVED,
3979 Self::TopBottom => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_TOP_BOTTOM,
3980 Self::Checkerboard => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_CHECKERBOARD,
3981 Self::__Unknown(value) => value,
3982 }
3983 }
3984}
3985
3986#[doc(hidden)]
3987impl FromGlib<ffi::GstVideoMultiviewFramePacking> for VideoMultiviewFramePacking {
3988 #[inline]
3989 unsafe fn from_glib(value: ffi::GstVideoMultiviewFramePacking) -> Self {
3990 skip_assert_initialized!();
3991
3992 match value {
3993 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_NONE => Self::None,
3994 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_MONO => Self::Mono,
3995 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_LEFT => Self::Left,
3996 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_RIGHT => Self::Right,
3997 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE => Self::SideBySide,
3998 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE_QUINCUNX => {
3999 Self::SideBySideQuincunx
4000 }
4001 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_COLUMN_INTERLEAVED => Self::ColumnInterleaved,
4002 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_ROW_INTERLEAVED => Self::RowInterleaved,
4003 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_TOP_BOTTOM => Self::TopBottom,
4004 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_CHECKERBOARD => Self::Checkerboard,
4005 value => Self::__Unknown(value),
4006 }
4007 }
4008}
4009
4010impl StaticType for VideoMultiviewFramePacking {
4011 #[inline]
4012 #[doc(alias = "gst_video_multiview_frame_packing_get_type")]
4013 fn static_type() -> glib::Type {
4014 unsafe { from_glib(ffi::gst_video_multiview_frame_packing_get_type()) }
4015 }
4016}
4017
4018impl glib::HasParamSpec for VideoMultiviewFramePacking {
4019 type ParamSpec = glib::ParamSpecEnum;
4020 type SetValue = Self;
4021 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4022
4023 fn param_spec_builder() -> Self::BuilderFn {
4024 Self::ParamSpec::builder_with_default
4025 }
4026}
4027
4028impl glib::value::ValueType for VideoMultiviewFramePacking {
4029 type Type = Self;
4030}
4031
4032unsafe impl<'a> glib::value::FromValue<'a> for VideoMultiviewFramePacking {
4033 type Checker = glib::value::GenericValueTypeChecker<Self>;
4034
4035 #[inline]
4036 unsafe fn from_value(value: &'a glib::Value) -> Self {
4037 skip_assert_initialized!();
4038 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4039 }
4040}
4041
4042impl ToValue for VideoMultiviewFramePacking {
4043 #[inline]
4044 fn to_value(&self) -> glib::Value {
4045 let mut value = glib::Value::for_value_type::<Self>();
4046 unsafe {
4047 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4048 }
4049 value
4050 }
4051
4052 #[inline]
4053 fn value_type(&self) -> glib::Type {
4054 Self::static_type()
4055 }
4056}
4057
4058impl From<VideoMultiviewFramePacking> for glib::Value {
4059 #[inline]
4060 fn from(v: VideoMultiviewFramePacking) -> Self {
4061 skip_assert_initialized!();
4062 ToValue::to_value(&v)
4063 }
4064}
4065
4066#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4070#[non_exhaustive]
4071#[doc(alias = "GstVideoMultiviewMode")]
4072pub enum VideoMultiviewMode {
4073 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_NONE")]
4078 None,
4079 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_MONO")]
4081 Mono,
4082 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_LEFT")]
4084 Left,
4085 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_RIGHT")]
4087 Right,
4088 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE")]
4091 SideBySide,
4092 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE_QUINCUNX")]
4097 SideBySideQuincunx,
4098 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_COLUMN_INTERLEAVED")]
4101 ColumnInterleaved,
4102 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_ROW_INTERLEAVED")]
4105 RowInterleaved,
4106 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_TOP_BOTTOM")]
4109 TopBottom,
4110 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_CHECKERBOARD")]
4114 Checkerboard,
4115 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_FRAME_BY_FRAME")]
4118 FrameByFrame,
4119 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_MULTIVIEW_FRAME_BY_FRAME")]
4125 MultiviewFrameByFrame,
4126 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_SEPARATED")]
4131 Separated,
4132 #[doc(hidden)]
4133 __Unknown(i32),
4134}
4135
4136impl VideoMultiviewMode {
4137 #[doc(alias = "gst_video_multiview_mode_from_caps_string")]
4138 pub fn from_caps_string(caps_mview_mode: &str) -> VideoMultiviewMode {
4139 assert_initialized_main_thread!();
4140 unsafe {
4141 from_glib(ffi::gst_video_multiview_mode_from_caps_string(
4142 caps_mview_mode.to_glib_none().0,
4143 ))
4144 }
4145 }
4146
4147 #[doc(alias = "gst_video_multiview_mode_to_caps_string")]
4148 pub fn to_caps_string(self) -> Option<glib::GString> {
4149 assert_initialized_main_thread!();
4150 unsafe {
4151 from_glib_none(ffi::gst_video_multiview_mode_to_caps_string(
4152 self.into_glib(),
4153 ))
4154 }
4155 }
4156}
4157
4158#[doc(hidden)]
4159impl IntoGlib for VideoMultiviewMode {
4160 type GlibType = ffi::GstVideoMultiviewMode;
4161
4162 fn into_glib(self) -> ffi::GstVideoMultiviewMode {
4163 match self {
4164 Self::None => ffi::GST_VIDEO_MULTIVIEW_MODE_NONE,
4165 Self::Mono => ffi::GST_VIDEO_MULTIVIEW_MODE_MONO,
4166 Self::Left => ffi::GST_VIDEO_MULTIVIEW_MODE_LEFT,
4167 Self::Right => ffi::GST_VIDEO_MULTIVIEW_MODE_RIGHT,
4168 Self::SideBySide => ffi::GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE,
4169 Self::SideBySideQuincunx => ffi::GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE_QUINCUNX,
4170 Self::ColumnInterleaved => ffi::GST_VIDEO_MULTIVIEW_MODE_COLUMN_INTERLEAVED,
4171 Self::RowInterleaved => ffi::GST_VIDEO_MULTIVIEW_MODE_ROW_INTERLEAVED,
4172 Self::TopBottom => ffi::GST_VIDEO_MULTIVIEW_MODE_TOP_BOTTOM,
4173 Self::Checkerboard => ffi::GST_VIDEO_MULTIVIEW_MODE_CHECKERBOARD,
4174 Self::FrameByFrame => ffi::GST_VIDEO_MULTIVIEW_MODE_FRAME_BY_FRAME,
4175 Self::MultiviewFrameByFrame => ffi::GST_VIDEO_MULTIVIEW_MODE_MULTIVIEW_FRAME_BY_FRAME,
4176 Self::Separated => ffi::GST_VIDEO_MULTIVIEW_MODE_SEPARATED,
4177 Self::__Unknown(value) => value,
4178 }
4179 }
4180}
4181
4182#[doc(hidden)]
4183impl FromGlib<ffi::GstVideoMultiviewMode> for VideoMultiviewMode {
4184 unsafe fn from_glib(value: ffi::GstVideoMultiviewMode) -> Self {
4185 skip_assert_initialized!();
4186
4187 match value {
4188 ffi::GST_VIDEO_MULTIVIEW_MODE_NONE => Self::None,
4189 ffi::GST_VIDEO_MULTIVIEW_MODE_MONO => Self::Mono,
4190 ffi::GST_VIDEO_MULTIVIEW_MODE_LEFT => Self::Left,
4191 ffi::GST_VIDEO_MULTIVIEW_MODE_RIGHT => Self::Right,
4192 ffi::GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE => Self::SideBySide,
4193 ffi::GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE_QUINCUNX => Self::SideBySideQuincunx,
4194 ffi::GST_VIDEO_MULTIVIEW_MODE_COLUMN_INTERLEAVED => Self::ColumnInterleaved,
4195 ffi::GST_VIDEO_MULTIVIEW_MODE_ROW_INTERLEAVED => Self::RowInterleaved,
4196 ffi::GST_VIDEO_MULTIVIEW_MODE_TOP_BOTTOM => Self::TopBottom,
4197 ffi::GST_VIDEO_MULTIVIEW_MODE_CHECKERBOARD => Self::Checkerboard,
4198 ffi::GST_VIDEO_MULTIVIEW_MODE_FRAME_BY_FRAME => Self::FrameByFrame,
4199 ffi::GST_VIDEO_MULTIVIEW_MODE_MULTIVIEW_FRAME_BY_FRAME => Self::MultiviewFrameByFrame,
4200 ffi::GST_VIDEO_MULTIVIEW_MODE_SEPARATED => Self::Separated,
4201 value => Self::__Unknown(value),
4202 }
4203 }
4204}
4205
4206impl StaticType for VideoMultiviewMode {
4207 #[inline]
4208 #[doc(alias = "gst_video_multiview_mode_get_type")]
4209 fn static_type() -> glib::Type {
4210 unsafe { from_glib(ffi::gst_video_multiview_mode_get_type()) }
4211 }
4212}
4213
4214impl glib::HasParamSpec for VideoMultiviewMode {
4215 type ParamSpec = glib::ParamSpecEnum;
4216 type SetValue = Self;
4217 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4218
4219 fn param_spec_builder() -> Self::BuilderFn {
4220 Self::ParamSpec::builder_with_default
4221 }
4222}
4223
4224impl glib::value::ValueType for VideoMultiviewMode {
4225 type Type = Self;
4226}
4227
4228unsafe impl<'a> glib::value::FromValue<'a> for VideoMultiviewMode {
4229 type Checker = glib::value::GenericValueTypeChecker<Self>;
4230
4231 #[inline]
4232 unsafe fn from_value(value: &'a glib::Value) -> Self {
4233 skip_assert_initialized!();
4234 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4235 }
4236}
4237
4238impl ToValue for VideoMultiviewMode {
4239 #[inline]
4240 fn to_value(&self) -> glib::Value {
4241 let mut value = glib::Value::for_value_type::<Self>();
4242 unsafe {
4243 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4244 }
4245 value
4246 }
4247
4248 #[inline]
4249 fn value_type(&self) -> glib::Type {
4250 Self::static_type()
4251 }
4252}
4253
4254impl From<VideoMultiviewMode> for glib::Value {
4255 #[inline]
4256 fn from(v: VideoMultiviewMode) -> Self {
4257 skip_assert_initialized!();
4258 ToValue::to_value(&v)
4259 }
4260}
4261
4262#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4264#[non_exhaustive]
4265#[doc(alias = "GstVideoOrientationMethod")]
4266pub enum VideoOrientationMethod {
4267 #[doc(alias = "GST_VIDEO_ORIENTATION_IDENTITY")]
4269 Identity,
4270 #[doc(alias = "GST_VIDEO_ORIENTATION_90R")]
4272 _90r,
4273 #[doc(alias = "GST_VIDEO_ORIENTATION_180")]
4275 _180,
4276 #[doc(alias = "GST_VIDEO_ORIENTATION_90L")]
4278 _90l,
4279 #[doc(alias = "GST_VIDEO_ORIENTATION_HORIZ")]
4281 Horiz,
4282 #[doc(alias = "GST_VIDEO_ORIENTATION_VERT")]
4284 Vert,
4285 #[doc(alias = "GST_VIDEO_ORIENTATION_UL_LR")]
4287 UlLr,
4288 #[doc(alias = "GST_VIDEO_ORIENTATION_UR_LL")]
4290 UrLl,
4291 #[doc(alias = "GST_VIDEO_ORIENTATION_AUTO")]
4293 Auto,
4294 #[doc(alias = "GST_VIDEO_ORIENTATION_CUSTOM")]
4296 Custom,
4297 #[doc(hidden)]
4298 __Unknown(i32),
4299}
4300
4301#[doc(hidden)]
4302impl IntoGlib for VideoOrientationMethod {
4303 type GlibType = ffi::GstVideoOrientationMethod;
4304
4305 #[inline]
4306 fn into_glib(self) -> ffi::GstVideoOrientationMethod {
4307 match self {
4308 Self::Identity => ffi::GST_VIDEO_ORIENTATION_IDENTITY,
4309 Self::_90r => ffi::GST_VIDEO_ORIENTATION_90R,
4310 Self::_180 => ffi::GST_VIDEO_ORIENTATION_180,
4311 Self::_90l => ffi::GST_VIDEO_ORIENTATION_90L,
4312 Self::Horiz => ffi::GST_VIDEO_ORIENTATION_HORIZ,
4313 Self::Vert => ffi::GST_VIDEO_ORIENTATION_VERT,
4314 Self::UlLr => ffi::GST_VIDEO_ORIENTATION_UL_LR,
4315 Self::UrLl => ffi::GST_VIDEO_ORIENTATION_UR_LL,
4316 Self::Auto => ffi::GST_VIDEO_ORIENTATION_AUTO,
4317 Self::Custom => ffi::GST_VIDEO_ORIENTATION_CUSTOM,
4318 Self::__Unknown(value) => value,
4319 }
4320 }
4321}
4322
4323#[doc(hidden)]
4324impl FromGlib<ffi::GstVideoOrientationMethod> for VideoOrientationMethod {
4325 #[inline]
4326 unsafe fn from_glib(value: ffi::GstVideoOrientationMethod) -> Self {
4327 skip_assert_initialized!();
4328
4329 match value {
4330 ffi::GST_VIDEO_ORIENTATION_IDENTITY => Self::Identity,
4331 ffi::GST_VIDEO_ORIENTATION_90R => Self::_90r,
4332 ffi::GST_VIDEO_ORIENTATION_180 => Self::_180,
4333 ffi::GST_VIDEO_ORIENTATION_90L => Self::_90l,
4334 ffi::GST_VIDEO_ORIENTATION_HORIZ => Self::Horiz,
4335 ffi::GST_VIDEO_ORIENTATION_VERT => Self::Vert,
4336 ffi::GST_VIDEO_ORIENTATION_UL_LR => Self::UlLr,
4337 ffi::GST_VIDEO_ORIENTATION_UR_LL => Self::UrLl,
4338 ffi::GST_VIDEO_ORIENTATION_AUTO => Self::Auto,
4339 ffi::GST_VIDEO_ORIENTATION_CUSTOM => Self::Custom,
4340 value => Self::__Unknown(value),
4341 }
4342 }
4343}
4344
4345impl StaticType for VideoOrientationMethod {
4346 #[inline]
4347 #[doc(alias = "gst_video_orientation_method_get_type")]
4348 fn static_type() -> glib::Type {
4349 unsafe { from_glib(ffi::gst_video_orientation_method_get_type()) }
4350 }
4351}
4352
4353impl glib::HasParamSpec for VideoOrientationMethod {
4354 type ParamSpec = glib::ParamSpecEnum;
4355 type SetValue = Self;
4356 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4357
4358 fn param_spec_builder() -> Self::BuilderFn {
4359 Self::ParamSpec::builder_with_default
4360 }
4361}
4362
4363impl glib::value::ValueType for VideoOrientationMethod {
4364 type Type = Self;
4365}
4366
4367unsafe impl<'a> glib::value::FromValue<'a> for VideoOrientationMethod {
4368 type Checker = glib::value::GenericValueTypeChecker<Self>;
4369
4370 #[inline]
4371 unsafe fn from_value(value: &'a glib::Value) -> Self {
4372 skip_assert_initialized!();
4373 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4374 }
4375}
4376
4377impl ToValue for VideoOrientationMethod {
4378 #[inline]
4379 fn to_value(&self) -> glib::Value {
4380 let mut value = glib::Value::for_value_type::<Self>();
4381 unsafe {
4382 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4383 }
4384 value
4385 }
4386
4387 #[inline]
4388 fn value_type(&self) -> glib::Type {
4389 Self::static_type()
4390 }
4391}
4392
4393impl From<VideoOrientationMethod> for glib::Value {
4394 #[inline]
4395 fn from(v: VideoOrientationMethod) -> Self {
4396 skip_assert_initialized!();
4397 ToValue::to_value(&v)
4398 }
4399}
4400
4401#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4403#[non_exhaustive]
4404#[doc(alias = "GstVideoPrimariesMode")]
4405pub enum VideoPrimariesMode {
4406 #[doc(alias = "GST_VIDEO_PRIMARIES_MODE_NONE")]
4408 None,
4409 #[doc(alias = "GST_VIDEO_PRIMARIES_MODE_MERGE_ONLY")]
4412 MergeOnly,
4413 #[doc(alias = "GST_VIDEO_PRIMARIES_MODE_FAST")]
4415 Fast,
4416 #[doc(hidden)]
4417 __Unknown(i32),
4418}
4419
4420#[doc(hidden)]
4421impl IntoGlib for VideoPrimariesMode {
4422 type GlibType = ffi::GstVideoPrimariesMode;
4423
4424 #[inline]
4425 fn into_glib(self) -> ffi::GstVideoPrimariesMode {
4426 match self {
4427 Self::None => ffi::GST_VIDEO_PRIMARIES_MODE_NONE,
4428 Self::MergeOnly => ffi::GST_VIDEO_PRIMARIES_MODE_MERGE_ONLY,
4429 Self::Fast => ffi::GST_VIDEO_PRIMARIES_MODE_FAST,
4430 Self::__Unknown(value) => value,
4431 }
4432 }
4433}
4434
4435#[doc(hidden)]
4436impl FromGlib<ffi::GstVideoPrimariesMode> for VideoPrimariesMode {
4437 #[inline]
4438 unsafe fn from_glib(value: ffi::GstVideoPrimariesMode) -> Self {
4439 skip_assert_initialized!();
4440
4441 match value {
4442 ffi::GST_VIDEO_PRIMARIES_MODE_NONE => Self::None,
4443 ffi::GST_VIDEO_PRIMARIES_MODE_MERGE_ONLY => Self::MergeOnly,
4444 ffi::GST_VIDEO_PRIMARIES_MODE_FAST => Self::Fast,
4445 value => Self::__Unknown(value),
4446 }
4447 }
4448}
4449
4450impl StaticType for VideoPrimariesMode {
4451 #[inline]
4452 #[doc(alias = "gst_video_primaries_mode_get_type")]
4453 fn static_type() -> glib::Type {
4454 unsafe { from_glib(ffi::gst_video_primaries_mode_get_type()) }
4455 }
4456}
4457
4458impl glib::HasParamSpec for VideoPrimariesMode {
4459 type ParamSpec = glib::ParamSpecEnum;
4460 type SetValue = Self;
4461 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4462
4463 fn param_spec_builder() -> Self::BuilderFn {
4464 Self::ParamSpec::builder_with_default
4465 }
4466}
4467
4468impl glib::value::ValueType for VideoPrimariesMode {
4469 type Type = Self;
4470}
4471
4472unsafe impl<'a> glib::value::FromValue<'a> for VideoPrimariesMode {
4473 type Checker = glib::value::GenericValueTypeChecker<Self>;
4474
4475 #[inline]
4476 unsafe fn from_value(value: &'a glib::Value) -> Self {
4477 skip_assert_initialized!();
4478 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4479 }
4480}
4481
4482impl ToValue for VideoPrimariesMode {
4483 #[inline]
4484 fn to_value(&self) -> glib::Value {
4485 let mut value = glib::Value::for_value_type::<Self>();
4486 unsafe {
4487 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4488 }
4489 value
4490 }
4491
4492 #[inline]
4493 fn value_type(&self) -> glib::Type {
4494 Self::static_type()
4495 }
4496}
4497
4498impl From<VideoPrimariesMode> for glib::Value {
4499 #[inline]
4500 fn from(v: VideoPrimariesMode) -> Self {
4501 skip_assert_initialized!();
4502 ToValue::to_value(&v)
4503 }
4504}
4505
4506#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4508#[non_exhaustive]
4509#[doc(alias = "GstVideoResamplerMethod")]
4510pub enum VideoResamplerMethod {
4511 #[doc(alias = "GST_VIDEO_RESAMPLER_METHOD_NEAREST")]
4514 Nearest,
4515 #[doc(alias = "GST_VIDEO_RESAMPLER_METHOD_LINEAR")]
4518 Linear,
4519 #[doc(alias = "GST_VIDEO_RESAMPLER_METHOD_CUBIC")]
4521 Cubic,
4522 #[doc(alias = "GST_VIDEO_RESAMPLER_METHOD_SINC")]
4524 Sinc,
4525 #[doc(alias = "GST_VIDEO_RESAMPLER_METHOD_LANCZOS")]
4527 Lanczos,
4528 #[doc(hidden)]
4529 __Unknown(i32),
4530}
4531
4532#[doc(hidden)]
4533impl IntoGlib for VideoResamplerMethod {
4534 type GlibType = ffi::GstVideoResamplerMethod;
4535
4536 #[inline]
4537 fn into_glib(self) -> ffi::GstVideoResamplerMethod {
4538 match self {
4539 Self::Nearest => ffi::GST_VIDEO_RESAMPLER_METHOD_NEAREST,
4540 Self::Linear => ffi::GST_VIDEO_RESAMPLER_METHOD_LINEAR,
4541 Self::Cubic => ffi::GST_VIDEO_RESAMPLER_METHOD_CUBIC,
4542 Self::Sinc => ffi::GST_VIDEO_RESAMPLER_METHOD_SINC,
4543 Self::Lanczos => ffi::GST_VIDEO_RESAMPLER_METHOD_LANCZOS,
4544 Self::__Unknown(value) => value,
4545 }
4546 }
4547}
4548
4549#[doc(hidden)]
4550impl FromGlib<ffi::GstVideoResamplerMethod> for VideoResamplerMethod {
4551 #[inline]
4552 unsafe fn from_glib(value: ffi::GstVideoResamplerMethod) -> Self {
4553 skip_assert_initialized!();
4554
4555 match value {
4556 ffi::GST_VIDEO_RESAMPLER_METHOD_NEAREST => Self::Nearest,
4557 ffi::GST_VIDEO_RESAMPLER_METHOD_LINEAR => Self::Linear,
4558 ffi::GST_VIDEO_RESAMPLER_METHOD_CUBIC => Self::Cubic,
4559 ffi::GST_VIDEO_RESAMPLER_METHOD_SINC => Self::Sinc,
4560 ffi::GST_VIDEO_RESAMPLER_METHOD_LANCZOS => Self::Lanczos,
4561 value => Self::__Unknown(value),
4562 }
4563 }
4564}
4565
4566impl StaticType for VideoResamplerMethod {
4567 #[inline]
4568 #[doc(alias = "gst_video_resampler_method_get_type")]
4569 fn static_type() -> glib::Type {
4570 unsafe { from_glib(ffi::gst_video_resampler_method_get_type()) }
4571 }
4572}
4573
4574impl glib::HasParamSpec for VideoResamplerMethod {
4575 type ParamSpec = glib::ParamSpecEnum;
4576 type SetValue = Self;
4577 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4578
4579 fn param_spec_builder() -> Self::BuilderFn {
4580 Self::ParamSpec::builder_with_default
4581 }
4582}
4583
4584impl glib::value::ValueType for VideoResamplerMethod {
4585 type Type = Self;
4586}
4587
4588unsafe impl<'a> glib::value::FromValue<'a> for VideoResamplerMethod {
4589 type Checker = glib::value::GenericValueTypeChecker<Self>;
4590
4591 #[inline]
4592 unsafe fn from_value(value: &'a glib::Value) -> Self {
4593 skip_assert_initialized!();
4594 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4595 }
4596}
4597
4598impl ToValue for VideoResamplerMethod {
4599 #[inline]
4600 fn to_value(&self) -> glib::Value {
4601 let mut value = glib::Value::for_value_type::<Self>();
4602 unsafe {
4603 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4604 }
4605 value
4606 }
4607
4608 #[inline]
4609 fn value_type(&self) -> glib::Type {
4610 Self::static_type()
4611 }
4612}
4613
4614impl From<VideoResamplerMethod> for glib::Value {
4615 #[inline]
4616 fn from(v: VideoResamplerMethod) -> Self {
4617 skip_assert_initialized!();
4618 ToValue::to_value(&v)
4619 }
4620}
4621
4622#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4624#[non_exhaustive]
4625#[doc(alias = "GstVideoTileMode")]
4626pub enum VideoTileMode {
4627 #[doc(alias = "GST_VIDEO_TILE_MODE_UNKNOWN")]
4629 Unknown,
4630 #[doc(alias = "GST_VIDEO_TILE_MODE_ZFLIPZ_2X2")]
4635 Zflipz2x2,
4636 #[cfg(feature = "v1_18")]
4638 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4639 #[doc(alias = "GST_VIDEO_TILE_MODE_LINEAR")]
4640 Linear,
4641 #[doc(hidden)]
4642 __Unknown(i32),
4643}
4644
4645#[doc(hidden)]
4646impl IntoGlib for VideoTileMode {
4647 type GlibType = ffi::GstVideoTileMode;
4648
4649 #[inline]
4650 fn into_glib(self) -> ffi::GstVideoTileMode {
4651 match self {
4652 Self::Unknown => ffi::GST_VIDEO_TILE_MODE_UNKNOWN,
4653 Self::Zflipz2x2 => ffi::GST_VIDEO_TILE_MODE_ZFLIPZ_2X2,
4654 #[cfg(feature = "v1_18")]
4655 Self::Linear => ffi::GST_VIDEO_TILE_MODE_LINEAR,
4656 Self::__Unknown(value) => value,
4657 }
4658 }
4659}
4660
4661#[doc(hidden)]
4662impl FromGlib<ffi::GstVideoTileMode> for VideoTileMode {
4663 #[inline]
4664 unsafe fn from_glib(value: ffi::GstVideoTileMode) -> Self {
4665 skip_assert_initialized!();
4666
4667 match value {
4668 ffi::GST_VIDEO_TILE_MODE_UNKNOWN => Self::Unknown,
4669 ffi::GST_VIDEO_TILE_MODE_ZFLIPZ_2X2 => Self::Zflipz2x2,
4670 #[cfg(feature = "v1_18")]
4671 ffi::GST_VIDEO_TILE_MODE_LINEAR => Self::Linear,
4672 value => Self::__Unknown(value),
4673 }
4674 }
4675}
4676
4677impl StaticType for VideoTileMode {
4678 #[inline]
4679 #[doc(alias = "gst_video_tile_mode_get_type")]
4680 fn static_type() -> glib::Type {
4681 unsafe { from_glib(ffi::gst_video_tile_mode_get_type()) }
4682 }
4683}
4684
4685impl glib::HasParamSpec for VideoTileMode {
4686 type ParamSpec = glib::ParamSpecEnum;
4687 type SetValue = Self;
4688 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4689
4690 fn param_spec_builder() -> Self::BuilderFn {
4691 Self::ParamSpec::builder_with_default
4692 }
4693}
4694
4695impl glib::value::ValueType for VideoTileMode {
4696 type Type = Self;
4697}
4698
4699unsafe impl<'a> glib::value::FromValue<'a> for VideoTileMode {
4700 type Checker = glib::value::GenericValueTypeChecker<Self>;
4701
4702 #[inline]
4703 unsafe fn from_value(value: &'a glib::Value) -> Self {
4704 skip_assert_initialized!();
4705 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4706 }
4707}
4708
4709impl ToValue for VideoTileMode {
4710 #[inline]
4711 fn to_value(&self) -> glib::Value {
4712 let mut value = glib::Value::for_value_type::<Self>();
4713 unsafe {
4714 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4715 }
4716 value
4717 }
4718
4719 #[inline]
4720 fn value_type(&self) -> glib::Type {
4721 Self::static_type()
4722 }
4723}
4724
4725impl From<VideoTileMode> for glib::Value {
4726 #[inline]
4727 fn from(v: VideoTileMode) -> Self {
4728 skip_assert_initialized!();
4729 ToValue::to_value(&v)
4730 }
4731}
4732
4733#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4736#[non_exhaustive]
4737#[doc(alias = "GstVideoTransferFunction")]
4738pub enum VideoTransferFunction {
4739 #[doc(alias = "GST_VIDEO_TRANSFER_UNKNOWN")]
4741 Unknown,
4742 #[doc(alias = "GST_VIDEO_TRANSFER_GAMMA10")]
4744 Gamma10,
4745 #[doc(alias = "GST_VIDEO_TRANSFER_GAMMA18")]
4747 Gamma18,
4748 #[doc(alias = "GST_VIDEO_TRANSFER_GAMMA20")]
4750 Gamma20,
4751 #[doc(alias = "GST_VIDEO_TRANSFER_GAMMA22")]
4753 Gamma22,
4754 #[doc(alias = "GST_VIDEO_TRANSFER_BT709")]
4758 Bt709,
4759 #[doc(alias = "GST_VIDEO_TRANSFER_SMPTE240M")]
4762 Smpte240m,
4763 #[doc(alias = "GST_VIDEO_TRANSFER_SRGB")]
4766 Srgb,
4767 #[doc(alias = "GST_VIDEO_TRANSFER_GAMMA28")]
4769 Gamma28,
4770 #[doc(alias = "GST_VIDEO_TRANSFER_LOG100")]
4773 Log100,
4774 #[doc(alias = "GST_VIDEO_TRANSFER_LOG316")]
4777 Log316,
4778 #[doc(alias = "GST_VIDEO_TRANSFER_BT2020_12")]
4782 Bt202012,
4783 #[doc(alias = "GST_VIDEO_TRANSFER_ADOBERGB")]
4785 Adobergb,
4786 #[cfg(feature = "v1_18")]
4791 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4792 #[doc(alias = "GST_VIDEO_TRANSFER_BT2020_10")]
4793 Bt202010,
4794 #[cfg(feature = "v1_18")]
4798 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4799 #[doc(alias = "GST_VIDEO_TRANSFER_SMPTE2084")]
4800 Smpte2084,
4801 #[cfg(feature = "v1_18")]
4805 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4806 #[doc(alias = "GST_VIDEO_TRANSFER_ARIB_STD_B67")]
4807 AribStdB67,
4808 #[cfg(feature = "v1_18")]
4810 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4811 #[doc(alias = "GST_VIDEO_TRANSFER_BT601")]
4812 Bt601,
4813 #[doc(hidden)]
4814 __Unknown(i32),
4815}
4816
4817impl VideoTransferFunction {
4818 #[cfg(feature = "v1_20")]
4819 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
4820 #[doc(alias = "gst_video_transfer_function_decode")]
4821 pub fn decode(self, val: f64) -> f64 {
4822 assert_initialized_main_thread!();
4823 unsafe { ffi::gst_video_transfer_function_decode(self.into_glib(), val) }
4824 }
4825
4826 #[cfg(feature = "v1_20")]
4827 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
4828 #[doc(alias = "gst_video_transfer_function_encode")]
4829 pub fn encode(self, val: f64) -> f64 {
4830 assert_initialized_main_thread!();
4831 unsafe { ffi::gst_video_transfer_function_encode(self.into_glib(), val) }
4832 }
4833
4834 #[cfg(feature = "v1_18")]
4835 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4836 #[doc(alias = "gst_video_transfer_function_from_iso")]
4837 pub fn from_iso(value: u32) -> VideoTransferFunction {
4838 assert_initialized_main_thread!();
4839 unsafe { from_glib(ffi::gst_video_transfer_function_from_iso(value)) }
4840 }
4841
4842 #[cfg(feature = "v1_18")]
4843 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4844 #[doc(alias = "gst_video_transfer_function_is_equivalent")]
4845 pub fn is_equivalent(self, from_bpp: u32, to_func: VideoTransferFunction, to_bpp: u32) -> bool {
4846 assert_initialized_main_thread!();
4847 unsafe {
4848 from_glib(ffi::gst_video_transfer_function_is_equivalent(
4849 self.into_glib(),
4850 from_bpp,
4851 to_func.into_glib(),
4852 to_bpp,
4853 ))
4854 }
4855 }
4856
4857 #[cfg(feature = "v1_18")]
4858 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4859 #[doc(alias = "gst_video_transfer_function_to_iso")]
4860 pub fn to_iso(self) -> u32 {
4861 assert_initialized_main_thread!();
4862 unsafe { ffi::gst_video_transfer_function_to_iso(self.into_glib()) }
4863 }
4864}
4865
4866#[doc(hidden)]
4867impl IntoGlib for VideoTransferFunction {
4868 type GlibType = ffi::GstVideoTransferFunction;
4869
4870 fn into_glib(self) -> ffi::GstVideoTransferFunction {
4871 match self {
4872 Self::Unknown => ffi::GST_VIDEO_TRANSFER_UNKNOWN,
4873 Self::Gamma10 => ffi::GST_VIDEO_TRANSFER_GAMMA10,
4874 Self::Gamma18 => ffi::GST_VIDEO_TRANSFER_GAMMA18,
4875 Self::Gamma20 => ffi::GST_VIDEO_TRANSFER_GAMMA20,
4876 Self::Gamma22 => ffi::GST_VIDEO_TRANSFER_GAMMA22,
4877 Self::Bt709 => ffi::GST_VIDEO_TRANSFER_BT709,
4878 Self::Smpte240m => ffi::GST_VIDEO_TRANSFER_SMPTE240M,
4879 Self::Srgb => ffi::GST_VIDEO_TRANSFER_SRGB,
4880 Self::Gamma28 => ffi::GST_VIDEO_TRANSFER_GAMMA28,
4881 Self::Log100 => ffi::GST_VIDEO_TRANSFER_LOG100,
4882 Self::Log316 => ffi::GST_VIDEO_TRANSFER_LOG316,
4883 Self::Bt202012 => ffi::GST_VIDEO_TRANSFER_BT2020_12,
4884 Self::Adobergb => ffi::GST_VIDEO_TRANSFER_ADOBERGB,
4885 #[cfg(feature = "v1_18")]
4886 Self::Bt202010 => ffi::GST_VIDEO_TRANSFER_BT2020_10,
4887 #[cfg(feature = "v1_18")]
4888 Self::Smpte2084 => ffi::GST_VIDEO_TRANSFER_SMPTE2084,
4889 #[cfg(feature = "v1_18")]
4890 Self::AribStdB67 => ffi::GST_VIDEO_TRANSFER_ARIB_STD_B67,
4891 #[cfg(feature = "v1_18")]
4892 Self::Bt601 => ffi::GST_VIDEO_TRANSFER_BT601,
4893 Self::__Unknown(value) => value,
4894 }
4895 }
4896}
4897
4898#[doc(hidden)]
4899impl FromGlib<ffi::GstVideoTransferFunction> for VideoTransferFunction {
4900 unsafe fn from_glib(value: ffi::GstVideoTransferFunction) -> Self {
4901 skip_assert_initialized!();
4902
4903 match value {
4904 ffi::GST_VIDEO_TRANSFER_UNKNOWN => Self::Unknown,
4905 ffi::GST_VIDEO_TRANSFER_GAMMA10 => Self::Gamma10,
4906 ffi::GST_VIDEO_TRANSFER_GAMMA18 => Self::Gamma18,
4907 ffi::GST_VIDEO_TRANSFER_GAMMA20 => Self::Gamma20,
4908 ffi::GST_VIDEO_TRANSFER_GAMMA22 => Self::Gamma22,
4909 ffi::GST_VIDEO_TRANSFER_BT709 => Self::Bt709,
4910 ffi::GST_VIDEO_TRANSFER_SMPTE240M => Self::Smpte240m,
4911 ffi::GST_VIDEO_TRANSFER_SRGB => Self::Srgb,
4912 ffi::GST_VIDEO_TRANSFER_GAMMA28 => Self::Gamma28,
4913 ffi::GST_VIDEO_TRANSFER_LOG100 => Self::Log100,
4914 ffi::GST_VIDEO_TRANSFER_LOG316 => Self::Log316,
4915 ffi::GST_VIDEO_TRANSFER_BT2020_12 => Self::Bt202012,
4916 ffi::GST_VIDEO_TRANSFER_ADOBERGB => Self::Adobergb,
4917 #[cfg(feature = "v1_18")]
4918 ffi::GST_VIDEO_TRANSFER_BT2020_10 => Self::Bt202010,
4919 #[cfg(feature = "v1_18")]
4920 ffi::GST_VIDEO_TRANSFER_SMPTE2084 => Self::Smpte2084,
4921 #[cfg(feature = "v1_18")]
4922 ffi::GST_VIDEO_TRANSFER_ARIB_STD_B67 => Self::AribStdB67,
4923 #[cfg(feature = "v1_18")]
4924 ffi::GST_VIDEO_TRANSFER_BT601 => Self::Bt601,
4925 value => Self::__Unknown(value),
4926 }
4927 }
4928}
4929
4930impl StaticType for VideoTransferFunction {
4931 #[inline]
4932 #[doc(alias = "gst_video_transfer_function_get_type")]
4933 fn static_type() -> glib::Type {
4934 unsafe { from_glib(ffi::gst_video_transfer_function_get_type()) }
4935 }
4936}
4937
4938impl glib::HasParamSpec for VideoTransferFunction {
4939 type ParamSpec = glib::ParamSpecEnum;
4940 type SetValue = Self;
4941 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4942
4943 fn param_spec_builder() -> Self::BuilderFn {
4944 Self::ParamSpec::builder_with_default
4945 }
4946}
4947
4948impl glib::value::ValueType for VideoTransferFunction {
4949 type Type = Self;
4950}
4951
4952unsafe impl<'a> glib::value::FromValue<'a> for VideoTransferFunction {
4953 type Checker = glib::value::GenericValueTypeChecker<Self>;
4954
4955 #[inline]
4956 unsafe fn from_value(value: &'a glib::Value) -> Self {
4957 skip_assert_initialized!();
4958 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4959 }
4960}
4961
4962impl ToValue for VideoTransferFunction {
4963 #[inline]
4964 fn to_value(&self) -> glib::Value {
4965 let mut value = glib::Value::for_value_type::<Self>();
4966 unsafe {
4967 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4968 }
4969 value
4970 }
4971
4972 #[inline]
4973 fn value_type(&self) -> glib::Type {
4974 Self::static_type()
4975 }
4976}
4977
4978impl From<VideoTransferFunction> for glib::Value {
4979 #[inline]
4980 fn from(v: VideoTransferFunction) -> Self {
4981 skip_assert_initialized!();
4982 ToValue::to_value(&v)
4983 }
4984}