gstreamer_rtsp_server/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/// Result codes from RTSP address pool functions.
10#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
11#[non_exhaustive]
12#[doc(alias = "GstRTSPAddressPoolResult")]
13pub enum RTSPAddressPoolResult {
14    /// no error
15    #[doc(alias = "GST_RTSP_ADDRESS_POOL_OK")]
16    Ok,
17    /// invalid arguments were provided to a function
18    #[doc(alias = "GST_RTSP_ADDRESS_POOL_EINVAL")]
19    Einval,
20    /// the addres has already been reserved
21    #[doc(alias = "GST_RTSP_ADDRESS_POOL_ERESERVED")]
22    Ereserved,
23    /// the address is not in the pool
24    #[doc(alias = "GST_RTSP_ADDRESS_POOL_ERANGE")]
25    Erange,
26    /// last error
27    #[doc(alias = "GST_RTSP_ADDRESS_POOL_ELAST")]
28    Elast,
29    #[doc(hidden)]
30    __Unknown(i32),
31}
32
33#[doc(hidden)]
34impl IntoGlib for RTSPAddressPoolResult {
35    type GlibType = ffi::GstRTSPAddressPoolResult;
36
37    #[inline]
38    fn into_glib(self) -> ffi::GstRTSPAddressPoolResult {
39        match self {
40            Self::Ok => ffi::GST_RTSP_ADDRESS_POOL_OK,
41            Self::Einval => ffi::GST_RTSP_ADDRESS_POOL_EINVAL,
42            Self::Ereserved => ffi::GST_RTSP_ADDRESS_POOL_ERESERVED,
43            Self::Erange => ffi::GST_RTSP_ADDRESS_POOL_ERANGE,
44            Self::Elast => ffi::GST_RTSP_ADDRESS_POOL_ELAST,
45            Self::__Unknown(value) => value,
46        }
47    }
48}
49
50#[doc(hidden)]
51impl FromGlib<ffi::GstRTSPAddressPoolResult> for RTSPAddressPoolResult {
52    #[inline]
53    unsafe fn from_glib(value: ffi::GstRTSPAddressPoolResult) -> Self {
54        skip_assert_initialized!();
55
56        match value {
57            ffi::GST_RTSP_ADDRESS_POOL_OK => Self::Ok,
58            ffi::GST_RTSP_ADDRESS_POOL_EINVAL => Self::Einval,
59            ffi::GST_RTSP_ADDRESS_POOL_ERESERVED => Self::Ereserved,
60            ffi::GST_RTSP_ADDRESS_POOL_ERANGE => Self::Erange,
61            ffi::GST_RTSP_ADDRESS_POOL_ELAST => Self::Elast,
62            value => Self::__Unknown(value),
63        }
64    }
65}
66
67/// Possible return values for [`RTSPSessionPoolExt::filter()`][crate::prelude::RTSPSessionPoolExt::filter()].
68#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
69#[non_exhaustive]
70#[doc(alias = "GstRTSPFilterResult")]
71pub enum RTSPFilterResult {
72    /// Remove session
73    #[doc(alias = "GST_RTSP_FILTER_REMOVE")]
74    Remove,
75    /// Keep session in the pool
76    #[doc(alias = "GST_RTSP_FILTER_KEEP")]
77    Keep,
78    /// Ref session in the result list
79    #[doc(alias = "GST_RTSP_FILTER_REF")]
80    Ref,
81    #[doc(hidden)]
82    __Unknown(i32),
83}
84
85#[doc(hidden)]
86impl IntoGlib for RTSPFilterResult {
87    type GlibType = ffi::GstRTSPFilterResult;
88
89    #[inline]
90    fn into_glib(self) -> ffi::GstRTSPFilterResult {
91        match self {
92            Self::Remove => ffi::GST_RTSP_FILTER_REMOVE,
93            Self::Keep => ffi::GST_RTSP_FILTER_KEEP,
94            Self::Ref => ffi::GST_RTSP_FILTER_REF,
95            Self::__Unknown(value) => value,
96        }
97    }
98}
99
100#[doc(hidden)]
101impl FromGlib<ffi::GstRTSPFilterResult> for RTSPFilterResult {
102    #[inline]
103    unsafe fn from_glib(value: ffi::GstRTSPFilterResult) -> Self {
104        skip_assert_initialized!();
105
106        match value {
107            ffi::GST_RTSP_FILTER_REMOVE => Self::Remove,
108            ffi::GST_RTSP_FILTER_KEEP => Self::Keep,
109            ffi::GST_RTSP_FILTER_REF => Self::Ref,
110            value => Self::__Unknown(value),
111        }
112    }
113}
114
115/// The state of the media pipeline.
116#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
117#[non_exhaustive]
118#[doc(alias = "GstRTSPMediaStatus")]
119pub enum RTSPMediaStatus {
120    /// media pipeline not prerolled
121    #[doc(alias = "GST_RTSP_MEDIA_STATUS_UNPREPARED")]
122    Unprepared,
123    /// media pipeline is busy doing a clean
124    ///  shutdown.
125    #[doc(alias = "GST_RTSP_MEDIA_STATUS_UNPREPARING")]
126    Unpreparing,
127    /// media pipeline is prerolling
128    #[doc(alias = "GST_RTSP_MEDIA_STATUS_PREPARING")]
129    Preparing,
130    /// media pipeline is prerolled
131    #[doc(alias = "GST_RTSP_MEDIA_STATUS_PREPARED")]
132    Prepared,
133    /// media is suspended
134    #[doc(alias = "GST_RTSP_MEDIA_STATUS_SUSPENDED")]
135    Suspended,
136    /// media pipeline is in error
137    #[doc(alias = "GST_RTSP_MEDIA_STATUS_ERROR")]
138    Error,
139    #[doc(hidden)]
140    __Unknown(i32),
141}
142
143#[doc(hidden)]
144impl IntoGlib for RTSPMediaStatus {
145    type GlibType = ffi::GstRTSPMediaStatus;
146
147    #[inline]
148    fn into_glib(self) -> ffi::GstRTSPMediaStatus {
149        match self {
150            Self::Unprepared => ffi::GST_RTSP_MEDIA_STATUS_UNPREPARED,
151            Self::Unpreparing => ffi::GST_RTSP_MEDIA_STATUS_UNPREPARING,
152            Self::Preparing => ffi::GST_RTSP_MEDIA_STATUS_PREPARING,
153            Self::Prepared => ffi::GST_RTSP_MEDIA_STATUS_PREPARED,
154            Self::Suspended => ffi::GST_RTSP_MEDIA_STATUS_SUSPENDED,
155            Self::Error => ffi::GST_RTSP_MEDIA_STATUS_ERROR,
156            Self::__Unknown(value) => value,
157        }
158    }
159}
160
161#[doc(hidden)]
162impl FromGlib<ffi::GstRTSPMediaStatus> for RTSPMediaStatus {
163    #[inline]
164    unsafe fn from_glib(value: ffi::GstRTSPMediaStatus) -> Self {
165        skip_assert_initialized!();
166
167        match value {
168            ffi::GST_RTSP_MEDIA_STATUS_UNPREPARED => Self::Unprepared,
169            ffi::GST_RTSP_MEDIA_STATUS_UNPREPARING => Self::Unpreparing,
170            ffi::GST_RTSP_MEDIA_STATUS_PREPARING => Self::Preparing,
171            ffi::GST_RTSP_MEDIA_STATUS_PREPARED => Self::Prepared,
172            ffi::GST_RTSP_MEDIA_STATUS_SUSPENDED => Self::Suspended,
173            ffi::GST_RTSP_MEDIA_STATUS_ERROR => Self::Error,
174            value => Self::__Unknown(value),
175        }
176    }
177}
178
179/// Whether the clock and possibly RTP/clock offset should be published according to RFC7273.
180#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
181#[non_exhaustive]
182#[doc(alias = "GstRTSPPublishClockMode")]
183pub enum RTSPPublishClockMode {
184    /// Publish nothing
185    #[doc(alias = "GST_RTSP_PUBLISH_CLOCK_MODE_NONE")]
186    None,
187    /// Publish the clock but not the offset
188    #[doc(alias = "GST_RTSP_PUBLISH_CLOCK_MODE_CLOCK")]
189    Clock,
190    /// Publish the clock and offset
191    #[doc(alias = "GST_RTSP_PUBLISH_CLOCK_MODE_CLOCK_AND_OFFSET")]
192    ClockAndOffset,
193    #[doc(hidden)]
194    __Unknown(i32),
195}
196
197#[doc(hidden)]
198impl IntoGlib for RTSPPublishClockMode {
199    type GlibType = ffi::GstRTSPPublishClockMode;
200
201    #[inline]
202    fn into_glib(self) -> ffi::GstRTSPPublishClockMode {
203        match self {
204            Self::None => ffi::GST_RTSP_PUBLISH_CLOCK_MODE_NONE,
205            Self::Clock => ffi::GST_RTSP_PUBLISH_CLOCK_MODE_CLOCK,
206            Self::ClockAndOffset => ffi::GST_RTSP_PUBLISH_CLOCK_MODE_CLOCK_AND_OFFSET,
207            Self::__Unknown(value) => value,
208        }
209    }
210}
211
212#[doc(hidden)]
213impl FromGlib<ffi::GstRTSPPublishClockMode> for RTSPPublishClockMode {
214    #[inline]
215    unsafe fn from_glib(value: ffi::GstRTSPPublishClockMode) -> Self {
216        skip_assert_initialized!();
217
218        match value {
219            ffi::GST_RTSP_PUBLISH_CLOCK_MODE_NONE => Self::None,
220            ffi::GST_RTSP_PUBLISH_CLOCK_MODE_CLOCK => Self::Clock,
221            ffi::GST_RTSP_PUBLISH_CLOCK_MODE_CLOCK_AND_OFFSET => Self::ClockAndOffset,
222            value => Self::__Unknown(value),
223        }
224    }
225}
226
227impl StaticType for RTSPPublishClockMode {
228    #[inline]
229    #[doc(alias = "gst_rtsp_publish_clock_mode_get_type")]
230    fn static_type() -> glib::Type {
231        unsafe { from_glib(ffi::gst_rtsp_publish_clock_mode_get_type()) }
232    }
233}
234
235impl glib::HasParamSpec for RTSPPublishClockMode {
236    type ParamSpec = glib::ParamSpecEnum;
237    type SetValue = Self;
238    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
239
240    fn param_spec_builder() -> Self::BuilderFn {
241        Self::ParamSpec::builder_with_default
242    }
243}
244
245impl glib::value::ValueType for RTSPPublishClockMode {
246    type Type = Self;
247}
248
249unsafe impl<'a> glib::value::FromValue<'a> for RTSPPublishClockMode {
250    type Checker = glib::value::GenericValueTypeChecker<Self>;
251
252    #[inline]
253    unsafe fn from_value(value: &'a glib::Value) -> Self {
254        skip_assert_initialized!();
255        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
256    }
257}
258
259impl ToValue for RTSPPublishClockMode {
260    #[inline]
261    fn to_value(&self) -> glib::Value {
262        let mut value = glib::Value::for_value_type::<Self>();
263        unsafe {
264            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
265        }
266        value
267    }
268
269    #[inline]
270    fn value_type(&self) -> glib::Type {
271        Self::static_type()
272    }
273}
274
275impl From<RTSPPublishClockMode> for glib::Value {
276    #[inline]
277    fn from(v: RTSPPublishClockMode) -> Self {
278        skip_assert_initialized!();
279        ToValue::to_value(&v)
280    }
281}
282
283/// The suspend mode of the media pipeline. A media pipeline is suspended right
284/// after creating the SDP and when the client performs a PAUSED request.
285#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
286#[non_exhaustive]
287#[doc(alias = "GstRTSPSuspendMode")]
288pub enum RTSPSuspendMode {
289    /// Media is not suspended
290    #[doc(alias = "GST_RTSP_SUSPEND_MODE_NONE")]
291    None,
292    /// Media is PAUSED in suspend
293    #[doc(alias = "GST_RTSP_SUSPEND_MODE_PAUSE")]
294    Pause,
295    /// The media is set to NULL when suspended
296    #[doc(alias = "GST_RTSP_SUSPEND_MODE_RESET")]
297    Reset,
298    #[doc(hidden)]
299    __Unknown(i32),
300}
301
302#[doc(hidden)]
303impl IntoGlib for RTSPSuspendMode {
304    type GlibType = ffi::GstRTSPSuspendMode;
305
306    #[inline]
307    fn into_glib(self) -> ffi::GstRTSPSuspendMode {
308        match self {
309            Self::None => ffi::GST_RTSP_SUSPEND_MODE_NONE,
310            Self::Pause => ffi::GST_RTSP_SUSPEND_MODE_PAUSE,
311            Self::Reset => ffi::GST_RTSP_SUSPEND_MODE_RESET,
312            Self::__Unknown(value) => value,
313        }
314    }
315}
316
317#[doc(hidden)]
318impl FromGlib<ffi::GstRTSPSuspendMode> for RTSPSuspendMode {
319    #[inline]
320    unsafe fn from_glib(value: ffi::GstRTSPSuspendMode) -> Self {
321        skip_assert_initialized!();
322
323        match value {
324            ffi::GST_RTSP_SUSPEND_MODE_NONE => Self::None,
325            ffi::GST_RTSP_SUSPEND_MODE_PAUSE => Self::Pause,
326            ffi::GST_RTSP_SUSPEND_MODE_RESET => Self::Reset,
327            value => Self::__Unknown(value),
328        }
329    }
330}
331
332impl StaticType for RTSPSuspendMode {
333    #[inline]
334    #[doc(alias = "gst_rtsp_suspend_mode_get_type")]
335    fn static_type() -> glib::Type {
336        unsafe { from_glib(ffi::gst_rtsp_suspend_mode_get_type()) }
337    }
338}
339
340impl glib::HasParamSpec for RTSPSuspendMode {
341    type ParamSpec = glib::ParamSpecEnum;
342    type SetValue = Self;
343    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
344
345    fn param_spec_builder() -> Self::BuilderFn {
346        Self::ParamSpec::builder_with_default
347    }
348}
349
350impl glib::value::ValueType for RTSPSuspendMode {
351    type Type = Self;
352}
353
354unsafe impl<'a> glib::value::FromValue<'a> for RTSPSuspendMode {
355    type Checker = glib::value::GenericValueTypeChecker<Self>;
356
357    #[inline]
358    unsafe fn from_value(value: &'a glib::Value) -> Self {
359        skip_assert_initialized!();
360        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
361    }
362}
363
364impl ToValue for RTSPSuspendMode {
365    #[inline]
366    fn to_value(&self) -> glib::Value {
367        let mut value = glib::Value::for_value_type::<Self>();
368        unsafe {
369            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
370        }
371        value
372    }
373
374    #[inline]
375    fn value_type(&self) -> glib::Type {
376        Self::static_type()
377    }
378}
379
380impl From<RTSPSuspendMode> for glib::Value {
381    #[inline]
382    fn from(v: RTSPSuspendMode) -> Self {
383        skip_assert_initialized!();
384        ToValue::to_value(&v)
385    }
386}
387
388/// Different thread types
389#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
390#[non_exhaustive]
391#[doc(alias = "GstRTSPThreadType")]
392pub enum RTSPThreadType {
393    /// a thread to handle the client communication
394    #[doc(alias = "GST_RTSP_THREAD_TYPE_CLIENT")]
395    Client,
396    /// a thread to handle media
397    #[doc(alias = "GST_RTSP_THREAD_TYPE_MEDIA")]
398    Media,
399    #[doc(hidden)]
400    __Unknown(i32),
401}
402
403#[doc(hidden)]
404impl IntoGlib for RTSPThreadType {
405    type GlibType = ffi::GstRTSPThreadType;
406
407    #[inline]
408    fn into_glib(self) -> ffi::GstRTSPThreadType {
409        match self {
410            Self::Client => ffi::GST_RTSP_THREAD_TYPE_CLIENT,
411            Self::Media => ffi::GST_RTSP_THREAD_TYPE_MEDIA,
412            Self::__Unknown(value) => value,
413        }
414    }
415}
416
417#[doc(hidden)]
418impl FromGlib<ffi::GstRTSPThreadType> for RTSPThreadType {
419    #[inline]
420    unsafe fn from_glib(value: ffi::GstRTSPThreadType) -> Self {
421        skip_assert_initialized!();
422
423        match value {
424            ffi::GST_RTSP_THREAD_TYPE_CLIENT => Self::Client,
425            ffi::GST_RTSP_THREAD_TYPE_MEDIA => Self::Media,
426            value => Self::__Unknown(value),
427        }
428    }
429}