1use crate::ffi;
7use glib::{prelude::*, translate::*};
8
9#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
10#[non_exhaustive]
11#[doc(alias = "GstRTCPFBType")]
12pub enum RTCPFBType {
13 #[doc(alias = "GST_RTCP_FB_TYPE_INVALID")]
14 FbTypeInvalid,
15 #[doc(alias = "GST_RTCP_RTPFB_TYPE_NACK")]
16 RtpfbTypeNack,
17 #[doc(alias = "GST_RTCP_RTPFB_TYPE_TMMBR")]
18 RtpfbTypeTmmbr,
19 #[doc(alias = "GST_RTCP_RTPFB_TYPE_TMMBN")]
20 RtpfbTypeTmmbn,
21 #[doc(alias = "GST_RTCP_RTPFB_TYPE_RTCP_SR_REQ")]
22 RtpfbTypeRtcpSrReq,
23 #[doc(alias = "GST_RTCP_RTPFB_TYPE_TWCC")]
24 RtpfbTypeTwcc,
25 #[doc(alias = "GST_RTCP_PSFB_TYPE_SLI")]
26 PsfbTypeSli,
27 #[doc(alias = "GST_RTCP_PSFB_TYPE_TSTN")]
28 PsfbTypeTstn,
29 #[doc(alias = "GST_RTCP_PSFB_TYPE_VBCN")]
30 PsfbTypeVbcn,
31 #[doc(hidden)]
32 __Unknown(i32),
33}
34
35#[doc(hidden)]
36impl IntoGlib for RTCPFBType {
37 type GlibType = ffi::GstRTCPFBType;
38
39 #[inline]
40 fn into_glib(self) -> ffi::GstRTCPFBType {
41 match self {
42 Self::FbTypeInvalid => ffi::GST_RTCP_FB_TYPE_INVALID,
43 Self::RtpfbTypeNack => ffi::GST_RTCP_RTPFB_TYPE_NACK,
44 Self::RtpfbTypeTmmbr => ffi::GST_RTCP_RTPFB_TYPE_TMMBR,
45 Self::RtpfbTypeTmmbn => ffi::GST_RTCP_RTPFB_TYPE_TMMBN,
46 Self::RtpfbTypeRtcpSrReq => ffi::GST_RTCP_RTPFB_TYPE_RTCP_SR_REQ,
47 Self::RtpfbTypeTwcc => ffi::GST_RTCP_RTPFB_TYPE_TWCC,
48 Self::PsfbTypeSli => ffi::GST_RTCP_PSFB_TYPE_SLI,
49 Self::PsfbTypeTstn => ffi::GST_RTCP_PSFB_TYPE_TSTN,
50 Self::PsfbTypeVbcn => ffi::GST_RTCP_PSFB_TYPE_VBCN,
51 Self::__Unknown(value) => value,
52 }
53 }
54}
55
56#[doc(hidden)]
57impl FromGlib<ffi::GstRTCPFBType> for RTCPFBType {
58 #[inline]
59 unsafe fn from_glib(value: ffi::GstRTCPFBType) -> Self {
60 skip_assert_initialized!();
61
62 match value {
63 ffi::GST_RTCP_FB_TYPE_INVALID => Self::FbTypeInvalid,
64 ffi::GST_RTCP_RTPFB_TYPE_NACK => Self::RtpfbTypeNack,
65 ffi::GST_RTCP_RTPFB_TYPE_TMMBR => Self::RtpfbTypeTmmbr,
66 ffi::GST_RTCP_RTPFB_TYPE_TMMBN => Self::RtpfbTypeTmmbn,
67 ffi::GST_RTCP_RTPFB_TYPE_RTCP_SR_REQ => Self::RtpfbTypeRtcpSrReq,
68 ffi::GST_RTCP_RTPFB_TYPE_TWCC => Self::RtpfbTypeTwcc,
69 ffi::GST_RTCP_PSFB_TYPE_SLI => Self::PsfbTypeSli,
70 ffi::GST_RTCP_PSFB_TYPE_TSTN => Self::PsfbTypeTstn,
71 ffi::GST_RTCP_PSFB_TYPE_VBCN => Self::PsfbTypeVbcn,
72 value => Self::__Unknown(value),
73 }
74 }
75}
76
77impl StaticType for RTCPFBType {
78 #[inline]
79 #[doc(alias = "gst_rtcpfb_type_get_type")]
80 fn static_type() -> glib::Type {
81 unsafe { from_glib(ffi::gst_rtcpfb_type_get_type()) }
82 }
83}
84
85impl glib::HasParamSpec for RTCPFBType {
86 type ParamSpec = glib::ParamSpecEnum;
87 type SetValue = Self;
88 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
89
90 fn param_spec_builder() -> Self::BuilderFn {
91 Self::ParamSpec::builder_with_default
92 }
93}
94
95impl glib::value::ValueType for RTCPFBType {
96 type Type = Self;
97}
98
99unsafe impl<'a> glib::value::FromValue<'a> for RTCPFBType {
100 type Checker = glib::value::GenericValueTypeChecker<Self>;
101
102 #[inline]
103 unsafe fn from_value(value: &'a glib::Value) -> Self {
104 skip_assert_initialized!();
105 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
106 }
107}
108
109impl ToValue for RTCPFBType {
110 #[inline]
111 fn to_value(&self) -> glib::Value {
112 let mut value = glib::Value::for_value_type::<Self>();
113 unsafe {
114 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
115 }
116 value
117 }
118
119 #[inline]
120 fn value_type(&self) -> glib::Type {
121 Self::static_type()
122 }
123}
124
125impl From<RTCPFBType> for glib::Value {
126 #[inline]
127 fn from(v: RTCPFBType) -> Self {
128 skip_assert_initialized!();
129 ToValue::to_value(&v)
130 }
131}
132
133#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
134#[non_exhaustive]
135#[doc(alias = "GstRTCPSDESType")]
136pub enum RTCPSDESType {
137 #[doc(alias = "GST_RTCP_SDES_INVALID")]
138 Invalid,
139 #[doc(alias = "GST_RTCP_SDES_END")]
140 End,
141 #[doc(alias = "GST_RTCP_SDES_CNAME")]
142 Cname,
143 #[doc(alias = "GST_RTCP_SDES_NAME")]
144 Name,
145 #[doc(alias = "GST_RTCP_SDES_EMAIL")]
146 Email,
147 #[doc(alias = "GST_RTCP_SDES_PHONE")]
148 Phone,
149 #[doc(alias = "GST_RTCP_SDES_LOC")]
150 Loc,
151 #[doc(alias = "GST_RTCP_SDES_TOOL")]
152 Tool,
153 #[doc(alias = "GST_RTCP_SDES_NOTE")]
154 Note,
155 #[doc(alias = "GST_RTCP_SDES_PRIV")]
156 Priv,
157 #[cfg(feature = "v1_20")]
158 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
159 #[doc(alias = "GST_RTCP_SDES_H323_CADDR")]
160 H323Caddr,
161 #[cfg(feature = "v1_20")]
162 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
163 #[doc(alias = "GST_RTCP_SDES_APSI")]
164 Apsi,
165 #[cfg(feature = "v1_20")]
166 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
167 #[doc(alias = "GST_RTCP_SDES_RGRP")]
168 Rgrp,
169 #[cfg(feature = "v1_20")]
170 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
171 #[doc(alias = "GST_RTCP_SDES_RTP_STREAM_ID")]
172 RtpStreamId,
173 #[cfg(feature = "v1_20")]
174 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
175 #[doc(alias = "GST_RTCP_SDES_REPAIRED_RTP_STREAM_ID")]
176 RepairedRtpStreamId,
177 #[cfg(feature = "v1_20")]
178 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
179 #[doc(alias = "GST_RTCP_SDES_CCID")]
180 Ccid,
181 #[cfg(feature = "v1_20")]
182 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
183 #[doc(alias = "GST_RTCP_SDES_MID")]
184 Mid,
185 #[doc(hidden)]
186 __Unknown(i32),
187}
188
189#[doc(hidden)]
190impl IntoGlib for RTCPSDESType {
191 type GlibType = ffi::GstRTCPSDESType;
192
193 fn into_glib(self) -> ffi::GstRTCPSDESType {
194 match self {
195 Self::Invalid => ffi::GST_RTCP_SDES_INVALID,
196 Self::End => ffi::GST_RTCP_SDES_END,
197 Self::Cname => ffi::GST_RTCP_SDES_CNAME,
198 Self::Name => ffi::GST_RTCP_SDES_NAME,
199 Self::Email => ffi::GST_RTCP_SDES_EMAIL,
200 Self::Phone => ffi::GST_RTCP_SDES_PHONE,
201 Self::Loc => ffi::GST_RTCP_SDES_LOC,
202 Self::Tool => ffi::GST_RTCP_SDES_TOOL,
203 Self::Note => ffi::GST_RTCP_SDES_NOTE,
204 Self::Priv => ffi::GST_RTCP_SDES_PRIV,
205 #[cfg(feature = "v1_20")]
206 Self::H323Caddr => ffi::GST_RTCP_SDES_H323_CADDR,
207 #[cfg(feature = "v1_20")]
208 Self::Apsi => ffi::GST_RTCP_SDES_APSI,
209 #[cfg(feature = "v1_20")]
210 Self::Rgrp => ffi::GST_RTCP_SDES_RGRP,
211 #[cfg(feature = "v1_20")]
212 Self::RtpStreamId => ffi::GST_RTCP_SDES_RTP_STREAM_ID,
213 #[cfg(feature = "v1_20")]
214 Self::RepairedRtpStreamId => ffi::GST_RTCP_SDES_REPAIRED_RTP_STREAM_ID,
215 #[cfg(feature = "v1_20")]
216 Self::Ccid => ffi::GST_RTCP_SDES_CCID,
217 #[cfg(feature = "v1_20")]
218 Self::Mid => ffi::GST_RTCP_SDES_MID,
219 Self::__Unknown(value) => value,
220 }
221 }
222}
223
224#[doc(hidden)]
225impl FromGlib<ffi::GstRTCPSDESType> for RTCPSDESType {
226 unsafe fn from_glib(value: ffi::GstRTCPSDESType) -> Self {
227 skip_assert_initialized!();
228
229 match value {
230 ffi::GST_RTCP_SDES_INVALID => Self::Invalid,
231 ffi::GST_RTCP_SDES_END => Self::End,
232 ffi::GST_RTCP_SDES_CNAME => Self::Cname,
233 ffi::GST_RTCP_SDES_NAME => Self::Name,
234 ffi::GST_RTCP_SDES_EMAIL => Self::Email,
235 ffi::GST_RTCP_SDES_PHONE => Self::Phone,
236 ffi::GST_RTCP_SDES_LOC => Self::Loc,
237 ffi::GST_RTCP_SDES_TOOL => Self::Tool,
238 ffi::GST_RTCP_SDES_NOTE => Self::Note,
239 ffi::GST_RTCP_SDES_PRIV => Self::Priv,
240 #[cfg(feature = "v1_20")]
241 ffi::GST_RTCP_SDES_H323_CADDR => Self::H323Caddr,
242 #[cfg(feature = "v1_20")]
243 ffi::GST_RTCP_SDES_APSI => Self::Apsi,
244 #[cfg(feature = "v1_20")]
245 ffi::GST_RTCP_SDES_RGRP => Self::Rgrp,
246 #[cfg(feature = "v1_20")]
247 ffi::GST_RTCP_SDES_RTP_STREAM_ID => Self::RtpStreamId,
248 #[cfg(feature = "v1_20")]
249 ffi::GST_RTCP_SDES_REPAIRED_RTP_STREAM_ID => Self::RepairedRtpStreamId,
250 #[cfg(feature = "v1_20")]
251 ffi::GST_RTCP_SDES_CCID => Self::Ccid,
252 #[cfg(feature = "v1_20")]
253 ffi::GST_RTCP_SDES_MID => Self::Mid,
254 value => Self::__Unknown(value),
255 }
256 }
257}
258
259impl StaticType for RTCPSDESType {
260 #[inline]
261 #[doc(alias = "gst_rtcpsdes_type_get_type")]
262 fn static_type() -> glib::Type {
263 unsafe { from_glib(ffi::gst_rtcpsdes_type_get_type()) }
264 }
265}
266
267impl glib::HasParamSpec for RTCPSDESType {
268 type ParamSpec = glib::ParamSpecEnum;
269 type SetValue = Self;
270 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
271
272 fn param_spec_builder() -> Self::BuilderFn {
273 Self::ParamSpec::builder_with_default
274 }
275}
276
277impl glib::value::ValueType for RTCPSDESType {
278 type Type = Self;
279}
280
281unsafe impl<'a> glib::value::FromValue<'a> for RTCPSDESType {
282 type Checker = glib::value::GenericValueTypeChecker<Self>;
283
284 #[inline]
285 unsafe fn from_value(value: &'a glib::Value) -> Self {
286 skip_assert_initialized!();
287 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
288 }
289}
290
291impl ToValue for RTCPSDESType {
292 #[inline]
293 fn to_value(&self) -> glib::Value {
294 let mut value = glib::Value::for_value_type::<Self>();
295 unsafe {
296 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
297 }
298 value
299 }
300
301 #[inline]
302 fn value_type(&self) -> glib::Type {
303 Self::static_type()
304 }
305}
306
307impl From<RTCPSDESType> for glib::Value {
308 #[inline]
309 fn from(v: RTCPSDESType) -> Self {
310 skip_assert_initialized!();
311 ToValue::to_value(&v)
312 }
313}
314
315#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
316#[non_exhaustive]
317#[doc(alias = "GstRTCPType")]
318pub enum RTCPType {
319 #[doc(alias = "GST_RTCP_TYPE_INVALID")]
320 Invalid,
321 #[doc(alias = "GST_RTCP_TYPE_SR")]
322 Sr,
323 #[doc(alias = "GST_RTCP_TYPE_RR")]
324 Rr,
325 #[doc(alias = "GST_RTCP_TYPE_SDES")]
326 Sdes,
327 #[doc(alias = "GST_RTCP_TYPE_BYE")]
328 Bye,
329 #[doc(alias = "GST_RTCP_TYPE_APP")]
330 App,
331 #[doc(alias = "GST_RTCP_TYPE_RTPFB")]
332 Rtpfb,
333 #[doc(alias = "GST_RTCP_TYPE_PSFB")]
334 Psfb,
335 #[doc(alias = "GST_RTCP_TYPE_XR")]
336 Xr,
337 #[doc(hidden)]
338 __Unknown(i32),
339}
340
341#[doc(hidden)]
342impl IntoGlib for RTCPType {
343 type GlibType = ffi::GstRTCPType;
344
345 #[inline]
346 fn into_glib(self) -> ffi::GstRTCPType {
347 match self {
348 Self::Invalid => ffi::GST_RTCP_TYPE_INVALID,
349 Self::Sr => ffi::GST_RTCP_TYPE_SR,
350 Self::Rr => ffi::GST_RTCP_TYPE_RR,
351 Self::Sdes => ffi::GST_RTCP_TYPE_SDES,
352 Self::Bye => ffi::GST_RTCP_TYPE_BYE,
353 Self::App => ffi::GST_RTCP_TYPE_APP,
354 Self::Rtpfb => ffi::GST_RTCP_TYPE_RTPFB,
355 Self::Psfb => ffi::GST_RTCP_TYPE_PSFB,
356 Self::Xr => ffi::GST_RTCP_TYPE_XR,
357 Self::__Unknown(value) => value,
358 }
359 }
360}
361
362#[doc(hidden)]
363impl FromGlib<ffi::GstRTCPType> for RTCPType {
364 #[inline]
365 unsafe fn from_glib(value: ffi::GstRTCPType) -> Self {
366 skip_assert_initialized!();
367
368 match value {
369 ffi::GST_RTCP_TYPE_INVALID => Self::Invalid,
370 ffi::GST_RTCP_TYPE_SR => Self::Sr,
371 ffi::GST_RTCP_TYPE_RR => Self::Rr,
372 ffi::GST_RTCP_TYPE_SDES => Self::Sdes,
373 ffi::GST_RTCP_TYPE_BYE => Self::Bye,
374 ffi::GST_RTCP_TYPE_APP => Self::App,
375 ffi::GST_RTCP_TYPE_RTPFB => Self::Rtpfb,
376 ffi::GST_RTCP_TYPE_PSFB => Self::Psfb,
377 ffi::GST_RTCP_TYPE_XR => Self::Xr,
378 value => Self::__Unknown(value),
379 }
380 }
381}
382
383impl StaticType for RTCPType {
384 #[inline]
385 #[doc(alias = "gst_rtcp_type_get_type")]
386 fn static_type() -> glib::Type {
387 unsafe { from_glib(ffi::gst_rtcp_type_get_type()) }
388 }
389}
390
391impl glib::HasParamSpec for RTCPType {
392 type ParamSpec = glib::ParamSpecEnum;
393 type SetValue = Self;
394 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
395
396 fn param_spec_builder() -> Self::BuilderFn {
397 Self::ParamSpec::builder_with_default
398 }
399}
400
401impl glib::value::ValueType for RTCPType {
402 type Type = Self;
403}
404
405unsafe impl<'a> glib::value::FromValue<'a> for RTCPType {
406 type Checker = glib::value::GenericValueTypeChecker<Self>;
407
408 #[inline]
409 unsafe fn from_value(value: &'a glib::Value) -> Self {
410 skip_assert_initialized!();
411 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
412 }
413}
414
415impl ToValue for RTCPType {
416 #[inline]
417 fn to_value(&self) -> glib::Value {
418 let mut value = glib::Value::for_value_type::<Self>();
419 unsafe {
420 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
421 }
422 value
423 }
424
425 #[inline]
426 fn value_type(&self) -> glib::Type {
427 Self::static_type()
428 }
429}
430
431impl From<RTCPType> for glib::Value {
432 #[inline]
433 fn from(v: RTCPType) -> Self {
434 skip_assert_initialized!();
435 ToValue::to_value(&v)
436 }
437}
438
439#[cfg(feature = "v1_16")]
440#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
441#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
442#[non_exhaustive]
443#[doc(alias = "GstRTCPXRType")]
444pub enum RTCPXRType {
445 #[doc(alias = "GST_RTCP_XR_TYPE_INVALID")]
446 Invalid,
447 #[doc(alias = "GST_RTCP_XR_TYPE_LRLE")]
448 Lrle,
449 #[doc(alias = "GST_RTCP_XR_TYPE_DRLE")]
450 Drle,
451 #[doc(alias = "GST_RTCP_XR_TYPE_PRT")]
452 Prt,
453 #[doc(alias = "GST_RTCP_XR_TYPE_RRT")]
454 Rrt,
455 #[doc(alias = "GST_RTCP_XR_TYPE_DLRR")]
456 Dlrr,
457 #[doc(alias = "GST_RTCP_XR_TYPE_SSUMM")]
458 Ssumm,
459 #[doc(alias = "GST_RTCP_XR_TYPE_VOIP_METRICS")]
460 VoipMetrics,
461 #[doc(hidden)]
462 __Unknown(i32),
463}
464
465#[cfg(feature = "v1_16")]
466#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
467#[doc(hidden)]
468impl IntoGlib for RTCPXRType {
469 type GlibType = ffi::GstRTCPXRType;
470
471 #[inline]
472 fn into_glib(self) -> ffi::GstRTCPXRType {
473 match self {
474 Self::Invalid => ffi::GST_RTCP_XR_TYPE_INVALID,
475 Self::Lrle => ffi::GST_RTCP_XR_TYPE_LRLE,
476 Self::Drle => ffi::GST_RTCP_XR_TYPE_DRLE,
477 Self::Prt => ffi::GST_RTCP_XR_TYPE_PRT,
478 Self::Rrt => ffi::GST_RTCP_XR_TYPE_RRT,
479 Self::Dlrr => ffi::GST_RTCP_XR_TYPE_DLRR,
480 Self::Ssumm => ffi::GST_RTCP_XR_TYPE_SSUMM,
481 Self::VoipMetrics => ffi::GST_RTCP_XR_TYPE_VOIP_METRICS,
482 Self::__Unknown(value) => value,
483 }
484 }
485}
486
487#[cfg(feature = "v1_16")]
488#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
489#[doc(hidden)]
490impl FromGlib<ffi::GstRTCPXRType> for RTCPXRType {
491 #[inline]
492 unsafe fn from_glib(value: ffi::GstRTCPXRType) -> Self {
493 skip_assert_initialized!();
494
495 match value {
496 ffi::GST_RTCP_XR_TYPE_INVALID => Self::Invalid,
497 ffi::GST_RTCP_XR_TYPE_LRLE => Self::Lrle,
498 ffi::GST_RTCP_XR_TYPE_DRLE => Self::Drle,
499 ffi::GST_RTCP_XR_TYPE_PRT => Self::Prt,
500 ffi::GST_RTCP_XR_TYPE_RRT => Self::Rrt,
501 ffi::GST_RTCP_XR_TYPE_DLRR => Self::Dlrr,
502 ffi::GST_RTCP_XR_TYPE_SSUMM => Self::Ssumm,
503 ffi::GST_RTCP_XR_TYPE_VOIP_METRICS => Self::VoipMetrics,
504 value => Self::__Unknown(value),
505 }
506 }
507}
508
509#[cfg(feature = "v1_16")]
510#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
511impl StaticType for RTCPXRType {
512 #[inline]
513 #[doc(alias = "gst_rtcpxr_type_get_type")]
514 fn static_type() -> glib::Type {
515 unsafe { from_glib(ffi::gst_rtcpxr_type_get_type()) }
516 }
517}
518
519#[cfg(feature = "v1_16")]
520#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
521impl glib::HasParamSpec for RTCPXRType {
522 type ParamSpec = glib::ParamSpecEnum;
523 type SetValue = Self;
524 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
525
526 fn param_spec_builder() -> Self::BuilderFn {
527 Self::ParamSpec::builder_with_default
528 }
529}
530
531#[cfg(feature = "v1_16")]
532#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
533impl glib::value::ValueType for RTCPXRType {
534 type Type = Self;
535}
536
537#[cfg(feature = "v1_16")]
538#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
539unsafe impl<'a> glib::value::FromValue<'a> for RTCPXRType {
540 type Checker = glib::value::GenericValueTypeChecker<Self>;
541
542 #[inline]
543 unsafe fn from_value(value: &'a glib::Value) -> Self {
544 skip_assert_initialized!();
545 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
546 }
547}
548
549#[cfg(feature = "v1_16")]
550#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
551impl ToValue for RTCPXRType {
552 #[inline]
553 fn to_value(&self) -> glib::Value {
554 let mut value = glib::Value::for_value_type::<Self>();
555 unsafe {
556 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
557 }
558 value
559 }
560
561 #[inline]
562 fn value_type(&self) -> glib::Type {
563 Self::static_type()
564 }
565}
566
567#[cfg(feature = "v1_16")]
568#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
569impl From<RTCPXRType> for glib::Value {
570 #[inline]
571 fn from(v: RTCPXRType) -> Self {
572 skip_assert_initialized!();
573 ToValue::to_value(&v)
574 }
575}
576
577#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
578#[non_exhaustive]
579#[doc(alias = "GstRTPPayload")]
580pub enum RTPPayload {
581 #[doc(alias = "GST_RTP_PAYLOAD_PCMU")]
582 Pcmu,
583 #[doc(alias = "GST_RTP_PAYLOAD_1016")]
584 _1016,
585 #[doc(alias = "GST_RTP_PAYLOAD_G721")]
586 G721,
587 #[doc(alias = "GST_RTP_PAYLOAD_GSM")]
588 Gsm,
589 #[doc(alias = "GST_RTP_PAYLOAD_G723")]
590 G723,
591 #[doc(alias = "GST_RTP_PAYLOAD_DVI4_8000")]
592 Dvi48000,
593 #[doc(alias = "GST_RTP_PAYLOAD_DVI4_16000")]
594 Dvi416000,
595 #[doc(alias = "GST_RTP_PAYLOAD_LPC")]
596 Lpc,
597 #[doc(alias = "GST_RTP_PAYLOAD_PCMA")]
598 Pcma,
599 #[doc(alias = "GST_RTP_PAYLOAD_G722")]
600 G722,
601 #[doc(alias = "GST_RTP_PAYLOAD_L16_STEREO")]
602 L16Stereo,
603 #[doc(alias = "GST_RTP_PAYLOAD_L16_MONO")]
604 L16Mono,
605 #[doc(alias = "GST_RTP_PAYLOAD_QCELP")]
606 Qcelp,
607 #[doc(alias = "GST_RTP_PAYLOAD_CN")]
608 Cn,
609 #[doc(alias = "GST_RTP_PAYLOAD_MPA")]
610 Mpa,
611 #[doc(alias = "GST_RTP_PAYLOAD_G728")]
612 G728,
613 #[doc(alias = "GST_RTP_PAYLOAD_DVI4_11025")]
614 Dvi411025,
615 #[doc(alias = "GST_RTP_PAYLOAD_DVI4_22050")]
616 Dvi422050,
617 #[doc(alias = "GST_RTP_PAYLOAD_G729")]
618 G729,
619 #[doc(alias = "GST_RTP_PAYLOAD_CELLB")]
620 Cellb,
621 #[doc(alias = "GST_RTP_PAYLOAD_JPEG")]
622 Jpeg,
623 #[doc(alias = "GST_RTP_PAYLOAD_NV")]
624 Nv,
625 #[doc(alias = "GST_RTP_PAYLOAD_H261")]
626 H261,
627 #[doc(alias = "GST_RTP_PAYLOAD_MPV")]
628 Mpv,
629 #[doc(alias = "GST_RTP_PAYLOAD_MP2T")]
630 Mp2t,
631 #[doc(alias = "GST_RTP_PAYLOAD_H263")]
632 H263,
633 #[doc(hidden)]
634 __Unknown(i32),
635}
636
637#[doc(hidden)]
638impl IntoGlib for RTPPayload {
639 type GlibType = ffi::GstRTPPayload;
640
641 fn into_glib(self) -> ffi::GstRTPPayload {
642 match self {
643 Self::Pcmu => ffi::GST_RTP_PAYLOAD_PCMU,
644 Self::_1016 => ffi::GST_RTP_PAYLOAD_1016,
645 Self::G721 => ffi::GST_RTP_PAYLOAD_G721,
646 Self::Gsm => ffi::GST_RTP_PAYLOAD_GSM,
647 Self::G723 => ffi::GST_RTP_PAYLOAD_G723,
648 Self::Dvi48000 => ffi::GST_RTP_PAYLOAD_DVI4_8000,
649 Self::Dvi416000 => ffi::GST_RTP_PAYLOAD_DVI4_16000,
650 Self::Lpc => ffi::GST_RTP_PAYLOAD_LPC,
651 Self::Pcma => ffi::GST_RTP_PAYLOAD_PCMA,
652 Self::G722 => ffi::GST_RTP_PAYLOAD_G722,
653 Self::L16Stereo => ffi::GST_RTP_PAYLOAD_L16_STEREO,
654 Self::L16Mono => ffi::GST_RTP_PAYLOAD_L16_MONO,
655 Self::Qcelp => ffi::GST_RTP_PAYLOAD_QCELP,
656 Self::Cn => ffi::GST_RTP_PAYLOAD_CN,
657 Self::Mpa => ffi::GST_RTP_PAYLOAD_MPA,
658 Self::G728 => ffi::GST_RTP_PAYLOAD_G728,
659 Self::Dvi411025 => ffi::GST_RTP_PAYLOAD_DVI4_11025,
660 Self::Dvi422050 => ffi::GST_RTP_PAYLOAD_DVI4_22050,
661 Self::G729 => ffi::GST_RTP_PAYLOAD_G729,
662 Self::Cellb => ffi::GST_RTP_PAYLOAD_CELLB,
663 Self::Jpeg => ffi::GST_RTP_PAYLOAD_JPEG,
664 Self::Nv => ffi::GST_RTP_PAYLOAD_NV,
665 Self::H261 => ffi::GST_RTP_PAYLOAD_H261,
666 Self::Mpv => ffi::GST_RTP_PAYLOAD_MPV,
667 Self::Mp2t => ffi::GST_RTP_PAYLOAD_MP2T,
668 Self::H263 => ffi::GST_RTP_PAYLOAD_H263,
669 Self::__Unknown(value) => value,
670 }
671 }
672}
673
674#[doc(hidden)]
675impl FromGlib<ffi::GstRTPPayload> for RTPPayload {
676 unsafe fn from_glib(value: ffi::GstRTPPayload) -> Self {
677 skip_assert_initialized!();
678
679 match value {
680 ffi::GST_RTP_PAYLOAD_PCMU => Self::Pcmu,
681 ffi::GST_RTP_PAYLOAD_1016 => Self::_1016,
682 ffi::GST_RTP_PAYLOAD_G721 => Self::G721,
683 ffi::GST_RTP_PAYLOAD_GSM => Self::Gsm,
684 ffi::GST_RTP_PAYLOAD_G723 => Self::G723,
685 ffi::GST_RTP_PAYLOAD_DVI4_8000 => Self::Dvi48000,
686 ffi::GST_RTP_PAYLOAD_DVI4_16000 => Self::Dvi416000,
687 ffi::GST_RTP_PAYLOAD_LPC => Self::Lpc,
688 ffi::GST_RTP_PAYLOAD_PCMA => Self::Pcma,
689 ffi::GST_RTP_PAYLOAD_G722 => Self::G722,
690 ffi::GST_RTP_PAYLOAD_L16_STEREO => Self::L16Stereo,
691 ffi::GST_RTP_PAYLOAD_L16_MONO => Self::L16Mono,
692 ffi::GST_RTP_PAYLOAD_QCELP => Self::Qcelp,
693 ffi::GST_RTP_PAYLOAD_CN => Self::Cn,
694 ffi::GST_RTP_PAYLOAD_MPA => Self::Mpa,
695 ffi::GST_RTP_PAYLOAD_G728 => Self::G728,
696 ffi::GST_RTP_PAYLOAD_DVI4_11025 => Self::Dvi411025,
697 ffi::GST_RTP_PAYLOAD_DVI4_22050 => Self::Dvi422050,
698 ffi::GST_RTP_PAYLOAD_G729 => Self::G729,
699 ffi::GST_RTP_PAYLOAD_CELLB => Self::Cellb,
700 ffi::GST_RTP_PAYLOAD_JPEG => Self::Jpeg,
701 ffi::GST_RTP_PAYLOAD_NV => Self::Nv,
702 ffi::GST_RTP_PAYLOAD_H261 => Self::H261,
703 ffi::GST_RTP_PAYLOAD_MPV => Self::Mpv,
704 ffi::GST_RTP_PAYLOAD_MP2T => Self::Mp2t,
705 ffi::GST_RTP_PAYLOAD_H263 => Self::H263,
706 value => Self::__Unknown(value),
707 }
708 }
709}
710
711impl StaticType for RTPPayload {
712 #[inline]
713 #[doc(alias = "gst_rtp_payload_get_type")]
714 fn static_type() -> glib::Type {
715 unsafe { from_glib(ffi::gst_rtp_payload_get_type()) }
716 }
717}
718
719impl glib::HasParamSpec for RTPPayload {
720 type ParamSpec = glib::ParamSpecEnum;
721 type SetValue = Self;
722 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
723
724 fn param_spec_builder() -> Self::BuilderFn {
725 Self::ParamSpec::builder_with_default
726 }
727}
728
729impl glib::value::ValueType for RTPPayload {
730 type Type = Self;
731}
732
733unsafe impl<'a> glib::value::FromValue<'a> for RTPPayload {
734 type Checker = glib::value::GenericValueTypeChecker<Self>;
735
736 #[inline]
737 unsafe fn from_value(value: &'a glib::Value) -> Self {
738 skip_assert_initialized!();
739 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
740 }
741}
742
743impl ToValue for RTPPayload {
744 #[inline]
745 fn to_value(&self) -> glib::Value {
746 let mut value = glib::Value::for_value_type::<Self>();
747 unsafe {
748 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
749 }
750 value
751 }
752
753 #[inline]
754 fn value_type(&self) -> glib::Type {
755 Self::static_type()
756 }
757}
758
759impl From<RTPPayload> for glib::Value {
760 #[inline]
761 fn from(v: RTPPayload) -> Self {
762 skip_assert_initialized!();
763 ToValue::to_value(&v)
764 }
765}
766
767#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
768#[non_exhaustive]
769#[doc(alias = "GstRTPProfile")]
770pub enum RTPProfile {
771 #[doc(alias = "GST_RTP_PROFILE_UNKNOWN")]
772 Unknown,
773 #[doc(alias = "GST_RTP_PROFILE_AVP")]
774 Avp,
775 #[doc(alias = "GST_RTP_PROFILE_SAVP")]
776 Savp,
777 #[doc(alias = "GST_RTP_PROFILE_AVPF")]
778 Avpf,
779 #[doc(alias = "GST_RTP_PROFILE_SAVPF")]
780 Savpf,
781 #[doc(hidden)]
782 __Unknown(i32),
783}
784
785#[doc(hidden)]
786impl IntoGlib for RTPProfile {
787 type GlibType = ffi::GstRTPProfile;
788
789 #[inline]
790 fn into_glib(self) -> ffi::GstRTPProfile {
791 match self {
792 Self::Unknown => ffi::GST_RTP_PROFILE_UNKNOWN,
793 Self::Avp => ffi::GST_RTP_PROFILE_AVP,
794 Self::Savp => ffi::GST_RTP_PROFILE_SAVP,
795 Self::Avpf => ffi::GST_RTP_PROFILE_AVPF,
796 Self::Savpf => ffi::GST_RTP_PROFILE_SAVPF,
797 Self::__Unknown(value) => value,
798 }
799 }
800}
801
802#[doc(hidden)]
803impl FromGlib<ffi::GstRTPProfile> for RTPProfile {
804 #[inline]
805 unsafe fn from_glib(value: ffi::GstRTPProfile) -> Self {
806 skip_assert_initialized!();
807
808 match value {
809 ffi::GST_RTP_PROFILE_UNKNOWN => Self::Unknown,
810 ffi::GST_RTP_PROFILE_AVP => Self::Avp,
811 ffi::GST_RTP_PROFILE_SAVP => Self::Savp,
812 ffi::GST_RTP_PROFILE_AVPF => Self::Avpf,
813 ffi::GST_RTP_PROFILE_SAVPF => Self::Savpf,
814 value => Self::__Unknown(value),
815 }
816 }
817}
818
819impl StaticType for RTPProfile {
820 #[inline]
821 #[doc(alias = "gst_rtp_profile_get_type")]
822 fn static_type() -> glib::Type {
823 unsafe { from_glib(ffi::gst_rtp_profile_get_type()) }
824 }
825}
826
827impl glib::HasParamSpec for RTPProfile {
828 type ParamSpec = glib::ParamSpecEnum;
829 type SetValue = Self;
830 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
831
832 fn param_spec_builder() -> Self::BuilderFn {
833 Self::ParamSpec::builder_with_default
834 }
835}
836
837impl glib::value::ValueType for RTPProfile {
838 type Type = Self;
839}
840
841unsafe impl<'a> glib::value::FromValue<'a> for RTPProfile {
842 type Checker = glib::value::GenericValueTypeChecker<Self>;
843
844 #[inline]
845 unsafe fn from_value(value: &'a glib::Value) -> Self {
846 skip_assert_initialized!();
847 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
848 }
849}
850
851impl ToValue for RTPProfile {
852 #[inline]
853 fn to_value(&self) -> glib::Value {
854 let mut value = glib::Value::for_value_type::<Self>();
855 unsafe {
856 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
857 }
858 value
859 }
860
861 #[inline]
862 fn value_type(&self) -> glib::Type {
863 Self::static_type()
864 }
865}
866
867impl From<RTPProfile> for glib::Value {
868 #[inline]
869 fn from(v: RTPProfile) -> Self {
870 skip_assert_initialized!();
871 ToValue::to_value(&v)
872 }
873}