1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
4// DO NOT EDIT
5
6use crate::{ffi, GLContext, GLSLProfile};
7use glib::{prelude::*, translate::*};
8
9#[cfg(feature = "v1_20")]
10#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
11#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
12#[non_exhaustive]
13#[doc(alias = "GstGLConfigCaveat")]
14pub enum GLConfigCaveat {
15 #[doc(alias = "GST_GL_CONFIG_CAVEAT_NONE")]
16 None,
17 #[doc(alias = "GST_GL_CONFIG_CAVEAT_SLOW")]
18 Slow,
19 #[doc(alias = "GST_GL_CONFIG_CAVEAT_NON_CONFORMANT")]
20 NonConformant,
21 #[doc(hidden)]
22 __Unknown(i32),
23}
24
25#[cfg(feature = "v1_20")]
26#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
27impl GLConfigCaveat {
28 #[doc(alias = "gst_gl_config_caveat_to_string")]
29 #[doc(alias = "to_string")]
30 pub fn to_str(self) -> Option<glib::GString> {
31 assert_initialized_main_thread!();
32 unsafe { from_glib_none(ffi::gst_gl_config_caveat_to_string(self.into_glib())) }
33 }
34}
35
36#[cfg(feature = "v1_20")]
37#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
38#[doc(hidden)]
39impl IntoGlib for GLConfigCaveat {
40 type GlibType = ffi::GstGLConfigCaveat;
41
42 #[inline]
43 fn into_glib(self) -> ffi::GstGLConfigCaveat {
44 match self {
45 Self::None => ffi::GST_GL_CONFIG_CAVEAT_NONE,
46 Self::Slow => ffi::GST_GL_CONFIG_CAVEAT_SLOW,
47 Self::NonConformant => ffi::GST_GL_CONFIG_CAVEAT_NON_CONFORMANT,
48 Self::__Unknown(value) => value,
49 }
50 }
51}
52
53#[cfg(feature = "v1_20")]
54#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
55#[doc(hidden)]
56impl FromGlib<ffi::GstGLConfigCaveat> for GLConfigCaveat {
57 #[inline]
58 unsafe fn from_glib(value: ffi::GstGLConfigCaveat) -> Self {
59 skip_assert_initialized!();
60
61 match value {
62 ffi::GST_GL_CONFIG_CAVEAT_NONE => Self::None,
63 ffi::GST_GL_CONFIG_CAVEAT_SLOW => Self::Slow,
64 ffi::GST_GL_CONFIG_CAVEAT_NON_CONFORMANT => Self::NonConformant,
65 value => Self::__Unknown(value),
66 }
67 }
68}
69
70#[cfg(feature = "v1_20")]
71#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
72impl StaticType for GLConfigCaveat {
73 #[inline]
74 #[doc(alias = "gst_gl_config_caveat_get_type")]
75 fn static_type() -> glib::Type {
76 unsafe { from_glib(ffi::gst_gl_config_caveat_get_type()) }
77 }
78}
79
80#[cfg(feature = "v1_20")]
81#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
82impl glib::HasParamSpec for GLConfigCaveat {
83 type ParamSpec = glib::ParamSpecEnum;
84 type SetValue = Self;
85 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
86
87 fn param_spec_builder() -> Self::BuilderFn {
88 Self::ParamSpec::builder_with_default
89 }
90}
91
92#[cfg(feature = "v1_20")]
93#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
94impl glib::value::ValueType for GLConfigCaveat {
95 type Type = Self;
96}
97
98#[cfg(feature = "v1_20")]
99#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
100unsafe impl<'a> glib::value::FromValue<'a> for GLConfigCaveat {
101 type Checker = glib::value::GenericValueTypeChecker<Self>;
102
103 #[inline]
104 unsafe fn from_value(value: &'a glib::Value) -> Self {
105 skip_assert_initialized!();
106 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
107 }
108}
109
110#[cfg(feature = "v1_20")]
111#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
112impl ToValue for GLConfigCaveat {
113 #[inline]
114 fn to_value(&self) -> glib::Value {
115 let mut value = glib::Value::for_value_type::<Self>();
116 unsafe {
117 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
118 }
119 value
120 }
121
122 #[inline]
123 fn value_type(&self) -> glib::Type {
124 Self::static_type()
125 }
126}
127
128#[cfg(feature = "v1_20")]
129#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
130impl From<GLConfigCaveat> for glib::Value {
131 #[inline]
132 fn from(v: GLConfigCaveat) -> Self {
133 skip_assert_initialized!();
134 ToValue::to_value(&v)
135 }
136}
137
138#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
139#[non_exhaustive]
140#[doc(alias = "GstGLContextError")]
141pub enum GLContextError {
142 #[doc(alias = "GST_GL_CONTEXT_ERROR_FAILED")]
143 Failed,
144 #[doc(alias = "GST_GL_CONTEXT_ERROR_WRONG_CONFIG")]
145 WrongConfig,
146 #[doc(alias = "GST_GL_CONTEXT_ERROR_WRONG_API")]
147 WrongApi,
148 #[doc(alias = "GST_GL_CONTEXT_ERROR_OLD_LIBS")]
149 OldLibs,
150 #[doc(alias = "GST_GL_CONTEXT_ERROR_CREATE_CONTEXT")]
151 CreateContext,
152 #[doc(alias = "GST_GL_CONTEXT_ERROR_RESOURCE_UNAVAILABLE")]
153 ResourceUnavailable,
154 #[doc(hidden)]
155 __Unknown(i32),
156}
157
158#[doc(hidden)]
159impl IntoGlib for GLContextError {
160 type GlibType = ffi::GstGLContextError;
161
162 #[inline]
163 fn into_glib(self) -> ffi::GstGLContextError {
164 match self {
165 Self::Failed => ffi::GST_GL_CONTEXT_ERROR_FAILED,
166 Self::WrongConfig => ffi::GST_GL_CONTEXT_ERROR_WRONG_CONFIG,
167 Self::WrongApi => ffi::GST_GL_CONTEXT_ERROR_WRONG_API,
168 Self::OldLibs => ffi::GST_GL_CONTEXT_ERROR_OLD_LIBS,
169 Self::CreateContext => ffi::GST_GL_CONTEXT_ERROR_CREATE_CONTEXT,
170 Self::ResourceUnavailable => ffi::GST_GL_CONTEXT_ERROR_RESOURCE_UNAVAILABLE,
171 Self::__Unknown(value: i32) => value,
172 }
173 }
174}
175
176#[doc(hidden)]
177impl FromGlib<ffi::GstGLContextError> for GLContextError {
178 #[inline]
179 unsafe fn from_glib(value: ffi::GstGLContextError) -> Self {
180 skip_assert_initialized!();
181
182 match value {
183 ffi::GST_GL_CONTEXT_ERROR_FAILED => Self::Failed,
184 ffi::GST_GL_CONTEXT_ERROR_WRONG_CONFIG => Self::WrongConfig,
185 ffi::GST_GL_CONTEXT_ERROR_WRONG_API => Self::WrongApi,
186 ffi::GST_GL_CONTEXT_ERROR_OLD_LIBS => Self::OldLibs,
187 ffi::GST_GL_CONTEXT_ERROR_CREATE_CONTEXT => Self::CreateContext,
188 ffi::GST_GL_CONTEXT_ERROR_RESOURCE_UNAVAILABLE => Self::ResourceUnavailable,
189 value: i32 => Self::__Unknown(value),
190 }
191 }
192}
193
194impl glib::error::ErrorDomain for GLContextError {
195 #[inline]
196 fn domain() -> glib::Quark {
197 skip_assert_initialized!();
198
199 unsafe { from_glib(val:ffi::gst_gl_context_error_quark()) }
200 }
201
202 #[inline]
203 fn code(self) -> i32 {
204 self.into_glib()
205 }
206
207 #[inline]
208 #[allow(clippy::match_single_binding)]
209 fn from(code: i32) -> Option<Self> {
210 skip_assert_initialized!();
211 match unsafe { from_glib(val:code) } {
212 Self::__Unknown(_) => Some(Self::Failed),
213 value: GLContextError => Some(value),
214 }
215 }
216}
217
218impl StaticType for GLContextError {
219 #[inline]
220 #[doc(alias = "gst_gl_context_error_get_type")]
221 fn static_type() -> glib::Type {
222 unsafe { from_glib(val:ffi::gst_gl_context_error_get_type()) }
223 }
224}
225
226impl glib::HasParamSpec for GLContextError {
227 type ParamSpec = glib::ParamSpecEnum;
228 type SetValue = Self;
229 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
230
231 fn param_spec_builder() -> Self::BuilderFn {
232 Self::ParamSpec::builder_with_default
233 }
234}
235
236impl glib::value::ValueType for GLContextError {
237 type Type = Self;
238}
239
240unsafe impl<'a> glib::value::FromValue<'a> for GLContextError {
241 type Checker = glib::value::GenericValueTypeChecker<Self>;
242
243 #[inline]
244 unsafe fn from_value(value: &'a glib::Value) -> Self {
245 skip_assert_initialized!();
246 from_glib(val:glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
247 }
248}
249
250impl ToValue for GLContextError {
251 #[inline]
252 fn to_value(&self) -> glib::Value {
253 let mut value: Value = glib::Value::for_value_type::<Self>();
254 unsafe {
255 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
256 }
257 value
258 }
259
260 #[inline]
261 fn value_type(&self) -> glib::Type {
262 Self::static_type()
263 }
264}
265
266impl From<GLContextError> for glib::Value {
267 #[inline]
268 fn from(v: GLContextError) -> Self {
269 skip_assert_initialized!();
270 ToValue::to_value(&v)
271 }
272}
273
274#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
275#[non_exhaustive]
276#[doc(alias = "GstGLFormat")]
277pub enum GLFormat {
278 #[doc(alias = "GST_GL_LUMINANCE")]
279 Luminance,
280 #[doc(alias = "GST_GL_ALPHA")]
281 Alpha,
282 #[doc(alias = "GST_GL_LUMINANCE_ALPHA")]
283 LuminanceAlpha,
284 #[doc(alias = "GST_GL_RED")]
285 Red,
286 #[doc(alias = "GST_GL_R8")]
287 R8,
288 #[doc(alias = "GST_GL_RG")]
289 Rg,
290 #[doc(alias = "GST_GL_RG8")]
291 Rg8,
292 #[doc(alias = "GST_GL_RGB")]
293 Rgb,
294 #[doc(alias = "GST_GL_RGB8")]
295 Rgb8,
296 #[doc(alias = "GST_GL_RGB565")]
297 Rgb565,
298 #[doc(alias = "GST_GL_RGB16")]
299 Rgb16,
300 #[doc(alias = "GST_GL_RGBA")]
301 Rgba,
302 #[doc(alias = "GST_GL_RGBA8")]
303 Rgba8,
304 #[doc(alias = "GST_GL_RGBA16")]
305 Rgba16,
306 #[doc(alias = "GST_GL_DEPTH_COMPONENT16")]
307 DepthComponent16,
308 #[doc(alias = "GST_GL_DEPTH24_STENCIL8")]
309 Depth24Stencil8,
310 #[doc(alias = "GST_GL_RGB10_A2")]
311 Rgb10A2,
312 #[doc(alias = "GST_GL_R16")]
313 R16,
314 #[doc(alias = "GST_GL_RG16")]
315 Rg16,
316 #[doc(hidden)]
317 __Unknown(i32),
318}
319
320impl GLFormat {
321 #[doc(alias = "gst_gl_format_from_video_info")]
322 pub fn from_video_info(
323 context: &impl IsA<GLContext>,
324 vinfo: &gst_video::VideoInfo,
325 plane: u32,
326 ) -> GLFormat {
327 skip_assert_initialized!();
328 unsafe {
329 from_glib(ffi::gst_gl_format_from_video_info(
330 context.as_ref().to_glib_none().0,
331 vinfo.to_glib_none().0,
332 plane,
333 ))
334 }
335 }
336
337 #[cfg(feature = "v1_16")]
338 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
339 #[doc(alias = "gst_gl_format_is_supported")]
340 pub fn is_supported(context: &impl IsA<GLContext>, format: GLFormat) -> bool {
341 skip_assert_initialized!();
342 unsafe {
343 from_glib(ffi::gst_gl_format_is_supported(
344 context.as_ref().to_glib_none().0,
345 format.into_glib(),
346 ))
347 }
348 }
349
350 #[cfg(feature = "v1_24")]
351 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
352 #[doc(alias = "gst_gl_format_n_components")]
353 pub fn n_components(self) -> u32 {
354 assert_initialized_main_thread!();
355 unsafe { ffi::gst_gl_format_n_components(self.into_glib()) }
356 }
357
358 #[cfg(feature = "v1_16")]
359 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
360 #[doc(alias = "gst_gl_format_type_from_sized_gl_format")]
361 pub fn type_from_sized_gl_format(self) -> (GLFormat, u32) {
362 assert_initialized_main_thread!();
363 unsafe {
364 let mut unsized_format = std::mem::MaybeUninit::uninit();
365 let mut gl_type = std::mem::MaybeUninit::uninit();
366 ffi::gst_gl_format_type_from_sized_gl_format(
367 self.into_glib(),
368 unsized_format.as_mut_ptr(),
369 gl_type.as_mut_ptr(),
370 );
371 (
372 from_glib(unsized_format.assume_init()),
373 gl_type.assume_init(),
374 )
375 }
376 }
377
378 #[doc(alias = "gst_gl_format_type_n_bytes")]
379 pub fn type_n_bytes(format: u32, type_: u32) -> u32 {
380 assert_initialized_main_thread!();
381 unsafe { ffi::gst_gl_format_type_n_bytes(format, type_) }
382 }
383}
384
385#[doc(hidden)]
386impl IntoGlib for GLFormat {
387 type GlibType = ffi::GstGLFormat;
388
389 fn into_glib(self) -> ffi::GstGLFormat {
390 match self {
391 Self::Luminance => ffi::GST_GL_LUMINANCE,
392 Self::Alpha => ffi::GST_GL_ALPHA,
393 Self::LuminanceAlpha => ffi::GST_GL_LUMINANCE_ALPHA,
394 Self::Red => ffi::GST_GL_RED,
395 Self::R8 => ffi::GST_GL_R8,
396 Self::Rg => ffi::GST_GL_RG,
397 Self::Rg8 => ffi::GST_GL_RG8,
398 Self::Rgb => ffi::GST_GL_RGB,
399 Self::Rgb8 => ffi::GST_GL_RGB8,
400 Self::Rgb565 => ffi::GST_GL_RGB565,
401 Self::Rgb16 => ffi::GST_GL_RGB16,
402 Self::Rgba => ffi::GST_GL_RGBA,
403 Self::Rgba8 => ffi::GST_GL_RGBA8,
404 Self::Rgba16 => ffi::GST_GL_RGBA16,
405 Self::DepthComponent16 => ffi::GST_GL_DEPTH_COMPONENT16,
406 Self::Depth24Stencil8 => ffi::GST_GL_DEPTH24_STENCIL8,
407 Self::Rgb10A2 => ffi::GST_GL_RGB10_A2,
408 Self::R16 => ffi::GST_GL_R16,
409 Self::Rg16 => ffi::GST_GL_RG16,
410 Self::__Unknown(value) => value,
411 }
412 }
413}
414
415#[doc(hidden)]
416impl FromGlib<ffi::GstGLFormat> for GLFormat {
417 unsafe fn from_glib(value: ffi::GstGLFormat) -> Self {
418 skip_assert_initialized!();
419
420 match value {
421 ffi::GST_GL_LUMINANCE => Self::Luminance,
422 ffi::GST_GL_ALPHA => Self::Alpha,
423 ffi::GST_GL_LUMINANCE_ALPHA => Self::LuminanceAlpha,
424 ffi::GST_GL_RED => Self::Red,
425 ffi::GST_GL_R8 => Self::R8,
426 ffi::GST_GL_RG => Self::Rg,
427 ffi::GST_GL_RG8 => Self::Rg8,
428 ffi::GST_GL_RGB => Self::Rgb,
429 ffi::GST_GL_RGB8 => Self::Rgb8,
430 ffi::GST_GL_RGB565 => Self::Rgb565,
431 ffi::GST_GL_RGB16 => Self::Rgb16,
432 ffi::GST_GL_RGBA => Self::Rgba,
433 ffi::GST_GL_RGBA8 => Self::Rgba8,
434 ffi::GST_GL_RGBA16 => Self::Rgba16,
435 ffi::GST_GL_DEPTH_COMPONENT16 => Self::DepthComponent16,
436 ffi::GST_GL_DEPTH24_STENCIL8 => Self::Depth24Stencil8,
437 ffi::GST_GL_RGB10_A2 => Self::Rgb10A2,
438 ffi::GST_GL_R16 => Self::R16,
439 ffi::GST_GL_RG16 => Self::Rg16,
440 value => Self::__Unknown(value),
441 }
442 }
443}
444
445impl StaticType for GLFormat {
446 #[inline]
447 #[doc(alias = "gst_gl_format_get_type")]
448 fn static_type() -> glib::Type {
449 unsafe { from_glib(val:ffi::gst_gl_format_get_type()) }
450 }
451}
452
453impl glib::HasParamSpec for GLFormat {
454 type ParamSpec = glib::ParamSpecEnum;
455 type SetValue = Self;
456 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
457
458 fn param_spec_builder() -> Self::BuilderFn {
459 Self::ParamSpec::builder_with_default
460 }
461}
462
463impl glib::value::ValueType for GLFormat {
464 type Type = Self;
465}
466
467unsafe impl<'a> glib::value::FromValue<'a> for GLFormat {
468 type Checker = glib::value::GenericValueTypeChecker<Self>;
469
470 #[inline]
471 unsafe fn from_value(value: &'a glib::Value) -> Self {
472 skip_assert_initialized!();
473 from_glib(val:glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
474 }
475}
476
477impl ToValue for GLFormat {
478 #[inline]
479 fn to_value(&self) -> glib::Value {
480 let mut value: Value = glib::Value::for_value_type::<Self>();
481 unsafe {
482 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
483 }
484 value
485 }
486
487 #[inline]
488 fn value_type(&self) -> glib::Type {
489 Self::static_type()
490 }
491}
492
493impl From<GLFormat> for glib::Value {
494 #[inline]
495 fn from(v: GLFormat) -> Self {
496 skip_assert_initialized!();
497 ToValue::to_value(&v)
498 }
499}
500
501#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
502#[non_exhaustive]
503#[doc(alias = "GstGLQueryType")]
504pub enum GLQueryType {
505 #[doc(alias = "GST_GL_QUERY_NONE")]
506 None,
507 #[doc(alias = "GST_GL_QUERY_TIME_ELAPSED")]
508 TimeElapsed,
509 #[doc(alias = "GST_GL_QUERY_TIMESTAMP")]
510 Timestamp,
511 #[doc(hidden)]
512 __Unknown(i32),
513}
514
515#[doc(hidden)]
516impl IntoGlib for GLQueryType {
517 type GlibType = ffi::GstGLQueryType;
518
519 #[inline]
520 fn into_glib(self) -> ffi::GstGLQueryType {
521 match self {
522 Self::None => ffi::GST_GL_QUERY_NONE,
523 Self::TimeElapsed => ffi::GST_GL_QUERY_TIME_ELAPSED,
524 Self::Timestamp => ffi::GST_GL_QUERY_TIMESTAMP,
525 Self::__Unknown(value: i32) => value,
526 }
527 }
528}
529
530#[doc(hidden)]
531impl FromGlib<ffi::GstGLQueryType> for GLQueryType {
532 #[inline]
533 unsafe fn from_glib(value: ffi::GstGLQueryType) -> Self {
534 skip_assert_initialized!();
535
536 match value {
537 ffi::GST_GL_QUERY_NONE => Self::None,
538 ffi::GST_GL_QUERY_TIME_ELAPSED => Self::TimeElapsed,
539 ffi::GST_GL_QUERY_TIMESTAMP => Self::Timestamp,
540 value: i32 => Self::__Unknown(value),
541 }
542 }
543}
544
545impl StaticType for GLQueryType {
546 #[inline]
547 #[doc(alias = "gst_gl_query_type_get_type")]
548 fn static_type() -> glib::Type {
549 unsafe { from_glib(val:ffi::gst_gl_query_type_get_type()) }
550 }
551}
552
553impl glib::HasParamSpec for GLQueryType {
554 type ParamSpec = glib::ParamSpecEnum;
555 type SetValue = Self;
556 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
557
558 fn param_spec_builder() -> Self::BuilderFn {
559 Self::ParamSpec::builder_with_default
560 }
561}
562
563impl glib::value::ValueType for GLQueryType {
564 type Type = Self;
565}
566
567unsafe impl<'a> glib::value::FromValue<'a> for GLQueryType {
568 type Checker = glib::value::GenericValueTypeChecker<Self>;
569
570 #[inline]
571 unsafe fn from_value(value: &'a glib::Value) -> Self {
572 skip_assert_initialized!();
573 from_glib(val:glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
574 }
575}
576
577impl ToValue for GLQueryType {
578 #[inline]
579 fn to_value(&self) -> glib::Value {
580 let mut value: Value = glib::Value::for_value_type::<Self>();
581 unsafe {
582 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
583 }
584 value
585 }
586
587 #[inline]
588 fn value_type(&self) -> glib::Type {
589 Self::static_type()
590 }
591}
592
593impl From<GLQueryType> for glib::Value {
594 #[inline]
595 fn from(v: GLQueryType) -> Self {
596 skip_assert_initialized!();
597 ToValue::to_value(&v)
598 }
599}
600
601#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
602#[non_exhaustive]
603#[doc(alias = "GstGLSLError")]
604pub enum GLSLError {
605 #[doc(alias = "GST_GLSL_ERROR_COMPILE")]
606 Compile,
607 #[doc(alias = "GST_GLSL_ERROR_LINK")]
608 Link,
609 #[doc(alias = "GST_GLSL_ERROR_PROGRAM")]
610 Program,
611 #[doc(hidden)]
612 __Unknown(i32),
613}
614
615#[doc(hidden)]
616impl IntoGlib for GLSLError {
617 type GlibType = ffi::GstGLSLError;
618
619 #[inline]
620 fn into_glib(self) -> ffi::GstGLSLError {
621 match self {
622 Self::Compile => ffi::GST_GLSL_ERROR_COMPILE,
623 Self::Link => ffi::GST_GLSL_ERROR_LINK,
624 Self::Program => ffi::GST_GLSL_ERROR_PROGRAM,
625 Self::__Unknown(value: i32) => value,
626 }
627 }
628}
629
630#[doc(hidden)]
631impl FromGlib<ffi::GstGLSLError> for GLSLError {
632 #[inline]
633 unsafe fn from_glib(value: ffi::GstGLSLError) -> Self {
634 skip_assert_initialized!();
635
636 match value {
637 ffi::GST_GLSL_ERROR_COMPILE => Self::Compile,
638 ffi::GST_GLSL_ERROR_LINK => Self::Link,
639 ffi::GST_GLSL_ERROR_PROGRAM => Self::Program,
640 value: i32 => Self::__Unknown(value),
641 }
642 }
643}
644
645impl glib::error::ErrorDomain for GLSLError {
646 #[inline]
647 fn domain() -> glib::Quark {
648 skip_assert_initialized!();
649
650 unsafe { from_glib(val:ffi::gst_glsl_error_quark()) }
651 }
652
653 #[inline]
654 fn code(self) -> i32 {
655 self.into_glib()
656 }
657
658 #[inline]
659 #[allow(clippy::match_single_binding)]
660 fn from(code: i32) -> Option<Self> {
661 skip_assert_initialized!();
662 match unsafe { from_glib(val:code) } {
663 value: GLSLError => Some(value),
664 }
665 }
666}
667
668impl StaticType for GLSLError {
669 #[inline]
670 #[doc(alias = "gst_glsl_error_get_type")]
671 fn static_type() -> glib::Type {
672 unsafe { from_glib(val:ffi::gst_glsl_error_get_type()) }
673 }
674}
675
676impl glib::HasParamSpec for GLSLError {
677 type ParamSpec = glib::ParamSpecEnum;
678 type SetValue = Self;
679 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
680
681 fn param_spec_builder() -> Self::BuilderFn {
682 Self::ParamSpec::builder_with_default
683 }
684}
685
686impl glib::value::ValueType for GLSLError {
687 type Type = Self;
688}
689
690unsafe impl<'a> glib::value::FromValue<'a> for GLSLError {
691 type Checker = glib::value::GenericValueTypeChecker<Self>;
692
693 #[inline]
694 unsafe fn from_value(value: &'a glib::Value) -> Self {
695 skip_assert_initialized!();
696 from_glib(val:glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
697 }
698}
699
700impl ToValue for GLSLError {
701 #[inline]
702 fn to_value(&self) -> glib::Value {
703 let mut value: Value = glib::Value::for_value_type::<Self>();
704 unsafe {
705 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
706 }
707 value
708 }
709
710 #[inline]
711 fn value_type(&self) -> glib::Type {
712 Self::static_type()
713 }
714}
715
716impl From<GLSLError> for glib::Value {
717 #[inline]
718 fn from(v: GLSLError) -> Self {
719 skip_assert_initialized!();
720 ToValue::to_value(&v)
721 }
722}
723
724#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
725#[non_exhaustive]
726#[doc(alias = "GstGLSLVersion")]
727pub enum GLSLVersion {
728 #[doc(alias = "GST_GLSL_VERSION_NONE")]
729 None,
730 #[doc(alias = "GST_GLSL_VERSION_100")]
731 _100,
732 #[doc(alias = "GST_GLSL_VERSION_110")]
733 _110,
734 #[doc(alias = "GST_GLSL_VERSION_120")]
735 _120,
736 #[doc(alias = "GST_GLSL_VERSION_130")]
737 _130,
738 #[doc(alias = "GST_GLSL_VERSION_140")]
739 _140,
740 #[doc(alias = "GST_GLSL_VERSION_150")]
741 _150,
742 #[doc(alias = "GST_GLSL_VERSION_300")]
743 _300,
744 #[doc(alias = "GST_GLSL_VERSION_310")]
745 _310,
746 #[doc(alias = "GST_GLSL_VERSION_320")]
747 _320,
748 #[doc(alias = "GST_GLSL_VERSION_330")]
749 _330,
750 #[doc(alias = "GST_GLSL_VERSION_400")]
751 _400,
752 #[doc(alias = "GST_GLSL_VERSION_410")]
753 _410,
754 #[doc(alias = "GST_GLSL_VERSION_420")]
755 _420,
756 #[doc(alias = "GST_GLSL_VERSION_430")]
757 _430,
758 #[doc(alias = "GST_GLSL_VERSION_440")]
759 _440,
760 #[doc(alias = "GST_GLSL_VERSION_450")]
761 _450,
762 #[doc(hidden)]
763 __Unknown(i32),
764}
765
766impl GLSLVersion {
767 #[doc(alias = "gst_glsl_version_from_string")]
768 pub fn from_string(string: &str) -> GLSLVersion {
769 assert_initialized_main_thread!();
770 unsafe { from_glib(ffi::gst_glsl_version_from_string(string.to_glib_none().0)) }
771 }
772
773 #[doc(alias = "gst_glsl_version_profile_from_string")]
774 pub fn profile_from_string(string: &str) -> Option<(GLSLVersion, GLSLProfile)> {
775 assert_initialized_main_thread!();
776 unsafe {
777 let mut version_ret = std::mem::MaybeUninit::uninit();
778 let mut profile_ret = std::mem::MaybeUninit::uninit();
779 let ret = from_glib(ffi::gst_glsl_version_profile_from_string(
780 string.to_glib_none().0,
781 version_ret.as_mut_ptr(),
782 profile_ret.as_mut_ptr(),
783 ));
784 if ret {
785 Some((
786 from_glib(version_ret.assume_init()),
787 from_glib(profile_ret.assume_init()),
788 ))
789 } else {
790 None
791 }
792 }
793 }
794
795 #[doc(alias = "gst_glsl_version_profile_to_string")]
796 pub fn profile_to_string(self, profile: GLSLProfile) -> Option<glib::GString> {
797 assert_initialized_main_thread!();
798 unsafe {
799 from_glib_full(ffi::gst_glsl_version_profile_to_string(
800 self.into_glib(),
801 profile.into_glib(),
802 ))
803 }
804 }
805
806 #[doc(alias = "gst_glsl_version_to_string")]
807 #[doc(alias = "to_string")]
808 pub fn to_str(self) -> Option<glib::GString> {
809 assert_initialized_main_thread!();
810 unsafe { from_glib_none(ffi::gst_glsl_version_to_string(self.into_glib())) }
811 }
812}
813
814#[doc(hidden)]
815impl IntoGlib for GLSLVersion {
816 type GlibType = ffi::GstGLSLVersion;
817
818 fn into_glib(self) -> ffi::GstGLSLVersion {
819 match self {
820 Self::None => ffi::GST_GLSL_VERSION_NONE,
821 Self::_100 => ffi::GST_GLSL_VERSION_100,
822 Self::_110 => ffi::GST_GLSL_VERSION_110,
823 Self::_120 => ffi::GST_GLSL_VERSION_120,
824 Self::_130 => ffi::GST_GLSL_VERSION_130,
825 Self::_140 => ffi::GST_GLSL_VERSION_140,
826 Self::_150 => ffi::GST_GLSL_VERSION_150,
827 Self::_300 => ffi::GST_GLSL_VERSION_300,
828 Self::_310 => ffi::GST_GLSL_VERSION_310,
829 Self::_320 => ffi::GST_GLSL_VERSION_320,
830 Self::_330 => ffi::GST_GLSL_VERSION_330,
831 Self::_400 => ffi::GST_GLSL_VERSION_400,
832 Self::_410 => ffi::GST_GLSL_VERSION_410,
833 Self::_420 => ffi::GST_GLSL_VERSION_420,
834 Self::_430 => ffi::GST_GLSL_VERSION_430,
835 Self::_440 => ffi::GST_GLSL_VERSION_440,
836 Self::_450 => ffi::GST_GLSL_VERSION_450,
837 Self::__Unknown(value) => value,
838 }
839 }
840}
841
842#[doc(hidden)]
843impl FromGlib<ffi::GstGLSLVersion> for GLSLVersion {
844 unsafe fn from_glib(value: ffi::GstGLSLVersion) -> Self {
845 skip_assert_initialized!();
846
847 match value {
848 ffi::GST_GLSL_VERSION_NONE => Self::None,
849 ffi::GST_GLSL_VERSION_100 => Self::_100,
850 ffi::GST_GLSL_VERSION_110 => Self::_110,
851 ffi::GST_GLSL_VERSION_120 => Self::_120,
852 ffi::GST_GLSL_VERSION_130 => Self::_130,
853 ffi::GST_GLSL_VERSION_140 => Self::_140,
854 ffi::GST_GLSL_VERSION_150 => Self::_150,
855 ffi::GST_GLSL_VERSION_300 => Self::_300,
856 ffi::GST_GLSL_VERSION_310 => Self::_310,
857 ffi::GST_GLSL_VERSION_320 => Self::_320,
858 ffi::GST_GLSL_VERSION_330 => Self::_330,
859 ffi::GST_GLSL_VERSION_400 => Self::_400,
860 ffi::GST_GLSL_VERSION_410 => Self::_410,
861 ffi::GST_GLSL_VERSION_420 => Self::_420,
862 ffi::GST_GLSL_VERSION_430 => Self::_430,
863 ffi::GST_GLSL_VERSION_440 => Self::_440,
864 ffi::GST_GLSL_VERSION_450 => Self::_450,
865 value => Self::__Unknown(value),
866 }
867 }
868}
869
870impl StaticType for GLSLVersion {
871 #[inline]
872 #[doc(alias = "gst_glsl_version_get_type")]
873 fn static_type() -> glib::Type {
874 unsafe { from_glib(val:ffi::gst_glsl_version_get_type()) }
875 }
876}
877
878impl glib::HasParamSpec for GLSLVersion {
879 type ParamSpec = glib::ParamSpecEnum;
880 type SetValue = Self;
881 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
882
883 fn param_spec_builder() -> Self::BuilderFn {
884 Self::ParamSpec::builder_with_default
885 }
886}
887
888impl glib::value::ValueType for GLSLVersion {
889 type Type = Self;
890}
891
892unsafe impl<'a> glib::value::FromValue<'a> for GLSLVersion {
893 type Checker = glib::value::GenericValueTypeChecker<Self>;
894
895 #[inline]
896 unsafe fn from_value(value: &'a glib::Value) -> Self {
897 skip_assert_initialized!();
898 from_glib(val:glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
899 }
900}
901
902impl ToValue for GLSLVersion {
903 #[inline]
904 fn to_value(&self) -> glib::Value {
905 let mut value: Value = glib::Value::for_value_type::<Self>();
906 unsafe {
907 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
908 }
909 value
910 }
911
912 #[inline]
913 fn value_type(&self) -> glib::Type {
914 Self::static_type()
915 }
916}
917
918impl From<GLSLVersion> for glib::Value {
919 #[inline]
920 fn from(v: GLSLVersion) -> Self {
921 skip_assert_initialized!();
922 ToValue::to_value(&v)
923 }
924}
925
926#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
927#[non_exhaustive]
928#[doc(alias = "GstGLStereoDownmix")]
929pub enum GLStereoDownmix {
930 #[doc(alias = "GST_GL_STEREO_DOWNMIX_ANAGLYPH_GREEN_MAGENTA_DUBOIS")]
931 GreenMagentaDubois,
932 #[doc(alias = "GST_GL_STEREO_DOWNMIX_ANAGLYPH_RED_CYAN_DUBOIS")]
933 RedCyanDubois,
934 #[doc(alias = "GST_GL_STEREO_DOWNMIX_ANAGLYPH_AMBER_BLUE_DUBOIS")]
935 AmberBlueDubois,
936 #[doc(hidden)]
937 __Unknown(i32),
938}
939
940#[doc(hidden)]
941impl IntoGlib for GLStereoDownmix {
942 type GlibType = ffi::GstGLStereoDownmix;
943
944 #[inline]
945 fn into_glib(self) -> ffi::GstGLStereoDownmix {
946 match self {
947 Self::GreenMagentaDubois => ffi::GST_GL_STEREO_DOWNMIX_ANAGLYPH_GREEN_MAGENTA_DUBOIS,
948 Self::RedCyanDubois => ffi::GST_GL_STEREO_DOWNMIX_ANAGLYPH_RED_CYAN_DUBOIS,
949 Self::AmberBlueDubois => ffi::GST_GL_STEREO_DOWNMIX_ANAGLYPH_AMBER_BLUE_DUBOIS,
950 Self::__Unknown(value: i32) => value,
951 }
952 }
953}
954
955#[doc(hidden)]
956impl FromGlib<ffi::GstGLStereoDownmix> for GLStereoDownmix {
957 #[inline]
958 unsafe fn from_glib(value: ffi::GstGLStereoDownmix) -> Self {
959 skip_assert_initialized!();
960
961 match value {
962 ffi::GST_GL_STEREO_DOWNMIX_ANAGLYPH_GREEN_MAGENTA_DUBOIS => Self::GreenMagentaDubois,
963 ffi::GST_GL_STEREO_DOWNMIX_ANAGLYPH_RED_CYAN_DUBOIS => Self::RedCyanDubois,
964 ffi::GST_GL_STEREO_DOWNMIX_ANAGLYPH_AMBER_BLUE_DUBOIS => Self::AmberBlueDubois,
965 value: i32 => Self::__Unknown(value),
966 }
967 }
968}
969
970impl StaticType for GLStereoDownmix {
971 #[inline]
972 #[doc(alias = "gst_gl_stereo_downmix_get_type")]
973 fn static_type() -> glib::Type {
974 unsafe { from_glib(val:ffi::gst_gl_stereo_downmix_get_type()) }
975 }
976}
977
978impl glib::HasParamSpec for GLStereoDownmix {
979 type ParamSpec = glib::ParamSpecEnum;
980 type SetValue = Self;
981 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
982
983 fn param_spec_builder() -> Self::BuilderFn {
984 Self::ParamSpec::builder_with_default
985 }
986}
987
988impl glib::value::ValueType for GLStereoDownmix {
989 type Type = Self;
990}
991
992unsafe impl<'a> glib::value::FromValue<'a> for GLStereoDownmix {
993 type Checker = glib::value::GenericValueTypeChecker<Self>;
994
995 #[inline]
996 unsafe fn from_value(value: &'a glib::Value) -> Self {
997 skip_assert_initialized!();
998 from_glib(val:glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
999 }
1000}
1001
1002impl ToValue for GLStereoDownmix {
1003 #[inline]
1004 fn to_value(&self) -> glib::Value {
1005 let mut value: Value = glib::Value::for_value_type::<Self>();
1006 unsafe {
1007 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1008 }
1009 value
1010 }
1011
1012 #[inline]
1013 fn value_type(&self) -> glib::Type {
1014 Self::static_type()
1015 }
1016}
1017
1018impl From<GLStereoDownmix> for glib::Value {
1019 #[inline]
1020 fn from(v: GLStereoDownmix) -> Self {
1021 skip_assert_initialized!();
1022 ToValue::to_value(&v)
1023 }
1024}
1025
1026#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1027#[non_exhaustive]
1028#[doc(alias = "GstGLTextureTarget")]
1029pub enum GLTextureTarget {
1030 #[doc(alias = "GST_GL_TEXTURE_TARGET_NONE")]
1031 None,
1032 #[doc(alias = "GST_GL_TEXTURE_TARGET_2D")]
1033 _2d,
1034 #[doc(alias = "GST_GL_TEXTURE_TARGET_RECTANGLE")]
1035 Rectangle,
1036 #[doc(alias = "GST_GL_TEXTURE_TARGET_EXTERNAL_OES")]
1037 ExternalOes,
1038 #[doc(hidden)]
1039 __Unknown(i32),
1040}
1041
1042impl GLTextureTarget {
1043 #[doc(alias = "gst_gl_texture_target_from_gl")]
1044 pub fn from_gl(target: u32) -> GLTextureTarget {
1045 assert_initialized_main_thread!();
1046 unsafe { from_glib(ffi::gst_gl_texture_target_from_gl(target)) }
1047 }
1048
1049 #[doc(alias = "gst_gl_texture_target_from_string")]
1050 pub fn from_string(str: &str) -> GLTextureTarget {
1051 assert_initialized_main_thread!();
1052 unsafe { from_glib(ffi::gst_gl_texture_target_from_string(str.to_glib_none().0)) }
1053 }
1054
1055 #[doc(alias = "gst_gl_texture_target_to_buffer_pool_option")]
1056 pub fn to_buffer_pool_option(self) -> Option<glib::GString> {
1057 assert_initialized_main_thread!();
1058 unsafe {
1059 from_glib_none(ffi::gst_gl_texture_target_to_buffer_pool_option(
1060 self.into_glib(),
1061 ))
1062 }
1063 }
1064
1065 #[doc(alias = "gst_gl_texture_target_to_gl")]
1066 pub fn to_gl(self) -> u32 {
1067 assert_initialized_main_thread!();
1068 unsafe { ffi::gst_gl_texture_target_to_gl(self.into_glib()) }
1069 }
1070
1071 #[doc(alias = "gst_gl_texture_target_to_string")]
1072 #[doc(alias = "to_string")]
1073 pub fn to_str(self) -> Option<glib::GString> {
1074 assert_initialized_main_thread!();
1075 unsafe { from_glib_none(ffi::gst_gl_texture_target_to_string(self.into_glib())) }
1076 }
1077}
1078
1079#[doc(hidden)]
1080impl IntoGlib for GLTextureTarget {
1081 type GlibType = ffi::GstGLTextureTarget;
1082
1083 #[inline]
1084 fn into_glib(self) -> ffi::GstGLTextureTarget {
1085 match self {
1086 Self::None => ffi::GST_GL_TEXTURE_TARGET_NONE,
1087 Self::_2d => ffi::GST_GL_TEXTURE_TARGET_2D,
1088 Self::Rectangle => ffi::GST_GL_TEXTURE_TARGET_RECTANGLE,
1089 Self::ExternalOes => ffi::GST_GL_TEXTURE_TARGET_EXTERNAL_OES,
1090 Self::__Unknown(value: i32) => value,
1091 }
1092 }
1093}
1094
1095#[doc(hidden)]
1096impl FromGlib<ffi::GstGLTextureTarget> for GLTextureTarget {
1097 #[inline]
1098 unsafe fn from_glib(value: ffi::GstGLTextureTarget) -> Self {
1099 skip_assert_initialized!();
1100
1101 match value {
1102 ffi::GST_GL_TEXTURE_TARGET_NONE => Self::None,
1103 ffi::GST_GL_TEXTURE_TARGET_2D => Self::_2d,
1104 ffi::GST_GL_TEXTURE_TARGET_RECTANGLE => Self::Rectangle,
1105 ffi::GST_GL_TEXTURE_TARGET_EXTERNAL_OES => Self::ExternalOes,
1106 value: i32 => Self::__Unknown(value),
1107 }
1108 }
1109}
1110
1111impl StaticType for GLTextureTarget {
1112 #[inline]
1113 #[doc(alias = "gst_gl_texture_target_get_type")]
1114 fn static_type() -> glib::Type {
1115 unsafe { from_glib(val:ffi::gst_gl_texture_target_get_type()) }
1116 }
1117}
1118
1119impl glib::HasParamSpec for GLTextureTarget {
1120 type ParamSpec = glib::ParamSpecEnum;
1121 type SetValue = Self;
1122 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1123
1124 fn param_spec_builder() -> Self::BuilderFn {
1125 Self::ParamSpec::builder_with_default
1126 }
1127}
1128
1129impl glib::value::ValueType for GLTextureTarget {
1130 type Type = Self;
1131}
1132
1133unsafe impl<'a> glib::value::FromValue<'a> for GLTextureTarget {
1134 type Checker = glib::value::GenericValueTypeChecker<Self>;
1135
1136 #[inline]
1137 unsafe fn from_value(value: &'a glib::Value) -> Self {
1138 skip_assert_initialized!();
1139 from_glib(val:glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1140 }
1141}
1142
1143impl ToValue for GLTextureTarget {
1144 #[inline]
1145 fn to_value(&self) -> glib::Value {
1146 let mut value: Value = glib::Value::for_value_type::<Self>();
1147 unsafe {
1148 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1149 }
1150 value
1151 }
1152
1153 #[inline]
1154 fn value_type(&self) -> glib::Type {
1155 Self::static_type()
1156 }
1157}
1158
1159impl From<GLTextureTarget> for glib::Value {
1160 #[inline]
1161 fn from(v: GLTextureTarget) -> Self {
1162 skip_assert_initialized!();
1163 ToValue::to_value(&v)
1164 }
1165}
1166
1167#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1168#[non_exhaustive]
1169#[doc(alias = "GstGLUploadReturn")]
1170pub enum GLUploadReturn {
1171 #[doc(alias = "GST_GL_UPLOAD_DONE")]
1172 Done,
1173 #[doc(alias = "GST_GL_UPLOAD_ERROR")]
1174 Error,
1175 #[doc(alias = "GST_GL_UPLOAD_UNSUPPORTED")]
1176 Unsupported,
1177 #[doc(alias = "GST_GL_UPLOAD_RECONFIGURE")]
1178 Reconfigure,
1179 #[doc(alias = "GST_GL_UPLOAD_UNSHARED_GL_CONTEXT")]
1180 UnsharedGlContext,
1181 #[doc(hidden)]
1182 __Unknown(i32),
1183}
1184
1185#[doc(hidden)]
1186impl IntoGlib for GLUploadReturn {
1187 type GlibType = ffi::GstGLUploadReturn;
1188
1189 #[inline]
1190 fn into_glib(self) -> ffi::GstGLUploadReturn {
1191 match self {
1192 Self::Done => ffi::GST_GL_UPLOAD_DONE,
1193 Self::Error => ffi::GST_GL_UPLOAD_ERROR,
1194 Self::Unsupported => ffi::GST_GL_UPLOAD_UNSUPPORTED,
1195 Self::Reconfigure => ffi::GST_GL_UPLOAD_RECONFIGURE,
1196 Self::UnsharedGlContext => ffi::GST_GL_UPLOAD_UNSHARED_GL_CONTEXT,
1197 Self::__Unknown(value: i32) => value,
1198 }
1199 }
1200}
1201
1202#[doc(hidden)]
1203impl FromGlib<ffi::GstGLUploadReturn> for GLUploadReturn {
1204 #[inline]
1205 unsafe fn from_glib(value: ffi::GstGLUploadReturn) -> Self {
1206 skip_assert_initialized!();
1207
1208 match value {
1209 ffi::GST_GL_UPLOAD_DONE => Self::Done,
1210 ffi::GST_GL_UPLOAD_ERROR => Self::Error,
1211 ffi::GST_GL_UPLOAD_UNSUPPORTED => Self::Unsupported,
1212 ffi::GST_GL_UPLOAD_RECONFIGURE => Self::Reconfigure,
1213 ffi::GST_GL_UPLOAD_UNSHARED_GL_CONTEXT => Self::UnsharedGlContext,
1214 value: i32 => Self::__Unknown(value),
1215 }
1216 }
1217}
1218
1219impl StaticType for GLUploadReturn {
1220 #[inline]
1221 #[doc(alias = "gst_gl_upload_return_get_type")]
1222 fn static_type() -> glib::Type {
1223 unsafe { from_glib(val:ffi::gst_gl_upload_return_get_type()) }
1224 }
1225}
1226
1227impl glib::HasParamSpec for GLUploadReturn {
1228 type ParamSpec = glib::ParamSpecEnum;
1229 type SetValue = Self;
1230 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1231
1232 fn param_spec_builder() -> Self::BuilderFn {
1233 Self::ParamSpec::builder_with_default
1234 }
1235}
1236
1237impl glib::value::ValueType for GLUploadReturn {
1238 type Type = Self;
1239}
1240
1241unsafe impl<'a> glib::value::FromValue<'a> for GLUploadReturn {
1242 type Checker = glib::value::GenericValueTypeChecker<Self>;
1243
1244 #[inline]
1245 unsafe fn from_value(value: &'a glib::Value) -> Self {
1246 skip_assert_initialized!();
1247 from_glib(val:glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1248 }
1249}
1250
1251impl ToValue for GLUploadReturn {
1252 #[inline]
1253 fn to_value(&self) -> glib::Value {
1254 let mut value: Value = glib::Value::for_value_type::<Self>();
1255 unsafe {
1256 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1257 }
1258 value
1259 }
1260
1261 #[inline]
1262 fn value_type(&self) -> glib::Type {
1263 Self::static_type()
1264 }
1265}
1266
1267impl From<GLUploadReturn> for glib::Value {
1268 #[inline]
1269 fn from(v: GLUploadReturn) -> Self {
1270 skip_assert_initialized!();
1271 ToValue::to_value(&v)
1272 }
1273}
1274
1275#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1276#[non_exhaustive]
1277#[doc(alias = "GstGLWindowError")]
1278pub enum GLWindowError {
1279 #[doc(alias = "GST_GL_WINDOW_ERROR_FAILED")]
1280 Failed,
1281 #[doc(alias = "GST_GL_WINDOW_ERROR_OLD_LIBS")]
1282 OldLibs,
1283 #[doc(alias = "GST_GL_WINDOW_ERROR_RESOURCE_UNAVAILABLE")]
1284 ResourceUnavailable,
1285 #[doc(hidden)]
1286 __Unknown(i32),
1287}
1288
1289#[doc(hidden)]
1290impl IntoGlib for GLWindowError {
1291 type GlibType = ffi::GstGLWindowError;
1292
1293 #[inline]
1294 fn into_glib(self) -> ffi::GstGLWindowError {
1295 match self {
1296 Self::Failed => ffi::GST_GL_WINDOW_ERROR_FAILED,
1297 Self::OldLibs => ffi::GST_GL_WINDOW_ERROR_OLD_LIBS,
1298 Self::ResourceUnavailable => ffi::GST_GL_WINDOW_ERROR_RESOURCE_UNAVAILABLE,
1299 Self::__Unknown(value: i32) => value,
1300 }
1301 }
1302}
1303
1304#[doc(hidden)]
1305impl FromGlib<ffi::GstGLWindowError> for GLWindowError {
1306 #[inline]
1307 unsafe fn from_glib(value: ffi::GstGLWindowError) -> Self {
1308 skip_assert_initialized!();
1309
1310 match value {
1311 ffi::GST_GL_WINDOW_ERROR_FAILED => Self::Failed,
1312 ffi::GST_GL_WINDOW_ERROR_OLD_LIBS => Self::OldLibs,
1313 ffi::GST_GL_WINDOW_ERROR_RESOURCE_UNAVAILABLE => Self::ResourceUnavailable,
1314 value: i32 => Self::__Unknown(value),
1315 }
1316 }
1317}
1318
1319impl glib::error::ErrorDomain for GLWindowError {
1320 #[inline]
1321 fn domain() -> glib::Quark {
1322 skip_assert_initialized!();
1323
1324 unsafe { from_glib(val:ffi::gst_gl_window_error_quark()) }
1325 }
1326
1327 #[inline]
1328 fn code(self) -> i32 {
1329 self.into_glib()
1330 }
1331
1332 #[inline]
1333 #[allow(clippy::match_single_binding)]
1334 fn from(code: i32) -> Option<Self> {
1335 skip_assert_initialized!();
1336 match unsafe { from_glib(val:code) } {
1337 Self::__Unknown(_) => Some(Self::Failed),
1338 value: GLWindowError => Some(value),
1339 }
1340 }
1341}
1342
1343impl StaticType for GLWindowError {
1344 #[inline]
1345 #[doc(alias = "gst_gl_window_error_get_type")]
1346 fn static_type() -> glib::Type {
1347 unsafe { from_glib(val:ffi::gst_gl_window_error_get_type()) }
1348 }
1349}
1350
1351impl glib::HasParamSpec for GLWindowError {
1352 type ParamSpec = glib::ParamSpecEnum;
1353 type SetValue = Self;
1354 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1355
1356 fn param_spec_builder() -> Self::BuilderFn {
1357 Self::ParamSpec::builder_with_default
1358 }
1359}
1360
1361impl glib::value::ValueType for GLWindowError {
1362 type Type = Self;
1363}
1364
1365unsafe impl<'a> glib::value::FromValue<'a> for GLWindowError {
1366 type Checker = glib::value::GenericValueTypeChecker<Self>;
1367
1368 #[inline]
1369 unsafe fn from_value(value: &'a glib::Value) -> Self {
1370 skip_assert_initialized!();
1371 from_glib(val:glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1372 }
1373}
1374
1375impl ToValue for GLWindowError {
1376 #[inline]
1377 fn to_value(&self) -> glib::Value {
1378 let mut value: Value = glib::Value::for_value_type::<Self>();
1379 unsafe {
1380 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1381 }
1382 value
1383 }
1384
1385 #[inline]
1386 fn value_type(&self) -> glib::Type {
1387 Self::static_type()
1388 }
1389}
1390
1391impl From<GLWindowError> for glib::Value {
1392 #[inline]
1393 fn from(v: GLWindowError) -> Self {
1394 skip_assert_initialized!();
1395 ToValue::to_value(&v)
1396 }
1397}
1398