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