Skip to main content

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