1#![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
32pub 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#[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
204pub type GstWebRTCICEOnCandidateFunc =
206 Option<unsafe extern "C" fn(*mut GstWebRTCICE, c_uint, *const c_char, gpointer)>;
207
208#[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#[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 #[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 #[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 pub fn gst_webrtc_dtls_setup_get_type() -> GType;
704
705 pub fn gst_webrtc_dtls_transport_state_get_type() -> GType;
709
710 #[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 #[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 #[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 #[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 #[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 pub fn gst_webrtc_ice_component_get_type() -> GType;
752
753 pub fn gst_webrtc_ice_connection_state_get_type() -> GType;
757
758 pub fn gst_webrtc_ice_gathering_state_get_type() -> GType;
762
763 pub fn gst_webrtc_ice_role_get_type() -> GType;
767
768 #[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 #[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 #[cfg(feature = "v1_20")]
786 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
787 pub fn gst_webrtc_kind_get_type() -> GType;
788
789 pub fn gst_webrtc_peer_connection_state_get_type() -> GType;
793
794 #[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 pub fn gst_webrtc_rtp_transceiver_direction_get_type() -> GType;
805
806 #[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 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 pub fn gst_webrtc_signaling_state_get_type() -> GType;
823
824 pub fn gst_webrtc_stats_type_get_type() -> GType;
828
829 #[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 #[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 #[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 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 pub fn gst_webrtc_dtls_transport_get_type() -> GType;
891
892 #[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 #[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 #[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 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 pub fn gst_webrtc_rtp_receiver_get_type() -> GType;
1091
1092 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 pub fn gst_webrtc_rtp_transceiver_get_type() -> GType;
1107
1108 #[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}