1use crate::ffi;
7use glib::{bitflags::bitflags, prelude::*, translate::*, GStr};
8
9bitflags! {
10 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
11 #[doc(alias = "GstBinFlags")]
12 pub struct BinFlags: u32 {
13 #[doc(alias = "GST_BIN_FLAG_NO_RESYNC")]
14 const NO_RESYNC = ffi::GST_BIN_FLAG_NO_RESYNC as _;
15 #[doc(alias = "GST_BIN_FLAG_STREAMS_AWARE")]
16 const STREAMS_AWARE = ffi::GST_BIN_FLAG_STREAMS_AWARE as _;
17 }
18}
19
20#[doc(hidden)]
21impl IntoGlib for BinFlags {
22 type GlibType = ffi::GstBinFlags;
23
24 #[inline]
25 fn into_glib(self) -> ffi::GstBinFlags {
26 self.bits()
27 }
28}
29
30#[doc(hidden)]
31impl FromGlib<ffi::GstBinFlags> for BinFlags {
32 #[inline]
33 unsafe fn from_glib(value: ffi::GstBinFlags) -> Self {
34 skip_assert_initialized!();
35 Self::from_bits_truncate(value)
36 }
37}
38
39impl StaticType for BinFlags {
40 #[inline]
41 #[doc(alias = "gst_bin_flags_get_type")]
42 fn static_type() -> glib::Type {
43 unsafe { from_glib(ffi::gst_bin_flags_get_type()) }
44 }
45}
46
47impl glib::HasParamSpec for BinFlags {
48 type ParamSpec = glib::ParamSpecFlags;
49 type SetValue = Self;
50 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
51
52 fn param_spec_builder() -> Self::BuilderFn {
53 Self::ParamSpec::builder
54 }
55}
56
57impl glib::value::ValueType for BinFlags {
58 type Type = Self;
59}
60
61unsafe impl<'a> glib::value::FromValue<'a> for BinFlags {
62 type Checker = glib::value::GenericValueTypeChecker<Self>;
63
64 #[inline]
65 unsafe fn from_value(value: &'a glib::Value) -> Self {
66 skip_assert_initialized!();
67 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
68 }
69}
70
71impl ToValue for BinFlags {
72 #[inline]
73 fn to_value(&self) -> glib::Value {
74 let mut value = glib::Value::for_value_type::<Self>();
75 unsafe {
76 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
77 }
78 value
79 }
80
81 #[inline]
82 fn value_type(&self) -> glib::Type {
83 Self::static_type()
84 }
85}
86
87impl From<BinFlags> for glib::Value {
88 #[inline]
89 fn from(v: BinFlags) -> Self {
90 skip_assert_initialized!();
91 ToValue::to_value(&v)
92 }
93}
94
95bitflags! {
96 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
97 #[doc(alias = "GstBufferCopyFlags")]
98 pub struct BufferCopyFlags: u32 {
99 #[doc(alias = "GST_BUFFER_COPY_FLAGS")]
100 const FLAGS = ffi::GST_BUFFER_COPY_FLAGS as _;
101 #[doc(alias = "GST_BUFFER_COPY_TIMESTAMPS")]
102 const TIMESTAMPS = ffi::GST_BUFFER_COPY_TIMESTAMPS as _;
103 #[doc(alias = "GST_BUFFER_COPY_META")]
104 const META = ffi::GST_BUFFER_COPY_META as _;
105 #[doc(alias = "GST_BUFFER_COPY_MEMORY")]
106 const MEMORY = ffi::GST_BUFFER_COPY_MEMORY as _;
107 #[doc(alias = "GST_BUFFER_COPY_MERGE")]
108 const MERGE = ffi::GST_BUFFER_COPY_MERGE as _;
109 #[doc(alias = "GST_BUFFER_COPY_DEEP")]
110 const DEEP = ffi::GST_BUFFER_COPY_DEEP as _;
111 }
112}
113
114#[doc(hidden)]
115impl IntoGlib for BufferCopyFlags {
116 type GlibType = ffi::GstBufferCopyFlags;
117
118 #[inline]
119 fn into_glib(self) -> ffi::GstBufferCopyFlags {
120 self.bits()
121 }
122}
123
124#[doc(hidden)]
125impl FromGlib<ffi::GstBufferCopyFlags> for BufferCopyFlags {
126 #[inline]
127 unsafe fn from_glib(value: ffi::GstBufferCopyFlags) -> Self {
128 skip_assert_initialized!();
129 Self::from_bits_truncate(value)
130 }
131}
132
133impl StaticType for BufferCopyFlags {
134 #[inline]
135 #[doc(alias = "gst_buffer_copy_flags_get_type")]
136 fn static_type() -> glib::Type {
137 unsafe { from_glib(ffi::gst_buffer_copy_flags_get_type()) }
138 }
139}
140
141impl glib::HasParamSpec for BufferCopyFlags {
142 type ParamSpec = glib::ParamSpecFlags;
143 type SetValue = Self;
144 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
145
146 fn param_spec_builder() -> Self::BuilderFn {
147 Self::ParamSpec::builder
148 }
149}
150
151impl glib::value::ValueType for BufferCopyFlags {
152 type Type = Self;
153}
154
155unsafe impl<'a> glib::value::FromValue<'a> for BufferCopyFlags {
156 type Checker = glib::value::GenericValueTypeChecker<Self>;
157
158 #[inline]
159 unsafe fn from_value(value: &'a glib::Value) -> Self {
160 skip_assert_initialized!();
161 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
162 }
163}
164
165impl ToValue for BufferCopyFlags {
166 #[inline]
167 fn to_value(&self) -> glib::Value {
168 let mut value = glib::Value::for_value_type::<Self>();
169 unsafe {
170 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
171 }
172 value
173 }
174
175 #[inline]
176 fn value_type(&self) -> glib::Type {
177 Self::static_type()
178 }
179}
180
181impl From<BufferCopyFlags> for glib::Value {
182 #[inline]
183 fn from(v: BufferCopyFlags) -> Self {
184 skip_assert_initialized!();
185 ToValue::to_value(&v)
186 }
187}
188
189bitflags! {
190 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
191 #[doc(alias = "GstBufferFlags")]
192 pub struct BufferFlags: u32 {
193 #[doc(alias = "GST_BUFFER_FLAG_LIVE")]
194 const LIVE = ffi::GST_BUFFER_FLAG_LIVE as _;
195 #[doc(alias = "GST_BUFFER_FLAG_DECODE_ONLY")]
196 const DECODE_ONLY = ffi::GST_BUFFER_FLAG_DECODE_ONLY as _;
197 #[doc(alias = "GST_BUFFER_FLAG_DISCONT")]
198 const DISCONT = ffi::GST_BUFFER_FLAG_DISCONT as _;
199 #[doc(alias = "GST_BUFFER_FLAG_RESYNC")]
200 const RESYNC = ffi::GST_BUFFER_FLAG_RESYNC as _;
201 #[doc(alias = "GST_BUFFER_FLAG_CORRUPTED")]
202 const CORRUPTED = ffi::GST_BUFFER_FLAG_CORRUPTED as _;
203 #[doc(alias = "GST_BUFFER_FLAG_MARKER")]
204 const MARKER = ffi::GST_BUFFER_FLAG_MARKER as _;
205 #[doc(alias = "GST_BUFFER_FLAG_HEADER")]
206 const HEADER = ffi::GST_BUFFER_FLAG_HEADER as _;
207 #[doc(alias = "GST_BUFFER_FLAG_GAP")]
208 const GAP = ffi::GST_BUFFER_FLAG_GAP as _;
209 #[doc(alias = "GST_BUFFER_FLAG_DROPPABLE")]
210 const DROPPABLE = ffi::GST_BUFFER_FLAG_DROPPABLE as _;
211 #[doc(alias = "GST_BUFFER_FLAG_DELTA_UNIT")]
212 const DELTA_UNIT = ffi::GST_BUFFER_FLAG_DELTA_UNIT as _;
213 #[doc(alias = "GST_BUFFER_FLAG_TAG_MEMORY")]
214 const TAG_MEMORY = ffi::GST_BUFFER_FLAG_TAG_MEMORY as _;
215 #[doc(alias = "GST_BUFFER_FLAG_SYNC_AFTER")]
216 const SYNC_AFTER = ffi::GST_BUFFER_FLAG_SYNC_AFTER as _;
217 #[doc(alias = "GST_BUFFER_FLAG_NON_DROPPABLE")]
218 const NON_DROPPABLE = ffi::GST_BUFFER_FLAG_NON_DROPPABLE as _;
219 }
220}
221
222#[doc(hidden)]
223impl IntoGlib for BufferFlags {
224 type GlibType = ffi::GstBufferFlags;
225
226 #[inline]
227 fn into_glib(self) -> ffi::GstBufferFlags {
228 self.bits()
229 }
230}
231
232#[doc(hidden)]
233impl FromGlib<ffi::GstBufferFlags> for BufferFlags {
234 #[inline]
235 unsafe fn from_glib(value: ffi::GstBufferFlags) -> Self {
236 skip_assert_initialized!();
237 Self::from_bits_truncate(value)
238 }
239}
240
241impl StaticType for BufferFlags {
242 #[inline]
243 #[doc(alias = "gst_buffer_flags_get_type")]
244 fn static_type() -> glib::Type {
245 unsafe { from_glib(ffi::gst_buffer_flags_get_type()) }
246 }
247}
248
249impl glib::HasParamSpec for BufferFlags {
250 type ParamSpec = glib::ParamSpecFlags;
251 type SetValue = Self;
252 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
253
254 fn param_spec_builder() -> Self::BuilderFn {
255 Self::ParamSpec::builder
256 }
257}
258
259impl glib::value::ValueType for BufferFlags {
260 type Type = Self;
261}
262
263unsafe impl<'a> glib::value::FromValue<'a> for BufferFlags {
264 type Checker = glib::value::GenericValueTypeChecker<Self>;
265
266 #[inline]
267 unsafe fn from_value(value: &'a glib::Value) -> Self {
268 skip_assert_initialized!();
269 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
270 }
271}
272
273impl ToValue for BufferFlags {
274 #[inline]
275 fn to_value(&self) -> glib::Value {
276 let mut value = glib::Value::for_value_type::<Self>();
277 unsafe {
278 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
279 }
280 value
281 }
282
283 #[inline]
284 fn value_type(&self) -> glib::Type {
285 Self::static_type()
286 }
287}
288
289impl From<BufferFlags> for glib::Value {
290 #[inline]
291 fn from(v: BufferFlags) -> Self {
292 skip_assert_initialized!();
293 ToValue::to_value(&v)
294 }
295}
296
297bitflags! {
298 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
299 #[doc(alias = "GstBufferPoolAcquireFlags")]
300 pub struct BufferPoolAcquireFlags: u32 {
301 #[doc(alias = "GST_BUFFER_POOL_ACQUIRE_FLAG_KEY_UNIT")]
302 const KEY_UNIT = ffi::GST_BUFFER_POOL_ACQUIRE_FLAG_KEY_UNIT as _;
303 #[doc(alias = "GST_BUFFER_POOL_ACQUIRE_FLAG_DONTWAIT")]
304 const DONTWAIT = ffi::GST_BUFFER_POOL_ACQUIRE_FLAG_DONTWAIT as _;
305 #[doc(alias = "GST_BUFFER_POOL_ACQUIRE_FLAG_DISCONT")]
306 const DISCONT = ffi::GST_BUFFER_POOL_ACQUIRE_FLAG_DISCONT as _;
307 }
308}
309
310#[doc(hidden)]
311impl IntoGlib for BufferPoolAcquireFlags {
312 type GlibType = ffi::GstBufferPoolAcquireFlags;
313
314 #[inline]
315 fn into_glib(self) -> ffi::GstBufferPoolAcquireFlags {
316 self.bits()
317 }
318}
319
320#[doc(hidden)]
321impl FromGlib<ffi::GstBufferPoolAcquireFlags> for BufferPoolAcquireFlags {
322 #[inline]
323 unsafe fn from_glib(value: ffi::GstBufferPoolAcquireFlags) -> Self {
324 skip_assert_initialized!();
325 Self::from_bits_truncate(value)
326 }
327}
328
329impl StaticType for BufferPoolAcquireFlags {
330 #[inline]
331 #[doc(alias = "gst_buffer_pool_acquire_flags_get_type")]
332 fn static_type() -> glib::Type {
333 unsafe { from_glib(ffi::gst_buffer_pool_acquire_flags_get_type()) }
334 }
335}
336
337impl glib::HasParamSpec for BufferPoolAcquireFlags {
338 type ParamSpec = glib::ParamSpecFlags;
339 type SetValue = Self;
340 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
341
342 fn param_spec_builder() -> Self::BuilderFn {
343 Self::ParamSpec::builder
344 }
345}
346
347impl glib::value::ValueType for BufferPoolAcquireFlags {
348 type Type = Self;
349}
350
351unsafe impl<'a> glib::value::FromValue<'a> for BufferPoolAcquireFlags {
352 type Checker = glib::value::GenericValueTypeChecker<Self>;
353
354 #[inline]
355 unsafe fn from_value(value: &'a glib::Value) -> Self {
356 skip_assert_initialized!();
357 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
358 }
359}
360
361impl ToValue for BufferPoolAcquireFlags {
362 #[inline]
363 fn to_value(&self) -> glib::Value {
364 let mut value = glib::Value::for_value_type::<Self>();
365 unsafe {
366 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
367 }
368 value
369 }
370
371 #[inline]
372 fn value_type(&self) -> glib::Type {
373 Self::static_type()
374 }
375}
376
377impl From<BufferPoolAcquireFlags> for glib::Value {
378 #[inline]
379 fn from(v: BufferPoolAcquireFlags) -> Self {
380 skip_assert_initialized!();
381 ToValue::to_value(&v)
382 }
383}
384
385bitflags! {
386 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
387 #[doc(alias = "GstClockFlags")]
388 pub struct ClockFlags: u32 {
389 #[doc(alias = "GST_CLOCK_FLAG_CAN_DO_SINGLE_SYNC")]
390 const CAN_DO_SINGLE_SYNC = ffi::GST_CLOCK_FLAG_CAN_DO_SINGLE_SYNC as _;
391 #[doc(alias = "GST_CLOCK_FLAG_CAN_DO_SINGLE_ASYNC")]
392 const CAN_DO_SINGLE_ASYNC = ffi::GST_CLOCK_FLAG_CAN_DO_SINGLE_ASYNC as _;
393 #[doc(alias = "GST_CLOCK_FLAG_CAN_DO_PERIODIC_SYNC")]
394 const CAN_DO_PERIODIC_SYNC = ffi::GST_CLOCK_FLAG_CAN_DO_PERIODIC_SYNC as _;
395 #[doc(alias = "GST_CLOCK_FLAG_CAN_DO_PERIODIC_ASYNC")]
396 const CAN_DO_PERIODIC_ASYNC = ffi::GST_CLOCK_FLAG_CAN_DO_PERIODIC_ASYNC as _;
397 #[doc(alias = "GST_CLOCK_FLAG_CAN_SET_RESOLUTION")]
398 const CAN_SET_RESOLUTION = ffi::GST_CLOCK_FLAG_CAN_SET_RESOLUTION as _;
399 #[doc(alias = "GST_CLOCK_FLAG_CAN_SET_MASTER")]
400 const CAN_SET_MASTER = ffi::GST_CLOCK_FLAG_CAN_SET_MASTER as _;
401 #[doc(alias = "GST_CLOCK_FLAG_NEEDS_STARTUP_SYNC")]
402 const NEEDS_STARTUP_SYNC = ffi::GST_CLOCK_FLAG_NEEDS_STARTUP_SYNC as _;
403 }
404}
405
406#[doc(hidden)]
407impl IntoGlib for ClockFlags {
408 type GlibType = ffi::GstClockFlags;
409
410 #[inline]
411 fn into_glib(self) -> ffi::GstClockFlags {
412 self.bits()
413 }
414}
415
416#[doc(hidden)]
417impl FromGlib<ffi::GstClockFlags> for ClockFlags {
418 #[inline]
419 unsafe fn from_glib(value: ffi::GstClockFlags) -> Self {
420 skip_assert_initialized!();
421 Self::from_bits_truncate(value)
422 }
423}
424
425impl StaticType for ClockFlags {
426 #[inline]
427 #[doc(alias = "gst_clock_flags_get_type")]
428 fn static_type() -> glib::Type {
429 unsafe { from_glib(ffi::gst_clock_flags_get_type()) }
430 }
431}
432
433impl glib::HasParamSpec for ClockFlags {
434 type ParamSpec = glib::ParamSpecFlags;
435 type SetValue = Self;
436 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
437
438 fn param_spec_builder() -> Self::BuilderFn {
439 Self::ParamSpec::builder
440 }
441}
442
443impl glib::value::ValueType for ClockFlags {
444 type Type = Self;
445}
446
447unsafe impl<'a> glib::value::FromValue<'a> for ClockFlags {
448 type Checker = glib::value::GenericValueTypeChecker<Self>;
449
450 #[inline]
451 unsafe fn from_value(value: &'a glib::Value) -> Self {
452 skip_assert_initialized!();
453 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
454 }
455}
456
457impl ToValue for ClockFlags {
458 #[inline]
459 fn to_value(&self) -> glib::Value {
460 let mut value = glib::Value::for_value_type::<Self>();
461 unsafe {
462 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
463 }
464 value
465 }
466
467 #[inline]
468 fn value_type(&self) -> glib::Type {
469 Self::static_type()
470 }
471}
472
473impl From<ClockFlags> for glib::Value {
474 #[inline]
475 fn from(v: ClockFlags) -> Self {
476 skip_assert_initialized!();
477 ToValue::to_value(&v)
478 }
479}
480
481bitflags! {
482 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
483 #[doc(alias = "GstDebugColorFlags")]
484 pub struct DebugColorFlags: u32 {
485 #[doc(alias = "GST_DEBUG_FG_BLACK")]
486 const FG_BLACK = ffi::GST_DEBUG_FG_BLACK as _;
487 #[doc(alias = "GST_DEBUG_FG_RED")]
488 const FG_RED = ffi::GST_DEBUG_FG_RED as _;
489 #[doc(alias = "GST_DEBUG_FG_GREEN")]
490 const FG_GREEN = ffi::GST_DEBUG_FG_GREEN as _;
491 #[doc(alias = "GST_DEBUG_FG_YELLOW")]
492 const FG_YELLOW = ffi::GST_DEBUG_FG_YELLOW as _;
493 #[doc(alias = "GST_DEBUG_FG_BLUE")]
494 const FG_BLUE = ffi::GST_DEBUG_FG_BLUE as _;
495 #[doc(alias = "GST_DEBUG_FG_MAGENTA")]
496 const FG_MAGENTA = ffi::GST_DEBUG_FG_MAGENTA as _;
497 #[doc(alias = "GST_DEBUG_FG_CYAN")]
498 const FG_CYAN = ffi::GST_DEBUG_FG_CYAN as _;
499 #[doc(alias = "GST_DEBUG_FG_WHITE")]
500 const FG_WHITE = ffi::GST_DEBUG_FG_WHITE as _;
501 #[doc(alias = "GST_DEBUG_BG_BLACK")]
502 const BG_BLACK = ffi::GST_DEBUG_BG_BLACK as _;
503 #[doc(alias = "GST_DEBUG_BG_RED")]
504 const BG_RED = ffi::GST_DEBUG_BG_RED as _;
505 #[doc(alias = "GST_DEBUG_BG_GREEN")]
506 const BG_GREEN = ffi::GST_DEBUG_BG_GREEN as _;
507 #[doc(alias = "GST_DEBUG_BG_YELLOW")]
508 const BG_YELLOW = ffi::GST_DEBUG_BG_YELLOW as _;
509 #[doc(alias = "GST_DEBUG_BG_BLUE")]
510 const BG_BLUE = ffi::GST_DEBUG_BG_BLUE as _;
511 #[doc(alias = "GST_DEBUG_BG_MAGENTA")]
512 const BG_MAGENTA = ffi::GST_DEBUG_BG_MAGENTA as _;
513 #[doc(alias = "GST_DEBUG_BG_CYAN")]
514 const BG_CYAN = ffi::GST_DEBUG_BG_CYAN as _;
515 #[doc(alias = "GST_DEBUG_BG_WHITE")]
516 const BG_WHITE = ffi::GST_DEBUG_BG_WHITE as _;
517 #[doc(alias = "GST_DEBUG_BOLD")]
518 const BOLD = ffi::GST_DEBUG_BOLD as _;
519 #[doc(alias = "GST_DEBUG_UNDERLINE")]
520 const UNDERLINE = ffi::GST_DEBUG_UNDERLINE as _;
521 }
522}
523
524#[doc(hidden)]
525impl IntoGlib for DebugColorFlags {
526 type GlibType = ffi::GstDebugColorFlags;
527
528 #[inline]
529 fn into_glib(self) -> ffi::GstDebugColorFlags {
530 self.bits()
531 }
532}
533
534#[doc(hidden)]
535impl FromGlib<ffi::GstDebugColorFlags> for DebugColorFlags {
536 #[inline]
537 unsafe fn from_glib(value: ffi::GstDebugColorFlags) -> Self {
538 skip_assert_initialized!();
539 Self::from_bits_truncate(value)
540 }
541}
542
543impl StaticType for DebugColorFlags {
544 #[inline]
545 #[doc(alias = "gst_debug_color_flags_get_type")]
546 fn static_type() -> glib::Type {
547 unsafe { from_glib(ffi::gst_debug_color_flags_get_type()) }
548 }
549}
550
551impl glib::HasParamSpec for DebugColorFlags {
552 type ParamSpec = glib::ParamSpecFlags;
553 type SetValue = Self;
554 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
555
556 fn param_spec_builder() -> Self::BuilderFn {
557 Self::ParamSpec::builder
558 }
559}
560
561impl glib::value::ValueType for DebugColorFlags {
562 type Type = Self;
563}
564
565unsafe impl<'a> glib::value::FromValue<'a> for DebugColorFlags {
566 type Checker = glib::value::GenericValueTypeChecker<Self>;
567
568 #[inline]
569 unsafe fn from_value(value: &'a glib::Value) -> Self {
570 skip_assert_initialized!();
571 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
572 }
573}
574
575impl ToValue for DebugColorFlags {
576 #[inline]
577 fn to_value(&self) -> glib::Value {
578 let mut value = glib::Value::for_value_type::<Self>();
579 unsafe {
580 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
581 }
582 value
583 }
584
585 #[inline]
586 fn value_type(&self) -> glib::Type {
587 Self::static_type()
588 }
589}
590
591impl From<DebugColorFlags> for glib::Value {
592 #[inline]
593 fn from(v: DebugColorFlags) -> Self {
594 skip_assert_initialized!();
595 ToValue::to_value(&v)
596 }
597}
598
599bitflags! {
600 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
601 #[doc(alias = "GstDebugGraphDetails")]
602 pub struct DebugGraphDetails: u32 {
603 #[doc(alias = "GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE")]
604 const MEDIA_TYPE = ffi::GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE as _;
605 #[doc(alias = "GST_DEBUG_GRAPH_SHOW_CAPS_DETAILS")]
606 const CAPS_DETAILS = ffi::GST_DEBUG_GRAPH_SHOW_CAPS_DETAILS as _;
607 #[doc(alias = "GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS")]
608 const NON_DEFAULT_PARAMS = ffi::GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS as _;
609 #[doc(alias = "GST_DEBUG_GRAPH_SHOW_STATES")]
610 const STATES = ffi::GST_DEBUG_GRAPH_SHOW_STATES as _;
611 #[doc(alias = "GST_DEBUG_GRAPH_SHOW_FULL_PARAMS")]
612 const FULL_PARAMS = ffi::GST_DEBUG_GRAPH_SHOW_FULL_PARAMS as _;
613 #[doc(alias = "GST_DEBUG_GRAPH_SHOW_ALL")]
614 const ALL = ffi::GST_DEBUG_GRAPH_SHOW_ALL as _;
615 #[doc(alias = "GST_DEBUG_GRAPH_SHOW_VERBOSE")]
616 const VERBOSE = ffi::GST_DEBUG_GRAPH_SHOW_VERBOSE as _;
617 }
618}
619
620#[doc(hidden)]
621impl IntoGlib for DebugGraphDetails {
622 type GlibType = ffi::GstDebugGraphDetails;
623
624 #[inline]
625 fn into_glib(self) -> ffi::GstDebugGraphDetails {
626 self.bits()
627 }
628}
629
630#[doc(hidden)]
631impl FromGlib<ffi::GstDebugGraphDetails> for DebugGraphDetails {
632 #[inline]
633 unsafe fn from_glib(value: ffi::GstDebugGraphDetails) -> Self {
634 skip_assert_initialized!();
635 Self::from_bits_truncate(value)
636 }
637}
638
639impl StaticType for DebugGraphDetails {
640 #[inline]
641 #[doc(alias = "gst_debug_graph_details_get_type")]
642 fn static_type() -> glib::Type {
643 unsafe { from_glib(ffi::gst_debug_graph_details_get_type()) }
644 }
645}
646
647impl glib::HasParamSpec for DebugGraphDetails {
648 type ParamSpec = glib::ParamSpecFlags;
649 type SetValue = Self;
650 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
651
652 fn param_spec_builder() -> Self::BuilderFn {
653 Self::ParamSpec::builder
654 }
655}
656
657impl glib::value::ValueType for DebugGraphDetails {
658 type Type = Self;
659}
660
661unsafe impl<'a> glib::value::FromValue<'a> for DebugGraphDetails {
662 type Checker = glib::value::GenericValueTypeChecker<Self>;
663
664 #[inline]
665 unsafe fn from_value(value: &'a glib::Value) -> Self {
666 skip_assert_initialized!();
667 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
668 }
669}
670
671impl ToValue for DebugGraphDetails {
672 #[inline]
673 fn to_value(&self) -> glib::Value {
674 let mut value = glib::Value::for_value_type::<Self>();
675 unsafe {
676 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
677 }
678 value
679 }
680
681 #[inline]
682 fn value_type(&self) -> glib::Type {
683 Self::static_type()
684 }
685}
686
687impl From<DebugGraphDetails> for glib::Value {
688 #[inline]
689 fn from(v: DebugGraphDetails) -> Self {
690 skip_assert_initialized!();
691 ToValue::to_value(&v)
692 }
693}
694
695bitflags! {
696 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
697 #[doc(alias = "GstElementFlags")]
698 pub struct ElementFlags: u32 {
699 #[doc(alias = "GST_ELEMENT_FLAG_LOCKED_STATE")]
700 const LOCKED_STATE = ffi::GST_ELEMENT_FLAG_LOCKED_STATE as _;
701 #[doc(alias = "GST_ELEMENT_FLAG_SINK")]
702 const SINK = ffi::GST_ELEMENT_FLAG_SINK as _;
703 #[doc(alias = "GST_ELEMENT_FLAG_SOURCE")]
704 const SOURCE = ffi::GST_ELEMENT_FLAG_SOURCE as _;
705 #[doc(alias = "GST_ELEMENT_FLAG_PROVIDE_CLOCK")]
706 const PROVIDE_CLOCK = ffi::GST_ELEMENT_FLAG_PROVIDE_CLOCK as _;
707 #[doc(alias = "GST_ELEMENT_FLAG_REQUIRE_CLOCK")]
708 const REQUIRE_CLOCK = ffi::GST_ELEMENT_FLAG_REQUIRE_CLOCK as _;
709 #[doc(alias = "GST_ELEMENT_FLAG_INDEXABLE")]
710 const INDEXABLE = ffi::GST_ELEMENT_FLAG_INDEXABLE as _;
711 }
712}
713
714#[doc(hidden)]
715impl IntoGlib for ElementFlags {
716 type GlibType = ffi::GstElementFlags;
717
718 #[inline]
719 fn into_glib(self) -> ffi::GstElementFlags {
720 self.bits()
721 }
722}
723
724#[doc(hidden)]
725impl FromGlib<ffi::GstElementFlags> for ElementFlags {
726 #[inline]
727 unsafe fn from_glib(value: ffi::GstElementFlags) -> Self {
728 skip_assert_initialized!();
729 Self::from_bits_truncate(value)
730 }
731}
732
733impl StaticType for ElementFlags {
734 #[inline]
735 #[doc(alias = "gst_element_flags_get_type")]
736 fn static_type() -> glib::Type {
737 unsafe { from_glib(ffi::gst_element_flags_get_type()) }
738 }
739}
740
741impl glib::HasParamSpec for ElementFlags {
742 type ParamSpec = glib::ParamSpecFlags;
743 type SetValue = Self;
744 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
745
746 fn param_spec_builder() -> Self::BuilderFn {
747 Self::ParamSpec::builder
748 }
749}
750
751impl glib::value::ValueType for ElementFlags {
752 type Type = Self;
753}
754
755unsafe impl<'a> glib::value::FromValue<'a> for ElementFlags {
756 type Checker = glib::value::GenericValueTypeChecker<Self>;
757
758 #[inline]
759 unsafe fn from_value(value: &'a glib::Value) -> Self {
760 skip_assert_initialized!();
761 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
762 }
763}
764
765impl ToValue for ElementFlags {
766 #[inline]
767 fn to_value(&self) -> glib::Value {
768 let mut value = glib::Value::for_value_type::<Self>();
769 unsafe {
770 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
771 }
772 value
773 }
774
775 #[inline]
776 fn value_type(&self) -> glib::Type {
777 Self::static_type()
778 }
779}
780
781impl From<ElementFlags> for glib::Value {
782 #[inline]
783 fn from(v: ElementFlags) -> Self {
784 skip_assert_initialized!();
785 ToValue::to_value(&v)
786 }
787}
788
789bitflags! {
790 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
791 #[doc(alias = "GstEventTypeFlags")]
792 pub struct EventTypeFlags: u32 {
793 #[doc(alias = "GST_EVENT_TYPE_UPSTREAM")]
794 const UPSTREAM = ffi::GST_EVENT_TYPE_UPSTREAM as _;
795 #[doc(alias = "GST_EVENT_TYPE_DOWNSTREAM")]
796 const DOWNSTREAM = ffi::GST_EVENT_TYPE_DOWNSTREAM as _;
797 #[doc(alias = "GST_EVENT_TYPE_SERIALIZED")]
798 const SERIALIZED = ffi::GST_EVENT_TYPE_SERIALIZED as _;
799 #[doc(alias = "GST_EVENT_TYPE_STICKY")]
800 const STICKY = ffi::GST_EVENT_TYPE_STICKY as _;
801 #[doc(alias = "GST_EVENT_TYPE_STICKY_MULTI")]
802 const STICKY_MULTI = ffi::GST_EVENT_TYPE_STICKY_MULTI as _;
803 }
804}
805
806#[doc(hidden)]
807impl IntoGlib for EventTypeFlags {
808 type GlibType = ffi::GstEventTypeFlags;
809
810 #[inline]
811 fn into_glib(self) -> ffi::GstEventTypeFlags {
812 self.bits()
813 }
814}
815
816#[doc(hidden)]
817impl FromGlib<ffi::GstEventTypeFlags> for EventTypeFlags {
818 #[inline]
819 unsafe fn from_glib(value: ffi::GstEventTypeFlags) -> Self {
820 skip_assert_initialized!();
821 Self::from_bits_truncate(value)
822 }
823}
824
825impl StaticType for EventTypeFlags {
826 #[inline]
827 #[doc(alias = "gst_event_type_flags_get_type")]
828 fn static_type() -> glib::Type {
829 unsafe { from_glib(ffi::gst_event_type_flags_get_type()) }
830 }
831}
832
833impl glib::HasParamSpec for EventTypeFlags {
834 type ParamSpec = glib::ParamSpecFlags;
835 type SetValue = Self;
836 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
837
838 fn param_spec_builder() -> Self::BuilderFn {
839 Self::ParamSpec::builder
840 }
841}
842
843impl glib::value::ValueType for EventTypeFlags {
844 type Type = Self;
845}
846
847unsafe impl<'a> glib::value::FromValue<'a> for EventTypeFlags {
848 type Checker = glib::value::GenericValueTypeChecker<Self>;
849
850 #[inline]
851 unsafe fn from_value(value: &'a glib::Value) -> Self {
852 skip_assert_initialized!();
853 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
854 }
855}
856
857impl ToValue for EventTypeFlags {
858 #[inline]
859 fn to_value(&self) -> glib::Value {
860 let mut value = glib::Value::for_value_type::<Self>();
861 unsafe {
862 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
863 }
864 value
865 }
866
867 #[inline]
868 fn value_type(&self) -> glib::Type {
869 Self::static_type()
870 }
871}
872
873impl From<EventTypeFlags> for glib::Value {
874 #[inline]
875 fn from(v: EventTypeFlags) -> Self {
876 skip_assert_initialized!();
877 ToValue::to_value(&v)
878 }
879}
880
881#[cfg(feature = "v1_20")]
882bitflags! {
883 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
884 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
885 #[doc(alias = "GstGapFlags")]
886 pub struct GapFlags: u32 {
887 #[doc(alias = "GST_GAP_FLAG_MISSING_DATA")]
888 const DATA = ffi::GST_GAP_FLAG_MISSING_DATA as _;
889 }
890}
891
892#[cfg(feature = "v1_20")]
893#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
894#[doc(hidden)]
895impl IntoGlib for GapFlags {
896 type GlibType = ffi::GstGapFlags;
897
898 #[inline]
899 fn into_glib(self) -> ffi::GstGapFlags {
900 self.bits()
901 }
902}
903
904#[cfg(feature = "v1_20")]
905#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
906#[doc(hidden)]
907impl FromGlib<ffi::GstGapFlags> for GapFlags {
908 #[inline]
909 unsafe fn from_glib(value: ffi::GstGapFlags) -> Self {
910 skip_assert_initialized!();
911 Self::from_bits_truncate(value)
912 }
913}
914
915#[cfg(feature = "v1_20")]
916#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
917impl StaticType for GapFlags {
918 #[inline]
919 #[doc(alias = "gst_gap_flags_get_type")]
920 fn static_type() -> glib::Type {
921 unsafe { from_glib(ffi::gst_gap_flags_get_type()) }
922 }
923}
924
925#[cfg(feature = "v1_20")]
926#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
927impl glib::HasParamSpec for GapFlags {
928 type ParamSpec = glib::ParamSpecFlags;
929 type SetValue = Self;
930 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
931
932 fn param_spec_builder() -> Self::BuilderFn {
933 Self::ParamSpec::builder
934 }
935}
936
937#[cfg(feature = "v1_20")]
938#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
939impl glib::value::ValueType for GapFlags {
940 type Type = Self;
941}
942
943#[cfg(feature = "v1_20")]
944#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
945unsafe impl<'a> glib::value::FromValue<'a> for GapFlags {
946 type Checker = glib::value::GenericValueTypeChecker<Self>;
947
948 #[inline]
949 unsafe fn from_value(value: &'a glib::Value) -> Self {
950 skip_assert_initialized!();
951 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
952 }
953}
954
955#[cfg(feature = "v1_20")]
956#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
957impl ToValue for GapFlags {
958 #[inline]
959 fn to_value(&self) -> glib::Value {
960 let mut value = glib::Value::for_value_type::<Self>();
961 unsafe {
962 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
963 }
964 value
965 }
966
967 #[inline]
968 fn value_type(&self) -> glib::Type {
969 Self::static_type()
970 }
971}
972
973#[cfg(feature = "v1_20")]
974#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
975impl From<GapFlags> for glib::Value {
976 #[inline]
977 fn from(v: GapFlags) -> Self {
978 skip_assert_initialized!();
979 ToValue::to_value(&v)
980 }
981}
982
983#[cfg(feature = "v1_28")]
984bitflags! {
985 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
986 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
987 #[doc(alias = "GstLogContextFlags")]
988 pub struct LogContextFlags: u32 {
989 #[doc(alias = "GST_LOG_CONTEXT_FLAG_THROTTLE")]
990 const THROTTLE = ffi::GST_LOG_CONTEXT_FLAG_THROTTLE as _;
991 }
992}
993
994#[cfg(feature = "v1_28")]
995#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
996#[doc(hidden)]
997impl IntoGlib for LogContextFlags {
998 type GlibType = ffi::GstLogContextFlags;
999
1000 #[inline]
1001 fn into_glib(self) -> ffi::GstLogContextFlags {
1002 self.bits()
1003 }
1004}
1005
1006#[cfg(feature = "v1_28")]
1007#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1008#[doc(hidden)]
1009impl FromGlib<ffi::GstLogContextFlags> for LogContextFlags {
1010 #[inline]
1011 unsafe fn from_glib(value: ffi::GstLogContextFlags) -> Self {
1012 skip_assert_initialized!();
1013 Self::from_bits_truncate(value)
1014 }
1015}
1016
1017#[cfg(feature = "v1_28")]
1018#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1019impl StaticType for LogContextFlags {
1020 #[inline]
1021 #[doc(alias = "gst_log_context_flags_get_type")]
1022 fn static_type() -> glib::Type {
1023 unsafe { from_glib(ffi::gst_log_context_flags_get_type()) }
1024 }
1025}
1026
1027#[cfg(feature = "v1_28")]
1028#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1029impl glib::HasParamSpec for LogContextFlags {
1030 type ParamSpec = glib::ParamSpecFlags;
1031 type SetValue = Self;
1032 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1033
1034 fn param_spec_builder() -> Self::BuilderFn {
1035 Self::ParamSpec::builder
1036 }
1037}
1038
1039#[cfg(feature = "v1_28")]
1040#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1041impl glib::value::ValueType for LogContextFlags {
1042 type Type = Self;
1043}
1044
1045#[cfg(feature = "v1_28")]
1046#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1047unsafe impl<'a> glib::value::FromValue<'a> for LogContextFlags {
1048 type Checker = glib::value::GenericValueTypeChecker<Self>;
1049
1050 #[inline]
1051 unsafe fn from_value(value: &'a glib::Value) -> Self {
1052 skip_assert_initialized!();
1053 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
1054 }
1055}
1056
1057#[cfg(feature = "v1_28")]
1058#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1059impl ToValue for LogContextFlags {
1060 #[inline]
1061 fn to_value(&self) -> glib::Value {
1062 let mut value = glib::Value::for_value_type::<Self>();
1063 unsafe {
1064 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1065 }
1066 value
1067 }
1068
1069 #[inline]
1070 fn value_type(&self) -> glib::Type {
1071 Self::static_type()
1072 }
1073}
1074
1075#[cfg(feature = "v1_28")]
1076#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1077impl From<LogContextFlags> for glib::Value {
1078 #[inline]
1079 fn from(v: LogContextFlags) -> Self {
1080 skip_assert_initialized!();
1081 ToValue::to_value(&v)
1082 }
1083}
1084
1085#[cfg(feature = "v1_28")]
1086bitflags! {
1087 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1088 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1089 #[doc(alias = "GstLogContextHashFlags")]
1090 pub struct LogContextHashFlags: u32 {
1091 #[doc(alias = "GST_LOG_CONTEXT_IGNORE_OBJECT")]
1092 const IGNORE_OBJECT = ffi::GST_LOG_CONTEXT_IGNORE_OBJECT as _;
1093 #[doc(alias = "GST_LOG_CONTEXT_IGNORE_FORMAT")]
1094 const IGNORE_FORMAT = ffi::GST_LOG_CONTEXT_IGNORE_FORMAT as _;
1095 #[doc(alias = "GST_LOG_CONTEXT_IGNORE_FILE")]
1096 const IGNORE_FILE = ffi::GST_LOG_CONTEXT_IGNORE_FILE as _;
1097 #[doc(alias = "GST_LOG_CONTEXT_USE_LINE_NUMBER")]
1098 const USE_LINE_NUMBER = ffi::GST_LOG_CONTEXT_USE_LINE_NUMBER as _;
1099 #[doc(alias = "GST_LOG_CONTEXT_USE_STRING_ARGS")]
1100 const USE_STRING_ARGS = ffi::GST_LOG_CONTEXT_USE_STRING_ARGS as _;
1101 }
1102}
1103
1104#[cfg(feature = "v1_28")]
1105#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1106#[doc(hidden)]
1107impl IntoGlib for LogContextHashFlags {
1108 type GlibType = ffi::GstLogContextHashFlags;
1109
1110 #[inline]
1111 fn into_glib(self) -> ffi::GstLogContextHashFlags {
1112 self.bits()
1113 }
1114}
1115
1116#[cfg(feature = "v1_28")]
1117#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1118#[doc(hidden)]
1119impl FromGlib<ffi::GstLogContextHashFlags> for LogContextHashFlags {
1120 #[inline]
1121 unsafe fn from_glib(value: ffi::GstLogContextHashFlags) -> Self {
1122 skip_assert_initialized!();
1123 Self::from_bits_truncate(value)
1124 }
1125}
1126
1127#[cfg(feature = "v1_28")]
1128#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1129impl StaticType for LogContextHashFlags {
1130 #[inline]
1131 #[doc(alias = "gst_log_context_hash_flags_get_type")]
1132 fn static_type() -> glib::Type {
1133 unsafe { from_glib(ffi::gst_log_context_hash_flags_get_type()) }
1134 }
1135}
1136
1137#[cfg(feature = "v1_28")]
1138#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1139impl glib::HasParamSpec for LogContextHashFlags {
1140 type ParamSpec = glib::ParamSpecFlags;
1141 type SetValue = Self;
1142 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1143
1144 fn param_spec_builder() -> Self::BuilderFn {
1145 Self::ParamSpec::builder
1146 }
1147}
1148
1149#[cfg(feature = "v1_28")]
1150#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1151impl glib::value::ValueType for LogContextHashFlags {
1152 type Type = Self;
1153}
1154
1155#[cfg(feature = "v1_28")]
1156#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1157unsafe impl<'a> glib::value::FromValue<'a> for LogContextHashFlags {
1158 type Checker = glib::value::GenericValueTypeChecker<Self>;
1159
1160 #[inline]
1161 unsafe fn from_value(value: &'a glib::Value) -> Self {
1162 skip_assert_initialized!();
1163 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
1164 }
1165}
1166
1167#[cfg(feature = "v1_28")]
1168#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1169impl ToValue for LogContextHashFlags {
1170 #[inline]
1171 fn to_value(&self) -> glib::Value {
1172 let mut value = glib::Value::for_value_type::<Self>();
1173 unsafe {
1174 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1175 }
1176 value
1177 }
1178
1179 #[inline]
1180 fn value_type(&self) -> glib::Type {
1181 Self::static_type()
1182 }
1183}
1184
1185#[cfg(feature = "v1_28")]
1186#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
1187impl From<LogContextHashFlags> for glib::Value {
1188 #[inline]
1189 fn from(v: LogContextHashFlags) -> Self {
1190 skip_assert_initialized!();
1191 ToValue::to_value(&v)
1192 }
1193}
1194
1195bitflags! {
1196 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1197 #[doc(alias = "GstMemoryFlags")]
1198 pub struct MemoryFlags: u32 {
1199 #[doc(alias = "GST_MEMORY_FLAG_READONLY")]
1200 const READONLY = ffi::GST_MEMORY_FLAG_READONLY as _;
1201 #[doc(alias = "GST_MEMORY_FLAG_NO_SHARE")]
1202 const NO_SHARE = ffi::GST_MEMORY_FLAG_NO_SHARE as _;
1203 #[doc(alias = "GST_MEMORY_FLAG_ZERO_PREFIXED")]
1204 const ZERO_PREFIXED = ffi::GST_MEMORY_FLAG_ZERO_PREFIXED as _;
1205 #[doc(alias = "GST_MEMORY_FLAG_ZERO_PADDED")]
1206 const ZERO_PADDED = ffi::GST_MEMORY_FLAG_ZERO_PADDED as _;
1207 #[doc(alias = "GST_MEMORY_FLAG_PHYSICALLY_CONTIGUOUS")]
1208 const PHYSICALLY_CONTIGUOUS = ffi::GST_MEMORY_FLAG_PHYSICALLY_CONTIGUOUS as _;
1209 #[doc(alias = "GST_MEMORY_FLAG_NOT_MAPPABLE")]
1210 const NOT_MAPPABLE = ffi::GST_MEMORY_FLAG_NOT_MAPPABLE as _;
1211 }
1212}
1213
1214#[doc(hidden)]
1215impl IntoGlib for MemoryFlags {
1216 type GlibType = ffi::GstMemoryFlags;
1217
1218 #[inline]
1219 fn into_glib(self) -> ffi::GstMemoryFlags {
1220 self.bits()
1221 }
1222}
1223
1224#[doc(hidden)]
1225impl FromGlib<ffi::GstMemoryFlags> for MemoryFlags {
1226 #[inline]
1227 unsafe fn from_glib(value: ffi::GstMemoryFlags) -> Self {
1228 skip_assert_initialized!();
1229 Self::from_bits_truncate(value)
1230 }
1231}
1232
1233impl StaticType for MemoryFlags {
1234 #[inline]
1235 #[doc(alias = "gst_memory_flags_get_type")]
1236 fn static_type() -> glib::Type {
1237 unsafe { from_glib(ffi::gst_memory_flags_get_type()) }
1238 }
1239}
1240
1241impl glib::HasParamSpec for MemoryFlags {
1242 type ParamSpec = glib::ParamSpecFlags;
1243 type SetValue = Self;
1244 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1245
1246 fn param_spec_builder() -> Self::BuilderFn {
1247 Self::ParamSpec::builder
1248 }
1249}
1250
1251impl glib::value::ValueType for MemoryFlags {
1252 type Type = Self;
1253}
1254
1255unsafe impl<'a> glib::value::FromValue<'a> for MemoryFlags {
1256 type Checker = glib::value::GenericValueTypeChecker<Self>;
1257
1258 #[inline]
1259 unsafe fn from_value(value: &'a glib::Value) -> Self {
1260 skip_assert_initialized!();
1261 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
1262 }
1263}
1264
1265impl ToValue for MemoryFlags {
1266 #[inline]
1267 fn to_value(&self) -> glib::Value {
1268 let mut value = glib::Value::for_value_type::<Self>();
1269 unsafe {
1270 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1271 }
1272 value
1273 }
1274
1275 #[inline]
1276 fn value_type(&self) -> glib::Type {
1277 Self::static_type()
1278 }
1279}
1280
1281impl From<MemoryFlags> for glib::Value {
1282 #[inline]
1283 fn from(v: MemoryFlags) -> Self {
1284 skip_assert_initialized!();
1285 ToValue::to_value(&v)
1286 }
1287}
1288
1289bitflags! {
1290 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1291 #[doc(alias = "GstMetaFlags")]
1292 pub struct MetaFlags: u32 {
1293 #[doc(alias = "GST_META_FLAG_READONLY")]
1294 const READONLY = ffi::GST_META_FLAG_READONLY as _;
1295 #[doc(alias = "GST_META_FLAG_POOLED")]
1296 const POOLED = ffi::GST_META_FLAG_POOLED as _;
1297 #[doc(alias = "GST_META_FLAG_LOCKED")]
1298 const LOCKED = ffi::GST_META_FLAG_LOCKED as _;
1299 }
1300}
1301
1302#[doc(hidden)]
1303impl IntoGlib for MetaFlags {
1304 type GlibType = ffi::GstMetaFlags;
1305
1306 #[inline]
1307 fn into_glib(self) -> ffi::GstMetaFlags {
1308 self.bits()
1309 }
1310}
1311
1312#[doc(hidden)]
1313impl FromGlib<ffi::GstMetaFlags> for MetaFlags {
1314 #[inline]
1315 unsafe fn from_glib(value: ffi::GstMetaFlags) -> Self {
1316 skip_assert_initialized!();
1317 Self::from_bits_truncate(value)
1318 }
1319}
1320
1321impl StaticType for MetaFlags {
1322 #[inline]
1323 #[doc(alias = "gst_meta_flags_get_type")]
1324 fn static_type() -> glib::Type {
1325 unsafe { from_glib(ffi::gst_meta_flags_get_type()) }
1326 }
1327}
1328
1329impl glib::HasParamSpec for MetaFlags {
1330 type ParamSpec = glib::ParamSpecFlags;
1331 type SetValue = Self;
1332 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1333
1334 fn param_spec_builder() -> Self::BuilderFn {
1335 Self::ParamSpec::builder
1336 }
1337}
1338
1339impl glib::value::ValueType for MetaFlags {
1340 type Type = Self;
1341}
1342
1343unsafe impl<'a> glib::value::FromValue<'a> for MetaFlags {
1344 type Checker = glib::value::GenericValueTypeChecker<Self>;
1345
1346 #[inline]
1347 unsafe fn from_value(value: &'a glib::Value) -> Self {
1348 skip_assert_initialized!();
1349 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
1350 }
1351}
1352
1353impl ToValue for MetaFlags {
1354 #[inline]
1355 fn to_value(&self) -> glib::Value {
1356 let mut value = glib::Value::for_value_type::<Self>();
1357 unsafe {
1358 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1359 }
1360 value
1361 }
1362
1363 #[inline]
1364 fn value_type(&self) -> glib::Type {
1365 Self::static_type()
1366 }
1367}
1368
1369impl From<MetaFlags> for glib::Value {
1370 #[inline]
1371 fn from(v: MetaFlags) -> Self {
1372 skip_assert_initialized!();
1373 ToValue::to_value(&v)
1374 }
1375}
1376
1377bitflags! {
1378 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1379 #[doc(alias = "GstObjectFlags")]
1380 pub struct ObjectFlags: u32 {
1381 #[doc(alias = "GST_OBJECT_FLAG_MAY_BE_LEAKED")]
1382 const MAY_BE_LEAKED = ffi::GST_OBJECT_FLAG_MAY_BE_LEAKED as _;
1383 #[cfg(feature = "v1_24")]
1384 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
1385 #[doc(alias = "GST_OBJECT_FLAG_CONSTRUCTED")]
1386 const CONSTRUCTED = ffi::GST_OBJECT_FLAG_CONSTRUCTED as _;
1387 }
1388}
1389
1390#[doc(hidden)]
1391impl IntoGlib for ObjectFlags {
1392 type GlibType = ffi::GstObjectFlags;
1393
1394 #[inline]
1395 fn into_glib(self) -> ffi::GstObjectFlags {
1396 self.bits()
1397 }
1398}
1399
1400#[doc(hidden)]
1401impl FromGlib<ffi::GstObjectFlags> for ObjectFlags {
1402 #[inline]
1403 unsafe fn from_glib(value: ffi::GstObjectFlags) -> Self {
1404 skip_assert_initialized!();
1405 Self::from_bits_truncate(value)
1406 }
1407}
1408
1409impl StaticType for ObjectFlags {
1410 #[inline]
1411 #[doc(alias = "gst_object_flags_get_type")]
1412 fn static_type() -> glib::Type {
1413 unsafe { from_glib(ffi::gst_object_flags_get_type()) }
1414 }
1415}
1416
1417impl glib::HasParamSpec for ObjectFlags {
1418 type ParamSpec = glib::ParamSpecFlags;
1419 type SetValue = Self;
1420 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1421
1422 fn param_spec_builder() -> Self::BuilderFn {
1423 Self::ParamSpec::builder
1424 }
1425}
1426
1427impl glib::value::ValueType for ObjectFlags {
1428 type Type = Self;
1429}
1430
1431unsafe impl<'a> glib::value::FromValue<'a> for ObjectFlags {
1432 type Checker = glib::value::GenericValueTypeChecker<Self>;
1433
1434 #[inline]
1435 unsafe fn from_value(value: &'a glib::Value) -> Self {
1436 skip_assert_initialized!();
1437 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
1438 }
1439}
1440
1441impl ToValue for ObjectFlags {
1442 #[inline]
1443 fn to_value(&self) -> glib::Value {
1444 let mut value = glib::Value::for_value_type::<Self>();
1445 unsafe {
1446 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1447 }
1448 value
1449 }
1450
1451 #[inline]
1452 fn value_type(&self) -> glib::Type {
1453 Self::static_type()
1454 }
1455}
1456
1457impl From<ObjectFlags> for glib::Value {
1458 #[inline]
1459 fn from(v: ObjectFlags) -> Self {
1460 skip_assert_initialized!();
1461 ToValue::to_value(&v)
1462 }
1463}
1464
1465bitflags! {
1466 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1467 #[doc(alias = "GstPadFlags")]
1468 pub struct PadFlags: u32 {
1469 #[doc(alias = "GST_PAD_FLAG_BLOCKED")]
1470 const BLOCKED = ffi::GST_PAD_FLAG_BLOCKED as _;
1471 #[doc(alias = "GST_PAD_FLAG_FLUSHING")]
1472 const FLUSHING = ffi::GST_PAD_FLAG_FLUSHING as _;
1473 #[doc(alias = "GST_PAD_FLAG_EOS")]
1474 const EOS = ffi::GST_PAD_FLAG_EOS as _;
1475 #[doc(alias = "GST_PAD_FLAG_BLOCKING")]
1476 const BLOCKING = ffi::GST_PAD_FLAG_BLOCKING as _;
1477 #[doc(alias = "GST_PAD_FLAG_NEED_PARENT")]
1478 const NEED_PARENT = ffi::GST_PAD_FLAG_NEED_PARENT as _;
1479 #[doc(alias = "GST_PAD_FLAG_NEED_RECONFIGURE")]
1480 const NEED_RECONFIGURE = ffi::GST_PAD_FLAG_NEED_RECONFIGURE as _;
1481 #[doc(alias = "GST_PAD_FLAG_PENDING_EVENTS")]
1482 const PENDING_EVENTS = ffi::GST_PAD_FLAG_PENDING_EVENTS as _;
1483 #[doc(alias = "GST_PAD_FLAG_FIXED_CAPS")]
1484 const FIXED_CAPS = ffi::GST_PAD_FLAG_FIXED_CAPS as _;
1485 #[doc(alias = "GST_PAD_FLAG_PROXY_CAPS")]
1486 const PROXY_CAPS = ffi::GST_PAD_FLAG_PROXY_CAPS as _;
1487 #[doc(alias = "GST_PAD_FLAG_PROXY_ALLOCATION")]
1488 const PROXY_ALLOCATION = ffi::GST_PAD_FLAG_PROXY_ALLOCATION as _;
1489 #[doc(alias = "GST_PAD_FLAG_PROXY_SCHEDULING")]
1490 const PROXY_SCHEDULING = ffi::GST_PAD_FLAG_PROXY_SCHEDULING as _;
1491 #[doc(alias = "GST_PAD_FLAG_ACCEPT_INTERSECT")]
1492 const ACCEPT_INTERSECT = ffi::GST_PAD_FLAG_ACCEPT_INTERSECT as _;
1493 #[doc(alias = "GST_PAD_FLAG_ACCEPT_TEMPLATE")]
1494 const ACCEPT_TEMPLATE = ffi::GST_PAD_FLAG_ACCEPT_TEMPLATE as _;
1495 }
1496}
1497
1498#[doc(hidden)]
1499impl IntoGlib for PadFlags {
1500 type GlibType = ffi::GstPadFlags;
1501
1502 #[inline]
1503 fn into_glib(self) -> ffi::GstPadFlags {
1504 self.bits()
1505 }
1506}
1507
1508#[doc(hidden)]
1509impl FromGlib<ffi::GstPadFlags> for PadFlags {
1510 #[inline]
1511 unsafe fn from_glib(value: ffi::GstPadFlags) -> Self {
1512 skip_assert_initialized!();
1513 Self::from_bits_truncate(value)
1514 }
1515}
1516
1517impl StaticType for PadFlags {
1518 #[inline]
1519 #[doc(alias = "gst_pad_flags_get_type")]
1520 fn static_type() -> glib::Type {
1521 unsafe { from_glib(ffi::gst_pad_flags_get_type()) }
1522 }
1523}
1524
1525impl glib::HasParamSpec for PadFlags {
1526 type ParamSpec = glib::ParamSpecFlags;
1527 type SetValue = Self;
1528 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1529
1530 fn param_spec_builder() -> Self::BuilderFn {
1531 Self::ParamSpec::builder
1532 }
1533}
1534
1535impl glib::value::ValueType for PadFlags {
1536 type Type = Self;
1537}
1538
1539unsafe impl<'a> glib::value::FromValue<'a> for PadFlags {
1540 type Checker = glib::value::GenericValueTypeChecker<Self>;
1541
1542 #[inline]
1543 unsafe fn from_value(value: &'a glib::Value) -> Self {
1544 skip_assert_initialized!();
1545 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
1546 }
1547}
1548
1549impl ToValue for PadFlags {
1550 #[inline]
1551 fn to_value(&self) -> glib::Value {
1552 let mut value = glib::Value::for_value_type::<Self>();
1553 unsafe {
1554 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1555 }
1556 value
1557 }
1558
1559 #[inline]
1560 fn value_type(&self) -> glib::Type {
1561 Self::static_type()
1562 }
1563}
1564
1565impl From<PadFlags> for glib::Value {
1566 #[inline]
1567 fn from(v: PadFlags) -> Self {
1568 skip_assert_initialized!();
1569 ToValue::to_value(&v)
1570 }
1571}
1572
1573bitflags! {
1574 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1575 #[doc(alias = "GstPadLinkCheck")]
1576 pub struct PadLinkCheck: u32 {
1577 #[doc(alias = "GST_PAD_LINK_CHECK_HIERARCHY")]
1578 const HIERARCHY = ffi::GST_PAD_LINK_CHECK_HIERARCHY as _;
1579 #[doc(alias = "GST_PAD_LINK_CHECK_TEMPLATE_CAPS")]
1580 const TEMPLATE_CAPS = ffi::GST_PAD_LINK_CHECK_TEMPLATE_CAPS as _;
1581 #[doc(alias = "GST_PAD_LINK_CHECK_CAPS")]
1582 const CAPS = ffi::GST_PAD_LINK_CHECK_CAPS as _;
1583 #[doc(alias = "GST_PAD_LINK_CHECK_NO_RECONFIGURE")]
1584 const NO_RECONFIGURE = ffi::GST_PAD_LINK_CHECK_NO_RECONFIGURE as _;
1585 #[doc(alias = "GST_PAD_LINK_CHECK_DEFAULT")]
1586 const DEFAULT = ffi::GST_PAD_LINK_CHECK_DEFAULT as _;
1587 }
1588}
1589
1590#[doc(hidden)]
1591impl IntoGlib for PadLinkCheck {
1592 type GlibType = ffi::GstPadLinkCheck;
1593
1594 #[inline]
1595 fn into_glib(self) -> ffi::GstPadLinkCheck {
1596 self.bits()
1597 }
1598}
1599
1600#[doc(hidden)]
1601impl FromGlib<ffi::GstPadLinkCheck> for PadLinkCheck {
1602 #[inline]
1603 unsafe fn from_glib(value: ffi::GstPadLinkCheck) -> Self {
1604 skip_assert_initialized!();
1605 Self::from_bits_truncate(value)
1606 }
1607}
1608
1609impl StaticType for PadLinkCheck {
1610 #[inline]
1611 #[doc(alias = "gst_pad_link_check_get_type")]
1612 fn static_type() -> glib::Type {
1613 unsafe { from_glib(ffi::gst_pad_link_check_get_type()) }
1614 }
1615}
1616
1617impl glib::HasParamSpec for PadLinkCheck {
1618 type ParamSpec = glib::ParamSpecFlags;
1619 type SetValue = Self;
1620 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1621
1622 fn param_spec_builder() -> Self::BuilderFn {
1623 Self::ParamSpec::builder
1624 }
1625}
1626
1627impl glib::value::ValueType for PadLinkCheck {
1628 type Type = Self;
1629}
1630
1631unsafe impl<'a> glib::value::FromValue<'a> for PadLinkCheck {
1632 type Checker = glib::value::GenericValueTypeChecker<Self>;
1633
1634 #[inline]
1635 unsafe fn from_value(value: &'a glib::Value) -> Self {
1636 skip_assert_initialized!();
1637 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
1638 }
1639}
1640
1641impl ToValue for PadLinkCheck {
1642 #[inline]
1643 fn to_value(&self) -> glib::Value {
1644 let mut value = glib::Value::for_value_type::<Self>();
1645 unsafe {
1646 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1647 }
1648 value
1649 }
1650
1651 #[inline]
1652 fn value_type(&self) -> glib::Type {
1653 Self::static_type()
1654 }
1655}
1656
1657impl From<PadLinkCheck> for glib::Value {
1658 #[inline]
1659 fn from(v: PadLinkCheck) -> Self {
1660 skip_assert_initialized!();
1661 ToValue::to_value(&v)
1662 }
1663}
1664
1665bitflags! {
1666 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1667 #[doc(alias = "GstPadProbeType")]
1668 pub struct PadProbeType: u32 {
1669 #[doc(alias = "GST_PAD_PROBE_TYPE_IDLE")]
1670 const IDLE = ffi::GST_PAD_PROBE_TYPE_IDLE as _;
1671 #[doc(alias = "GST_PAD_PROBE_TYPE_BLOCK")]
1672 const BLOCK = ffi::GST_PAD_PROBE_TYPE_BLOCK as _;
1673 #[doc(alias = "GST_PAD_PROBE_TYPE_BUFFER")]
1674 const BUFFER = ffi::GST_PAD_PROBE_TYPE_BUFFER as _;
1675 #[doc(alias = "GST_PAD_PROBE_TYPE_BUFFER_LIST")]
1676 const BUFFER_LIST = ffi::GST_PAD_PROBE_TYPE_BUFFER_LIST as _;
1677 #[doc(alias = "GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM")]
1678 const EVENT_DOWNSTREAM = ffi::GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM as _;
1679 #[doc(alias = "GST_PAD_PROBE_TYPE_EVENT_UPSTREAM")]
1680 const EVENT_UPSTREAM = ffi::GST_PAD_PROBE_TYPE_EVENT_UPSTREAM as _;
1681 #[doc(alias = "GST_PAD_PROBE_TYPE_EVENT_FLUSH")]
1682 const EVENT_FLUSH = ffi::GST_PAD_PROBE_TYPE_EVENT_FLUSH as _;
1683 #[doc(alias = "GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM")]
1684 const QUERY_DOWNSTREAM = ffi::GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM as _;
1685 #[doc(alias = "GST_PAD_PROBE_TYPE_QUERY_UPSTREAM")]
1686 const QUERY_UPSTREAM = ffi::GST_PAD_PROBE_TYPE_QUERY_UPSTREAM as _;
1687 #[doc(alias = "GST_PAD_PROBE_TYPE_PUSH")]
1688 const PUSH = ffi::GST_PAD_PROBE_TYPE_PUSH as _;
1689 #[doc(alias = "GST_PAD_PROBE_TYPE_PULL")]
1690 const PULL = ffi::GST_PAD_PROBE_TYPE_PULL as _;
1691 #[doc(alias = "GST_PAD_PROBE_TYPE_BLOCKING")]
1692 const BLOCKING = ffi::GST_PAD_PROBE_TYPE_BLOCKING as _;
1693 #[doc(alias = "GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM")]
1694 const DATA_DOWNSTREAM = ffi::GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM as _;
1695 #[doc(alias = "GST_PAD_PROBE_TYPE_DATA_UPSTREAM")]
1696 const DATA_UPSTREAM = ffi::GST_PAD_PROBE_TYPE_DATA_UPSTREAM as _;
1697 #[doc(alias = "GST_PAD_PROBE_TYPE_DATA_BOTH")]
1698 const DATA_BOTH = ffi::GST_PAD_PROBE_TYPE_DATA_BOTH as _;
1699 #[doc(alias = "GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM")]
1700 const BLOCK_DOWNSTREAM = ffi::GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM as _;
1701 #[doc(alias = "GST_PAD_PROBE_TYPE_BLOCK_UPSTREAM")]
1702 const BLOCK_UPSTREAM = ffi::GST_PAD_PROBE_TYPE_BLOCK_UPSTREAM as _;
1703 #[doc(alias = "GST_PAD_PROBE_TYPE_EVENT_BOTH")]
1704 const EVENT_BOTH = ffi::GST_PAD_PROBE_TYPE_EVENT_BOTH as _;
1705 #[doc(alias = "GST_PAD_PROBE_TYPE_QUERY_BOTH")]
1706 const QUERY_BOTH = ffi::GST_PAD_PROBE_TYPE_QUERY_BOTH as _;
1707 #[doc(alias = "GST_PAD_PROBE_TYPE_ALL_BOTH")]
1708 const ALL_BOTH = ffi::GST_PAD_PROBE_TYPE_ALL_BOTH as _;
1709 #[doc(alias = "GST_PAD_PROBE_TYPE_SCHEDULING")]
1710 const SCHEDULING = ffi::GST_PAD_PROBE_TYPE_SCHEDULING as _;
1711 }
1712}
1713
1714#[doc(hidden)]
1715impl IntoGlib for PadProbeType {
1716 type GlibType = ffi::GstPadProbeType;
1717
1718 #[inline]
1719 fn into_glib(self) -> ffi::GstPadProbeType {
1720 self.bits()
1721 }
1722}
1723
1724#[doc(hidden)]
1725impl FromGlib<ffi::GstPadProbeType> for PadProbeType {
1726 #[inline]
1727 unsafe fn from_glib(value: ffi::GstPadProbeType) -> Self {
1728 skip_assert_initialized!();
1729 Self::from_bits_truncate(value)
1730 }
1731}
1732
1733impl StaticType for PadProbeType {
1734 #[inline]
1735 #[doc(alias = "gst_pad_probe_type_get_type")]
1736 fn static_type() -> glib::Type {
1737 unsafe { from_glib(ffi::gst_pad_probe_type_get_type()) }
1738 }
1739}
1740
1741impl glib::HasParamSpec for PadProbeType {
1742 type ParamSpec = glib::ParamSpecFlags;
1743 type SetValue = Self;
1744 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1745
1746 fn param_spec_builder() -> Self::BuilderFn {
1747 Self::ParamSpec::builder
1748 }
1749}
1750
1751impl glib::value::ValueType for PadProbeType {
1752 type Type = Self;
1753}
1754
1755unsafe impl<'a> glib::value::FromValue<'a> for PadProbeType {
1756 type Checker = glib::value::GenericValueTypeChecker<Self>;
1757
1758 #[inline]
1759 unsafe fn from_value(value: &'a glib::Value) -> Self {
1760 skip_assert_initialized!();
1761 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
1762 }
1763}
1764
1765impl ToValue for PadProbeType {
1766 #[inline]
1767 fn to_value(&self) -> glib::Value {
1768 let mut value = glib::Value::for_value_type::<Self>();
1769 unsafe {
1770 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1771 }
1772 value
1773 }
1774
1775 #[inline]
1776 fn value_type(&self) -> glib::Type {
1777 Self::static_type()
1778 }
1779}
1780
1781impl From<PadProbeType> for glib::Value {
1782 #[inline]
1783 fn from(v: PadProbeType) -> Self {
1784 skip_assert_initialized!();
1785 ToValue::to_value(&v)
1786 }
1787}
1788
1789bitflags! {
1790 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1791 #[doc(alias = "GstParseFlags")]
1792 pub struct ParseFlags: u32 {
1793 #[doc(alias = "GST_PARSE_FLAG_FATAL_ERRORS")]
1794 const FATAL_ERRORS = ffi::GST_PARSE_FLAG_FATAL_ERRORS as _;
1795 #[doc(alias = "GST_PARSE_FLAG_NO_SINGLE_ELEMENT_BINS")]
1796 const NO_SINGLE_ELEMENT_BINS = ffi::GST_PARSE_FLAG_NO_SINGLE_ELEMENT_BINS as _;
1797 #[doc(alias = "GST_PARSE_FLAG_PLACE_IN_BIN")]
1798 const PLACE_IN_BIN = ffi::GST_PARSE_FLAG_PLACE_IN_BIN as _;
1799 }
1800}
1801
1802#[doc(hidden)]
1803impl IntoGlib for ParseFlags {
1804 type GlibType = ffi::GstParseFlags;
1805
1806 #[inline]
1807 fn into_glib(self) -> ffi::GstParseFlags {
1808 self.bits()
1809 }
1810}
1811
1812#[doc(hidden)]
1813impl FromGlib<ffi::GstParseFlags> for ParseFlags {
1814 #[inline]
1815 unsafe fn from_glib(value: ffi::GstParseFlags) -> Self {
1816 skip_assert_initialized!();
1817 Self::from_bits_truncate(value)
1818 }
1819}
1820
1821impl StaticType for ParseFlags {
1822 #[inline]
1823 #[doc(alias = "gst_parse_flags_get_type")]
1824 fn static_type() -> glib::Type {
1825 unsafe { from_glib(ffi::gst_parse_flags_get_type()) }
1826 }
1827}
1828
1829impl glib::HasParamSpec for ParseFlags {
1830 type ParamSpec = glib::ParamSpecFlags;
1831 type SetValue = Self;
1832 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1833
1834 fn param_spec_builder() -> Self::BuilderFn {
1835 Self::ParamSpec::builder
1836 }
1837}
1838
1839impl glib::value::ValueType for ParseFlags {
1840 type Type = Self;
1841}
1842
1843unsafe impl<'a> glib::value::FromValue<'a> for ParseFlags {
1844 type Checker = glib::value::GenericValueTypeChecker<Self>;
1845
1846 #[inline]
1847 unsafe fn from_value(value: &'a glib::Value) -> Self {
1848 skip_assert_initialized!();
1849 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
1850 }
1851}
1852
1853impl ToValue for ParseFlags {
1854 #[inline]
1855 fn to_value(&self) -> glib::Value {
1856 let mut value = glib::Value::for_value_type::<Self>();
1857 unsafe {
1858 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1859 }
1860 value
1861 }
1862
1863 #[inline]
1864 fn value_type(&self) -> glib::Type {
1865 Self::static_type()
1866 }
1867}
1868
1869impl From<ParseFlags> for glib::Value {
1870 #[inline]
1871 fn from(v: ParseFlags) -> Self {
1872 skip_assert_initialized!();
1873 ToValue::to_value(&v)
1874 }
1875}
1876
1877bitflags! {
1878 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1879 #[doc(alias = "GstPipelineFlags")]
1880 pub struct PipelineFlags: u32 {
1881 #[doc(alias = "GST_PIPELINE_FLAG_FIXED_CLOCK")]
1882 const FIXED_CLOCK = ffi::GST_PIPELINE_FLAG_FIXED_CLOCK as _;
1883 }
1884}
1885
1886#[doc(hidden)]
1887impl IntoGlib for PipelineFlags {
1888 type GlibType = ffi::GstPipelineFlags;
1889
1890 #[inline]
1891 fn into_glib(self) -> ffi::GstPipelineFlags {
1892 self.bits()
1893 }
1894}
1895
1896#[doc(hidden)]
1897impl FromGlib<ffi::GstPipelineFlags> for PipelineFlags {
1898 #[inline]
1899 unsafe fn from_glib(value: ffi::GstPipelineFlags) -> Self {
1900 skip_assert_initialized!();
1901 Self::from_bits_truncate(value)
1902 }
1903}
1904
1905impl StaticType for PipelineFlags {
1906 #[inline]
1907 #[doc(alias = "gst_pipeline_flags_get_type")]
1908 fn static_type() -> glib::Type {
1909 unsafe { from_glib(ffi::gst_pipeline_flags_get_type()) }
1910 }
1911}
1912
1913impl glib::HasParamSpec for PipelineFlags {
1914 type ParamSpec = glib::ParamSpecFlags;
1915 type SetValue = Self;
1916 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1917
1918 fn param_spec_builder() -> Self::BuilderFn {
1919 Self::ParamSpec::builder
1920 }
1921}
1922
1923impl glib::value::ValueType for PipelineFlags {
1924 type Type = Self;
1925}
1926
1927unsafe impl<'a> glib::value::FromValue<'a> for PipelineFlags {
1928 type Checker = glib::value::GenericValueTypeChecker<Self>;
1929
1930 #[inline]
1931 unsafe fn from_value(value: &'a glib::Value) -> Self {
1932 skip_assert_initialized!();
1933 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
1934 }
1935}
1936
1937impl ToValue for PipelineFlags {
1938 #[inline]
1939 fn to_value(&self) -> glib::Value {
1940 let mut value = glib::Value::for_value_type::<Self>();
1941 unsafe {
1942 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1943 }
1944 value
1945 }
1946
1947 #[inline]
1948 fn value_type(&self) -> glib::Type {
1949 Self::static_type()
1950 }
1951}
1952
1953impl From<PipelineFlags> for glib::Value {
1954 #[inline]
1955 fn from(v: PipelineFlags) -> Self {
1956 skip_assert_initialized!();
1957 ToValue::to_value(&v)
1958 }
1959}
1960
1961#[cfg(feature = "v1_18")]
1962bitflags! {
1963 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1964 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1965 #[doc(alias = "GstPluginAPIFlags")]
1966 pub struct PluginAPIFlags: u32 {
1967 #[doc(alias = "GST_PLUGIN_API_FLAG_IGNORE_ENUM_MEMBERS")]
1968 const MEMBERS = ffi::GST_PLUGIN_API_FLAG_IGNORE_ENUM_MEMBERS as _;
1969 }
1970}
1971
1972#[cfg(feature = "v1_18")]
1973#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1974#[doc(hidden)]
1975impl IntoGlib for PluginAPIFlags {
1976 type GlibType = ffi::GstPluginAPIFlags;
1977
1978 #[inline]
1979 fn into_glib(self) -> ffi::GstPluginAPIFlags {
1980 self.bits()
1981 }
1982}
1983
1984#[cfg(feature = "v1_18")]
1985#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1986#[doc(hidden)]
1987impl FromGlib<ffi::GstPluginAPIFlags> for PluginAPIFlags {
1988 #[inline]
1989 unsafe fn from_glib(value: ffi::GstPluginAPIFlags) -> Self {
1990 skip_assert_initialized!();
1991 Self::from_bits_truncate(value)
1992 }
1993}
1994
1995#[cfg(feature = "v1_18")]
1996#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1997impl StaticType for PluginAPIFlags {
1998 #[inline]
1999 #[doc(alias = "gst_plugin_api_flags_get_type")]
2000 fn static_type() -> glib::Type {
2001 unsafe { from_glib(ffi::gst_plugin_api_flags_get_type()) }
2002 }
2003}
2004
2005#[cfg(feature = "v1_18")]
2006#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2007impl glib::HasParamSpec for PluginAPIFlags {
2008 type ParamSpec = glib::ParamSpecFlags;
2009 type SetValue = Self;
2010 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2011
2012 fn param_spec_builder() -> Self::BuilderFn {
2013 Self::ParamSpec::builder
2014 }
2015}
2016
2017#[cfg(feature = "v1_18")]
2018#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2019impl glib::value::ValueType for PluginAPIFlags {
2020 type Type = Self;
2021}
2022
2023#[cfg(feature = "v1_18")]
2024#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2025unsafe impl<'a> glib::value::FromValue<'a> for PluginAPIFlags {
2026 type Checker = glib::value::GenericValueTypeChecker<Self>;
2027
2028 #[inline]
2029 unsafe fn from_value(value: &'a glib::Value) -> Self {
2030 skip_assert_initialized!();
2031 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
2032 }
2033}
2034
2035#[cfg(feature = "v1_18")]
2036#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2037impl ToValue for PluginAPIFlags {
2038 #[inline]
2039 fn to_value(&self) -> glib::Value {
2040 let mut value = glib::Value::for_value_type::<Self>();
2041 unsafe {
2042 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2043 }
2044 value
2045 }
2046
2047 #[inline]
2048 fn value_type(&self) -> glib::Type {
2049 Self::static_type()
2050 }
2051}
2052
2053#[cfg(feature = "v1_18")]
2054#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2055impl From<PluginAPIFlags> for glib::Value {
2056 #[inline]
2057 fn from(v: PluginAPIFlags) -> Self {
2058 skip_assert_initialized!();
2059 ToValue::to_value(&v)
2060 }
2061}
2062
2063bitflags! {
2064 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2065 #[doc(alias = "GstPluginDependencyFlags")]
2066 pub struct PluginDependencyFlags: u32 {
2067 #[doc(alias = "GST_PLUGIN_DEPENDENCY_FLAG_RECURSE")]
2068 const RECURSE = ffi::GST_PLUGIN_DEPENDENCY_FLAG_RECURSE as _;
2069 #[doc(alias = "GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_DEFAULT_ONLY")]
2070 const PATHS_ARE_DEFAULT_ONLY = ffi::GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_DEFAULT_ONLY as _;
2071 #[doc(alias = "GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_SUFFIX")]
2072 const FILE_NAME_IS_SUFFIX = ffi::GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_SUFFIX as _;
2073 #[doc(alias = "GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_PREFIX")]
2074 const FILE_NAME_IS_PREFIX = ffi::GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_PREFIX as _;
2075 #[doc(alias = "GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_RELATIVE_TO_EXE")]
2076 const PATHS_ARE_RELATIVE_TO_EXE = ffi::GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_RELATIVE_TO_EXE as _;
2077 }
2078}
2079
2080#[doc(hidden)]
2081impl IntoGlib for PluginDependencyFlags {
2082 type GlibType = ffi::GstPluginDependencyFlags;
2083
2084 #[inline]
2085 fn into_glib(self) -> ffi::GstPluginDependencyFlags {
2086 self.bits()
2087 }
2088}
2089
2090#[doc(hidden)]
2091impl FromGlib<ffi::GstPluginDependencyFlags> for PluginDependencyFlags {
2092 #[inline]
2093 unsafe fn from_glib(value: ffi::GstPluginDependencyFlags) -> Self {
2094 skip_assert_initialized!();
2095 Self::from_bits_truncate(value)
2096 }
2097}
2098
2099impl StaticType for PluginDependencyFlags {
2100 #[inline]
2101 #[doc(alias = "gst_plugin_dependency_flags_get_type")]
2102 fn static_type() -> glib::Type {
2103 unsafe { from_glib(ffi::gst_plugin_dependency_flags_get_type()) }
2104 }
2105}
2106
2107impl glib::HasParamSpec for PluginDependencyFlags {
2108 type ParamSpec = glib::ParamSpecFlags;
2109 type SetValue = Self;
2110 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2111
2112 fn param_spec_builder() -> Self::BuilderFn {
2113 Self::ParamSpec::builder
2114 }
2115}
2116
2117impl glib::value::ValueType for PluginDependencyFlags {
2118 type Type = Self;
2119}
2120
2121unsafe impl<'a> glib::value::FromValue<'a> for PluginDependencyFlags {
2122 type Checker = glib::value::GenericValueTypeChecker<Self>;
2123
2124 #[inline]
2125 unsafe fn from_value(value: &'a glib::Value) -> Self {
2126 skip_assert_initialized!();
2127 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
2128 }
2129}
2130
2131impl ToValue for PluginDependencyFlags {
2132 #[inline]
2133 fn to_value(&self) -> glib::Value {
2134 let mut value = glib::Value::for_value_type::<Self>();
2135 unsafe {
2136 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2137 }
2138 value
2139 }
2140
2141 #[inline]
2142 fn value_type(&self) -> glib::Type {
2143 Self::static_type()
2144 }
2145}
2146
2147impl From<PluginDependencyFlags> for glib::Value {
2148 #[inline]
2149 fn from(v: PluginDependencyFlags) -> Self {
2150 skip_assert_initialized!();
2151 ToValue::to_value(&v)
2152 }
2153}
2154
2155bitflags! {
2156 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2157 #[doc(alias = "GstPluginFlags")]
2158 pub struct PluginFlags: u32 {
2159 #[doc(alias = "GST_PLUGIN_FLAG_CACHED")]
2160 const CACHED = ffi::GST_PLUGIN_FLAG_CACHED as _;
2161 #[doc(alias = "GST_PLUGIN_FLAG_BLACKLISTED")]
2162 const BLACKLISTED = ffi::GST_PLUGIN_FLAG_BLACKLISTED as _;
2163 }
2164}
2165
2166#[doc(hidden)]
2167impl IntoGlib for PluginFlags {
2168 type GlibType = ffi::GstPluginFlags;
2169
2170 #[inline]
2171 fn into_glib(self) -> ffi::GstPluginFlags {
2172 self.bits()
2173 }
2174}
2175
2176#[doc(hidden)]
2177impl FromGlib<ffi::GstPluginFlags> for PluginFlags {
2178 #[inline]
2179 unsafe fn from_glib(value: ffi::GstPluginFlags) -> Self {
2180 skip_assert_initialized!();
2181 Self::from_bits_truncate(value)
2182 }
2183}
2184
2185impl StaticType for PluginFlags {
2186 #[inline]
2187 #[doc(alias = "gst_plugin_flags_get_type")]
2188 fn static_type() -> glib::Type {
2189 unsafe { from_glib(ffi::gst_plugin_flags_get_type()) }
2190 }
2191}
2192
2193impl glib::HasParamSpec for PluginFlags {
2194 type ParamSpec = glib::ParamSpecFlags;
2195 type SetValue = Self;
2196 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2197
2198 fn param_spec_builder() -> Self::BuilderFn {
2199 Self::ParamSpec::builder
2200 }
2201}
2202
2203impl glib::value::ValueType for PluginFlags {
2204 type Type = Self;
2205}
2206
2207unsafe impl<'a> glib::value::FromValue<'a> for PluginFlags {
2208 type Checker = glib::value::GenericValueTypeChecker<Self>;
2209
2210 #[inline]
2211 unsafe fn from_value(value: &'a glib::Value) -> Self {
2212 skip_assert_initialized!();
2213 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
2214 }
2215}
2216
2217impl ToValue for PluginFlags {
2218 #[inline]
2219 fn to_value(&self) -> glib::Value {
2220 let mut value = glib::Value::for_value_type::<Self>();
2221 unsafe {
2222 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2223 }
2224 value
2225 }
2226
2227 #[inline]
2228 fn value_type(&self) -> glib::Type {
2229 Self::static_type()
2230 }
2231}
2232
2233impl From<PluginFlags> for glib::Value {
2234 #[inline]
2235 fn from(v: PluginFlags) -> Self {
2236 skip_assert_initialized!();
2237 ToValue::to_value(&v)
2238 }
2239}
2240
2241bitflags! {
2242 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2243 #[doc(alias = "GstSchedulingFlags")]
2244 pub struct SchedulingFlags: u32 {
2245 #[doc(alias = "GST_SCHEDULING_FLAG_SEEKABLE")]
2246 const SEEKABLE = ffi::GST_SCHEDULING_FLAG_SEEKABLE as _;
2247 #[doc(alias = "GST_SCHEDULING_FLAG_SEQUENTIAL")]
2248 const SEQUENTIAL = ffi::GST_SCHEDULING_FLAG_SEQUENTIAL as _;
2249 #[doc(alias = "GST_SCHEDULING_FLAG_BANDWIDTH_LIMITED")]
2250 const BANDWIDTH_LIMITED = ffi::GST_SCHEDULING_FLAG_BANDWIDTH_LIMITED as _;
2251 }
2252}
2253
2254#[doc(hidden)]
2255impl IntoGlib for SchedulingFlags {
2256 type GlibType = ffi::GstSchedulingFlags;
2257
2258 #[inline]
2259 fn into_glib(self) -> ffi::GstSchedulingFlags {
2260 self.bits()
2261 }
2262}
2263
2264#[doc(hidden)]
2265impl FromGlib<ffi::GstSchedulingFlags> for SchedulingFlags {
2266 #[inline]
2267 unsafe fn from_glib(value: ffi::GstSchedulingFlags) -> Self {
2268 skip_assert_initialized!();
2269 Self::from_bits_truncate(value)
2270 }
2271}
2272
2273impl StaticType for SchedulingFlags {
2274 #[inline]
2275 #[doc(alias = "gst_scheduling_flags_get_type")]
2276 fn static_type() -> glib::Type {
2277 unsafe { from_glib(ffi::gst_scheduling_flags_get_type()) }
2278 }
2279}
2280
2281impl glib::HasParamSpec for SchedulingFlags {
2282 type ParamSpec = glib::ParamSpecFlags;
2283 type SetValue = Self;
2284 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2285
2286 fn param_spec_builder() -> Self::BuilderFn {
2287 Self::ParamSpec::builder
2288 }
2289}
2290
2291impl glib::value::ValueType for SchedulingFlags {
2292 type Type = Self;
2293}
2294
2295unsafe impl<'a> glib::value::FromValue<'a> for SchedulingFlags {
2296 type Checker = glib::value::GenericValueTypeChecker<Self>;
2297
2298 #[inline]
2299 unsafe fn from_value(value: &'a glib::Value) -> Self {
2300 skip_assert_initialized!();
2301 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
2302 }
2303}
2304
2305impl ToValue for SchedulingFlags {
2306 #[inline]
2307 fn to_value(&self) -> glib::Value {
2308 let mut value = glib::Value::for_value_type::<Self>();
2309 unsafe {
2310 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2311 }
2312 value
2313 }
2314
2315 #[inline]
2316 fn value_type(&self) -> glib::Type {
2317 Self::static_type()
2318 }
2319}
2320
2321impl From<SchedulingFlags> for glib::Value {
2322 #[inline]
2323 fn from(v: SchedulingFlags) -> Self {
2324 skip_assert_initialized!();
2325 ToValue::to_value(&v)
2326 }
2327}
2328
2329bitflags! {
2330 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2331 #[doc(alias = "GstSeekFlags")]
2332 pub struct SeekFlags: u32 {
2333 #[doc(alias = "GST_SEEK_FLAG_FLUSH")]
2334 const FLUSH = ffi::GST_SEEK_FLAG_FLUSH as _;
2335 #[doc(alias = "GST_SEEK_FLAG_ACCURATE")]
2336 const ACCURATE = ffi::GST_SEEK_FLAG_ACCURATE as _;
2337 #[doc(alias = "GST_SEEK_FLAG_KEY_UNIT")]
2338 const KEY_UNIT = ffi::GST_SEEK_FLAG_KEY_UNIT as _;
2339 #[doc(alias = "GST_SEEK_FLAG_SEGMENT")]
2340 const SEGMENT = ffi::GST_SEEK_FLAG_SEGMENT as _;
2341 #[doc(alias = "GST_SEEK_FLAG_TRICKMODE")]
2342 const TRICKMODE = ffi::GST_SEEK_FLAG_TRICKMODE as _;
2343 #[doc(alias = "GST_SEEK_FLAG_SKIP")]
2344 const SKIP = ffi::GST_SEEK_FLAG_SKIP as _;
2345 #[doc(alias = "GST_SEEK_FLAG_SNAP_BEFORE")]
2346 const SNAP_BEFORE = ffi::GST_SEEK_FLAG_SNAP_BEFORE as _;
2347 #[doc(alias = "GST_SEEK_FLAG_SNAP_AFTER")]
2348 const SNAP_AFTER = ffi::GST_SEEK_FLAG_SNAP_AFTER as _;
2349 #[doc(alias = "GST_SEEK_FLAG_SNAP_NEAREST")]
2350 const SNAP_NEAREST = ffi::GST_SEEK_FLAG_SNAP_NEAREST as _;
2351 #[doc(alias = "GST_SEEK_FLAG_TRICKMODE_KEY_UNITS")]
2352 const TRICKMODE_KEY_UNITS = ffi::GST_SEEK_FLAG_TRICKMODE_KEY_UNITS as _;
2353 #[doc(alias = "GST_SEEK_FLAG_TRICKMODE_NO_AUDIO")]
2354 const TRICKMODE_NO_AUDIO = ffi::GST_SEEK_FLAG_TRICKMODE_NO_AUDIO as _;
2355 #[cfg(feature = "v1_18")]
2356 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2357 #[doc(alias = "GST_SEEK_FLAG_TRICKMODE_FORWARD_PREDICTED")]
2358 const TRICKMODE_FORWARD_PREDICTED = ffi::GST_SEEK_FLAG_TRICKMODE_FORWARD_PREDICTED as _;
2359 #[cfg(feature = "v1_18")]
2360 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2361 #[doc(alias = "GST_SEEK_FLAG_INSTANT_RATE_CHANGE")]
2362 const INSTANT_RATE_CHANGE = ffi::GST_SEEK_FLAG_INSTANT_RATE_CHANGE as _;
2363 }
2364}
2365
2366#[doc(hidden)]
2367impl IntoGlib for SeekFlags {
2368 type GlibType = ffi::GstSeekFlags;
2369
2370 #[inline]
2371 fn into_glib(self) -> ffi::GstSeekFlags {
2372 self.bits()
2373 }
2374}
2375
2376#[doc(hidden)]
2377impl FromGlib<ffi::GstSeekFlags> for SeekFlags {
2378 #[inline]
2379 unsafe fn from_glib(value: ffi::GstSeekFlags) -> Self {
2380 skip_assert_initialized!();
2381 Self::from_bits_truncate(value)
2382 }
2383}
2384
2385impl StaticType for SeekFlags {
2386 #[inline]
2387 #[doc(alias = "gst_seek_flags_get_type")]
2388 fn static_type() -> glib::Type {
2389 unsafe { from_glib(ffi::gst_seek_flags_get_type()) }
2390 }
2391}
2392
2393impl glib::HasParamSpec for SeekFlags {
2394 type ParamSpec = glib::ParamSpecFlags;
2395 type SetValue = Self;
2396 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2397
2398 fn param_spec_builder() -> Self::BuilderFn {
2399 Self::ParamSpec::builder
2400 }
2401}
2402
2403impl glib::value::ValueType for SeekFlags {
2404 type Type = Self;
2405}
2406
2407unsafe impl<'a> glib::value::FromValue<'a> for SeekFlags {
2408 type Checker = glib::value::GenericValueTypeChecker<Self>;
2409
2410 #[inline]
2411 unsafe fn from_value(value: &'a glib::Value) -> Self {
2412 skip_assert_initialized!();
2413 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
2414 }
2415}
2416
2417impl ToValue for SeekFlags {
2418 #[inline]
2419 fn to_value(&self) -> glib::Value {
2420 let mut value = glib::Value::for_value_type::<Self>();
2421 unsafe {
2422 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2423 }
2424 value
2425 }
2426
2427 #[inline]
2428 fn value_type(&self) -> glib::Type {
2429 Self::static_type()
2430 }
2431}
2432
2433impl From<SeekFlags> for glib::Value {
2434 #[inline]
2435 fn from(v: SeekFlags) -> Self {
2436 skip_assert_initialized!();
2437 ToValue::to_value(&v)
2438 }
2439}
2440
2441bitflags! {
2442 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2443 #[doc(alias = "GstSegmentFlags")]
2444 pub struct SegmentFlags: u32 {
2445 #[doc(alias = "GST_SEGMENT_FLAG_RESET")]
2446 const RESET = ffi::GST_SEGMENT_FLAG_RESET as _;
2447 #[doc(alias = "GST_SEGMENT_FLAG_TRICKMODE")]
2448 const TRICKMODE = ffi::GST_SEGMENT_FLAG_TRICKMODE as _;
2449 #[doc(alias = "GST_SEGMENT_FLAG_SKIP")]
2450 const SKIP = ffi::GST_SEGMENT_FLAG_SKIP as _;
2451 #[doc(alias = "GST_SEGMENT_FLAG_SEGMENT")]
2452 const SEGMENT = ffi::GST_SEGMENT_FLAG_SEGMENT as _;
2453 #[doc(alias = "GST_SEGMENT_FLAG_TRICKMODE_KEY_UNITS")]
2454 const TRICKMODE_KEY_UNITS = ffi::GST_SEGMENT_FLAG_TRICKMODE_KEY_UNITS as _;
2455 #[cfg(feature = "v1_18")]
2456 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2457 #[doc(alias = "GST_SEGMENT_FLAG_TRICKMODE_FORWARD_PREDICTED")]
2458 const TRICKMODE_FORWARD_PREDICTED = ffi::GST_SEGMENT_FLAG_TRICKMODE_FORWARD_PREDICTED as _;
2459 #[doc(alias = "GST_SEGMENT_FLAG_TRICKMODE_NO_AUDIO")]
2460 const TRICKMODE_NO_AUDIO = ffi::GST_SEGMENT_FLAG_TRICKMODE_NO_AUDIO as _;
2461 }
2462}
2463
2464#[doc(hidden)]
2465impl IntoGlib for SegmentFlags {
2466 type GlibType = ffi::GstSegmentFlags;
2467
2468 #[inline]
2469 fn into_glib(self) -> ffi::GstSegmentFlags {
2470 self.bits()
2471 }
2472}
2473
2474#[doc(hidden)]
2475impl FromGlib<ffi::GstSegmentFlags> for SegmentFlags {
2476 #[inline]
2477 unsafe fn from_glib(value: ffi::GstSegmentFlags) -> Self {
2478 skip_assert_initialized!();
2479 Self::from_bits_truncate(value)
2480 }
2481}
2482
2483impl StaticType for SegmentFlags {
2484 #[inline]
2485 #[doc(alias = "gst_segment_flags_get_type")]
2486 fn static_type() -> glib::Type {
2487 unsafe { from_glib(ffi::gst_segment_flags_get_type()) }
2488 }
2489}
2490
2491impl glib::HasParamSpec for SegmentFlags {
2492 type ParamSpec = glib::ParamSpecFlags;
2493 type SetValue = Self;
2494 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2495
2496 fn param_spec_builder() -> Self::BuilderFn {
2497 Self::ParamSpec::builder
2498 }
2499}
2500
2501impl glib::value::ValueType for SegmentFlags {
2502 type Type = Self;
2503}
2504
2505unsafe impl<'a> glib::value::FromValue<'a> for SegmentFlags {
2506 type Checker = glib::value::GenericValueTypeChecker<Self>;
2507
2508 #[inline]
2509 unsafe fn from_value(value: &'a glib::Value) -> Self {
2510 skip_assert_initialized!();
2511 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
2512 }
2513}
2514
2515impl ToValue for SegmentFlags {
2516 #[inline]
2517 fn to_value(&self) -> glib::Value {
2518 let mut value = glib::Value::for_value_type::<Self>();
2519 unsafe {
2520 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2521 }
2522 value
2523 }
2524
2525 #[inline]
2526 fn value_type(&self) -> glib::Type {
2527 Self::static_type()
2528 }
2529}
2530
2531impl From<SegmentFlags> for glib::Value {
2532 #[inline]
2533 fn from(v: SegmentFlags) -> Self {
2534 skip_assert_initialized!();
2535 ToValue::to_value(&v)
2536 }
2537}
2538
2539#[cfg(feature = "v1_20")]
2540bitflags! {
2541 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2542 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2543 #[doc(alias = "GstSerializeFlags")]
2544 pub struct SerializeFlags: u32 {
2545 #[doc(alias = "GST_SERIALIZE_FLAG_NONE")]
2546 const NONE = ffi::GST_SERIALIZE_FLAG_NONE as _;
2547 #[doc(alias = "GST_SERIALIZE_FLAG_BACKWARD_COMPAT")]
2548 const BACKWARD_COMPAT = ffi::GST_SERIALIZE_FLAG_BACKWARD_COMPAT as _;
2549 }
2550}
2551
2552#[cfg(feature = "v1_20")]
2553#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2554#[doc(hidden)]
2555impl IntoGlib for SerializeFlags {
2556 type GlibType = ffi::GstSerializeFlags;
2557
2558 #[inline]
2559 fn into_glib(self) -> ffi::GstSerializeFlags {
2560 self.bits()
2561 }
2562}
2563
2564#[cfg(feature = "v1_20")]
2565#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2566#[doc(hidden)]
2567impl FromGlib<ffi::GstSerializeFlags> for SerializeFlags {
2568 #[inline]
2569 unsafe fn from_glib(value: ffi::GstSerializeFlags) -> Self {
2570 skip_assert_initialized!();
2571 Self::from_bits_truncate(value)
2572 }
2573}
2574
2575#[cfg(feature = "v1_20")]
2576#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2577impl StaticType for SerializeFlags {
2578 #[inline]
2579 #[doc(alias = "gst_serialize_flags_get_type")]
2580 fn static_type() -> glib::Type {
2581 unsafe { from_glib(ffi::gst_serialize_flags_get_type()) }
2582 }
2583}
2584
2585#[cfg(feature = "v1_20")]
2586#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2587impl glib::HasParamSpec for SerializeFlags {
2588 type ParamSpec = glib::ParamSpecFlags;
2589 type SetValue = Self;
2590 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2591
2592 fn param_spec_builder() -> Self::BuilderFn {
2593 Self::ParamSpec::builder
2594 }
2595}
2596
2597#[cfg(feature = "v1_20")]
2598#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2599impl glib::value::ValueType for SerializeFlags {
2600 type Type = Self;
2601}
2602
2603#[cfg(feature = "v1_20")]
2604#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2605unsafe impl<'a> glib::value::FromValue<'a> for SerializeFlags {
2606 type Checker = glib::value::GenericValueTypeChecker<Self>;
2607
2608 #[inline]
2609 unsafe fn from_value(value: &'a glib::Value) -> Self {
2610 skip_assert_initialized!();
2611 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
2612 }
2613}
2614
2615#[cfg(feature = "v1_20")]
2616#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2617impl ToValue for SerializeFlags {
2618 #[inline]
2619 fn to_value(&self) -> glib::Value {
2620 let mut value = glib::Value::for_value_type::<Self>();
2621 unsafe {
2622 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2623 }
2624 value
2625 }
2626
2627 #[inline]
2628 fn value_type(&self) -> glib::Type {
2629 Self::static_type()
2630 }
2631}
2632
2633#[cfg(feature = "v1_20")]
2634#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2635impl From<SerializeFlags> for glib::Value {
2636 #[inline]
2637 fn from(v: SerializeFlags) -> Self {
2638 skip_assert_initialized!();
2639 ToValue::to_value(&v)
2640 }
2641}
2642
2643bitflags! {
2644 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2645 #[doc(alias = "GstStackTraceFlags")]
2646 pub struct StackTraceFlags: u32 {
2647 #[doc(alias = "GST_STACK_TRACE_SHOW_FULL")]
2648 const FULL = ffi::GST_STACK_TRACE_SHOW_FULL as _;
2649 }
2650}
2651
2652#[doc(hidden)]
2653impl IntoGlib for StackTraceFlags {
2654 type GlibType = ffi::GstStackTraceFlags;
2655
2656 #[inline]
2657 fn into_glib(self) -> ffi::GstStackTraceFlags {
2658 self.bits()
2659 }
2660}
2661
2662#[doc(hidden)]
2663impl FromGlib<ffi::GstStackTraceFlags> for StackTraceFlags {
2664 #[inline]
2665 unsafe fn from_glib(value: ffi::GstStackTraceFlags) -> Self {
2666 skip_assert_initialized!();
2667 Self::from_bits_truncate(value)
2668 }
2669}
2670
2671impl StaticType for StackTraceFlags {
2672 #[inline]
2673 #[doc(alias = "gst_stack_trace_flags_get_type")]
2674 fn static_type() -> glib::Type {
2675 unsafe { from_glib(ffi::gst_stack_trace_flags_get_type()) }
2676 }
2677}
2678
2679impl glib::HasParamSpec for StackTraceFlags {
2680 type ParamSpec = glib::ParamSpecFlags;
2681 type SetValue = Self;
2682 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2683
2684 fn param_spec_builder() -> Self::BuilderFn {
2685 Self::ParamSpec::builder
2686 }
2687}
2688
2689impl glib::value::ValueType for StackTraceFlags {
2690 type Type = Self;
2691}
2692
2693unsafe impl<'a> glib::value::FromValue<'a> for StackTraceFlags {
2694 type Checker = glib::value::GenericValueTypeChecker<Self>;
2695
2696 #[inline]
2697 unsafe fn from_value(value: &'a glib::Value) -> Self {
2698 skip_assert_initialized!();
2699 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
2700 }
2701}
2702
2703impl ToValue for StackTraceFlags {
2704 #[inline]
2705 fn to_value(&self) -> glib::Value {
2706 let mut value = glib::Value::for_value_type::<Self>();
2707 unsafe {
2708 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2709 }
2710 value
2711 }
2712
2713 #[inline]
2714 fn value_type(&self) -> glib::Type {
2715 Self::static_type()
2716 }
2717}
2718
2719impl From<StackTraceFlags> for glib::Value {
2720 #[inline]
2721 fn from(v: StackTraceFlags) -> Self {
2722 skip_assert_initialized!();
2723 ToValue::to_value(&v)
2724 }
2725}
2726
2727bitflags! {
2728 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2729 #[doc(alias = "GstStreamFlags")]
2730 pub struct StreamFlags: u32 {
2731 #[doc(alias = "GST_STREAM_FLAG_SPARSE")]
2732 const SPARSE = ffi::GST_STREAM_FLAG_SPARSE as _;
2733 #[doc(alias = "GST_STREAM_FLAG_SELECT")]
2734 const SELECT = ffi::GST_STREAM_FLAG_SELECT as _;
2735 #[doc(alias = "GST_STREAM_FLAG_UNSELECT")]
2736 const UNSELECT = ffi::GST_STREAM_FLAG_UNSELECT as _;
2737 }
2738}
2739
2740#[doc(hidden)]
2741impl IntoGlib for StreamFlags {
2742 type GlibType = ffi::GstStreamFlags;
2743
2744 #[inline]
2745 fn into_glib(self) -> ffi::GstStreamFlags {
2746 self.bits()
2747 }
2748}
2749
2750#[doc(hidden)]
2751impl FromGlib<ffi::GstStreamFlags> for StreamFlags {
2752 #[inline]
2753 unsafe fn from_glib(value: ffi::GstStreamFlags) -> Self {
2754 skip_assert_initialized!();
2755 Self::from_bits_truncate(value)
2756 }
2757}
2758
2759impl StaticType for StreamFlags {
2760 #[inline]
2761 #[doc(alias = "gst_stream_flags_get_type")]
2762 fn static_type() -> glib::Type {
2763 unsafe { from_glib(ffi::gst_stream_flags_get_type()) }
2764 }
2765}
2766
2767impl glib::HasParamSpec for StreamFlags {
2768 type ParamSpec = glib::ParamSpecFlags;
2769 type SetValue = Self;
2770 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2771
2772 fn param_spec_builder() -> Self::BuilderFn {
2773 Self::ParamSpec::builder
2774 }
2775}
2776
2777impl glib::value::ValueType for StreamFlags {
2778 type Type = Self;
2779}
2780
2781unsafe impl<'a> glib::value::FromValue<'a> for StreamFlags {
2782 type Checker = glib::value::GenericValueTypeChecker<Self>;
2783
2784 #[inline]
2785 unsafe fn from_value(value: &'a glib::Value) -> Self {
2786 skip_assert_initialized!();
2787 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
2788 }
2789}
2790
2791impl ToValue for StreamFlags {
2792 #[inline]
2793 fn to_value(&self) -> glib::Value {
2794 let mut value = glib::Value::for_value_type::<Self>();
2795 unsafe {
2796 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2797 }
2798 value
2799 }
2800
2801 #[inline]
2802 fn value_type(&self) -> glib::Type {
2803 Self::static_type()
2804 }
2805}
2806
2807impl From<StreamFlags> for glib::Value {
2808 #[inline]
2809 fn from(v: StreamFlags) -> Self {
2810 skip_assert_initialized!();
2811 ToValue::to_value(&v)
2812 }
2813}
2814
2815bitflags! {
2816 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2817 #[doc(alias = "GstStreamType")]
2818 pub struct StreamType: u32 {
2819 #[doc(alias = "GST_STREAM_TYPE_UNKNOWN")]
2820 const UNKNOWN = ffi::GST_STREAM_TYPE_UNKNOWN as _;
2821 #[doc(alias = "GST_STREAM_TYPE_AUDIO")]
2822 const AUDIO = ffi::GST_STREAM_TYPE_AUDIO as _;
2823 #[doc(alias = "GST_STREAM_TYPE_VIDEO")]
2824 const VIDEO = ffi::GST_STREAM_TYPE_VIDEO as _;
2825 #[doc(alias = "GST_STREAM_TYPE_CONTAINER")]
2826 const CONTAINER = ffi::GST_STREAM_TYPE_CONTAINER as _;
2827 #[doc(alias = "GST_STREAM_TYPE_TEXT")]
2828 const TEXT = ffi::GST_STREAM_TYPE_TEXT as _;
2829 }
2830}
2831
2832impl StreamType {
2833 pub fn name<'a>(self) -> &'a GStr {
2834 unsafe {
2835 GStr::from_ptr(
2836 ffi::gst_stream_type_get_name(self.into_glib())
2837 .as_ref()
2838 .expect("gst_stream_type_get_name returned NULL"),
2839 )
2840 }
2841 }
2842}
2843
2844impl std::fmt::Display for StreamType {
2845 #[inline]
2846 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
2847 f.write_str(&self.name())
2848 }
2849}
2850
2851#[doc(hidden)]
2852impl IntoGlib for StreamType {
2853 type GlibType = ffi::GstStreamType;
2854
2855 #[inline]
2856 fn into_glib(self) -> ffi::GstStreamType {
2857 self.bits()
2858 }
2859}
2860
2861#[doc(hidden)]
2862impl FromGlib<ffi::GstStreamType> for StreamType {
2863 #[inline]
2864 unsafe fn from_glib(value: ffi::GstStreamType) -> Self {
2865 skip_assert_initialized!();
2866 Self::from_bits_truncate(value)
2867 }
2868}
2869
2870impl StaticType for StreamType {
2871 #[inline]
2872 #[doc(alias = "gst_stream_type_get_type")]
2873 fn static_type() -> glib::Type {
2874 unsafe { from_glib(ffi::gst_stream_type_get_type()) }
2875 }
2876}
2877
2878impl glib::HasParamSpec for StreamType {
2879 type ParamSpec = glib::ParamSpecFlags;
2880 type SetValue = Self;
2881 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2882
2883 fn param_spec_builder() -> Self::BuilderFn {
2884 Self::ParamSpec::builder
2885 }
2886}
2887
2888impl glib::value::ValueType for StreamType {
2889 type Type = Self;
2890}
2891
2892unsafe impl<'a> glib::value::FromValue<'a> for StreamType {
2893 type Checker = glib::value::GenericValueTypeChecker<Self>;
2894
2895 #[inline]
2896 unsafe fn from_value(value: &'a glib::Value) -> Self {
2897 skip_assert_initialized!();
2898 from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
2899 }
2900}
2901
2902impl ToValue for StreamType {
2903 #[inline]
2904 fn to_value(&self) -> glib::Value {
2905 let mut value = glib::Value::for_value_type::<Self>();
2906 unsafe {
2907 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2908 }
2909 value
2910 }
2911
2912 #[inline]
2913 fn value_type(&self) -> glib::Type {
2914 Self::static_type()
2915 }
2916}
2917
2918impl From<StreamType> for glib::Value {
2919 #[inline]
2920 fn from(v: StreamType) -> Self {
2921 skip_assert_initialized!();
2922 ToValue::to_value(&v)
2923 }
2924}