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