1use crate::ffi;
7use glib::{bitflags::bitflags, prelude::*, translate::*};
8
9#[cfg(feature = "v1_22")]
10bitflags! {
11 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
12 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
13 #[doc(alias = "GstNavigationModifierType")]
14 pub struct NavigationModifierType: u32 {
15 #[doc(alias = "GST_NAVIGATION_MODIFIER_SHIFT_MASK")]
16 const SHIFT_MASK = ffi::GST_NAVIGATION_MODIFIER_SHIFT_MASK as _;
17 #[doc(alias = "GST_NAVIGATION_MODIFIER_LOCK_MASK")]
18 const LOCK_MASK = ffi::GST_NAVIGATION_MODIFIER_LOCK_MASK as _;
19 #[doc(alias = "GST_NAVIGATION_MODIFIER_CONTROL_MASK")]
20 const CONTROL_MASK = ffi::GST_NAVIGATION_MODIFIER_CONTROL_MASK as _;
21 #[doc(alias = "GST_NAVIGATION_MODIFIER_MOD1_MASK")]
22 const MOD1_MASK = ffi::GST_NAVIGATION_MODIFIER_MOD1_MASK as _;
23 #[doc(alias = "GST_NAVIGATION_MODIFIER_MOD2_MASK")]
24 const MOD2_MASK = ffi::GST_NAVIGATION_MODIFIER_MOD2_MASK as _;
25 #[doc(alias = "GST_NAVIGATION_MODIFIER_MOD3_MASK")]
26 const MOD3_MASK = ffi::GST_NAVIGATION_MODIFIER_MOD3_MASK as _;
27 #[doc(alias = "GST_NAVIGATION_MODIFIER_MOD4_MASK")]
28 const MOD4_MASK = ffi::GST_NAVIGATION_MODIFIER_MOD4_MASK as _;
29 #[doc(alias = "GST_NAVIGATION_MODIFIER_MOD5_MASK")]
30 const MOD5_MASK = ffi::GST_NAVIGATION_MODIFIER_MOD5_MASK as _;
31 #[doc(alias = "GST_NAVIGATION_MODIFIER_BUTTON1_MASK")]
32 const BUTTON1_MASK = ffi::GST_NAVIGATION_MODIFIER_BUTTON1_MASK as _;
33 #[doc(alias = "GST_NAVIGATION_MODIFIER_BUTTON2_MASK")]
34 const BUTTON2_MASK = ffi::GST_NAVIGATION_MODIFIER_BUTTON2_MASK as _;
35 #[doc(alias = "GST_NAVIGATION_MODIFIER_BUTTON3_MASK")]
36 const BUTTON3_MASK = ffi::GST_NAVIGATION_MODIFIER_BUTTON3_MASK as _;
37 #[doc(alias = "GST_NAVIGATION_MODIFIER_BUTTON4_MASK")]
38 const BUTTON4_MASK = ffi::GST_NAVIGATION_MODIFIER_BUTTON4_MASK as _;
39 #[doc(alias = "GST_NAVIGATION_MODIFIER_BUTTON5_MASK")]
40 const BUTTON5_MASK = ffi::GST_NAVIGATION_MODIFIER_BUTTON5_MASK as _;
41 #[doc(alias = "GST_NAVIGATION_MODIFIER_SUPER_MASK")]
42 const SUPER_MASK = ffi::GST_NAVIGATION_MODIFIER_SUPER_MASK as _;
43 #[doc(alias = "GST_NAVIGATION_MODIFIER_HYPER_MASK")]
44 const HYPER_MASK = ffi::GST_NAVIGATION_MODIFIER_HYPER_MASK as _;
45 #[doc(alias = "GST_NAVIGATION_MODIFIER_META_MASK")]
46 const META_MASK = ffi::GST_NAVIGATION_MODIFIER_META_MASK as _;
47 }
48}
49
50#[cfg(feature = "v1_22")]
51#[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
52#[doc(hidden)]
53impl IntoGlib for NavigationModifierType {
54 type GlibType = ffi::GstNavigationModifierType;
55
56 #[inline]
57 fn into_glib(self) -> ffi::GstNavigationModifierType {
58 self.bits()
59 }
60}
61
62#[cfg(feature = "v1_22")]
63#[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
64#[doc(hidden)]
65impl FromGlib<ffi::GstNavigationModifierType> for NavigationModifierType {
66 #[inline]
67 unsafe fn from_glib(value: ffi::GstNavigationModifierType) -> Self {
68 skip_assert_initialized!();
69 Self::from_bits_truncate(value)
70 }
71}
72
73#[cfg(feature = "v1_22")]
74#[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
75impl StaticType for NavigationModifierType {
76 #[inline]
77 #[doc(alias = "gst_navigation_modifier_type_get_type")]
78 fn static_type() -> glib::Type {
79 unsafe { from_glib(ffi::gst_navigation_modifier_type_get_type()) }
80 }
81}
82
83#[cfg(feature = "v1_22")]
84#[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
85impl glib::HasParamSpec for NavigationModifierType {
86 type ParamSpec = glib::ParamSpecFlags;
87 type SetValue = Self;
88 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
89
90 fn param_spec_builder() -> Self::BuilderFn {
91 Self::ParamSpec::builder
92 }
93}
94
95#[cfg(feature = "v1_22")]
96#[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
97impl glib::value::ValueType for NavigationModifierType {
98 type Type = Self;
99}
100
101#[cfg(feature = "v1_22")]
102#[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
103unsafe impl<'a> glib::value::FromValue<'a> for NavigationModifierType {
104 type Checker = glib::value::GenericValueTypeChecker<Self>;
105
106 #[inline]
107 unsafe fn from_value(value: &'a glib::Value) -> Self {
108 skip_assert_initialized!();
109 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
110 }
111}
112
113#[cfg(feature = "v1_22")]
114#[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
115impl ToValue for NavigationModifierType {
116 #[inline]
117 fn to_value(&self) -> glib::Value {
118 let mut value = glib::Value::for_value_type::<Self>();
119 unsafe {
120 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
121 }
122 value
123 }
124
125 #[inline]
126 fn value_type(&self) -> glib::Type {
127 Self::static_type()
128 }
129}
130
131#[cfg(feature = "v1_22")]
132#[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
133impl From<NavigationModifierType> for glib::Value {
134 #[inline]
135 fn from(v: NavigationModifierType) -> Self {
136 skip_assert_initialized!();
137 ToValue::to_value(&v)
138 }
139}
140
141bitflags! {
142 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
143 #[doc(alias = "GstVideoBufferFlags")]
144 pub struct VideoBufferFlags: u32 {
145 #[doc(alias = "GST_VIDEO_BUFFER_FLAG_INTERLACED")]
146 const INTERLACED = ffi::GST_VIDEO_BUFFER_FLAG_INTERLACED as _;
147 #[doc(alias = "GST_VIDEO_BUFFER_FLAG_TFF")]
148 const TFF = ffi::GST_VIDEO_BUFFER_FLAG_TFF as _;
149 #[doc(alias = "GST_VIDEO_BUFFER_FLAG_RFF")]
150 const RFF = ffi::GST_VIDEO_BUFFER_FLAG_RFF as _;
151 #[doc(alias = "GST_VIDEO_BUFFER_FLAG_ONEFIELD")]
152 const ONEFIELD = ffi::GST_VIDEO_BUFFER_FLAG_ONEFIELD as _;
153 #[doc(alias = "GST_VIDEO_BUFFER_FLAG_MULTIPLE_VIEW")]
154 const MULTIPLE_VIEW = ffi::GST_VIDEO_BUFFER_FLAG_MULTIPLE_VIEW as _;
155 #[doc(alias = "GST_VIDEO_BUFFER_FLAG_FIRST_IN_BUNDLE")]
156 const FIRST_IN_BUNDLE = ffi::GST_VIDEO_BUFFER_FLAG_FIRST_IN_BUNDLE as _;
157 #[cfg(feature = "v1_16")]
158 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
159 #[doc(alias = "GST_VIDEO_BUFFER_FLAG_TOP_FIELD")]
160 const TOP_FIELD = ffi::GST_VIDEO_BUFFER_FLAG_TOP_FIELD as _;
161 #[cfg(feature = "v1_16")]
162 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
163 #[doc(alias = "GST_VIDEO_BUFFER_FLAG_BOTTOM_FIELD")]
164 const BOTTOM_FIELD = ffi::GST_VIDEO_BUFFER_FLAG_BOTTOM_FIELD as _;
165 #[cfg(feature = "v1_18")]
166 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
167 #[doc(alias = "GST_VIDEO_BUFFER_FLAG_MARKER")]
168 const MARKER = ffi::GST_VIDEO_BUFFER_FLAG_MARKER as _;
169 }
170}
171
172#[doc(hidden)]
173impl IntoGlib for VideoBufferFlags {
174 type GlibType = ffi::GstVideoBufferFlags;
175
176 #[inline]
177 fn into_glib(self) -> ffi::GstVideoBufferFlags {
178 self.bits()
179 }
180}
181
182#[doc(hidden)]
183impl FromGlib<ffi::GstVideoBufferFlags> for VideoBufferFlags {
184 #[inline]
185 unsafe fn from_glib(value: ffi::GstVideoBufferFlags) -> Self {
186 skip_assert_initialized!();
187 Self::from_bits_truncate(value)
188 }
189}
190
191impl StaticType for VideoBufferFlags {
192 #[inline]
193 #[doc(alias = "gst_video_buffer_flags_get_type")]
194 fn static_type() -> glib::Type {
195 unsafe { from_glib(ffi::gst_video_buffer_flags_get_type()) }
196 }
197}
198
199impl glib::HasParamSpec for VideoBufferFlags {
200 type ParamSpec = glib::ParamSpecFlags;
201 type SetValue = Self;
202 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
203
204 fn param_spec_builder() -> Self::BuilderFn {
205 Self::ParamSpec::builder
206 }
207}
208
209impl glib::value::ValueType for VideoBufferFlags {
210 type Type = Self;
211}
212
213unsafe impl<'a> glib::value::FromValue<'a> for VideoBufferFlags {
214 type Checker = glib::value::GenericValueTypeChecker<Self>;
215
216 #[inline]
217 unsafe fn from_value(value: &'a glib::Value) -> Self {
218 skip_assert_initialized!();
219 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
220 }
221}
222
223impl ToValue for VideoBufferFlags {
224 #[inline]
225 fn to_value(&self) -> glib::Value {
226 let mut value = glib::Value::for_value_type::<Self>();
227 unsafe {
228 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
229 }
230 value
231 }
232
233 #[inline]
234 fn value_type(&self) -> glib::Type {
235 Self::static_type()
236 }
237}
238
239impl From<VideoBufferFlags> for glib::Value {
240 #[inline]
241 fn from(v: VideoBufferFlags) -> Self {
242 skip_assert_initialized!();
243 ToValue::to_value(&v)
244 }
245}
246
247bitflags! {
248 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
249 #[doc(alias = "GstVideoChromaSite")]
250 pub struct VideoChromaSite: u32 {
251 #[doc(alias = "GST_VIDEO_CHROMA_SITE_NONE")]
252 const NONE = ffi::GST_VIDEO_CHROMA_SITE_NONE as _;
253 #[doc(alias = "GST_VIDEO_CHROMA_SITE_H_COSITED")]
254 const H_COSITED = ffi::GST_VIDEO_CHROMA_SITE_H_COSITED as _;
255 #[doc(alias = "GST_VIDEO_CHROMA_SITE_V_COSITED")]
256 const V_COSITED = ffi::GST_VIDEO_CHROMA_SITE_V_COSITED as _;
257 #[doc(alias = "GST_VIDEO_CHROMA_SITE_ALT_LINE")]
258 const ALT_LINE = ffi::GST_VIDEO_CHROMA_SITE_ALT_LINE as _;
259 #[doc(alias = "GST_VIDEO_CHROMA_SITE_COSITED")]
260 const COSITED = ffi::GST_VIDEO_CHROMA_SITE_COSITED as _;
261 #[doc(alias = "GST_VIDEO_CHROMA_SITE_JPEG")]
262 const JPEG = ffi::GST_VIDEO_CHROMA_SITE_JPEG as _;
263 #[doc(alias = "GST_VIDEO_CHROMA_SITE_MPEG2")]
264 const MPEG2 = ffi::GST_VIDEO_CHROMA_SITE_MPEG2 as _;
265 #[doc(alias = "GST_VIDEO_CHROMA_SITE_DV")]
266 const DV = ffi::GST_VIDEO_CHROMA_SITE_DV as _;
267 }
268}
269
270impl VideoChromaSite {
271 #[cfg(feature = "v1_20")]
272 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
273 #[doc(alias = "gst_video_chroma_site_from_string")]
274 pub fn from_string(s: &str) -> VideoChromaSite {
275 assert_initialized_main_thread!();
276 unsafe { from_glib(ffi::gst_video_chroma_site_from_string(s.to_glib_none().0)) }
277 }
278}
279
280impl std::fmt::Display for VideoChromaSite {
281 #[inline]
282 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
283 f.write_str(&self.to_str())
284 }
285}
286
287#[doc(hidden)]
288impl IntoGlib for VideoChromaSite {
289 type GlibType = ffi::GstVideoChromaSite;
290
291 #[inline]
292 fn into_glib(self) -> ffi::GstVideoChromaSite {
293 self.bits()
294 }
295}
296
297#[doc(hidden)]
298impl FromGlib<ffi::GstVideoChromaSite> for VideoChromaSite {
299 #[inline]
300 unsafe fn from_glib(value: ffi::GstVideoChromaSite) -> Self {
301 skip_assert_initialized!();
302 Self::from_bits_truncate(value)
303 }
304}
305
306impl StaticType for VideoChromaSite {
307 #[inline]
308 #[doc(alias = "gst_video_chroma_site_get_type")]
309 fn static_type() -> glib::Type {
310 unsafe { from_glib(ffi::gst_video_chroma_site_get_type()) }
311 }
312}
313
314impl glib::HasParamSpec for VideoChromaSite {
315 type ParamSpec = glib::ParamSpecFlags;
316 type SetValue = Self;
317 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
318
319 fn param_spec_builder() -> Self::BuilderFn {
320 Self::ParamSpec::builder
321 }
322}
323
324impl glib::value::ValueType for VideoChromaSite {
325 type Type = Self;
326}
327
328unsafe impl<'a> glib::value::FromValue<'a> for VideoChromaSite {
329 type Checker = glib::value::GenericValueTypeChecker<Self>;
330
331 #[inline]
332 unsafe fn from_value(value: &'a glib::Value) -> Self {
333 skip_assert_initialized!();
334 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
335 }
336}
337
338impl ToValue for VideoChromaSite {
339 #[inline]
340 fn to_value(&self) -> glib::Value {
341 let mut value = glib::Value::for_value_type::<Self>();
342 unsafe {
343 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
344 }
345 value
346 }
347
348 #[inline]
349 fn value_type(&self) -> glib::Type {
350 Self::static_type()
351 }
352}
353
354impl From<VideoChromaSite> for glib::Value {
355 #[inline]
356 fn from(v: VideoChromaSite) -> Self {
357 skip_assert_initialized!();
358 ToValue::to_value(&v)
359 }
360}
361
362bitflags! {
363 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
364 #[doc(alias = "GstVideoCodecFrameFlags")]
365 pub struct VideoCodecFrameFlags: u32 {
366 #[doc(alias = "GST_VIDEO_CODEC_FRAME_FLAG_DECODE_ONLY")]
367 const DECODE_ONLY = ffi::GST_VIDEO_CODEC_FRAME_FLAG_DECODE_ONLY as _;
368 #[doc(alias = "GST_VIDEO_CODEC_FRAME_FLAG_SYNC_POINT")]
369 const SYNC_POINT = ffi::GST_VIDEO_CODEC_FRAME_FLAG_SYNC_POINT as _;
370 #[doc(alias = "GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME")]
371 const FORCE_KEYFRAME = ffi::GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME as _;
372 #[doc(alias = "GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME_HEADERS")]
373 const FORCE_KEYFRAME_HEADERS = ffi::GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME_HEADERS as _;
374 #[cfg(feature = "v1_20")]
375 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
376 #[doc(alias = "GST_VIDEO_CODEC_FRAME_FLAG_CORRUPTED")]
377 const CORRUPTED = ffi::GST_VIDEO_CODEC_FRAME_FLAG_CORRUPTED as _;
378 }
379}
380
381#[doc(hidden)]
382impl IntoGlib for VideoCodecFrameFlags {
383 type GlibType = ffi::GstVideoCodecFrameFlags;
384
385 #[inline]
386 fn into_glib(self) -> ffi::GstVideoCodecFrameFlags {
387 self.bits()
388 }
389}
390
391#[doc(hidden)]
392impl FromGlib<ffi::GstVideoCodecFrameFlags> for VideoCodecFrameFlags {
393 #[inline]
394 unsafe fn from_glib(value: ffi::GstVideoCodecFrameFlags) -> Self {
395 skip_assert_initialized!();
396 Self::from_bits_truncate(value)
397 }
398}
399
400#[cfg(feature = "v1_20")]
401#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
402impl StaticType for VideoCodecFrameFlags {
403 #[inline]
404 #[doc(alias = "gst_video_codec_frame_flags_get_type")]
405 fn static_type() -> glib::Type {
406 unsafe { from_glib(ffi::gst_video_codec_frame_flags_get_type()) }
407 }
408}
409
410#[cfg(feature = "v1_20")]
411#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
412impl glib::HasParamSpec for VideoCodecFrameFlags {
413 type ParamSpec = glib::ParamSpecFlags;
414 type SetValue = Self;
415 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
416
417 fn param_spec_builder() -> Self::BuilderFn {
418 Self::ParamSpec::builder
419 }
420}
421
422#[cfg(feature = "v1_20")]
423#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
424impl glib::value::ValueType for VideoCodecFrameFlags {
425 type Type = Self;
426}
427
428#[cfg(feature = "v1_20")]
429#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
430unsafe impl<'a> glib::value::FromValue<'a> for VideoCodecFrameFlags {
431 type Checker = glib::value::GenericValueTypeChecker<Self>;
432
433 #[inline]
434 unsafe fn from_value(value: &'a glib::Value) -> Self {
435 skip_assert_initialized!();
436 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
437 }
438}
439
440#[cfg(feature = "v1_20")]
441#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
442impl ToValue for VideoCodecFrameFlags {
443 #[inline]
444 fn to_value(&self) -> glib::Value {
445 let mut value = glib::Value::for_value_type::<Self>();
446 unsafe {
447 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
448 }
449 value
450 }
451
452 #[inline]
453 fn value_type(&self) -> glib::Type {
454 Self::static_type()
455 }
456}
457
458#[cfg(feature = "v1_20")]
459#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
460impl From<VideoCodecFrameFlags> for glib::Value {
461 #[inline]
462 fn from(v: VideoCodecFrameFlags) -> Self {
463 skip_assert_initialized!();
464 ToValue::to_value(&v)
465 }
466}
467
468#[cfg(feature = "v1_20")]
469bitflags! {
470 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
471 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
472 #[doc(alias = "GstVideoDecoderRequestSyncPointFlags")]
473 pub struct VideoDecoderRequestSyncPointFlags: u32 {
474 #[doc(alias = "GST_VIDEO_DECODER_REQUEST_SYNC_POINT_DISCARD_INPUT")]
475 const DISCARD_INPUT = ffi::GST_VIDEO_DECODER_REQUEST_SYNC_POINT_DISCARD_INPUT as _;
476 #[doc(alias = "GST_VIDEO_DECODER_REQUEST_SYNC_POINT_CORRUPT_OUTPUT")]
477 const CORRUPT_OUTPUT = ffi::GST_VIDEO_DECODER_REQUEST_SYNC_POINT_CORRUPT_OUTPUT as _;
478 }
479}
480
481#[cfg(feature = "v1_20")]
482#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
483#[doc(hidden)]
484impl IntoGlib for VideoDecoderRequestSyncPointFlags {
485 type GlibType = ffi::GstVideoDecoderRequestSyncPointFlags;
486
487 #[inline]
488 fn into_glib(self) -> ffi::GstVideoDecoderRequestSyncPointFlags {
489 self.bits()
490 }
491}
492
493#[cfg(feature = "v1_20")]
494#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
495#[doc(hidden)]
496impl FromGlib<ffi::GstVideoDecoderRequestSyncPointFlags> for VideoDecoderRequestSyncPointFlags {
497 #[inline]
498 unsafe fn from_glib(value: ffi::GstVideoDecoderRequestSyncPointFlags) -> Self {
499 skip_assert_initialized!();
500 Self::from_bits_truncate(value)
501 }
502}
503
504#[cfg(feature = "v1_20")]
505#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
506impl StaticType for VideoDecoderRequestSyncPointFlags {
507 #[inline]
508 #[doc(alias = "gst_video_decoder_request_sync_point_flags_get_type")]
509 fn static_type() -> glib::Type {
510 unsafe { from_glib(ffi::gst_video_decoder_request_sync_point_flags_get_type()) }
511 }
512}
513
514#[cfg(feature = "v1_20")]
515#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
516impl glib::HasParamSpec for VideoDecoderRequestSyncPointFlags {
517 type ParamSpec = glib::ParamSpecFlags;
518 type SetValue = Self;
519 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
520
521 fn param_spec_builder() -> Self::BuilderFn {
522 Self::ParamSpec::builder
523 }
524}
525
526#[cfg(feature = "v1_20")]
527#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
528impl glib::value::ValueType for VideoDecoderRequestSyncPointFlags {
529 type Type = Self;
530}
531
532#[cfg(feature = "v1_20")]
533#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
534unsafe impl<'a> glib::value::FromValue<'a> for VideoDecoderRequestSyncPointFlags {
535 type Checker = glib::value::GenericValueTypeChecker<Self>;
536
537 #[inline]
538 unsafe fn from_value(value: &'a glib::Value) -> Self {
539 skip_assert_initialized!();
540 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
541 }
542}
543
544#[cfg(feature = "v1_20")]
545#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
546impl ToValue for VideoDecoderRequestSyncPointFlags {
547 #[inline]
548 fn to_value(&self) -> glib::Value {
549 let mut value = glib::Value::for_value_type::<Self>();
550 unsafe {
551 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
552 }
553 value
554 }
555
556 #[inline]
557 fn value_type(&self) -> glib::Type {
558 Self::static_type()
559 }
560}
561
562#[cfg(feature = "v1_20")]
563#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
564impl From<VideoDecoderRequestSyncPointFlags> for glib::Value {
565 #[inline]
566 fn from(v: VideoDecoderRequestSyncPointFlags) -> Self {
567 skip_assert_initialized!();
568 ToValue::to_value(&v)
569 }
570}
571
572bitflags! {
573 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
574 #[doc(alias = "GstVideoFlags")]
575 pub struct VideoFlags: u32 {
576 #[doc(alias = "GST_VIDEO_FLAG_VARIABLE_FPS")]
577 const VARIABLE_FPS = ffi::GST_VIDEO_FLAG_VARIABLE_FPS as _;
578 #[doc(alias = "GST_VIDEO_FLAG_PREMULTIPLIED_ALPHA")]
579 const PREMULTIPLIED_ALPHA = ffi::GST_VIDEO_FLAG_PREMULTIPLIED_ALPHA as _;
580 }
581}
582
583#[doc(hidden)]
584impl IntoGlib for VideoFlags {
585 type GlibType = ffi::GstVideoFlags;
586
587 #[inline]
588 fn into_glib(self) -> ffi::GstVideoFlags {
589 self.bits()
590 }
591}
592
593#[doc(hidden)]
594impl FromGlib<ffi::GstVideoFlags> for VideoFlags {
595 #[inline]
596 unsafe fn from_glib(value: ffi::GstVideoFlags) -> Self {
597 skip_assert_initialized!();
598 Self::from_bits_truncate(value)
599 }
600}
601
602impl StaticType for VideoFlags {
603 #[inline]
604 #[doc(alias = "gst_video_flags_get_type")]
605 fn static_type() -> glib::Type {
606 unsafe { from_glib(ffi::gst_video_flags_get_type()) }
607 }
608}
609
610impl glib::HasParamSpec for VideoFlags {
611 type ParamSpec = glib::ParamSpecFlags;
612 type SetValue = Self;
613 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
614
615 fn param_spec_builder() -> Self::BuilderFn {
616 Self::ParamSpec::builder
617 }
618}
619
620impl glib::value::ValueType for VideoFlags {
621 type Type = Self;
622}
623
624unsafe impl<'a> glib::value::FromValue<'a> for VideoFlags {
625 type Checker = glib::value::GenericValueTypeChecker<Self>;
626
627 #[inline]
628 unsafe fn from_value(value: &'a glib::Value) -> Self {
629 skip_assert_initialized!();
630 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
631 }
632}
633
634impl ToValue for VideoFlags {
635 #[inline]
636 fn to_value(&self) -> glib::Value {
637 let mut value = glib::Value::for_value_type::<Self>();
638 unsafe {
639 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
640 }
641 value
642 }
643
644 #[inline]
645 fn value_type(&self) -> glib::Type {
646 Self::static_type()
647 }
648}
649
650impl From<VideoFlags> for glib::Value {
651 #[inline]
652 fn from(v: VideoFlags) -> Self {
653 skip_assert_initialized!();
654 ToValue::to_value(&v)
655 }
656}
657
658bitflags! {
659 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
660 #[doc(alias = "GstVideoFormatFlags")]
661 pub struct VideoFormatFlags: u32 {
662 #[doc(alias = "GST_VIDEO_FORMAT_FLAG_YUV")]
663 const YUV = ffi::GST_VIDEO_FORMAT_FLAG_YUV as _;
664 #[doc(alias = "GST_VIDEO_FORMAT_FLAG_RGB")]
665 const RGB = ffi::GST_VIDEO_FORMAT_FLAG_RGB as _;
666 #[doc(alias = "GST_VIDEO_FORMAT_FLAG_GRAY")]
667 const GRAY = ffi::GST_VIDEO_FORMAT_FLAG_GRAY as _;
668 #[doc(alias = "GST_VIDEO_FORMAT_FLAG_ALPHA")]
669 const ALPHA = ffi::GST_VIDEO_FORMAT_FLAG_ALPHA as _;
670 #[doc(alias = "GST_VIDEO_FORMAT_FLAG_LE")]
671 const LE = ffi::GST_VIDEO_FORMAT_FLAG_LE as _;
672 #[doc(alias = "GST_VIDEO_FORMAT_FLAG_PALETTE")]
673 const PALETTE = ffi::GST_VIDEO_FORMAT_FLAG_PALETTE as _;
674 #[doc(alias = "GST_VIDEO_FORMAT_FLAG_COMPLEX")]
675 const COMPLEX = ffi::GST_VIDEO_FORMAT_FLAG_COMPLEX as _;
676 #[doc(alias = "GST_VIDEO_FORMAT_FLAG_UNPACK")]
677 const UNPACK = ffi::GST_VIDEO_FORMAT_FLAG_UNPACK as _;
678 #[doc(alias = "GST_VIDEO_FORMAT_FLAG_TILED")]
679 const TILED = ffi::GST_VIDEO_FORMAT_FLAG_TILED as _;
680 #[cfg(feature = "v1_22")]
681 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
682 #[doc(alias = "GST_VIDEO_FORMAT_FLAG_SUBTILES")]
683 const SUBTILES = ffi::GST_VIDEO_FORMAT_FLAG_SUBTILES as _;
684 #[cfg(feature = "v1_30")]
685 #[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
686 #[doc(alias = "GST_VIDEO_FORMAT_FLAG_FLOAT")]
687 const FLOAT = ffi::GST_VIDEO_FORMAT_FLAG_FLOAT as _;
688 }
689}
690
691#[doc(hidden)]
692impl IntoGlib for VideoFormatFlags {
693 type GlibType = ffi::GstVideoFormatFlags;
694
695 #[inline]
696 fn into_glib(self) -> ffi::GstVideoFormatFlags {
697 self.bits()
698 }
699}
700
701#[doc(hidden)]
702impl FromGlib<ffi::GstVideoFormatFlags> for VideoFormatFlags {
703 #[inline]
704 unsafe fn from_glib(value: ffi::GstVideoFormatFlags) -> Self {
705 skip_assert_initialized!();
706 Self::from_bits_truncate(value)
707 }
708}
709
710impl StaticType for VideoFormatFlags {
711 #[inline]
712 #[doc(alias = "gst_video_format_flags_get_type")]
713 fn static_type() -> glib::Type {
714 unsafe { from_glib(ffi::gst_video_format_flags_get_type()) }
715 }
716}
717
718impl glib::HasParamSpec for VideoFormatFlags {
719 type ParamSpec = glib::ParamSpecFlags;
720 type SetValue = Self;
721 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
722
723 fn param_spec_builder() -> Self::BuilderFn {
724 Self::ParamSpec::builder
725 }
726}
727
728impl glib::value::ValueType for VideoFormatFlags {
729 type Type = Self;
730}
731
732unsafe impl<'a> glib::value::FromValue<'a> for VideoFormatFlags {
733 type Checker = glib::value::GenericValueTypeChecker<Self>;
734
735 #[inline]
736 unsafe fn from_value(value: &'a glib::Value) -> Self {
737 skip_assert_initialized!();
738 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
739 }
740}
741
742impl ToValue for VideoFormatFlags {
743 #[inline]
744 fn to_value(&self) -> glib::Value {
745 let mut value = glib::Value::for_value_type::<Self>();
746 unsafe {
747 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
748 }
749 value
750 }
751
752 #[inline]
753 fn value_type(&self) -> glib::Type {
754 Self::static_type()
755 }
756}
757
758impl From<VideoFormatFlags> for glib::Value {
759 #[inline]
760 fn from(v: VideoFormatFlags) -> Self {
761 skip_assert_initialized!();
762 ToValue::to_value(&v)
763 }
764}
765
766bitflags! {
767 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
768 #[doc(alias = "GstVideoFrameFlags")]
769 pub struct VideoFrameFlags: u32 {
770 #[doc(alias = "GST_VIDEO_FRAME_FLAG_INTERLACED")]
771 const INTERLACED = ffi::GST_VIDEO_FRAME_FLAG_INTERLACED as _;
772 #[doc(alias = "GST_VIDEO_FRAME_FLAG_TFF")]
773 const TFF = ffi::GST_VIDEO_FRAME_FLAG_TFF as _;
774 #[doc(alias = "GST_VIDEO_FRAME_FLAG_RFF")]
775 const RFF = ffi::GST_VIDEO_FRAME_FLAG_RFF as _;
776 #[doc(alias = "GST_VIDEO_FRAME_FLAG_ONEFIELD")]
777 const ONEFIELD = ffi::GST_VIDEO_FRAME_FLAG_ONEFIELD as _;
778 #[doc(alias = "GST_VIDEO_FRAME_FLAG_MULTIPLE_VIEW")]
779 const MULTIPLE_VIEW = ffi::GST_VIDEO_FRAME_FLAG_MULTIPLE_VIEW as _;
780 #[doc(alias = "GST_VIDEO_FRAME_FLAG_FIRST_IN_BUNDLE")]
781 const FIRST_IN_BUNDLE = ffi::GST_VIDEO_FRAME_FLAG_FIRST_IN_BUNDLE as _;
782 #[cfg(feature = "v1_16")]
783 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
784 #[doc(alias = "GST_VIDEO_FRAME_FLAG_TOP_FIELD")]
785 const TOP_FIELD = ffi::GST_VIDEO_FRAME_FLAG_TOP_FIELD as _;
786 #[cfg(feature = "v1_16")]
787 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
788 #[doc(alias = "GST_VIDEO_FRAME_FLAG_BOTTOM_FIELD")]
789 const BOTTOM_FIELD = ffi::GST_VIDEO_FRAME_FLAG_BOTTOM_FIELD as _;
790 }
791}
792
793#[doc(hidden)]
794impl IntoGlib for VideoFrameFlags {
795 type GlibType = ffi::GstVideoFrameFlags;
796
797 #[inline]
798 fn into_glib(self) -> ffi::GstVideoFrameFlags {
799 self.bits()
800 }
801}
802
803#[doc(hidden)]
804impl FromGlib<ffi::GstVideoFrameFlags> for VideoFrameFlags {
805 #[inline]
806 unsafe fn from_glib(value: ffi::GstVideoFrameFlags) -> Self {
807 skip_assert_initialized!();
808 Self::from_bits_truncate(value)
809 }
810}
811
812impl StaticType for VideoFrameFlags {
813 #[inline]
814 #[doc(alias = "gst_video_frame_flags_get_type")]
815 fn static_type() -> glib::Type {
816 unsafe { from_glib(ffi::gst_video_frame_flags_get_type()) }
817 }
818}
819
820impl glib::HasParamSpec for VideoFrameFlags {
821 type ParamSpec = glib::ParamSpecFlags;
822 type SetValue = Self;
823 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
824
825 fn param_spec_builder() -> Self::BuilderFn {
826 Self::ParamSpec::builder
827 }
828}
829
830impl glib::value::ValueType for VideoFrameFlags {
831 type Type = Self;
832}
833
834unsafe impl<'a> glib::value::FromValue<'a> for VideoFrameFlags {
835 type Checker = glib::value::GenericValueTypeChecker<Self>;
836
837 #[inline]
838 unsafe fn from_value(value: &'a glib::Value) -> Self {
839 skip_assert_initialized!();
840 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
841 }
842}
843
844impl ToValue for VideoFrameFlags {
845 #[inline]
846 fn to_value(&self) -> glib::Value {
847 let mut value = glib::Value::for_value_type::<Self>();
848 unsafe {
849 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
850 }
851 value
852 }
853
854 #[inline]
855 fn value_type(&self) -> glib::Type {
856 Self::static_type()
857 }
858}
859
860impl From<VideoFrameFlags> for glib::Value {
861 #[inline]
862 fn from(v: VideoFrameFlags) -> Self {
863 skip_assert_initialized!();
864 ToValue::to_value(&v)
865 }
866}
867
868bitflags! {
869 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
870 #[doc(alias = "GstVideoMultiviewFlags")]
871 pub struct VideoMultiviewFlags: u32 {
872 #[doc(alias = "GST_VIDEO_MULTIVIEW_FLAGS_RIGHT_VIEW_FIRST")]
873 const RIGHT_VIEW_FIRST = ffi::GST_VIDEO_MULTIVIEW_FLAGS_RIGHT_VIEW_FIRST as _;
874 #[doc(alias = "GST_VIDEO_MULTIVIEW_FLAGS_LEFT_FLIPPED")]
875 const LEFT_FLIPPED = ffi::GST_VIDEO_MULTIVIEW_FLAGS_LEFT_FLIPPED as _;
876 #[doc(alias = "GST_VIDEO_MULTIVIEW_FLAGS_LEFT_FLOPPED")]
877 const LEFT_FLOPPED = ffi::GST_VIDEO_MULTIVIEW_FLAGS_LEFT_FLOPPED as _;
878 #[doc(alias = "GST_VIDEO_MULTIVIEW_FLAGS_RIGHT_FLIPPED")]
879 const RIGHT_FLIPPED = ffi::GST_VIDEO_MULTIVIEW_FLAGS_RIGHT_FLIPPED as _;
880 #[doc(alias = "GST_VIDEO_MULTIVIEW_FLAGS_RIGHT_FLOPPED")]
881 const RIGHT_FLOPPED = ffi::GST_VIDEO_MULTIVIEW_FLAGS_RIGHT_FLOPPED as _;
882 #[doc(alias = "GST_VIDEO_MULTIVIEW_FLAGS_HALF_ASPECT")]
883 const HALF_ASPECT = ffi::GST_VIDEO_MULTIVIEW_FLAGS_HALF_ASPECT as _;
884 #[doc(alias = "GST_VIDEO_MULTIVIEW_FLAGS_MIXED_MONO")]
885 const MIXED_MONO = ffi::GST_VIDEO_MULTIVIEW_FLAGS_MIXED_MONO as _;
886 }
887}
888
889#[doc(hidden)]
890impl IntoGlib for VideoMultiviewFlags {
891 type GlibType = ffi::GstVideoMultiviewFlags;
892
893 #[inline]
894 fn into_glib(self) -> ffi::GstVideoMultiviewFlags {
895 self.bits()
896 }
897}
898
899#[doc(hidden)]
900impl FromGlib<ffi::GstVideoMultiviewFlags> for VideoMultiviewFlags {
901 #[inline]
902 unsafe fn from_glib(value: ffi::GstVideoMultiviewFlags) -> Self {
903 skip_assert_initialized!();
904 Self::from_bits_truncate(value)
905 }
906}
907
908impl StaticType for VideoMultiviewFlags {
909 #[inline]
910 #[doc(alias = "gst_video_multiview_flags_get_type")]
911 fn static_type() -> glib::Type {
912 unsafe { from_glib(ffi::gst_video_multiview_flags_get_type()) }
913 }
914}
915
916impl glib::HasParamSpec for VideoMultiviewFlags {
917 type ParamSpec = glib::ParamSpecFlags;
918 type SetValue = Self;
919 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
920
921 fn param_spec_builder() -> Self::BuilderFn {
922 Self::ParamSpec::builder
923 }
924}
925
926impl glib::value::ValueType for VideoMultiviewFlags {
927 type Type = Self;
928}
929
930unsafe impl<'a> glib::value::FromValue<'a> for VideoMultiviewFlags {
931 type Checker = glib::value::GenericValueTypeChecker<Self>;
932
933 #[inline]
934 unsafe fn from_value(value: &'a glib::Value) -> Self {
935 skip_assert_initialized!();
936 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
937 }
938}
939
940impl ToValue for VideoMultiviewFlags {
941 #[inline]
942 fn to_value(&self) -> glib::Value {
943 let mut value = glib::Value::for_value_type::<Self>();
944 unsafe {
945 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
946 }
947 value
948 }
949
950 #[inline]
951 fn value_type(&self) -> glib::Type {
952 Self::static_type()
953 }
954}
955
956impl From<VideoMultiviewFlags> for glib::Value {
957 #[inline]
958 fn from(v: VideoMultiviewFlags) -> Self {
959 skip_assert_initialized!();
960 ToValue::to_value(&v)
961 }
962}
963
964bitflags! {
965 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
966 #[doc(alias = "GstVideoOverlayFormatFlags")]
967 pub struct VideoOverlayFormatFlags: u32 {
968 #[doc(alias = "GST_VIDEO_OVERLAY_FORMAT_FLAG_PREMULTIPLIED_ALPHA")]
969 const PREMULTIPLIED_ALPHA = ffi::GST_VIDEO_OVERLAY_FORMAT_FLAG_PREMULTIPLIED_ALPHA as _;
970 #[doc(alias = "GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA")]
971 const GLOBAL_ALPHA = ffi::GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA as _;
972 }
973}
974
975#[doc(hidden)]
976impl IntoGlib for VideoOverlayFormatFlags {
977 type GlibType = ffi::GstVideoOverlayFormatFlags;
978
979 #[inline]
980 fn into_glib(self) -> ffi::GstVideoOverlayFormatFlags {
981 self.bits()
982 }
983}
984
985#[doc(hidden)]
986impl FromGlib<ffi::GstVideoOverlayFormatFlags> for VideoOverlayFormatFlags {
987 #[inline]
988 unsafe fn from_glib(value: ffi::GstVideoOverlayFormatFlags) -> Self {
989 skip_assert_initialized!();
990 Self::from_bits_truncate(value)
991 }
992}
993
994#[cfg(feature = "v1_16")]
995#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
996impl StaticType for VideoOverlayFormatFlags {
997 #[inline]
998 #[doc(alias = "gst_video_overlay_format_flags_get_type")]
999 fn static_type() -> glib::Type {
1000 unsafe { from_glib(ffi::gst_video_overlay_format_flags_get_type()) }
1001 }
1002}
1003
1004#[cfg(feature = "v1_16")]
1005#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1006impl glib::HasParamSpec for VideoOverlayFormatFlags {
1007 type ParamSpec = glib::ParamSpecFlags;
1008 type SetValue = Self;
1009 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1010
1011 fn param_spec_builder() -> Self::BuilderFn {
1012 Self::ParamSpec::builder
1013 }
1014}
1015
1016#[cfg(feature = "v1_16")]
1017#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1018impl glib::value::ValueType for VideoOverlayFormatFlags {
1019 type Type = Self;
1020}
1021
1022#[cfg(feature = "v1_16")]
1023#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1024unsafe impl<'a> glib::value::FromValue<'a> for VideoOverlayFormatFlags {
1025 type Checker = glib::value::GenericValueTypeChecker<Self>;
1026
1027 #[inline]
1028 unsafe fn from_value(value: &'a glib::Value) -> Self {
1029 skip_assert_initialized!();
1030 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
1031 }
1032}
1033
1034#[cfg(feature = "v1_16")]
1035#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1036impl ToValue for VideoOverlayFormatFlags {
1037 #[inline]
1038 fn to_value(&self) -> glib::Value {
1039 let mut value = glib::Value::for_value_type::<Self>();
1040 unsafe {
1041 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1042 }
1043 value
1044 }
1045
1046 #[inline]
1047 fn value_type(&self) -> glib::Type {
1048 Self::static_type()
1049 }
1050}
1051
1052#[cfg(feature = "v1_16")]
1053#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1054impl From<VideoOverlayFormatFlags> for glib::Value {
1055 #[inline]
1056 fn from(v: VideoOverlayFormatFlags) -> Self {
1057 skip_assert_initialized!();
1058 ToValue::to_value(&v)
1059 }
1060}
1061
1062bitflags! {
1063 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1064 #[doc(alias = "GstVideoPackFlags")]
1065 pub struct VideoPackFlags: u32 {
1066 #[doc(alias = "GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE")]
1067 const TRUNCATE_RANGE = ffi::GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE as _;
1068 #[doc(alias = "GST_VIDEO_PACK_FLAG_INTERLACED")]
1069 const INTERLACED = ffi::GST_VIDEO_PACK_FLAG_INTERLACED as _;
1070 }
1071}
1072
1073#[doc(hidden)]
1074impl IntoGlib for VideoPackFlags {
1075 type GlibType = ffi::GstVideoPackFlags;
1076
1077 #[inline]
1078 fn into_glib(self) -> ffi::GstVideoPackFlags {
1079 self.bits()
1080 }
1081}
1082
1083#[doc(hidden)]
1084impl FromGlib<ffi::GstVideoPackFlags> for VideoPackFlags {
1085 #[inline]
1086 unsafe fn from_glib(value: ffi::GstVideoPackFlags) -> Self {
1087 skip_assert_initialized!();
1088 Self::from_bits_truncate(value)
1089 }
1090}
1091
1092impl StaticType for VideoPackFlags {
1093 #[inline]
1094 #[doc(alias = "gst_video_pack_flags_get_type")]
1095 fn static_type() -> glib::Type {
1096 unsafe { from_glib(ffi::gst_video_pack_flags_get_type()) }
1097 }
1098}
1099
1100impl glib::HasParamSpec for VideoPackFlags {
1101 type ParamSpec = glib::ParamSpecFlags;
1102 type SetValue = Self;
1103 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1104
1105 fn param_spec_builder() -> Self::BuilderFn {
1106 Self::ParamSpec::builder
1107 }
1108}
1109
1110impl glib::value::ValueType for VideoPackFlags {
1111 type Type = Self;
1112}
1113
1114unsafe impl<'a> glib::value::FromValue<'a> for VideoPackFlags {
1115 type Checker = glib::value::GenericValueTypeChecker<Self>;
1116
1117 #[inline]
1118 unsafe fn from_value(value: &'a glib::Value) -> Self {
1119 skip_assert_initialized!();
1120 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
1121 }
1122}
1123
1124impl ToValue for VideoPackFlags {
1125 #[inline]
1126 fn to_value(&self) -> glib::Value {
1127 let mut value = glib::Value::for_value_type::<Self>();
1128 unsafe {
1129 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1130 }
1131 value
1132 }
1133
1134 #[inline]
1135 fn value_type(&self) -> glib::Type {
1136 Self::static_type()
1137 }
1138}
1139
1140impl From<VideoPackFlags> for glib::Value {
1141 #[inline]
1142 fn from(v: VideoPackFlags) -> Self {
1143 skip_assert_initialized!();
1144 ToValue::to_value(&v)
1145 }
1146}
1147
1148bitflags! {
1149 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1150 #[doc(alias = "GstVideoTimeCodeFlags")]
1151 pub struct VideoTimeCodeFlags: u32 {
1152 #[doc(alias = "GST_VIDEO_TIME_CODE_FLAGS_DROP_FRAME")]
1153 const DROP_FRAME = ffi::GST_VIDEO_TIME_CODE_FLAGS_DROP_FRAME as _;
1154 #[doc(alias = "GST_VIDEO_TIME_CODE_FLAGS_INTERLACED")]
1155 const INTERLACED = ffi::GST_VIDEO_TIME_CODE_FLAGS_INTERLACED as _;
1156 #[cfg(feature = "v1_30")]
1157 #[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
1158 #[doc(alias = "GST_VIDEO_TIME_CODE_FLAGS_DISCONT")]
1159 const DISCONT = ffi::GST_VIDEO_TIME_CODE_FLAGS_DISCONT as _;
1160 }
1161}
1162
1163#[doc(hidden)]
1164impl IntoGlib for VideoTimeCodeFlags {
1165 type GlibType = ffi::GstVideoTimeCodeFlags;
1166
1167 #[inline]
1168 fn into_glib(self) -> ffi::GstVideoTimeCodeFlags {
1169 self.bits()
1170 }
1171}
1172
1173#[doc(hidden)]
1174impl FromGlib<ffi::GstVideoTimeCodeFlags> for VideoTimeCodeFlags {
1175 #[inline]
1176 unsafe fn from_glib(value: ffi::GstVideoTimeCodeFlags) -> Self {
1177 skip_assert_initialized!();
1178 Self::from_bits_truncate(value)
1179 }
1180}
1181
1182#[cfg(feature = "v1_18")]
1183#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1184impl StaticType for VideoTimeCodeFlags {
1185 #[inline]
1186 #[doc(alias = "gst_video_time_code_flags_get_type")]
1187 fn static_type() -> glib::Type {
1188 unsafe { from_glib(ffi::gst_video_time_code_flags_get_type()) }
1189 }
1190}
1191
1192#[cfg(feature = "v1_18")]
1193#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1194impl glib::HasParamSpec for VideoTimeCodeFlags {
1195 type ParamSpec = glib::ParamSpecFlags;
1196 type SetValue = Self;
1197 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1198
1199 fn param_spec_builder() -> Self::BuilderFn {
1200 Self::ParamSpec::builder
1201 }
1202}
1203
1204#[cfg(feature = "v1_18")]
1205#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1206impl glib::value::ValueType for VideoTimeCodeFlags {
1207 type Type = Self;
1208}
1209
1210#[cfg(feature = "v1_18")]
1211#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1212unsafe impl<'a> glib::value::FromValue<'a> for VideoTimeCodeFlags {
1213 type Checker = glib::value::GenericValueTypeChecker<Self>;
1214
1215 #[inline]
1216 unsafe fn from_value(value: &'a glib::Value) -> Self {
1217 skip_assert_initialized!();
1218 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
1219 }
1220}
1221
1222#[cfg(feature = "v1_18")]
1223#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1224impl ToValue for VideoTimeCodeFlags {
1225 #[inline]
1226 fn to_value(&self) -> glib::Value {
1227 let mut value = glib::Value::for_value_type::<Self>();
1228 unsafe {
1229 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1230 }
1231 value
1232 }
1233
1234 #[inline]
1235 fn value_type(&self) -> glib::Type {
1236 Self::static_type()
1237 }
1238}
1239
1240#[cfg(feature = "v1_18")]
1241#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
1242impl From<VideoTimeCodeFlags> for glib::Value {
1243 #[inline]
1244 fn from(v: VideoTimeCodeFlags) -> Self {
1245 skip_assert_initialized!();
1246 ToValue::to_value(&v)
1247 }
1248}