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