gstreamer_sdp_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_sys as gst;
17
18#[cfg(unix)]
19#[allow(unused_imports)]
20use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t};
21#[allow(unused_imports)]
22use libc::{intptr_t, off_t, size_t, ssize_t, time_t, uintptr_t, FILE};
23#[allow(unused_imports)]
24use std::ffi::{
25    c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
26};
27
28#[allow(unused_imports)]
29use glib::{gboolean, gconstpointer, gpointer, GType};
30
31// Enums
32pub type GstMIKEYCacheType = c_int;
33pub const GST_MIKEY_CACHE_NONE: GstMIKEYCacheType = 0;
34pub const GST_MIKEY_CACHE_ALWAYS: GstMIKEYCacheType = 1;
35pub const GST_MIKEY_CACHE_FOR_CSB: GstMIKEYCacheType = 2;
36
37pub type GstMIKEYEncAlg = c_int;
38pub const GST_MIKEY_ENC_NULL: GstMIKEYEncAlg = 0;
39pub const GST_MIKEY_ENC_AES_CM_128: GstMIKEYEncAlg = 1;
40pub const GST_MIKEY_ENC_AES_KW_128: GstMIKEYEncAlg = 2;
41pub const GST_MIKEY_ENC_AES_GCM_128: GstMIKEYEncAlg = 6;
42
43pub type GstMIKEYKVType = c_int;
44pub const GST_MIKEY_KV_NULL: GstMIKEYKVType = 0;
45pub const GST_MIKEY_KV_SPI: GstMIKEYKVType = 1;
46pub const GST_MIKEY_KV_INTERVAL: GstMIKEYKVType = 2;
47
48pub type GstMIKEYKeyDataType = c_int;
49pub const GST_MIKEY_KD_TGK: GstMIKEYKeyDataType = 0;
50pub const GST_MIKEY_KD_TEK: GstMIKEYKeyDataType = 2;
51
52pub type GstMIKEYMacAlg = c_int;
53pub const GST_MIKEY_MAC_NULL: GstMIKEYMacAlg = 0;
54pub const GST_MIKEY_MAC_HMAC_SHA_1_160: GstMIKEYMacAlg = 1;
55
56pub type GstMIKEYMapType = c_int;
57pub const GST_MIKEY_MAP_TYPE_SRTP: GstMIKEYMapType = 0;
58
59pub type GstMIKEYPRFFunc = c_int;
60pub const GST_MIKEY_PRF_MIKEY_1: GstMIKEYPRFFunc = 0;
61
62pub type GstMIKEYPayloadType = c_int;
63pub const GST_MIKEY_PT_LAST: GstMIKEYPayloadType = 0;
64pub const GST_MIKEY_PT_KEMAC: GstMIKEYPayloadType = 1;
65pub const GST_MIKEY_PT_PKE: GstMIKEYPayloadType = 2;
66pub const GST_MIKEY_PT_DH: GstMIKEYPayloadType = 3;
67pub const GST_MIKEY_PT_SIGN: GstMIKEYPayloadType = 4;
68pub const GST_MIKEY_PT_T: GstMIKEYPayloadType = 5;
69pub const GST_MIKEY_PT_ID: GstMIKEYPayloadType = 6;
70pub const GST_MIKEY_PT_CERT: GstMIKEYPayloadType = 7;
71pub const GST_MIKEY_PT_CHASH: GstMIKEYPayloadType = 8;
72pub const GST_MIKEY_PT_V: GstMIKEYPayloadType = 9;
73pub const GST_MIKEY_PT_SP: GstMIKEYPayloadType = 10;
74pub const GST_MIKEY_PT_RAND: GstMIKEYPayloadType = 11;
75pub const GST_MIKEY_PT_ERR: GstMIKEYPayloadType = 12;
76pub const GST_MIKEY_PT_KEY_DATA: GstMIKEYPayloadType = 20;
77pub const GST_MIKEY_PT_GEN_EXT: GstMIKEYPayloadType = 21;
78
79pub type GstMIKEYSecProto = c_int;
80pub const GST_MIKEY_SEC_PROTO_SRTP: GstMIKEYSecProto = 0;
81
82pub type GstMIKEYSecSRTP = c_int;
83pub const GST_MIKEY_SP_SRTP_ENC_ALG: GstMIKEYSecSRTP = 0;
84pub const GST_MIKEY_SP_SRTP_ENC_KEY_LEN: GstMIKEYSecSRTP = 1;
85pub const GST_MIKEY_SP_SRTP_AUTH_ALG: GstMIKEYSecSRTP = 2;
86pub const GST_MIKEY_SP_SRTP_AUTH_KEY_LEN: GstMIKEYSecSRTP = 3;
87pub const GST_MIKEY_SP_SRTP_SALT_KEY_LEN: GstMIKEYSecSRTP = 4;
88pub const GST_MIKEY_SP_SRTP_PRF: GstMIKEYSecSRTP = 5;
89pub const GST_MIKEY_SP_SRTP_KEY_DERIV_RATE: GstMIKEYSecSRTP = 6;
90pub const GST_MIKEY_SP_SRTP_SRTP_ENC: GstMIKEYSecSRTP = 7;
91pub const GST_MIKEY_SP_SRTP_SRTCP_ENC: GstMIKEYSecSRTP = 8;
92pub const GST_MIKEY_SP_SRTP_FEC_ORDER: GstMIKEYSecSRTP = 9;
93pub const GST_MIKEY_SP_SRTP_SRTP_AUTH: GstMIKEYSecSRTP = 10;
94pub const GST_MIKEY_SP_SRTP_AUTH_TAG_LEN: GstMIKEYSecSRTP = 11;
95pub const GST_MIKEY_SP_SRTP_SRTP_PREFIX_LEN: GstMIKEYSecSRTP = 12;
96pub const GST_MIKEY_SP_SRTP_AEAD_AUTH_TAG_LEN: GstMIKEYSecSRTP = 20;
97
98pub type GstMIKEYTSType = c_int;
99pub const GST_MIKEY_TS_TYPE_NTP_UTC: GstMIKEYTSType = 0;
100pub const GST_MIKEY_TS_TYPE_NTP: GstMIKEYTSType = 1;
101pub const GST_MIKEY_TS_TYPE_COUNTER: GstMIKEYTSType = 2;
102
103pub type GstMIKEYType = c_int;
104pub const GST_MIKEY_TYPE_INVALID: GstMIKEYType = -1;
105pub const GST_MIKEY_TYPE_PSK_INIT: GstMIKEYType = 0;
106pub const GST_MIKEY_TYPE_PSK_VERIFY: GstMIKEYType = 1;
107pub const GST_MIKEY_TYPE_PK_INIT: GstMIKEYType = 2;
108pub const GST_MIKEY_TYPE_PK_VERIFY: GstMIKEYType = 3;
109pub const GST_MIKEY_TYPE_DH_INIT: GstMIKEYType = 4;
110pub const GST_MIKEY_TYPE_DH_RESP: GstMIKEYType = 5;
111pub const GST_MIKEY_TYPE_ERROR: GstMIKEYType = 6;
112
113pub type GstSDPResult = c_int;
114pub const GST_SDP_OK: GstSDPResult = 0;
115pub const GST_SDP_EINVAL: GstSDPResult = -1;
116
117// Constants
118pub const GST_MIKEY_VERSION: c_int = 1;
119pub const GST_SDP_BWTYPE_AS: &[u8] = b"AS\0";
120pub const GST_SDP_BWTYPE_CT: &[u8] = b"CT\0";
121pub const GST_SDP_BWTYPE_EXT_PREFIX: &[u8] = b"X-\0";
122pub const GST_SDP_BWTYPE_RR: &[u8] = b"RR\0";
123pub const GST_SDP_BWTYPE_RS: &[u8] = b"RS\0";
124pub const GST_SDP_BWTYPE_TIAS: &[u8] = b"TIAS\0";
125
126// Records
127#[repr(C)]
128#[allow(dead_code)]
129pub struct _GstMIKEYDecryptInfo {
130    _data: [u8; 0],
131    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
132}
133
134pub type GstMIKEYDecryptInfo = _GstMIKEYDecryptInfo;
135
136#[repr(C)]
137#[allow(dead_code)]
138pub struct _GstMIKEYEncryptInfo {
139    _data: [u8; 0],
140    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
141}
142
143pub type GstMIKEYEncryptInfo = _GstMIKEYEncryptInfo;
144
145#[derive(Copy, Clone)]
146#[repr(C)]
147pub struct GstMIKEYMapSRTP {
148    pub policy: u8,
149    pub ssrc: u32,
150    pub roc: u32,
151}
152
153impl ::std::fmt::Debug for GstMIKEYMapSRTP {
154    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
155        f.debug_struct(&format!("GstMIKEYMapSRTP @ {self:p}"))
156            .field("policy", &self.policy)
157            .field("ssrc", &self.ssrc)
158            .field("roc", &self.roc)
159            .finish()
160    }
161}
162
163#[derive(Copy, Clone)]
164#[repr(C)]
165pub struct GstMIKEYMessage {
166    pub mini_object: gst::GstMiniObject,
167    pub version: u8,
168    pub type_: GstMIKEYType,
169    pub V: gboolean,
170    pub prf_func: GstMIKEYPRFFunc,
171    pub CSB_id: u32,
172    pub map_type: GstMIKEYMapType,
173    pub map_info: *mut glib::GArray,
174    pub payloads: *mut glib::GArray,
175}
176
177impl ::std::fmt::Debug for GstMIKEYMessage {
178    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
179        f.debug_struct(&format!("GstMIKEYMessage @ {self:p}"))
180            .field("version", &self.version)
181            .field("type_", &self.type_)
182            .field("V", &self.V)
183            .field("prf_func", &self.prf_func)
184            .field("CSB_id", &self.CSB_id)
185            .field("map_type", &self.map_type)
186            .field("map_info", &self.map_info)
187            .field("payloads", &self.payloads)
188            .finish()
189    }
190}
191
192#[derive(Copy, Clone)]
193#[repr(C)]
194pub struct GstMIKEYPayload {
195    pub mini_object: gst::GstMiniObject,
196    pub type_: GstMIKEYPayloadType,
197    pub len: c_uint,
198}
199
200impl ::std::fmt::Debug for GstMIKEYPayload {
201    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
202        f.debug_struct(&format!("GstMIKEYPayload @ {self:p}"))
203            .field("type_", &self.type_)
204            .field("len", &self.len)
205            .finish()
206    }
207}
208
209#[derive(Copy, Clone)]
210#[repr(C)]
211pub struct GstMIKEYPayloadKEMAC {
212    pub pt: GstMIKEYPayload,
213    pub enc_alg: GstMIKEYEncAlg,
214    pub mac_alg: GstMIKEYMacAlg,
215    pub subpayloads: *mut glib::GArray,
216}
217
218impl ::std::fmt::Debug for GstMIKEYPayloadKEMAC {
219    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
220        f.debug_struct(&format!("GstMIKEYPayloadKEMAC @ {self:p}"))
221            .field("pt", &self.pt)
222            .field("enc_alg", &self.enc_alg)
223            .field("mac_alg", &self.mac_alg)
224            .field("subpayloads", &self.subpayloads)
225            .finish()
226    }
227}
228
229#[derive(Copy, Clone)]
230#[repr(C)]
231pub struct GstMIKEYPayloadKeyData {
232    pub pt: GstMIKEYPayload,
233    pub key_type: GstMIKEYKeyDataType,
234    pub key_len: u16,
235    pub key_data: *mut u8,
236    pub salt_len: u16,
237    pub salt_data: *mut u8,
238    pub kv_type: GstMIKEYKVType,
239    pub kv_len: [u8; 2],
240    pub kv_data: [*mut u8; 2],
241}
242
243impl ::std::fmt::Debug for GstMIKEYPayloadKeyData {
244    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
245        f.debug_struct(&format!("GstMIKEYPayloadKeyData @ {self:p}"))
246            .field("pt", &self.pt)
247            .field("key_type", &self.key_type)
248            .field("key_len", &self.key_len)
249            .field("key_data", &self.key_data)
250            .field("salt_len", &self.salt_len)
251            .field("salt_data", &self.salt_data)
252            .field("kv_type", &self.kv_type)
253            .field("kv_len", &self.kv_len)
254            .field("kv_data", &self.kv_data)
255            .finish()
256    }
257}
258
259#[derive(Copy, Clone)]
260#[repr(C)]
261pub struct GstMIKEYPayloadPKE {
262    pub pt: GstMIKEYPayload,
263    pub C: GstMIKEYCacheType,
264    pub data_len: u16,
265    pub data: *mut u8,
266}
267
268impl ::std::fmt::Debug for GstMIKEYPayloadPKE {
269    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
270        f.debug_struct(&format!("GstMIKEYPayloadPKE @ {self:p}"))
271            .field("pt", &self.pt)
272            .field("C", &self.C)
273            .field("data_len", &self.data_len)
274            .field("data", &self.data)
275            .finish()
276    }
277}
278
279#[derive(Copy, Clone)]
280#[repr(C)]
281pub struct GstMIKEYPayloadRAND {
282    pub pt: GstMIKEYPayload,
283    pub len: u8,
284    pub rand: *mut u8,
285}
286
287impl ::std::fmt::Debug for GstMIKEYPayloadRAND {
288    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
289        f.debug_struct(&format!("GstMIKEYPayloadRAND @ {self:p}"))
290            .field("pt", &self.pt)
291            .field("len", &self.len)
292            .field("rand", &self.rand)
293            .finish()
294    }
295}
296
297#[derive(Copy, Clone)]
298#[repr(C)]
299pub struct GstMIKEYPayloadSP {
300    pub pt: GstMIKEYPayload,
301    pub policy: c_uint,
302    pub proto: GstMIKEYSecProto,
303    pub params: *mut glib::GArray,
304}
305
306impl ::std::fmt::Debug for GstMIKEYPayloadSP {
307    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
308        f.debug_struct(&format!("GstMIKEYPayloadSP @ {self:p}"))
309            .field("pt", &self.pt)
310            .field("policy", &self.policy)
311            .field("proto", &self.proto)
312            .field("params", &self.params)
313            .finish()
314    }
315}
316
317#[derive(Copy, Clone)]
318#[repr(C)]
319pub struct GstMIKEYPayloadSPParam {
320    pub type_: u8,
321    pub len: u8,
322    pub val: *mut u8,
323}
324
325impl ::std::fmt::Debug for GstMIKEYPayloadSPParam {
326    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
327        f.debug_struct(&format!("GstMIKEYPayloadSPParam @ {self:p}"))
328            .field("type_", &self.type_)
329            .field("len", &self.len)
330            .field("val", &self.val)
331            .finish()
332    }
333}
334
335#[derive(Copy, Clone)]
336#[repr(C)]
337pub struct GstMIKEYPayloadT {
338    pub pt: GstMIKEYPayload,
339    pub type_: GstMIKEYTSType,
340    pub ts_value: *mut u8,
341}
342
343impl ::std::fmt::Debug for GstMIKEYPayloadT {
344    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
345        f.debug_struct(&format!("GstMIKEYPayloadT @ {self:p}"))
346            .field("pt", &self.pt)
347            .field("type_", &self.type_)
348            .field("ts_value", &self.ts_value)
349            .finish()
350    }
351}
352
353#[derive(Copy, Clone)]
354#[repr(C)]
355pub struct GstSDPAttribute {
356    pub key: *mut c_char,
357    pub value: *mut c_char,
358}
359
360impl ::std::fmt::Debug for GstSDPAttribute {
361    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
362        f.debug_struct(&format!("GstSDPAttribute @ {self:p}"))
363            .field("key", &self.key)
364            .field("value", &self.value)
365            .finish()
366    }
367}
368
369#[derive(Copy, Clone)]
370#[repr(C)]
371pub struct GstSDPBandwidth {
372    pub bwtype: *mut c_char,
373    pub bandwidth: c_uint,
374}
375
376impl ::std::fmt::Debug for GstSDPBandwidth {
377    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
378        f.debug_struct(&format!("GstSDPBandwidth @ {self:p}"))
379            .field("bwtype", &self.bwtype)
380            .field("bandwidth", &self.bandwidth)
381            .finish()
382    }
383}
384
385#[derive(Copy, Clone)]
386#[repr(C)]
387pub struct GstSDPConnection {
388    pub nettype: *mut c_char,
389    pub addrtype: *mut c_char,
390    pub address: *mut c_char,
391    pub ttl: c_uint,
392    pub addr_number: c_uint,
393}
394
395impl ::std::fmt::Debug for GstSDPConnection {
396    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
397        f.debug_struct(&format!("GstSDPConnection @ {self:p}"))
398            .field("nettype", &self.nettype)
399            .field("addrtype", &self.addrtype)
400            .field("address", &self.address)
401            .field("ttl", &self.ttl)
402            .field("addr_number", &self.addr_number)
403            .finish()
404    }
405}
406
407#[derive(Copy, Clone)]
408#[repr(C)]
409pub struct GstSDPKey {
410    pub type_: *mut c_char,
411    pub data: *mut c_char,
412}
413
414impl ::std::fmt::Debug for GstSDPKey {
415    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
416        f.debug_struct(&format!("GstSDPKey @ {self:p}"))
417            .field("type_", &self.type_)
418            .field("data", &self.data)
419            .finish()
420    }
421}
422
423#[derive(Copy, Clone)]
424#[repr(C)]
425pub struct GstSDPMedia {
426    pub media: *mut c_char,
427    pub port: c_uint,
428    pub num_ports: c_uint,
429    pub proto: *mut c_char,
430    pub fmts: *mut glib::GArray,
431    pub information: *mut c_char,
432    pub connections: *mut glib::GArray,
433    pub bandwidths: *mut glib::GArray,
434    pub key: GstSDPKey,
435    pub attributes: *mut glib::GArray,
436}
437
438impl ::std::fmt::Debug for GstSDPMedia {
439    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
440        f.debug_struct(&format!("GstSDPMedia @ {self:p}"))
441            .field("media", &self.media)
442            .field("port", &self.port)
443            .field("num_ports", &self.num_ports)
444            .field("proto", &self.proto)
445            .field("fmts", &self.fmts)
446            .field("information", &self.information)
447            .field("connections", &self.connections)
448            .field("bandwidths", &self.bandwidths)
449            .field("key", &self.key)
450            .field("attributes", &self.attributes)
451            .finish()
452    }
453}
454
455#[derive(Copy, Clone)]
456#[repr(C)]
457pub struct GstSDPMessage {
458    pub version: *mut c_char,
459    pub origin: GstSDPOrigin,
460    pub session_name: *mut c_char,
461    pub information: *mut c_char,
462    pub uri: *mut c_char,
463    pub emails: *mut glib::GArray,
464    pub phones: *mut glib::GArray,
465    pub connection: GstSDPConnection,
466    pub bandwidths: *mut glib::GArray,
467    pub times: *mut glib::GArray,
468    pub zones: *mut glib::GArray,
469    pub key: GstSDPKey,
470    pub attributes: *mut glib::GArray,
471    pub medias: *mut glib::GArray,
472}
473
474impl ::std::fmt::Debug for GstSDPMessage {
475    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
476        f.debug_struct(&format!("GstSDPMessage @ {self:p}"))
477            .field("version", &self.version)
478            .field("origin", &self.origin)
479            .field("session_name", &self.session_name)
480            .field("information", &self.information)
481            .field("uri", &self.uri)
482            .field("emails", &self.emails)
483            .field("phones", &self.phones)
484            .field("connection", &self.connection)
485            .field("bandwidths", &self.bandwidths)
486            .field("times", &self.times)
487            .field("zones", &self.zones)
488            .field("key", &self.key)
489            .field("attributes", &self.attributes)
490            .field("medias", &self.medias)
491            .finish()
492    }
493}
494
495#[derive(Copy, Clone)]
496#[repr(C)]
497pub struct GstSDPOrigin {
498    pub username: *mut c_char,
499    pub sess_id: *mut c_char,
500    pub sess_version: *mut c_char,
501    pub nettype: *mut c_char,
502    pub addrtype: *mut c_char,
503    pub addr: *mut c_char,
504}
505
506impl ::std::fmt::Debug for GstSDPOrigin {
507    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
508        f.debug_struct(&format!("GstSDPOrigin @ {self:p}"))
509            .field("username", &self.username)
510            .field("sess_id", &self.sess_id)
511            .field("sess_version", &self.sess_version)
512            .field("nettype", &self.nettype)
513            .field("addrtype", &self.addrtype)
514            .field("addr", &self.addr)
515            .finish()
516    }
517}
518
519#[derive(Copy, Clone)]
520#[repr(C)]
521pub struct GstSDPTime {
522    pub start: *mut c_char,
523    pub stop: *mut c_char,
524    pub repeat: *mut glib::GArray,
525}
526
527impl ::std::fmt::Debug for GstSDPTime {
528    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
529        f.debug_struct(&format!("GstSDPTime @ {self:p}"))
530            .field("start", &self.start)
531            .field("stop", &self.stop)
532            .field("repeat", &self.repeat)
533            .finish()
534    }
535}
536
537#[derive(Copy, Clone)]
538#[repr(C)]
539pub struct GstSDPZone {
540    pub time: *mut c_char,
541    pub typed_time: *mut c_char,
542}
543
544impl ::std::fmt::Debug for GstSDPZone {
545    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
546        f.debug_struct(&format!("GstSDPZone @ {self:p}"))
547            .field("time", &self.time)
548            .field("typed_time", &self.typed_time)
549            .finish()
550    }
551}
552
553extern "C" {
554
555    //=========================================================================
556    // GstMIKEYMessage
557    //=========================================================================
558    pub fn gst_mikey_message_get_type() -> GType;
559    pub fn gst_mikey_message_new() -> *mut GstMIKEYMessage;
560    pub fn gst_mikey_message_new_from_bytes(
561        bytes: *mut glib::GBytes,
562        info: *mut GstMIKEYDecryptInfo,
563        error: *mut *mut glib::GError,
564    ) -> *mut GstMIKEYMessage;
565    pub fn gst_mikey_message_new_from_caps(caps: *mut gst::GstCaps) -> *mut GstMIKEYMessage;
566    pub fn gst_mikey_message_new_from_data(
567        data: gconstpointer,
568        size: size_t,
569        info: *mut GstMIKEYDecryptInfo,
570        error: *mut *mut glib::GError,
571    ) -> *mut GstMIKEYMessage;
572    pub fn gst_mikey_message_add_cs_srtp(
573        msg: *mut GstMIKEYMessage,
574        policy: u8,
575        ssrc: u32,
576        roc: u32,
577    ) -> gboolean;
578    pub fn gst_mikey_message_add_payload(
579        msg: *mut GstMIKEYMessage,
580        payload: *mut GstMIKEYPayload,
581    ) -> gboolean;
582    pub fn gst_mikey_message_add_pke(
583        msg: *mut GstMIKEYMessage,
584        C: GstMIKEYCacheType,
585        data_len: u16,
586        data: *const u8,
587    ) -> gboolean;
588    pub fn gst_mikey_message_add_rand(
589        msg: *mut GstMIKEYMessage,
590        len: u8,
591        rand: *const u8,
592    ) -> gboolean;
593    pub fn gst_mikey_message_add_rand_len(msg: *mut GstMIKEYMessage, len: u8) -> gboolean;
594    pub fn gst_mikey_message_add_t(
595        msg: *mut GstMIKEYMessage,
596        type_: GstMIKEYTSType,
597        ts_value: *const u8,
598    ) -> gboolean;
599    pub fn gst_mikey_message_add_t_now_ntp_utc(msg: *mut GstMIKEYMessage) -> gboolean;
600    pub fn gst_mikey_message_base64_encode(msg: *mut GstMIKEYMessage) -> *mut c_char;
601    pub fn gst_mikey_message_find_payload(
602        msg: *const GstMIKEYMessage,
603        type_: GstMIKEYPayloadType,
604        nth: c_uint,
605    ) -> *const GstMIKEYPayload;
606    pub fn gst_mikey_message_get_cs_srtp(
607        msg: *const GstMIKEYMessage,
608        idx: c_uint,
609    ) -> *const GstMIKEYMapSRTP;
610    pub fn gst_mikey_message_get_n_cs(msg: *const GstMIKEYMessage) -> c_uint;
611    pub fn gst_mikey_message_get_n_payloads(msg: *const GstMIKEYMessage) -> c_uint;
612    pub fn gst_mikey_message_get_payload(
613        msg: *const GstMIKEYMessage,
614        idx: c_uint,
615    ) -> *const GstMIKEYPayload;
616    pub fn gst_mikey_message_insert_cs_srtp(
617        msg: *mut GstMIKEYMessage,
618        idx: c_int,
619        map: *const GstMIKEYMapSRTP,
620    ) -> gboolean;
621    pub fn gst_mikey_message_insert_payload(
622        msg: *mut GstMIKEYMessage,
623        idx: c_uint,
624        payload: *mut GstMIKEYPayload,
625    ) -> gboolean;
626    pub fn gst_mikey_message_remove_cs_srtp(msg: *mut GstMIKEYMessage, idx: c_int) -> gboolean;
627    pub fn gst_mikey_message_remove_payload(msg: *mut GstMIKEYMessage, idx: c_uint) -> gboolean;
628    pub fn gst_mikey_message_replace_cs_srtp(
629        msg: *mut GstMIKEYMessage,
630        idx: c_int,
631        map: *const GstMIKEYMapSRTP,
632    ) -> gboolean;
633    pub fn gst_mikey_message_replace_payload(
634        msg: *mut GstMIKEYMessage,
635        idx: c_uint,
636        payload: *mut GstMIKEYPayload,
637    ) -> gboolean;
638    pub fn gst_mikey_message_set_info(
639        msg: *mut GstMIKEYMessage,
640        version: u8,
641        type_: GstMIKEYType,
642        V: gboolean,
643        prf_func: GstMIKEYPRFFunc,
644        CSB_id: u32,
645        map_type: GstMIKEYMapType,
646    ) -> gboolean;
647    pub fn gst_mikey_message_to_bytes(
648        msg: *mut GstMIKEYMessage,
649        info: *mut GstMIKEYEncryptInfo,
650        error: *mut *mut glib::GError,
651    ) -> *mut glib::GBytes;
652    pub fn gst_mikey_message_to_caps(
653        msg: *const GstMIKEYMessage,
654        caps: *mut gst::GstCaps,
655    ) -> gboolean;
656
657    //=========================================================================
658    // GstMIKEYPayload
659    //=========================================================================
660    pub fn gst_mikey_payload_get_type() -> GType;
661    pub fn gst_mikey_payload_new(type_: GstMIKEYPayloadType) -> *mut GstMIKEYPayload;
662    pub fn gst_mikey_payload_kemac_add_sub(
663        payload: *mut GstMIKEYPayload,
664        newpay: *mut GstMIKEYPayload,
665    ) -> gboolean;
666    pub fn gst_mikey_payload_kemac_get_n_sub(payload: *const GstMIKEYPayload) -> c_uint;
667    pub fn gst_mikey_payload_kemac_get_sub(
668        payload: *const GstMIKEYPayload,
669        idx: c_uint,
670    ) -> *const GstMIKEYPayload;
671    pub fn gst_mikey_payload_kemac_remove_sub(
672        payload: *mut GstMIKEYPayload,
673        idx: c_uint,
674    ) -> gboolean;
675    pub fn gst_mikey_payload_kemac_set(
676        payload: *mut GstMIKEYPayload,
677        enc_alg: GstMIKEYEncAlg,
678        mac_alg: GstMIKEYMacAlg,
679    ) -> gboolean;
680    pub fn gst_mikey_payload_key_data_set_interval(
681        payload: *mut GstMIKEYPayload,
682        vf_len: u8,
683        vf_data: *const u8,
684        vt_len: u8,
685        vt_data: *const u8,
686    ) -> gboolean;
687    pub fn gst_mikey_payload_key_data_set_key(
688        payload: *mut GstMIKEYPayload,
689        key_type: GstMIKEYKeyDataType,
690        key_len: u16,
691        key_data: *const u8,
692    ) -> gboolean;
693    pub fn gst_mikey_payload_key_data_set_salt(
694        payload: *mut GstMIKEYPayload,
695        salt_len: u16,
696        salt_data: *const u8,
697    ) -> gboolean;
698    pub fn gst_mikey_payload_key_data_set_spi(
699        payload: *mut GstMIKEYPayload,
700        spi_len: u8,
701        spi_data: *const u8,
702    ) -> gboolean;
703    pub fn gst_mikey_payload_pke_set(
704        payload: *mut GstMIKEYPayload,
705        C: GstMIKEYCacheType,
706        data_len: u16,
707        data: *const u8,
708    ) -> gboolean;
709    pub fn gst_mikey_payload_rand_set(
710        payload: *mut GstMIKEYPayload,
711        len: u8,
712        rand: *const u8,
713    ) -> gboolean;
714    pub fn gst_mikey_payload_sp_add_param(
715        payload: *mut GstMIKEYPayload,
716        type_: u8,
717        len: u8,
718        val: *const u8,
719    ) -> gboolean;
720    pub fn gst_mikey_payload_sp_get_n_params(payload: *const GstMIKEYPayload) -> c_uint;
721    pub fn gst_mikey_payload_sp_get_param(
722        payload: *const GstMIKEYPayload,
723        idx: c_uint,
724    ) -> *const GstMIKEYPayloadSPParam;
725    pub fn gst_mikey_payload_sp_remove_param(
726        payload: *mut GstMIKEYPayload,
727        idx: c_uint,
728    ) -> gboolean;
729    pub fn gst_mikey_payload_sp_set(
730        payload: *mut GstMIKEYPayload,
731        policy: c_uint,
732        proto: GstMIKEYSecProto,
733    ) -> gboolean;
734    pub fn gst_mikey_payload_t_set(
735        payload: *mut GstMIKEYPayload,
736        type_: GstMIKEYTSType,
737        ts_value: *const u8,
738    ) -> gboolean;
739
740    //=========================================================================
741    // GstSDPAttribute
742    //=========================================================================
743    pub fn gst_sdp_attribute_clear(attr: *mut GstSDPAttribute) -> GstSDPResult;
744    pub fn gst_sdp_attribute_set(
745        attr: *mut GstSDPAttribute,
746        key: *const c_char,
747        value: *const c_char,
748    ) -> GstSDPResult;
749
750    //=========================================================================
751    // GstSDPBandwidth
752    //=========================================================================
753    pub fn gst_sdp_bandwidth_clear(bw: *mut GstSDPBandwidth) -> GstSDPResult;
754    pub fn gst_sdp_bandwidth_set(
755        bw: *mut GstSDPBandwidth,
756        bwtype: *const c_char,
757        bandwidth: c_uint,
758    ) -> GstSDPResult;
759
760    //=========================================================================
761    // GstSDPConnection
762    //=========================================================================
763    pub fn gst_sdp_connection_clear(conn: *mut GstSDPConnection) -> GstSDPResult;
764    pub fn gst_sdp_connection_set(
765        conn: *mut GstSDPConnection,
766        nettype: *const c_char,
767        addrtype: *const c_char,
768        address: *const c_char,
769        ttl: c_uint,
770        addr_number: c_uint,
771    ) -> GstSDPResult;
772
773    //=========================================================================
774    // GstSDPMedia
775    //=========================================================================
776    pub fn gst_sdp_media_add_attribute(
777        media: *mut GstSDPMedia,
778        key: *const c_char,
779        value: *const c_char,
780    ) -> GstSDPResult;
781    pub fn gst_sdp_media_add_bandwidth(
782        media: *mut GstSDPMedia,
783        bwtype: *const c_char,
784        bandwidth: c_uint,
785    ) -> GstSDPResult;
786    pub fn gst_sdp_media_add_connection(
787        media: *mut GstSDPMedia,
788        nettype: *const c_char,
789        addrtype: *const c_char,
790        address: *const c_char,
791        ttl: c_uint,
792        addr_number: c_uint,
793    ) -> GstSDPResult;
794    pub fn gst_sdp_media_add_format(media: *mut GstSDPMedia, format: *const c_char)
795        -> GstSDPResult;
796    pub fn gst_sdp_media_as_text(media: *const GstSDPMedia) -> *mut c_char;
797    pub fn gst_sdp_media_attributes_len(media: *const GstSDPMedia) -> c_uint;
798    pub fn gst_sdp_media_attributes_to_caps(
799        media: *const GstSDPMedia,
800        caps: *mut gst::GstCaps,
801    ) -> GstSDPResult;
802    pub fn gst_sdp_media_bandwidths_len(media: *const GstSDPMedia) -> c_uint;
803    pub fn gst_sdp_media_connections_len(media: *const GstSDPMedia) -> c_uint;
804    pub fn gst_sdp_media_copy(
805        media: *const GstSDPMedia,
806        copy: *mut *mut GstSDPMedia,
807    ) -> GstSDPResult;
808    pub fn gst_sdp_media_formats_len(media: *const GstSDPMedia) -> c_uint;
809    pub fn gst_sdp_media_free(media: *mut GstSDPMedia) -> GstSDPResult;
810    pub fn gst_sdp_media_get_attribute(
811        media: *const GstSDPMedia,
812        idx: c_uint,
813    ) -> *const GstSDPAttribute;
814    pub fn gst_sdp_media_get_attribute_val(
815        media: *const GstSDPMedia,
816        key: *const c_char,
817    ) -> *const c_char;
818    pub fn gst_sdp_media_get_attribute_val_n(
819        media: *const GstSDPMedia,
820        key: *const c_char,
821        nth: c_uint,
822    ) -> *const c_char;
823    pub fn gst_sdp_media_get_bandwidth(
824        media: *const GstSDPMedia,
825        idx: c_uint,
826    ) -> *const GstSDPBandwidth;
827    pub fn gst_sdp_media_get_caps_from_media(
828        media: *const GstSDPMedia,
829        pt: c_int,
830    ) -> *mut gst::GstCaps;
831    pub fn gst_sdp_media_get_connection(
832        media: *const GstSDPMedia,
833        idx: c_uint,
834    ) -> *const GstSDPConnection;
835    pub fn gst_sdp_media_get_format(media: *const GstSDPMedia, idx: c_uint) -> *const c_char;
836    pub fn gst_sdp_media_get_information(media: *const GstSDPMedia) -> *const c_char;
837    pub fn gst_sdp_media_get_key(media: *const GstSDPMedia) -> *const GstSDPKey;
838    pub fn gst_sdp_media_get_media(media: *const GstSDPMedia) -> *const c_char;
839    pub fn gst_sdp_media_get_num_ports(media: *const GstSDPMedia) -> c_uint;
840    pub fn gst_sdp_media_get_port(media: *const GstSDPMedia) -> c_uint;
841    pub fn gst_sdp_media_get_proto(media: *const GstSDPMedia) -> *const c_char;
842    pub fn gst_sdp_media_insert_attribute(
843        media: *mut GstSDPMedia,
844        idx: c_int,
845        attr: *mut GstSDPAttribute,
846    ) -> GstSDPResult;
847    pub fn gst_sdp_media_insert_bandwidth(
848        media: *mut GstSDPMedia,
849        idx: c_int,
850        bw: *mut GstSDPBandwidth,
851    ) -> GstSDPResult;
852    pub fn gst_sdp_media_insert_connection(
853        media: *mut GstSDPMedia,
854        idx: c_int,
855        conn: *mut GstSDPConnection,
856    ) -> GstSDPResult;
857    pub fn gst_sdp_media_insert_format(
858        media: *mut GstSDPMedia,
859        idx: c_int,
860        format: *const c_char,
861    ) -> GstSDPResult;
862    pub fn gst_sdp_media_parse_keymgmt(
863        media: *const GstSDPMedia,
864        mikey: *mut *mut GstMIKEYMessage,
865    ) -> GstSDPResult;
866    pub fn gst_sdp_media_remove_attribute(media: *mut GstSDPMedia, idx: c_uint) -> GstSDPResult;
867    pub fn gst_sdp_media_remove_bandwidth(media: *mut GstSDPMedia, idx: c_uint) -> GstSDPResult;
868    pub fn gst_sdp_media_remove_connection(media: *mut GstSDPMedia, idx: c_uint) -> GstSDPResult;
869    pub fn gst_sdp_media_remove_format(media: *mut GstSDPMedia, idx: c_uint) -> GstSDPResult;
870    pub fn gst_sdp_media_replace_attribute(
871        media: *mut GstSDPMedia,
872        idx: c_uint,
873        attr: *mut GstSDPAttribute,
874    ) -> GstSDPResult;
875    pub fn gst_sdp_media_replace_bandwidth(
876        media: *mut GstSDPMedia,
877        idx: c_uint,
878        bw: *mut GstSDPBandwidth,
879    ) -> GstSDPResult;
880    pub fn gst_sdp_media_replace_connection(
881        media: *mut GstSDPMedia,
882        idx: c_uint,
883        conn: *mut GstSDPConnection,
884    ) -> GstSDPResult;
885    pub fn gst_sdp_media_replace_format(
886        media: *mut GstSDPMedia,
887        idx: c_uint,
888        format: *const c_char,
889    ) -> GstSDPResult;
890    pub fn gst_sdp_media_set_information(
891        media: *mut GstSDPMedia,
892        information: *const c_char,
893    ) -> GstSDPResult;
894    pub fn gst_sdp_media_set_key(
895        media: *mut GstSDPMedia,
896        type_: *const c_char,
897        data: *const c_char,
898    ) -> GstSDPResult;
899    pub fn gst_sdp_media_set_media(media: *mut GstSDPMedia, med: *const c_char) -> GstSDPResult;
900    pub fn gst_sdp_media_set_port_info(
901        media: *mut GstSDPMedia,
902        port: c_uint,
903        num_ports: c_uint,
904    ) -> GstSDPResult;
905    pub fn gst_sdp_media_set_proto(media: *mut GstSDPMedia, proto: *const c_char) -> GstSDPResult;
906    pub fn gst_sdp_media_uninit(media: *mut GstSDPMedia) -> GstSDPResult;
907    pub fn gst_sdp_media_init(media: *mut GstSDPMedia) -> GstSDPResult;
908    pub fn gst_sdp_media_new(media: *mut *mut GstSDPMedia) -> GstSDPResult;
909    pub fn gst_sdp_media_set_media_from_caps(
910        caps: *const gst::GstCaps,
911        media: *mut GstSDPMedia,
912    ) -> GstSDPResult;
913
914    //=========================================================================
915    // GstSDPMessage
916    //=========================================================================
917    pub fn gst_sdp_message_get_type() -> GType;
918    pub fn gst_sdp_message_add_attribute(
919        msg: *mut GstSDPMessage,
920        key: *const c_char,
921        value: *const c_char,
922    ) -> GstSDPResult;
923    pub fn gst_sdp_message_add_bandwidth(
924        msg: *mut GstSDPMessage,
925        bwtype: *const c_char,
926        bandwidth: c_uint,
927    ) -> GstSDPResult;
928    pub fn gst_sdp_message_add_email(msg: *mut GstSDPMessage, email: *const c_char)
929        -> GstSDPResult;
930    pub fn gst_sdp_message_add_media(
931        msg: *mut GstSDPMessage,
932        media: *mut GstSDPMedia,
933    ) -> GstSDPResult;
934    pub fn gst_sdp_message_add_phone(msg: *mut GstSDPMessage, phone: *const c_char)
935        -> GstSDPResult;
936    pub fn gst_sdp_message_add_time(
937        msg: *mut GstSDPMessage,
938        start: *const c_char,
939        stop: *const c_char,
940        repeat: *mut *const c_char,
941    ) -> GstSDPResult;
942    pub fn gst_sdp_message_add_zone(
943        msg: *mut GstSDPMessage,
944        adj_time: *const c_char,
945        typed_time: *const c_char,
946    ) -> GstSDPResult;
947    pub fn gst_sdp_message_as_text(msg: *const GstSDPMessage) -> *mut c_char;
948    pub fn gst_sdp_message_attributes_len(msg: *const GstSDPMessage) -> c_uint;
949    pub fn gst_sdp_message_attributes_to_caps(
950        msg: *const GstSDPMessage,
951        caps: *mut gst::GstCaps,
952    ) -> GstSDPResult;
953    pub fn gst_sdp_message_bandwidths_len(msg: *const GstSDPMessage) -> c_uint;
954    pub fn gst_sdp_message_copy(
955        msg: *const GstSDPMessage,
956        copy: *mut *mut GstSDPMessage,
957    ) -> GstSDPResult;
958    pub fn gst_sdp_message_dump(msg: *const GstSDPMessage) -> GstSDPResult;
959    pub fn gst_sdp_message_emails_len(msg: *const GstSDPMessage) -> c_uint;
960    pub fn gst_sdp_message_free(msg: *mut GstSDPMessage) -> GstSDPResult;
961    pub fn gst_sdp_message_get_attribute(
962        msg: *const GstSDPMessage,
963        idx: c_uint,
964    ) -> *const GstSDPAttribute;
965    pub fn gst_sdp_message_get_attribute_val(
966        msg: *const GstSDPMessage,
967        key: *const c_char,
968    ) -> *const c_char;
969    pub fn gst_sdp_message_get_attribute_val_n(
970        msg: *const GstSDPMessage,
971        key: *const c_char,
972        nth: c_uint,
973    ) -> *const c_char;
974    pub fn gst_sdp_message_get_bandwidth(
975        msg: *const GstSDPMessage,
976        idx: c_uint,
977    ) -> *const GstSDPBandwidth;
978    pub fn gst_sdp_message_get_connection(msg: *const GstSDPMessage) -> *const GstSDPConnection;
979    pub fn gst_sdp_message_get_email(msg: *const GstSDPMessage, idx: c_uint) -> *const c_char;
980    pub fn gst_sdp_message_get_information(msg: *const GstSDPMessage) -> *const c_char;
981    pub fn gst_sdp_message_get_key(msg: *const GstSDPMessage) -> *const GstSDPKey;
982    pub fn gst_sdp_message_get_media(msg: *const GstSDPMessage, idx: c_uint) -> *const GstSDPMedia;
983    pub fn gst_sdp_message_get_origin(msg: *const GstSDPMessage) -> *const GstSDPOrigin;
984    pub fn gst_sdp_message_get_phone(msg: *const GstSDPMessage, idx: c_uint) -> *const c_char;
985    pub fn gst_sdp_message_get_session_name(msg: *const GstSDPMessage) -> *const c_char;
986    pub fn gst_sdp_message_get_time(msg: *const GstSDPMessage, idx: c_uint) -> *const GstSDPTime;
987    pub fn gst_sdp_message_get_uri(msg: *const GstSDPMessage) -> *const c_char;
988    pub fn gst_sdp_message_get_version(msg: *const GstSDPMessage) -> *const c_char;
989    pub fn gst_sdp_message_get_zone(msg: *const GstSDPMessage, idx: c_uint) -> *const GstSDPZone;
990    pub fn gst_sdp_message_insert_attribute(
991        msg: *mut GstSDPMessage,
992        idx: c_int,
993        attr: *mut GstSDPAttribute,
994    ) -> GstSDPResult;
995    pub fn gst_sdp_message_insert_bandwidth(
996        msg: *mut GstSDPMessage,
997        idx: c_int,
998        bw: *mut GstSDPBandwidth,
999    ) -> GstSDPResult;
1000    pub fn gst_sdp_message_insert_email(
1001        msg: *mut GstSDPMessage,
1002        idx: c_int,
1003        email: *const c_char,
1004    ) -> GstSDPResult;
1005    pub fn gst_sdp_message_insert_phone(
1006        msg: *mut GstSDPMessage,
1007        idx: c_int,
1008        phone: *const c_char,
1009    ) -> GstSDPResult;
1010    pub fn gst_sdp_message_insert_time(
1011        msg: *mut GstSDPMessage,
1012        idx: c_int,
1013        t: *mut GstSDPTime,
1014    ) -> GstSDPResult;
1015    pub fn gst_sdp_message_insert_zone(
1016        msg: *mut GstSDPMessage,
1017        idx: c_int,
1018        zone: *mut GstSDPZone,
1019    ) -> GstSDPResult;
1020    pub fn gst_sdp_message_medias_len(msg: *const GstSDPMessage) -> c_uint;
1021    pub fn gst_sdp_message_parse_keymgmt(
1022        msg: *const GstSDPMessage,
1023        mikey: *mut *mut GstMIKEYMessage,
1024    ) -> GstSDPResult;
1025    pub fn gst_sdp_message_phones_len(msg: *const GstSDPMessage) -> c_uint;
1026    pub fn gst_sdp_message_remove_attribute(msg: *mut GstSDPMessage, idx: c_uint) -> GstSDPResult;
1027    pub fn gst_sdp_message_remove_bandwidth(msg: *mut GstSDPMessage, idx: c_uint) -> GstSDPResult;
1028    pub fn gst_sdp_message_remove_email(msg: *mut GstSDPMessage, idx: c_uint) -> GstSDPResult;
1029    #[cfg(feature = "v1_24")]
1030    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
1031    pub fn gst_sdp_message_remove_media(msg: *mut GstSDPMessage, idx: c_uint) -> GstSDPResult;
1032    pub fn gst_sdp_message_remove_phone(msg: *mut GstSDPMessage, idx: c_uint) -> GstSDPResult;
1033    pub fn gst_sdp_message_remove_time(msg: *mut GstSDPMessage, idx: c_uint) -> GstSDPResult;
1034    pub fn gst_sdp_message_remove_zone(msg: *mut GstSDPMessage, idx: c_uint) -> GstSDPResult;
1035    pub fn gst_sdp_message_replace_attribute(
1036        msg: *mut GstSDPMessage,
1037        idx: c_uint,
1038        attr: *mut GstSDPAttribute,
1039    ) -> GstSDPResult;
1040    pub fn gst_sdp_message_replace_bandwidth(
1041        msg: *mut GstSDPMessage,
1042        idx: c_uint,
1043        bw: *mut GstSDPBandwidth,
1044    ) -> GstSDPResult;
1045    pub fn gst_sdp_message_replace_email(
1046        msg: *mut GstSDPMessage,
1047        idx: c_uint,
1048        email: *const c_char,
1049    ) -> GstSDPResult;
1050    pub fn gst_sdp_message_replace_phone(
1051        msg: *mut GstSDPMessage,
1052        idx: c_uint,
1053        phone: *const c_char,
1054    ) -> GstSDPResult;
1055    pub fn gst_sdp_message_replace_time(
1056        msg: *mut GstSDPMessage,
1057        idx: c_uint,
1058        t: *mut GstSDPTime,
1059    ) -> GstSDPResult;
1060    pub fn gst_sdp_message_replace_zone(
1061        msg: *mut GstSDPMessage,
1062        idx: c_uint,
1063        zone: *mut GstSDPZone,
1064    ) -> GstSDPResult;
1065    pub fn gst_sdp_message_set_connection(
1066        msg: *mut GstSDPMessage,
1067        nettype: *const c_char,
1068        addrtype: *const c_char,
1069        address: *const c_char,
1070        ttl: c_uint,
1071        addr_number: c_uint,
1072    ) -> GstSDPResult;
1073    pub fn gst_sdp_message_set_information(
1074        msg: *mut GstSDPMessage,
1075        information: *const c_char,
1076    ) -> GstSDPResult;
1077    pub fn gst_sdp_message_set_key(
1078        msg: *mut GstSDPMessage,
1079        type_: *const c_char,
1080        data: *const c_char,
1081    ) -> GstSDPResult;
1082    pub fn gst_sdp_message_set_origin(
1083        msg: *mut GstSDPMessage,
1084        username: *const c_char,
1085        sess_id: *const c_char,
1086        sess_version: *const c_char,
1087        nettype: *const c_char,
1088        addrtype: *const c_char,
1089        addr: *const c_char,
1090    ) -> GstSDPResult;
1091    pub fn gst_sdp_message_set_session_name(
1092        msg: *mut GstSDPMessage,
1093        session_name: *const c_char,
1094    ) -> GstSDPResult;
1095    pub fn gst_sdp_message_set_uri(msg: *mut GstSDPMessage, uri: *const c_char) -> GstSDPResult;
1096    pub fn gst_sdp_message_set_version(
1097        msg: *mut GstSDPMessage,
1098        version: *const c_char,
1099    ) -> GstSDPResult;
1100    pub fn gst_sdp_message_times_len(msg: *const GstSDPMessage) -> c_uint;
1101    pub fn gst_sdp_message_uninit(msg: *mut GstSDPMessage) -> GstSDPResult;
1102    pub fn gst_sdp_message_zones_len(msg: *const GstSDPMessage) -> c_uint;
1103    pub fn gst_sdp_message_as_uri(scheme: *const c_char, msg: *const GstSDPMessage) -> *mut c_char;
1104    pub fn gst_sdp_message_init(msg: *mut GstSDPMessage) -> GstSDPResult;
1105    pub fn gst_sdp_message_new(msg: *mut *mut GstSDPMessage) -> GstSDPResult;
1106    #[cfg(feature = "v1_16")]
1107    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1108    pub fn gst_sdp_message_new_from_text(
1109        text: *const c_char,
1110        msg: *mut *mut GstSDPMessage,
1111    ) -> GstSDPResult;
1112    pub fn gst_sdp_message_parse_buffer(
1113        data: *const u8,
1114        size: c_uint,
1115        msg: *mut GstSDPMessage,
1116    ) -> GstSDPResult;
1117    pub fn gst_sdp_message_parse_uri(uri: *const c_char, msg: *mut GstSDPMessage) -> GstSDPResult;
1118
1119    //=========================================================================
1120    // GstSDPTime
1121    //=========================================================================
1122    pub fn gst_sdp_time_clear(t: *mut GstSDPTime) -> GstSDPResult;
1123    pub fn gst_sdp_time_set(
1124        t: *mut GstSDPTime,
1125        start: *const c_char,
1126        stop: *const c_char,
1127        repeat: *mut *const c_char,
1128    ) -> GstSDPResult;
1129
1130    //=========================================================================
1131    // GstSDPZone
1132    //=========================================================================
1133    pub fn gst_sdp_zone_clear(zone: *mut GstSDPZone) -> GstSDPResult;
1134    pub fn gst_sdp_zone_set(
1135        zone: *mut GstSDPZone,
1136        adj_time: *const c_char,
1137        typed_time: *const c_char,
1138    ) -> GstSDPResult;
1139
1140    //=========================================================================
1141    // Other functions
1142    //=========================================================================
1143    pub fn gst_sdp_address_is_multicast(
1144        nettype: *const c_char,
1145        addrtype: *const c_char,
1146        addr: *const c_char,
1147    ) -> gboolean;
1148    pub fn gst_sdp_make_keymgmt(uri: *const c_char, base64: *const c_char) -> *mut c_char;
1149
1150}