gstreamer_rtsp/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/// Authentication methods, ordered by strength
10#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
11#[non_exhaustive]
12#[doc(alias = "GstRTSPAuthMethod")]
13pub enum RTSPAuthMethod {
14    /// no authentication
15    #[doc(alias = "GST_RTSP_AUTH_NONE")]
16    None,
17    /// basic authentication
18    #[doc(alias = "GST_RTSP_AUTH_BASIC")]
19    Basic,
20    /// digest authentication
21    #[doc(alias = "GST_RTSP_AUTH_DIGEST")]
22    Digest,
23    #[doc(hidden)]
24    __Unknown(i32),
25}
26
27#[doc(hidden)]
28impl IntoGlib for RTSPAuthMethod {
29    type GlibType = ffi::GstRTSPAuthMethod;
30
31    #[inline]
32    fn into_glib(self) -> ffi::GstRTSPAuthMethod {
33        match self {
34            Self::None => ffi::GST_RTSP_AUTH_NONE,
35            Self::Basic => ffi::GST_RTSP_AUTH_BASIC,
36            Self::Digest => ffi::GST_RTSP_AUTH_DIGEST,
37            Self::__Unknown(value) => value,
38        }
39    }
40}
41
42#[doc(hidden)]
43impl FromGlib<ffi::GstRTSPAuthMethod> for RTSPAuthMethod {
44    #[inline]
45    unsafe fn from_glib(value: ffi::GstRTSPAuthMethod) -> Self {
46        skip_assert_initialized!();
47
48        match value {
49            ffi::GST_RTSP_AUTH_NONE => Self::None,
50            ffi::GST_RTSP_AUTH_BASIC => Self::Basic,
51            ffi::GST_RTSP_AUTH_DIGEST => Self::Digest,
52            value => Self::__Unknown(value),
53        }
54    }
55}
56
57impl StaticType for RTSPAuthMethod {
58    #[inline]
59    #[doc(alias = "gst_rtsp_auth_method_get_type")]
60    fn static_type() -> glib::Type {
61        unsafe { from_glib(ffi::gst_rtsp_auth_method_get_type()) }
62    }
63}
64
65impl glib::HasParamSpec for RTSPAuthMethod {
66    type ParamSpec = glib::ParamSpecEnum;
67    type SetValue = Self;
68    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
69
70    fn param_spec_builder() -> Self::BuilderFn {
71        Self::ParamSpec::builder_with_default
72    }
73}
74
75impl glib::value::ValueType for RTSPAuthMethod {
76    type Type = Self;
77}
78
79unsafe impl<'a> glib::value::FromValue<'a> for RTSPAuthMethod {
80    type Checker = glib::value::GenericValueTypeChecker<Self>;
81
82    #[inline]
83    unsafe fn from_value(value: &'a glib::Value) -> Self {
84        skip_assert_initialized!();
85        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
86    }
87}
88
89impl ToValue for RTSPAuthMethod {
90    #[inline]
91    fn to_value(&self) -> glib::Value {
92        let mut value = glib::Value::for_value_type::<Self>();
93        unsafe {
94            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
95        }
96        value
97    }
98
99    #[inline]
100    fn value_type(&self) -> glib::Type {
101        Self::static_type()
102    }
103}
104
105impl From<RTSPAuthMethod> for glib::Value {
106    #[inline]
107    fn from(v: RTSPAuthMethod) -> Self {
108        skip_assert_initialized!();
109        ToValue::to_value(&v)
110    }
111}
112
113/// The possible network families.
114#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
115#[non_exhaustive]
116#[doc(alias = "GstRTSPFamily")]
117pub enum RTSPFamily {
118    /// unknown network family
119    #[doc(alias = "GST_RTSP_FAM_NONE")]
120    None,
121    /// internet
122    #[doc(alias = "GST_RTSP_FAM_INET")]
123    Inet,
124    /// internet V6
125    #[doc(alias = "GST_RTSP_FAM_INET6")]
126    Inet6,
127    #[doc(hidden)]
128    __Unknown(i32),
129}
130
131#[doc(hidden)]
132impl IntoGlib for RTSPFamily {
133    type GlibType = ffi::GstRTSPFamily;
134
135    #[inline]
136    fn into_glib(self) -> ffi::GstRTSPFamily {
137        match self {
138            Self::None => ffi::GST_RTSP_FAM_NONE,
139            Self::Inet => ffi::GST_RTSP_FAM_INET,
140            Self::Inet6 => ffi::GST_RTSP_FAM_INET6,
141            Self::__Unknown(value) => value,
142        }
143    }
144}
145
146#[doc(hidden)]
147impl FromGlib<ffi::GstRTSPFamily> for RTSPFamily {
148    #[inline]
149    unsafe fn from_glib(value: ffi::GstRTSPFamily) -> Self {
150        skip_assert_initialized!();
151
152        match value {
153            ffi::GST_RTSP_FAM_NONE => Self::None,
154            ffi::GST_RTSP_FAM_INET => Self::Inet,
155            ffi::GST_RTSP_FAM_INET6 => Self::Inet6,
156            value => Self::__Unknown(value),
157        }
158    }
159}
160
161impl StaticType for RTSPFamily {
162    #[inline]
163    #[doc(alias = "gst_rtsp_family_get_type")]
164    fn static_type() -> glib::Type {
165        unsafe { from_glib(ffi::gst_rtsp_family_get_type()) }
166    }
167}
168
169impl glib::HasParamSpec for RTSPFamily {
170    type ParamSpec = glib::ParamSpecEnum;
171    type SetValue = Self;
172    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
173
174    fn param_spec_builder() -> Self::BuilderFn {
175        Self::ParamSpec::builder_with_default
176    }
177}
178
179impl glib::value::ValueType for RTSPFamily {
180    type Type = Self;
181}
182
183unsafe impl<'a> glib::value::FromValue<'a> for RTSPFamily {
184    type Checker = glib::value::GenericValueTypeChecker<Self>;
185
186    #[inline]
187    unsafe fn from_value(value: &'a glib::Value) -> Self {
188        skip_assert_initialized!();
189        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
190    }
191}
192
193impl ToValue for RTSPFamily {
194    #[inline]
195    fn to_value(&self) -> glib::Value {
196        let mut value = glib::Value::for_value_type::<Self>();
197        unsafe {
198            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
199        }
200        value
201    }
202
203    #[inline]
204    fn value_type(&self) -> glib::Type {
205        Self::static_type()
206    }
207}
208
209impl From<RTSPFamily> for glib::Value {
210    #[inline]
211    fn from(v: RTSPFamily) -> Self {
212        skip_assert_initialized!();
213        ToValue::to_value(&v)
214    }
215}
216
217/// Enumeration of rtsp header fields
218#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
219#[non_exhaustive]
220#[doc(alias = "GstRTSPHeaderField")]
221pub enum RTSPHeaderField {
222    #[doc(alias = "GST_RTSP_HDR_INVALID")]
223    Invalid,
224    #[doc(alias = "GST_RTSP_HDR_ACCEPT")]
225    Accept,
226    #[doc(alias = "GST_RTSP_HDR_ACCEPT_ENCODING")]
227    AcceptEncoding,
228    #[doc(alias = "GST_RTSP_HDR_ACCEPT_LANGUAGE")]
229    AcceptLanguage,
230    #[doc(alias = "GST_RTSP_HDR_ALLOW")]
231    Allow,
232    #[doc(alias = "GST_RTSP_HDR_AUTHORIZATION")]
233    Authorization,
234    #[doc(alias = "GST_RTSP_HDR_BANDWIDTH")]
235    Bandwidth,
236    #[doc(alias = "GST_RTSP_HDR_BLOCKSIZE")]
237    Blocksize,
238    #[doc(alias = "GST_RTSP_HDR_CACHE_CONTROL")]
239    CacheControl,
240    #[doc(alias = "GST_RTSP_HDR_CONFERENCE")]
241    Conference,
242    #[doc(alias = "GST_RTSP_HDR_CONNECTION")]
243    Connection,
244    #[doc(alias = "GST_RTSP_HDR_CONTENT_BASE")]
245    ContentBase,
246    #[doc(alias = "GST_RTSP_HDR_CONTENT_ENCODING")]
247    ContentEncoding,
248    #[doc(alias = "GST_RTSP_HDR_CONTENT_LANGUAGE")]
249    ContentLanguage,
250    #[doc(alias = "GST_RTSP_HDR_CONTENT_LENGTH")]
251    ContentLength,
252    #[doc(alias = "GST_RTSP_HDR_CONTENT_LOCATION")]
253    ContentLocation,
254    #[doc(alias = "GST_RTSP_HDR_CONTENT_TYPE")]
255    ContentType,
256    #[doc(alias = "GST_RTSP_HDR_CSEQ")]
257    Cseq,
258    #[doc(alias = "GST_RTSP_HDR_DATE")]
259    Date,
260    #[doc(alias = "GST_RTSP_HDR_EXPIRES")]
261    Expires,
262    #[doc(alias = "GST_RTSP_HDR_FROM")]
263    From,
264    #[doc(alias = "GST_RTSP_HDR_IF_MODIFIED_SINCE")]
265    IfModifiedSince,
266    #[doc(alias = "GST_RTSP_HDR_LAST_MODIFIED")]
267    LastModified,
268    #[doc(alias = "GST_RTSP_HDR_PROXY_AUTHENTICATE")]
269    ProxyAuthenticate,
270    #[doc(alias = "GST_RTSP_HDR_PROXY_REQUIRE")]
271    ProxyRequire,
272    #[doc(alias = "GST_RTSP_HDR_PUBLIC")]
273    Public,
274    #[doc(alias = "GST_RTSP_HDR_RANGE")]
275    Range,
276    #[doc(alias = "GST_RTSP_HDR_REFERER")]
277    Referer,
278    #[doc(alias = "GST_RTSP_HDR_REQUIRE")]
279    Require,
280    #[doc(alias = "GST_RTSP_HDR_RETRY_AFTER")]
281    RetryAfter,
282    #[doc(alias = "GST_RTSP_HDR_RTP_INFO")]
283    RtpInfo,
284    #[doc(alias = "GST_RTSP_HDR_SCALE")]
285    Scale,
286    #[doc(alias = "GST_RTSP_HDR_SESSION")]
287    Session,
288    #[doc(alias = "GST_RTSP_HDR_SERVER")]
289    Server,
290    #[doc(alias = "GST_RTSP_HDR_SPEED")]
291    Speed,
292    #[doc(alias = "GST_RTSP_HDR_TRANSPORT")]
293    Transport,
294    #[doc(alias = "GST_RTSP_HDR_UNSUPPORTED")]
295    Unsupported,
296    #[doc(alias = "GST_RTSP_HDR_USER_AGENT")]
297    UserAgent,
298    #[doc(alias = "GST_RTSP_HDR_VIA")]
299    Via,
300    #[doc(alias = "GST_RTSP_HDR_WWW_AUTHENTICATE")]
301    WwwAuthenticate,
302    #[doc(alias = "GST_RTSP_HDR_CLIENT_CHALLENGE")]
303    ClientChallenge,
304    #[doc(alias = "GST_RTSP_HDR_REAL_CHALLENGE1")]
305    RealChallenge1,
306    #[doc(alias = "GST_RTSP_HDR_REAL_CHALLENGE2")]
307    RealChallenge2,
308    #[doc(alias = "GST_RTSP_HDR_REAL_CHALLENGE3")]
309    RealChallenge3,
310    #[doc(alias = "GST_RTSP_HDR_SUBSCRIBE")]
311    Subscribe,
312    #[doc(alias = "GST_RTSP_HDR_ALERT")]
313    Alert,
314    #[doc(alias = "GST_RTSP_HDR_CLIENT_ID")]
315    ClientId,
316    #[doc(alias = "GST_RTSP_HDR_COMPANY_ID")]
317    CompanyId,
318    #[doc(alias = "GST_RTSP_HDR_GUID")]
319    Guid,
320    #[doc(alias = "GST_RTSP_HDR_REGION_DATA")]
321    RegionData,
322    #[doc(alias = "GST_RTSP_HDR_MAX_ASM_WIDTH")]
323    MaxAsmWidth,
324    #[doc(alias = "GST_RTSP_HDR_LANGUAGE")]
325    Language,
326    #[doc(alias = "GST_RTSP_HDR_PLAYER_START_TIME")]
327    PlayerStartTime,
328    #[doc(alias = "GST_RTSP_HDR_LOCATION")]
329    Location,
330    #[doc(alias = "GST_RTSP_HDR_ETAG")]
331    Etag,
332    #[doc(alias = "GST_RTSP_HDR_IF_MATCH")]
333    IfMatch,
334    #[doc(alias = "GST_RTSP_HDR_ACCEPT_CHARSET")]
335    AcceptCharset,
336    #[doc(alias = "GST_RTSP_HDR_SUPPORTED")]
337    Supported,
338    #[doc(alias = "GST_RTSP_HDR_VARY")]
339    Vary,
340    #[doc(alias = "GST_RTSP_HDR_X_ACCELERATE_STREAMING")]
341    XAccelerateStreaming,
342    #[doc(alias = "GST_RTSP_HDR_X_ACCEPT_AUTHENT")]
343    XAcceptAuthent,
344    #[doc(alias = "GST_RTSP_HDR_X_ACCEPT_PROXY_AUTHENT")]
345    XAcceptProxyAuthent,
346    #[doc(alias = "GST_RTSP_HDR_X_BROADCAST_ID")]
347    XBroadcastId,
348    #[doc(alias = "GST_RTSP_HDR_X_BURST_STREAMING")]
349    XBurstStreaming,
350    #[doc(alias = "GST_RTSP_HDR_X_NOTICE")]
351    XNotice,
352    #[doc(alias = "GST_RTSP_HDR_X_PLAYER_LAG_TIME")]
353    XPlayerLagTime,
354    #[doc(alias = "GST_RTSP_HDR_X_PLAYLIST")]
355    XPlaylist,
356    #[doc(alias = "GST_RTSP_HDR_X_PLAYLIST_CHANGE_NOTICE")]
357    XPlaylistChangeNotice,
358    #[doc(alias = "GST_RTSP_HDR_X_PLAYLIST_GEN_ID")]
359    XPlaylistGenId,
360    #[doc(alias = "GST_RTSP_HDR_X_PLAYLIST_SEEK_ID")]
361    XPlaylistSeekId,
362    #[doc(alias = "GST_RTSP_HDR_X_PROXY_CLIENT_AGENT")]
363    XProxyClientAgent,
364    #[doc(alias = "GST_RTSP_HDR_X_PROXY_CLIENT_VERB")]
365    XProxyClientVerb,
366    #[doc(alias = "GST_RTSP_HDR_X_RECEDING_PLAYLISTCHANGE")]
367    XRecedingPlaylistchange,
368    #[doc(alias = "GST_RTSP_HDR_X_RTP_INFO")]
369    XRtpInfo,
370    #[doc(alias = "GST_RTSP_HDR_X_STARTUPPROFILE")]
371    XStartupprofile,
372    #[doc(alias = "GST_RTSP_HDR_TIMESTAMP")]
373    Timestamp,
374    #[doc(alias = "GST_RTSP_HDR_AUTHENTICATION_INFO")]
375    AuthenticationInfo,
376    #[doc(alias = "GST_RTSP_HDR_HOST")]
377    Host,
378    #[doc(alias = "GST_RTSP_HDR_PRAGMA")]
379    Pragma,
380    #[doc(alias = "GST_RTSP_HDR_X_SERVER_IP_ADDRESS")]
381    XServerIpAddress,
382    #[doc(alias = "GST_RTSP_HDR_X_SESSIONCOOKIE")]
383    XSessioncookie,
384    #[doc(alias = "GST_RTSP_HDR_RTCP_INTERVAL")]
385    RtcpInterval,
386    #[doc(alias = "GST_RTSP_HDR_KEYMGMT")]
387    Keymgmt,
388    #[doc(alias = "GST_RTSP_HDR_PIPELINED_REQUESTS")]
389    PipelinedRequests,
390    #[doc(alias = "GST_RTSP_HDR_MEDIA_PROPERTIES")]
391    MediaProperties,
392    #[doc(alias = "GST_RTSP_HDR_SEEK_STYLE")]
393    SeekStyle,
394    #[doc(alias = "GST_RTSP_HDR_ACCEPT_RANGES")]
395    AcceptRanges,
396    #[doc(alias = "GST_RTSP_HDR_FRAMES")]
397    Frames,
398    #[doc(alias = "GST_RTSP_HDR_RATE_CONTROL")]
399    RateControl,
400    #[doc(alias = "GST_RTSP_HDR_LAST")]
401    Last,
402    #[doc(hidden)]
403    __Unknown(i32),
404}
405
406#[doc(hidden)]
407impl IntoGlib for RTSPHeaderField {
408    type GlibType = ffi::GstRTSPHeaderField;
409
410    fn into_glib(self) -> ffi::GstRTSPHeaderField {
411        match self {
412            Self::Invalid => ffi::GST_RTSP_HDR_INVALID,
413            Self::Accept => ffi::GST_RTSP_HDR_ACCEPT,
414            Self::AcceptEncoding => ffi::GST_RTSP_HDR_ACCEPT_ENCODING,
415            Self::AcceptLanguage => ffi::GST_RTSP_HDR_ACCEPT_LANGUAGE,
416            Self::Allow => ffi::GST_RTSP_HDR_ALLOW,
417            Self::Authorization => ffi::GST_RTSP_HDR_AUTHORIZATION,
418            Self::Bandwidth => ffi::GST_RTSP_HDR_BANDWIDTH,
419            Self::Blocksize => ffi::GST_RTSP_HDR_BLOCKSIZE,
420            Self::CacheControl => ffi::GST_RTSP_HDR_CACHE_CONTROL,
421            Self::Conference => ffi::GST_RTSP_HDR_CONFERENCE,
422            Self::Connection => ffi::GST_RTSP_HDR_CONNECTION,
423            Self::ContentBase => ffi::GST_RTSP_HDR_CONTENT_BASE,
424            Self::ContentEncoding => ffi::GST_RTSP_HDR_CONTENT_ENCODING,
425            Self::ContentLanguage => ffi::GST_RTSP_HDR_CONTENT_LANGUAGE,
426            Self::ContentLength => ffi::GST_RTSP_HDR_CONTENT_LENGTH,
427            Self::ContentLocation => ffi::GST_RTSP_HDR_CONTENT_LOCATION,
428            Self::ContentType => ffi::GST_RTSP_HDR_CONTENT_TYPE,
429            Self::Cseq => ffi::GST_RTSP_HDR_CSEQ,
430            Self::Date => ffi::GST_RTSP_HDR_DATE,
431            Self::Expires => ffi::GST_RTSP_HDR_EXPIRES,
432            Self::From => ffi::GST_RTSP_HDR_FROM,
433            Self::IfModifiedSince => ffi::GST_RTSP_HDR_IF_MODIFIED_SINCE,
434            Self::LastModified => ffi::GST_RTSP_HDR_LAST_MODIFIED,
435            Self::ProxyAuthenticate => ffi::GST_RTSP_HDR_PROXY_AUTHENTICATE,
436            Self::ProxyRequire => ffi::GST_RTSP_HDR_PROXY_REQUIRE,
437            Self::Public => ffi::GST_RTSP_HDR_PUBLIC,
438            Self::Range => ffi::GST_RTSP_HDR_RANGE,
439            Self::Referer => ffi::GST_RTSP_HDR_REFERER,
440            Self::Require => ffi::GST_RTSP_HDR_REQUIRE,
441            Self::RetryAfter => ffi::GST_RTSP_HDR_RETRY_AFTER,
442            Self::RtpInfo => ffi::GST_RTSP_HDR_RTP_INFO,
443            Self::Scale => ffi::GST_RTSP_HDR_SCALE,
444            Self::Session => ffi::GST_RTSP_HDR_SESSION,
445            Self::Server => ffi::GST_RTSP_HDR_SERVER,
446            Self::Speed => ffi::GST_RTSP_HDR_SPEED,
447            Self::Transport => ffi::GST_RTSP_HDR_TRANSPORT,
448            Self::Unsupported => ffi::GST_RTSP_HDR_UNSUPPORTED,
449            Self::UserAgent => ffi::GST_RTSP_HDR_USER_AGENT,
450            Self::Via => ffi::GST_RTSP_HDR_VIA,
451            Self::WwwAuthenticate => ffi::GST_RTSP_HDR_WWW_AUTHENTICATE,
452            Self::ClientChallenge => ffi::GST_RTSP_HDR_CLIENT_CHALLENGE,
453            Self::RealChallenge1 => ffi::GST_RTSP_HDR_REAL_CHALLENGE1,
454            Self::RealChallenge2 => ffi::GST_RTSP_HDR_REAL_CHALLENGE2,
455            Self::RealChallenge3 => ffi::GST_RTSP_HDR_REAL_CHALLENGE3,
456            Self::Subscribe => ffi::GST_RTSP_HDR_SUBSCRIBE,
457            Self::Alert => ffi::GST_RTSP_HDR_ALERT,
458            Self::ClientId => ffi::GST_RTSP_HDR_CLIENT_ID,
459            Self::CompanyId => ffi::GST_RTSP_HDR_COMPANY_ID,
460            Self::Guid => ffi::GST_RTSP_HDR_GUID,
461            Self::RegionData => ffi::GST_RTSP_HDR_REGION_DATA,
462            Self::MaxAsmWidth => ffi::GST_RTSP_HDR_MAX_ASM_WIDTH,
463            Self::Language => ffi::GST_RTSP_HDR_LANGUAGE,
464            Self::PlayerStartTime => ffi::GST_RTSP_HDR_PLAYER_START_TIME,
465            Self::Location => ffi::GST_RTSP_HDR_LOCATION,
466            Self::Etag => ffi::GST_RTSP_HDR_ETAG,
467            Self::IfMatch => ffi::GST_RTSP_HDR_IF_MATCH,
468            Self::AcceptCharset => ffi::GST_RTSP_HDR_ACCEPT_CHARSET,
469            Self::Supported => ffi::GST_RTSP_HDR_SUPPORTED,
470            Self::Vary => ffi::GST_RTSP_HDR_VARY,
471            Self::XAccelerateStreaming => ffi::GST_RTSP_HDR_X_ACCELERATE_STREAMING,
472            Self::XAcceptAuthent => ffi::GST_RTSP_HDR_X_ACCEPT_AUTHENT,
473            Self::XAcceptProxyAuthent => ffi::GST_RTSP_HDR_X_ACCEPT_PROXY_AUTHENT,
474            Self::XBroadcastId => ffi::GST_RTSP_HDR_X_BROADCAST_ID,
475            Self::XBurstStreaming => ffi::GST_RTSP_HDR_X_BURST_STREAMING,
476            Self::XNotice => ffi::GST_RTSP_HDR_X_NOTICE,
477            Self::XPlayerLagTime => ffi::GST_RTSP_HDR_X_PLAYER_LAG_TIME,
478            Self::XPlaylist => ffi::GST_RTSP_HDR_X_PLAYLIST,
479            Self::XPlaylistChangeNotice => ffi::GST_RTSP_HDR_X_PLAYLIST_CHANGE_NOTICE,
480            Self::XPlaylistGenId => ffi::GST_RTSP_HDR_X_PLAYLIST_GEN_ID,
481            Self::XPlaylistSeekId => ffi::GST_RTSP_HDR_X_PLAYLIST_SEEK_ID,
482            Self::XProxyClientAgent => ffi::GST_RTSP_HDR_X_PROXY_CLIENT_AGENT,
483            Self::XProxyClientVerb => ffi::GST_RTSP_HDR_X_PROXY_CLIENT_VERB,
484            Self::XRecedingPlaylistchange => ffi::GST_RTSP_HDR_X_RECEDING_PLAYLISTCHANGE,
485            Self::XRtpInfo => ffi::GST_RTSP_HDR_X_RTP_INFO,
486            Self::XStartupprofile => ffi::GST_RTSP_HDR_X_STARTUPPROFILE,
487            Self::Timestamp => ffi::GST_RTSP_HDR_TIMESTAMP,
488            Self::AuthenticationInfo => ffi::GST_RTSP_HDR_AUTHENTICATION_INFO,
489            Self::Host => ffi::GST_RTSP_HDR_HOST,
490            Self::Pragma => ffi::GST_RTSP_HDR_PRAGMA,
491            Self::XServerIpAddress => ffi::GST_RTSP_HDR_X_SERVER_IP_ADDRESS,
492            Self::XSessioncookie => ffi::GST_RTSP_HDR_X_SESSIONCOOKIE,
493            Self::RtcpInterval => ffi::GST_RTSP_HDR_RTCP_INTERVAL,
494            Self::Keymgmt => ffi::GST_RTSP_HDR_KEYMGMT,
495            Self::PipelinedRequests => ffi::GST_RTSP_HDR_PIPELINED_REQUESTS,
496            Self::MediaProperties => ffi::GST_RTSP_HDR_MEDIA_PROPERTIES,
497            Self::SeekStyle => ffi::GST_RTSP_HDR_SEEK_STYLE,
498            Self::AcceptRanges => ffi::GST_RTSP_HDR_ACCEPT_RANGES,
499            Self::Frames => ffi::GST_RTSP_HDR_FRAMES,
500            Self::RateControl => ffi::GST_RTSP_HDR_RATE_CONTROL,
501            Self::Last => ffi::GST_RTSP_HDR_LAST,
502            Self::__Unknown(value) => value,
503        }
504    }
505}
506
507#[doc(hidden)]
508impl FromGlib<ffi::GstRTSPHeaderField> for RTSPHeaderField {
509    unsafe fn from_glib(value: ffi::GstRTSPHeaderField) -> Self {
510        skip_assert_initialized!();
511
512        match value {
513            ffi::GST_RTSP_HDR_INVALID => Self::Invalid,
514            ffi::GST_RTSP_HDR_ACCEPT => Self::Accept,
515            ffi::GST_RTSP_HDR_ACCEPT_ENCODING => Self::AcceptEncoding,
516            ffi::GST_RTSP_HDR_ACCEPT_LANGUAGE => Self::AcceptLanguage,
517            ffi::GST_RTSP_HDR_ALLOW => Self::Allow,
518            ffi::GST_RTSP_HDR_AUTHORIZATION => Self::Authorization,
519            ffi::GST_RTSP_HDR_BANDWIDTH => Self::Bandwidth,
520            ffi::GST_RTSP_HDR_BLOCKSIZE => Self::Blocksize,
521            ffi::GST_RTSP_HDR_CACHE_CONTROL => Self::CacheControl,
522            ffi::GST_RTSP_HDR_CONFERENCE => Self::Conference,
523            ffi::GST_RTSP_HDR_CONNECTION => Self::Connection,
524            ffi::GST_RTSP_HDR_CONTENT_BASE => Self::ContentBase,
525            ffi::GST_RTSP_HDR_CONTENT_ENCODING => Self::ContentEncoding,
526            ffi::GST_RTSP_HDR_CONTENT_LANGUAGE => Self::ContentLanguage,
527            ffi::GST_RTSP_HDR_CONTENT_LENGTH => Self::ContentLength,
528            ffi::GST_RTSP_HDR_CONTENT_LOCATION => Self::ContentLocation,
529            ffi::GST_RTSP_HDR_CONTENT_TYPE => Self::ContentType,
530            ffi::GST_RTSP_HDR_CSEQ => Self::Cseq,
531            ffi::GST_RTSP_HDR_DATE => Self::Date,
532            ffi::GST_RTSP_HDR_EXPIRES => Self::Expires,
533            ffi::GST_RTSP_HDR_FROM => Self::From,
534            ffi::GST_RTSP_HDR_IF_MODIFIED_SINCE => Self::IfModifiedSince,
535            ffi::GST_RTSP_HDR_LAST_MODIFIED => Self::LastModified,
536            ffi::GST_RTSP_HDR_PROXY_AUTHENTICATE => Self::ProxyAuthenticate,
537            ffi::GST_RTSP_HDR_PROXY_REQUIRE => Self::ProxyRequire,
538            ffi::GST_RTSP_HDR_PUBLIC => Self::Public,
539            ffi::GST_RTSP_HDR_RANGE => Self::Range,
540            ffi::GST_RTSP_HDR_REFERER => Self::Referer,
541            ffi::GST_RTSP_HDR_REQUIRE => Self::Require,
542            ffi::GST_RTSP_HDR_RETRY_AFTER => Self::RetryAfter,
543            ffi::GST_RTSP_HDR_RTP_INFO => Self::RtpInfo,
544            ffi::GST_RTSP_HDR_SCALE => Self::Scale,
545            ffi::GST_RTSP_HDR_SESSION => Self::Session,
546            ffi::GST_RTSP_HDR_SERVER => Self::Server,
547            ffi::GST_RTSP_HDR_SPEED => Self::Speed,
548            ffi::GST_RTSP_HDR_TRANSPORT => Self::Transport,
549            ffi::GST_RTSP_HDR_UNSUPPORTED => Self::Unsupported,
550            ffi::GST_RTSP_HDR_USER_AGENT => Self::UserAgent,
551            ffi::GST_RTSP_HDR_VIA => Self::Via,
552            ffi::GST_RTSP_HDR_WWW_AUTHENTICATE => Self::WwwAuthenticate,
553            ffi::GST_RTSP_HDR_CLIENT_CHALLENGE => Self::ClientChallenge,
554            ffi::GST_RTSP_HDR_REAL_CHALLENGE1 => Self::RealChallenge1,
555            ffi::GST_RTSP_HDR_REAL_CHALLENGE2 => Self::RealChallenge2,
556            ffi::GST_RTSP_HDR_REAL_CHALLENGE3 => Self::RealChallenge3,
557            ffi::GST_RTSP_HDR_SUBSCRIBE => Self::Subscribe,
558            ffi::GST_RTSP_HDR_ALERT => Self::Alert,
559            ffi::GST_RTSP_HDR_CLIENT_ID => Self::ClientId,
560            ffi::GST_RTSP_HDR_COMPANY_ID => Self::CompanyId,
561            ffi::GST_RTSP_HDR_GUID => Self::Guid,
562            ffi::GST_RTSP_HDR_REGION_DATA => Self::RegionData,
563            ffi::GST_RTSP_HDR_MAX_ASM_WIDTH => Self::MaxAsmWidth,
564            ffi::GST_RTSP_HDR_LANGUAGE => Self::Language,
565            ffi::GST_RTSP_HDR_PLAYER_START_TIME => Self::PlayerStartTime,
566            ffi::GST_RTSP_HDR_LOCATION => Self::Location,
567            ffi::GST_RTSP_HDR_ETAG => Self::Etag,
568            ffi::GST_RTSP_HDR_IF_MATCH => Self::IfMatch,
569            ffi::GST_RTSP_HDR_ACCEPT_CHARSET => Self::AcceptCharset,
570            ffi::GST_RTSP_HDR_SUPPORTED => Self::Supported,
571            ffi::GST_RTSP_HDR_VARY => Self::Vary,
572            ffi::GST_RTSP_HDR_X_ACCELERATE_STREAMING => Self::XAccelerateStreaming,
573            ffi::GST_RTSP_HDR_X_ACCEPT_AUTHENT => Self::XAcceptAuthent,
574            ffi::GST_RTSP_HDR_X_ACCEPT_PROXY_AUTHENT => Self::XAcceptProxyAuthent,
575            ffi::GST_RTSP_HDR_X_BROADCAST_ID => Self::XBroadcastId,
576            ffi::GST_RTSP_HDR_X_BURST_STREAMING => Self::XBurstStreaming,
577            ffi::GST_RTSP_HDR_X_NOTICE => Self::XNotice,
578            ffi::GST_RTSP_HDR_X_PLAYER_LAG_TIME => Self::XPlayerLagTime,
579            ffi::GST_RTSP_HDR_X_PLAYLIST => Self::XPlaylist,
580            ffi::GST_RTSP_HDR_X_PLAYLIST_CHANGE_NOTICE => Self::XPlaylistChangeNotice,
581            ffi::GST_RTSP_HDR_X_PLAYLIST_GEN_ID => Self::XPlaylistGenId,
582            ffi::GST_RTSP_HDR_X_PLAYLIST_SEEK_ID => Self::XPlaylistSeekId,
583            ffi::GST_RTSP_HDR_X_PROXY_CLIENT_AGENT => Self::XProxyClientAgent,
584            ffi::GST_RTSP_HDR_X_PROXY_CLIENT_VERB => Self::XProxyClientVerb,
585            ffi::GST_RTSP_HDR_X_RECEDING_PLAYLISTCHANGE => Self::XRecedingPlaylistchange,
586            ffi::GST_RTSP_HDR_X_RTP_INFO => Self::XRtpInfo,
587            ffi::GST_RTSP_HDR_X_STARTUPPROFILE => Self::XStartupprofile,
588            ffi::GST_RTSP_HDR_TIMESTAMP => Self::Timestamp,
589            ffi::GST_RTSP_HDR_AUTHENTICATION_INFO => Self::AuthenticationInfo,
590            ffi::GST_RTSP_HDR_HOST => Self::Host,
591            ffi::GST_RTSP_HDR_PRAGMA => Self::Pragma,
592            ffi::GST_RTSP_HDR_X_SERVER_IP_ADDRESS => Self::XServerIpAddress,
593            ffi::GST_RTSP_HDR_X_SESSIONCOOKIE => Self::XSessioncookie,
594            ffi::GST_RTSP_HDR_RTCP_INTERVAL => Self::RtcpInterval,
595            ffi::GST_RTSP_HDR_KEYMGMT => Self::Keymgmt,
596            ffi::GST_RTSP_HDR_PIPELINED_REQUESTS => Self::PipelinedRequests,
597            ffi::GST_RTSP_HDR_MEDIA_PROPERTIES => Self::MediaProperties,
598            ffi::GST_RTSP_HDR_SEEK_STYLE => Self::SeekStyle,
599            ffi::GST_RTSP_HDR_ACCEPT_RANGES => Self::AcceptRanges,
600            ffi::GST_RTSP_HDR_FRAMES => Self::Frames,
601            ffi::GST_RTSP_HDR_RATE_CONTROL => Self::RateControl,
602            ffi::GST_RTSP_HDR_LAST => Self::Last,
603            value => Self::__Unknown(value),
604        }
605    }
606}
607
608impl StaticType for RTSPHeaderField {
609    #[inline]
610    #[doc(alias = "gst_rtsp_header_field_get_type")]
611    fn static_type() -> glib::Type {
612        unsafe { from_glib(ffi::gst_rtsp_header_field_get_type()) }
613    }
614}
615
616impl glib::HasParamSpec for RTSPHeaderField {
617    type ParamSpec = glib::ParamSpecEnum;
618    type SetValue = Self;
619    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
620
621    fn param_spec_builder() -> Self::BuilderFn {
622        Self::ParamSpec::builder_with_default
623    }
624}
625
626impl glib::value::ValueType for RTSPHeaderField {
627    type Type = Self;
628}
629
630unsafe impl<'a> glib::value::FromValue<'a> for RTSPHeaderField {
631    type Checker = glib::value::GenericValueTypeChecker<Self>;
632
633    #[inline]
634    unsafe fn from_value(value: &'a glib::Value) -> Self {
635        skip_assert_initialized!();
636        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
637    }
638}
639
640impl ToValue for RTSPHeaderField {
641    #[inline]
642    fn to_value(&self) -> glib::Value {
643        let mut value = glib::Value::for_value_type::<Self>();
644        unsafe {
645            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
646        }
647        value
648    }
649
650    #[inline]
651    fn value_type(&self) -> glib::Type {
652        Self::static_type()
653    }
654}
655
656impl From<RTSPHeaderField> for glib::Value {
657    #[inline]
658    fn from(v: RTSPHeaderField) -> Self {
659        skip_assert_initialized!();
660        ToValue::to_value(&v)
661    }
662}
663
664/// The type of a message.
665#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
666#[non_exhaustive]
667#[doc(alias = "GstRTSPMsgType")]
668pub enum RTSPMsgType {
669    /// invalid message type
670    #[doc(alias = "GST_RTSP_MESSAGE_INVALID")]
671    Invalid,
672    /// RTSP request message
673    #[doc(alias = "GST_RTSP_MESSAGE_REQUEST")]
674    Request,
675    /// RTSP response message
676    #[doc(alias = "GST_RTSP_MESSAGE_RESPONSE")]
677    Response,
678    /// HTTP request message.
679    #[doc(alias = "GST_RTSP_MESSAGE_HTTP_REQUEST")]
680    HttpRequest,
681    /// HTTP response message.
682    #[doc(alias = "GST_RTSP_MESSAGE_HTTP_RESPONSE")]
683    HttpResponse,
684    /// data message
685    #[doc(alias = "GST_RTSP_MESSAGE_DATA")]
686    Data,
687    #[doc(hidden)]
688    __Unknown(i32),
689}
690
691#[doc(hidden)]
692impl IntoGlib for RTSPMsgType {
693    type GlibType = ffi::GstRTSPMsgType;
694
695    #[inline]
696    fn into_glib(self) -> ffi::GstRTSPMsgType {
697        match self {
698            Self::Invalid => ffi::GST_RTSP_MESSAGE_INVALID,
699            Self::Request => ffi::GST_RTSP_MESSAGE_REQUEST,
700            Self::Response => ffi::GST_RTSP_MESSAGE_RESPONSE,
701            Self::HttpRequest => ffi::GST_RTSP_MESSAGE_HTTP_REQUEST,
702            Self::HttpResponse => ffi::GST_RTSP_MESSAGE_HTTP_RESPONSE,
703            Self::Data => ffi::GST_RTSP_MESSAGE_DATA,
704            Self::__Unknown(value) => value,
705        }
706    }
707}
708
709#[doc(hidden)]
710impl FromGlib<ffi::GstRTSPMsgType> for RTSPMsgType {
711    #[inline]
712    unsafe fn from_glib(value: ffi::GstRTSPMsgType) -> Self {
713        skip_assert_initialized!();
714
715        match value {
716            ffi::GST_RTSP_MESSAGE_INVALID => Self::Invalid,
717            ffi::GST_RTSP_MESSAGE_REQUEST => Self::Request,
718            ffi::GST_RTSP_MESSAGE_RESPONSE => Self::Response,
719            ffi::GST_RTSP_MESSAGE_HTTP_REQUEST => Self::HttpRequest,
720            ffi::GST_RTSP_MESSAGE_HTTP_RESPONSE => Self::HttpResponse,
721            ffi::GST_RTSP_MESSAGE_DATA => Self::Data,
722            value => Self::__Unknown(value),
723        }
724    }
725}
726
727impl StaticType for RTSPMsgType {
728    #[inline]
729    #[doc(alias = "gst_rtsp_msg_type_get_type")]
730    fn static_type() -> glib::Type {
731        unsafe { from_glib(ffi::gst_rtsp_msg_type_get_type()) }
732    }
733}
734
735impl glib::HasParamSpec for RTSPMsgType {
736    type ParamSpec = glib::ParamSpecEnum;
737    type SetValue = Self;
738    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
739
740    fn param_spec_builder() -> Self::BuilderFn {
741        Self::ParamSpec::builder_with_default
742    }
743}
744
745impl glib::value::ValueType for RTSPMsgType {
746    type Type = Self;
747}
748
749unsafe impl<'a> glib::value::FromValue<'a> for RTSPMsgType {
750    type Checker = glib::value::GenericValueTypeChecker<Self>;
751
752    #[inline]
753    unsafe fn from_value(value: &'a glib::Value) -> Self {
754        skip_assert_initialized!();
755        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
756    }
757}
758
759impl ToValue for RTSPMsgType {
760    #[inline]
761    fn to_value(&self) -> glib::Value {
762        let mut value = glib::Value::for_value_type::<Self>();
763        unsafe {
764            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
765        }
766        value
767    }
768
769    #[inline]
770    fn value_type(&self) -> glib::Type {
771        Self::static_type()
772    }
773}
774
775impl From<RTSPMsgType> for glib::Value {
776    #[inline]
777    fn from(v: RTSPMsgType) -> Self {
778        skip_assert_initialized!();
779        ToValue::to_value(&v)
780    }
781}
782
783/// Different possible time range units.
784#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
785#[non_exhaustive]
786#[doc(alias = "GstRTSPRangeUnit")]
787pub enum RTSPRangeUnit {
788    /// SMPTE timecode
789    #[doc(alias = "GST_RTSP_RANGE_SMPTE")]
790    Smpte,
791    /// 29.97 frames per second
792    #[doc(alias = "GST_RTSP_RANGE_SMPTE_30_DROP")]
793    Smpte30Drop,
794    /// 25 frames per second
795    #[doc(alias = "GST_RTSP_RANGE_SMPTE_25")]
796    Smpte25,
797    /// Normal play time
798    #[doc(alias = "GST_RTSP_RANGE_NPT")]
799    Npt,
800    /// Absolute time expressed as ISO 8601 timestamps
801    #[doc(alias = "GST_RTSP_RANGE_CLOCK")]
802    Clock,
803    #[doc(hidden)]
804    __Unknown(i32),
805}
806
807#[doc(hidden)]
808impl IntoGlib for RTSPRangeUnit {
809    type GlibType = ffi::GstRTSPRangeUnit;
810
811    #[inline]
812    fn into_glib(self) -> ffi::GstRTSPRangeUnit {
813        match self {
814            Self::Smpte => ffi::GST_RTSP_RANGE_SMPTE,
815            Self::Smpte30Drop => ffi::GST_RTSP_RANGE_SMPTE_30_DROP,
816            Self::Smpte25 => ffi::GST_RTSP_RANGE_SMPTE_25,
817            Self::Npt => ffi::GST_RTSP_RANGE_NPT,
818            Self::Clock => ffi::GST_RTSP_RANGE_CLOCK,
819            Self::__Unknown(value) => value,
820        }
821    }
822}
823
824#[doc(hidden)]
825impl FromGlib<ffi::GstRTSPRangeUnit> for RTSPRangeUnit {
826    #[inline]
827    unsafe fn from_glib(value: ffi::GstRTSPRangeUnit) -> Self {
828        skip_assert_initialized!();
829
830        match value {
831            ffi::GST_RTSP_RANGE_SMPTE => Self::Smpte,
832            ffi::GST_RTSP_RANGE_SMPTE_30_DROP => Self::Smpte30Drop,
833            ffi::GST_RTSP_RANGE_SMPTE_25 => Self::Smpte25,
834            ffi::GST_RTSP_RANGE_NPT => Self::Npt,
835            ffi::GST_RTSP_RANGE_CLOCK => Self::Clock,
836            value => Self::__Unknown(value),
837        }
838    }
839}
840
841impl StaticType for RTSPRangeUnit {
842    #[inline]
843    #[doc(alias = "gst_rtsp_range_unit_get_type")]
844    fn static_type() -> glib::Type {
845        unsafe { from_glib(ffi::gst_rtsp_range_unit_get_type()) }
846    }
847}
848
849impl glib::HasParamSpec for RTSPRangeUnit {
850    type ParamSpec = glib::ParamSpecEnum;
851    type SetValue = Self;
852    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
853
854    fn param_spec_builder() -> Self::BuilderFn {
855        Self::ParamSpec::builder_with_default
856    }
857}
858
859impl glib::value::ValueType for RTSPRangeUnit {
860    type Type = Self;
861}
862
863unsafe impl<'a> glib::value::FromValue<'a> for RTSPRangeUnit {
864    type Checker = glib::value::GenericValueTypeChecker<Self>;
865
866    #[inline]
867    unsafe fn from_value(value: &'a glib::Value) -> Self {
868        skip_assert_initialized!();
869        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
870    }
871}
872
873impl ToValue for RTSPRangeUnit {
874    #[inline]
875    fn to_value(&self) -> glib::Value {
876        let mut value = glib::Value::for_value_type::<Self>();
877        unsafe {
878            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
879        }
880        value
881    }
882
883    #[inline]
884    fn value_type(&self) -> glib::Type {
885        Self::static_type()
886    }
887}
888
889impl From<RTSPRangeUnit> for glib::Value {
890    #[inline]
891    fn from(v: RTSPRangeUnit) -> Self {
892        skip_assert_initialized!();
893        ToValue::to_value(&v)
894    }
895}
896
897/// Result codes from the RTSP functions.
898#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
899#[non_exhaustive]
900#[doc(alias = "GstRTSPResult")]
901pub enum RTSPResult {
902    /// no error
903    #[doc(alias = "GST_RTSP_OK")]
904    Ok,
905    /// RTSP request is successful, but was redirected.
906    #[cfg(feature = "v1_24")]
907    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
908    #[doc(alias = "GST_RTSP_OK_REDIRECT")]
909    OkRedirect,
910    /// some unspecified error occurred
911    #[doc(alias = "GST_RTSP_ERROR")]
912    Error,
913    /// invalid arguments were provided to a function
914    #[doc(alias = "GST_RTSP_EINVAL")]
915    Einval,
916    /// an operation was canceled
917    #[doc(alias = "GST_RTSP_EINTR")]
918    Eintr,
919    /// no memory was available for the operation
920    #[doc(alias = "GST_RTSP_ENOMEM")]
921    Enomem,
922    /// a host resolve error occurred
923    #[doc(alias = "GST_RTSP_ERESOLV")]
924    Eresolv,
925    /// function not implemented
926    #[doc(alias = "GST_RTSP_ENOTIMPL")]
927    Enotimpl,
928    /// a system error occurred, errno contains more details
929    #[doc(alias = "GST_RTSP_ESYS")]
930    Esys,
931    /// a parsing error occurred
932    #[doc(alias = "GST_RTSP_EPARSE")]
933    Eparse,
934    /// windows networking could not start
935    #[doc(alias = "GST_RTSP_EWSASTART")]
936    Ewsastart,
937    /// windows networking stack has wrong version
938    #[doc(alias = "GST_RTSP_EWSAVERSION")]
939    Ewsaversion,
940    /// end-of-file was reached
941    #[doc(alias = "GST_RTSP_EEOF")]
942    Eeof,
943    /// a network problem occurred, h_errno contains more details
944    #[doc(alias = "GST_RTSP_ENET")]
945    Enet,
946    /// the host is not an IP host
947    #[doc(alias = "GST_RTSP_ENOTIP")]
948    Enotip,
949    /// a timeout occurred
950    #[doc(alias = "GST_RTSP_ETIMEOUT")]
951    Etimeout,
952    /// the tunnel GET request has been performed
953    #[doc(alias = "GST_RTSP_ETGET")]
954    Etget,
955    /// the tunnel POST request has been performed
956    #[doc(alias = "GST_RTSP_ETPOST")]
957    Etpost,
958    /// last error
959    #[doc(alias = "GST_RTSP_ELAST")]
960    Elast,
961    #[doc(hidden)]
962    __Unknown(i32),
963}
964
965#[doc(hidden)]
966impl IntoGlib for RTSPResult {
967    type GlibType = ffi::GstRTSPResult;
968
969    fn into_glib(self) -> ffi::GstRTSPResult {
970        match self {
971            Self::Ok => ffi::GST_RTSP_OK,
972            #[cfg(feature = "v1_24")]
973            Self::OkRedirect => ffi::GST_RTSP_OK_REDIRECT,
974            Self::Error => ffi::GST_RTSP_ERROR,
975            Self::Einval => ffi::GST_RTSP_EINVAL,
976            Self::Eintr => ffi::GST_RTSP_EINTR,
977            Self::Enomem => ffi::GST_RTSP_ENOMEM,
978            Self::Eresolv => ffi::GST_RTSP_ERESOLV,
979            Self::Enotimpl => ffi::GST_RTSP_ENOTIMPL,
980            Self::Esys => ffi::GST_RTSP_ESYS,
981            Self::Eparse => ffi::GST_RTSP_EPARSE,
982            Self::Ewsastart => ffi::GST_RTSP_EWSASTART,
983            Self::Ewsaversion => ffi::GST_RTSP_EWSAVERSION,
984            Self::Eeof => ffi::GST_RTSP_EEOF,
985            Self::Enet => ffi::GST_RTSP_ENET,
986            Self::Enotip => ffi::GST_RTSP_ENOTIP,
987            Self::Etimeout => ffi::GST_RTSP_ETIMEOUT,
988            Self::Etget => ffi::GST_RTSP_ETGET,
989            Self::Etpost => ffi::GST_RTSP_ETPOST,
990            Self::Elast => ffi::GST_RTSP_ELAST,
991            Self::__Unknown(value) => value,
992        }
993    }
994}
995
996#[doc(hidden)]
997impl FromGlib<ffi::GstRTSPResult> for RTSPResult {
998    unsafe fn from_glib(value: ffi::GstRTSPResult) -> Self {
999        skip_assert_initialized!();
1000
1001        match value {
1002            ffi::GST_RTSP_OK => Self::Ok,
1003            #[cfg(feature = "v1_24")]
1004            ffi::GST_RTSP_OK_REDIRECT => Self::OkRedirect,
1005            ffi::GST_RTSP_ERROR => Self::Error,
1006            ffi::GST_RTSP_EINVAL => Self::Einval,
1007            ffi::GST_RTSP_EINTR => Self::Eintr,
1008            ffi::GST_RTSP_ENOMEM => Self::Enomem,
1009            ffi::GST_RTSP_ERESOLV => Self::Eresolv,
1010            ffi::GST_RTSP_ENOTIMPL => Self::Enotimpl,
1011            ffi::GST_RTSP_ESYS => Self::Esys,
1012            ffi::GST_RTSP_EPARSE => Self::Eparse,
1013            ffi::GST_RTSP_EWSASTART => Self::Ewsastart,
1014            ffi::GST_RTSP_EWSAVERSION => Self::Ewsaversion,
1015            ffi::GST_RTSP_EEOF => Self::Eeof,
1016            ffi::GST_RTSP_ENET => Self::Enet,
1017            ffi::GST_RTSP_ENOTIP => Self::Enotip,
1018            ffi::GST_RTSP_ETIMEOUT => Self::Etimeout,
1019            ffi::GST_RTSP_ETGET => Self::Etget,
1020            ffi::GST_RTSP_ETPOST => Self::Etpost,
1021            ffi::GST_RTSP_ELAST => Self::Elast,
1022            value => Self::__Unknown(value),
1023        }
1024    }
1025}
1026
1027impl StaticType for RTSPResult {
1028    #[inline]
1029    #[doc(alias = "gst_rtsp_result_get_type")]
1030    fn static_type() -> glib::Type {
1031        unsafe { from_glib(ffi::gst_rtsp_result_get_type()) }
1032    }
1033}
1034
1035impl glib::HasParamSpec for RTSPResult {
1036    type ParamSpec = glib::ParamSpecEnum;
1037    type SetValue = Self;
1038    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1039
1040    fn param_spec_builder() -> Self::BuilderFn {
1041        Self::ParamSpec::builder_with_default
1042    }
1043}
1044
1045impl glib::value::ValueType for RTSPResult {
1046    type Type = Self;
1047}
1048
1049unsafe impl<'a> glib::value::FromValue<'a> for RTSPResult {
1050    type Checker = glib::value::GenericValueTypeChecker<Self>;
1051
1052    #[inline]
1053    unsafe fn from_value(value: &'a glib::Value) -> Self {
1054        skip_assert_initialized!();
1055        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1056    }
1057}
1058
1059impl ToValue for RTSPResult {
1060    #[inline]
1061    fn to_value(&self) -> glib::Value {
1062        let mut value = glib::Value::for_value_type::<Self>();
1063        unsafe {
1064            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1065        }
1066        value
1067    }
1068
1069    #[inline]
1070    fn value_type(&self) -> glib::Type {
1071        Self::static_type()
1072    }
1073}
1074
1075impl From<RTSPResult> for glib::Value {
1076    #[inline]
1077    fn from(v: RTSPResult) -> Self {
1078        skip_assert_initialized!();
1079        ToValue::to_value(&v)
1080    }
1081}
1082
1083/// The different RTSP states.
1084#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1085#[non_exhaustive]
1086#[doc(alias = "GstRTSPState")]
1087pub enum RTSPState {
1088    /// invalid state
1089    #[doc(alias = "GST_RTSP_STATE_INVALID")]
1090    Invalid,
1091    /// initializing
1092    #[doc(alias = "GST_RTSP_STATE_INIT")]
1093    Init,
1094    /// ready for operation
1095    #[doc(alias = "GST_RTSP_STATE_READY")]
1096    Ready,
1097    /// seeking in progress
1098    #[doc(alias = "GST_RTSP_STATE_SEEKING")]
1099    Seeking,
1100    /// playing
1101    #[doc(alias = "GST_RTSP_STATE_PLAYING")]
1102    Playing,
1103    /// recording
1104    #[doc(alias = "GST_RTSP_STATE_RECORDING")]
1105    Recording,
1106    #[doc(hidden)]
1107    __Unknown(i32),
1108}
1109
1110#[doc(hidden)]
1111impl IntoGlib for RTSPState {
1112    type GlibType = ffi::GstRTSPState;
1113
1114    #[inline]
1115    fn into_glib(self) -> ffi::GstRTSPState {
1116        match self {
1117            Self::Invalid => ffi::GST_RTSP_STATE_INVALID,
1118            Self::Init => ffi::GST_RTSP_STATE_INIT,
1119            Self::Ready => ffi::GST_RTSP_STATE_READY,
1120            Self::Seeking => ffi::GST_RTSP_STATE_SEEKING,
1121            Self::Playing => ffi::GST_RTSP_STATE_PLAYING,
1122            Self::Recording => ffi::GST_RTSP_STATE_RECORDING,
1123            Self::__Unknown(value) => value,
1124        }
1125    }
1126}
1127
1128#[doc(hidden)]
1129impl FromGlib<ffi::GstRTSPState> for RTSPState {
1130    #[inline]
1131    unsafe fn from_glib(value: ffi::GstRTSPState) -> Self {
1132        skip_assert_initialized!();
1133
1134        match value {
1135            ffi::GST_RTSP_STATE_INVALID => Self::Invalid,
1136            ffi::GST_RTSP_STATE_INIT => Self::Init,
1137            ffi::GST_RTSP_STATE_READY => Self::Ready,
1138            ffi::GST_RTSP_STATE_SEEKING => Self::Seeking,
1139            ffi::GST_RTSP_STATE_PLAYING => Self::Playing,
1140            ffi::GST_RTSP_STATE_RECORDING => Self::Recording,
1141            value => Self::__Unknown(value),
1142        }
1143    }
1144}
1145
1146impl StaticType for RTSPState {
1147    #[inline]
1148    #[doc(alias = "gst_rtsp_state_get_type")]
1149    fn static_type() -> glib::Type {
1150        unsafe { from_glib(ffi::gst_rtsp_state_get_type()) }
1151    }
1152}
1153
1154impl glib::HasParamSpec for RTSPState {
1155    type ParamSpec = glib::ParamSpecEnum;
1156    type SetValue = Self;
1157    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1158
1159    fn param_spec_builder() -> Self::BuilderFn {
1160        Self::ParamSpec::builder_with_default
1161    }
1162}
1163
1164impl glib::value::ValueType for RTSPState {
1165    type Type = Self;
1166}
1167
1168unsafe impl<'a> glib::value::FromValue<'a> for RTSPState {
1169    type Checker = glib::value::GenericValueTypeChecker<Self>;
1170
1171    #[inline]
1172    unsafe fn from_value(value: &'a glib::Value) -> Self {
1173        skip_assert_initialized!();
1174        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1175    }
1176}
1177
1178impl ToValue for RTSPState {
1179    #[inline]
1180    fn to_value(&self) -> glib::Value {
1181        let mut value = glib::Value::for_value_type::<Self>();
1182        unsafe {
1183            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1184        }
1185        value
1186    }
1187
1188    #[inline]
1189    fn value_type(&self) -> glib::Type {
1190        Self::static_type()
1191    }
1192}
1193
1194impl From<RTSPState> for glib::Value {
1195    #[inline]
1196    fn from(v: RTSPState) -> Self {
1197        skip_assert_initialized!();
1198        ToValue::to_value(&v)
1199    }
1200}
1201
1202/// Enumeration of rtsp status codes
1203#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1204#[non_exhaustive]
1205#[doc(alias = "GstRTSPStatusCode")]
1206pub enum RTSPStatusCode {
1207    #[doc(alias = "GST_RTSP_STS_INVALID")]
1208    Invalid,
1209    #[doc(alias = "GST_RTSP_STS_CONTINUE")]
1210    Continue,
1211    #[doc(alias = "GST_RTSP_STS_OK")]
1212    Ok,
1213    #[doc(alias = "GST_RTSP_STS_CREATED")]
1214    Created,
1215    #[doc(alias = "GST_RTSP_STS_LOW_ON_STORAGE")]
1216    LowOnStorage,
1217    #[doc(alias = "GST_RTSP_STS_MULTIPLE_CHOICES")]
1218    MultipleChoices,
1219    #[doc(alias = "GST_RTSP_STS_MOVED_PERMANENTLY")]
1220    MovedPermanently,
1221    #[doc(alias = "GST_RTSP_STS_MOVE_TEMPORARILY")]
1222    MoveTemporarily,
1223    #[doc(alias = "GST_RTSP_STS_SEE_OTHER")]
1224    SeeOther,
1225    #[doc(alias = "GST_RTSP_STS_NOT_MODIFIED")]
1226    NotModified,
1227    #[doc(alias = "GST_RTSP_STS_USE_PROXY")]
1228    UseProxy,
1229    /// RTSP request is temporarily redirected
1230    #[cfg(feature = "v1_24")]
1231    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
1232    #[doc(alias = "GST_RTSP_STS_REDIRECT_TEMPORARILY")]
1233    RedirectTemporarily,
1234    /// RTSP request is permanently redirected
1235    #[cfg(feature = "v1_24")]
1236    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
1237    #[doc(alias = "GST_RTSP_STS_REDIRECT_PERMANENTLY")]
1238    RedirectPermanently,
1239    #[doc(alias = "GST_RTSP_STS_BAD_REQUEST")]
1240    BadRequest,
1241    #[doc(alias = "GST_RTSP_STS_UNAUTHORIZED")]
1242    Unauthorized,
1243    #[doc(alias = "GST_RTSP_STS_PAYMENT_REQUIRED")]
1244    PaymentRequired,
1245    #[doc(alias = "GST_RTSP_STS_FORBIDDEN")]
1246    Forbidden,
1247    #[doc(alias = "GST_RTSP_STS_NOT_FOUND")]
1248    NotFound,
1249    #[doc(alias = "GST_RTSP_STS_METHOD_NOT_ALLOWED")]
1250    MethodNotAllowed,
1251    #[doc(alias = "GST_RTSP_STS_NOT_ACCEPTABLE")]
1252    NotAcceptable,
1253    #[doc(alias = "GST_RTSP_STS_PROXY_AUTH_REQUIRED")]
1254    ProxyAuthRequired,
1255    #[doc(alias = "GST_RTSP_STS_REQUEST_TIMEOUT")]
1256    RequestTimeout,
1257    #[doc(alias = "GST_RTSP_STS_GONE")]
1258    Gone,
1259    #[doc(alias = "GST_RTSP_STS_LENGTH_REQUIRED")]
1260    LengthRequired,
1261    #[doc(alias = "GST_RTSP_STS_PRECONDITION_FAILED")]
1262    PreconditionFailed,
1263    #[doc(alias = "GST_RTSP_STS_REQUEST_ENTITY_TOO_LARGE")]
1264    RequestEntityTooLarge,
1265    #[doc(alias = "GST_RTSP_STS_REQUEST_URI_TOO_LARGE")]
1266    RequestUriTooLarge,
1267    #[doc(alias = "GST_RTSP_STS_UNSUPPORTED_MEDIA_TYPE")]
1268    UnsupportedMediaType,
1269    #[doc(alias = "GST_RTSP_STS_PARAMETER_NOT_UNDERSTOOD")]
1270    ParameterNotUnderstood,
1271    #[doc(alias = "GST_RTSP_STS_CONFERENCE_NOT_FOUND")]
1272    ConferenceNotFound,
1273    #[doc(alias = "GST_RTSP_STS_NOT_ENOUGH_BANDWIDTH")]
1274    NotEnoughBandwidth,
1275    #[doc(alias = "GST_RTSP_STS_SESSION_NOT_FOUND")]
1276    SessionNotFound,
1277    #[doc(alias = "GST_RTSP_STS_METHOD_NOT_VALID_IN_THIS_STATE")]
1278    MethodNotValidInThisState,
1279    #[doc(alias = "GST_RTSP_STS_HEADER_FIELD_NOT_VALID_FOR_RESOURCE")]
1280    HeaderFieldNotValidForResource,
1281    #[doc(alias = "GST_RTSP_STS_INVALID_RANGE")]
1282    InvalidRange,
1283    #[doc(alias = "GST_RTSP_STS_PARAMETER_IS_READONLY")]
1284    ParameterIsReadonly,
1285    #[doc(alias = "GST_RTSP_STS_AGGREGATE_OPERATION_NOT_ALLOWED")]
1286    AggregateOperationNotAllowed,
1287    #[doc(alias = "GST_RTSP_STS_ONLY_AGGREGATE_OPERATION_ALLOWED")]
1288    OnlyAggregateOperationAllowed,
1289    #[doc(alias = "GST_RTSP_STS_UNSUPPORTED_TRANSPORT")]
1290    UnsupportedTransport,
1291    #[doc(alias = "GST_RTSP_STS_DESTINATION_UNREACHABLE")]
1292    DestinationUnreachable,
1293    #[doc(alias = "GST_RTSP_STS_KEY_MANAGEMENT_FAILURE")]
1294    KeyManagementFailure,
1295    #[doc(alias = "GST_RTSP_STS_INTERNAL_SERVER_ERROR")]
1296    InternalServerError,
1297    #[doc(alias = "GST_RTSP_STS_NOT_IMPLEMENTED")]
1298    NotImplemented,
1299    #[doc(alias = "GST_RTSP_STS_BAD_GATEWAY")]
1300    BadGateway,
1301    #[doc(alias = "GST_RTSP_STS_SERVICE_UNAVAILABLE")]
1302    ServiceUnavailable,
1303    #[doc(alias = "GST_RTSP_STS_GATEWAY_TIMEOUT")]
1304    GatewayTimeout,
1305    #[doc(alias = "GST_RTSP_STS_RTSP_VERSION_NOT_SUPPORTED")]
1306    RtspVersionNotSupported,
1307    #[doc(alias = "GST_RTSP_STS_OPTION_NOT_SUPPORTED")]
1308    OptionNotSupported,
1309    #[doc(hidden)]
1310    __Unknown(i32),
1311}
1312
1313#[doc(hidden)]
1314impl IntoGlib for RTSPStatusCode {
1315    type GlibType = ffi::GstRTSPStatusCode;
1316
1317    fn into_glib(self) -> ffi::GstRTSPStatusCode {
1318        match self {
1319            Self::Invalid => ffi::GST_RTSP_STS_INVALID,
1320            Self::Continue => ffi::GST_RTSP_STS_CONTINUE,
1321            Self::Ok => ffi::GST_RTSP_STS_OK,
1322            Self::Created => ffi::GST_RTSP_STS_CREATED,
1323            Self::LowOnStorage => ffi::GST_RTSP_STS_LOW_ON_STORAGE,
1324            Self::MultipleChoices => ffi::GST_RTSP_STS_MULTIPLE_CHOICES,
1325            Self::MovedPermanently => ffi::GST_RTSP_STS_MOVED_PERMANENTLY,
1326            Self::MoveTemporarily => ffi::GST_RTSP_STS_MOVE_TEMPORARILY,
1327            Self::SeeOther => ffi::GST_RTSP_STS_SEE_OTHER,
1328            Self::NotModified => ffi::GST_RTSP_STS_NOT_MODIFIED,
1329            Self::UseProxy => ffi::GST_RTSP_STS_USE_PROXY,
1330            #[cfg(feature = "v1_24")]
1331            Self::RedirectTemporarily => ffi::GST_RTSP_STS_REDIRECT_TEMPORARILY,
1332            #[cfg(feature = "v1_24")]
1333            Self::RedirectPermanently => ffi::GST_RTSP_STS_REDIRECT_PERMANENTLY,
1334            Self::BadRequest => ffi::GST_RTSP_STS_BAD_REQUEST,
1335            Self::Unauthorized => ffi::GST_RTSP_STS_UNAUTHORIZED,
1336            Self::PaymentRequired => ffi::GST_RTSP_STS_PAYMENT_REQUIRED,
1337            Self::Forbidden => ffi::GST_RTSP_STS_FORBIDDEN,
1338            Self::NotFound => ffi::GST_RTSP_STS_NOT_FOUND,
1339            Self::MethodNotAllowed => ffi::GST_RTSP_STS_METHOD_NOT_ALLOWED,
1340            Self::NotAcceptable => ffi::GST_RTSP_STS_NOT_ACCEPTABLE,
1341            Self::ProxyAuthRequired => ffi::GST_RTSP_STS_PROXY_AUTH_REQUIRED,
1342            Self::RequestTimeout => ffi::GST_RTSP_STS_REQUEST_TIMEOUT,
1343            Self::Gone => ffi::GST_RTSP_STS_GONE,
1344            Self::LengthRequired => ffi::GST_RTSP_STS_LENGTH_REQUIRED,
1345            Self::PreconditionFailed => ffi::GST_RTSP_STS_PRECONDITION_FAILED,
1346            Self::RequestEntityTooLarge => ffi::GST_RTSP_STS_REQUEST_ENTITY_TOO_LARGE,
1347            Self::RequestUriTooLarge => ffi::GST_RTSP_STS_REQUEST_URI_TOO_LARGE,
1348            Self::UnsupportedMediaType => ffi::GST_RTSP_STS_UNSUPPORTED_MEDIA_TYPE,
1349            Self::ParameterNotUnderstood => ffi::GST_RTSP_STS_PARAMETER_NOT_UNDERSTOOD,
1350            Self::ConferenceNotFound => ffi::GST_RTSP_STS_CONFERENCE_NOT_FOUND,
1351            Self::NotEnoughBandwidth => ffi::GST_RTSP_STS_NOT_ENOUGH_BANDWIDTH,
1352            Self::SessionNotFound => ffi::GST_RTSP_STS_SESSION_NOT_FOUND,
1353            Self::MethodNotValidInThisState => ffi::GST_RTSP_STS_METHOD_NOT_VALID_IN_THIS_STATE,
1354            Self::HeaderFieldNotValidForResource => {
1355                ffi::GST_RTSP_STS_HEADER_FIELD_NOT_VALID_FOR_RESOURCE
1356            }
1357            Self::InvalidRange => ffi::GST_RTSP_STS_INVALID_RANGE,
1358            Self::ParameterIsReadonly => ffi::GST_RTSP_STS_PARAMETER_IS_READONLY,
1359            Self::AggregateOperationNotAllowed => ffi::GST_RTSP_STS_AGGREGATE_OPERATION_NOT_ALLOWED,
1360            Self::OnlyAggregateOperationAllowed => {
1361                ffi::GST_RTSP_STS_ONLY_AGGREGATE_OPERATION_ALLOWED
1362            }
1363            Self::UnsupportedTransport => ffi::GST_RTSP_STS_UNSUPPORTED_TRANSPORT,
1364            Self::DestinationUnreachable => ffi::GST_RTSP_STS_DESTINATION_UNREACHABLE,
1365            Self::KeyManagementFailure => ffi::GST_RTSP_STS_KEY_MANAGEMENT_FAILURE,
1366            Self::InternalServerError => ffi::GST_RTSP_STS_INTERNAL_SERVER_ERROR,
1367            Self::NotImplemented => ffi::GST_RTSP_STS_NOT_IMPLEMENTED,
1368            Self::BadGateway => ffi::GST_RTSP_STS_BAD_GATEWAY,
1369            Self::ServiceUnavailable => ffi::GST_RTSP_STS_SERVICE_UNAVAILABLE,
1370            Self::GatewayTimeout => ffi::GST_RTSP_STS_GATEWAY_TIMEOUT,
1371            Self::RtspVersionNotSupported => ffi::GST_RTSP_STS_RTSP_VERSION_NOT_SUPPORTED,
1372            Self::OptionNotSupported => ffi::GST_RTSP_STS_OPTION_NOT_SUPPORTED,
1373            Self::__Unknown(value) => value,
1374        }
1375    }
1376}
1377
1378#[doc(hidden)]
1379impl FromGlib<ffi::GstRTSPStatusCode> for RTSPStatusCode {
1380    unsafe fn from_glib(value: ffi::GstRTSPStatusCode) -> Self {
1381        skip_assert_initialized!();
1382
1383        match value {
1384            ffi::GST_RTSP_STS_INVALID => Self::Invalid,
1385            ffi::GST_RTSP_STS_CONTINUE => Self::Continue,
1386            ffi::GST_RTSP_STS_OK => Self::Ok,
1387            ffi::GST_RTSP_STS_CREATED => Self::Created,
1388            ffi::GST_RTSP_STS_LOW_ON_STORAGE => Self::LowOnStorage,
1389            ffi::GST_RTSP_STS_MULTIPLE_CHOICES => Self::MultipleChoices,
1390            ffi::GST_RTSP_STS_MOVED_PERMANENTLY => Self::MovedPermanently,
1391            ffi::GST_RTSP_STS_MOVE_TEMPORARILY => Self::MoveTemporarily,
1392            ffi::GST_RTSP_STS_SEE_OTHER => Self::SeeOther,
1393            ffi::GST_RTSP_STS_NOT_MODIFIED => Self::NotModified,
1394            ffi::GST_RTSP_STS_USE_PROXY => Self::UseProxy,
1395            #[cfg(feature = "v1_24")]
1396            ffi::GST_RTSP_STS_REDIRECT_TEMPORARILY => Self::RedirectTemporarily,
1397            #[cfg(feature = "v1_24")]
1398            ffi::GST_RTSP_STS_REDIRECT_PERMANENTLY => Self::RedirectPermanently,
1399            ffi::GST_RTSP_STS_BAD_REQUEST => Self::BadRequest,
1400            ffi::GST_RTSP_STS_UNAUTHORIZED => Self::Unauthorized,
1401            ffi::GST_RTSP_STS_PAYMENT_REQUIRED => Self::PaymentRequired,
1402            ffi::GST_RTSP_STS_FORBIDDEN => Self::Forbidden,
1403            ffi::GST_RTSP_STS_NOT_FOUND => Self::NotFound,
1404            ffi::GST_RTSP_STS_METHOD_NOT_ALLOWED => Self::MethodNotAllowed,
1405            ffi::GST_RTSP_STS_NOT_ACCEPTABLE => Self::NotAcceptable,
1406            ffi::GST_RTSP_STS_PROXY_AUTH_REQUIRED => Self::ProxyAuthRequired,
1407            ffi::GST_RTSP_STS_REQUEST_TIMEOUT => Self::RequestTimeout,
1408            ffi::GST_RTSP_STS_GONE => Self::Gone,
1409            ffi::GST_RTSP_STS_LENGTH_REQUIRED => Self::LengthRequired,
1410            ffi::GST_RTSP_STS_PRECONDITION_FAILED => Self::PreconditionFailed,
1411            ffi::GST_RTSP_STS_REQUEST_ENTITY_TOO_LARGE => Self::RequestEntityTooLarge,
1412            ffi::GST_RTSP_STS_REQUEST_URI_TOO_LARGE => Self::RequestUriTooLarge,
1413            ffi::GST_RTSP_STS_UNSUPPORTED_MEDIA_TYPE => Self::UnsupportedMediaType,
1414            ffi::GST_RTSP_STS_PARAMETER_NOT_UNDERSTOOD => Self::ParameterNotUnderstood,
1415            ffi::GST_RTSP_STS_CONFERENCE_NOT_FOUND => Self::ConferenceNotFound,
1416            ffi::GST_RTSP_STS_NOT_ENOUGH_BANDWIDTH => Self::NotEnoughBandwidth,
1417            ffi::GST_RTSP_STS_SESSION_NOT_FOUND => Self::SessionNotFound,
1418            ffi::GST_RTSP_STS_METHOD_NOT_VALID_IN_THIS_STATE => Self::MethodNotValidInThisState,
1419            ffi::GST_RTSP_STS_HEADER_FIELD_NOT_VALID_FOR_RESOURCE => {
1420                Self::HeaderFieldNotValidForResource
1421            }
1422            ffi::GST_RTSP_STS_INVALID_RANGE => Self::InvalidRange,
1423            ffi::GST_RTSP_STS_PARAMETER_IS_READONLY => Self::ParameterIsReadonly,
1424            ffi::GST_RTSP_STS_AGGREGATE_OPERATION_NOT_ALLOWED => Self::AggregateOperationNotAllowed,
1425            ffi::GST_RTSP_STS_ONLY_AGGREGATE_OPERATION_ALLOWED => {
1426                Self::OnlyAggregateOperationAllowed
1427            }
1428            ffi::GST_RTSP_STS_UNSUPPORTED_TRANSPORT => Self::UnsupportedTransport,
1429            ffi::GST_RTSP_STS_DESTINATION_UNREACHABLE => Self::DestinationUnreachable,
1430            ffi::GST_RTSP_STS_KEY_MANAGEMENT_FAILURE => Self::KeyManagementFailure,
1431            ffi::GST_RTSP_STS_INTERNAL_SERVER_ERROR => Self::InternalServerError,
1432            ffi::GST_RTSP_STS_NOT_IMPLEMENTED => Self::NotImplemented,
1433            ffi::GST_RTSP_STS_BAD_GATEWAY => Self::BadGateway,
1434            ffi::GST_RTSP_STS_SERVICE_UNAVAILABLE => Self::ServiceUnavailable,
1435            ffi::GST_RTSP_STS_GATEWAY_TIMEOUT => Self::GatewayTimeout,
1436            ffi::GST_RTSP_STS_RTSP_VERSION_NOT_SUPPORTED => Self::RtspVersionNotSupported,
1437            ffi::GST_RTSP_STS_OPTION_NOT_SUPPORTED => Self::OptionNotSupported,
1438            value => Self::__Unknown(value),
1439        }
1440    }
1441}
1442
1443impl StaticType for RTSPStatusCode {
1444    #[inline]
1445    #[doc(alias = "gst_rtsp_status_code_get_type")]
1446    fn static_type() -> glib::Type {
1447        unsafe { from_glib(ffi::gst_rtsp_status_code_get_type()) }
1448    }
1449}
1450
1451impl glib::HasParamSpec for RTSPStatusCode {
1452    type ParamSpec = glib::ParamSpecEnum;
1453    type SetValue = Self;
1454    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1455
1456    fn param_spec_builder() -> Self::BuilderFn {
1457        Self::ParamSpec::builder_with_default
1458    }
1459}
1460
1461impl glib::value::ValueType for RTSPStatusCode {
1462    type Type = Self;
1463}
1464
1465unsafe impl<'a> glib::value::FromValue<'a> for RTSPStatusCode {
1466    type Checker = glib::value::GenericValueTypeChecker<Self>;
1467
1468    #[inline]
1469    unsafe fn from_value(value: &'a glib::Value) -> Self {
1470        skip_assert_initialized!();
1471        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1472    }
1473}
1474
1475impl ToValue for RTSPStatusCode {
1476    #[inline]
1477    fn to_value(&self) -> glib::Value {
1478        let mut value = glib::Value::for_value_type::<Self>();
1479        unsafe {
1480            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1481        }
1482        value
1483    }
1484
1485    #[inline]
1486    fn value_type(&self) -> glib::Type {
1487        Self::static_type()
1488    }
1489}
1490
1491impl From<RTSPStatusCode> for glib::Value {
1492    #[inline]
1493    fn from(v: RTSPStatusCode) -> Self {
1494        skip_assert_initialized!();
1495        ToValue::to_value(&v)
1496    }
1497}
1498
1499/// Possible time types.
1500#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1501#[non_exhaustive]
1502#[doc(alias = "GstRTSPTimeType")]
1503pub enum RTSPTimeType {
1504    /// seconds
1505    #[doc(alias = "GST_RTSP_TIME_SECONDS")]
1506    Seconds,
1507    /// now
1508    #[doc(alias = "GST_RTSP_TIME_NOW")]
1509    Now,
1510    /// end
1511    #[doc(alias = "GST_RTSP_TIME_END")]
1512    End,
1513    /// frames and subframes
1514    #[doc(alias = "GST_RTSP_TIME_FRAMES")]
1515    Frames,
1516    /// UTC time
1517    #[doc(alias = "GST_RTSP_TIME_UTC")]
1518    Utc,
1519    #[doc(hidden)]
1520    __Unknown(i32),
1521}
1522
1523#[doc(hidden)]
1524impl IntoGlib for RTSPTimeType {
1525    type GlibType = ffi::GstRTSPTimeType;
1526
1527    #[inline]
1528    fn into_glib(self) -> ffi::GstRTSPTimeType {
1529        match self {
1530            Self::Seconds => ffi::GST_RTSP_TIME_SECONDS,
1531            Self::Now => ffi::GST_RTSP_TIME_NOW,
1532            Self::End => ffi::GST_RTSP_TIME_END,
1533            Self::Frames => ffi::GST_RTSP_TIME_FRAMES,
1534            Self::Utc => ffi::GST_RTSP_TIME_UTC,
1535            Self::__Unknown(value) => value,
1536        }
1537    }
1538}
1539
1540#[doc(hidden)]
1541impl FromGlib<ffi::GstRTSPTimeType> for RTSPTimeType {
1542    #[inline]
1543    unsafe fn from_glib(value: ffi::GstRTSPTimeType) -> Self {
1544        skip_assert_initialized!();
1545
1546        match value {
1547            ffi::GST_RTSP_TIME_SECONDS => Self::Seconds,
1548            ffi::GST_RTSP_TIME_NOW => Self::Now,
1549            ffi::GST_RTSP_TIME_END => Self::End,
1550            ffi::GST_RTSP_TIME_FRAMES => Self::Frames,
1551            ffi::GST_RTSP_TIME_UTC => Self::Utc,
1552            value => Self::__Unknown(value),
1553        }
1554    }
1555}
1556
1557impl StaticType for RTSPTimeType {
1558    #[inline]
1559    #[doc(alias = "gst_rtsp_time_type_get_type")]
1560    fn static_type() -> glib::Type {
1561        unsafe { from_glib(ffi::gst_rtsp_time_type_get_type()) }
1562    }
1563}
1564
1565impl glib::HasParamSpec for RTSPTimeType {
1566    type ParamSpec = glib::ParamSpecEnum;
1567    type SetValue = Self;
1568    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1569
1570    fn param_spec_builder() -> Self::BuilderFn {
1571        Self::ParamSpec::builder_with_default
1572    }
1573}
1574
1575impl glib::value::ValueType for RTSPTimeType {
1576    type Type = Self;
1577}
1578
1579unsafe impl<'a> glib::value::FromValue<'a> for RTSPTimeType {
1580    type Checker = glib::value::GenericValueTypeChecker<Self>;
1581
1582    #[inline]
1583    unsafe fn from_value(value: &'a glib::Value) -> Self {
1584        skip_assert_initialized!();
1585        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1586    }
1587}
1588
1589impl ToValue for RTSPTimeType {
1590    #[inline]
1591    fn to_value(&self) -> glib::Value {
1592        let mut value = glib::Value::for_value_type::<Self>();
1593        unsafe {
1594            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1595        }
1596        value
1597    }
1598
1599    #[inline]
1600    fn value_type(&self) -> glib::Type {
1601        Self::static_type()
1602    }
1603}
1604
1605impl From<RTSPTimeType> for glib::Value {
1606    #[inline]
1607    fn from(v: RTSPTimeType) -> Self {
1608        skip_assert_initialized!();
1609        ToValue::to_value(&v)
1610    }
1611}