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    #[cfg(feature = "v1_28")]
908    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
909    pub fn gst_sdp_media_add_media_from_structure(
910        structure: *const gst::GstStructure,
911        media: *mut GstSDPMedia,
912    ) -> GstSDPResult;
913    pub fn gst_sdp_media_init(media: *mut GstSDPMedia) -> GstSDPResult;
914    pub fn gst_sdp_media_new(media: *mut *mut GstSDPMedia) -> GstSDPResult;
915    pub fn gst_sdp_media_set_media_from_caps(
916        caps: *const gst::GstCaps,
917        media: *mut GstSDPMedia,
918    ) -> GstSDPResult;
919
920    //=========================================================================
921    // GstSDPMessage
922    //=========================================================================
923    pub fn gst_sdp_message_get_type() -> GType;
924    pub fn gst_sdp_message_add_attribute(
925        msg: *mut GstSDPMessage,
926        key: *const c_char,
927        value: *const c_char,
928    ) -> GstSDPResult;
929    pub fn gst_sdp_message_add_bandwidth(
930        msg: *mut GstSDPMessage,
931        bwtype: *const c_char,
932        bandwidth: c_uint,
933    ) -> GstSDPResult;
934    pub fn gst_sdp_message_add_email(msg: *mut GstSDPMessage, email: *const c_char)
935        -> GstSDPResult;
936    pub fn gst_sdp_message_add_media(
937        msg: *mut GstSDPMessage,
938        media: *mut GstSDPMedia,
939    ) -> GstSDPResult;
940    pub fn gst_sdp_message_add_phone(msg: *mut GstSDPMessage, phone: *const c_char)
941        -> GstSDPResult;
942    pub fn gst_sdp_message_add_time(
943        msg: *mut GstSDPMessage,
944        start: *const c_char,
945        stop: *const c_char,
946        repeat: *mut *const c_char,
947    ) -> GstSDPResult;
948    pub fn gst_sdp_message_add_zone(
949        msg: *mut GstSDPMessage,
950        adj_time: *const c_char,
951        typed_time: *const c_char,
952    ) -> GstSDPResult;
953    pub fn gst_sdp_message_as_text(msg: *const GstSDPMessage) -> *mut c_char;
954    pub fn gst_sdp_message_attributes_len(msg: *const GstSDPMessage) -> c_uint;
955    pub fn gst_sdp_message_attributes_to_caps(
956        msg: *const GstSDPMessage,
957        caps: *mut gst::GstCaps,
958    ) -> GstSDPResult;
959    pub fn gst_sdp_message_bandwidths_len(msg: *const GstSDPMessage) -> c_uint;
960    pub fn gst_sdp_message_copy(
961        msg: *const GstSDPMessage,
962        copy: *mut *mut GstSDPMessage,
963    ) -> GstSDPResult;
964    pub fn gst_sdp_message_dump(msg: *const GstSDPMessage) -> GstSDPResult;
965    pub fn gst_sdp_message_emails_len(msg: *const GstSDPMessage) -> c_uint;
966    pub fn gst_sdp_message_free(msg: *mut GstSDPMessage) -> GstSDPResult;
967    pub fn gst_sdp_message_get_attribute(
968        msg: *const GstSDPMessage,
969        idx: c_uint,
970    ) -> *const GstSDPAttribute;
971    pub fn gst_sdp_message_get_attribute_val(
972        msg: *const GstSDPMessage,
973        key: *const c_char,
974    ) -> *const c_char;
975    pub fn gst_sdp_message_get_attribute_val_n(
976        msg: *const GstSDPMessage,
977        key: *const c_char,
978        nth: c_uint,
979    ) -> *const c_char;
980    pub fn gst_sdp_message_get_bandwidth(
981        msg: *const GstSDPMessage,
982        idx: c_uint,
983    ) -> *const GstSDPBandwidth;
984    pub fn gst_sdp_message_get_connection(msg: *const GstSDPMessage) -> *const GstSDPConnection;
985    pub fn gst_sdp_message_get_email(msg: *const GstSDPMessage, idx: c_uint) -> *const c_char;
986    pub fn gst_sdp_message_get_information(msg: *const GstSDPMessage) -> *const c_char;
987    pub fn gst_sdp_message_get_key(msg: *const GstSDPMessage) -> *const GstSDPKey;
988    pub fn gst_sdp_message_get_media(msg: *const GstSDPMessage, idx: c_uint) -> *const GstSDPMedia;
989    pub fn gst_sdp_message_get_origin(msg: *const GstSDPMessage) -> *const GstSDPOrigin;
990    pub fn gst_sdp_message_get_phone(msg: *const GstSDPMessage, idx: c_uint) -> *const c_char;
991    pub fn gst_sdp_message_get_session_name(msg: *const GstSDPMessage) -> *const c_char;
992    pub fn gst_sdp_message_get_time(msg: *const GstSDPMessage, idx: c_uint) -> *const GstSDPTime;
993    pub fn gst_sdp_message_get_uri(msg: *const GstSDPMessage) -> *const c_char;
994    pub fn gst_sdp_message_get_version(msg: *const GstSDPMessage) -> *const c_char;
995    pub fn gst_sdp_message_get_zone(msg: *const GstSDPMessage, idx: c_uint) -> *const GstSDPZone;
996    pub fn gst_sdp_message_insert_attribute(
997        msg: *mut GstSDPMessage,
998        idx: c_int,
999        attr: *mut GstSDPAttribute,
1000    ) -> GstSDPResult;
1001    pub fn gst_sdp_message_insert_bandwidth(
1002        msg: *mut GstSDPMessage,
1003        idx: c_int,
1004        bw: *mut GstSDPBandwidth,
1005    ) -> GstSDPResult;
1006    pub fn gst_sdp_message_insert_email(
1007        msg: *mut GstSDPMessage,
1008        idx: c_int,
1009        email: *const c_char,
1010    ) -> GstSDPResult;
1011    pub fn gst_sdp_message_insert_phone(
1012        msg: *mut GstSDPMessage,
1013        idx: c_int,
1014        phone: *const c_char,
1015    ) -> GstSDPResult;
1016    pub fn gst_sdp_message_insert_time(
1017        msg: *mut GstSDPMessage,
1018        idx: c_int,
1019        t: *mut GstSDPTime,
1020    ) -> GstSDPResult;
1021    pub fn gst_sdp_message_insert_zone(
1022        msg: *mut GstSDPMessage,
1023        idx: c_int,
1024        zone: *mut GstSDPZone,
1025    ) -> GstSDPResult;
1026    pub fn gst_sdp_message_medias_len(msg: *const GstSDPMessage) -> c_uint;
1027    pub fn gst_sdp_message_parse_keymgmt(
1028        msg: *const GstSDPMessage,
1029        mikey: *mut *mut GstMIKEYMessage,
1030    ) -> GstSDPResult;
1031    pub fn gst_sdp_message_phones_len(msg: *const GstSDPMessage) -> c_uint;
1032    pub fn gst_sdp_message_remove_attribute(msg: *mut GstSDPMessage, idx: c_uint) -> GstSDPResult;
1033    pub fn gst_sdp_message_remove_bandwidth(msg: *mut GstSDPMessage, idx: c_uint) -> GstSDPResult;
1034    pub fn gst_sdp_message_remove_email(msg: *mut GstSDPMessage, idx: c_uint) -> GstSDPResult;
1035    #[cfg(feature = "v1_24")]
1036    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
1037    pub fn gst_sdp_message_remove_media(msg: *mut GstSDPMessage, idx: c_uint) -> GstSDPResult;
1038    pub fn gst_sdp_message_remove_phone(msg: *mut GstSDPMessage, idx: c_uint) -> GstSDPResult;
1039    pub fn gst_sdp_message_remove_time(msg: *mut GstSDPMessage, idx: c_uint) -> GstSDPResult;
1040    pub fn gst_sdp_message_remove_zone(msg: *mut GstSDPMessage, idx: c_uint) -> GstSDPResult;
1041    pub fn gst_sdp_message_replace_attribute(
1042        msg: *mut GstSDPMessage,
1043        idx: c_uint,
1044        attr: *mut GstSDPAttribute,
1045    ) -> GstSDPResult;
1046    pub fn gst_sdp_message_replace_bandwidth(
1047        msg: *mut GstSDPMessage,
1048        idx: c_uint,
1049        bw: *mut GstSDPBandwidth,
1050    ) -> GstSDPResult;
1051    pub fn gst_sdp_message_replace_email(
1052        msg: *mut GstSDPMessage,
1053        idx: c_uint,
1054        email: *const c_char,
1055    ) -> GstSDPResult;
1056    pub fn gst_sdp_message_replace_phone(
1057        msg: *mut GstSDPMessage,
1058        idx: c_uint,
1059        phone: *const c_char,
1060    ) -> GstSDPResult;
1061    pub fn gst_sdp_message_replace_time(
1062        msg: *mut GstSDPMessage,
1063        idx: c_uint,
1064        t: *mut GstSDPTime,
1065    ) -> GstSDPResult;
1066    pub fn gst_sdp_message_replace_zone(
1067        msg: *mut GstSDPMessage,
1068        idx: c_uint,
1069        zone: *mut GstSDPZone,
1070    ) -> GstSDPResult;
1071    pub fn gst_sdp_message_set_connection(
1072        msg: *mut GstSDPMessage,
1073        nettype: *const c_char,
1074        addrtype: *const c_char,
1075        address: *const c_char,
1076        ttl: c_uint,
1077        addr_number: c_uint,
1078    ) -> GstSDPResult;
1079    pub fn gst_sdp_message_set_information(
1080        msg: *mut GstSDPMessage,
1081        information: *const c_char,
1082    ) -> GstSDPResult;
1083    pub fn gst_sdp_message_set_key(
1084        msg: *mut GstSDPMessage,
1085        type_: *const c_char,
1086        data: *const c_char,
1087    ) -> GstSDPResult;
1088    pub fn gst_sdp_message_set_origin(
1089        msg: *mut GstSDPMessage,
1090        username: *const c_char,
1091        sess_id: *const c_char,
1092        sess_version: *const c_char,
1093        nettype: *const c_char,
1094        addrtype: *const c_char,
1095        addr: *const c_char,
1096    ) -> GstSDPResult;
1097    pub fn gst_sdp_message_set_session_name(
1098        msg: *mut GstSDPMessage,
1099        session_name: *const c_char,
1100    ) -> GstSDPResult;
1101    pub fn gst_sdp_message_set_uri(msg: *mut GstSDPMessage, uri: *const c_char) -> GstSDPResult;
1102    pub fn gst_sdp_message_set_version(
1103        msg: *mut GstSDPMessage,
1104        version: *const c_char,
1105    ) -> GstSDPResult;
1106    pub fn gst_sdp_message_times_len(msg: *const GstSDPMessage) -> c_uint;
1107    pub fn gst_sdp_message_uninit(msg: *mut GstSDPMessage) -> GstSDPResult;
1108    pub fn gst_sdp_message_zones_len(msg: *const GstSDPMessage) -> c_uint;
1109    pub fn gst_sdp_message_as_uri(scheme: *const c_char, msg: *const GstSDPMessage) -> *mut c_char;
1110    pub fn gst_sdp_message_init(msg: *mut GstSDPMessage) -> GstSDPResult;
1111    pub fn gst_sdp_message_new(msg: *mut *mut GstSDPMessage) -> GstSDPResult;
1112    #[cfg(feature = "v1_16")]
1113    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1114    pub fn gst_sdp_message_new_from_text(
1115        text: *const c_char,
1116        msg: *mut *mut GstSDPMessage,
1117    ) -> GstSDPResult;
1118    pub fn gst_sdp_message_parse_buffer(
1119        data: *const u8,
1120        size: c_uint,
1121        msg: *mut GstSDPMessage,
1122    ) -> GstSDPResult;
1123    pub fn gst_sdp_message_parse_uri(uri: *const c_char, msg: *mut GstSDPMessage) -> GstSDPResult;
1124
1125    //=========================================================================
1126    // GstSDPTime
1127    //=========================================================================
1128    pub fn gst_sdp_time_clear(t: *mut GstSDPTime) -> GstSDPResult;
1129    pub fn gst_sdp_time_set(
1130        t: *mut GstSDPTime,
1131        start: *const c_char,
1132        stop: *const c_char,
1133        repeat: *mut *const c_char,
1134    ) -> GstSDPResult;
1135
1136    //=========================================================================
1137    // GstSDPZone
1138    //=========================================================================
1139    pub fn gst_sdp_zone_clear(zone: *mut GstSDPZone) -> GstSDPResult;
1140    pub fn gst_sdp_zone_set(
1141        zone: *mut GstSDPZone,
1142        adj_time: *const c_char,
1143        typed_time: *const c_char,
1144    ) -> GstSDPResult;
1145
1146    //=========================================================================
1147    // Other functions
1148    //=========================================================================
1149    pub fn gst_sdp_address_is_multicast(
1150        nettype: *const c_char,
1151        addrtype: *const c_char,
1152        addr: *const c_char,
1153    ) -> gboolean;
1154    pub fn gst_sdp_make_keymgmt(uri: *const c_char, base64: *const c_char) -> *mut c_char;
1155
1156}