gstreamer_rtp/auto/
rtp_header_extension.rs1use crate::{ffi, RTPHeaderExtensionDirection, RTPHeaderExtensionFlags};
7use glib::{prelude::*, translate::*};
8
9glib::wrapper! {
10 #[doc(alias = "GstRTPHeaderExtension")]
11 pub struct RTPHeaderExtension(Object<ffi::GstRTPHeaderExtension, ffi::GstRTPHeaderExtensionClass>) @extends gst::Element, gst::Object;
12
13 match fn {
14 type_ => || ffi::gst_rtp_header_extension_get_type(),
15 }
16}
17
18impl RTPHeaderExtension {
19 pub const NONE: Option<&'static RTPHeaderExtension> = None;
20
21 #[doc(alias = "gst_rtp_header_extension_create_from_uri")]
22 pub fn create_from_uri(uri: &str) -> Option<RTPHeaderExtension> {
23 assert_initialized_main_thread!();
24 unsafe {
25 from_glib_full(ffi::gst_rtp_header_extension_create_from_uri(
26 uri.to_glib_none().0,
27 ))
28 }
29 }
30}
31
32unsafe impl Send for RTPHeaderExtension {}
33unsafe impl Sync for RTPHeaderExtension {}
34
35pub trait RTPHeaderExtensionExt: IsA<RTPHeaderExtension> + 'static {
36 #[doc(alias = "gst_rtp_header_extension_get_direction")]
37 #[doc(alias = "get_direction")]
38 fn direction(&self) -> RTPHeaderExtensionDirection {
39 unsafe {
40 from_glib(ffi::gst_rtp_header_extension_get_direction(
41 self.as_ref().to_glib_none().0,
42 ))
43 }
44 }
45
46 #[doc(alias = "gst_rtp_header_extension_get_id")]
47 #[doc(alias = "get_id")]
48 fn id(&self) -> u32 {
49 unsafe { ffi::gst_rtp_header_extension_get_id(self.as_ref().to_glib_none().0) }
50 }
51
52 #[doc(alias = "gst_rtp_header_extension_get_max_size")]
53 #[doc(alias = "get_max_size")]
54 fn max_size(&self, input_meta: &gst::Buffer) -> usize {
55 unsafe {
56 ffi::gst_rtp_header_extension_get_max_size(
57 self.as_ref().to_glib_none().0,
58 input_meta.to_glib_none().0,
59 )
60 }
61 }
62
63 #[doc(alias = "gst_rtp_header_extension_get_sdp_caps_field_name")]
64 #[doc(alias = "get_sdp_caps_field_name")]
65 fn sdp_caps_field_name(&self) -> glib::GString {
66 unsafe {
67 from_glib_full(ffi::gst_rtp_header_extension_get_sdp_caps_field_name(
68 self.as_ref().to_glib_none().0,
69 ))
70 }
71 }
72
73 #[doc(alias = "gst_rtp_header_extension_get_supported_flags")]
74 #[doc(alias = "get_supported_flags")]
75 fn supported_flags(&self) -> RTPHeaderExtensionFlags {
76 unsafe {
77 from_glib(ffi::gst_rtp_header_extension_get_supported_flags(
78 self.as_ref().to_glib_none().0,
79 ))
80 }
81 }
82
83 #[doc(alias = "gst_rtp_header_extension_get_uri")]
84 #[doc(alias = "get_uri")]
85 fn uri(&self) -> Option<glib::GString> {
86 unsafe {
87 from_glib_none(ffi::gst_rtp_header_extension_get_uri(
88 self.as_ref().to_glib_none().0,
89 ))
90 }
91 }
92
93 #[doc(alias = "gst_rtp_header_extension_set_attributes_from_caps")]
94 fn set_attributes_from_caps(&self, caps: &gst::Caps) -> bool {
95 unsafe {
96 from_glib(ffi::gst_rtp_header_extension_set_attributes_from_caps(
97 self.as_ref().to_glib_none().0,
98 caps.to_glib_none().0,
99 ))
100 }
101 }
102
103 #[doc(alias = "gst_rtp_header_extension_set_direction")]
104 fn set_direction(&self, direction: RTPHeaderExtensionDirection) {
105 unsafe {
106 ffi::gst_rtp_header_extension_set_direction(
107 self.as_ref().to_glib_none().0,
108 direction.into_glib(),
109 );
110 }
111 }
112
113 #[doc(alias = "gst_rtp_header_extension_set_id")]
114 fn set_id(&self, ext_id: u32) {
115 unsafe {
116 ffi::gst_rtp_header_extension_set_id(self.as_ref().to_glib_none().0, ext_id);
117 }
118 }
119
120 #[doc(alias = "gst_rtp_header_extension_set_non_rtp_sink_caps")]
121 fn set_non_rtp_sink_caps(&self, caps: &gst::Caps) -> bool {
122 unsafe {
123 from_glib(ffi::gst_rtp_header_extension_set_non_rtp_sink_caps(
124 self.as_ref().to_glib_none().0,
125 caps.to_glib_none().0,
126 ))
127 }
128 }
129
130 #[doc(alias = "gst_rtp_header_extension_set_wants_update_non_rtp_src_caps")]
131 fn set_wants_update_non_rtp_src_caps(&self, state: bool) {
132 unsafe {
133 ffi::gst_rtp_header_extension_set_wants_update_non_rtp_src_caps(
134 self.as_ref().to_glib_none().0,
135 state.into_glib(),
136 );
137 }
138 }
139
140 #[doc(alias = "gst_rtp_header_extension_wants_update_non_rtp_src_caps")]
141 fn wants_update_non_rtp_src_caps(&self) -> bool {
142 unsafe {
143 from_glib(ffi::gst_rtp_header_extension_wants_update_non_rtp_src_caps(
144 self.as_ref().to_glib_none().0,
145 ))
146 }
147 }
148}
149
150impl<O: IsA<RTPHeaderExtension>> RTPHeaderExtensionExt for O {}