gstreamer_mse/auto/
enums.rs

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;
7use glib::{prelude::*, translate::*};
8
9/// Reasons for ending a [`MediaSource`][crate::MediaSource] using [`MediaSource::end_of_stream()`][crate::MediaSource::end_of_stream()].
10///
11/// [Specification](https://www.w3.org/TR/media-source-2/`dom`-endofstreamerror)
12#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
13#[non_exhaustive]
14#[doc(alias = "GstMediaSourceEOSError")]
15pub enum MediaSourceEOSError {
16    /// End the stream successfully
17    #[doc(alias = "GST_MEDIA_SOURCE_EOS_ERROR_NONE")]
18    None,
19    /// End the stream due to a networking error
20    #[doc(alias = "GST_MEDIA_SOURCE_EOS_ERROR_NETWORK")]
21    Network,
22    /// End the stream due to a decoding error
23    #[doc(alias = "GST_MEDIA_SOURCE_EOS_ERROR_DECODE")]
24    Decode,
25    #[doc(hidden)]
26    __Unknown(i32),
27}
28
29#[doc(hidden)]
30impl IntoGlib for MediaSourceEOSError {
31    type GlibType = ffi::GstMediaSourceEOSError;
32
33    #[inline]
34    fn into_glib(self) -> ffi::GstMediaSourceEOSError {
35        match self {
36            Self::None => ffi::GST_MEDIA_SOURCE_EOS_ERROR_NONE,
37            Self::Network => ffi::GST_MEDIA_SOURCE_EOS_ERROR_NETWORK,
38            Self::Decode => ffi::GST_MEDIA_SOURCE_EOS_ERROR_DECODE,
39            Self::__Unknown(value) => value,
40        }
41    }
42}
43
44#[doc(hidden)]
45impl FromGlib<ffi::GstMediaSourceEOSError> for MediaSourceEOSError {
46    #[inline]
47    unsafe fn from_glib(value: ffi::GstMediaSourceEOSError) -> Self {
48        skip_assert_initialized!();
49
50        match value {
51            ffi::GST_MEDIA_SOURCE_EOS_ERROR_NONE => Self::None,
52            ffi::GST_MEDIA_SOURCE_EOS_ERROR_NETWORK => Self::Network,
53            ffi::GST_MEDIA_SOURCE_EOS_ERROR_DECODE => Self::Decode,
54            value => Self::__Unknown(value),
55        }
56    }
57}
58
59impl StaticType for MediaSourceEOSError {
60    #[inline]
61    #[doc(alias = "gst_media_source_eos_error_get_type")]
62    fn static_type() -> glib::Type {
63        unsafe { from_glib(ffi::gst_media_source_eos_error_get_type()) }
64    }
65}
66
67impl glib::HasParamSpec for MediaSourceEOSError {
68    type ParamSpec = glib::ParamSpecEnum;
69    type SetValue = Self;
70    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
71
72    fn param_spec_builder() -> Self::BuilderFn {
73        Self::ParamSpec::builder_with_default
74    }
75}
76
77impl glib::value::ValueType for MediaSourceEOSError {
78    type Type = Self;
79}
80
81unsafe impl<'a> glib::value::FromValue<'a> for MediaSourceEOSError {
82    type Checker = glib::value::GenericValueTypeChecker<Self>;
83
84    #[inline]
85    unsafe fn from_value(value: &'a glib::Value) -> Self {
86        skip_assert_initialized!();
87        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
88    }
89}
90
91impl ToValue for MediaSourceEOSError {
92    #[inline]
93    fn to_value(&self) -> glib::Value {
94        let mut value = glib::Value::for_value_type::<Self>();
95        unsafe {
96            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
97        }
98        value
99    }
100
101    #[inline]
102    fn value_type(&self) -> glib::Type {
103        Self::static_type()
104    }
105}
106
107impl From<MediaSourceEOSError> for glib::Value {
108    #[inline]
109    fn from(v: MediaSourceEOSError) -> Self {
110        skip_assert_initialized!();
111        ToValue::to_value(&v)
112    }
113}
114
115/// Any error that can occur within [`MediaSource`][crate::MediaSource] or [`SourceBuffer`][crate::SourceBuffer] APIs.
116/// These values correspond directly to those in the Web IDL specification.
117///
118/// [Specification](https://webidl.spec.whatwg.org/`idl`-DOMException-error-names)
119#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
120#[non_exhaustive]
121#[doc(alias = "GstMediaSourceError")]
122pub enum MediaSourceError {
123    #[doc(alias = "GST_MEDIA_SOURCE_ERROR_INVALID_STATE")]
124    InvalidState,
125    #[doc(alias = "GST_MEDIA_SOURCE_ERROR_TYPE")]
126    Type,
127    #[doc(alias = "GST_MEDIA_SOURCE_ERROR_NOT_SUPPORTED")]
128    NotSupported,
129    #[doc(alias = "GST_MEDIA_SOURCE_ERROR_NOT_FOUND")]
130    NotFound,
131    #[doc(alias = "GST_MEDIA_SOURCE_ERROR_QUOTA_EXCEEDED")]
132    QuotaExceeded,
133    #[doc(hidden)]
134    __Unknown(i32),
135}
136
137#[doc(hidden)]
138impl IntoGlib for MediaSourceError {
139    type GlibType = ffi::GstMediaSourceError;
140
141    #[inline]
142    fn into_glib(self) -> ffi::GstMediaSourceError {
143        match self {
144            Self::InvalidState => ffi::GST_MEDIA_SOURCE_ERROR_INVALID_STATE,
145            Self::Type => ffi::GST_MEDIA_SOURCE_ERROR_TYPE,
146            Self::NotSupported => ffi::GST_MEDIA_SOURCE_ERROR_NOT_SUPPORTED,
147            Self::NotFound => ffi::GST_MEDIA_SOURCE_ERROR_NOT_FOUND,
148            Self::QuotaExceeded => ffi::GST_MEDIA_SOURCE_ERROR_QUOTA_EXCEEDED,
149            Self::__Unknown(value) => value,
150        }
151    }
152}
153
154#[doc(hidden)]
155impl FromGlib<ffi::GstMediaSourceError> for MediaSourceError {
156    #[inline]
157    unsafe fn from_glib(value: ffi::GstMediaSourceError) -> Self {
158        skip_assert_initialized!();
159
160        match value {
161            ffi::GST_MEDIA_SOURCE_ERROR_INVALID_STATE => Self::InvalidState,
162            ffi::GST_MEDIA_SOURCE_ERROR_TYPE => Self::Type,
163            ffi::GST_MEDIA_SOURCE_ERROR_NOT_SUPPORTED => Self::NotSupported,
164            ffi::GST_MEDIA_SOURCE_ERROR_NOT_FOUND => Self::NotFound,
165            ffi::GST_MEDIA_SOURCE_ERROR_QUOTA_EXCEEDED => Self::QuotaExceeded,
166            value => Self::__Unknown(value),
167        }
168    }
169}
170
171impl glib::error::ErrorDomain for MediaSourceError {
172    #[inline]
173    fn domain() -> glib::Quark {
174        skip_assert_initialized!();
175
176        unsafe { from_glib(ffi::gst_media_source_error_quark()) }
177    }
178
179    #[inline]
180    fn code(self) -> i32 {
181        self.into_glib()
182    }
183
184    #[inline]
185    #[allow(clippy::match_single_binding)]
186    fn from(code: i32) -> Option<Self> {
187        skip_assert_initialized!();
188        match unsafe { from_glib(code) } {
189            value => Some(value),
190        }
191    }
192}
193
194impl StaticType for MediaSourceError {
195    #[inline]
196    #[doc(alias = "gst_media_source_error_get_type")]
197    fn static_type() -> glib::Type {
198        unsafe { from_glib(ffi::gst_media_source_error_get_type()) }
199    }
200}
201
202impl glib::HasParamSpec for MediaSourceError {
203    type ParamSpec = glib::ParamSpecEnum;
204    type SetValue = Self;
205    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
206
207    fn param_spec_builder() -> Self::BuilderFn {
208        Self::ParamSpec::builder_with_default
209    }
210}
211
212impl glib::value::ValueType for MediaSourceError {
213    type Type = Self;
214}
215
216unsafe impl<'a> glib::value::FromValue<'a> for MediaSourceError {
217    type Checker = glib::value::GenericValueTypeChecker<Self>;
218
219    #[inline]
220    unsafe fn from_value(value: &'a glib::Value) -> Self {
221        skip_assert_initialized!();
222        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
223    }
224}
225
226impl ToValue for MediaSourceError {
227    #[inline]
228    fn to_value(&self) -> glib::Value {
229        let mut value = glib::Value::for_value_type::<Self>();
230        unsafe {
231            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
232        }
233        value
234    }
235
236    #[inline]
237    fn value_type(&self) -> glib::Type {
238        Self::static_type()
239    }
240}
241
242impl From<MediaSourceError> for glib::Value {
243    #[inline]
244    fn from(v: MediaSourceError) -> Self {
245        skip_assert_initialized!();
246        ToValue::to_value(&v)
247    }
248}
249
250/// Describes the possible states of the Media Source.
251///
252/// [Specification](https://www.w3.org/TR/media-source-2/`dom`-readystate)
253#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
254#[non_exhaustive]
255#[doc(alias = "GstMediaSourceReadyState")]
256pub enum MediaSourceReadyState {
257    /// The [`MediaSource`][crate::MediaSource] is not connected to
258    /// any playback element.
259    #[doc(alias = "GST_MEDIA_SOURCE_READY_STATE_CLOSED")]
260    Closed,
261    /// The [`MediaSource`][crate::MediaSource] is connected to a
262    /// playback element and ready to append data to its [`SourceBuffer`][crate::SourceBuffer] (s).
263    #[doc(alias = "GST_MEDIA_SOURCE_READY_STATE_OPEN")]
264    Open,
265    /// [`MediaSource::end_of_stream()`][crate::MediaSource::end_of_stream()] has
266    /// been called on the current [`MediaSource`][crate::MediaSource]
267    #[doc(alias = "GST_MEDIA_SOURCE_READY_STATE_ENDED")]
268    Ended,
269    #[doc(hidden)]
270    __Unknown(i32),
271}
272
273#[doc(hidden)]
274impl IntoGlib for MediaSourceReadyState {
275    type GlibType = ffi::GstMediaSourceReadyState;
276
277    #[inline]
278    fn into_glib(self) -> ffi::GstMediaSourceReadyState {
279        match self {
280            Self::Closed => ffi::GST_MEDIA_SOURCE_READY_STATE_CLOSED,
281            Self::Open => ffi::GST_MEDIA_SOURCE_READY_STATE_OPEN,
282            Self::Ended => ffi::GST_MEDIA_SOURCE_READY_STATE_ENDED,
283            Self::__Unknown(value) => value,
284        }
285    }
286}
287
288#[doc(hidden)]
289impl FromGlib<ffi::GstMediaSourceReadyState> for MediaSourceReadyState {
290    #[inline]
291    unsafe fn from_glib(value: ffi::GstMediaSourceReadyState) -> Self {
292        skip_assert_initialized!();
293
294        match value {
295            ffi::GST_MEDIA_SOURCE_READY_STATE_CLOSED => Self::Closed,
296            ffi::GST_MEDIA_SOURCE_READY_STATE_OPEN => Self::Open,
297            ffi::GST_MEDIA_SOURCE_READY_STATE_ENDED => Self::Ended,
298            value => Self::__Unknown(value),
299        }
300    }
301}
302
303impl StaticType for MediaSourceReadyState {
304    #[inline]
305    #[doc(alias = "gst_media_source_ready_state_get_type")]
306    fn static_type() -> glib::Type {
307        unsafe { from_glib(ffi::gst_media_source_ready_state_get_type()) }
308    }
309}
310
311impl glib::HasParamSpec for MediaSourceReadyState {
312    type ParamSpec = glib::ParamSpecEnum;
313    type SetValue = Self;
314    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
315
316    fn param_spec_builder() -> Self::BuilderFn {
317        Self::ParamSpec::builder_with_default
318    }
319}
320
321impl glib::value::ValueType for MediaSourceReadyState {
322    type Type = Self;
323}
324
325unsafe impl<'a> glib::value::FromValue<'a> for MediaSourceReadyState {
326    type Checker = glib::value::GenericValueTypeChecker<Self>;
327
328    #[inline]
329    unsafe fn from_value(value: &'a glib::Value) -> Self {
330        skip_assert_initialized!();
331        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
332    }
333}
334
335impl ToValue for MediaSourceReadyState {
336    #[inline]
337    fn to_value(&self) -> glib::Value {
338        let mut value = glib::Value::for_value_type::<Self>();
339        unsafe {
340            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
341        }
342        value
343    }
344
345    #[inline]
346    fn value_type(&self) -> glib::Type {
347        Self::static_type()
348    }
349}
350
351impl From<MediaSourceReadyState> for glib::Value {
352    #[inline]
353    fn from(v: MediaSourceReadyState) -> Self {
354        skip_assert_initialized!();
355        ToValue::to_value(&v)
356    }
357}
358
359/// Describes how much information a [`MseSrc`][crate::MseSrc] has about the media it is playing
360/// back at the current playback [`position`][struct@crate::MseSrc#position]. This type corresponds
361/// directly to the ready state of a HTML Media Element and is a separate concept
362/// from [`MediaSourceReadyState`][crate::MediaSourceReadyState].
363///
364/// [Specification](https://html.spec.whatwg.org/multipage/media.html`ready`-states)
365#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
366#[non_exhaustive]
367#[doc(alias = "GstMseSrcReadyState")]
368pub enum MseSrcReadyState {
369    /// No information is available about the
370    /// stream
371    #[doc(alias = "GST_MSE_SRC_READY_STATE_HAVE_NOTHING")]
372    Nothing,
373    /// The duration is available and video
374    /// dimensions are available if the stream contains video
375    #[doc(alias = "GST_MSE_SRC_READY_STATE_HAVE_METADATA")]
376    Metadata,
377    /// The current playback position can
378    /// be presented but future information is not available
379    #[doc(alias = "GST_MSE_SRC_READY_STATE_HAVE_CURRENT_DATA")]
380    CurrentData,
381    /// There is data for the current
382    /// position and some amount in the future and any text tracks are ready.
383    #[doc(alias = "GST_MSE_SRC_READY_STATE_HAVE_FUTURE_DATA")]
384    FutureData,
385    /// Either there is enough data to
386    /// play the stream through at the current playback and input rate or the input
387    /// buffer is full.
388    #[doc(alias = "GST_MSE_SRC_READY_STATE_HAVE_ENOUGH_DATA")]
389    EnoughData,
390    #[doc(hidden)]
391    __Unknown(i32),
392}
393
394#[doc(hidden)]
395impl IntoGlib for MseSrcReadyState {
396    type GlibType = ffi::GstMseSrcReadyState;
397
398    #[inline]
399    fn into_glib(self) -> ffi::GstMseSrcReadyState {
400        match self {
401            Self::Nothing => ffi::GST_MSE_SRC_READY_STATE_HAVE_NOTHING,
402            Self::Metadata => ffi::GST_MSE_SRC_READY_STATE_HAVE_METADATA,
403            Self::CurrentData => ffi::GST_MSE_SRC_READY_STATE_HAVE_CURRENT_DATA,
404            Self::FutureData => ffi::GST_MSE_SRC_READY_STATE_HAVE_FUTURE_DATA,
405            Self::EnoughData => ffi::GST_MSE_SRC_READY_STATE_HAVE_ENOUGH_DATA,
406            Self::__Unknown(value) => value,
407        }
408    }
409}
410
411#[doc(hidden)]
412impl FromGlib<ffi::GstMseSrcReadyState> for MseSrcReadyState {
413    #[inline]
414    unsafe fn from_glib(value: ffi::GstMseSrcReadyState) -> Self {
415        skip_assert_initialized!();
416
417        match value {
418            ffi::GST_MSE_SRC_READY_STATE_HAVE_NOTHING => Self::Nothing,
419            ffi::GST_MSE_SRC_READY_STATE_HAVE_METADATA => Self::Metadata,
420            ffi::GST_MSE_SRC_READY_STATE_HAVE_CURRENT_DATA => Self::CurrentData,
421            ffi::GST_MSE_SRC_READY_STATE_HAVE_FUTURE_DATA => Self::FutureData,
422            ffi::GST_MSE_SRC_READY_STATE_HAVE_ENOUGH_DATA => Self::EnoughData,
423            value => Self::__Unknown(value),
424        }
425    }
426}
427
428impl StaticType for MseSrcReadyState {
429    #[inline]
430    #[doc(alias = "gst_mse_src_ready_state_get_type")]
431    fn static_type() -> glib::Type {
432        unsafe { from_glib(ffi::gst_mse_src_ready_state_get_type()) }
433    }
434}
435
436impl glib::HasParamSpec for MseSrcReadyState {
437    type ParamSpec = glib::ParamSpecEnum;
438    type SetValue = Self;
439    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
440
441    fn param_spec_builder() -> Self::BuilderFn {
442        Self::ParamSpec::builder_with_default
443    }
444}
445
446impl glib::value::ValueType for MseSrcReadyState {
447    type Type = Self;
448}
449
450unsafe impl<'a> glib::value::FromValue<'a> for MseSrcReadyState {
451    type Checker = glib::value::GenericValueTypeChecker<Self>;
452
453    #[inline]
454    unsafe fn from_value(value: &'a glib::Value) -> Self {
455        skip_assert_initialized!();
456        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
457    }
458}
459
460impl ToValue for MseSrcReadyState {
461    #[inline]
462    fn to_value(&self) -> glib::Value {
463        let mut value = glib::Value::for_value_type::<Self>();
464        unsafe {
465            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
466        }
467        value
468    }
469
470    #[inline]
471    fn value_type(&self) -> glib::Type {
472        Self::static_type()
473    }
474}
475
476impl From<MseSrcReadyState> for glib::Value {
477    #[inline]
478    fn from(v: MseSrcReadyState) -> Self {
479        skip_assert_initialized!();
480        ToValue::to_value(&v)
481    }
482}
483
484/// [Specification](https://www.w3.org/TR/media-source-2/`dom`-appendmode)
485#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
486#[non_exhaustive]
487#[doc(alias = "GstSourceBufferAppendMode")]
488pub enum SourceBufferAppendMode {
489    #[doc(alias = "GST_SOURCE_BUFFER_APPEND_MODE_SEGMENTS")]
490    Segments,
491    #[doc(alias = "GST_SOURCE_BUFFER_APPEND_MODE_SEQUENCE")]
492    Sequence,
493    #[doc(hidden)]
494    __Unknown(i32),
495}
496
497#[doc(hidden)]
498impl IntoGlib for SourceBufferAppendMode {
499    type GlibType = ffi::GstSourceBufferAppendMode;
500
501    #[inline]
502    fn into_glib(self) -> ffi::GstSourceBufferAppendMode {
503        match self {
504            Self::Segments => ffi::GST_SOURCE_BUFFER_APPEND_MODE_SEGMENTS,
505            Self::Sequence => ffi::GST_SOURCE_BUFFER_APPEND_MODE_SEQUENCE,
506            Self::__Unknown(value) => value,
507        }
508    }
509}
510
511#[doc(hidden)]
512impl FromGlib<ffi::GstSourceBufferAppendMode> for SourceBufferAppendMode {
513    #[inline]
514    unsafe fn from_glib(value: ffi::GstSourceBufferAppendMode) -> Self {
515        skip_assert_initialized!();
516
517        match value {
518            ffi::GST_SOURCE_BUFFER_APPEND_MODE_SEGMENTS => Self::Segments,
519            ffi::GST_SOURCE_BUFFER_APPEND_MODE_SEQUENCE => Self::Sequence,
520            value => Self::__Unknown(value),
521        }
522    }
523}
524
525impl StaticType for SourceBufferAppendMode {
526    #[inline]
527    #[doc(alias = "gst_source_buffer_append_mode_get_type")]
528    fn static_type() -> glib::Type {
529        unsafe { from_glib(ffi::gst_source_buffer_append_mode_get_type()) }
530    }
531}
532
533impl glib::HasParamSpec for SourceBufferAppendMode {
534    type ParamSpec = glib::ParamSpecEnum;
535    type SetValue = Self;
536    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
537
538    fn param_spec_builder() -> Self::BuilderFn {
539        Self::ParamSpec::builder_with_default
540    }
541}
542
543impl glib::value::ValueType for SourceBufferAppendMode {
544    type Type = Self;
545}
546
547unsafe impl<'a> glib::value::FromValue<'a> for SourceBufferAppendMode {
548    type Checker = glib::value::GenericValueTypeChecker<Self>;
549
550    #[inline]
551    unsafe fn from_value(value: &'a glib::Value) -> Self {
552        skip_assert_initialized!();
553        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
554    }
555}
556
557impl ToValue for SourceBufferAppendMode {
558    #[inline]
559    fn to_value(&self) -> glib::Value {
560        let mut value = glib::Value::for_value_type::<Self>();
561        unsafe {
562            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
563        }
564        value
565    }
566
567    #[inline]
568    fn value_type(&self) -> glib::Type {
569        Self::static_type()
570    }
571}
572
573impl From<SourceBufferAppendMode> for glib::Value {
574    #[inline]
575    fn from(v: SourceBufferAppendMode) -> Self {
576        skip_assert_initialized!();
577        ToValue::to_value(&v)
578    }
579}