gstreamer_webrtc_sys/
lib.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
6#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
7#![allow(
8    clippy::approx_constant,
9    clippy::type_complexity,
10    clippy::unreadable_literal,
11    clippy::upper_case_acronyms
12)]
13#![cfg_attr(docsrs, feature(doc_cfg))]
14
15use glib_sys as glib;
16use gstreamer_sdp_sys as gst_sdp;
17use gstreamer_sys as gst;
18
19#[cfg(unix)]
20#[allow(unused_imports)]
21use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t};
22#[allow(unused_imports)]
23use libc::{intptr_t, off_t, size_t, ssize_t, time_t, uintptr_t, FILE};
24#[allow(unused_imports)]
25use std::ffi::{
26    c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
27};
28
29#[allow(unused_imports)]
30use glib::{gboolean, gconstpointer, gpointer, GType};
31
32// Enums
33pub type GstWebRTCBundlePolicy = c_int;
34pub const GST_WEBRTC_BUNDLE_POLICY_NONE: GstWebRTCBundlePolicy = 0;
35pub const GST_WEBRTC_BUNDLE_POLICY_BALANCED: GstWebRTCBundlePolicy = 1;
36pub const GST_WEBRTC_BUNDLE_POLICY_MAX_COMPAT: GstWebRTCBundlePolicy = 2;
37pub const GST_WEBRTC_BUNDLE_POLICY_MAX_BUNDLE: GstWebRTCBundlePolicy = 3;
38
39pub type GstWebRTCDTLSRole = c_int;
40pub const GST_WEBRTC_DTLS_ROLE_CLIENT: GstWebRTCDTLSRole = 0;
41pub const GST_WEBRTC_DTLS_ROLE_SERVER: GstWebRTCDTLSRole = 1;
42pub const GST_WEBRTC_DTLS_ROLE_UNKNOWN: GstWebRTCDTLSRole = 2;
43
44pub type GstWebRTCDTLSSetup = c_int;
45pub const GST_WEBRTC_DTLS_SETUP_NONE: GstWebRTCDTLSSetup = 0;
46pub const GST_WEBRTC_DTLS_SETUP_ACTPASS: GstWebRTCDTLSSetup = 1;
47pub const GST_WEBRTC_DTLS_SETUP_ACTIVE: GstWebRTCDTLSSetup = 2;
48pub const GST_WEBRTC_DTLS_SETUP_PASSIVE: GstWebRTCDTLSSetup = 3;
49
50pub type GstWebRTCDTLSTransportState = c_int;
51pub const GST_WEBRTC_DTLS_TRANSPORT_STATE_NEW: GstWebRTCDTLSTransportState = 0;
52pub const GST_WEBRTC_DTLS_TRANSPORT_STATE_CLOSED: GstWebRTCDTLSTransportState = 1;
53pub const GST_WEBRTC_DTLS_TRANSPORT_STATE_FAILED: GstWebRTCDTLSTransportState = 2;
54pub const GST_WEBRTC_DTLS_TRANSPORT_STATE_CONNECTING: GstWebRTCDTLSTransportState = 3;
55pub const GST_WEBRTC_DTLS_TRANSPORT_STATE_CONNECTED: GstWebRTCDTLSTransportState = 4;
56
57pub type GstWebRTCDataChannelState = c_int;
58pub const GST_WEBRTC_DATA_CHANNEL_STATE_CONNECTING: GstWebRTCDataChannelState = 1;
59pub const GST_WEBRTC_DATA_CHANNEL_STATE_OPEN: GstWebRTCDataChannelState = 2;
60pub const GST_WEBRTC_DATA_CHANNEL_STATE_CLOSING: GstWebRTCDataChannelState = 3;
61pub const GST_WEBRTC_DATA_CHANNEL_STATE_CLOSED: GstWebRTCDataChannelState = 4;
62
63pub type GstWebRTCError = c_int;
64pub const GST_WEBRTC_ERROR_DATA_CHANNEL_FAILURE: GstWebRTCError = 0;
65pub const GST_WEBRTC_ERROR_DTLS_FAILURE: GstWebRTCError = 1;
66pub const GST_WEBRTC_ERROR_FINGERPRINT_FAILURE: GstWebRTCError = 2;
67pub const GST_WEBRTC_ERROR_SCTP_FAILURE: GstWebRTCError = 3;
68pub const GST_WEBRTC_ERROR_SDP_SYNTAX_ERROR: GstWebRTCError = 4;
69pub const GST_WEBRTC_ERROR_HARDWARE_ENCODER_NOT_AVAILABLE: GstWebRTCError = 5;
70pub const GST_WEBRTC_ERROR_ENCODER_ERROR: GstWebRTCError = 6;
71pub const GST_WEBRTC_ERROR_INVALID_STATE: GstWebRTCError = 7;
72pub const GST_WEBRTC_ERROR_INTERNAL_FAILURE: GstWebRTCError = 8;
73#[cfg(feature = "v1_22")]
74#[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
75pub const GST_WEBRTC_ERROR_INVALID_MODIFICATION: GstWebRTCError = 9;
76#[cfg(feature = "v1_22")]
77#[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
78pub const GST_WEBRTC_ERROR_TYPE_ERROR: GstWebRTCError = 10;
79
80pub type GstWebRTCFECType = c_int;
81pub const GST_WEBRTC_FEC_TYPE_NONE: GstWebRTCFECType = 0;
82pub const GST_WEBRTC_FEC_TYPE_ULP_RED: GstWebRTCFECType = 1;
83
84pub type GstWebRTCICEComponent = c_int;
85pub const GST_WEBRTC_ICE_COMPONENT_RTP: GstWebRTCICEComponent = 0;
86pub const GST_WEBRTC_ICE_COMPONENT_RTCP: GstWebRTCICEComponent = 1;
87
88pub type GstWebRTCICEConnectionState = c_int;
89pub const GST_WEBRTC_ICE_CONNECTION_STATE_NEW: GstWebRTCICEConnectionState = 0;
90pub const GST_WEBRTC_ICE_CONNECTION_STATE_CHECKING: GstWebRTCICEConnectionState = 1;
91pub const GST_WEBRTC_ICE_CONNECTION_STATE_CONNECTED: GstWebRTCICEConnectionState = 2;
92pub const GST_WEBRTC_ICE_CONNECTION_STATE_COMPLETED: GstWebRTCICEConnectionState = 3;
93pub const GST_WEBRTC_ICE_CONNECTION_STATE_FAILED: GstWebRTCICEConnectionState = 4;
94pub const GST_WEBRTC_ICE_CONNECTION_STATE_DISCONNECTED: GstWebRTCICEConnectionState = 5;
95pub const GST_WEBRTC_ICE_CONNECTION_STATE_CLOSED: GstWebRTCICEConnectionState = 6;
96
97pub type GstWebRTCICEGatheringState = c_int;
98pub const GST_WEBRTC_ICE_GATHERING_STATE_NEW: GstWebRTCICEGatheringState = 0;
99pub const GST_WEBRTC_ICE_GATHERING_STATE_GATHERING: GstWebRTCICEGatheringState = 1;
100pub const GST_WEBRTC_ICE_GATHERING_STATE_COMPLETE: GstWebRTCICEGatheringState = 2;
101
102pub type GstWebRTCICERole = c_int;
103pub const GST_WEBRTC_ICE_ROLE_CONTROLLED: GstWebRTCICERole = 0;
104pub const GST_WEBRTC_ICE_ROLE_CONTROLLING: GstWebRTCICERole = 1;
105
106pub type GstWebRTCICETcpCandidateType = c_int;
107pub const GST_WEBRTC_ICE_TCP_CANDIDATE_TYPE_ACTIVE: GstWebRTCICETcpCandidateType = 0;
108pub const GST_WEBRTC_ICE_TCP_CANDIDATE_TYPE_PASSIVE: GstWebRTCICETcpCandidateType = 1;
109pub const GST_WEBRTC_ICE_TCP_CANDIDATE_TYPE_SO: GstWebRTCICETcpCandidateType = 2;
110pub const GST_WEBRTC_ICE_TCP_CANDIDATE_TYPE_NONE: GstWebRTCICETcpCandidateType = 3;
111
112pub type GstWebRTCICETransportPolicy = c_int;
113pub const GST_WEBRTC_ICE_TRANSPORT_POLICY_ALL: GstWebRTCICETransportPolicy = 0;
114pub const GST_WEBRTC_ICE_TRANSPORT_POLICY_RELAY: GstWebRTCICETransportPolicy = 1;
115
116pub type GstWebRTCKind = c_int;
117pub const GST_WEBRTC_KIND_UNKNOWN: GstWebRTCKind = 0;
118pub const GST_WEBRTC_KIND_AUDIO: GstWebRTCKind = 1;
119pub const GST_WEBRTC_KIND_VIDEO: GstWebRTCKind = 2;
120
121pub type GstWebRTCPeerConnectionState = c_int;
122pub const GST_WEBRTC_PEER_CONNECTION_STATE_NEW: GstWebRTCPeerConnectionState = 0;
123pub const GST_WEBRTC_PEER_CONNECTION_STATE_CONNECTING: GstWebRTCPeerConnectionState = 1;
124pub const GST_WEBRTC_PEER_CONNECTION_STATE_CONNECTED: GstWebRTCPeerConnectionState = 2;
125pub const GST_WEBRTC_PEER_CONNECTION_STATE_DISCONNECTED: GstWebRTCPeerConnectionState = 3;
126pub const GST_WEBRTC_PEER_CONNECTION_STATE_FAILED: GstWebRTCPeerConnectionState = 4;
127pub const GST_WEBRTC_PEER_CONNECTION_STATE_CLOSED: GstWebRTCPeerConnectionState = 5;
128
129pub type GstWebRTCPriorityType = c_int;
130pub const GST_WEBRTC_PRIORITY_TYPE_VERY_LOW: GstWebRTCPriorityType = 1;
131pub const GST_WEBRTC_PRIORITY_TYPE_LOW: GstWebRTCPriorityType = 2;
132pub const GST_WEBRTC_PRIORITY_TYPE_MEDIUM: GstWebRTCPriorityType = 3;
133pub const GST_WEBRTC_PRIORITY_TYPE_HIGH: GstWebRTCPriorityType = 4;
134
135pub type GstWebRTCRTPTransceiverDirection = c_int;
136pub const GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_NONE: GstWebRTCRTPTransceiverDirection = 0;
137pub const GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_INACTIVE: GstWebRTCRTPTransceiverDirection = 1;
138pub const GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_SENDONLY: GstWebRTCRTPTransceiverDirection = 2;
139pub const GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_RECVONLY: GstWebRTCRTPTransceiverDirection = 3;
140pub const GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_SENDRECV: GstWebRTCRTPTransceiverDirection = 4;
141
142pub type GstWebRTCSCTPTransportState = c_int;
143pub const GST_WEBRTC_SCTP_TRANSPORT_STATE_NEW: GstWebRTCSCTPTransportState = 0;
144pub const GST_WEBRTC_SCTP_TRANSPORT_STATE_CONNECTING: GstWebRTCSCTPTransportState = 1;
145pub const GST_WEBRTC_SCTP_TRANSPORT_STATE_CONNECTED: GstWebRTCSCTPTransportState = 2;
146pub const GST_WEBRTC_SCTP_TRANSPORT_STATE_CLOSED: GstWebRTCSCTPTransportState = 3;
147
148pub type GstWebRTCSDPType = c_int;
149pub const GST_WEBRTC_SDP_TYPE_OFFER: GstWebRTCSDPType = 1;
150pub const GST_WEBRTC_SDP_TYPE_PRANSWER: GstWebRTCSDPType = 2;
151pub const GST_WEBRTC_SDP_TYPE_ANSWER: GstWebRTCSDPType = 3;
152pub const GST_WEBRTC_SDP_TYPE_ROLLBACK: GstWebRTCSDPType = 4;
153
154pub type GstWebRTCSignalingState = c_int;
155pub const GST_WEBRTC_SIGNALING_STATE_STABLE: GstWebRTCSignalingState = 0;
156pub const GST_WEBRTC_SIGNALING_STATE_CLOSED: GstWebRTCSignalingState = 1;
157pub const GST_WEBRTC_SIGNALING_STATE_HAVE_LOCAL_OFFER: GstWebRTCSignalingState = 2;
158pub const GST_WEBRTC_SIGNALING_STATE_HAVE_REMOTE_OFFER: GstWebRTCSignalingState = 3;
159pub const GST_WEBRTC_SIGNALING_STATE_HAVE_LOCAL_PRANSWER: GstWebRTCSignalingState = 4;
160pub const GST_WEBRTC_SIGNALING_STATE_HAVE_REMOTE_PRANSWER: GstWebRTCSignalingState = 5;
161
162pub type GstWebRTCStatsType = c_int;
163pub const GST_WEBRTC_STATS_CODEC: GstWebRTCStatsType = 1;
164pub const GST_WEBRTC_STATS_INBOUND_RTP: GstWebRTCStatsType = 2;
165pub const GST_WEBRTC_STATS_OUTBOUND_RTP: GstWebRTCStatsType = 3;
166pub const GST_WEBRTC_STATS_REMOTE_INBOUND_RTP: GstWebRTCStatsType = 4;
167pub const GST_WEBRTC_STATS_REMOTE_OUTBOUND_RTP: GstWebRTCStatsType = 5;
168pub const GST_WEBRTC_STATS_CSRC: GstWebRTCStatsType = 6;
169pub const GST_WEBRTC_STATS_PEER_CONNECTION: GstWebRTCStatsType = 7;
170pub const GST_WEBRTC_STATS_DATA_CHANNEL: GstWebRTCStatsType = 8;
171pub const GST_WEBRTC_STATS_STREAM: GstWebRTCStatsType = 9;
172pub const GST_WEBRTC_STATS_TRANSPORT: GstWebRTCStatsType = 10;
173pub const GST_WEBRTC_STATS_CANDIDATE_PAIR: GstWebRTCStatsType = 11;
174pub const GST_WEBRTC_STATS_LOCAL_CANDIDATE: GstWebRTCStatsType = 12;
175pub const GST_WEBRTC_STATS_REMOTE_CANDIDATE: GstWebRTCStatsType = 13;
176pub const GST_WEBRTC_STATS_CERTIFICATE: GstWebRTCStatsType = 14;
177
178// Unions
179#[derive(Copy, Clone)]
180#[repr(C)]
181pub union GstWebRTCICECandidateStats_ABI {
182    pub abi: GstWebRTCICECandidateStats_ABI_abi,
183    pub _gst_reserved: [gpointer; 20],
184}
185
186impl ::std::fmt::Debug for GstWebRTCICECandidateStats_ABI {
187    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
188        f.debug_struct(&format!("GstWebRTCICECandidateStats_ABI @ {self:p}"))
189            .field("abi", unsafe { &self.abi })
190            .finish()
191    }
192}
193
194// Callbacks
195pub type GstWebRTCICEOnCandidateFunc =
196    Option<unsafe extern "C" fn(*mut GstWebRTCICE, c_uint, *const c_char, gpointer)>;
197
198// Records
199#[repr(C)]
200#[allow(dead_code)]
201pub struct _GstWebRTCDTLSTransportClass {
202    _data: [u8; 0],
203    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
204}
205
206pub type GstWebRTCDTLSTransportClass = _GstWebRTCDTLSTransportClass;
207
208#[repr(C)]
209#[allow(dead_code)]
210pub struct _GstWebRTCDataChannelClass {
211    _data: [u8; 0],
212    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
213}
214
215pub type GstWebRTCDataChannelClass = _GstWebRTCDataChannelClass;
216
217#[derive(Copy, Clone)]
218#[repr(C)]
219pub struct GstWebRTCICECandidateStats {
220    pub ipaddr: *mut c_char,
221    pub port: c_uint,
222    pub stream_id: c_uint,
223    pub type_: *const c_char,
224    pub proto: *const c_char,
225    pub relay_proto: *const c_char,
226    pub prio: c_uint,
227    pub url: *mut c_char,
228    pub ABI: GstWebRTCICECandidateStats_ABI,
229}
230
231impl ::std::fmt::Debug for GstWebRTCICECandidateStats {
232    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
233        f.debug_struct(&format!("GstWebRTCICECandidateStats @ {self:p}"))
234            .field("ipaddr", &self.ipaddr)
235            .field("port", &self.port)
236            .field("stream_id", &self.stream_id)
237            .field("type_", &self.type_)
238            .field("proto", &self.proto)
239            .field("relay_proto", &self.relay_proto)
240            .field("prio", &self.prio)
241            .field("url", &self.url)
242            .field("ABI", &self.ABI)
243            .finish()
244    }
245}
246
247#[derive(Copy, Clone)]
248#[repr(C)]
249pub struct GstWebRTCICECandidateStats_ABI_abi {
250    pub foundation: *mut c_char,
251    pub related_address: *mut c_char,
252    pub related_port: c_uint,
253    pub username_fragment: *mut c_char,
254    pub tcp_type: GstWebRTCICETcpCandidateType,
255}
256
257impl ::std::fmt::Debug for GstWebRTCICECandidateStats_ABI_abi {
258    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
259        f.debug_struct(&format!("GstWebRTCICECandidateStats_ABI_abi @ {self:p}"))
260            .field("foundation", &self.foundation)
261            .field("related_address", &self.related_address)
262            .field("related_port", &self.related_port)
263            .field("username_fragment", &self.username_fragment)
264            .field("tcp_type", &self.tcp_type)
265            .finish()
266    }
267}
268
269#[derive(Copy, Clone)]
270#[repr(C)]
271pub struct GstWebRTCICEClass {
272    pub parent_class: gst::GstObjectClass,
273    pub add_stream:
274        Option<unsafe extern "C" fn(*mut GstWebRTCICE, c_uint) -> *mut GstWebRTCICEStream>,
275    pub find_transport: Option<
276        unsafe extern "C" fn(
277            *mut GstWebRTCICE,
278            *mut GstWebRTCICEStream,
279            GstWebRTCICEComponent,
280        ) -> *mut GstWebRTCICETransport,
281    >,
282    pub gather_candidates:
283        Option<unsafe extern "C" fn(*mut GstWebRTCICE, *mut GstWebRTCICEStream) -> gboolean>,
284    pub add_candidate: Option<
285        unsafe extern "C" fn(
286            *mut GstWebRTCICE,
287            *mut GstWebRTCICEStream,
288            *const c_char,
289            *mut gst::GstPromise,
290        ),
291    >,
292    pub set_local_credentials: Option<
293        unsafe extern "C" fn(
294            *mut GstWebRTCICE,
295            *mut GstWebRTCICEStream,
296            *const c_char,
297            *const c_char,
298        ) -> gboolean,
299    >,
300    pub set_remote_credentials: Option<
301        unsafe extern "C" fn(
302            *mut GstWebRTCICE,
303            *mut GstWebRTCICEStream,
304            *const c_char,
305            *const c_char,
306        ) -> gboolean,
307    >,
308    pub add_turn_server: Option<unsafe extern "C" fn(*mut GstWebRTCICE, *const c_char) -> gboolean>,
309    pub set_is_controller: Option<unsafe extern "C" fn(*mut GstWebRTCICE, gboolean)>,
310    pub get_is_controller: Option<unsafe extern "C" fn(*mut GstWebRTCICE) -> gboolean>,
311    pub set_force_relay: Option<unsafe extern "C" fn(*mut GstWebRTCICE, gboolean)>,
312    pub set_stun_server: Option<unsafe extern "C" fn(*mut GstWebRTCICE, *const c_char)>,
313    pub get_stun_server: Option<unsafe extern "C" fn(*mut GstWebRTCICE) -> *mut c_char>,
314    pub set_turn_server: Option<unsafe extern "C" fn(*mut GstWebRTCICE, *const c_char)>,
315    pub get_turn_server: Option<unsafe extern "C" fn(*mut GstWebRTCICE) -> *mut c_char>,
316    pub set_http_proxy: Option<unsafe extern "C" fn(*mut GstWebRTCICE, *const c_char)>,
317    pub get_http_proxy: Option<unsafe extern "C" fn(*mut GstWebRTCICE) -> *mut c_char>,
318    pub set_tos: Option<unsafe extern "C" fn(*mut GstWebRTCICE, *mut GstWebRTCICEStream, c_uint)>,
319    pub set_on_ice_candidate: Option<
320        unsafe extern "C" fn(
321            *mut GstWebRTCICE,
322            GstWebRTCICEOnCandidateFunc,
323            gpointer,
324            glib::GDestroyNotify,
325        ),
326    >,
327    pub get_local_candidates: Option<
328        unsafe extern "C" fn(
329            *mut GstWebRTCICE,
330            *mut GstWebRTCICEStream,
331        ) -> *mut *mut GstWebRTCICECandidateStats,
332    >,
333    pub get_remote_candidates: Option<
334        unsafe extern "C" fn(
335            *mut GstWebRTCICE,
336            *mut GstWebRTCICEStream,
337        ) -> *mut *mut GstWebRTCICECandidateStats,
338    >,
339    pub get_selected_pair: Option<
340        unsafe extern "C" fn(
341            *mut GstWebRTCICE,
342            *mut GstWebRTCICEStream,
343            *mut *mut GstWebRTCICECandidateStats,
344            *mut *mut GstWebRTCICECandidateStats,
345        ) -> gboolean,
346    >,
347    pub _gst_reserved: [gpointer; 4],
348}
349
350impl ::std::fmt::Debug for GstWebRTCICEClass {
351    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
352        f.debug_struct(&format!("GstWebRTCICEClass @ {self:p}"))
353            .field("parent_class", &self.parent_class)
354            .field("add_stream", &self.add_stream)
355            .field("find_transport", &self.find_transport)
356            .field("gather_candidates", &self.gather_candidates)
357            .field("add_candidate", &self.add_candidate)
358            .field("set_local_credentials", &self.set_local_credentials)
359            .field("set_remote_credentials", &self.set_remote_credentials)
360            .field("add_turn_server", &self.add_turn_server)
361            .field("set_is_controller", &self.set_is_controller)
362            .field("get_is_controller", &self.get_is_controller)
363            .field("set_force_relay", &self.set_force_relay)
364            .field("set_stun_server", &self.set_stun_server)
365            .field("get_stun_server", &self.get_stun_server)
366            .field("set_turn_server", &self.set_turn_server)
367            .field("get_turn_server", &self.get_turn_server)
368            .field("set_http_proxy", &self.set_http_proxy)
369            .field("get_http_proxy", &self.get_http_proxy)
370            .field("set_tos", &self.set_tos)
371            .field("set_on_ice_candidate", &self.set_on_ice_candidate)
372            .field("get_local_candidates", &self.get_local_candidates)
373            .field("get_remote_candidates", &self.get_remote_candidates)
374            .field("get_selected_pair", &self.get_selected_pair)
375            .field("_gst_reserved", &self._gst_reserved)
376            .finish()
377    }
378}
379
380#[derive(Copy, Clone)]
381#[repr(C)]
382pub struct GstWebRTCICEStreamClass {
383    pub parent_class: gst::GstObjectClass,
384    pub find_transport: Option<
385        unsafe extern "C" fn(
386            *mut GstWebRTCICEStream,
387            GstWebRTCICEComponent,
388        ) -> *mut GstWebRTCICETransport,
389    >,
390    pub gather_candidates: Option<unsafe extern "C" fn(*mut GstWebRTCICEStream) -> gboolean>,
391}
392
393impl ::std::fmt::Debug for GstWebRTCICEStreamClass {
394    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
395        f.debug_struct(&format!("GstWebRTCICEStreamClass @ {self:p}"))
396            .field("parent_class", &self.parent_class)
397            .field("find_transport", &self.find_transport)
398            .field("gather_candidates", &self.gather_candidates)
399            .finish()
400    }
401}
402
403#[derive(Copy, Clone)]
404#[repr(C)]
405pub struct GstWebRTCICETransportClass {
406    pub parent_class: gst::GstObjectClass,
407    pub gather_candidates: Option<unsafe extern "C" fn(*mut GstWebRTCICETransport) -> gboolean>,
408    pub _padding: [gpointer; 4],
409}
410
411impl ::std::fmt::Debug for GstWebRTCICETransportClass {
412    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
413        f.debug_struct(&format!("GstWebRTCICETransportClass @ {self:p}"))
414            .field("parent_class", &self.parent_class)
415            .field("gather_candidates", &self.gather_candidates)
416            .field("_padding", &self._padding)
417            .finish()
418    }
419}
420
421#[repr(C)]
422#[allow(dead_code)]
423pub struct _GstWebRTCRTPReceiverClass {
424    _data: [u8; 0],
425    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
426}
427
428pub type GstWebRTCRTPReceiverClass = _GstWebRTCRTPReceiverClass;
429
430#[repr(C)]
431#[allow(dead_code)]
432pub struct _GstWebRTCRTPSenderClass {
433    _data: [u8; 0],
434    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
435}
436
437pub type GstWebRTCRTPSenderClass = _GstWebRTCRTPSenderClass;
438
439#[repr(C)]
440#[allow(dead_code)]
441pub struct _GstWebRTCRTPTransceiverClass {
442    _data: [u8; 0],
443    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
444}
445
446pub type GstWebRTCRTPTransceiverClass = _GstWebRTCRTPTransceiverClass;
447
448#[repr(C)]
449#[allow(dead_code)]
450pub struct _GstWebRTCSCTPTransportClass {
451    _data: [u8; 0],
452    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
453}
454
455pub type GstWebRTCSCTPTransportClass = _GstWebRTCSCTPTransportClass;
456
457#[derive(Copy, Clone)]
458#[repr(C)]
459pub struct GstWebRTCSessionDescription {
460    pub type_: GstWebRTCSDPType,
461    pub sdp: *mut gst_sdp::GstSDPMessage,
462}
463
464impl ::std::fmt::Debug for GstWebRTCSessionDescription {
465    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
466        f.debug_struct(&format!("GstWebRTCSessionDescription @ {self:p}"))
467            .field("type_", &self.type_)
468            .field("sdp", &self.sdp)
469            .finish()
470    }
471}
472
473// Classes
474#[repr(C)]
475#[allow(dead_code)]
476pub struct GstWebRTCDTLSTransport {
477    _data: [u8; 0],
478    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
479}
480
481impl ::std::fmt::Debug for GstWebRTCDTLSTransport {
482    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
483        f.debug_struct(&format!("GstWebRTCDTLSTransport @ {self:p}"))
484            .finish()
485    }
486}
487
488#[repr(C)]
489#[allow(dead_code)]
490pub struct GstWebRTCDataChannel {
491    _data: [u8; 0],
492    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
493}
494
495impl ::std::fmt::Debug for GstWebRTCDataChannel {
496    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
497        f.debug_struct(&format!("GstWebRTCDataChannel @ {self:p}"))
498            .finish()
499    }
500}
501
502#[derive(Copy, Clone)]
503#[repr(C)]
504pub struct GstWebRTCICE {
505    pub parent: gst::GstObject,
506    pub ice_gathering_state: GstWebRTCICEGatheringState,
507    pub ice_connection_state: GstWebRTCICEConnectionState,
508    pub min_rtp_port: c_uint,
509    pub max_rtp_port: c_uint,
510    pub _gst_reserved: [gpointer; 4],
511}
512
513impl ::std::fmt::Debug for GstWebRTCICE {
514    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
515        f.debug_struct(&format!("GstWebRTCICE @ {self:p}"))
516            .field("parent", &self.parent)
517            .field("ice_gathering_state", &self.ice_gathering_state)
518            .field("ice_connection_state", &self.ice_connection_state)
519            .field("min_rtp_port", &self.min_rtp_port)
520            .field("max_rtp_port", &self.max_rtp_port)
521            .field("_gst_reserved", &self._gst_reserved)
522            .finish()
523    }
524}
525
526#[derive(Copy, Clone)]
527#[repr(C)]
528pub struct GstWebRTCICEStream {
529    pub parent: gst::GstObject,
530    pub stream_id: c_uint,
531}
532
533impl ::std::fmt::Debug for GstWebRTCICEStream {
534    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
535        f.debug_struct(&format!("GstWebRTCICEStream @ {self:p}"))
536            .field("parent", &self.parent)
537            .field("stream_id", &self.stream_id)
538            .finish()
539    }
540}
541
542#[derive(Copy, Clone)]
543#[repr(C)]
544pub struct GstWebRTCICETransport {
545    pub parent: gst::GstObject,
546    pub role: GstWebRTCICERole,
547    pub component: GstWebRTCICEComponent,
548    pub state: GstWebRTCICEConnectionState,
549    pub gathering_state: GstWebRTCICEGatheringState,
550    pub src: *mut gst::GstElement,
551    pub sink: *mut gst::GstElement,
552    pub _padding: [gpointer; 4],
553}
554
555impl ::std::fmt::Debug for GstWebRTCICETransport {
556    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
557        f.debug_struct(&format!("GstWebRTCICETransport @ {self:p}"))
558            .field("parent", &self.parent)
559            .field("role", &self.role)
560            .field("component", &self.component)
561            .field("state", &self.state)
562            .field("gathering_state", &self.gathering_state)
563            .field("src", &self.src)
564            .field("sink", &self.sink)
565            .field("_padding", &self._padding)
566            .finish()
567    }
568}
569
570#[repr(C)]
571#[allow(dead_code)]
572pub struct GstWebRTCRTPReceiver {
573    _data: [u8; 0],
574    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
575}
576
577impl ::std::fmt::Debug for GstWebRTCRTPReceiver {
578    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
579        f.debug_struct(&format!("GstWebRTCRTPReceiver @ {self:p}"))
580            .finish()
581    }
582}
583
584#[repr(C)]
585#[allow(dead_code)]
586pub struct GstWebRTCRTPSender {
587    _data: [u8; 0],
588    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
589}
590
591impl ::std::fmt::Debug for GstWebRTCRTPSender {
592    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
593        f.debug_struct(&format!("GstWebRTCRTPSender @ {self:p}"))
594            .finish()
595    }
596}
597
598#[repr(C)]
599#[allow(dead_code)]
600pub struct GstWebRTCRTPTransceiver {
601    _data: [u8; 0],
602    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
603}
604
605impl ::std::fmt::Debug for GstWebRTCRTPTransceiver {
606    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
607        f.debug_struct(&format!("GstWebRTCRTPTransceiver @ {self:p}"))
608            .finish()
609    }
610}
611
612#[repr(C)]
613#[allow(dead_code)]
614pub struct GstWebRTCSCTPTransport {
615    _data: [u8; 0],
616    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
617}
618
619impl ::std::fmt::Debug for GstWebRTCSCTPTransport {
620    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
621        f.debug_struct(&format!("GstWebRTCSCTPTransport @ {self:p}"))
622            .finish()
623    }
624}
625
626extern "C" {
627
628    //=========================================================================
629    // GstWebRTCBundlePolicy
630    //=========================================================================
631    #[cfg(feature = "v1_16")]
632    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
633    pub fn gst_webrtc_bundle_policy_get_type() -> GType;
634
635    //=========================================================================
636    // GstWebRTCDTLSRole
637    //=========================================================================
638    #[cfg(feature = "v1_28")]
639    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
640    pub fn gst_webrtc_dtls_role_get_type() -> GType;
641
642    //=========================================================================
643    // GstWebRTCDTLSSetup
644    //=========================================================================
645    pub fn gst_webrtc_dtls_setup_get_type() -> GType;
646
647    //=========================================================================
648    // GstWebRTCDTLSTransportState
649    //=========================================================================
650    pub fn gst_webrtc_dtls_transport_state_get_type() -> GType;
651
652    //=========================================================================
653    // GstWebRTCDataChannelState
654    //=========================================================================
655    #[cfg(feature = "v1_16")]
656    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
657    pub fn gst_webrtc_data_channel_state_get_type() -> GType;
658
659    //=========================================================================
660    // GstWebRTCError
661    //=========================================================================
662    #[cfg(feature = "v1_20")]
663    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
664    pub fn gst_webrtc_error_get_type() -> GType;
665    #[cfg(feature = "v1_20")]
666    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
667    pub fn gst_webrtc_error_quark() -> glib::GQuark;
668
669    //=========================================================================
670    // GstWebRTCFECType
671    //=========================================================================
672    #[cfg(feature = "v1_14_1")]
673    #[cfg_attr(docsrs, doc(cfg(feature = "v1_14_1")))]
674    pub fn gst_webrtc_fec_type_get_type() -> GType;
675
676    //=========================================================================
677    // GstWebRTCICEComponent
678    //=========================================================================
679    pub fn gst_webrtc_ice_component_get_type() -> GType;
680
681    //=========================================================================
682    // GstWebRTCICEConnectionState
683    //=========================================================================
684    pub fn gst_webrtc_ice_connection_state_get_type() -> GType;
685
686    //=========================================================================
687    // GstWebRTCICEGatheringState
688    //=========================================================================
689    pub fn gst_webrtc_ice_gathering_state_get_type() -> GType;
690
691    //=========================================================================
692    // GstWebRTCICERole
693    //=========================================================================
694    pub fn gst_webrtc_ice_role_get_type() -> GType;
695
696    //=========================================================================
697    // GstWebRTCICETcpCandidateType
698    //=========================================================================
699    #[cfg(feature = "v1_28")]
700    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
701    pub fn gst_webrtc_ice_tcp_candidate_type_get_type() -> GType;
702
703    //=========================================================================
704    // GstWebRTCICETransportPolicy
705    //=========================================================================
706    #[cfg(feature = "v1_16")]
707    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
708    pub fn gst_webrtc_ice_transport_policy_get_type() -> GType;
709
710    //=========================================================================
711    // GstWebRTCKind
712    //=========================================================================
713    #[cfg(feature = "v1_20")]
714    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
715    pub fn gst_webrtc_kind_get_type() -> GType;
716
717    //=========================================================================
718    // GstWebRTCPeerConnectionState
719    //=========================================================================
720    pub fn gst_webrtc_peer_connection_state_get_type() -> GType;
721
722    //=========================================================================
723    // GstWebRTCPriorityType
724    //=========================================================================
725    #[cfg(feature = "v1_16")]
726    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
727    pub fn gst_webrtc_priority_type_get_type() -> GType;
728
729    //=========================================================================
730    // GstWebRTCRTPTransceiverDirection
731    //=========================================================================
732    pub fn gst_webrtc_rtp_transceiver_direction_get_type() -> GType;
733
734    //=========================================================================
735    // GstWebRTCSCTPTransportState
736    //=========================================================================
737    #[cfg(feature = "v1_16")]
738    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
739    pub fn gst_webrtc_sctp_transport_state_get_type() -> GType;
740
741    //=========================================================================
742    // GstWebRTCSDPType
743    //=========================================================================
744    pub fn gst_webrtc_sdp_type_get_type() -> GType;
745    pub fn gst_webrtc_sdp_type_to_string(type_: GstWebRTCSDPType) -> *const c_char;
746
747    //=========================================================================
748    // GstWebRTCSignalingState
749    //=========================================================================
750    pub fn gst_webrtc_signaling_state_get_type() -> GType;
751
752    //=========================================================================
753    // GstWebRTCStatsType
754    //=========================================================================
755    pub fn gst_webrtc_stats_type_get_type() -> GType;
756
757    //=========================================================================
758    // GstWebRTCICECandidateStats
759    //=========================================================================
760    #[cfg(feature = "v1_22")]
761    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
762    pub fn gst_webrtc_ice_candidate_stats_get_type() -> GType;
763    #[cfg(feature = "v1_22")]
764    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
765    pub fn gst_webrtc_ice_candidate_stats_copy(
766        stats: *mut GstWebRTCICECandidateStats,
767    ) -> *mut GstWebRTCICECandidateStats;
768    #[cfg(feature = "v1_22")]
769    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
770    pub fn gst_webrtc_ice_candidate_stats_free(stats: *mut GstWebRTCICECandidateStats);
771
772    //=========================================================================
773    // GstWebRTCSessionDescription
774    //=========================================================================
775    pub fn gst_webrtc_session_description_get_type() -> GType;
776    pub fn gst_webrtc_session_description_new(
777        type_: GstWebRTCSDPType,
778        sdp: *mut gst_sdp::GstSDPMessage,
779    ) -> *mut GstWebRTCSessionDescription;
780    pub fn gst_webrtc_session_description_copy(
781        src: *const GstWebRTCSessionDescription,
782    ) -> *mut GstWebRTCSessionDescription;
783    pub fn gst_webrtc_session_description_free(desc: *mut GstWebRTCSessionDescription);
784
785    //=========================================================================
786    // GstWebRTCDTLSTransport
787    //=========================================================================
788    pub fn gst_webrtc_dtls_transport_get_type() -> GType;
789
790    //=========================================================================
791    // GstWebRTCDataChannel
792    //=========================================================================
793    #[cfg(feature = "v1_18")]
794    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
795    pub fn gst_webrtc_data_channel_get_type() -> GType;
796    #[cfg(feature = "v1_18")]
797    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
798    pub fn gst_webrtc_data_channel_close(channel: *mut GstWebRTCDataChannel);
799    #[cfg(feature = "v1_18")]
800    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
801    pub fn gst_webrtc_data_channel_send_data(
802        channel: *mut GstWebRTCDataChannel,
803        data: *mut glib::GBytes,
804    );
805    #[cfg(feature = "v1_22")]
806    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
807    pub fn gst_webrtc_data_channel_send_data_full(
808        channel: *mut GstWebRTCDataChannel,
809        data: *mut glib::GBytes,
810        error: *mut *mut glib::GError,
811    ) -> gboolean;
812    #[cfg(feature = "v1_18")]
813    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
814    pub fn gst_webrtc_data_channel_send_string(
815        channel: *mut GstWebRTCDataChannel,
816        str: *const c_char,
817    );
818    #[cfg(feature = "v1_22")]
819    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
820    pub fn gst_webrtc_data_channel_send_string_full(
821        channel: *mut GstWebRTCDataChannel,
822        str: *const c_char,
823        error: *mut *mut glib::GError,
824    ) -> gboolean;
825
826    //=========================================================================
827    // GstWebRTCICE
828    //=========================================================================
829    #[cfg(feature = "v1_22")]
830    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
831    pub fn gst_webrtc_ice_get_type() -> GType;
832    #[cfg(feature = "v1_22")]
833    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
834    pub fn gst_webrtc_ice_add_candidate(
835        ice: *mut GstWebRTCICE,
836        stream: *mut GstWebRTCICEStream,
837        candidate: *const c_char,
838        promise: *mut gst::GstPromise,
839    );
840    #[cfg(feature = "v1_22")]
841    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
842    pub fn gst_webrtc_ice_add_stream(
843        ice: *mut GstWebRTCICE,
844        session_id: c_uint,
845    ) -> *mut GstWebRTCICEStream;
846    #[cfg(feature = "v1_22")]
847    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
848    pub fn gst_webrtc_ice_add_turn_server(ice: *mut GstWebRTCICE, uri: *const c_char) -> gboolean;
849    #[cfg(feature = "v1_22")]
850    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
851    pub fn gst_webrtc_ice_find_transport(
852        ice: *mut GstWebRTCICE,
853        stream: *mut GstWebRTCICEStream,
854        component: GstWebRTCICEComponent,
855    ) -> *mut GstWebRTCICETransport;
856    #[cfg(feature = "v1_22")]
857    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
858    pub fn gst_webrtc_ice_gather_candidates(
859        ice: *mut GstWebRTCICE,
860        stream: *mut GstWebRTCICEStream,
861    ) -> gboolean;
862    #[cfg(feature = "v1_22")]
863    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
864    pub fn gst_webrtc_ice_get_http_proxy(ice: *mut GstWebRTCICE) -> *mut c_char;
865    #[cfg(feature = "v1_22")]
866    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
867    pub fn gst_webrtc_ice_get_is_controller(ice: *mut GstWebRTCICE) -> gboolean;
868    #[cfg(feature = "v1_22")]
869    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
870    pub fn gst_webrtc_ice_get_local_candidates(
871        ice: *mut GstWebRTCICE,
872        stream: *mut GstWebRTCICEStream,
873    ) -> *mut *mut GstWebRTCICECandidateStats;
874    #[cfg(feature = "v1_22")]
875    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
876    pub fn gst_webrtc_ice_get_remote_candidates(
877        ice: *mut GstWebRTCICE,
878        stream: *mut GstWebRTCICEStream,
879    ) -> *mut *mut GstWebRTCICECandidateStats;
880    #[cfg(feature = "v1_22")]
881    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
882    pub fn gst_webrtc_ice_get_selected_pair(
883        ice: *mut GstWebRTCICE,
884        stream: *mut GstWebRTCICEStream,
885        local_stats: *mut *mut GstWebRTCICECandidateStats,
886        remote_stats: *mut *mut GstWebRTCICECandidateStats,
887    ) -> gboolean;
888    #[cfg(feature = "v1_22")]
889    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
890    pub fn gst_webrtc_ice_get_stun_server(ice: *mut GstWebRTCICE) -> *mut c_char;
891    #[cfg(feature = "v1_22")]
892    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
893    pub fn gst_webrtc_ice_get_turn_server(ice: *mut GstWebRTCICE) -> *mut c_char;
894    #[cfg(feature = "v1_22")]
895    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
896    pub fn gst_webrtc_ice_set_force_relay(ice: *mut GstWebRTCICE, force_relay: gboolean);
897    #[cfg(feature = "v1_22")]
898    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
899    pub fn gst_webrtc_ice_set_http_proxy(ice: *mut GstWebRTCICE, uri: *const c_char);
900    #[cfg(feature = "v1_22")]
901    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
902    pub fn gst_webrtc_ice_set_is_controller(ice: *mut GstWebRTCICE, controller: gboolean);
903    #[cfg(feature = "v1_22")]
904    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
905    pub fn gst_webrtc_ice_set_local_credentials(
906        ice: *mut GstWebRTCICE,
907        stream: *mut GstWebRTCICEStream,
908        ufrag: *const c_char,
909        pwd: *const c_char,
910    ) -> gboolean;
911    #[cfg(feature = "v1_22")]
912    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
913    pub fn gst_webrtc_ice_set_on_ice_candidate(
914        ice: *mut GstWebRTCICE,
915        func: GstWebRTCICEOnCandidateFunc,
916        user_data: gpointer,
917        notify: glib::GDestroyNotify,
918    );
919    #[cfg(feature = "v1_22")]
920    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
921    pub fn gst_webrtc_ice_set_remote_credentials(
922        ice: *mut GstWebRTCICE,
923        stream: *mut GstWebRTCICEStream,
924        ufrag: *const c_char,
925        pwd: *const c_char,
926    ) -> gboolean;
927    #[cfg(feature = "v1_22")]
928    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
929    pub fn gst_webrtc_ice_set_stun_server(ice: *mut GstWebRTCICE, uri: *const c_char);
930    #[cfg(feature = "v1_22")]
931    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
932    pub fn gst_webrtc_ice_set_tos(
933        ice: *mut GstWebRTCICE,
934        stream: *mut GstWebRTCICEStream,
935        tos: c_uint,
936    );
937    #[cfg(feature = "v1_22")]
938    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
939    pub fn gst_webrtc_ice_set_turn_server(ice: *mut GstWebRTCICE, uri: *const c_char);
940
941    //=========================================================================
942    // GstWebRTCICEStream
943    //=========================================================================
944    #[cfg(feature = "v1_22")]
945    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
946    pub fn gst_webrtc_ice_stream_get_type() -> GType;
947    #[cfg(feature = "v1_22")]
948    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
949    pub fn gst_webrtc_ice_stream_find_transport(
950        stream: *mut GstWebRTCICEStream,
951        component: GstWebRTCICEComponent,
952    ) -> *mut GstWebRTCICETransport;
953    #[cfg(feature = "v1_22")]
954    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
955    pub fn gst_webrtc_ice_stream_gather_candidates(ice: *mut GstWebRTCICEStream) -> gboolean;
956
957    //=========================================================================
958    // GstWebRTCICETransport
959    //=========================================================================
960    pub fn gst_webrtc_ice_transport_get_type() -> GType;
961    pub fn gst_webrtc_ice_transport_connection_state_change(
962        ice: *mut GstWebRTCICETransport,
963        new_state: GstWebRTCICEConnectionState,
964    );
965    pub fn gst_webrtc_ice_transport_gathering_state_change(
966        ice: *mut GstWebRTCICETransport,
967        new_state: GstWebRTCICEGatheringState,
968    );
969    pub fn gst_webrtc_ice_transport_new_candidate(
970        ice: *mut GstWebRTCICETransport,
971        stream_id: c_uint,
972        component: GstWebRTCICEComponent,
973        attr: *const c_char,
974    );
975    pub fn gst_webrtc_ice_transport_selected_pair_change(ice: *mut GstWebRTCICETransport);
976
977    //=========================================================================
978    // GstWebRTCRTPReceiver
979    //=========================================================================
980    pub fn gst_webrtc_rtp_receiver_get_type() -> GType;
981
982    //=========================================================================
983    // GstWebRTCRTPSender
984    //=========================================================================
985    pub fn gst_webrtc_rtp_sender_get_type() -> GType;
986    #[cfg(feature = "v1_20")]
987    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
988    pub fn gst_webrtc_rtp_sender_set_priority(
989        sender: *mut GstWebRTCRTPSender,
990        priority: GstWebRTCPriorityType,
991    );
992
993    //=========================================================================
994    // GstWebRTCRTPTransceiver
995    //=========================================================================
996    pub fn gst_webrtc_rtp_transceiver_get_type() -> GType;
997
998    //=========================================================================
999    // GstWebRTCSCTPTransport
1000    //=========================================================================
1001    #[cfg(feature = "v1_20")]
1002    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1003    pub fn gst_webrtc_sctp_transport_get_type() -> GType;
1004
1005}