1use crate::ffi;
7use glib::{GStr, prelude::*, translate::*};
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 unsafe { 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 unsafe { 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 unsafe { 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 unsafe { 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 unsafe { 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 unsafe { 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 unsafe { 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 unsafe { 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 unsafe { 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 unsafe { 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 unsafe { 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 unsafe { 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 unsafe { 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 unsafe { 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 unsafe { 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 unsafe { 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 unsafe { 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 #[cfg(feature = "v1_30")]
2607 #[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
2608 #[doc(alias = "GST_VIDEO_FORMAT_AHARDWARE_BUFFER")]
2609 AhardwareBuffer,
2610 #[cfg(feature = "v1_30")]
2611 #[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
2612 #[doc(alias = "GST_VIDEO_FORMAT_RGBA_F16LE")]
2613 RgbaF16le,
2614 #[cfg(feature = "v1_30")]
2615 #[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
2616 #[doc(alias = "GST_VIDEO_FORMAT_RGBA_F16BE")]
2617 RgbaF16be,
2618 #[cfg(feature = "v1_30")]
2619 #[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
2620 #[doc(alias = "GST_VIDEO_FORMAT_RGBA_F32LE")]
2621 RgbaF32le,
2622 #[cfg(feature = "v1_30")]
2623 #[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
2624 #[doc(alias = "GST_VIDEO_FORMAT_RGBA_F32BE")]
2625 RgbaF32be,
2626 #[cfg(feature = "v1_30")]
2627 #[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
2628 #[doc(alias = "GST_VIDEO_FORMAT_ARGB_F32")]
2629 ArgbF32,
2630 #[cfg(feature = "v1_30")]
2631 #[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
2632 #[doc(alias = "GST_VIDEO_FORMAT_RGBP_F16LE")]
2633 RgbpF16le,
2634 #[cfg(feature = "v1_30")]
2635 #[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
2636 #[doc(alias = "GST_VIDEO_FORMAT_RGBP_F16BE")]
2637 RgbpF16be,
2638 #[cfg(feature = "v1_30")]
2639 #[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
2640 #[doc(alias = "GST_VIDEO_FORMAT_RGBP_F32LE")]
2641 RgbpF32le,
2642 #[cfg(feature = "v1_30")]
2643 #[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
2644 #[doc(alias = "GST_VIDEO_FORMAT_RGBP_F32BE")]
2645 RgbpF32be,
2646 #[cfg(feature = "v1_30")]
2647 #[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
2648 #[doc(alias = "GST_VIDEO_FORMAT_RGB_F16LE")]
2649 RgbF16le,
2650 #[cfg(feature = "v1_30")]
2651 #[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
2652 #[doc(alias = "GST_VIDEO_FORMAT_RGB_F16BE")]
2653 RgbF16be,
2654 #[cfg(feature = "v1_30")]
2655 #[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
2656 #[doc(alias = "GST_VIDEO_FORMAT_RGB_F32LE")]
2657 RgbF32le,
2658 #[cfg(feature = "v1_30")]
2659 #[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
2660 #[doc(alias = "GST_VIDEO_FORMAT_RGB_F32BE")]
2661 RgbF32be,
2662 #[cfg(feature = "v1_30")]
2663 #[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
2664 #[doc(alias = "GST_VIDEO_FORMAT_AYUV_F32")]
2665 AyuvF32,
2666 #[cfg(feature = "v1_30")]
2667 #[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
2668 #[doc(alias = "GST_VIDEO_FORMAT_GRAY_F16LE")]
2669 GrayF16le,
2670 #[cfg(feature = "v1_30")]
2671 #[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
2672 #[doc(alias = "GST_VIDEO_FORMAT_GRAY_F16BE")]
2673 GrayF16be,
2674 #[cfg(feature = "v1_30")]
2675 #[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
2676 #[doc(alias = "GST_VIDEO_FORMAT_GRAY_F32LE")]
2677 GrayF32le,
2678 #[cfg(feature = "v1_30")]
2679 #[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
2680 #[doc(alias = "GST_VIDEO_FORMAT_GRAY_F32BE")]
2681 GrayF32be,
2682 #[doc(hidden)]
2683 __Unknown(i32),
2684}
2685
2686impl VideoFormat {
2687 #[doc(alias = "gst_video_format_from_fourcc")]
2688 pub fn from_fourcc(fourcc: u32) -> VideoFormat {
2689 assert_initialized_main_thread!();
2690 unsafe { from_glib(ffi::gst_video_format_from_fourcc(fourcc)) }
2691 }
2692
2693 #[doc(alias = "gst_video_format_from_string")]
2694 pub fn from_string(format: &str) -> VideoFormat {
2695 assert_initialized_main_thread!();
2696 unsafe { from_glib(ffi::gst_video_format_from_string(format.to_glib_none().0)) }
2697 }
2698
2699 #[doc(alias = "gst_video_format_to_fourcc")]
2706 pub fn to_fourcc(self) -> u32 {
2707 assert_initialized_main_thread!();
2708 unsafe { ffi::gst_video_format_to_fourcc(self.into_glib()) }
2709 }
2710}
2711
2712impl std::fmt::Display for VideoFormat {
2713 #[inline]
2714 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2715 f.write_str(&self.to_str())
2716 }
2717}
2718
2719#[doc(hidden)]
2720impl IntoGlib for VideoFormat {
2721 type GlibType = ffi::GstVideoFormat;
2722
2723 fn into_glib(self) -> ffi::GstVideoFormat {
2724 match self {
2725 Self::Unknown => ffi::GST_VIDEO_FORMAT_UNKNOWN,
2726 Self::Encoded => ffi::GST_VIDEO_FORMAT_ENCODED,
2727 Self::I420 => ffi::GST_VIDEO_FORMAT_I420,
2728 Self::Yv12 => ffi::GST_VIDEO_FORMAT_YV12,
2729 Self::Yuy2 => ffi::GST_VIDEO_FORMAT_YUY2,
2730 Self::Uyvy => ffi::GST_VIDEO_FORMAT_UYVY,
2731 Self::Ayuv => ffi::GST_VIDEO_FORMAT_AYUV,
2732 Self::Rgbx => ffi::GST_VIDEO_FORMAT_RGBx,
2733 Self::Bgrx => ffi::GST_VIDEO_FORMAT_BGRx,
2734 Self::Xrgb => ffi::GST_VIDEO_FORMAT_xRGB,
2735 Self::Xbgr => ffi::GST_VIDEO_FORMAT_xBGR,
2736 Self::Rgba => ffi::GST_VIDEO_FORMAT_RGBA,
2737 Self::Bgra => ffi::GST_VIDEO_FORMAT_BGRA,
2738 Self::Argb => ffi::GST_VIDEO_FORMAT_ARGB,
2739 Self::Abgr => ffi::GST_VIDEO_FORMAT_ABGR,
2740 Self::Rgb => ffi::GST_VIDEO_FORMAT_RGB,
2741 Self::Bgr => ffi::GST_VIDEO_FORMAT_BGR,
2742 Self::Y41b => ffi::GST_VIDEO_FORMAT_Y41B,
2743 Self::Y42b => ffi::GST_VIDEO_FORMAT_Y42B,
2744 Self::Yvyu => ffi::GST_VIDEO_FORMAT_YVYU,
2745 Self::Y444 => ffi::GST_VIDEO_FORMAT_Y444,
2746 Self::V210 => ffi::GST_VIDEO_FORMAT_v210,
2747 Self::V216 => ffi::GST_VIDEO_FORMAT_v216,
2748 Self::Nv12 => ffi::GST_VIDEO_FORMAT_NV12,
2749 Self::Nv21 => ffi::GST_VIDEO_FORMAT_NV21,
2750 Self::Gray8 => ffi::GST_VIDEO_FORMAT_GRAY8,
2751 Self::Gray16Be => ffi::GST_VIDEO_FORMAT_GRAY16_BE,
2752 Self::Gray16Le => ffi::GST_VIDEO_FORMAT_GRAY16_LE,
2753 Self::V308 => ffi::GST_VIDEO_FORMAT_v308,
2754 Self::Rgb16 => ffi::GST_VIDEO_FORMAT_RGB16,
2755 Self::Bgr16 => ffi::GST_VIDEO_FORMAT_BGR16,
2756 Self::Rgb15 => ffi::GST_VIDEO_FORMAT_RGB15,
2757 Self::Bgr15 => ffi::GST_VIDEO_FORMAT_BGR15,
2758 Self::Uyvp => ffi::GST_VIDEO_FORMAT_UYVP,
2759 Self::A420 => ffi::GST_VIDEO_FORMAT_A420,
2760 Self::Rgb8p => ffi::GST_VIDEO_FORMAT_RGB8P,
2761 Self::Yuv9 => ffi::GST_VIDEO_FORMAT_YUV9,
2762 Self::Yvu9 => ffi::GST_VIDEO_FORMAT_YVU9,
2763 Self::Iyu1 => ffi::GST_VIDEO_FORMAT_IYU1,
2764 Self::Argb64 => ffi::GST_VIDEO_FORMAT_ARGB64,
2765 Self::Ayuv64 => ffi::GST_VIDEO_FORMAT_AYUV64,
2766 Self::R210 => ffi::GST_VIDEO_FORMAT_r210,
2767 Self::I42010be => ffi::GST_VIDEO_FORMAT_I420_10BE,
2768 Self::I42010le => ffi::GST_VIDEO_FORMAT_I420_10LE,
2769 Self::I42210be => ffi::GST_VIDEO_FORMAT_I422_10BE,
2770 Self::I42210le => ffi::GST_VIDEO_FORMAT_I422_10LE,
2771 Self::Y44410be => ffi::GST_VIDEO_FORMAT_Y444_10BE,
2772 Self::Y44410le => ffi::GST_VIDEO_FORMAT_Y444_10LE,
2773 Self::Gbr => ffi::GST_VIDEO_FORMAT_GBR,
2774 Self::Gbr10be => ffi::GST_VIDEO_FORMAT_GBR_10BE,
2775 Self::Gbr10le => ffi::GST_VIDEO_FORMAT_GBR_10LE,
2776 Self::Nv16 => ffi::GST_VIDEO_FORMAT_NV16,
2777 Self::Nv24 => ffi::GST_VIDEO_FORMAT_NV24,
2778 Self::Nv1264z32 => ffi::GST_VIDEO_FORMAT_NV12_64Z32,
2779 Self::A42010be => ffi::GST_VIDEO_FORMAT_A420_10BE,
2780 Self::A42010le => ffi::GST_VIDEO_FORMAT_A420_10LE,
2781 Self::A42210be => ffi::GST_VIDEO_FORMAT_A422_10BE,
2782 Self::A42210le => ffi::GST_VIDEO_FORMAT_A422_10LE,
2783 Self::A44410be => ffi::GST_VIDEO_FORMAT_A444_10BE,
2784 Self::A44410le => ffi::GST_VIDEO_FORMAT_A444_10LE,
2785 Self::Nv61 => ffi::GST_VIDEO_FORMAT_NV61,
2786 Self::P01010be => ffi::GST_VIDEO_FORMAT_P010_10BE,
2787 Self::P01010le => ffi::GST_VIDEO_FORMAT_P010_10LE,
2788 Self::Iyu2 => ffi::GST_VIDEO_FORMAT_IYU2,
2789 Self::Vyuy => ffi::GST_VIDEO_FORMAT_VYUY,
2790 Self::Gbra => ffi::GST_VIDEO_FORMAT_GBRA,
2791 Self::Gbra10be => ffi::GST_VIDEO_FORMAT_GBRA_10BE,
2792 Self::Gbra10le => ffi::GST_VIDEO_FORMAT_GBRA_10LE,
2793 Self::Gbr12be => ffi::GST_VIDEO_FORMAT_GBR_12BE,
2794 Self::Gbr12le => ffi::GST_VIDEO_FORMAT_GBR_12LE,
2795 Self::Gbra12be => ffi::GST_VIDEO_FORMAT_GBRA_12BE,
2796 Self::Gbra12le => ffi::GST_VIDEO_FORMAT_GBRA_12LE,
2797 Self::I42012be => ffi::GST_VIDEO_FORMAT_I420_12BE,
2798 Self::I42012le => ffi::GST_VIDEO_FORMAT_I420_12LE,
2799 Self::I42212be => ffi::GST_VIDEO_FORMAT_I422_12BE,
2800 Self::I42212le => ffi::GST_VIDEO_FORMAT_I422_12LE,
2801 Self::Y44412be => ffi::GST_VIDEO_FORMAT_Y444_12BE,
2802 Self::Y44412le => ffi::GST_VIDEO_FORMAT_Y444_12LE,
2803 Self::Gray10Le32 => ffi::GST_VIDEO_FORMAT_GRAY10_LE32,
2804 Self::Nv1210le32 => ffi::GST_VIDEO_FORMAT_NV12_10LE32,
2805 Self::Nv1610le32 => ffi::GST_VIDEO_FORMAT_NV16_10LE32,
2806 #[cfg(feature = "v1_16")]
2807 Self::Nv1210le40 => ffi::GST_VIDEO_FORMAT_NV12_10LE40,
2808 #[cfg(feature = "v1_16")]
2809 Self::Y210 => ffi::GST_VIDEO_FORMAT_Y210,
2810 #[cfg(feature = "v1_16")]
2811 Self::Y410 => ffi::GST_VIDEO_FORMAT_Y410,
2812 #[cfg(feature = "v1_16")]
2813 Self::Vuya => ffi::GST_VIDEO_FORMAT_VUYA,
2814 #[cfg(feature = "v1_16")]
2815 Self::Bgr10a2Le => ffi::GST_VIDEO_FORMAT_BGR10A2_LE,
2816 #[cfg(feature = "v1_18")]
2817 Self::Rgb10a2Le => ffi::GST_VIDEO_FORMAT_RGB10A2_LE,
2818 #[cfg(feature = "v1_18")]
2819 Self::Y44416be => ffi::GST_VIDEO_FORMAT_Y444_16BE,
2820 #[cfg(feature = "v1_18")]
2821 Self::Y44416le => ffi::GST_VIDEO_FORMAT_Y444_16LE,
2822 #[cfg(feature = "v1_18")]
2823 Self::P016Be => ffi::GST_VIDEO_FORMAT_P016_BE,
2824 #[cfg(feature = "v1_18")]
2825 Self::P016Le => ffi::GST_VIDEO_FORMAT_P016_LE,
2826 #[cfg(feature = "v1_18")]
2827 Self::P012Be => ffi::GST_VIDEO_FORMAT_P012_BE,
2828 #[cfg(feature = "v1_18")]
2829 Self::P012Le => ffi::GST_VIDEO_FORMAT_P012_LE,
2830 #[cfg(feature = "v1_18")]
2831 Self::Y212Be => ffi::GST_VIDEO_FORMAT_Y212_BE,
2832 #[cfg(feature = "v1_18")]
2833 Self::Y212Le => ffi::GST_VIDEO_FORMAT_Y212_LE,
2834 #[cfg(feature = "v1_18")]
2835 Self::Y412Be => ffi::GST_VIDEO_FORMAT_Y412_BE,
2836 #[cfg(feature = "v1_18")]
2837 Self::Y412Le => ffi::GST_VIDEO_FORMAT_Y412_LE,
2838 #[cfg(feature = "v1_18")]
2839 Self::Nv124l4 => ffi::GST_VIDEO_FORMAT_NV12_4L4,
2840 #[cfg(feature = "v1_18")]
2841 Self::Nv1232l32 => ffi::GST_VIDEO_FORMAT_NV12_32L32,
2842 #[cfg(feature = "v1_20")]
2843 Self::Rgbp => ffi::GST_VIDEO_FORMAT_RGBP,
2844 #[cfg(feature = "v1_20")]
2845 Self::Bgrp => ffi::GST_VIDEO_FORMAT_BGRP,
2846 #[cfg(feature = "v1_20")]
2847 Self::Av12 => ffi::GST_VIDEO_FORMAT_AV12,
2848 #[cfg(feature = "v1_20")]
2849 Self::Argb64Le => ffi::GST_VIDEO_FORMAT_ARGB64_LE,
2850 #[cfg(feature = "v1_20")]
2851 Self::Argb64Be => ffi::GST_VIDEO_FORMAT_ARGB64_BE,
2852 #[cfg(feature = "v1_20")]
2853 Self::Rgba64Le => ffi::GST_VIDEO_FORMAT_RGBA64_LE,
2854 #[cfg(feature = "v1_20")]
2855 Self::Rgba64Be => ffi::GST_VIDEO_FORMAT_RGBA64_BE,
2856 #[cfg(feature = "v1_20")]
2857 Self::Bgra64Le => ffi::GST_VIDEO_FORMAT_BGRA64_LE,
2858 #[cfg(feature = "v1_20")]
2859 Self::Bgra64Be => ffi::GST_VIDEO_FORMAT_BGRA64_BE,
2860 #[cfg(feature = "v1_20")]
2861 Self::Abgr64Le => ffi::GST_VIDEO_FORMAT_ABGR64_LE,
2862 #[cfg(feature = "v1_20")]
2863 Self::Abgr64Be => ffi::GST_VIDEO_FORMAT_ABGR64_BE,
2864 #[cfg(feature = "v1_22")]
2865 Self::Nv1216l32s => ffi::GST_VIDEO_FORMAT_NV12_16L32S,
2866 #[cfg(feature = "v1_22")]
2867 Self::Nv128l128 => ffi::GST_VIDEO_FORMAT_NV12_8L128,
2868 #[cfg(feature = "v1_22")]
2869 Self::Nv1210be8l128 => ffi::GST_VIDEO_FORMAT_NV12_10BE_8L128,
2870 #[cfg(feature = "v1_24")]
2871 Self::Nv1210le404l4 => ffi::GST_VIDEO_FORMAT_NV12_10LE40_4L4,
2872 #[cfg(feature = "v1_24")]
2873 Self::DmaDrm => ffi::GST_VIDEO_FORMAT_DMA_DRM,
2874 #[cfg(feature = "v1_24")]
2875 Self::Mt2110t => ffi::GST_VIDEO_FORMAT_MT2110T,
2876 #[cfg(feature = "v1_24")]
2877 Self::Mt2110r => ffi::GST_VIDEO_FORMAT_MT2110R,
2878 #[cfg(feature = "v1_24")]
2879 Self::A422 => ffi::GST_VIDEO_FORMAT_A422,
2880 #[cfg(feature = "v1_24")]
2881 Self::A444 => ffi::GST_VIDEO_FORMAT_A444,
2882 #[cfg(feature = "v1_24")]
2883 Self::A44412le => ffi::GST_VIDEO_FORMAT_A444_12LE,
2884 #[cfg(feature = "v1_24")]
2885 Self::A44412be => ffi::GST_VIDEO_FORMAT_A444_12BE,
2886 #[cfg(feature = "v1_24")]
2887 Self::A42212le => ffi::GST_VIDEO_FORMAT_A422_12LE,
2888 #[cfg(feature = "v1_24")]
2889 Self::A42212be => ffi::GST_VIDEO_FORMAT_A422_12BE,
2890 #[cfg(feature = "v1_24")]
2891 Self::A42012le => ffi::GST_VIDEO_FORMAT_A420_12LE,
2892 #[cfg(feature = "v1_24")]
2893 Self::A42012be => ffi::GST_VIDEO_FORMAT_A420_12BE,
2894 #[cfg(feature = "v1_24")]
2895 Self::A44416le => ffi::GST_VIDEO_FORMAT_A444_16LE,
2896 #[cfg(feature = "v1_24")]
2897 Self::A44416be => ffi::GST_VIDEO_FORMAT_A444_16BE,
2898 #[cfg(feature = "v1_24")]
2899 Self::A42216le => ffi::GST_VIDEO_FORMAT_A422_16LE,
2900 #[cfg(feature = "v1_24")]
2901 Self::A42216be => ffi::GST_VIDEO_FORMAT_A422_16BE,
2902 #[cfg(feature = "v1_24")]
2903 Self::A42016le => ffi::GST_VIDEO_FORMAT_A420_16LE,
2904 #[cfg(feature = "v1_24")]
2905 Self::A42016be => ffi::GST_VIDEO_FORMAT_A420_16BE,
2906 #[cfg(feature = "v1_24")]
2907 Self::Gbr16le => ffi::GST_VIDEO_FORMAT_GBR_16LE,
2908 #[cfg(feature = "v1_24")]
2909 Self::Gbr16be => ffi::GST_VIDEO_FORMAT_GBR_16BE,
2910 #[cfg(feature = "v1_24")]
2911 Self::Rbga => ffi::GST_VIDEO_FORMAT_RBGA,
2912 #[cfg(feature = "v1_26")]
2913 Self::Y216Le => ffi::GST_VIDEO_FORMAT_Y216_LE,
2914 #[cfg(feature = "v1_26")]
2915 Self::Y216Be => ffi::GST_VIDEO_FORMAT_Y216_BE,
2916 #[cfg(feature = "v1_26")]
2917 Self::Y416Le => ffi::GST_VIDEO_FORMAT_Y416_LE,
2918 #[cfg(feature = "v1_26")]
2919 Self::Y416Be => ffi::GST_VIDEO_FORMAT_Y416_BE,
2920 #[cfg(feature = "v1_26")]
2921 Self::Gray10Le16 => ffi::GST_VIDEO_FORMAT_GRAY10_LE16,
2922 #[cfg(feature = "v1_28")]
2923 Self::Nv1610le40 => ffi::GST_VIDEO_FORMAT_NV16_10LE40,
2924 #[cfg(feature = "v1_28")]
2925 Self::Bgr10x2Le => ffi::GST_VIDEO_FORMAT_BGR10x2_LE,
2926 #[cfg(feature = "v1_28")]
2927 Self::Rgb10x2Le => ffi::GST_VIDEO_FORMAT_RGB10x2_LE,
2928 #[cfg(feature = "v1_30")]
2929 Self::AhardwareBuffer => ffi::GST_VIDEO_FORMAT_AHARDWARE_BUFFER,
2930 #[cfg(feature = "v1_30")]
2931 Self::RgbaF16le => ffi::GST_VIDEO_FORMAT_RGBA_F16LE,
2932 #[cfg(feature = "v1_30")]
2933 Self::RgbaF16be => ffi::GST_VIDEO_FORMAT_RGBA_F16BE,
2934 #[cfg(feature = "v1_30")]
2935 Self::RgbaF32le => ffi::GST_VIDEO_FORMAT_RGBA_F32LE,
2936 #[cfg(feature = "v1_30")]
2937 Self::RgbaF32be => ffi::GST_VIDEO_FORMAT_RGBA_F32BE,
2938 #[cfg(feature = "v1_30")]
2939 Self::ArgbF32 => ffi::GST_VIDEO_FORMAT_ARGB_F32,
2940 #[cfg(feature = "v1_30")]
2941 Self::RgbpF16le => ffi::GST_VIDEO_FORMAT_RGBP_F16LE,
2942 #[cfg(feature = "v1_30")]
2943 Self::RgbpF16be => ffi::GST_VIDEO_FORMAT_RGBP_F16BE,
2944 #[cfg(feature = "v1_30")]
2945 Self::RgbpF32le => ffi::GST_VIDEO_FORMAT_RGBP_F32LE,
2946 #[cfg(feature = "v1_30")]
2947 Self::RgbpF32be => ffi::GST_VIDEO_FORMAT_RGBP_F32BE,
2948 #[cfg(feature = "v1_30")]
2949 Self::RgbF16le => ffi::GST_VIDEO_FORMAT_RGB_F16LE,
2950 #[cfg(feature = "v1_30")]
2951 Self::RgbF16be => ffi::GST_VIDEO_FORMAT_RGB_F16BE,
2952 #[cfg(feature = "v1_30")]
2953 Self::RgbF32le => ffi::GST_VIDEO_FORMAT_RGB_F32LE,
2954 #[cfg(feature = "v1_30")]
2955 Self::RgbF32be => ffi::GST_VIDEO_FORMAT_RGB_F32BE,
2956 #[cfg(feature = "v1_30")]
2957 Self::AyuvF32 => ffi::GST_VIDEO_FORMAT_AYUV_F32,
2958 #[cfg(feature = "v1_30")]
2959 Self::GrayF16le => ffi::GST_VIDEO_FORMAT_GRAY_F16LE,
2960 #[cfg(feature = "v1_30")]
2961 Self::GrayF16be => ffi::GST_VIDEO_FORMAT_GRAY_F16BE,
2962 #[cfg(feature = "v1_30")]
2963 Self::GrayF32le => ffi::GST_VIDEO_FORMAT_GRAY_F32LE,
2964 #[cfg(feature = "v1_30")]
2965 Self::GrayF32be => ffi::GST_VIDEO_FORMAT_GRAY_F32BE,
2966 Self::__Unknown(value) => value,
2967 }
2968 }
2969}
2970
2971#[doc(hidden)]
2972impl FromGlib<ffi::GstVideoFormat> for VideoFormat {
2973 unsafe fn from_glib(value: ffi::GstVideoFormat) -> Self {
2974 skip_assert_initialized!();
2975
2976 match value {
2977 ffi::GST_VIDEO_FORMAT_UNKNOWN => Self::Unknown,
2978 ffi::GST_VIDEO_FORMAT_ENCODED => Self::Encoded,
2979 ffi::GST_VIDEO_FORMAT_I420 => Self::I420,
2980 ffi::GST_VIDEO_FORMAT_YV12 => Self::Yv12,
2981 ffi::GST_VIDEO_FORMAT_YUY2 => Self::Yuy2,
2982 ffi::GST_VIDEO_FORMAT_UYVY => Self::Uyvy,
2983 ffi::GST_VIDEO_FORMAT_AYUV => Self::Ayuv,
2984 ffi::GST_VIDEO_FORMAT_RGBx => Self::Rgbx,
2985 ffi::GST_VIDEO_FORMAT_BGRx => Self::Bgrx,
2986 ffi::GST_VIDEO_FORMAT_xRGB => Self::Xrgb,
2987 ffi::GST_VIDEO_FORMAT_xBGR => Self::Xbgr,
2988 ffi::GST_VIDEO_FORMAT_RGBA => Self::Rgba,
2989 ffi::GST_VIDEO_FORMAT_BGRA => Self::Bgra,
2990 ffi::GST_VIDEO_FORMAT_ARGB => Self::Argb,
2991 ffi::GST_VIDEO_FORMAT_ABGR => Self::Abgr,
2992 ffi::GST_VIDEO_FORMAT_RGB => Self::Rgb,
2993 ffi::GST_VIDEO_FORMAT_BGR => Self::Bgr,
2994 ffi::GST_VIDEO_FORMAT_Y41B => Self::Y41b,
2995 ffi::GST_VIDEO_FORMAT_Y42B => Self::Y42b,
2996 ffi::GST_VIDEO_FORMAT_YVYU => Self::Yvyu,
2997 ffi::GST_VIDEO_FORMAT_Y444 => Self::Y444,
2998 ffi::GST_VIDEO_FORMAT_v210 => Self::V210,
2999 ffi::GST_VIDEO_FORMAT_v216 => Self::V216,
3000 ffi::GST_VIDEO_FORMAT_NV12 => Self::Nv12,
3001 ffi::GST_VIDEO_FORMAT_NV21 => Self::Nv21,
3002 ffi::GST_VIDEO_FORMAT_GRAY8 => Self::Gray8,
3003 ffi::GST_VIDEO_FORMAT_GRAY16_BE => Self::Gray16Be,
3004 ffi::GST_VIDEO_FORMAT_GRAY16_LE => Self::Gray16Le,
3005 ffi::GST_VIDEO_FORMAT_v308 => Self::V308,
3006 ffi::GST_VIDEO_FORMAT_RGB16 => Self::Rgb16,
3007 ffi::GST_VIDEO_FORMAT_BGR16 => Self::Bgr16,
3008 ffi::GST_VIDEO_FORMAT_RGB15 => Self::Rgb15,
3009 ffi::GST_VIDEO_FORMAT_BGR15 => Self::Bgr15,
3010 ffi::GST_VIDEO_FORMAT_UYVP => Self::Uyvp,
3011 ffi::GST_VIDEO_FORMAT_A420 => Self::A420,
3012 ffi::GST_VIDEO_FORMAT_RGB8P => Self::Rgb8p,
3013 ffi::GST_VIDEO_FORMAT_YUV9 => Self::Yuv9,
3014 ffi::GST_VIDEO_FORMAT_YVU9 => Self::Yvu9,
3015 ffi::GST_VIDEO_FORMAT_IYU1 => Self::Iyu1,
3016 ffi::GST_VIDEO_FORMAT_ARGB64 => Self::Argb64,
3017 ffi::GST_VIDEO_FORMAT_AYUV64 => Self::Ayuv64,
3018 ffi::GST_VIDEO_FORMAT_r210 => Self::R210,
3019 ffi::GST_VIDEO_FORMAT_I420_10BE => Self::I42010be,
3020 ffi::GST_VIDEO_FORMAT_I420_10LE => Self::I42010le,
3021 ffi::GST_VIDEO_FORMAT_I422_10BE => Self::I42210be,
3022 ffi::GST_VIDEO_FORMAT_I422_10LE => Self::I42210le,
3023 ffi::GST_VIDEO_FORMAT_Y444_10BE => Self::Y44410be,
3024 ffi::GST_VIDEO_FORMAT_Y444_10LE => Self::Y44410le,
3025 ffi::GST_VIDEO_FORMAT_GBR => Self::Gbr,
3026 ffi::GST_VIDEO_FORMAT_GBR_10BE => Self::Gbr10be,
3027 ffi::GST_VIDEO_FORMAT_GBR_10LE => Self::Gbr10le,
3028 ffi::GST_VIDEO_FORMAT_NV16 => Self::Nv16,
3029 ffi::GST_VIDEO_FORMAT_NV24 => Self::Nv24,
3030 ffi::GST_VIDEO_FORMAT_NV12_64Z32 => Self::Nv1264z32,
3031 ffi::GST_VIDEO_FORMAT_A420_10BE => Self::A42010be,
3032 ffi::GST_VIDEO_FORMAT_A420_10LE => Self::A42010le,
3033 ffi::GST_VIDEO_FORMAT_A422_10BE => Self::A42210be,
3034 ffi::GST_VIDEO_FORMAT_A422_10LE => Self::A42210le,
3035 ffi::GST_VIDEO_FORMAT_A444_10BE => Self::A44410be,
3036 ffi::GST_VIDEO_FORMAT_A444_10LE => Self::A44410le,
3037 ffi::GST_VIDEO_FORMAT_NV61 => Self::Nv61,
3038 ffi::GST_VIDEO_FORMAT_P010_10BE => Self::P01010be,
3039 ffi::GST_VIDEO_FORMAT_P010_10LE => Self::P01010le,
3040 ffi::GST_VIDEO_FORMAT_IYU2 => Self::Iyu2,
3041 ffi::GST_VIDEO_FORMAT_VYUY => Self::Vyuy,
3042 ffi::GST_VIDEO_FORMAT_GBRA => Self::Gbra,
3043 ffi::GST_VIDEO_FORMAT_GBRA_10BE => Self::Gbra10be,
3044 ffi::GST_VIDEO_FORMAT_GBRA_10LE => Self::Gbra10le,
3045 ffi::GST_VIDEO_FORMAT_GBR_12BE => Self::Gbr12be,
3046 ffi::GST_VIDEO_FORMAT_GBR_12LE => Self::Gbr12le,
3047 ffi::GST_VIDEO_FORMAT_GBRA_12BE => Self::Gbra12be,
3048 ffi::GST_VIDEO_FORMAT_GBRA_12LE => Self::Gbra12le,
3049 ffi::GST_VIDEO_FORMAT_I420_12BE => Self::I42012be,
3050 ffi::GST_VIDEO_FORMAT_I420_12LE => Self::I42012le,
3051 ffi::GST_VIDEO_FORMAT_I422_12BE => Self::I42212be,
3052 ffi::GST_VIDEO_FORMAT_I422_12LE => Self::I42212le,
3053 ffi::GST_VIDEO_FORMAT_Y444_12BE => Self::Y44412be,
3054 ffi::GST_VIDEO_FORMAT_Y444_12LE => Self::Y44412le,
3055 ffi::GST_VIDEO_FORMAT_GRAY10_LE32 => Self::Gray10Le32,
3056 ffi::GST_VIDEO_FORMAT_NV12_10LE32 => Self::Nv1210le32,
3057 ffi::GST_VIDEO_FORMAT_NV16_10LE32 => Self::Nv1610le32,
3058 #[cfg(feature = "v1_16")]
3059 ffi::GST_VIDEO_FORMAT_NV12_10LE40 => Self::Nv1210le40,
3060 #[cfg(feature = "v1_16")]
3061 ffi::GST_VIDEO_FORMAT_Y210 => Self::Y210,
3062 #[cfg(feature = "v1_16")]
3063 ffi::GST_VIDEO_FORMAT_Y410 => Self::Y410,
3064 #[cfg(feature = "v1_16")]
3065 ffi::GST_VIDEO_FORMAT_VUYA => Self::Vuya,
3066 #[cfg(feature = "v1_16")]
3067 ffi::GST_VIDEO_FORMAT_BGR10A2_LE => Self::Bgr10a2Le,
3068 #[cfg(feature = "v1_18")]
3069 ffi::GST_VIDEO_FORMAT_RGB10A2_LE => Self::Rgb10a2Le,
3070 #[cfg(feature = "v1_18")]
3071 ffi::GST_VIDEO_FORMAT_Y444_16BE => Self::Y44416be,
3072 #[cfg(feature = "v1_18")]
3073 ffi::GST_VIDEO_FORMAT_Y444_16LE => Self::Y44416le,
3074 #[cfg(feature = "v1_18")]
3075 ffi::GST_VIDEO_FORMAT_P016_BE => Self::P016Be,
3076 #[cfg(feature = "v1_18")]
3077 ffi::GST_VIDEO_FORMAT_P016_LE => Self::P016Le,
3078 #[cfg(feature = "v1_18")]
3079 ffi::GST_VIDEO_FORMAT_P012_BE => Self::P012Be,
3080 #[cfg(feature = "v1_18")]
3081 ffi::GST_VIDEO_FORMAT_P012_LE => Self::P012Le,
3082 #[cfg(feature = "v1_18")]
3083 ffi::GST_VIDEO_FORMAT_Y212_BE => Self::Y212Be,
3084 #[cfg(feature = "v1_18")]
3085 ffi::GST_VIDEO_FORMAT_Y212_LE => Self::Y212Le,
3086 #[cfg(feature = "v1_18")]
3087 ffi::GST_VIDEO_FORMAT_Y412_BE => Self::Y412Be,
3088 #[cfg(feature = "v1_18")]
3089 ffi::GST_VIDEO_FORMAT_Y412_LE => Self::Y412Le,
3090 #[cfg(feature = "v1_18")]
3091 ffi::GST_VIDEO_FORMAT_NV12_4L4 => Self::Nv124l4,
3092 #[cfg(feature = "v1_18")]
3093 ffi::GST_VIDEO_FORMAT_NV12_32L32 => Self::Nv1232l32,
3094 #[cfg(feature = "v1_20")]
3095 ffi::GST_VIDEO_FORMAT_RGBP => Self::Rgbp,
3096 #[cfg(feature = "v1_20")]
3097 ffi::GST_VIDEO_FORMAT_BGRP => Self::Bgrp,
3098 #[cfg(feature = "v1_20")]
3099 ffi::GST_VIDEO_FORMAT_AV12 => Self::Av12,
3100 #[cfg(feature = "v1_20")]
3101 ffi::GST_VIDEO_FORMAT_ARGB64_LE => Self::Argb64Le,
3102 #[cfg(feature = "v1_20")]
3103 ffi::GST_VIDEO_FORMAT_ARGB64_BE => Self::Argb64Be,
3104 #[cfg(feature = "v1_20")]
3105 ffi::GST_VIDEO_FORMAT_RGBA64_LE => Self::Rgba64Le,
3106 #[cfg(feature = "v1_20")]
3107 ffi::GST_VIDEO_FORMAT_RGBA64_BE => Self::Rgba64Be,
3108 #[cfg(feature = "v1_20")]
3109 ffi::GST_VIDEO_FORMAT_BGRA64_LE => Self::Bgra64Le,
3110 #[cfg(feature = "v1_20")]
3111 ffi::GST_VIDEO_FORMAT_BGRA64_BE => Self::Bgra64Be,
3112 #[cfg(feature = "v1_20")]
3113 ffi::GST_VIDEO_FORMAT_ABGR64_LE => Self::Abgr64Le,
3114 #[cfg(feature = "v1_20")]
3115 ffi::GST_VIDEO_FORMAT_ABGR64_BE => Self::Abgr64Be,
3116 #[cfg(feature = "v1_22")]
3117 ffi::GST_VIDEO_FORMAT_NV12_16L32S => Self::Nv1216l32s,
3118 #[cfg(feature = "v1_22")]
3119 ffi::GST_VIDEO_FORMAT_NV12_8L128 => Self::Nv128l128,
3120 #[cfg(feature = "v1_22")]
3121 ffi::GST_VIDEO_FORMAT_NV12_10BE_8L128 => Self::Nv1210be8l128,
3122 #[cfg(feature = "v1_24")]
3123 ffi::GST_VIDEO_FORMAT_NV12_10LE40_4L4 => Self::Nv1210le404l4,
3124 #[cfg(feature = "v1_24")]
3125 ffi::GST_VIDEO_FORMAT_DMA_DRM => Self::DmaDrm,
3126 #[cfg(feature = "v1_24")]
3127 ffi::GST_VIDEO_FORMAT_MT2110T => Self::Mt2110t,
3128 #[cfg(feature = "v1_24")]
3129 ffi::GST_VIDEO_FORMAT_MT2110R => Self::Mt2110r,
3130 #[cfg(feature = "v1_24")]
3131 ffi::GST_VIDEO_FORMAT_A422 => Self::A422,
3132 #[cfg(feature = "v1_24")]
3133 ffi::GST_VIDEO_FORMAT_A444 => Self::A444,
3134 #[cfg(feature = "v1_24")]
3135 ffi::GST_VIDEO_FORMAT_A444_12LE => Self::A44412le,
3136 #[cfg(feature = "v1_24")]
3137 ffi::GST_VIDEO_FORMAT_A444_12BE => Self::A44412be,
3138 #[cfg(feature = "v1_24")]
3139 ffi::GST_VIDEO_FORMAT_A422_12LE => Self::A42212le,
3140 #[cfg(feature = "v1_24")]
3141 ffi::GST_VIDEO_FORMAT_A422_12BE => Self::A42212be,
3142 #[cfg(feature = "v1_24")]
3143 ffi::GST_VIDEO_FORMAT_A420_12LE => Self::A42012le,
3144 #[cfg(feature = "v1_24")]
3145 ffi::GST_VIDEO_FORMAT_A420_12BE => Self::A42012be,
3146 #[cfg(feature = "v1_24")]
3147 ffi::GST_VIDEO_FORMAT_A444_16LE => Self::A44416le,
3148 #[cfg(feature = "v1_24")]
3149 ffi::GST_VIDEO_FORMAT_A444_16BE => Self::A44416be,
3150 #[cfg(feature = "v1_24")]
3151 ffi::GST_VIDEO_FORMAT_A422_16LE => Self::A42216le,
3152 #[cfg(feature = "v1_24")]
3153 ffi::GST_VIDEO_FORMAT_A422_16BE => Self::A42216be,
3154 #[cfg(feature = "v1_24")]
3155 ffi::GST_VIDEO_FORMAT_A420_16LE => Self::A42016le,
3156 #[cfg(feature = "v1_24")]
3157 ffi::GST_VIDEO_FORMAT_A420_16BE => Self::A42016be,
3158 #[cfg(feature = "v1_24")]
3159 ffi::GST_VIDEO_FORMAT_GBR_16LE => Self::Gbr16le,
3160 #[cfg(feature = "v1_24")]
3161 ffi::GST_VIDEO_FORMAT_GBR_16BE => Self::Gbr16be,
3162 #[cfg(feature = "v1_24")]
3163 ffi::GST_VIDEO_FORMAT_RBGA => Self::Rbga,
3164 #[cfg(feature = "v1_26")]
3165 ffi::GST_VIDEO_FORMAT_Y216_LE => Self::Y216Le,
3166 #[cfg(feature = "v1_26")]
3167 ffi::GST_VIDEO_FORMAT_Y216_BE => Self::Y216Be,
3168 #[cfg(feature = "v1_26")]
3169 ffi::GST_VIDEO_FORMAT_Y416_LE => Self::Y416Le,
3170 #[cfg(feature = "v1_26")]
3171 ffi::GST_VIDEO_FORMAT_Y416_BE => Self::Y416Be,
3172 #[cfg(feature = "v1_26")]
3173 ffi::GST_VIDEO_FORMAT_GRAY10_LE16 => Self::Gray10Le16,
3174 #[cfg(feature = "v1_28")]
3175 ffi::GST_VIDEO_FORMAT_NV16_10LE40 => Self::Nv1610le40,
3176 #[cfg(feature = "v1_28")]
3177 ffi::GST_VIDEO_FORMAT_BGR10x2_LE => Self::Bgr10x2Le,
3178 #[cfg(feature = "v1_28")]
3179 ffi::GST_VIDEO_FORMAT_RGB10x2_LE => Self::Rgb10x2Le,
3180 #[cfg(feature = "v1_30")]
3181 ffi::GST_VIDEO_FORMAT_AHARDWARE_BUFFER => Self::AhardwareBuffer,
3182 #[cfg(feature = "v1_30")]
3183 ffi::GST_VIDEO_FORMAT_RGBA_F16LE => Self::RgbaF16le,
3184 #[cfg(feature = "v1_30")]
3185 ffi::GST_VIDEO_FORMAT_RGBA_F16BE => Self::RgbaF16be,
3186 #[cfg(feature = "v1_30")]
3187 ffi::GST_VIDEO_FORMAT_RGBA_F32LE => Self::RgbaF32le,
3188 #[cfg(feature = "v1_30")]
3189 ffi::GST_VIDEO_FORMAT_RGBA_F32BE => Self::RgbaF32be,
3190 #[cfg(feature = "v1_30")]
3191 ffi::GST_VIDEO_FORMAT_ARGB_F32 => Self::ArgbF32,
3192 #[cfg(feature = "v1_30")]
3193 ffi::GST_VIDEO_FORMAT_RGBP_F16LE => Self::RgbpF16le,
3194 #[cfg(feature = "v1_30")]
3195 ffi::GST_VIDEO_FORMAT_RGBP_F16BE => Self::RgbpF16be,
3196 #[cfg(feature = "v1_30")]
3197 ffi::GST_VIDEO_FORMAT_RGBP_F32LE => Self::RgbpF32le,
3198 #[cfg(feature = "v1_30")]
3199 ffi::GST_VIDEO_FORMAT_RGBP_F32BE => Self::RgbpF32be,
3200 #[cfg(feature = "v1_30")]
3201 ffi::GST_VIDEO_FORMAT_RGB_F16LE => Self::RgbF16le,
3202 #[cfg(feature = "v1_30")]
3203 ffi::GST_VIDEO_FORMAT_RGB_F16BE => Self::RgbF16be,
3204 #[cfg(feature = "v1_30")]
3205 ffi::GST_VIDEO_FORMAT_RGB_F32LE => Self::RgbF32le,
3206 #[cfg(feature = "v1_30")]
3207 ffi::GST_VIDEO_FORMAT_RGB_F32BE => Self::RgbF32be,
3208 #[cfg(feature = "v1_30")]
3209 ffi::GST_VIDEO_FORMAT_AYUV_F32 => Self::AyuvF32,
3210 #[cfg(feature = "v1_30")]
3211 ffi::GST_VIDEO_FORMAT_GRAY_F16LE => Self::GrayF16le,
3212 #[cfg(feature = "v1_30")]
3213 ffi::GST_VIDEO_FORMAT_GRAY_F16BE => Self::GrayF16be,
3214 #[cfg(feature = "v1_30")]
3215 ffi::GST_VIDEO_FORMAT_GRAY_F32LE => Self::GrayF32le,
3216 #[cfg(feature = "v1_30")]
3217 ffi::GST_VIDEO_FORMAT_GRAY_F32BE => Self::GrayF32be,
3218 value => Self::__Unknown(value),
3219 }
3220 }
3221}
3222
3223impl StaticType for VideoFormat {
3224 #[inline]
3225 #[doc(alias = "gst_video_format_get_type")]
3226 fn static_type() -> glib::Type {
3227 unsafe { from_glib(ffi::gst_video_format_get_type()) }
3228 }
3229}
3230
3231impl glib::HasParamSpec for VideoFormat {
3232 type ParamSpec = glib::ParamSpecEnum;
3233 type SetValue = Self;
3234 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3235
3236 fn param_spec_builder() -> Self::BuilderFn {
3237 Self::ParamSpec::builder_with_default
3238 }
3239}
3240
3241impl glib::value::ValueType for VideoFormat {
3242 type Type = Self;
3243}
3244
3245unsafe impl<'a> glib::value::FromValue<'a> for VideoFormat {
3246 type Checker = glib::value::GenericValueTypeChecker<Self>;
3247
3248 #[inline]
3249 unsafe fn from_value(value: &'a glib::Value) -> Self {
3250 skip_assert_initialized!();
3251 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
3252 }
3253}
3254
3255impl ToValue for VideoFormat {
3256 #[inline]
3257 fn to_value(&self) -> glib::Value {
3258 let mut value = glib::Value::for_value_type::<Self>();
3259 unsafe {
3260 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3261 }
3262 value
3263 }
3264
3265 #[inline]
3266 fn value_type(&self) -> glib::Type {
3267 Self::static_type()
3268 }
3269}
3270
3271impl From<VideoFormat> for glib::Value {
3272 #[inline]
3273 fn from(v: VideoFormat) -> Self {
3274 skip_assert_initialized!();
3275 ToValue::to_value(&v)
3276 }
3277}
3278
3279#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3280#[non_exhaustive]
3281#[doc(alias = "GstVideoGammaMode")]
3282pub enum VideoGammaMode {
3283 #[doc(alias = "GST_VIDEO_GAMMA_MODE_NONE")]
3284 None,
3285 #[doc(alias = "GST_VIDEO_GAMMA_MODE_REMAP")]
3286 Remap,
3287 #[doc(hidden)]
3288 __Unknown(i32),
3289}
3290
3291#[doc(hidden)]
3292impl IntoGlib for VideoGammaMode {
3293 type GlibType = ffi::GstVideoGammaMode;
3294
3295 #[inline]
3296 fn into_glib(self) -> ffi::GstVideoGammaMode {
3297 match self {
3298 Self::None => ffi::GST_VIDEO_GAMMA_MODE_NONE,
3299 Self::Remap => ffi::GST_VIDEO_GAMMA_MODE_REMAP,
3300 Self::__Unknown(value) => value,
3301 }
3302 }
3303}
3304
3305#[doc(hidden)]
3306impl FromGlib<ffi::GstVideoGammaMode> for VideoGammaMode {
3307 #[inline]
3308 unsafe fn from_glib(value: ffi::GstVideoGammaMode) -> Self {
3309 skip_assert_initialized!();
3310
3311 match value {
3312 ffi::GST_VIDEO_GAMMA_MODE_NONE => Self::None,
3313 ffi::GST_VIDEO_GAMMA_MODE_REMAP => Self::Remap,
3314 value => Self::__Unknown(value),
3315 }
3316 }
3317}
3318
3319impl StaticType for VideoGammaMode {
3320 #[inline]
3321 #[doc(alias = "gst_video_gamma_mode_get_type")]
3322 fn static_type() -> glib::Type {
3323 unsafe { from_glib(ffi::gst_video_gamma_mode_get_type()) }
3324 }
3325}
3326
3327impl glib::HasParamSpec for VideoGammaMode {
3328 type ParamSpec = glib::ParamSpecEnum;
3329 type SetValue = Self;
3330 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3331
3332 fn param_spec_builder() -> Self::BuilderFn {
3333 Self::ParamSpec::builder_with_default
3334 }
3335}
3336
3337impl glib::value::ValueType for VideoGammaMode {
3338 type Type = Self;
3339}
3340
3341unsafe impl<'a> glib::value::FromValue<'a> for VideoGammaMode {
3342 type Checker = glib::value::GenericValueTypeChecker<Self>;
3343
3344 #[inline]
3345 unsafe fn from_value(value: &'a glib::Value) -> Self {
3346 skip_assert_initialized!();
3347 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
3348 }
3349}
3350
3351impl ToValue for VideoGammaMode {
3352 #[inline]
3353 fn to_value(&self) -> glib::Value {
3354 let mut value = glib::Value::for_value_type::<Self>();
3355 unsafe {
3356 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3357 }
3358 value
3359 }
3360
3361 #[inline]
3362 fn value_type(&self) -> glib::Type {
3363 Self::static_type()
3364 }
3365}
3366
3367impl From<VideoGammaMode> for glib::Value {
3368 #[inline]
3369 fn from(v: VideoGammaMode) -> Self {
3370 skip_assert_initialized!();
3371 ToValue::to_value(&v)
3372 }
3373}
3374
3375#[cfg(feature = "v1_30")]
3376#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
3377#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3378#[non_exhaustive]
3379#[doc(alias = "GstVideoHDRFormat")]
3380pub enum VideoHDRFormat {
3381 #[doc(alias = "GST_VIDEO_HDR_FORMAT_NONE")]
3382 None,
3383 #[doc(alias = "GST_VIDEO_HDR_FORMAT_HDR10")]
3384 Hdr10,
3385 #[doc(alias = "GST_VIDEO_HDR_FORMAT_HDR10_PLUS")]
3386 Hdr10Plus,
3387 #[doc(hidden)]
3388 __Unknown(i32),
3389}
3390
3391#[cfg(feature = "v1_30")]
3392#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
3393#[doc(hidden)]
3394impl IntoGlib for VideoHDRFormat {
3395 type GlibType = ffi::GstVideoHDRFormat;
3396
3397 #[inline]
3398 fn into_glib(self) -> ffi::GstVideoHDRFormat {
3399 match self {
3400 Self::None => ffi::GST_VIDEO_HDR_FORMAT_NONE,
3401 Self::Hdr10 => ffi::GST_VIDEO_HDR_FORMAT_HDR10,
3402 Self::Hdr10Plus => ffi::GST_VIDEO_HDR_FORMAT_HDR10_PLUS,
3403 Self::__Unknown(value) => value,
3404 }
3405 }
3406}
3407
3408#[cfg(feature = "v1_30")]
3409#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
3410#[doc(hidden)]
3411impl FromGlib<ffi::GstVideoHDRFormat> for VideoHDRFormat {
3412 #[inline]
3413 unsafe fn from_glib(value: ffi::GstVideoHDRFormat) -> Self {
3414 skip_assert_initialized!();
3415
3416 match value {
3417 ffi::GST_VIDEO_HDR_FORMAT_NONE => Self::None,
3418 ffi::GST_VIDEO_HDR_FORMAT_HDR10 => Self::Hdr10,
3419 ffi::GST_VIDEO_HDR_FORMAT_HDR10_PLUS => Self::Hdr10Plus,
3420 value => Self::__Unknown(value),
3421 }
3422 }
3423}
3424
3425#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3426#[non_exhaustive]
3427#[doc(alias = "GstVideoInterlaceMode")]
3428pub enum VideoInterlaceMode {
3429 #[doc(alias = "GST_VIDEO_INTERLACE_MODE_PROGRESSIVE")]
3430 Progressive,
3431 #[doc(alias = "GST_VIDEO_INTERLACE_MODE_INTERLEAVED")]
3432 Interleaved,
3433 #[doc(alias = "GST_VIDEO_INTERLACE_MODE_MIXED")]
3434 Mixed,
3435 #[doc(alias = "GST_VIDEO_INTERLACE_MODE_FIELDS")]
3436 Fields,
3437 #[cfg(feature = "v1_16")]
3438 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
3439 #[doc(alias = "GST_VIDEO_INTERLACE_MODE_ALTERNATE")]
3440 Alternate,
3441 #[doc(hidden)]
3442 __Unknown(i32),
3443}
3444
3445impl VideoInterlaceMode {
3446 #[doc(alias = "gst_video_interlace_mode_from_string")]
3447 pub fn from_string(mode: &str) -> VideoInterlaceMode {
3448 assert_initialized_main_thread!();
3449 unsafe {
3450 from_glib(ffi::gst_video_interlace_mode_from_string(
3451 mode.to_glib_none().0,
3452 ))
3453 }
3454 }
3455
3456 pub fn to_str<'a>(self) -> &'a GStr {
3457 unsafe {
3458 GStr::from_ptr(
3459 ffi::gst_video_interlace_mode_to_string(self.into_glib())
3460 .as_ref()
3461 .expect("gst_video_interlace_mode_to_string returned NULL"),
3462 )
3463 }
3464 }
3465}
3466
3467impl std::fmt::Display for VideoInterlaceMode {
3468 #[inline]
3469 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3470 f.write_str(&self.to_str())
3471 }
3472}
3473
3474#[doc(hidden)]
3475impl IntoGlib for VideoInterlaceMode {
3476 type GlibType = ffi::GstVideoInterlaceMode;
3477
3478 #[inline]
3479 fn into_glib(self) -> ffi::GstVideoInterlaceMode {
3480 match self {
3481 Self::Progressive => ffi::GST_VIDEO_INTERLACE_MODE_PROGRESSIVE,
3482 Self::Interleaved => ffi::GST_VIDEO_INTERLACE_MODE_INTERLEAVED,
3483 Self::Mixed => ffi::GST_VIDEO_INTERLACE_MODE_MIXED,
3484 Self::Fields => ffi::GST_VIDEO_INTERLACE_MODE_FIELDS,
3485 #[cfg(feature = "v1_16")]
3486 Self::Alternate => ffi::GST_VIDEO_INTERLACE_MODE_ALTERNATE,
3487 Self::__Unknown(value) => value,
3488 }
3489 }
3490}
3491
3492#[doc(hidden)]
3493impl FromGlib<ffi::GstVideoInterlaceMode> for VideoInterlaceMode {
3494 #[inline]
3495 unsafe fn from_glib(value: ffi::GstVideoInterlaceMode) -> Self {
3496 skip_assert_initialized!();
3497
3498 match value {
3499 ffi::GST_VIDEO_INTERLACE_MODE_PROGRESSIVE => Self::Progressive,
3500 ffi::GST_VIDEO_INTERLACE_MODE_INTERLEAVED => Self::Interleaved,
3501 ffi::GST_VIDEO_INTERLACE_MODE_MIXED => Self::Mixed,
3502 ffi::GST_VIDEO_INTERLACE_MODE_FIELDS => Self::Fields,
3503 #[cfg(feature = "v1_16")]
3504 ffi::GST_VIDEO_INTERLACE_MODE_ALTERNATE => Self::Alternate,
3505 value => Self::__Unknown(value),
3506 }
3507 }
3508}
3509
3510impl StaticType for VideoInterlaceMode {
3511 #[inline]
3512 #[doc(alias = "gst_video_interlace_mode_get_type")]
3513 fn static_type() -> glib::Type {
3514 unsafe { from_glib(ffi::gst_video_interlace_mode_get_type()) }
3515 }
3516}
3517
3518impl glib::HasParamSpec for VideoInterlaceMode {
3519 type ParamSpec = glib::ParamSpecEnum;
3520 type SetValue = Self;
3521 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3522
3523 fn param_spec_builder() -> Self::BuilderFn {
3524 Self::ParamSpec::builder_with_default
3525 }
3526}
3527
3528impl glib::value::ValueType for VideoInterlaceMode {
3529 type Type = Self;
3530}
3531
3532unsafe impl<'a> glib::value::FromValue<'a> for VideoInterlaceMode {
3533 type Checker = glib::value::GenericValueTypeChecker<Self>;
3534
3535 #[inline]
3536 unsafe fn from_value(value: &'a glib::Value) -> Self {
3537 skip_assert_initialized!();
3538 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
3539 }
3540}
3541
3542impl ToValue for VideoInterlaceMode {
3543 #[inline]
3544 fn to_value(&self) -> glib::Value {
3545 let mut value = glib::Value::for_value_type::<Self>();
3546 unsafe {
3547 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3548 }
3549 value
3550 }
3551
3552 #[inline]
3553 fn value_type(&self) -> glib::Type {
3554 Self::static_type()
3555 }
3556}
3557
3558impl From<VideoInterlaceMode> for glib::Value {
3559 #[inline]
3560 fn from(v: VideoInterlaceMode) -> Self {
3561 skip_assert_initialized!();
3562 ToValue::to_value(&v)
3563 }
3564}
3565
3566#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3567#[non_exhaustive]
3568#[doc(alias = "GstVideoMatrixMode")]
3569pub enum VideoMatrixMode {
3570 #[doc(alias = "GST_VIDEO_MATRIX_MODE_FULL")]
3571 Full,
3572 #[doc(alias = "GST_VIDEO_MATRIX_MODE_INPUT_ONLY")]
3573 InputOnly,
3574 #[doc(alias = "GST_VIDEO_MATRIX_MODE_OUTPUT_ONLY")]
3575 OutputOnly,
3576 #[doc(alias = "GST_VIDEO_MATRIX_MODE_NONE")]
3577 None,
3578 #[doc(hidden)]
3579 __Unknown(i32),
3580}
3581
3582#[doc(hidden)]
3583impl IntoGlib for VideoMatrixMode {
3584 type GlibType = ffi::GstVideoMatrixMode;
3585
3586 #[inline]
3587 fn into_glib(self) -> ffi::GstVideoMatrixMode {
3588 match self {
3589 Self::Full => ffi::GST_VIDEO_MATRIX_MODE_FULL,
3590 Self::InputOnly => ffi::GST_VIDEO_MATRIX_MODE_INPUT_ONLY,
3591 Self::OutputOnly => ffi::GST_VIDEO_MATRIX_MODE_OUTPUT_ONLY,
3592 Self::None => ffi::GST_VIDEO_MATRIX_MODE_NONE,
3593 Self::__Unknown(value) => value,
3594 }
3595 }
3596}
3597
3598#[doc(hidden)]
3599impl FromGlib<ffi::GstVideoMatrixMode> for VideoMatrixMode {
3600 #[inline]
3601 unsafe fn from_glib(value: ffi::GstVideoMatrixMode) -> Self {
3602 skip_assert_initialized!();
3603
3604 match value {
3605 ffi::GST_VIDEO_MATRIX_MODE_FULL => Self::Full,
3606 ffi::GST_VIDEO_MATRIX_MODE_INPUT_ONLY => Self::InputOnly,
3607 ffi::GST_VIDEO_MATRIX_MODE_OUTPUT_ONLY => Self::OutputOnly,
3608 ffi::GST_VIDEO_MATRIX_MODE_NONE => Self::None,
3609 value => Self::__Unknown(value),
3610 }
3611 }
3612}
3613
3614impl StaticType for VideoMatrixMode {
3615 #[inline]
3616 #[doc(alias = "gst_video_matrix_mode_get_type")]
3617 fn static_type() -> glib::Type {
3618 unsafe { from_glib(ffi::gst_video_matrix_mode_get_type()) }
3619 }
3620}
3621
3622impl glib::HasParamSpec for VideoMatrixMode {
3623 type ParamSpec = glib::ParamSpecEnum;
3624 type SetValue = Self;
3625 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3626
3627 fn param_spec_builder() -> Self::BuilderFn {
3628 Self::ParamSpec::builder_with_default
3629 }
3630}
3631
3632impl glib::value::ValueType for VideoMatrixMode {
3633 type Type = Self;
3634}
3635
3636unsafe impl<'a> glib::value::FromValue<'a> for VideoMatrixMode {
3637 type Checker = glib::value::GenericValueTypeChecker<Self>;
3638
3639 #[inline]
3640 unsafe fn from_value(value: &'a glib::Value) -> Self {
3641 skip_assert_initialized!();
3642 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
3643 }
3644}
3645
3646impl ToValue for VideoMatrixMode {
3647 #[inline]
3648 fn to_value(&self) -> glib::Value {
3649 let mut value = glib::Value::for_value_type::<Self>();
3650 unsafe {
3651 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3652 }
3653 value
3654 }
3655
3656 #[inline]
3657 fn value_type(&self) -> glib::Type {
3658 Self::static_type()
3659 }
3660}
3661
3662impl From<VideoMatrixMode> for glib::Value {
3663 #[inline]
3664 fn from(v: VideoMatrixMode) -> Self {
3665 skip_assert_initialized!();
3666 ToValue::to_value(&v)
3667 }
3668}
3669
3670#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3671#[non_exhaustive]
3672#[doc(alias = "GstVideoMultiviewFramePacking")]
3673pub enum VideoMultiviewFramePacking {
3674 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_NONE")]
3675 None,
3676 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_MONO")]
3677 Mono,
3678 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_LEFT")]
3679 Left,
3680 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_RIGHT")]
3681 Right,
3682 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE")]
3683 SideBySide,
3684 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE_QUINCUNX")]
3685 SideBySideQuincunx,
3686 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_COLUMN_INTERLEAVED")]
3687 ColumnInterleaved,
3688 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_ROW_INTERLEAVED")]
3689 RowInterleaved,
3690 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_TOP_BOTTOM")]
3691 TopBottom,
3692 #[doc(alias = "GST_VIDEO_MULTIVIEW_FRAME_PACKING_CHECKERBOARD")]
3693 Checkerboard,
3694 #[doc(hidden)]
3695 __Unknown(i32),
3696}
3697
3698#[doc(hidden)]
3699impl IntoGlib for VideoMultiviewFramePacking {
3700 type GlibType = ffi::GstVideoMultiviewFramePacking;
3701
3702 #[inline]
3703 fn into_glib(self) -> ffi::GstVideoMultiviewFramePacking {
3704 match self {
3705 Self::None => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_NONE,
3706 Self::Mono => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_MONO,
3707 Self::Left => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_LEFT,
3708 Self::Right => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_RIGHT,
3709 Self::SideBySide => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE,
3710 Self::SideBySideQuincunx => {
3711 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE_QUINCUNX
3712 }
3713 Self::ColumnInterleaved => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_COLUMN_INTERLEAVED,
3714 Self::RowInterleaved => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_ROW_INTERLEAVED,
3715 Self::TopBottom => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_TOP_BOTTOM,
3716 Self::Checkerboard => ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_CHECKERBOARD,
3717 Self::__Unknown(value) => value,
3718 }
3719 }
3720}
3721
3722#[doc(hidden)]
3723impl FromGlib<ffi::GstVideoMultiviewFramePacking> for VideoMultiviewFramePacking {
3724 #[inline]
3725 unsafe fn from_glib(value: ffi::GstVideoMultiviewFramePacking) -> Self {
3726 skip_assert_initialized!();
3727
3728 match value {
3729 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_NONE => Self::None,
3730 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_MONO => Self::Mono,
3731 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_LEFT => Self::Left,
3732 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_RIGHT => Self::Right,
3733 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE => Self::SideBySide,
3734 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE_QUINCUNX => {
3735 Self::SideBySideQuincunx
3736 }
3737 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_COLUMN_INTERLEAVED => Self::ColumnInterleaved,
3738 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_ROW_INTERLEAVED => Self::RowInterleaved,
3739 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_TOP_BOTTOM => Self::TopBottom,
3740 ffi::GST_VIDEO_MULTIVIEW_FRAME_PACKING_CHECKERBOARD => Self::Checkerboard,
3741 value => Self::__Unknown(value),
3742 }
3743 }
3744}
3745
3746impl StaticType for VideoMultiviewFramePacking {
3747 #[inline]
3748 #[doc(alias = "gst_video_multiview_frame_packing_get_type")]
3749 fn static_type() -> glib::Type {
3750 unsafe { from_glib(ffi::gst_video_multiview_frame_packing_get_type()) }
3751 }
3752}
3753
3754impl glib::HasParamSpec for VideoMultiviewFramePacking {
3755 type ParamSpec = glib::ParamSpecEnum;
3756 type SetValue = Self;
3757 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3758
3759 fn param_spec_builder() -> Self::BuilderFn {
3760 Self::ParamSpec::builder_with_default
3761 }
3762}
3763
3764impl glib::value::ValueType for VideoMultiviewFramePacking {
3765 type Type = Self;
3766}
3767
3768unsafe impl<'a> glib::value::FromValue<'a> for VideoMultiviewFramePacking {
3769 type Checker = glib::value::GenericValueTypeChecker<Self>;
3770
3771 #[inline]
3772 unsafe fn from_value(value: &'a glib::Value) -> Self {
3773 skip_assert_initialized!();
3774 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
3775 }
3776}
3777
3778impl ToValue for VideoMultiviewFramePacking {
3779 #[inline]
3780 fn to_value(&self) -> glib::Value {
3781 let mut value = glib::Value::for_value_type::<Self>();
3782 unsafe {
3783 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3784 }
3785 value
3786 }
3787
3788 #[inline]
3789 fn value_type(&self) -> glib::Type {
3790 Self::static_type()
3791 }
3792}
3793
3794impl From<VideoMultiviewFramePacking> for glib::Value {
3795 #[inline]
3796 fn from(v: VideoMultiviewFramePacking) -> Self {
3797 skip_assert_initialized!();
3798 ToValue::to_value(&v)
3799 }
3800}
3801
3802#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3803#[non_exhaustive]
3804#[doc(alias = "GstVideoMultiviewMode")]
3805pub enum VideoMultiviewMode {
3806 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_NONE")]
3807 None,
3808 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_MONO")]
3809 Mono,
3810 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_LEFT")]
3811 Left,
3812 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_RIGHT")]
3813 Right,
3814 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE")]
3815 SideBySide,
3816 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE_QUINCUNX")]
3817 SideBySideQuincunx,
3818 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_COLUMN_INTERLEAVED")]
3819 ColumnInterleaved,
3820 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_ROW_INTERLEAVED")]
3821 RowInterleaved,
3822 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_TOP_BOTTOM")]
3823 TopBottom,
3824 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_CHECKERBOARD")]
3825 Checkerboard,
3826 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_FRAME_BY_FRAME")]
3827 FrameByFrame,
3828 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_MULTIVIEW_FRAME_BY_FRAME")]
3829 MultiviewFrameByFrame,
3830 #[doc(alias = "GST_VIDEO_MULTIVIEW_MODE_SEPARATED")]
3831 Separated,
3832 #[doc(hidden)]
3833 __Unknown(i32),
3834}
3835
3836impl VideoMultiviewMode {
3837 #[doc(alias = "gst_video_multiview_mode_from_caps_string")]
3838 pub fn from_caps_string(caps_mview_mode: &str) -> VideoMultiviewMode {
3839 assert_initialized_main_thread!();
3840 unsafe {
3841 from_glib(ffi::gst_video_multiview_mode_from_caps_string(
3842 caps_mview_mode.to_glib_none().0,
3843 ))
3844 }
3845 }
3846
3847 #[doc(alias = "gst_video_multiview_mode_to_caps_string")]
3848 pub fn to_caps_string(self) -> Option<glib::GString> {
3849 assert_initialized_main_thread!();
3850 unsafe {
3851 from_glib_none(ffi::gst_video_multiview_mode_to_caps_string(
3852 self.into_glib(),
3853 ))
3854 }
3855 }
3856}
3857
3858#[doc(hidden)]
3859impl IntoGlib for VideoMultiviewMode {
3860 type GlibType = ffi::GstVideoMultiviewMode;
3861
3862 fn into_glib(self) -> ffi::GstVideoMultiviewMode {
3863 match self {
3864 Self::None => ffi::GST_VIDEO_MULTIVIEW_MODE_NONE,
3865 Self::Mono => ffi::GST_VIDEO_MULTIVIEW_MODE_MONO,
3866 Self::Left => ffi::GST_VIDEO_MULTIVIEW_MODE_LEFT,
3867 Self::Right => ffi::GST_VIDEO_MULTIVIEW_MODE_RIGHT,
3868 Self::SideBySide => ffi::GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE,
3869 Self::SideBySideQuincunx => ffi::GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE_QUINCUNX,
3870 Self::ColumnInterleaved => ffi::GST_VIDEO_MULTIVIEW_MODE_COLUMN_INTERLEAVED,
3871 Self::RowInterleaved => ffi::GST_VIDEO_MULTIVIEW_MODE_ROW_INTERLEAVED,
3872 Self::TopBottom => ffi::GST_VIDEO_MULTIVIEW_MODE_TOP_BOTTOM,
3873 Self::Checkerboard => ffi::GST_VIDEO_MULTIVIEW_MODE_CHECKERBOARD,
3874 Self::FrameByFrame => ffi::GST_VIDEO_MULTIVIEW_MODE_FRAME_BY_FRAME,
3875 Self::MultiviewFrameByFrame => ffi::GST_VIDEO_MULTIVIEW_MODE_MULTIVIEW_FRAME_BY_FRAME,
3876 Self::Separated => ffi::GST_VIDEO_MULTIVIEW_MODE_SEPARATED,
3877 Self::__Unknown(value) => value,
3878 }
3879 }
3880}
3881
3882#[doc(hidden)]
3883impl FromGlib<ffi::GstVideoMultiviewMode> for VideoMultiviewMode {
3884 unsafe fn from_glib(value: ffi::GstVideoMultiviewMode) -> Self {
3885 skip_assert_initialized!();
3886
3887 match value {
3888 ffi::GST_VIDEO_MULTIVIEW_MODE_NONE => Self::None,
3889 ffi::GST_VIDEO_MULTIVIEW_MODE_MONO => Self::Mono,
3890 ffi::GST_VIDEO_MULTIVIEW_MODE_LEFT => Self::Left,
3891 ffi::GST_VIDEO_MULTIVIEW_MODE_RIGHT => Self::Right,
3892 ffi::GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE => Self::SideBySide,
3893 ffi::GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE_QUINCUNX => Self::SideBySideQuincunx,
3894 ffi::GST_VIDEO_MULTIVIEW_MODE_COLUMN_INTERLEAVED => Self::ColumnInterleaved,
3895 ffi::GST_VIDEO_MULTIVIEW_MODE_ROW_INTERLEAVED => Self::RowInterleaved,
3896 ffi::GST_VIDEO_MULTIVIEW_MODE_TOP_BOTTOM => Self::TopBottom,
3897 ffi::GST_VIDEO_MULTIVIEW_MODE_CHECKERBOARD => Self::Checkerboard,
3898 ffi::GST_VIDEO_MULTIVIEW_MODE_FRAME_BY_FRAME => Self::FrameByFrame,
3899 ffi::GST_VIDEO_MULTIVIEW_MODE_MULTIVIEW_FRAME_BY_FRAME => Self::MultiviewFrameByFrame,
3900 ffi::GST_VIDEO_MULTIVIEW_MODE_SEPARATED => Self::Separated,
3901 value => Self::__Unknown(value),
3902 }
3903 }
3904}
3905
3906impl StaticType for VideoMultiviewMode {
3907 #[inline]
3908 #[doc(alias = "gst_video_multiview_mode_get_type")]
3909 fn static_type() -> glib::Type {
3910 unsafe { from_glib(ffi::gst_video_multiview_mode_get_type()) }
3911 }
3912}
3913
3914impl glib::HasParamSpec for VideoMultiviewMode {
3915 type ParamSpec = glib::ParamSpecEnum;
3916 type SetValue = Self;
3917 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3918
3919 fn param_spec_builder() -> Self::BuilderFn {
3920 Self::ParamSpec::builder_with_default
3921 }
3922}
3923
3924impl glib::value::ValueType for VideoMultiviewMode {
3925 type Type = Self;
3926}
3927
3928unsafe impl<'a> glib::value::FromValue<'a> for VideoMultiviewMode {
3929 type Checker = glib::value::GenericValueTypeChecker<Self>;
3930
3931 #[inline]
3932 unsafe fn from_value(value: &'a glib::Value) -> Self {
3933 skip_assert_initialized!();
3934 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
3935 }
3936}
3937
3938impl ToValue for VideoMultiviewMode {
3939 #[inline]
3940 fn to_value(&self) -> glib::Value {
3941 let mut value = glib::Value::for_value_type::<Self>();
3942 unsafe {
3943 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3944 }
3945 value
3946 }
3947
3948 #[inline]
3949 fn value_type(&self) -> glib::Type {
3950 Self::static_type()
3951 }
3952}
3953
3954impl From<VideoMultiviewMode> for glib::Value {
3955 #[inline]
3956 fn from(v: VideoMultiviewMode) -> Self {
3957 skip_assert_initialized!();
3958 ToValue::to_value(&v)
3959 }
3960}
3961
3962#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3963#[non_exhaustive]
3964#[doc(alias = "GstVideoOrientationMethod")]
3965pub enum VideoOrientationMethod {
3966 #[doc(alias = "GST_VIDEO_ORIENTATION_IDENTITY")]
3967 Identity,
3968 #[doc(alias = "GST_VIDEO_ORIENTATION_90R")]
3969 _90r,
3970 #[doc(alias = "GST_VIDEO_ORIENTATION_180")]
3971 _180,
3972 #[doc(alias = "GST_VIDEO_ORIENTATION_90L")]
3973 _90l,
3974 #[doc(alias = "GST_VIDEO_ORIENTATION_HORIZ")]
3975 Horiz,
3976 #[doc(alias = "GST_VIDEO_ORIENTATION_VERT")]
3977 Vert,
3978 #[doc(alias = "GST_VIDEO_ORIENTATION_UL_LR")]
3979 UlLr,
3980 #[doc(alias = "GST_VIDEO_ORIENTATION_UR_LL")]
3981 UrLl,
3982 #[doc(alias = "GST_VIDEO_ORIENTATION_AUTO")]
3983 Auto,
3984 #[doc(alias = "GST_VIDEO_ORIENTATION_CUSTOM")]
3985 Custom,
3986 #[doc(hidden)]
3987 __Unknown(i32),
3988}
3989
3990#[doc(hidden)]
3991impl IntoGlib for VideoOrientationMethod {
3992 type GlibType = ffi::GstVideoOrientationMethod;
3993
3994 #[inline]
3995 fn into_glib(self) -> ffi::GstVideoOrientationMethod {
3996 match self {
3997 Self::Identity => ffi::GST_VIDEO_ORIENTATION_IDENTITY,
3998 Self::_90r => ffi::GST_VIDEO_ORIENTATION_90R,
3999 Self::_180 => ffi::GST_VIDEO_ORIENTATION_180,
4000 Self::_90l => ffi::GST_VIDEO_ORIENTATION_90L,
4001 Self::Horiz => ffi::GST_VIDEO_ORIENTATION_HORIZ,
4002 Self::Vert => ffi::GST_VIDEO_ORIENTATION_VERT,
4003 Self::UlLr => ffi::GST_VIDEO_ORIENTATION_UL_LR,
4004 Self::UrLl => ffi::GST_VIDEO_ORIENTATION_UR_LL,
4005 Self::Auto => ffi::GST_VIDEO_ORIENTATION_AUTO,
4006 Self::Custom => ffi::GST_VIDEO_ORIENTATION_CUSTOM,
4007 Self::__Unknown(value) => value,
4008 }
4009 }
4010}
4011
4012#[doc(hidden)]
4013impl FromGlib<ffi::GstVideoOrientationMethod> for VideoOrientationMethod {
4014 #[inline]
4015 unsafe fn from_glib(value: ffi::GstVideoOrientationMethod) -> Self {
4016 skip_assert_initialized!();
4017
4018 match value {
4019 ffi::GST_VIDEO_ORIENTATION_IDENTITY => Self::Identity,
4020 ffi::GST_VIDEO_ORIENTATION_90R => Self::_90r,
4021 ffi::GST_VIDEO_ORIENTATION_180 => Self::_180,
4022 ffi::GST_VIDEO_ORIENTATION_90L => Self::_90l,
4023 ffi::GST_VIDEO_ORIENTATION_HORIZ => Self::Horiz,
4024 ffi::GST_VIDEO_ORIENTATION_VERT => Self::Vert,
4025 ffi::GST_VIDEO_ORIENTATION_UL_LR => Self::UlLr,
4026 ffi::GST_VIDEO_ORIENTATION_UR_LL => Self::UrLl,
4027 ffi::GST_VIDEO_ORIENTATION_AUTO => Self::Auto,
4028 ffi::GST_VIDEO_ORIENTATION_CUSTOM => Self::Custom,
4029 value => Self::__Unknown(value),
4030 }
4031 }
4032}
4033
4034impl StaticType for VideoOrientationMethod {
4035 #[inline]
4036 #[doc(alias = "gst_video_orientation_method_get_type")]
4037 fn static_type() -> glib::Type {
4038 unsafe { from_glib(ffi::gst_video_orientation_method_get_type()) }
4039 }
4040}
4041
4042impl glib::HasParamSpec for VideoOrientationMethod {
4043 type ParamSpec = glib::ParamSpecEnum;
4044 type SetValue = Self;
4045 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4046
4047 fn param_spec_builder() -> Self::BuilderFn {
4048 Self::ParamSpec::builder_with_default
4049 }
4050}
4051
4052impl glib::value::ValueType for VideoOrientationMethod {
4053 type Type = Self;
4054}
4055
4056unsafe impl<'a> glib::value::FromValue<'a> for VideoOrientationMethod {
4057 type Checker = glib::value::GenericValueTypeChecker<Self>;
4058
4059 #[inline]
4060 unsafe fn from_value(value: &'a glib::Value) -> Self {
4061 skip_assert_initialized!();
4062 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
4063 }
4064}
4065
4066impl ToValue for VideoOrientationMethod {
4067 #[inline]
4068 fn to_value(&self) -> glib::Value {
4069 let mut value = glib::Value::for_value_type::<Self>();
4070 unsafe {
4071 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4072 }
4073 value
4074 }
4075
4076 #[inline]
4077 fn value_type(&self) -> glib::Type {
4078 Self::static_type()
4079 }
4080}
4081
4082impl From<VideoOrientationMethod> for glib::Value {
4083 #[inline]
4084 fn from(v: VideoOrientationMethod) -> Self {
4085 skip_assert_initialized!();
4086 ToValue::to_value(&v)
4087 }
4088}
4089
4090#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4091#[non_exhaustive]
4092#[doc(alias = "GstVideoPrimariesMode")]
4093pub enum VideoPrimariesMode {
4094 #[doc(alias = "GST_VIDEO_PRIMARIES_MODE_NONE")]
4095 None,
4096 #[doc(alias = "GST_VIDEO_PRIMARIES_MODE_MERGE_ONLY")]
4097 MergeOnly,
4098 #[doc(alias = "GST_VIDEO_PRIMARIES_MODE_FAST")]
4099 Fast,
4100 #[doc(hidden)]
4101 __Unknown(i32),
4102}
4103
4104#[doc(hidden)]
4105impl IntoGlib for VideoPrimariesMode {
4106 type GlibType = ffi::GstVideoPrimariesMode;
4107
4108 #[inline]
4109 fn into_glib(self) -> ffi::GstVideoPrimariesMode {
4110 match self {
4111 Self::None => ffi::GST_VIDEO_PRIMARIES_MODE_NONE,
4112 Self::MergeOnly => ffi::GST_VIDEO_PRIMARIES_MODE_MERGE_ONLY,
4113 Self::Fast => ffi::GST_VIDEO_PRIMARIES_MODE_FAST,
4114 Self::__Unknown(value) => value,
4115 }
4116 }
4117}
4118
4119#[doc(hidden)]
4120impl FromGlib<ffi::GstVideoPrimariesMode> for VideoPrimariesMode {
4121 #[inline]
4122 unsafe fn from_glib(value: ffi::GstVideoPrimariesMode) -> Self {
4123 skip_assert_initialized!();
4124
4125 match value {
4126 ffi::GST_VIDEO_PRIMARIES_MODE_NONE => Self::None,
4127 ffi::GST_VIDEO_PRIMARIES_MODE_MERGE_ONLY => Self::MergeOnly,
4128 ffi::GST_VIDEO_PRIMARIES_MODE_FAST => Self::Fast,
4129 value => Self::__Unknown(value),
4130 }
4131 }
4132}
4133
4134impl StaticType for VideoPrimariesMode {
4135 #[inline]
4136 #[doc(alias = "gst_video_primaries_mode_get_type")]
4137 fn static_type() -> glib::Type {
4138 unsafe { from_glib(ffi::gst_video_primaries_mode_get_type()) }
4139 }
4140}
4141
4142impl glib::HasParamSpec for VideoPrimariesMode {
4143 type ParamSpec = glib::ParamSpecEnum;
4144 type SetValue = Self;
4145 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4146
4147 fn param_spec_builder() -> Self::BuilderFn {
4148 Self::ParamSpec::builder_with_default
4149 }
4150}
4151
4152impl glib::value::ValueType for VideoPrimariesMode {
4153 type Type = Self;
4154}
4155
4156unsafe impl<'a> glib::value::FromValue<'a> for VideoPrimariesMode {
4157 type Checker = glib::value::GenericValueTypeChecker<Self>;
4158
4159 #[inline]
4160 unsafe fn from_value(value: &'a glib::Value) -> Self {
4161 skip_assert_initialized!();
4162 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
4163 }
4164}
4165
4166impl ToValue for VideoPrimariesMode {
4167 #[inline]
4168 fn to_value(&self) -> glib::Value {
4169 let mut value = glib::Value::for_value_type::<Self>();
4170 unsafe {
4171 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4172 }
4173 value
4174 }
4175
4176 #[inline]
4177 fn value_type(&self) -> glib::Type {
4178 Self::static_type()
4179 }
4180}
4181
4182impl From<VideoPrimariesMode> for glib::Value {
4183 #[inline]
4184 fn from(v: VideoPrimariesMode) -> Self {
4185 skip_assert_initialized!();
4186 ToValue::to_value(&v)
4187 }
4188}
4189
4190#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4191#[non_exhaustive]
4192#[doc(alias = "GstVideoResamplerMethod")]
4193pub enum VideoResamplerMethod {
4194 #[doc(alias = "GST_VIDEO_RESAMPLER_METHOD_NEAREST")]
4195 Nearest,
4196 #[doc(alias = "GST_VIDEO_RESAMPLER_METHOD_LINEAR")]
4197 Linear,
4198 #[doc(alias = "GST_VIDEO_RESAMPLER_METHOD_CUBIC")]
4199 Cubic,
4200 #[doc(alias = "GST_VIDEO_RESAMPLER_METHOD_SINC")]
4201 Sinc,
4202 #[doc(alias = "GST_VIDEO_RESAMPLER_METHOD_LANCZOS")]
4203 Lanczos,
4204 #[doc(hidden)]
4205 __Unknown(i32),
4206}
4207
4208#[doc(hidden)]
4209impl IntoGlib for VideoResamplerMethod {
4210 type GlibType = ffi::GstVideoResamplerMethod;
4211
4212 #[inline]
4213 fn into_glib(self) -> ffi::GstVideoResamplerMethod {
4214 match self {
4215 Self::Nearest => ffi::GST_VIDEO_RESAMPLER_METHOD_NEAREST,
4216 Self::Linear => ffi::GST_VIDEO_RESAMPLER_METHOD_LINEAR,
4217 Self::Cubic => ffi::GST_VIDEO_RESAMPLER_METHOD_CUBIC,
4218 Self::Sinc => ffi::GST_VIDEO_RESAMPLER_METHOD_SINC,
4219 Self::Lanczos => ffi::GST_VIDEO_RESAMPLER_METHOD_LANCZOS,
4220 Self::__Unknown(value) => value,
4221 }
4222 }
4223}
4224
4225#[doc(hidden)]
4226impl FromGlib<ffi::GstVideoResamplerMethod> for VideoResamplerMethod {
4227 #[inline]
4228 unsafe fn from_glib(value: ffi::GstVideoResamplerMethod) -> Self {
4229 skip_assert_initialized!();
4230
4231 match value {
4232 ffi::GST_VIDEO_RESAMPLER_METHOD_NEAREST => Self::Nearest,
4233 ffi::GST_VIDEO_RESAMPLER_METHOD_LINEAR => Self::Linear,
4234 ffi::GST_VIDEO_RESAMPLER_METHOD_CUBIC => Self::Cubic,
4235 ffi::GST_VIDEO_RESAMPLER_METHOD_SINC => Self::Sinc,
4236 ffi::GST_VIDEO_RESAMPLER_METHOD_LANCZOS => Self::Lanczos,
4237 value => Self::__Unknown(value),
4238 }
4239 }
4240}
4241
4242impl StaticType for VideoResamplerMethod {
4243 #[inline]
4244 #[doc(alias = "gst_video_resampler_method_get_type")]
4245 fn static_type() -> glib::Type {
4246 unsafe { from_glib(ffi::gst_video_resampler_method_get_type()) }
4247 }
4248}
4249
4250impl glib::HasParamSpec for VideoResamplerMethod {
4251 type ParamSpec = glib::ParamSpecEnum;
4252 type SetValue = Self;
4253 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4254
4255 fn param_spec_builder() -> Self::BuilderFn {
4256 Self::ParamSpec::builder_with_default
4257 }
4258}
4259
4260impl glib::value::ValueType for VideoResamplerMethod {
4261 type Type = Self;
4262}
4263
4264unsafe impl<'a> glib::value::FromValue<'a> for VideoResamplerMethod {
4265 type Checker = glib::value::GenericValueTypeChecker<Self>;
4266
4267 #[inline]
4268 unsafe fn from_value(value: &'a glib::Value) -> Self {
4269 skip_assert_initialized!();
4270 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
4271 }
4272}
4273
4274impl ToValue for VideoResamplerMethod {
4275 #[inline]
4276 fn to_value(&self) -> glib::Value {
4277 let mut value = glib::Value::for_value_type::<Self>();
4278 unsafe {
4279 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4280 }
4281 value
4282 }
4283
4284 #[inline]
4285 fn value_type(&self) -> glib::Type {
4286 Self::static_type()
4287 }
4288}
4289
4290impl From<VideoResamplerMethod> for glib::Value {
4291 #[inline]
4292 fn from(v: VideoResamplerMethod) -> Self {
4293 skip_assert_initialized!();
4294 ToValue::to_value(&v)
4295 }
4296}
4297
4298#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4299#[non_exhaustive]
4300#[doc(alias = "GstVideoTileMode")]
4301pub enum VideoTileMode {
4302 #[doc(alias = "GST_VIDEO_TILE_MODE_UNKNOWN")]
4303 Unknown,
4304 #[doc(alias = "GST_VIDEO_TILE_MODE_ZFLIPZ_2X2")]
4305 Zflipz2x2,
4306 #[cfg(feature = "v1_18")]
4307 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4308 #[doc(alias = "GST_VIDEO_TILE_MODE_LINEAR")]
4309 Linear,
4310 #[doc(hidden)]
4311 __Unknown(i32),
4312}
4313
4314#[doc(hidden)]
4315impl IntoGlib for VideoTileMode {
4316 type GlibType = ffi::GstVideoTileMode;
4317
4318 #[inline]
4319 fn into_glib(self) -> ffi::GstVideoTileMode {
4320 match self {
4321 Self::Unknown => ffi::GST_VIDEO_TILE_MODE_UNKNOWN,
4322 Self::Zflipz2x2 => ffi::GST_VIDEO_TILE_MODE_ZFLIPZ_2X2,
4323 #[cfg(feature = "v1_18")]
4324 Self::Linear => ffi::GST_VIDEO_TILE_MODE_LINEAR,
4325 Self::__Unknown(value) => value,
4326 }
4327 }
4328}
4329
4330#[doc(hidden)]
4331impl FromGlib<ffi::GstVideoTileMode> for VideoTileMode {
4332 #[inline]
4333 unsafe fn from_glib(value: ffi::GstVideoTileMode) -> Self {
4334 skip_assert_initialized!();
4335
4336 match value {
4337 ffi::GST_VIDEO_TILE_MODE_UNKNOWN => Self::Unknown,
4338 ffi::GST_VIDEO_TILE_MODE_ZFLIPZ_2X2 => Self::Zflipz2x2,
4339 #[cfg(feature = "v1_18")]
4340 ffi::GST_VIDEO_TILE_MODE_LINEAR => Self::Linear,
4341 value => Self::__Unknown(value),
4342 }
4343 }
4344}
4345
4346impl StaticType for VideoTileMode {
4347 #[inline]
4348 #[doc(alias = "gst_video_tile_mode_get_type")]
4349 fn static_type() -> glib::Type {
4350 unsafe { from_glib(ffi::gst_video_tile_mode_get_type()) }
4351 }
4352}
4353
4354impl glib::HasParamSpec for VideoTileMode {
4355 type ParamSpec = glib::ParamSpecEnum;
4356 type SetValue = Self;
4357 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4358
4359 fn param_spec_builder() -> Self::BuilderFn {
4360 Self::ParamSpec::builder_with_default
4361 }
4362}
4363
4364impl glib::value::ValueType for VideoTileMode {
4365 type Type = Self;
4366}
4367
4368unsafe impl<'a> glib::value::FromValue<'a> for VideoTileMode {
4369 type Checker = glib::value::GenericValueTypeChecker<Self>;
4370
4371 #[inline]
4372 unsafe fn from_value(value: &'a glib::Value) -> Self {
4373 skip_assert_initialized!();
4374 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
4375 }
4376}
4377
4378impl ToValue for VideoTileMode {
4379 #[inline]
4380 fn to_value(&self) -> glib::Value {
4381 let mut value = glib::Value::for_value_type::<Self>();
4382 unsafe {
4383 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4384 }
4385 value
4386 }
4387
4388 #[inline]
4389 fn value_type(&self) -> glib::Type {
4390 Self::static_type()
4391 }
4392}
4393
4394impl From<VideoTileMode> for glib::Value {
4395 #[inline]
4396 fn from(v: VideoTileMode) -> Self {
4397 skip_assert_initialized!();
4398 ToValue::to_value(&v)
4399 }
4400}
4401
4402#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4403#[non_exhaustive]
4404#[doc(alias = "GstVideoTransferFunction")]
4405pub enum VideoTransferFunction {
4406 #[doc(alias = "GST_VIDEO_TRANSFER_UNKNOWN")]
4407 Unknown,
4408 #[doc(alias = "GST_VIDEO_TRANSFER_GAMMA10")]
4409 Gamma10,
4410 #[doc(alias = "GST_VIDEO_TRANSFER_GAMMA18")]
4411 Gamma18,
4412 #[doc(alias = "GST_VIDEO_TRANSFER_GAMMA20")]
4413 Gamma20,
4414 #[doc(alias = "GST_VIDEO_TRANSFER_GAMMA22")]
4415 Gamma22,
4416 #[doc(alias = "GST_VIDEO_TRANSFER_BT709")]
4417 Bt709,
4418 #[doc(alias = "GST_VIDEO_TRANSFER_SMPTE240M")]
4419 Smpte240m,
4420 #[doc(alias = "GST_VIDEO_TRANSFER_SRGB")]
4421 Srgb,
4422 #[doc(alias = "GST_VIDEO_TRANSFER_GAMMA28")]
4423 Gamma28,
4424 #[doc(alias = "GST_VIDEO_TRANSFER_LOG100")]
4425 Log100,
4426 #[doc(alias = "GST_VIDEO_TRANSFER_LOG316")]
4427 Log316,
4428 #[doc(alias = "GST_VIDEO_TRANSFER_BT2020_12")]
4429 Bt202012,
4430 #[doc(alias = "GST_VIDEO_TRANSFER_ADOBERGB")]
4431 Adobergb,
4432 #[cfg(feature = "v1_18")]
4433 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4434 #[doc(alias = "GST_VIDEO_TRANSFER_BT2020_10")]
4435 Bt202010,
4436 #[cfg(feature = "v1_18")]
4437 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4438 #[doc(alias = "GST_VIDEO_TRANSFER_SMPTE2084")]
4439 Smpte2084,
4440 #[cfg(feature = "v1_18")]
4441 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4442 #[doc(alias = "GST_VIDEO_TRANSFER_ARIB_STD_B67")]
4443 AribStdB67,
4444 #[cfg(feature = "v1_18")]
4445 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4446 #[doc(alias = "GST_VIDEO_TRANSFER_BT601")]
4447 Bt601,
4448 #[doc(hidden)]
4449 __Unknown(i32),
4450}
4451
4452impl VideoTransferFunction {
4453 #[cfg(feature = "v1_20")]
4454 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
4455 #[doc(alias = "gst_video_transfer_function_decode")]
4456 pub fn decode(self, val: f64) -> f64 {
4457 assert_initialized_main_thread!();
4458 unsafe { ffi::gst_video_transfer_function_decode(self.into_glib(), val) }
4459 }
4460
4461 #[cfg(feature = "v1_20")]
4462 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
4463 #[doc(alias = "gst_video_transfer_function_encode")]
4464 pub fn encode(self, val: f64) -> f64 {
4465 assert_initialized_main_thread!();
4466 unsafe { ffi::gst_video_transfer_function_encode(self.into_glib(), val) }
4467 }
4468
4469 #[cfg(feature = "v1_18")]
4470 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4471 #[doc(alias = "gst_video_transfer_function_from_iso")]
4472 pub fn from_iso(value: u32) -> VideoTransferFunction {
4473 assert_initialized_main_thread!();
4474 unsafe { from_glib(ffi::gst_video_transfer_function_from_iso(value)) }
4475 }
4476
4477 #[cfg(feature = "v1_18")]
4478 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4479 #[doc(alias = "gst_video_transfer_function_is_equivalent")]
4480 pub fn is_equivalent(self, from_bpp: u32, to_func: VideoTransferFunction, to_bpp: u32) -> bool {
4481 assert_initialized_main_thread!();
4482 unsafe {
4483 from_glib(ffi::gst_video_transfer_function_is_equivalent(
4484 self.into_glib(),
4485 from_bpp,
4486 to_func.into_glib(),
4487 to_bpp,
4488 ))
4489 }
4490 }
4491
4492 #[cfg(feature = "v1_18")]
4493 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
4494 #[doc(alias = "gst_video_transfer_function_to_iso")]
4495 pub fn to_iso(self) -> u32 {
4496 assert_initialized_main_thread!();
4497 unsafe { ffi::gst_video_transfer_function_to_iso(self.into_glib()) }
4498 }
4499}
4500
4501#[doc(hidden)]
4502impl IntoGlib for VideoTransferFunction {
4503 type GlibType = ffi::GstVideoTransferFunction;
4504
4505 fn into_glib(self) -> ffi::GstVideoTransferFunction {
4506 match self {
4507 Self::Unknown => ffi::GST_VIDEO_TRANSFER_UNKNOWN,
4508 Self::Gamma10 => ffi::GST_VIDEO_TRANSFER_GAMMA10,
4509 Self::Gamma18 => ffi::GST_VIDEO_TRANSFER_GAMMA18,
4510 Self::Gamma20 => ffi::GST_VIDEO_TRANSFER_GAMMA20,
4511 Self::Gamma22 => ffi::GST_VIDEO_TRANSFER_GAMMA22,
4512 Self::Bt709 => ffi::GST_VIDEO_TRANSFER_BT709,
4513 Self::Smpte240m => ffi::GST_VIDEO_TRANSFER_SMPTE240M,
4514 Self::Srgb => ffi::GST_VIDEO_TRANSFER_SRGB,
4515 Self::Gamma28 => ffi::GST_VIDEO_TRANSFER_GAMMA28,
4516 Self::Log100 => ffi::GST_VIDEO_TRANSFER_LOG100,
4517 Self::Log316 => ffi::GST_VIDEO_TRANSFER_LOG316,
4518 Self::Bt202012 => ffi::GST_VIDEO_TRANSFER_BT2020_12,
4519 Self::Adobergb => ffi::GST_VIDEO_TRANSFER_ADOBERGB,
4520 #[cfg(feature = "v1_18")]
4521 Self::Bt202010 => ffi::GST_VIDEO_TRANSFER_BT2020_10,
4522 #[cfg(feature = "v1_18")]
4523 Self::Smpte2084 => ffi::GST_VIDEO_TRANSFER_SMPTE2084,
4524 #[cfg(feature = "v1_18")]
4525 Self::AribStdB67 => ffi::GST_VIDEO_TRANSFER_ARIB_STD_B67,
4526 #[cfg(feature = "v1_18")]
4527 Self::Bt601 => ffi::GST_VIDEO_TRANSFER_BT601,
4528 Self::__Unknown(value) => value,
4529 }
4530 }
4531}
4532
4533#[doc(hidden)]
4534impl FromGlib<ffi::GstVideoTransferFunction> for VideoTransferFunction {
4535 unsafe fn from_glib(value: ffi::GstVideoTransferFunction) -> Self {
4536 skip_assert_initialized!();
4537
4538 match value {
4539 ffi::GST_VIDEO_TRANSFER_UNKNOWN => Self::Unknown,
4540 ffi::GST_VIDEO_TRANSFER_GAMMA10 => Self::Gamma10,
4541 ffi::GST_VIDEO_TRANSFER_GAMMA18 => Self::Gamma18,
4542 ffi::GST_VIDEO_TRANSFER_GAMMA20 => Self::Gamma20,
4543 ffi::GST_VIDEO_TRANSFER_GAMMA22 => Self::Gamma22,
4544 ffi::GST_VIDEO_TRANSFER_BT709 => Self::Bt709,
4545 ffi::GST_VIDEO_TRANSFER_SMPTE240M => Self::Smpte240m,
4546 ffi::GST_VIDEO_TRANSFER_SRGB => Self::Srgb,
4547 ffi::GST_VIDEO_TRANSFER_GAMMA28 => Self::Gamma28,
4548 ffi::GST_VIDEO_TRANSFER_LOG100 => Self::Log100,
4549 ffi::GST_VIDEO_TRANSFER_LOG316 => Self::Log316,
4550 ffi::GST_VIDEO_TRANSFER_BT2020_12 => Self::Bt202012,
4551 ffi::GST_VIDEO_TRANSFER_ADOBERGB => Self::Adobergb,
4552 #[cfg(feature = "v1_18")]
4553 ffi::GST_VIDEO_TRANSFER_BT2020_10 => Self::Bt202010,
4554 #[cfg(feature = "v1_18")]
4555 ffi::GST_VIDEO_TRANSFER_SMPTE2084 => Self::Smpte2084,
4556 #[cfg(feature = "v1_18")]
4557 ffi::GST_VIDEO_TRANSFER_ARIB_STD_B67 => Self::AribStdB67,
4558 #[cfg(feature = "v1_18")]
4559 ffi::GST_VIDEO_TRANSFER_BT601 => Self::Bt601,
4560 value => Self::__Unknown(value),
4561 }
4562 }
4563}
4564
4565impl StaticType for VideoTransferFunction {
4566 #[inline]
4567 #[doc(alias = "gst_video_transfer_function_get_type")]
4568 fn static_type() -> glib::Type {
4569 unsafe { from_glib(ffi::gst_video_transfer_function_get_type()) }
4570 }
4571}
4572
4573impl glib::HasParamSpec for VideoTransferFunction {
4574 type ParamSpec = glib::ParamSpecEnum;
4575 type SetValue = Self;
4576 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4577
4578 fn param_spec_builder() -> Self::BuilderFn {
4579 Self::ParamSpec::builder_with_default
4580 }
4581}
4582
4583impl glib::value::ValueType for VideoTransferFunction {
4584 type Type = Self;
4585}
4586
4587unsafe impl<'a> glib::value::FromValue<'a> for VideoTransferFunction {
4588 type Checker = glib::value::GenericValueTypeChecker<Self>;
4589
4590 #[inline]
4591 unsafe fn from_value(value: &'a glib::Value) -> Self {
4592 skip_assert_initialized!();
4593 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
4594 }
4595}
4596
4597impl ToValue for VideoTransferFunction {
4598 #[inline]
4599 fn to_value(&self) -> glib::Value {
4600 let mut value = glib::Value::for_value_type::<Self>();
4601 unsafe {
4602 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4603 }
4604 value
4605 }
4606
4607 #[inline]
4608 fn value_type(&self) -> glib::Type {
4609 Self::static_type()
4610 }
4611}
4612
4613impl From<VideoTransferFunction> for glib::Value {
4614 #[inline]
4615 fn from(v: VideoTransferFunction) -> Self {
4616 skip_assert_initialized!();
4617 ToValue::to_value(&v)
4618 }
4619}