1use crate::ffi;
7use glib::{GStr, bitflags::bitflags, prelude::*, translate::*};
8
9bitflags! {
10 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
14 #[doc(alias = "GstBinFlags")]
15 pub struct BinFlags: u32 {
16 #[doc(alias = "GST_BIN_FLAG_NO_RESYNC")]
18 const NO_RESYNC = ffi::GST_BIN_FLAG_NO_RESYNC as _;
19 #[doc(alias = "GST_BIN_FLAG_STREAMS_AWARE")]
22 const STREAMS_AWARE = ffi::GST_BIN_FLAG_STREAMS_AWARE as _;
23 }
24}
25
26#[doc(hidden)]
27impl IntoGlib for BinFlags {
28 type GlibType = ffi::GstBinFlags;
29
30 #[inline]
31 fn into_glib(self) -> ffi::GstBinFlags {
32 self.bits()
33 }
34}
35
36#[doc(hidden)]
37impl FromGlib<ffi::GstBinFlags> for BinFlags {
38 #[inline]
39 unsafe fn from_glib(value: ffi::GstBinFlags) -> Self {
40 skip_assert_initialized!();
41 Self::from_bits_truncate(value)
42 }
43}
44
45impl StaticType for BinFlags {
46 #[inline]
47 #[doc(alias = "gst_bin_flags_get_type")]
48 fn static_type() -> glib::Type {
49 unsafe { from_glib(ffi::gst_bin_flags_get_type()) }
50 }
51}
52
53impl glib::HasParamSpec for BinFlags {
54 type ParamSpec = glib::ParamSpecFlags;
55 type SetValue = Self;
56 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
57
58 fn param_spec_builder() -> Self::BuilderFn {
59 Self::ParamSpec::builder
60 }
61}
62
63impl glib::value::ValueType for BinFlags {
64 type Type = Self;
65}
66
67unsafe impl<'a> glib::value::FromValue<'a> for BinFlags {
68 type Checker = glib::value::GenericValueTypeChecker<Self>;
69
70 #[inline]
71 unsafe fn from_value(value: &'a glib::Value) -> Self {
72 skip_assert_initialized!();
73 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
74 }
75}
76
77impl ToValue for BinFlags {
78 #[inline]
79 fn to_value(&self) -> glib::Value {
80 let mut value = glib::Value::for_value_type::<Self>();
81 unsafe {
82 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
83 }
84 value
85 }
86
87 #[inline]
88 fn value_type(&self) -> glib::Type {
89 Self::static_type()
90 }
91}
92
93impl From<BinFlags> for glib::Value {
94 #[inline]
95 fn from(v: BinFlags) -> Self {
96 skip_assert_initialized!();
97 ToValue::to_value(&v)
98 }
99}
100
101bitflags! {
102 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
105 #[doc(alias = "GstBufferCopyFlags")]
106 pub struct BufferCopyFlags: u32 {
107 #[doc(alias = "GST_BUFFER_COPY_FLAGS")]
109 const FLAGS = ffi::GST_BUFFER_COPY_FLAGS as _;
110 #[doc(alias = "GST_BUFFER_COPY_TIMESTAMPS")]
113 const TIMESTAMPS = ffi::GST_BUFFER_COPY_TIMESTAMPS as _;
114 #[doc(alias = "GST_BUFFER_COPY_META")]
117 const META = ffi::GST_BUFFER_COPY_META as _;
118 #[doc(alias = "GST_BUFFER_COPY_MEMORY")]
123 const MEMORY = ffi::GST_BUFFER_COPY_MEMORY as _;
124 #[doc(alias = "GST_BUFFER_COPY_MERGE")]
127 const MERGE = ffi::GST_BUFFER_COPY_MERGE as _;
128 #[doc(alias = "GST_BUFFER_COPY_DEEP")]
130 const DEEP = ffi::GST_BUFFER_COPY_DEEP as _;
131 }
132}
133
134#[doc(hidden)]
135impl IntoGlib for BufferCopyFlags {
136 type GlibType = ffi::GstBufferCopyFlags;
137
138 #[inline]
139 fn into_glib(self) -> ffi::GstBufferCopyFlags {
140 self.bits()
141 }
142}
143
144#[doc(hidden)]
145impl FromGlib<ffi::GstBufferCopyFlags> for BufferCopyFlags {
146 #[inline]
147 unsafe fn from_glib(value: ffi::GstBufferCopyFlags) -> Self {
148 skip_assert_initialized!();
149 Self::from_bits_truncate(value)
150 }
151}
152
153impl StaticType for BufferCopyFlags {
154 #[inline]
155 #[doc(alias = "gst_buffer_copy_flags_get_type")]
156 fn static_type() -> glib::Type {
157 unsafe { from_glib(ffi::gst_buffer_copy_flags_get_type()) }
158 }
159}
160
161impl glib::HasParamSpec for BufferCopyFlags {
162 type ParamSpec = glib::ParamSpecFlags;
163 type SetValue = Self;
164 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
165
166 fn param_spec_builder() -> Self::BuilderFn {
167 Self::ParamSpec::builder
168 }
169}
170
171impl glib::value::ValueType for BufferCopyFlags {
172 type Type = Self;
173}
174
175unsafe impl<'a> glib::value::FromValue<'a> for BufferCopyFlags {
176 type Checker = glib::value::GenericValueTypeChecker<Self>;
177
178 #[inline]
179 unsafe fn from_value(value: &'a glib::Value) -> Self {
180 skip_assert_initialized!();
181 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
182 }
183}
184
185impl ToValue for BufferCopyFlags {
186 #[inline]
187 fn to_value(&self) -> glib::Value {
188 let mut value = glib::Value::for_value_type::<Self>();
189 unsafe {
190 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
191 }
192 value
193 }
194
195 #[inline]
196 fn value_type(&self) -> glib::Type {
197 Self::static_type()
198 }
199}
200
201impl From<BufferCopyFlags> for glib::Value {
202 #[inline]
203 fn from(v: BufferCopyFlags) -> Self {
204 skip_assert_initialized!();
205 ToValue::to_value(&v)
206 }
207}
208
209bitflags! {
210 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
212 #[doc(alias = "GstBufferFlags")]
213 pub struct BufferFlags: u32 {
214 #[doc(alias = "GST_BUFFER_FLAG_LIVE")]
217 const LIVE = ffi::GST_BUFFER_FLAG_LIVE as _;
218 #[doc(alias = "GST_BUFFER_FLAG_DECODE_ONLY")]
223 const DECODE_ONLY = ffi::GST_BUFFER_FLAG_DECODE_ONLY as _;
224 #[doc(alias = "GST_BUFFER_FLAG_DISCONT")]
228 const DISCONT = ffi::GST_BUFFER_FLAG_DISCONT as _;
229 #[doc(alias = "GST_BUFFER_FLAG_RESYNC")]
232 const RESYNC = ffi::GST_BUFFER_FLAG_RESYNC as _;
233 #[doc(alias = "GST_BUFFER_FLAG_CORRUPTED")]
235 const CORRUPTED = ffi::GST_BUFFER_FLAG_CORRUPTED as _;
236 #[doc(alias = "GST_BUFFER_FLAG_MARKER")]
242 const MARKER = ffi::GST_BUFFER_FLAG_MARKER as _;
243 #[doc(alias = "GST_BUFFER_FLAG_HEADER")]
246 const HEADER = ffi::GST_BUFFER_FLAG_HEADER as _;
247 #[doc(alias = "GST_BUFFER_FLAG_GAP")]
252 const GAP = ffi::GST_BUFFER_FLAG_GAP as _;
253 #[doc(alias = "GST_BUFFER_FLAG_DROPPABLE")]
256 const DROPPABLE = ffi::GST_BUFFER_FLAG_DROPPABLE as _;
257 #[doc(alias = "GST_BUFFER_FLAG_DELTA_UNIT")]
259 const DELTA_UNIT = ffi::GST_BUFFER_FLAG_DELTA_UNIT as _;
260 #[doc(alias = "GST_BUFFER_FLAG_TAG_MEMORY")]
263 const TAG_MEMORY = ffi::GST_BUFFER_FLAG_TAG_MEMORY as _;
264 #[doc(alias = "GST_BUFFER_FLAG_SYNC_AFTER")]
267 const SYNC_AFTER = ffi::GST_BUFFER_FLAG_SYNC_AFTER as _;
268 #[doc(alias = "GST_BUFFER_FLAG_NON_DROPPABLE")]
275 const NON_DROPPABLE = ffi::GST_BUFFER_FLAG_NON_DROPPABLE as _;
276 }
277}
278
279#[doc(hidden)]
280impl IntoGlib for BufferFlags {
281 type GlibType = ffi::GstBufferFlags;
282
283 #[inline]
284 fn into_glib(self) -> ffi::GstBufferFlags {
285 self.bits()
286 }
287}
288
289#[doc(hidden)]
290impl FromGlib<ffi::GstBufferFlags> for BufferFlags {
291 #[inline]
292 unsafe fn from_glib(value: ffi::GstBufferFlags) -> Self {
293 skip_assert_initialized!();
294 Self::from_bits_truncate(value)
295 }
296}
297
298impl StaticType for BufferFlags {
299 #[inline]
300 #[doc(alias = "gst_buffer_flags_get_type")]
301 fn static_type() -> glib::Type {
302 unsafe { from_glib(ffi::gst_buffer_flags_get_type()) }
303 }
304}
305
306impl glib::HasParamSpec for BufferFlags {
307 type ParamSpec = glib::ParamSpecFlags;
308 type SetValue = Self;
309 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
310
311 fn param_spec_builder() -> Self::BuilderFn {
312 Self::ParamSpec::builder
313 }
314}
315
316impl glib::value::ValueType for BufferFlags {
317 type Type = Self;
318}
319
320unsafe impl<'a> glib::value::FromValue<'a> for BufferFlags {
321 type Checker = glib::value::GenericValueTypeChecker<Self>;
322
323 #[inline]
324 unsafe fn from_value(value: &'a glib::Value) -> Self {
325 skip_assert_initialized!();
326 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
327 }
328}
329
330impl ToValue for BufferFlags {
331 #[inline]
332 fn to_value(&self) -> glib::Value {
333 let mut value = glib::Value::for_value_type::<Self>();
334 unsafe {
335 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
336 }
337 value
338 }
339
340 #[inline]
341 fn value_type(&self) -> glib::Type {
342 Self::static_type()
343 }
344}
345
346impl From<BufferFlags> for glib::Value {
347 #[inline]
348 fn from(v: BufferFlags) -> Self {
349 skip_assert_initialized!();
350 ToValue::to_value(&v)
351 }
352}
353
354bitflags! {
355 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
357 #[doc(alias = "GstBufferPoolAcquireFlags")]
358 pub struct BufferPoolAcquireFlags: u32 {
359 #[doc(alias = "GST_BUFFER_POOL_ACQUIRE_FLAG_KEY_UNIT")]
361 const KEY_UNIT = ffi::GST_BUFFER_POOL_ACQUIRE_FLAG_KEY_UNIT as _;
362 #[doc(alias = "GST_BUFFER_POOL_ACQUIRE_FLAG_DONTWAIT")]
366 const DONTWAIT = ffi::GST_BUFFER_POOL_ACQUIRE_FLAG_DONTWAIT as _;
367 #[doc(alias = "GST_BUFFER_POOL_ACQUIRE_FLAG_DISCONT")]
369 const DISCONT = ffi::GST_BUFFER_POOL_ACQUIRE_FLAG_DISCONT as _;
370 }
371}
372
373#[doc(hidden)]
374impl IntoGlib for BufferPoolAcquireFlags {
375 type GlibType = ffi::GstBufferPoolAcquireFlags;
376
377 #[inline]
378 fn into_glib(self) -> ffi::GstBufferPoolAcquireFlags {
379 self.bits()
380 }
381}
382
383#[doc(hidden)]
384impl FromGlib<ffi::GstBufferPoolAcquireFlags> for BufferPoolAcquireFlags {
385 #[inline]
386 unsafe fn from_glib(value: ffi::GstBufferPoolAcquireFlags) -> Self {
387 skip_assert_initialized!();
388 Self::from_bits_truncate(value)
389 }
390}
391
392impl StaticType for BufferPoolAcquireFlags {
393 #[inline]
394 #[doc(alias = "gst_buffer_pool_acquire_flags_get_type")]
395 fn static_type() -> glib::Type {
396 unsafe { from_glib(ffi::gst_buffer_pool_acquire_flags_get_type()) }
397 }
398}
399
400impl glib::HasParamSpec for BufferPoolAcquireFlags {
401 type ParamSpec = glib::ParamSpecFlags;
402 type SetValue = Self;
403 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
404
405 fn param_spec_builder() -> Self::BuilderFn {
406 Self::ParamSpec::builder
407 }
408}
409
410impl glib::value::ValueType for BufferPoolAcquireFlags {
411 type Type = Self;
412}
413
414unsafe impl<'a> glib::value::FromValue<'a> for BufferPoolAcquireFlags {
415 type Checker = glib::value::GenericValueTypeChecker<Self>;
416
417 #[inline]
418 unsafe fn from_value(value: &'a glib::Value) -> Self {
419 skip_assert_initialized!();
420 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
421 }
422}
423
424impl ToValue for BufferPoolAcquireFlags {
425 #[inline]
426 fn to_value(&self) -> glib::Value {
427 let mut value = glib::Value::for_value_type::<Self>();
428 unsafe {
429 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
430 }
431 value
432 }
433
434 #[inline]
435 fn value_type(&self) -> glib::Type {
436 Self::static_type()
437 }
438}
439
440impl From<BufferPoolAcquireFlags> for glib::Value {
441 #[inline]
442 fn from(v: BufferPoolAcquireFlags) -> Self {
443 skip_assert_initialized!();
444 ToValue::to_value(&v)
445 }
446}
447
448bitflags! {
449 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
451 #[doc(alias = "GstClockFlags")]
452 pub struct ClockFlags: u32 {
453 #[doc(alias = "GST_CLOCK_FLAG_CAN_DO_SINGLE_SYNC")]
455 const CAN_DO_SINGLE_SYNC = ffi::GST_CLOCK_FLAG_CAN_DO_SINGLE_SYNC as _;
456 #[doc(alias = "GST_CLOCK_FLAG_CAN_DO_SINGLE_ASYNC")]
458 const CAN_DO_SINGLE_ASYNC = ffi::GST_CLOCK_FLAG_CAN_DO_SINGLE_ASYNC as _;
459 #[doc(alias = "GST_CLOCK_FLAG_CAN_DO_PERIODIC_SYNC")]
461 const CAN_DO_PERIODIC_SYNC = ffi::GST_CLOCK_FLAG_CAN_DO_PERIODIC_SYNC as _;
462 #[doc(alias = "GST_CLOCK_FLAG_CAN_DO_PERIODIC_ASYNC")]
464 const CAN_DO_PERIODIC_ASYNC = ffi::GST_CLOCK_FLAG_CAN_DO_PERIODIC_ASYNC as _;
465 #[doc(alias = "GST_CLOCK_FLAG_CAN_SET_RESOLUTION")]
467 const CAN_SET_RESOLUTION = ffi::GST_CLOCK_FLAG_CAN_SET_RESOLUTION as _;
468 #[doc(alias = "GST_CLOCK_FLAG_CAN_SET_MASTER")]
470 const CAN_SET_MASTER = ffi::GST_CLOCK_FLAG_CAN_SET_MASTER as _;
471 #[doc(alias = "GST_CLOCK_FLAG_NEEDS_STARTUP_SYNC")]
473 const NEEDS_STARTUP_SYNC = ffi::GST_CLOCK_FLAG_NEEDS_STARTUP_SYNC as _;
474 }
475}
476
477#[doc(hidden)]
478impl IntoGlib for ClockFlags {
479 type GlibType = ffi::GstClockFlags;
480
481 #[inline]
482 fn into_glib(self) -> ffi::GstClockFlags {
483 self.bits()
484 }
485}
486
487#[doc(hidden)]
488impl FromGlib<ffi::GstClockFlags> for ClockFlags {
489 #[inline]
490 unsafe fn from_glib(value: ffi::GstClockFlags) -> Self {
491 skip_assert_initialized!();
492 Self::from_bits_truncate(value)
493 }
494}
495
496impl StaticType for ClockFlags {
497 #[inline]
498 #[doc(alias = "gst_clock_flags_get_type")]
499 fn static_type() -> glib::Type {
500 unsafe { from_glib(ffi::gst_clock_flags_get_type()) }
501 }
502}
503
504impl glib::HasParamSpec for ClockFlags {
505 type ParamSpec = glib::ParamSpecFlags;
506 type SetValue = Self;
507 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
508
509 fn param_spec_builder() -> Self::BuilderFn {
510 Self::ParamSpec::builder
511 }
512}
513
514impl glib::value::ValueType for ClockFlags {
515 type Type = Self;
516}
517
518unsafe impl<'a> glib::value::FromValue<'a> for ClockFlags {
519 type Checker = glib::value::GenericValueTypeChecker<Self>;
520
521 #[inline]
522 unsafe fn from_value(value: &'a glib::Value) -> Self {
523 skip_assert_initialized!();
524 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
525 }
526}
527
528impl ToValue for ClockFlags {
529 #[inline]
530 fn to_value(&self) -> glib::Value {
531 let mut value = glib::Value::for_value_type::<Self>();
532 unsafe {
533 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
534 }
535 value
536 }
537
538 #[inline]
539 fn value_type(&self) -> glib::Type {
540 Self::static_type()
541 }
542}
543
544impl From<ClockFlags> for glib::Value {
545 #[inline]
546 fn from(v: ClockFlags) -> Self {
547 skip_assert_initialized!();
548 ToValue::to_value(&v)
549 }
550}
551
552bitflags! {
553 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
556 #[doc(alias = "GstDebugColorFlags")]
557 pub struct DebugColorFlags: u32 {
558 #[doc(alias = "GST_DEBUG_FG_BLACK")]
560 const FG_BLACK = ffi::GST_DEBUG_FG_BLACK as _;
561 #[doc(alias = "GST_DEBUG_FG_RED")]
563 const FG_RED = ffi::GST_DEBUG_FG_RED as _;
564 #[doc(alias = "GST_DEBUG_FG_GREEN")]
566 const FG_GREEN = ffi::GST_DEBUG_FG_GREEN as _;
567 #[doc(alias = "GST_DEBUG_FG_YELLOW")]
569 const FG_YELLOW = ffi::GST_DEBUG_FG_YELLOW as _;
570 #[doc(alias = "GST_DEBUG_FG_BLUE")]
572 const FG_BLUE = ffi::GST_DEBUG_FG_BLUE as _;
573 #[doc(alias = "GST_DEBUG_FG_MAGENTA")]
575 const FG_MAGENTA = ffi::GST_DEBUG_FG_MAGENTA as _;
576 #[doc(alias = "GST_DEBUG_FG_CYAN")]
578 const FG_CYAN = ffi::GST_DEBUG_FG_CYAN as _;
579 #[doc(alias = "GST_DEBUG_FG_WHITE")]
581 const FG_WHITE = ffi::GST_DEBUG_FG_WHITE as _;
582 #[doc(alias = "GST_DEBUG_BG_BLACK")]
584 const BG_BLACK = ffi::GST_DEBUG_BG_BLACK as _;
585 #[doc(alias = "GST_DEBUG_BG_RED")]
587 const BG_RED = ffi::GST_DEBUG_BG_RED as _;
588 #[doc(alias = "GST_DEBUG_BG_GREEN")]
590 const BG_GREEN = ffi::GST_DEBUG_BG_GREEN as _;
591 #[doc(alias = "GST_DEBUG_BG_YELLOW")]
593 const BG_YELLOW = ffi::GST_DEBUG_BG_YELLOW as _;
594 #[doc(alias = "GST_DEBUG_BG_BLUE")]
596 const BG_BLUE = ffi::GST_DEBUG_BG_BLUE as _;
597 #[doc(alias = "GST_DEBUG_BG_MAGENTA")]
599 const BG_MAGENTA = ffi::GST_DEBUG_BG_MAGENTA as _;
600 #[doc(alias = "GST_DEBUG_BG_CYAN")]
602 const BG_CYAN = ffi::GST_DEBUG_BG_CYAN as _;
603 #[doc(alias = "GST_DEBUG_BG_WHITE")]
605 const BG_WHITE = ffi::GST_DEBUG_BG_WHITE as _;
606 #[doc(alias = "GST_DEBUG_BOLD")]
608 const BOLD = ffi::GST_DEBUG_BOLD as _;
609 #[doc(alias = "GST_DEBUG_UNDERLINE")]
611 const UNDERLINE = ffi::GST_DEBUG_UNDERLINE as _;
612 }
613}
614
615#[doc(hidden)]
616impl IntoGlib for DebugColorFlags {
617 type GlibType = ffi::GstDebugColorFlags;
618
619 #[inline]
620 fn into_glib(self) -> ffi::GstDebugColorFlags {
621 self.bits()
622 }
623}
624
625#[doc(hidden)]
626impl FromGlib<ffi::GstDebugColorFlags> for DebugColorFlags {
627 #[inline]
628 unsafe fn from_glib(value: ffi::GstDebugColorFlags) -> Self {
629 skip_assert_initialized!();
630 Self::from_bits_truncate(value)
631 }
632}
633
634impl StaticType for DebugColorFlags {
635 #[inline]
636 #[doc(alias = "gst_debug_color_flags_get_type")]
637 fn static_type() -> glib::Type {
638 unsafe { from_glib(ffi::gst_debug_color_flags_get_type()) }
639 }
640}
641
642impl glib::HasParamSpec for DebugColorFlags {
643 type ParamSpec = glib::ParamSpecFlags;
644 type SetValue = Self;
645 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
646
647 fn param_spec_builder() -> Self::BuilderFn {
648 Self::ParamSpec::builder
649 }
650}
651
652impl glib::value::ValueType for DebugColorFlags {
653 type Type = Self;
654}
655
656unsafe impl<'a> glib::value::FromValue<'a> for DebugColorFlags {
657 type Checker = glib::value::GenericValueTypeChecker<Self>;
658
659 #[inline]
660 unsafe fn from_value(value: &'a glib::Value) -> Self {
661 skip_assert_initialized!();
662 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
663 }
664}
665
666impl ToValue for DebugColorFlags {
667 #[inline]
668 fn to_value(&self) -> glib::Value {
669 let mut value = glib::Value::for_value_type::<Self>();
670 unsafe {
671 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
672 }
673 value
674 }
675
676 #[inline]
677 fn value_type(&self) -> glib::Type {
678 Self::static_type()
679 }
680}
681
682impl From<DebugColorFlags> for glib::Value {
683 #[inline]
684 fn from(v: DebugColorFlags) -> Self {
685 skip_assert_initialized!();
686 ToValue::to_value(&v)
687 }
688}
689
690bitflags! {
691 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
694 #[doc(alias = "GstDebugGraphDetails")]
695 pub struct DebugGraphDetails: u32 {
696 #[doc(alias = "GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE")]
698 const MEDIA_TYPE = ffi::GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE as _;
699 #[doc(alias = "GST_DEBUG_GRAPH_SHOW_CAPS_DETAILS")]
701 const CAPS_DETAILS = ffi::GST_DEBUG_GRAPH_SHOW_CAPS_DETAILS as _;
702 #[doc(alias = "GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS")]
708 const NON_DEFAULT_PARAMS = ffi::GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS as _;
709 #[doc(alias = "GST_DEBUG_GRAPH_SHOW_STATES")]
711 const STATES = ffi::GST_DEBUG_GRAPH_SHOW_STATES as _;
712 #[doc(alias = "GST_DEBUG_GRAPH_SHOW_FULL_PARAMS")]
717 const FULL_PARAMS = ffi::GST_DEBUG_GRAPH_SHOW_FULL_PARAMS as _;
718 #[doc(alias = "GST_DEBUG_GRAPH_SHOW_ALL")]
720 const ALL = ffi::GST_DEBUG_GRAPH_SHOW_ALL as _;
721 #[doc(alias = "GST_DEBUG_GRAPH_SHOW_VERBOSE")]
724 const VERBOSE = ffi::GST_DEBUG_GRAPH_SHOW_VERBOSE as _;
725 }
726}
727
728#[doc(hidden)]
729impl IntoGlib for DebugGraphDetails {
730 type GlibType = ffi::GstDebugGraphDetails;
731
732 #[inline]
733 fn into_glib(self) -> ffi::GstDebugGraphDetails {
734 self.bits()
735 }
736}
737
738#[doc(hidden)]
739impl FromGlib<ffi::GstDebugGraphDetails> for DebugGraphDetails {
740 #[inline]
741 unsafe fn from_glib(value: ffi::GstDebugGraphDetails) -> Self {
742 skip_assert_initialized!();
743 Self::from_bits_truncate(value)
744 }
745}
746
747impl StaticType for DebugGraphDetails {
748 #[inline]
749 #[doc(alias = "gst_debug_graph_details_get_type")]
750 fn static_type() -> glib::Type {
751 unsafe { from_glib(ffi::gst_debug_graph_details_get_type()) }
752 }
753}
754
755impl glib::HasParamSpec for DebugGraphDetails {
756 type ParamSpec = glib::ParamSpecFlags;
757 type SetValue = Self;
758 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
759
760 fn param_spec_builder() -> Self::BuilderFn {
761 Self::ParamSpec::builder
762 }
763}
764
765impl glib::value::ValueType for DebugGraphDetails {
766 type Type = Self;
767}
768
769unsafe impl<'a> glib::value::FromValue<'a> for DebugGraphDetails {
770 type Checker = glib::value::GenericValueTypeChecker<Self>;
771
772 #[inline]
773 unsafe fn from_value(value: &'a glib::Value) -> Self {
774 skip_assert_initialized!();
775 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
776 }
777}
778
779impl ToValue for DebugGraphDetails {
780 #[inline]
781 fn to_value(&self) -> glib::Value {
782 let mut value = glib::Value::for_value_type::<Self>();
783 unsafe {
784 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
785 }
786 value
787 }
788
789 #[inline]
790 fn value_type(&self) -> glib::Type {
791 Self::static_type()
792 }
793}
794
795impl From<DebugGraphDetails> for glib::Value {
796 #[inline]
797 fn from(v: DebugGraphDetails) -> Self {
798 skip_assert_initialized!();
799 ToValue::to_value(&v)
800 }
801}
802
803bitflags! {
804 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
806 #[doc(alias = "GstElementFlags")]
807 pub struct ElementFlags: u32 {
808 #[doc(alias = "GST_ELEMENT_FLAG_LOCKED_STATE")]
810 const LOCKED_STATE = ffi::GST_ELEMENT_FLAG_LOCKED_STATE as _;
811 #[doc(alias = "GST_ELEMENT_FLAG_SINK")]
813 const SINK = ffi::GST_ELEMENT_FLAG_SINK as _;
814 #[doc(alias = "GST_ELEMENT_FLAG_SOURCE")]
816 const SOURCE = ffi::GST_ELEMENT_FLAG_SOURCE as _;
817 #[doc(alias = "GST_ELEMENT_FLAG_PROVIDE_CLOCK")]
819 const PROVIDE_CLOCK = ffi::GST_ELEMENT_FLAG_PROVIDE_CLOCK as _;
820 #[doc(alias = "GST_ELEMENT_FLAG_REQUIRE_CLOCK")]
822 const REQUIRE_CLOCK = ffi::GST_ELEMENT_FLAG_REQUIRE_CLOCK as _;
823 #[doc(alias = "GST_ELEMENT_FLAG_INDEXABLE")]
825 const INDEXABLE = ffi::GST_ELEMENT_FLAG_INDEXABLE as _;
826 }
827}
828
829#[doc(hidden)]
830impl IntoGlib for ElementFlags {
831 type GlibType = ffi::GstElementFlags;
832
833 #[inline]
834 fn into_glib(self) -> ffi::GstElementFlags {
835 self.bits()
836 }
837}
838
839#[doc(hidden)]
840impl FromGlib<ffi::GstElementFlags> for ElementFlags {
841 #[inline]
842 unsafe fn from_glib(value: ffi::GstElementFlags) -> Self {
843 skip_assert_initialized!();
844 Self::from_bits_truncate(value)
845 }
846}
847
848impl StaticType for ElementFlags {
849 #[inline]
850 #[doc(alias = "gst_element_flags_get_type")]
851 fn static_type() -> glib::Type {
852 unsafe { from_glib(ffi::gst_element_flags_get_type()) }
853 }
854}
855
856impl glib::HasParamSpec for ElementFlags {
857 type ParamSpec = glib::ParamSpecFlags;
858 type SetValue = Self;
859 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
860
861 fn param_spec_builder() -> Self::BuilderFn {
862 Self::ParamSpec::builder
863 }
864}
865
866impl glib::value::ValueType for ElementFlags {
867 type Type = Self;
868}
869
870unsafe impl<'a> glib::value::FromValue<'a> for ElementFlags {
871 type Checker = glib::value::GenericValueTypeChecker<Self>;
872
873 #[inline]
874 unsafe fn from_value(value: &'a glib::Value) -> Self {
875 skip_assert_initialized!();
876 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
877 }
878}
879
880impl ToValue for ElementFlags {
881 #[inline]
882 fn to_value(&self) -> glib::Value {
883 let mut value = glib::Value::for_value_type::<Self>();
884 unsafe {
885 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
886 }
887 value
888 }
889
890 #[inline]
891 fn value_type(&self) -> glib::Type {
892 Self::static_type()
893 }
894}
895
896impl From<ElementFlags> for glib::Value {
897 #[inline]
898 fn from(v: ElementFlags) -> Self {
899 skip_assert_initialized!();
900 ToValue::to_value(&v)
901 }
902}
903
904bitflags! {
905 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
909 #[doc(alias = "GstEventTypeFlags")]
910 pub struct EventTypeFlags: u32 {
911 #[doc(alias = "GST_EVENT_TYPE_UPSTREAM")]
913 const UPSTREAM = ffi::GST_EVENT_TYPE_UPSTREAM as _;
914 #[doc(alias = "GST_EVENT_TYPE_DOWNSTREAM")]
916 const DOWNSTREAM = ffi::GST_EVENT_TYPE_DOWNSTREAM as _;
917 #[doc(alias = "GST_EVENT_TYPE_SERIALIZED")]
920 const SERIALIZED = ffi::GST_EVENT_TYPE_SERIALIZED as _;
921 #[doc(alias = "GST_EVENT_TYPE_STICKY")]
923 const STICKY = ffi::GST_EVENT_TYPE_STICKY as _;
924 #[doc(alias = "GST_EVENT_TYPE_STICKY_MULTI")]
927 const STICKY_MULTI = ffi::GST_EVENT_TYPE_STICKY_MULTI as _;
928 }
929}
930
931#[doc(hidden)]
932impl IntoGlib for EventTypeFlags {
933 type GlibType = ffi::GstEventTypeFlags;
934
935 #[inline]
936 fn into_glib(self) -> ffi::GstEventTypeFlags {
937 self.bits()
938 }
939}
940
941#[doc(hidden)]
942impl FromGlib<ffi::GstEventTypeFlags> for EventTypeFlags {
943 #[inline]
944 unsafe fn from_glib(value: ffi::GstEventTypeFlags) -> Self {
945 skip_assert_initialized!();
946 Self::from_bits_truncate(value)
947 }
948}
949
950impl StaticType for EventTypeFlags {
951 #[inline]
952 #[doc(alias = "gst_event_type_flags_get_type")]
953 fn static_type() -> glib::Type {
954 unsafe { from_glib(ffi::gst_event_type_flags_get_type()) }
955 }
956}
957
958impl glib::HasParamSpec for EventTypeFlags {
959 type ParamSpec = glib::ParamSpecFlags;
960 type SetValue = Self;
961 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
962
963 fn param_spec_builder() -> Self::BuilderFn {
964 Self::ParamSpec::builder
965 }
966}
967
968impl glib::value::ValueType for EventTypeFlags {
969 type Type = Self;
970}
971
972unsafe impl<'a> glib::value::FromValue<'a> for EventTypeFlags {
973 type Checker = glib::value::GenericValueTypeChecker<Self>;
974
975 #[inline]
976 unsafe fn from_value(value: &'a glib::Value) -> Self {
977 skip_assert_initialized!();
978 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
979 }
980}
981
982impl ToValue for EventTypeFlags {
983 #[inline]
984 fn to_value(&self) -> glib::Value {
985 let mut value = glib::Value::for_value_type::<Self>();
986 unsafe {
987 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
988 }
989 value
990 }
991
992 #[inline]
993 fn value_type(&self) -> glib::Type {
994 Self::static_type()
995 }
996}
997
998impl From<EventTypeFlags> for glib::Value {
999 #[inline]
1000 fn from(v: EventTypeFlags) -> Self {
1001 skip_assert_initialized!();
1002 ToValue::to_value(&v)
1003 }
1004}
1005
1006#[cfg(feature = "v1_20")]
1007bitflags! {
1008 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1011 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1012 #[doc(alias = "GstGapFlags")]
1013 pub struct GapFlags: u32 {
1014 #[doc(alias = "GST_GAP_FLAG_MISSING_DATA")]
1017 const DATA = ffi::GST_GAP_FLAG_MISSING_DATA as _;
1018 }
1019}
1020
1021#[cfg(feature = "v1_20")]
1022#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1023#[doc(hidden)]
1024impl IntoGlib for GapFlags {
1025 type GlibType = ffi::GstGapFlags;
1026
1027 #[inline]
1028 fn into_glib(self) -> ffi::GstGapFlags {
1029 self.bits()
1030 }
1031}
1032
1033#[cfg(feature = "v1_20")]
1034#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1035#[doc(hidden)]
1036impl FromGlib<ffi::GstGapFlags> for GapFlags {
1037 #[inline]
1038 unsafe fn from_glib(value: ffi::GstGapFlags) -> Self {
1039 skip_assert_initialized!();
1040 Self::from_bits_truncate(value)
1041 }
1042}
1043
1044#[cfg(feature = "v1_20")]
1045#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1046impl StaticType for GapFlags {
1047 #[inline]
1048 #[doc(alias = "gst_gap_flags_get_type")]
1049 fn static_type() -> glib::Type {
1050 unsafe { from_glib(ffi::gst_gap_flags_get_type()) }
1051 }
1052}
1053
1054#[cfg(feature = "v1_20")]
1055#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1056impl glib::HasParamSpec for GapFlags {
1057 type ParamSpec = glib::ParamSpecFlags;
1058 type SetValue = Self;
1059 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1060
1061 fn param_spec_builder() -> Self::BuilderFn {
1062 Self::ParamSpec::builder
1063 }
1064}
1065
1066#[cfg(feature = "v1_20")]
1067#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1068impl glib::value::ValueType for GapFlags {
1069 type Type = Self;
1070}
1071
1072#[cfg(feature = "v1_20")]
1073#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1074unsafe impl<'a> glib::value::FromValue<'a> for GapFlags {
1075 type Checker = glib::value::GenericValueTypeChecker<Self>;
1076
1077 #[inline]
1078 unsafe fn from_value(value: &'a glib::Value) -> Self {
1079 skip_assert_initialized!();
1080 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
1081 }
1082}
1083
1084#[cfg(feature = "v1_20")]
1085#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1086impl ToValue for GapFlags {
1087 #[inline]
1088 fn to_value(&self) -> glib::Value {
1089 let mut value = glib::Value::for_value_type::<Self>();
1090 unsafe {
1091 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1092 }
1093 value
1094 }
1095
1096 #[inline]
1097 fn value_type(&self) -> glib::Type {
1098 Self::static_type()
1099 }
1100}
1101
1102#[cfg(feature = "v1_20")]
1103#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1104impl From<GapFlags> for glib::Value {
1105 #[inline]
1106 fn from(v: GapFlags) -> Self {
1107 skip_assert_initialized!();
1108 ToValue::to_value(&v)
1109 }
1110}
1111
1112#[cfg(feature = "v1_28")]
1113bitflags! {
1114 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1116 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1117 #[doc(alias = "GstLogContextFlags")]
1118 pub struct LogContextFlags: u32 {
1119 #[doc(alias = "GST_LOG_CONTEXT_FLAG_THROTTLE")]
1125 const THROTTLE = ffi::GST_LOG_CONTEXT_FLAG_THROTTLE as _;
1126 }
1127}
1128
1129#[cfg(feature = "v1_28")]
1130#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1131#[doc(hidden)]
1132impl IntoGlib for LogContextFlags {
1133 type GlibType = ffi::GstLogContextFlags;
1134
1135 #[inline]
1136 fn into_glib(self) -> ffi::GstLogContextFlags {
1137 self.bits()
1138 }
1139}
1140
1141#[cfg(feature = "v1_28")]
1142#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1143#[doc(hidden)]
1144impl FromGlib<ffi::GstLogContextFlags> for LogContextFlags {
1145 #[inline]
1146 unsafe fn from_glib(value: ffi::GstLogContextFlags) -> Self {
1147 skip_assert_initialized!();
1148 Self::from_bits_truncate(value)
1149 }
1150}
1151
1152#[cfg(feature = "v1_28")]
1153#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1154impl StaticType for LogContextFlags {
1155 #[inline]
1156 #[doc(alias = "gst_log_context_flags_get_type")]
1157 fn static_type() -> glib::Type {
1158 unsafe { from_glib(ffi::gst_log_context_flags_get_type()) }
1159 }
1160}
1161
1162#[cfg(feature = "v1_28")]
1163#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1164impl glib::HasParamSpec for LogContextFlags {
1165 type ParamSpec = glib::ParamSpecFlags;
1166 type SetValue = Self;
1167 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1168
1169 fn param_spec_builder() -> Self::BuilderFn {
1170 Self::ParamSpec::builder
1171 }
1172}
1173
1174#[cfg(feature = "v1_28")]
1175#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1176impl glib::value::ValueType for LogContextFlags {
1177 type Type = Self;
1178}
1179
1180#[cfg(feature = "v1_28")]
1181#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1182unsafe impl<'a> glib::value::FromValue<'a> for LogContextFlags {
1183 type Checker = glib::value::GenericValueTypeChecker<Self>;
1184
1185 #[inline]
1186 unsafe fn from_value(value: &'a glib::Value) -> Self {
1187 skip_assert_initialized!();
1188 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
1189 }
1190}
1191
1192#[cfg(feature = "v1_28")]
1193#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1194impl ToValue for LogContextFlags {
1195 #[inline]
1196 fn to_value(&self) -> glib::Value {
1197 let mut value = glib::Value::for_value_type::<Self>();
1198 unsafe {
1199 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1200 }
1201 value
1202 }
1203
1204 #[inline]
1205 fn value_type(&self) -> glib::Type {
1206 Self::static_type()
1207 }
1208}
1209
1210#[cfg(feature = "v1_28")]
1211#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1212impl From<LogContextFlags> for glib::Value {
1213 #[inline]
1214 fn from(v: LogContextFlags) -> Self {
1215 skip_assert_initialized!();
1216 ToValue::to_value(&v)
1217 }
1218}
1219
1220#[cfg(feature = "v1_28")]
1221bitflags! {
1222 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1226 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1227 #[doc(alias = "GstLogContextHashFlags")]
1228 pub struct LogContextHashFlags: u32 {
1229 #[doc(alias = "GST_LOG_CONTEXT_IGNORE_OBJECT")]
1231 const IGNORE_OBJECT = ffi::GST_LOG_CONTEXT_IGNORE_OBJECT as _;
1232 #[doc(alias = "GST_LOG_CONTEXT_IGNORE_FORMAT")]
1235 const IGNORE_FORMAT = ffi::GST_LOG_CONTEXT_IGNORE_FORMAT as _;
1236 #[doc(alias = "GST_LOG_CONTEXT_IGNORE_FILE")]
1238 const IGNORE_FILE = ffi::GST_LOG_CONTEXT_IGNORE_FILE as _;
1239 #[doc(alias = "GST_LOG_CONTEXT_USE_LINE_NUMBER")]
1241 const USE_LINE_NUMBER = ffi::GST_LOG_CONTEXT_USE_LINE_NUMBER as _;
1242 #[doc(alias = "GST_LOG_CONTEXT_USE_STRING_ARGS")]
1244 const USE_STRING_ARGS = ffi::GST_LOG_CONTEXT_USE_STRING_ARGS as _;
1245 }
1246}
1247
1248#[cfg(feature = "v1_28")]
1249#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1250#[doc(hidden)]
1251impl IntoGlib for LogContextHashFlags {
1252 type GlibType = ffi::GstLogContextHashFlags;
1253
1254 #[inline]
1255 fn into_glib(self) -> ffi::GstLogContextHashFlags {
1256 self.bits()
1257 }
1258}
1259
1260#[cfg(feature = "v1_28")]
1261#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1262#[doc(hidden)]
1263impl FromGlib<ffi::GstLogContextHashFlags> for LogContextHashFlags {
1264 #[inline]
1265 unsafe fn from_glib(value: ffi::GstLogContextHashFlags) -> Self {
1266 skip_assert_initialized!();
1267 Self::from_bits_truncate(value)
1268 }
1269}
1270
1271#[cfg(feature = "v1_28")]
1272#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1273impl StaticType for LogContextHashFlags {
1274 #[inline]
1275 #[doc(alias = "gst_log_context_hash_flags_get_type")]
1276 fn static_type() -> glib::Type {
1277 unsafe { from_glib(ffi::gst_log_context_hash_flags_get_type()) }
1278 }
1279}
1280
1281#[cfg(feature = "v1_28")]
1282#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1283impl glib::HasParamSpec for LogContextHashFlags {
1284 type ParamSpec = glib::ParamSpecFlags;
1285 type SetValue = Self;
1286 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1287
1288 fn param_spec_builder() -> Self::BuilderFn {
1289 Self::ParamSpec::builder
1290 }
1291}
1292
1293#[cfg(feature = "v1_28")]
1294#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1295impl glib::value::ValueType for LogContextHashFlags {
1296 type Type = Self;
1297}
1298
1299#[cfg(feature = "v1_28")]
1300#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1301unsafe impl<'a> glib::value::FromValue<'a> for LogContextHashFlags {
1302 type Checker = glib::value::GenericValueTypeChecker<Self>;
1303
1304 #[inline]
1305 unsafe fn from_value(value: &'a glib::Value) -> Self {
1306 skip_assert_initialized!();
1307 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
1308 }
1309}
1310
1311#[cfg(feature = "v1_28")]
1312#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1313impl ToValue for LogContextHashFlags {
1314 #[inline]
1315 fn to_value(&self) -> glib::Value {
1316 let mut value = glib::Value::for_value_type::<Self>();
1317 unsafe {
1318 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1319 }
1320 value
1321 }
1322
1323 #[inline]
1324 fn value_type(&self) -> glib::Type {
1325 Self::static_type()
1326 }
1327}
1328
1329#[cfg(feature = "v1_28")]
1330#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1331impl From<LogContextHashFlags> for glib::Value {
1332 #[inline]
1333 fn from(v: LogContextHashFlags) -> Self {
1334 skip_assert_initialized!();
1335 ToValue::to_value(&v)
1336 }
1337}
1338
1339bitflags! {
1340 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1342 #[doc(alias = "GstMemoryFlags")]
1343 pub struct MemoryFlags: u32 {
1344 #[doc(alias = "GST_MEMORY_FLAG_READONLY")]
1347 const READONLY = ffi::GST_MEMORY_FLAG_READONLY as _;
1348 #[doc(alias = "GST_MEMORY_FLAG_NO_SHARE")]
1354 const NO_SHARE = ffi::GST_MEMORY_FLAG_NO_SHARE as _;
1355 #[doc(alias = "GST_MEMORY_FLAG_ZERO_PREFIXED")]
1357 const ZERO_PREFIXED = ffi::GST_MEMORY_FLAG_ZERO_PREFIXED as _;
1358 #[doc(alias = "GST_MEMORY_FLAG_ZERO_PADDED")]
1360 const ZERO_PADDED = ffi::GST_MEMORY_FLAG_ZERO_PADDED as _;
1361 #[doc(alias = "GST_MEMORY_FLAG_PHYSICALLY_CONTIGUOUS")]
1364 const PHYSICALLY_CONTIGUOUS = ffi::GST_MEMORY_FLAG_PHYSICALLY_CONTIGUOUS as _;
1365 #[doc(alias = "GST_MEMORY_FLAG_NOT_MAPPABLE")]
1368 const NOT_MAPPABLE = ffi::GST_MEMORY_FLAG_NOT_MAPPABLE as _;
1369 }
1370}
1371
1372#[doc(hidden)]
1373impl IntoGlib for MemoryFlags {
1374 type GlibType = ffi::GstMemoryFlags;
1375
1376 #[inline]
1377 fn into_glib(self) -> ffi::GstMemoryFlags {
1378 self.bits()
1379 }
1380}
1381
1382#[doc(hidden)]
1383impl FromGlib<ffi::GstMemoryFlags> for MemoryFlags {
1384 #[inline]
1385 unsafe fn from_glib(value: ffi::GstMemoryFlags) -> Self {
1386 skip_assert_initialized!();
1387 Self::from_bits_truncate(value)
1388 }
1389}
1390
1391impl StaticType for MemoryFlags {
1392 #[inline]
1393 #[doc(alias = "gst_memory_flags_get_type")]
1394 fn static_type() -> glib::Type {
1395 unsafe { from_glib(ffi::gst_memory_flags_get_type()) }
1396 }
1397}
1398
1399impl glib::HasParamSpec for MemoryFlags {
1400 type ParamSpec = glib::ParamSpecFlags;
1401 type SetValue = Self;
1402 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1403
1404 fn param_spec_builder() -> Self::BuilderFn {
1405 Self::ParamSpec::builder
1406 }
1407}
1408
1409impl glib::value::ValueType for MemoryFlags {
1410 type Type = Self;
1411}
1412
1413unsafe impl<'a> glib::value::FromValue<'a> for MemoryFlags {
1414 type Checker = glib::value::GenericValueTypeChecker<Self>;
1415
1416 #[inline]
1417 unsafe fn from_value(value: &'a glib::Value) -> Self {
1418 skip_assert_initialized!();
1419 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
1420 }
1421}
1422
1423impl ToValue for MemoryFlags {
1424 #[inline]
1425 fn to_value(&self) -> glib::Value {
1426 let mut value = glib::Value::for_value_type::<Self>();
1427 unsafe {
1428 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1429 }
1430 value
1431 }
1432
1433 #[inline]
1434 fn value_type(&self) -> glib::Type {
1435 Self::static_type()
1436 }
1437}
1438
1439impl From<MemoryFlags> for glib::Value {
1440 #[inline]
1441 fn from(v: MemoryFlags) -> Self {
1442 skip_assert_initialized!();
1443 ToValue::to_value(&v)
1444 }
1445}
1446
1447bitflags! {
1448 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1450 #[doc(alias = "GstMetaFlags")]
1451 pub struct MetaFlags: u32 {
1452 #[doc(alias = "GST_META_FLAG_READONLY")]
1454 const READONLY = ffi::GST_META_FLAG_READONLY as _;
1455 #[doc(alias = "GST_META_FLAG_POOLED")]
1457 const POOLED = ffi::GST_META_FLAG_POOLED as _;
1458 #[doc(alias = "GST_META_FLAG_LOCKED")]
1460 const LOCKED = ffi::GST_META_FLAG_LOCKED as _;
1461 }
1462}
1463
1464#[doc(hidden)]
1465impl IntoGlib for MetaFlags {
1466 type GlibType = ffi::GstMetaFlags;
1467
1468 #[inline]
1469 fn into_glib(self) -> ffi::GstMetaFlags {
1470 self.bits()
1471 }
1472}
1473
1474#[doc(hidden)]
1475impl FromGlib<ffi::GstMetaFlags> for MetaFlags {
1476 #[inline]
1477 unsafe fn from_glib(value: ffi::GstMetaFlags) -> Self {
1478 skip_assert_initialized!();
1479 Self::from_bits_truncate(value)
1480 }
1481}
1482
1483impl StaticType for MetaFlags {
1484 #[inline]
1485 #[doc(alias = "gst_meta_flags_get_type")]
1486 fn static_type() -> glib::Type {
1487 unsafe { from_glib(ffi::gst_meta_flags_get_type()) }
1488 }
1489}
1490
1491impl glib::HasParamSpec for MetaFlags {
1492 type ParamSpec = glib::ParamSpecFlags;
1493 type SetValue = Self;
1494 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1495
1496 fn param_spec_builder() -> Self::BuilderFn {
1497 Self::ParamSpec::builder
1498 }
1499}
1500
1501impl glib::value::ValueType for MetaFlags {
1502 type Type = Self;
1503}
1504
1505unsafe impl<'a> glib::value::FromValue<'a> for MetaFlags {
1506 type Checker = glib::value::GenericValueTypeChecker<Self>;
1507
1508 #[inline]
1509 unsafe fn from_value(value: &'a glib::Value) -> Self {
1510 skip_assert_initialized!();
1511 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
1512 }
1513}
1514
1515impl ToValue for MetaFlags {
1516 #[inline]
1517 fn to_value(&self) -> glib::Value {
1518 let mut value = glib::Value::for_value_type::<Self>();
1519 unsafe {
1520 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1521 }
1522 value
1523 }
1524
1525 #[inline]
1526 fn value_type(&self) -> glib::Type {
1527 Self::static_type()
1528 }
1529}
1530
1531impl From<MetaFlags> for glib::Value {
1532 #[inline]
1533 fn from(v: MetaFlags) -> Self {
1534 skip_assert_initialized!();
1535 ToValue::to_value(&v)
1536 }
1537}
1538
1539bitflags! {
1540 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1542 #[doc(alias = "GstObjectFlags")]
1543 pub struct ObjectFlags: u32 {
1544 #[doc(alias = "GST_OBJECT_FLAG_MAY_BE_LEAKED")]
1548 const MAY_BE_LEAKED = ffi::GST_OBJECT_FLAG_MAY_BE_LEAKED as _;
1549 #[cfg(feature = "v1_24")]
1556 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
1557 #[doc(alias = "GST_OBJECT_FLAG_CONSTRUCTED")]
1558 const CONSTRUCTED = ffi::GST_OBJECT_FLAG_CONSTRUCTED as _;
1559 }
1560}
1561
1562#[doc(hidden)]
1563impl IntoGlib for ObjectFlags {
1564 type GlibType = ffi::GstObjectFlags;
1565
1566 #[inline]
1567 fn into_glib(self) -> ffi::GstObjectFlags {
1568 self.bits()
1569 }
1570}
1571
1572#[doc(hidden)]
1573impl FromGlib<ffi::GstObjectFlags> for ObjectFlags {
1574 #[inline]
1575 unsafe fn from_glib(value: ffi::GstObjectFlags) -> Self {
1576 skip_assert_initialized!();
1577 Self::from_bits_truncate(value)
1578 }
1579}
1580
1581impl StaticType for ObjectFlags {
1582 #[inline]
1583 #[doc(alias = "gst_object_flags_get_type")]
1584 fn static_type() -> glib::Type {
1585 unsafe { from_glib(ffi::gst_object_flags_get_type()) }
1586 }
1587}
1588
1589impl glib::HasParamSpec for ObjectFlags {
1590 type ParamSpec = glib::ParamSpecFlags;
1591 type SetValue = Self;
1592 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1593
1594 fn param_spec_builder() -> Self::BuilderFn {
1595 Self::ParamSpec::builder
1596 }
1597}
1598
1599impl glib::value::ValueType for ObjectFlags {
1600 type Type = Self;
1601}
1602
1603unsafe impl<'a> glib::value::FromValue<'a> for ObjectFlags {
1604 type Checker = glib::value::GenericValueTypeChecker<Self>;
1605
1606 #[inline]
1607 unsafe fn from_value(value: &'a glib::Value) -> Self {
1608 skip_assert_initialized!();
1609 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
1610 }
1611}
1612
1613impl ToValue for ObjectFlags {
1614 #[inline]
1615 fn to_value(&self) -> glib::Value {
1616 let mut value = glib::Value::for_value_type::<Self>();
1617 unsafe {
1618 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1619 }
1620 value
1621 }
1622
1623 #[inline]
1624 fn value_type(&self) -> glib::Type {
1625 Self::static_type()
1626 }
1627}
1628
1629impl From<ObjectFlags> for glib::Value {
1630 #[inline]
1631 fn from(v: ObjectFlags) -> Self {
1632 skip_assert_initialized!();
1633 ToValue::to_value(&v)
1634 }
1635}
1636
1637bitflags! {
1638 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1640 #[doc(alias = "GstPadFlags")]
1641 pub struct PadFlags: u32 {
1642 #[doc(alias = "GST_PAD_FLAG_BLOCKED")]
1644 const BLOCKED = ffi::GST_PAD_FLAG_BLOCKED as _;
1645 #[doc(alias = "GST_PAD_FLAG_FLUSHING")]
1647 const FLUSHING = ffi::GST_PAD_FLAG_FLUSHING as _;
1648 #[doc(alias = "GST_PAD_FLAG_EOS")]
1650 const EOS = ffi::GST_PAD_FLAG_EOS as _;
1651 #[doc(alias = "GST_PAD_FLAG_BLOCKING")]
1653 const BLOCKING = ffi::GST_PAD_FLAG_BLOCKING as _;
1654 #[doc(alias = "GST_PAD_FLAG_NEED_PARENT")]
1657 const NEED_PARENT = ffi::GST_PAD_FLAG_NEED_PARENT as _;
1658 #[doc(alias = "GST_PAD_FLAG_NEED_RECONFIGURE")]
1662 const NEED_RECONFIGURE = ffi::GST_PAD_FLAG_NEED_RECONFIGURE as _;
1663 #[doc(alias = "GST_PAD_FLAG_PENDING_EVENTS")]
1665 const PENDING_EVENTS = ffi::GST_PAD_FLAG_PENDING_EVENTS as _;
1666 #[doc(alias = "GST_PAD_FLAG_FIXED_CAPS")]
1670 const FIXED_CAPS = ffi::GST_PAD_FLAG_FIXED_CAPS as _;
1671 #[doc(alias = "GST_PAD_FLAG_PROXY_CAPS")]
1675 const PROXY_CAPS = ffi::GST_PAD_FLAG_PROXY_CAPS as _;
1676 #[doc(alias = "GST_PAD_FLAG_PROXY_ALLOCATION")]
1680 const PROXY_ALLOCATION = ffi::GST_PAD_FLAG_PROXY_ALLOCATION as _;
1681 #[doc(alias = "GST_PAD_FLAG_PROXY_SCHEDULING")]
1685 const PROXY_SCHEDULING = ffi::GST_PAD_FLAG_PROXY_SCHEDULING as _;
1686 #[doc(alias = "GST_PAD_FLAG_ACCEPT_INTERSECT")]
1691 const ACCEPT_INTERSECT = ffi::GST_PAD_FLAG_ACCEPT_INTERSECT as _;
1692 #[doc(alias = "GST_PAD_FLAG_ACCEPT_TEMPLATE")]
1697 const ACCEPT_TEMPLATE = ffi::GST_PAD_FLAG_ACCEPT_TEMPLATE as _;
1698 }
1699}
1700
1701#[doc(hidden)]
1702impl IntoGlib for PadFlags {
1703 type GlibType = ffi::GstPadFlags;
1704
1705 #[inline]
1706 fn into_glib(self) -> ffi::GstPadFlags {
1707 self.bits()
1708 }
1709}
1710
1711#[doc(hidden)]
1712impl FromGlib<ffi::GstPadFlags> for PadFlags {
1713 #[inline]
1714 unsafe fn from_glib(value: ffi::GstPadFlags) -> Self {
1715 skip_assert_initialized!();
1716 Self::from_bits_truncate(value)
1717 }
1718}
1719
1720impl StaticType for PadFlags {
1721 #[inline]
1722 #[doc(alias = "gst_pad_flags_get_type")]
1723 fn static_type() -> glib::Type {
1724 unsafe { from_glib(ffi::gst_pad_flags_get_type()) }
1725 }
1726}
1727
1728impl glib::HasParamSpec for PadFlags {
1729 type ParamSpec = glib::ParamSpecFlags;
1730 type SetValue = Self;
1731 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1732
1733 fn param_spec_builder() -> Self::BuilderFn {
1734 Self::ParamSpec::builder
1735 }
1736}
1737
1738impl glib::value::ValueType for PadFlags {
1739 type Type = Self;
1740}
1741
1742unsafe impl<'a> glib::value::FromValue<'a> for PadFlags {
1743 type Checker = glib::value::GenericValueTypeChecker<Self>;
1744
1745 #[inline]
1746 unsafe fn from_value(value: &'a glib::Value) -> Self {
1747 skip_assert_initialized!();
1748 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
1749 }
1750}
1751
1752impl ToValue for PadFlags {
1753 #[inline]
1754 fn to_value(&self) -> glib::Value {
1755 let mut value = glib::Value::for_value_type::<Self>();
1756 unsafe {
1757 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1758 }
1759 value
1760 }
1761
1762 #[inline]
1763 fn value_type(&self) -> glib::Type {
1764 Self::static_type()
1765 }
1766}
1767
1768impl From<PadFlags> for glib::Value {
1769 #[inline]
1770 fn from(v: PadFlags) -> Self {
1771 skip_assert_initialized!();
1772 ToValue::to_value(&v)
1773 }
1774}
1775
1776bitflags! {
1777 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1786 #[doc(alias = "GstPadLinkCheck")]
1787 pub struct PadLinkCheck: u32 {
1788 #[doc(alias = "GST_PAD_LINK_CHECK_HIERARCHY")]
1792 const HIERARCHY = ffi::GST_PAD_LINK_CHECK_HIERARCHY as _;
1793 #[doc(alias = "GST_PAD_LINK_CHECK_TEMPLATE_CAPS")]
1797 const TEMPLATE_CAPS = ffi::GST_PAD_LINK_CHECK_TEMPLATE_CAPS as _;
1798 #[doc(alias = "GST_PAD_LINK_CHECK_CAPS")]
1801 const CAPS = ffi::GST_PAD_LINK_CHECK_CAPS as _;
1802 #[doc(alias = "GST_PAD_LINK_CHECK_NO_RECONFIGURE")]
1805 const NO_RECONFIGURE = ffi::GST_PAD_LINK_CHECK_NO_RECONFIGURE as _;
1806 #[doc(alias = "GST_PAD_LINK_CHECK_DEFAULT")]
1809 const DEFAULT = ffi::GST_PAD_LINK_CHECK_DEFAULT as _;
1810 }
1811}
1812
1813#[doc(hidden)]
1814impl IntoGlib for PadLinkCheck {
1815 type GlibType = ffi::GstPadLinkCheck;
1816
1817 #[inline]
1818 fn into_glib(self) -> ffi::GstPadLinkCheck {
1819 self.bits()
1820 }
1821}
1822
1823#[doc(hidden)]
1824impl FromGlib<ffi::GstPadLinkCheck> for PadLinkCheck {
1825 #[inline]
1826 unsafe fn from_glib(value: ffi::GstPadLinkCheck) -> Self {
1827 skip_assert_initialized!();
1828 Self::from_bits_truncate(value)
1829 }
1830}
1831
1832impl StaticType for PadLinkCheck {
1833 #[inline]
1834 #[doc(alias = "gst_pad_link_check_get_type")]
1835 fn static_type() -> glib::Type {
1836 unsafe { from_glib(ffi::gst_pad_link_check_get_type()) }
1837 }
1838}
1839
1840impl glib::HasParamSpec for PadLinkCheck {
1841 type ParamSpec = glib::ParamSpecFlags;
1842 type SetValue = Self;
1843 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1844
1845 fn param_spec_builder() -> Self::BuilderFn {
1846 Self::ParamSpec::builder
1847 }
1848}
1849
1850impl glib::value::ValueType for PadLinkCheck {
1851 type Type = Self;
1852}
1853
1854unsafe impl<'a> glib::value::FromValue<'a> for PadLinkCheck {
1855 type Checker = glib::value::GenericValueTypeChecker<Self>;
1856
1857 #[inline]
1858 unsafe fn from_value(value: &'a glib::Value) -> Self {
1859 skip_assert_initialized!();
1860 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
1861 }
1862}
1863
1864impl ToValue for PadLinkCheck {
1865 #[inline]
1866 fn to_value(&self) -> glib::Value {
1867 let mut value = glib::Value::for_value_type::<Self>();
1868 unsafe {
1869 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1870 }
1871 value
1872 }
1873
1874 #[inline]
1875 fn value_type(&self) -> glib::Type {
1876 Self::static_type()
1877 }
1878}
1879
1880impl From<PadLinkCheck> for glib::Value {
1881 #[inline]
1882 fn from(v: PadLinkCheck) -> Self {
1883 skip_assert_initialized!();
1884 ToValue::to_value(&v)
1885 }
1886}
1887
1888bitflags! {
1889 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1893 #[doc(alias = "GstPadProbeType")]
1894 pub struct PadProbeType: u32 {
1895 #[doc(alias = "GST_PAD_PROBE_TYPE_IDLE")]
1897 const IDLE = ffi::GST_PAD_PROBE_TYPE_IDLE as _;
1898 #[doc(alias = "GST_PAD_PROBE_TYPE_BLOCK")]
1900 const BLOCK = ffi::GST_PAD_PROBE_TYPE_BLOCK as _;
1901 #[doc(alias = "GST_PAD_PROBE_TYPE_BUFFER")]
1903 const BUFFER = ffi::GST_PAD_PROBE_TYPE_BUFFER as _;
1904 #[doc(alias = "GST_PAD_PROBE_TYPE_BUFFER_LIST")]
1906 const BUFFER_LIST = ffi::GST_PAD_PROBE_TYPE_BUFFER_LIST as _;
1907 #[doc(alias = "GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM")]
1909 const EVENT_DOWNSTREAM = ffi::GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM as _;
1910 #[doc(alias = "GST_PAD_PROBE_TYPE_EVENT_UPSTREAM")]
1912 const EVENT_UPSTREAM = ffi::GST_PAD_PROBE_TYPE_EVENT_UPSTREAM as _;
1913 #[doc(alias = "GST_PAD_PROBE_TYPE_EVENT_FLUSH")]
1918 const EVENT_FLUSH = ffi::GST_PAD_PROBE_TYPE_EVENT_FLUSH as _;
1919 #[doc(alias = "GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM")]
1921 const QUERY_DOWNSTREAM = ffi::GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM as _;
1922 #[doc(alias = "GST_PAD_PROBE_TYPE_QUERY_UPSTREAM")]
1924 const QUERY_UPSTREAM = ffi::GST_PAD_PROBE_TYPE_QUERY_UPSTREAM as _;
1925 #[doc(alias = "GST_PAD_PROBE_TYPE_PUSH")]
1927 const PUSH = ffi::GST_PAD_PROBE_TYPE_PUSH as _;
1928 #[doc(alias = "GST_PAD_PROBE_TYPE_PULL")]
1930 const PULL = ffi::GST_PAD_PROBE_TYPE_PULL as _;
1931 #[doc(alias = "GST_PAD_PROBE_TYPE_BLOCKING")]
1933 const BLOCKING = ffi::GST_PAD_PROBE_TYPE_BLOCKING as _;
1934 #[doc(alias = "GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM")]
1936 const DATA_DOWNSTREAM = ffi::GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM as _;
1937 #[doc(alias = "GST_PAD_PROBE_TYPE_DATA_UPSTREAM")]
1939 const DATA_UPSTREAM = ffi::GST_PAD_PROBE_TYPE_DATA_UPSTREAM as _;
1940 #[doc(alias = "GST_PAD_PROBE_TYPE_DATA_BOTH")]
1942 const DATA_BOTH = ffi::GST_PAD_PROBE_TYPE_DATA_BOTH as _;
1943 #[doc(alias = "GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM")]
1945 const BLOCK_DOWNSTREAM = ffi::GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM as _;
1946 #[doc(alias = "GST_PAD_PROBE_TYPE_BLOCK_UPSTREAM")]
1948 const BLOCK_UPSTREAM = ffi::GST_PAD_PROBE_TYPE_BLOCK_UPSTREAM as _;
1949 #[doc(alias = "GST_PAD_PROBE_TYPE_EVENT_BOTH")]
1951 const EVENT_BOTH = ffi::GST_PAD_PROBE_TYPE_EVENT_BOTH as _;
1952 #[doc(alias = "GST_PAD_PROBE_TYPE_QUERY_BOTH")]
1954 const QUERY_BOTH = ffi::GST_PAD_PROBE_TYPE_QUERY_BOTH as _;
1955 #[doc(alias = "GST_PAD_PROBE_TYPE_ALL_BOTH")]
1957 const ALL_BOTH = ffi::GST_PAD_PROBE_TYPE_ALL_BOTH as _;
1958 #[doc(alias = "GST_PAD_PROBE_TYPE_SCHEDULING")]
1960 const SCHEDULING = ffi::GST_PAD_PROBE_TYPE_SCHEDULING as _;
1961 }
1962}
1963
1964#[doc(hidden)]
1965impl IntoGlib for PadProbeType {
1966 type GlibType = ffi::GstPadProbeType;
1967
1968 #[inline]
1969 fn into_glib(self) -> ffi::GstPadProbeType {
1970 self.bits()
1971 }
1972}
1973
1974#[doc(hidden)]
1975impl FromGlib<ffi::GstPadProbeType> for PadProbeType {
1976 #[inline]
1977 unsafe fn from_glib(value: ffi::GstPadProbeType) -> Self {
1978 skip_assert_initialized!();
1979 Self::from_bits_truncate(value)
1980 }
1981}
1982
1983impl StaticType for PadProbeType {
1984 #[inline]
1985 #[doc(alias = "gst_pad_probe_type_get_type")]
1986 fn static_type() -> glib::Type {
1987 unsafe { from_glib(ffi::gst_pad_probe_type_get_type()) }
1988 }
1989}
1990
1991impl glib::HasParamSpec for PadProbeType {
1992 type ParamSpec = glib::ParamSpecFlags;
1993 type SetValue = Self;
1994 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1995
1996 fn param_spec_builder() -> Self::BuilderFn {
1997 Self::ParamSpec::builder
1998 }
1999}
2000
2001impl glib::value::ValueType for PadProbeType {
2002 type Type = Self;
2003}
2004
2005unsafe impl<'a> glib::value::FromValue<'a> for PadProbeType {
2006 type Checker = glib::value::GenericValueTypeChecker<Self>;
2007
2008 #[inline]
2009 unsafe fn from_value(value: &'a glib::Value) -> Self {
2010 skip_assert_initialized!();
2011 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2012 }
2013}
2014
2015impl ToValue for PadProbeType {
2016 #[inline]
2017 fn to_value(&self) -> glib::Value {
2018 let mut value = glib::Value::for_value_type::<Self>();
2019 unsafe {
2020 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2021 }
2022 value
2023 }
2024
2025 #[inline]
2026 fn value_type(&self) -> glib::Type {
2027 Self::static_type()
2028 }
2029}
2030
2031impl From<PadProbeType> for glib::Value {
2032 #[inline]
2033 fn from(v: PadProbeType) -> Self {
2034 skip_assert_initialized!();
2035 ToValue::to_value(&v)
2036 }
2037}
2038
2039bitflags! {
2040 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2042 #[doc(alias = "GstParseFlags")]
2043 pub struct ParseFlags: u32 {
2044 #[doc(alias = "GST_PARSE_FLAG_FATAL_ERRORS")]
2048 const FATAL_ERRORS = ffi::GST_PARSE_FLAG_FATAL_ERRORS as _;
2049 #[doc(alias = "GST_PARSE_FLAG_NO_SINGLE_ELEMENT_BINS")]
2052 const NO_SINGLE_ELEMENT_BINS = ffi::GST_PARSE_FLAG_NO_SINGLE_ELEMENT_BINS as _;
2053 #[doc(alias = "GST_PARSE_FLAG_PLACE_IN_BIN")]
2057 const PLACE_IN_BIN = ffi::GST_PARSE_FLAG_PLACE_IN_BIN as _;
2058 }
2059}
2060
2061#[doc(hidden)]
2062impl IntoGlib for ParseFlags {
2063 type GlibType = ffi::GstParseFlags;
2064
2065 #[inline]
2066 fn into_glib(self) -> ffi::GstParseFlags {
2067 self.bits()
2068 }
2069}
2070
2071#[doc(hidden)]
2072impl FromGlib<ffi::GstParseFlags> for ParseFlags {
2073 #[inline]
2074 unsafe fn from_glib(value: ffi::GstParseFlags) -> Self {
2075 skip_assert_initialized!();
2076 Self::from_bits_truncate(value)
2077 }
2078}
2079
2080impl StaticType for ParseFlags {
2081 #[inline]
2082 #[doc(alias = "gst_parse_flags_get_type")]
2083 fn static_type() -> glib::Type {
2084 unsafe { from_glib(ffi::gst_parse_flags_get_type()) }
2085 }
2086}
2087
2088impl glib::HasParamSpec for ParseFlags {
2089 type ParamSpec = glib::ParamSpecFlags;
2090 type SetValue = Self;
2091 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2092
2093 fn param_spec_builder() -> Self::BuilderFn {
2094 Self::ParamSpec::builder
2095 }
2096}
2097
2098impl glib::value::ValueType for ParseFlags {
2099 type Type = Self;
2100}
2101
2102unsafe impl<'a> glib::value::FromValue<'a> for ParseFlags {
2103 type Checker = glib::value::GenericValueTypeChecker<Self>;
2104
2105 #[inline]
2106 unsafe fn from_value(value: &'a glib::Value) -> Self {
2107 skip_assert_initialized!();
2108 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2109 }
2110}
2111
2112impl ToValue for ParseFlags {
2113 #[inline]
2114 fn to_value(&self) -> glib::Value {
2115 let mut value = glib::Value::for_value_type::<Self>();
2116 unsafe {
2117 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2118 }
2119 value
2120 }
2121
2122 #[inline]
2123 fn value_type(&self) -> glib::Type {
2124 Self::static_type()
2125 }
2126}
2127
2128impl From<ParseFlags> for glib::Value {
2129 #[inline]
2130 fn from(v: ParseFlags) -> Self {
2131 skip_assert_initialized!();
2132 ToValue::to_value(&v)
2133 }
2134}
2135
2136bitflags! {
2137 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2139 #[doc(alias = "GstPipelineFlags")]
2140 pub struct PipelineFlags: u32 {
2141 #[doc(alias = "GST_PIPELINE_FLAG_FIXED_CLOCK")]
2143 const FIXED_CLOCK = ffi::GST_PIPELINE_FLAG_FIXED_CLOCK as _;
2144 }
2145}
2146
2147#[doc(hidden)]
2148impl IntoGlib for PipelineFlags {
2149 type GlibType = ffi::GstPipelineFlags;
2150
2151 #[inline]
2152 fn into_glib(self) -> ffi::GstPipelineFlags {
2153 self.bits()
2154 }
2155}
2156
2157#[doc(hidden)]
2158impl FromGlib<ffi::GstPipelineFlags> for PipelineFlags {
2159 #[inline]
2160 unsafe fn from_glib(value: ffi::GstPipelineFlags) -> Self {
2161 skip_assert_initialized!();
2162 Self::from_bits_truncate(value)
2163 }
2164}
2165
2166impl StaticType for PipelineFlags {
2167 #[inline]
2168 #[doc(alias = "gst_pipeline_flags_get_type")]
2169 fn static_type() -> glib::Type {
2170 unsafe { from_glib(ffi::gst_pipeline_flags_get_type()) }
2171 }
2172}
2173
2174impl glib::HasParamSpec for PipelineFlags {
2175 type ParamSpec = glib::ParamSpecFlags;
2176 type SetValue = Self;
2177 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2178
2179 fn param_spec_builder() -> Self::BuilderFn {
2180 Self::ParamSpec::builder
2181 }
2182}
2183
2184impl glib::value::ValueType for PipelineFlags {
2185 type Type = Self;
2186}
2187
2188unsafe impl<'a> glib::value::FromValue<'a> for PipelineFlags {
2189 type Checker = glib::value::GenericValueTypeChecker<Self>;
2190
2191 #[inline]
2192 unsafe fn from_value(value: &'a glib::Value) -> Self {
2193 skip_assert_initialized!();
2194 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2195 }
2196}
2197
2198impl ToValue for PipelineFlags {
2199 #[inline]
2200 fn to_value(&self) -> glib::Value {
2201 let mut value = glib::Value::for_value_type::<Self>();
2202 unsafe {
2203 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2204 }
2205 value
2206 }
2207
2208 #[inline]
2209 fn value_type(&self) -> glib::Type {
2210 Self::static_type()
2211 }
2212}
2213
2214impl From<PipelineFlags> for glib::Value {
2215 #[inline]
2216 fn from(v: PipelineFlags) -> Self {
2217 skip_assert_initialized!();
2218 ToValue::to_value(&v)
2219 }
2220}
2221
2222#[cfg(feature = "v1_18")]
2223bitflags! {
2224 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2225 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2226 #[doc(alias = "GstPluginAPIFlags")]
2227 pub struct PluginAPIFlags: u32 {
2228 #[doc(alias = "GST_PLUGIN_API_FLAG_IGNORE_ENUM_MEMBERS")]
2232 const MEMBERS = ffi::GST_PLUGIN_API_FLAG_IGNORE_ENUM_MEMBERS as _;
2233 }
2234}
2235
2236#[cfg(feature = "v1_18")]
2237#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2238#[doc(hidden)]
2239impl IntoGlib for PluginAPIFlags {
2240 type GlibType = ffi::GstPluginAPIFlags;
2241
2242 #[inline]
2243 fn into_glib(self) -> ffi::GstPluginAPIFlags {
2244 self.bits()
2245 }
2246}
2247
2248#[cfg(feature = "v1_18")]
2249#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2250#[doc(hidden)]
2251impl FromGlib<ffi::GstPluginAPIFlags> for PluginAPIFlags {
2252 #[inline]
2253 unsafe fn from_glib(value: ffi::GstPluginAPIFlags) -> Self {
2254 skip_assert_initialized!();
2255 Self::from_bits_truncate(value)
2256 }
2257}
2258
2259#[cfg(feature = "v1_18")]
2260#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2261impl StaticType for PluginAPIFlags {
2262 #[inline]
2263 #[doc(alias = "gst_plugin_api_flags_get_type")]
2264 fn static_type() -> glib::Type {
2265 unsafe { from_glib(ffi::gst_plugin_api_flags_get_type()) }
2266 }
2267}
2268
2269#[cfg(feature = "v1_18")]
2270#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2271impl glib::HasParamSpec for PluginAPIFlags {
2272 type ParamSpec = glib::ParamSpecFlags;
2273 type SetValue = Self;
2274 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2275
2276 fn param_spec_builder() -> Self::BuilderFn {
2277 Self::ParamSpec::builder
2278 }
2279}
2280
2281#[cfg(feature = "v1_18")]
2282#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2283impl glib::value::ValueType for PluginAPIFlags {
2284 type Type = Self;
2285}
2286
2287#[cfg(feature = "v1_18")]
2288#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2289unsafe impl<'a> glib::value::FromValue<'a> for PluginAPIFlags {
2290 type Checker = glib::value::GenericValueTypeChecker<Self>;
2291
2292 #[inline]
2293 unsafe fn from_value(value: &'a glib::Value) -> Self {
2294 skip_assert_initialized!();
2295 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2296 }
2297}
2298
2299#[cfg(feature = "v1_18")]
2300#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2301impl ToValue for PluginAPIFlags {
2302 #[inline]
2303 fn to_value(&self) -> glib::Value {
2304 let mut value = glib::Value::for_value_type::<Self>();
2305 unsafe {
2306 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2307 }
2308 value
2309 }
2310
2311 #[inline]
2312 fn value_type(&self) -> glib::Type {
2313 Self::static_type()
2314 }
2315}
2316
2317#[cfg(feature = "v1_18")]
2318#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2319impl From<PluginAPIFlags> for glib::Value {
2320 #[inline]
2321 fn from(v: PluginAPIFlags) -> Self {
2322 skip_assert_initialized!();
2323 ToValue::to_value(&v)
2324 }
2325}
2326
2327bitflags! {
2328 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2330 #[doc(alias = "GstPluginDependencyFlags")]
2331 pub struct PluginDependencyFlags: u32 {
2332 #[doc(alias = "GST_PLUGIN_DEPENDENCY_FLAG_RECURSE")]
2334 const RECURSE = ffi::GST_PLUGIN_DEPENDENCY_FLAG_RECURSE as _;
2335 #[doc(alias = "GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_DEFAULT_ONLY")]
2338 const PATHS_ARE_DEFAULT_ONLY = ffi::GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_DEFAULT_ONLY as _;
2339 #[doc(alias = "GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_SUFFIX")]
2343 const FILE_NAME_IS_SUFFIX = ffi::GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_SUFFIX as _;
2344 #[doc(alias = "GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_PREFIX")]
2348 const FILE_NAME_IS_PREFIX = ffi::GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_PREFIX as _;
2349 #[doc(alias = "GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_RELATIVE_TO_EXE")]
2353 const PATHS_ARE_RELATIVE_TO_EXE = ffi::GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_RELATIVE_TO_EXE as _;
2354 }
2355}
2356
2357#[doc(hidden)]
2358impl IntoGlib for PluginDependencyFlags {
2359 type GlibType = ffi::GstPluginDependencyFlags;
2360
2361 #[inline]
2362 fn into_glib(self) -> ffi::GstPluginDependencyFlags {
2363 self.bits()
2364 }
2365}
2366
2367#[doc(hidden)]
2368impl FromGlib<ffi::GstPluginDependencyFlags> for PluginDependencyFlags {
2369 #[inline]
2370 unsafe fn from_glib(value: ffi::GstPluginDependencyFlags) -> Self {
2371 skip_assert_initialized!();
2372 Self::from_bits_truncate(value)
2373 }
2374}
2375
2376impl StaticType for PluginDependencyFlags {
2377 #[inline]
2378 #[doc(alias = "gst_plugin_dependency_flags_get_type")]
2379 fn static_type() -> glib::Type {
2380 unsafe { from_glib(ffi::gst_plugin_dependency_flags_get_type()) }
2381 }
2382}
2383
2384impl glib::HasParamSpec for PluginDependencyFlags {
2385 type ParamSpec = glib::ParamSpecFlags;
2386 type SetValue = Self;
2387 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2388
2389 fn param_spec_builder() -> Self::BuilderFn {
2390 Self::ParamSpec::builder
2391 }
2392}
2393
2394impl glib::value::ValueType for PluginDependencyFlags {
2395 type Type = Self;
2396}
2397
2398unsafe impl<'a> glib::value::FromValue<'a> for PluginDependencyFlags {
2399 type Checker = glib::value::GenericValueTypeChecker<Self>;
2400
2401 #[inline]
2402 unsafe fn from_value(value: &'a glib::Value) -> Self {
2403 skip_assert_initialized!();
2404 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2405 }
2406}
2407
2408impl ToValue for PluginDependencyFlags {
2409 #[inline]
2410 fn to_value(&self) -> glib::Value {
2411 let mut value = glib::Value::for_value_type::<Self>();
2412 unsafe {
2413 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2414 }
2415 value
2416 }
2417
2418 #[inline]
2419 fn value_type(&self) -> glib::Type {
2420 Self::static_type()
2421 }
2422}
2423
2424impl From<PluginDependencyFlags> for glib::Value {
2425 #[inline]
2426 fn from(v: PluginDependencyFlags) -> Self {
2427 skip_assert_initialized!();
2428 ToValue::to_value(&v)
2429 }
2430}
2431
2432bitflags! {
2433 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2435 #[doc(alias = "GstPluginFlags")]
2436 pub struct PluginFlags: u32 {
2437 #[doc(alias = "GST_PLUGIN_FLAG_CACHED")]
2439 const CACHED = ffi::GST_PLUGIN_FLAG_CACHED as _;
2440 #[doc(alias = "GST_PLUGIN_FLAG_BLACKLISTED")]
2442 const BLACKLISTED = ffi::GST_PLUGIN_FLAG_BLACKLISTED as _;
2443 #[cfg(feature = "v1_30")]
2446 #[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
2447 #[doc(alias = "GST_PLUGIN_FLAG_STATIC_FEATURES")]
2448 const STATIC_FEATURES = ffi::GST_PLUGIN_FLAG_STATIC_FEATURES as _;
2449 }
2450}
2451
2452#[doc(hidden)]
2453impl IntoGlib for PluginFlags {
2454 type GlibType = ffi::GstPluginFlags;
2455
2456 #[inline]
2457 fn into_glib(self) -> ffi::GstPluginFlags {
2458 self.bits()
2459 }
2460}
2461
2462#[doc(hidden)]
2463impl FromGlib<ffi::GstPluginFlags> for PluginFlags {
2464 #[inline]
2465 unsafe fn from_glib(value: ffi::GstPluginFlags) -> Self {
2466 skip_assert_initialized!();
2467 Self::from_bits_truncate(value)
2468 }
2469}
2470
2471impl StaticType for PluginFlags {
2472 #[inline]
2473 #[doc(alias = "gst_plugin_flags_get_type")]
2474 fn static_type() -> glib::Type {
2475 unsafe { from_glib(ffi::gst_plugin_flags_get_type()) }
2476 }
2477}
2478
2479impl glib::HasParamSpec for PluginFlags {
2480 type ParamSpec = glib::ParamSpecFlags;
2481 type SetValue = Self;
2482 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2483
2484 fn param_spec_builder() -> Self::BuilderFn {
2485 Self::ParamSpec::builder
2486 }
2487}
2488
2489impl glib::value::ValueType for PluginFlags {
2490 type Type = Self;
2491}
2492
2493unsafe impl<'a> glib::value::FromValue<'a> for PluginFlags {
2494 type Checker = glib::value::GenericValueTypeChecker<Self>;
2495
2496 #[inline]
2497 unsafe fn from_value(value: &'a glib::Value) -> Self {
2498 skip_assert_initialized!();
2499 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2500 }
2501}
2502
2503impl ToValue for PluginFlags {
2504 #[inline]
2505 fn to_value(&self) -> glib::Value {
2506 let mut value = glib::Value::for_value_type::<Self>();
2507 unsafe {
2508 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2509 }
2510 value
2511 }
2512
2513 #[inline]
2514 fn value_type(&self) -> glib::Type {
2515 Self::static_type()
2516 }
2517}
2518
2519impl From<PluginFlags> for glib::Value {
2520 #[inline]
2521 fn from(v: PluginFlags) -> Self {
2522 skip_assert_initialized!();
2523 ToValue::to_value(&v)
2524 }
2525}
2526
2527bitflags! {
2528 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2530 #[doc(alias = "GstSchedulingFlags")]
2531 pub struct SchedulingFlags: u32 {
2532 #[doc(alias = "GST_SCHEDULING_FLAG_SEEKABLE")]
2534 const SEEKABLE = ffi::GST_SCHEDULING_FLAG_SEEKABLE as _;
2535 #[doc(alias = "GST_SCHEDULING_FLAG_SEQUENTIAL")]
2537 const SEQUENTIAL = ffi::GST_SCHEDULING_FLAG_SEQUENTIAL as _;
2538 #[doc(alias = "GST_SCHEDULING_FLAG_BANDWIDTH_LIMITED")]
2540 const BANDWIDTH_LIMITED = ffi::GST_SCHEDULING_FLAG_BANDWIDTH_LIMITED as _;
2541 }
2542}
2543
2544#[doc(hidden)]
2545impl IntoGlib for SchedulingFlags {
2546 type GlibType = ffi::GstSchedulingFlags;
2547
2548 #[inline]
2549 fn into_glib(self) -> ffi::GstSchedulingFlags {
2550 self.bits()
2551 }
2552}
2553
2554#[doc(hidden)]
2555impl FromGlib<ffi::GstSchedulingFlags> for SchedulingFlags {
2556 #[inline]
2557 unsafe fn from_glib(value: ffi::GstSchedulingFlags) -> Self {
2558 skip_assert_initialized!();
2559 Self::from_bits_truncate(value)
2560 }
2561}
2562
2563impl StaticType for SchedulingFlags {
2564 #[inline]
2565 #[doc(alias = "gst_scheduling_flags_get_type")]
2566 fn static_type() -> glib::Type {
2567 unsafe { from_glib(ffi::gst_scheduling_flags_get_type()) }
2568 }
2569}
2570
2571impl glib::HasParamSpec for SchedulingFlags {
2572 type ParamSpec = glib::ParamSpecFlags;
2573 type SetValue = Self;
2574 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2575
2576 fn param_spec_builder() -> Self::BuilderFn {
2577 Self::ParamSpec::builder
2578 }
2579}
2580
2581impl glib::value::ValueType for SchedulingFlags {
2582 type Type = Self;
2583}
2584
2585unsafe impl<'a> glib::value::FromValue<'a> for SchedulingFlags {
2586 type Checker = glib::value::GenericValueTypeChecker<Self>;
2587
2588 #[inline]
2589 unsafe fn from_value(value: &'a glib::Value) -> Self {
2590 skip_assert_initialized!();
2591 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2592 }
2593}
2594
2595impl ToValue for SchedulingFlags {
2596 #[inline]
2597 fn to_value(&self) -> glib::Value {
2598 let mut value = glib::Value::for_value_type::<Self>();
2599 unsafe {
2600 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2601 }
2602 value
2603 }
2604
2605 #[inline]
2606 fn value_type(&self) -> glib::Type {
2607 Self::static_type()
2608 }
2609}
2610
2611impl From<SchedulingFlags> for glib::Value {
2612 #[inline]
2613 fn from(v: SchedulingFlags) -> Self {
2614 skip_assert_initialized!();
2615 ToValue::to_value(&v)
2616 }
2617}
2618
2619bitflags! {
2620 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2672 #[doc(alias = "GstSeekFlags")]
2673 pub struct SeekFlags: u32 {
2674 #[doc(alias = "GST_SEEK_FLAG_FLUSH")]
2676 const FLUSH = ffi::GST_SEEK_FLAG_FLUSH as _;
2677 #[doc(alias = "GST_SEEK_FLAG_ACCURATE")]
2680 const ACCURATE = ffi::GST_SEEK_FLAG_ACCURATE as _;
2681 #[doc(alias = "GST_SEEK_FLAG_KEY_UNIT")]
2684 const KEY_UNIT = ffi::GST_SEEK_FLAG_KEY_UNIT as _;
2685 #[doc(alias = "GST_SEEK_FLAG_SEGMENT")]
2687 const SEGMENT = ffi::GST_SEEK_FLAG_SEGMENT as _;
2688 #[doc(alias = "GST_SEEK_FLAG_TRICKMODE")]
2692 const TRICKMODE = ffi::GST_SEEK_FLAG_TRICKMODE as _;
2693 #[doc(alias = "GST_SEEK_FLAG_SKIP")]
2696 const SKIP = ffi::GST_SEEK_FLAG_SKIP as _;
2697 #[doc(alias = "GST_SEEK_FLAG_SNAP_BEFORE")]
2701 const SNAP_BEFORE = ffi::GST_SEEK_FLAG_SNAP_BEFORE as _;
2702 #[doc(alias = "GST_SEEK_FLAG_SNAP_AFTER")]
2706 const SNAP_AFTER = ffi::GST_SEEK_FLAG_SNAP_AFTER as _;
2707 #[doc(alias = "GST_SEEK_FLAG_SNAP_NEAREST")]
2712 const SNAP_NEAREST = ffi::GST_SEEK_FLAG_SNAP_NEAREST as _;
2713 #[doc(alias = "GST_SEEK_FLAG_TRICKMODE_KEY_UNITS")]
2718 const TRICKMODE_KEY_UNITS = ffi::GST_SEEK_FLAG_TRICKMODE_KEY_UNITS as _;
2719 #[doc(alias = "GST_SEEK_FLAG_TRICKMODE_NO_AUDIO")]
2723 const TRICKMODE_NO_AUDIO = ffi::GST_SEEK_FLAG_TRICKMODE_NO_AUDIO as _;
2724 #[cfg(feature = "v1_18")]
2730 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2731 #[doc(alias = "GST_SEEK_FLAG_TRICKMODE_FORWARD_PREDICTED")]
2732 const TRICKMODE_FORWARD_PREDICTED = ffi::GST_SEEK_FLAG_TRICKMODE_FORWARD_PREDICTED as _;
2733 #[cfg(feature = "v1_18")]
2738 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2739 #[doc(alias = "GST_SEEK_FLAG_INSTANT_RATE_CHANGE")]
2740 const INSTANT_RATE_CHANGE = ffi::GST_SEEK_FLAG_INSTANT_RATE_CHANGE as _;
2741 }
2742}
2743
2744#[doc(hidden)]
2745impl IntoGlib for SeekFlags {
2746 type GlibType = ffi::GstSeekFlags;
2747
2748 #[inline]
2749 fn into_glib(self) -> ffi::GstSeekFlags {
2750 self.bits()
2751 }
2752}
2753
2754#[doc(hidden)]
2755impl FromGlib<ffi::GstSeekFlags> for SeekFlags {
2756 #[inline]
2757 unsafe fn from_glib(value: ffi::GstSeekFlags) -> Self {
2758 skip_assert_initialized!();
2759 Self::from_bits_truncate(value)
2760 }
2761}
2762
2763impl StaticType for SeekFlags {
2764 #[inline]
2765 #[doc(alias = "gst_seek_flags_get_type")]
2766 fn static_type() -> glib::Type {
2767 unsafe { from_glib(ffi::gst_seek_flags_get_type()) }
2768 }
2769}
2770
2771impl glib::HasParamSpec for SeekFlags {
2772 type ParamSpec = glib::ParamSpecFlags;
2773 type SetValue = Self;
2774 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2775
2776 fn param_spec_builder() -> Self::BuilderFn {
2777 Self::ParamSpec::builder
2778 }
2779}
2780
2781impl glib::value::ValueType for SeekFlags {
2782 type Type = Self;
2783}
2784
2785unsafe impl<'a> glib::value::FromValue<'a> for SeekFlags {
2786 type Checker = glib::value::GenericValueTypeChecker<Self>;
2787
2788 #[inline]
2789 unsafe fn from_value(value: &'a glib::Value) -> Self {
2790 skip_assert_initialized!();
2791 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2792 }
2793}
2794
2795impl ToValue for SeekFlags {
2796 #[inline]
2797 fn to_value(&self) -> glib::Value {
2798 let mut value = glib::Value::for_value_type::<Self>();
2799 unsafe {
2800 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2801 }
2802 value
2803 }
2804
2805 #[inline]
2806 fn value_type(&self) -> glib::Type {
2807 Self::static_type()
2808 }
2809}
2810
2811impl From<SeekFlags> for glib::Value {
2812 #[inline]
2813 fn from(v: SeekFlags) -> Self {
2814 skip_assert_initialized!();
2815 ToValue::to_value(&v)
2816 }
2817}
2818
2819bitflags! {
2820 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2823 #[doc(alias = "GstSegmentFlags")]
2824 pub struct SegmentFlags: u32 {
2825 #[doc(alias = "GST_SEGMENT_FLAG_RESET")]
2828 const RESET = ffi::GST_SEGMENT_FLAG_RESET as _;
2829 #[doc(alias = "GST_SEGMENT_FLAG_TRICKMODE")]
2831 const TRICKMODE = ffi::GST_SEGMENT_FLAG_TRICKMODE as _;
2832 #[doc(alias = "GST_SEGMENT_FLAG_SKIP")]
2835 const SKIP = ffi::GST_SEGMENT_FLAG_SKIP as _;
2836 #[doc(alias = "GST_SEGMENT_FLAG_SEGMENT")]
2838 const SEGMENT = ffi::GST_SEGMENT_FLAG_SEGMENT as _;
2839 #[doc(alias = "GST_SEGMENT_FLAG_TRICKMODE_KEY_UNITS")]
2842 const TRICKMODE_KEY_UNITS = ffi::GST_SEGMENT_FLAG_TRICKMODE_KEY_UNITS as _;
2843 #[cfg(feature = "v1_18")]
2846 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2847 #[doc(alias = "GST_SEGMENT_FLAG_TRICKMODE_FORWARD_PREDICTED")]
2848 const TRICKMODE_FORWARD_PREDICTED = ffi::GST_SEGMENT_FLAG_TRICKMODE_FORWARD_PREDICTED as _;
2849 #[doc(alias = "GST_SEGMENT_FLAG_TRICKMODE_NO_AUDIO")]
2852 const TRICKMODE_NO_AUDIO = ffi::GST_SEGMENT_FLAG_TRICKMODE_NO_AUDIO as _;
2853 }
2854}
2855
2856#[doc(hidden)]
2857impl IntoGlib for SegmentFlags {
2858 type GlibType = ffi::GstSegmentFlags;
2859
2860 #[inline]
2861 fn into_glib(self) -> ffi::GstSegmentFlags {
2862 self.bits()
2863 }
2864}
2865
2866#[doc(hidden)]
2867impl FromGlib<ffi::GstSegmentFlags> for SegmentFlags {
2868 #[inline]
2869 unsafe fn from_glib(value: ffi::GstSegmentFlags) -> Self {
2870 skip_assert_initialized!();
2871 Self::from_bits_truncate(value)
2872 }
2873}
2874
2875impl StaticType for SegmentFlags {
2876 #[inline]
2877 #[doc(alias = "gst_segment_flags_get_type")]
2878 fn static_type() -> glib::Type {
2879 unsafe { from_glib(ffi::gst_segment_flags_get_type()) }
2880 }
2881}
2882
2883impl glib::HasParamSpec for SegmentFlags {
2884 type ParamSpec = glib::ParamSpecFlags;
2885 type SetValue = Self;
2886 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2887
2888 fn param_spec_builder() -> Self::BuilderFn {
2889 Self::ParamSpec::builder
2890 }
2891}
2892
2893impl glib::value::ValueType for SegmentFlags {
2894 type Type = Self;
2895}
2896
2897unsafe impl<'a> glib::value::FromValue<'a> for SegmentFlags {
2898 type Checker = glib::value::GenericValueTypeChecker<Self>;
2899
2900 #[inline]
2901 unsafe fn from_value(value: &'a glib::Value) -> Self {
2902 skip_assert_initialized!();
2903 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2904 }
2905}
2906
2907impl ToValue for SegmentFlags {
2908 #[inline]
2909 fn to_value(&self) -> glib::Value {
2910 let mut value = glib::Value::for_value_type::<Self>();
2911 unsafe {
2912 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2913 }
2914 value
2915 }
2916
2917 #[inline]
2918 fn value_type(&self) -> glib::Type {
2919 Self::static_type()
2920 }
2921}
2922
2923impl From<SegmentFlags> for glib::Value {
2924 #[inline]
2925 fn from(v: SegmentFlags) -> Self {
2926 skip_assert_initialized!();
2927 ToValue::to_value(&v)
2928 }
2929}
2930
2931#[cfg(feature = "v1_20")]
2932bitflags! {
2933 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2934 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2935 #[doc(alias = "GstSerializeFlags")]
2936 pub struct SerializeFlags: u32 {
2937 #[doc(alias = "GST_SERIALIZE_FLAG_NONE")]
2939 const NONE = ffi::GST_SERIALIZE_FLAG_NONE as _;
2940 #[doc(alias = "GST_SERIALIZE_FLAG_BACKWARD_COMPAT")]
2943 const BACKWARD_COMPAT = ffi::GST_SERIALIZE_FLAG_BACKWARD_COMPAT as _;
2944 }
2945}
2946
2947#[cfg(feature = "v1_20")]
2948#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2949#[doc(hidden)]
2950impl IntoGlib for SerializeFlags {
2951 type GlibType = ffi::GstSerializeFlags;
2952
2953 #[inline]
2954 fn into_glib(self) -> ffi::GstSerializeFlags {
2955 self.bits()
2956 }
2957}
2958
2959#[cfg(feature = "v1_20")]
2960#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2961#[doc(hidden)]
2962impl FromGlib<ffi::GstSerializeFlags> for SerializeFlags {
2963 #[inline]
2964 unsafe fn from_glib(value: ffi::GstSerializeFlags) -> Self {
2965 skip_assert_initialized!();
2966 Self::from_bits_truncate(value)
2967 }
2968}
2969
2970#[cfg(feature = "v1_20")]
2971#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2972impl StaticType for SerializeFlags {
2973 #[inline]
2974 #[doc(alias = "gst_serialize_flags_get_type")]
2975 fn static_type() -> glib::Type {
2976 unsafe { from_glib(ffi::gst_serialize_flags_get_type()) }
2977 }
2978}
2979
2980#[cfg(feature = "v1_20")]
2981#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2982impl glib::HasParamSpec for SerializeFlags {
2983 type ParamSpec = glib::ParamSpecFlags;
2984 type SetValue = Self;
2985 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2986
2987 fn param_spec_builder() -> Self::BuilderFn {
2988 Self::ParamSpec::builder
2989 }
2990}
2991
2992#[cfg(feature = "v1_20")]
2993#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2994impl glib::value::ValueType for SerializeFlags {
2995 type Type = Self;
2996}
2997
2998#[cfg(feature = "v1_20")]
2999#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
3000unsafe impl<'a> glib::value::FromValue<'a> for SerializeFlags {
3001 type Checker = glib::value::GenericValueTypeChecker<Self>;
3002
3003 #[inline]
3004 unsafe fn from_value(value: &'a glib::Value) -> Self {
3005 skip_assert_initialized!();
3006 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3007 }
3008}
3009
3010#[cfg(feature = "v1_20")]
3011#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
3012impl ToValue for SerializeFlags {
3013 #[inline]
3014 fn to_value(&self) -> glib::Value {
3015 let mut value = glib::Value::for_value_type::<Self>();
3016 unsafe {
3017 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3018 }
3019 value
3020 }
3021
3022 #[inline]
3023 fn value_type(&self) -> glib::Type {
3024 Self::static_type()
3025 }
3026}
3027
3028#[cfg(feature = "v1_20")]
3029#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
3030impl From<SerializeFlags> for glib::Value {
3031 #[inline]
3032 fn from(v: SerializeFlags) -> Self {
3033 skip_assert_initialized!();
3034 ToValue::to_value(&v)
3035 }
3036}
3037
3038bitflags! {
3039 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
3040 #[doc(alias = "GstStackTraceFlags")]
3041 pub struct StackTraceFlags: u32 {
3042 #[doc(alias = "GST_STACK_TRACE_SHOW_FULL")]
3046 const FULL = ffi::GST_STACK_TRACE_SHOW_FULL as _;
3047 }
3048}
3049
3050#[doc(hidden)]
3051impl IntoGlib for StackTraceFlags {
3052 type GlibType = ffi::GstStackTraceFlags;
3053
3054 #[inline]
3055 fn into_glib(self) -> ffi::GstStackTraceFlags {
3056 self.bits()
3057 }
3058}
3059
3060#[doc(hidden)]
3061impl FromGlib<ffi::GstStackTraceFlags> for StackTraceFlags {
3062 #[inline]
3063 unsafe fn from_glib(value: ffi::GstStackTraceFlags) -> Self {
3064 skip_assert_initialized!();
3065 Self::from_bits_truncate(value)
3066 }
3067}
3068
3069impl StaticType for StackTraceFlags {
3070 #[inline]
3071 #[doc(alias = "gst_stack_trace_flags_get_type")]
3072 fn static_type() -> glib::Type {
3073 unsafe { from_glib(ffi::gst_stack_trace_flags_get_type()) }
3074 }
3075}
3076
3077impl glib::HasParamSpec for StackTraceFlags {
3078 type ParamSpec = glib::ParamSpecFlags;
3079 type SetValue = Self;
3080 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3081
3082 fn param_spec_builder() -> Self::BuilderFn {
3083 Self::ParamSpec::builder
3084 }
3085}
3086
3087impl glib::value::ValueType for StackTraceFlags {
3088 type Type = Self;
3089}
3090
3091unsafe impl<'a> glib::value::FromValue<'a> for StackTraceFlags {
3092 type Checker = glib::value::GenericValueTypeChecker<Self>;
3093
3094 #[inline]
3095 unsafe fn from_value(value: &'a glib::Value) -> Self {
3096 skip_assert_initialized!();
3097 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3098 }
3099}
3100
3101impl ToValue for StackTraceFlags {
3102 #[inline]
3103 fn to_value(&self) -> glib::Value {
3104 let mut value = glib::Value::for_value_type::<Self>();
3105 unsafe {
3106 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3107 }
3108 value
3109 }
3110
3111 #[inline]
3112 fn value_type(&self) -> glib::Type {
3113 Self::static_type()
3114 }
3115}
3116
3117impl From<StackTraceFlags> for glib::Value {
3118 #[inline]
3119 fn from(v: StackTraceFlags) -> Self {
3120 skip_assert_initialized!();
3121 ToValue::to_value(&v)
3122 }
3123}
3124
3125bitflags! {
3126 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
3127 #[doc(alias = "GstStreamFlags")]
3128 pub struct StreamFlags: u32 {
3129 #[doc(alias = "GST_STREAM_FLAG_SPARSE")]
3133 const SPARSE = ffi::GST_STREAM_FLAG_SPARSE as _;
3134 #[doc(alias = "GST_STREAM_FLAG_SELECT")]
3138 const SELECT = ffi::GST_STREAM_FLAG_SELECT as _;
3139 #[doc(alias = "GST_STREAM_FLAG_UNSELECT")]
3145 const UNSELECT = ffi::GST_STREAM_FLAG_UNSELECT as _;
3146 }
3147}
3148
3149#[doc(hidden)]
3150impl IntoGlib for StreamFlags {
3151 type GlibType = ffi::GstStreamFlags;
3152
3153 #[inline]
3154 fn into_glib(self) -> ffi::GstStreamFlags {
3155 self.bits()
3156 }
3157}
3158
3159#[doc(hidden)]
3160impl FromGlib<ffi::GstStreamFlags> for StreamFlags {
3161 #[inline]
3162 unsafe fn from_glib(value: ffi::GstStreamFlags) -> Self {
3163 skip_assert_initialized!();
3164 Self::from_bits_truncate(value)
3165 }
3166}
3167
3168impl StaticType for StreamFlags {
3169 #[inline]
3170 #[doc(alias = "gst_stream_flags_get_type")]
3171 fn static_type() -> glib::Type {
3172 unsafe { from_glib(ffi::gst_stream_flags_get_type()) }
3173 }
3174}
3175
3176impl glib::HasParamSpec for StreamFlags {
3177 type ParamSpec = glib::ParamSpecFlags;
3178 type SetValue = Self;
3179 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3180
3181 fn param_spec_builder() -> Self::BuilderFn {
3182 Self::ParamSpec::builder
3183 }
3184}
3185
3186impl glib::value::ValueType for StreamFlags {
3187 type Type = Self;
3188}
3189
3190unsafe impl<'a> glib::value::FromValue<'a> for StreamFlags {
3191 type Checker = glib::value::GenericValueTypeChecker<Self>;
3192
3193 #[inline]
3194 unsafe fn from_value(value: &'a glib::Value) -> Self {
3195 skip_assert_initialized!();
3196 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3197 }
3198}
3199
3200impl ToValue for StreamFlags {
3201 #[inline]
3202 fn to_value(&self) -> glib::Value {
3203 let mut value = glib::Value::for_value_type::<Self>();
3204 unsafe {
3205 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3206 }
3207 value
3208 }
3209
3210 #[inline]
3211 fn value_type(&self) -> glib::Type {
3212 Self::static_type()
3213 }
3214}
3215
3216impl From<StreamFlags> for glib::Value {
3217 #[inline]
3218 fn from(v: StreamFlags) -> Self {
3219 skip_assert_initialized!();
3220 ToValue::to_value(&v)
3221 }
3222}
3223
3224bitflags! {
3225 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
3232 #[doc(alias = "GstStreamType")]
3233 pub struct StreamType: u32 {
3234 #[doc(alias = "GST_STREAM_TYPE_UNKNOWN")]
3236 const UNKNOWN = ffi::GST_STREAM_TYPE_UNKNOWN as _;
3237 #[doc(alias = "GST_STREAM_TYPE_AUDIO")]
3239 const AUDIO = ffi::GST_STREAM_TYPE_AUDIO as _;
3240 #[doc(alias = "GST_STREAM_TYPE_VIDEO")]
3242 const VIDEO = ffi::GST_STREAM_TYPE_VIDEO as _;
3243 #[doc(alias = "GST_STREAM_TYPE_CONTAINER")]
3245 const CONTAINER = ffi::GST_STREAM_TYPE_CONTAINER as _;
3246 #[doc(alias = "GST_STREAM_TYPE_TEXT")]
3248 const TEXT = ffi::GST_STREAM_TYPE_TEXT as _;
3249 #[cfg(feature = "v1_28")]
3251 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
3252 #[doc(alias = "GST_STREAM_TYPE_METADATA")]
3253 const METADATA = ffi::GST_STREAM_TYPE_METADATA as _;
3254 }
3255}
3256
3257impl StreamType {
3258 pub fn name<'a>(self) -> &'a GStr {
3259 unsafe {
3260 GStr::from_ptr(
3261 ffi::gst_stream_type_get_name(self.into_glib())
3262 .as_ref()
3263 .expect("gst_stream_type_get_name returned NULL"),
3264 )
3265 }
3266 }
3267}
3268
3269impl std::fmt::Display for StreamType {
3270 #[inline]
3271 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3272 f.write_str(&self.name())
3273 }
3274}
3275
3276#[doc(hidden)]
3277impl IntoGlib for StreamType {
3278 type GlibType = ffi::GstStreamType;
3279
3280 #[inline]
3281 fn into_glib(self) -> ffi::GstStreamType {
3282 self.bits()
3283 }
3284}
3285
3286#[doc(hidden)]
3287impl FromGlib<ffi::GstStreamType> for StreamType {
3288 #[inline]
3289 unsafe fn from_glib(value: ffi::GstStreamType) -> Self {
3290 skip_assert_initialized!();
3291 Self::from_bits_truncate(value)
3292 }
3293}
3294
3295impl StaticType for StreamType {
3296 #[inline]
3297 #[doc(alias = "gst_stream_type_get_type")]
3298 fn static_type() -> glib::Type {
3299 unsafe { from_glib(ffi::gst_stream_type_get_type()) }
3300 }
3301}
3302
3303impl glib::HasParamSpec for StreamType {
3304 type ParamSpec = glib::ParamSpecFlags;
3305 type SetValue = Self;
3306 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3307
3308 fn param_spec_builder() -> Self::BuilderFn {
3309 Self::ParamSpec::builder
3310 }
3311}
3312
3313impl glib::value::ValueType for StreamType {
3314 type Type = Self;
3315}
3316
3317unsafe impl<'a> glib::value::FromValue<'a> for StreamType {
3318 type Checker = glib::value::GenericValueTypeChecker<Self>;
3319
3320 #[inline]
3321 unsafe fn from_value(value: &'a glib::Value) -> Self {
3322 skip_assert_initialized!();
3323 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3324 }
3325}
3326
3327impl ToValue for StreamType {
3328 #[inline]
3329 fn to_value(&self) -> glib::Value {
3330 let mut value = glib::Value::for_value_type::<Self>();
3331 unsafe {
3332 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3333 }
3334 value
3335 }
3336
3337 #[inline]
3338 fn value_type(&self) -> glib::Type {
3339 Self::static_type()
3340 }
3341}
3342
3343impl From<StreamType> for glib::Value {
3344 #[inline]
3345 fn from(v: StreamType) -> Self {
3346 skip_assert_initialized!();
3347 ToValue::to_value(&v)
3348 }
3349}