From bb7e401cb30ababcb76d985c8bb6a3b9a608ad33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Tue, 16 May 2017 00:25:51 +0100 Subject: [PATCH] sdp: mark symbols explicitly for export with GST_EXPORT --- gst-libs/gst/sdp/gstmikey.h | 80 ++++++++++ gst-libs/gst/sdp/gstsdpmessage.h | 241 +++++++++++++++++++++++++++++++ 2 files changed, 321 insertions(+) diff --git a/gst-libs/gst/sdp/gstmikey.h b/gst-libs/gst/sdp/gstmikey.h index 88d9805d27..72c53bb6b5 100644 --- a/gst-libs/gst/sdp/gstmikey.h +++ b/gst-libs/gst/sdp/gstmikey.h @@ -26,6 +26,7 @@ G_BEGIN_DECLS +GST_EXPORT GType gst_mikey_message_get_type(void); #define GST_TYPE_MIKEY_MESSAGE (gst_mikey_message_get_type()) @@ -143,6 +144,7 @@ typedef struct { typedef struct _GstMIKEYPayload GstMIKEYPayload; +GST_EXPORT GType gst_mikey_payload_get_type(void); #define GST_TYPE_MIKEY_PAYLOAD (gst_mikey_payload_get_type()) @@ -162,6 +164,7 @@ struct _GstMIKEYPayload { guint len; }; +GST_EXPORT GstMIKEYPayload * gst_mikey_payload_new (GstMIKEYPayloadType type); /** @@ -255,12 +258,21 @@ typedef struct { GArray *subpayloads; } GstMIKEYPayloadKEMAC; +GST_EXPORT gboolean gst_mikey_payload_kemac_set (GstMIKEYPayload *payload, GstMIKEYEncAlg enc_alg, GstMIKEYMacAlg mac_alg); + +GST_EXPORT guint gst_mikey_payload_kemac_get_n_sub (const GstMIKEYPayload *payload); + +GST_EXPORT const GstMIKEYPayload * gst_mikey_payload_kemac_get_sub (const GstMIKEYPayload *payload, guint idx); + +GST_EXPORT gboolean gst_mikey_payload_kemac_remove_sub (GstMIKEYPayload *payload, guint idx); + +GST_EXPORT gboolean gst_mikey_payload_kemac_add_sub (GstMIKEYPayload *payload, GstMIKEYPayload *newpay); @@ -300,6 +312,7 @@ typedef struct { guint8 *data; } GstMIKEYPayloadPKE; +GST_EXPORT gboolean gst_mikey_payload_pke_set (GstMIKEYPayload *payload, GstMIKEYCacheType C, guint16 data_len, const guint8 *data); @@ -335,6 +348,7 @@ typedef struct { guint8 *ts_value; } GstMIKEYPayloadT; +GST_EXPORT gboolean gst_mikey_payload_t_set (GstMIKEYPayload *payload, GstMIKEYTSType type, const guint8 *ts_value); @@ -416,12 +430,20 @@ typedef struct { GArray *params; } GstMIKEYPayloadSP; +GST_EXPORT gboolean gst_mikey_payload_sp_set (GstMIKEYPayload *payload, guint policy, GstMIKEYSecProto proto); +GST_EXPORT guint gst_mikey_payload_sp_get_n_params (const GstMIKEYPayload *payload); + +GST_EXPORT const GstMIKEYPayloadSPParam * gst_mikey_payload_sp_get_param (const GstMIKEYPayload *payload, guint idx); + +GST_EXPORT gboolean gst_mikey_payload_sp_remove_param (GstMIKEYPayload *payload, guint idx); + +GST_EXPORT gboolean gst_mikey_payload_sp_add_param (GstMIKEYPayload *payload, guint8 type, guint8 len, const guint8 *val); @@ -440,6 +462,7 @@ typedef struct { guint8 *rand; } GstMIKEYPayloadRAND; +GST_EXPORT gboolean gst_mikey_payload_rand_set (GstMIKEYPayload *payload, guint8 len, const guint8 *rand); @@ -499,13 +522,20 @@ typedef struct { guint8 *kv_data[2]; } GstMIKEYPayloadKeyData; +GST_EXPORT gboolean gst_mikey_payload_key_data_set_key (GstMIKEYPayload *payload, GstMIKEYKeyDataType key_type, guint16 key_len, const guint8 *key_data); + +GST_EXPORT gboolean gst_mikey_payload_key_data_set_salt (GstMIKEYPayload *payload, guint16 salt_len, const guint8 *salt_data); + +GST_EXPORT gboolean gst_mikey_payload_key_data_set_spi (GstMIKEYPayload *payload, guint8 spi_len, const guint8 *spi_data); + +GST_EXPORT gboolean gst_mikey_payload_key_data_set_interval (GstMIKEYPayload *payload, guint8 vf_len, const guint8 *vf_data, guint8 vt_len, const guint8 *vt_data); @@ -540,15 +570,28 @@ struct _GstMIKEYMessage }; +GST_EXPORT GstMIKEYMessage * gst_mikey_message_new (void); + +GST_EXPORT GstMIKEYMessage * gst_mikey_message_new_from_data (gconstpointer data, gsize size, GstMIKEYDecryptInfo *info, GError **error); + +GST_EXPORT GstMIKEYMessage * gst_mikey_message_new_from_bytes (GBytes *bytes, GstMIKEYDecryptInfo *info, GError **error); + +GST_EXPORT GBytes * gst_mikey_message_to_bytes (GstMIKEYMessage *msg, GstMIKEYEncryptInfo *info, GError **error); + +GST_EXPORT GstMIKEYMessage * gst_mikey_message_new_from_caps (GstCaps *caps); + +GST_EXPORT gboolean gst_mikey_message_to_caps (const GstMIKEYMessage *msg, GstCaps *caps); + +GST_EXPORT gchar * gst_mikey_message_base64_encode (GstMIKEYMessage* msg); /** @@ -598,38 +641,67 @@ gst_mikey_message_copy (const GstMIKEYMessage * message) } +GST_EXPORT gboolean gst_mikey_message_set_info (GstMIKEYMessage *msg, guint8 version, GstMIKEYType type, gboolean V, GstMIKEYPRFFunc prf_func, guint32 CSB_id, GstMIKEYMapType map_type); + +GST_EXPORT guint gst_mikey_message_get_n_cs (const GstMIKEYMessage *msg); /* SRTP crypto sessions */ + +GST_EXPORT const GstMIKEYMapSRTP * gst_mikey_message_get_cs_srtp (const GstMIKEYMessage *msg, guint idx); + +GST_EXPORT gboolean gst_mikey_message_insert_cs_srtp (GstMIKEYMessage *msg, gint idx, const GstMIKEYMapSRTP *map); + +GST_EXPORT gboolean gst_mikey_message_replace_cs_srtp (GstMIKEYMessage *msg, gint idx, const GstMIKEYMapSRTP *map); + +GST_EXPORT gboolean gst_mikey_message_remove_cs_srtp (GstMIKEYMessage *msg, gint idx); + +GST_EXPORT gboolean gst_mikey_message_add_cs_srtp (GstMIKEYMessage *msg, guint8 policy, guint32 ssrc, guint32 roc); /* adding/retrieving payloads */ + +GST_EXPORT guint gst_mikey_message_get_n_payloads (const GstMIKEYMessage *msg); + +GST_EXPORT const GstMIKEYPayload * gst_mikey_message_get_payload (const GstMIKEYMessage *msg, guint idx); + +GST_EXPORT const GstMIKEYPayload * gst_mikey_message_find_payload (const GstMIKEYMessage *msg, GstMIKEYPayloadType type, guint nth); + +GST_EXPORT gboolean gst_mikey_message_remove_payload (GstMIKEYMessage *msg, guint idx); + +GST_EXPORT gboolean gst_mikey_message_insert_payload (GstMIKEYMessage *msg, guint idx, GstMIKEYPayload *payload); + +GST_EXPORT gboolean gst_mikey_message_add_payload (GstMIKEYMessage *msg, GstMIKEYPayload *payload); + +GST_EXPORT gboolean gst_mikey_message_replace_payload (GstMIKEYMessage *msg, guint idx, GstMIKEYPayload *payload); /* Key data transport payload (KEMAC) */ /* Envelope data payload (PKE) */ + +GST_EXPORT gboolean gst_mikey_message_add_pke (GstMIKEYMessage *msg, GstMIKEYCacheType C, guint16 data_len, const guint8 *data); @@ -637,8 +709,12 @@ gboolean gst_mikey_message_add_pke (GstMIKEYMessage /* Signature payload (SIGN) */ /* Timestamp payload (T) */ + +GST_EXPORT gboolean gst_mikey_message_add_t (GstMIKEYMessage *msg, GstMIKEYTSType type, const guint8 *ts_value); + +GST_EXPORT gboolean gst_mikey_message_add_t_now_ntp_utc (GstMIKEYMessage *msg); /* ID payload (ID) */ /* Certificate Payload (CERT) */ @@ -646,8 +722,12 @@ gboolean gst_mikey_message_add_t_now_ntp_utc (GstMIKEYMessage /* Ver msg payload (V) */ /* Security Policy payload (SP)*/ /* RAND payload (RAND) */ + +GST_EXPORT gboolean gst_mikey_message_add_rand (GstMIKEYMessage *msg, guint8 len, const guint8 *rand); + +GST_EXPORT gboolean gst_mikey_message_add_rand_len (GstMIKEYMessage *msg, guint8 len); /* Error payload (ERR) */ diff --git a/gst-libs/gst/sdp/gstsdpmessage.h b/gst-libs/gst/sdp/gstsdpmessage.h index 15ae60ab79..7a2215d251 100644 --- a/gst-libs/gst/sdp/gstsdpmessage.h +++ b/gst-libs/gst/sdp/gstsdpmessage.h @@ -97,11 +97,14 @@ typedef struct { guint addr_number; } GstSDPConnection; +GST_EXPORT GstSDPResult gst_sdp_connection_set (GstSDPConnection *conn, const gchar *nettype, const gchar *addrtype, const gchar *address, guint ttl, guint addr_number); + +GST_EXPORT GstSDPResult gst_sdp_connection_clear (GstSDPConnection *conn); @@ -157,8 +160,11 @@ typedef struct { guint bandwidth; } GstSDPBandwidth; +GST_EXPORT GstSDPResult gst_sdp_bandwidth_set (GstSDPBandwidth *bw, const gchar *bwtype, guint bandwidth); + +GST_EXPORT GstSDPResult gst_sdp_bandwidth_clear (GstSDPBandwidth *bw); /** @@ -178,8 +184,11 @@ typedef struct { GArray *repeat; } GstSDPTime; +GST_EXPORT GstSDPResult gst_sdp_time_set (GstSDPTime *t, const gchar *start, const gchar *stop, const gchar **repeat); + +GST_EXPORT GstSDPResult gst_sdp_time_clear (GstSDPTime *t); /** @@ -196,8 +205,11 @@ typedef struct { gchar *typed_time; } GstSDPZone; +GST_EXPORT GstSDPResult gst_sdp_zone_set (GstSDPZone *zone, const gchar *adj_time, const gchar *typed_time); + +GST_EXPORT GstSDPResult gst_sdp_zone_clear (GstSDPZone *zone); @@ -226,8 +238,11 @@ typedef struct { gchar *value; } GstSDPAttribute; +GST_EXPORT GstSDPResult gst_sdp_attribute_set (GstSDPAttribute *attr, const gchar *key, const gchar *value); + +GST_EXPORT GstSDPResult gst_sdp_attribute_clear (GstSDPAttribute *attr); /** @@ -295,6 +310,7 @@ typedef struct { } GstSDPMessage; +GST_EXPORT GType gst_sdp_message_get_type (void); #define GST_TYPE_SDP_MESSAGE (gst_sdp_message_get_type()) @@ -302,173 +318,352 @@ GType gst_sdp_message_get_type (void); #define GST_SDP_MESSAGE(object) (GST_SDP_MESSAGE_CAST(object)) /* Session descriptions */ + +GST_EXPORT GstSDPResult gst_sdp_message_new (GstSDPMessage **msg); + +GST_EXPORT GstSDPResult gst_sdp_message_init (GstSDPMessage *msg); + +GST_EXPORT GstSDPResult gst_sdp_message_uninit (GstSDPMessage *msg); + +GST_EXPORT GstSDPResult gst_sdp_message_free (GstSDPMessage *msg); + +GST_EXPORT GstSDPResult gst_sdp_message_copy (const GstSDPMessage *msg, GstSDPMessage **copy); +GST_EXPORT GstSDPResult gst_sdp_message_parse_buffer (const guint8 *data, guint size, GstSDPMessage *msg); + +GST_EXPORT gchar* gst_sdp_message_as_text (const GstSDPMessage *msg); /* convert from/to uri */ + +GST_EXPORT GstSDPResult gst_sdp_message_parse_uri (const gchar *uri, GstSDPMessage *msg); + +GST_EXPORT gchar* gst_sdp_message_as_uri (const gchar *scheme, const GstSDPMessage *msg); /* utils */ + +GST_EXPORT gboolean gst_sdp_address_is_multicast (const gchar *nettype, const gchar *addrtype, const gchar *addr); /* v=.. */ + +GST_EXPORT const gchar* gst_sdp_message_get_version (const GstSDPMessage *msg); + +GST_EXPORT GstSDPResult gst_sdp_message_set_version (GstSDPMessage *msg, const gchar *version); /* o= */ + +GST_EXPORT const GstSDPOrigin* gst_sdp_message_get_origin (const GstSDPMessage *msg); + +GST_EXPORT GstSDPResult gst_sdp_message_set_origin (GstSDPMessage *msg, const gchar *username, const gchar *sess_id, const gchar *sess_version, const gchar *nettype, const gchar *addrtype, const gchar *addr); /* s= */ + +GST_EXPORT const gchar* gst_sdp_message_get_session_name (const GstSDPMessage *msg); + +GST_EXPORT GstSDPResult gst_sdp_message_set_session_name (GstSDPMessage *msg, const gchar *session_name); /* i= */ + +GST_EXPORT const gchar* gst_sdp_message_get_information (const GstSDPMessage *msg); + +GST_EXPORT GstSDPResult gst_sdp_message_set_information (GstSDPMessage *msg, const gchar *information); /* u= */ + +GST_EXPORT const gchar* gst_sdp_message_get_uri (const GstSDPMessage *msg); + +GST_EXPORT GstSDPResult gst_sdp_message_set_uri (GstSDPMessage *msg, const gchar *uri); /* e= */ + +GST_EXPORT guint gst_sdp_message_emails_len (const GstSDPMessage *msg); + +GST_EXPORT const gchar* gst_sdp_message_get_email (const GstSDPMessage *msg, guint idx); + +GST_EXPORT GstSDPResult gst_sdp_message_insert_email (GstSDPMessage *msg, gint idx, const gchar *email); + +GST_EXPORT GstSDPResult gst_sdp_message_replace_email (GstSDPMessage *msg, guint idx, const gchar *email); + +GST_EXPORT GstSDPResult gst_sdp_message_remove_email (GstSDPMessage *msg, guint idx); + +GST_EXPORT GstSDPResult gst_sdp_message_add_email (GstSDPMessage *msg, const gchar *email); /* p= */ + +GST_EXPORT guint gst_sdp_message_phones_len (const GstSDPMessage *msg); + +GST_EXPORT const gchar* gst_sdp_message_get_phone (const GstSDPMessage *msg, guint idx); + +GST_EXPORT GstSDPResult gst_sdp_message_insert_phone (GstSDPMessage *msg, gint idx, const gchar *phone); + +GST_EXPORT GstSDPResult gst_sdp_message_replace_phone (GstSDPMessage *msg, guint idx, const gchar *phone); + +GST_EXPORT GstSDPResult gst_sdp_message_remove_phone (GstSDPMessage *msg, guint idx); + +GST_EXPORT GstSDPResult gst_sdp_message_add_phone (GstSDPMessage *msg, const gchar *phone); /* c= [/][/] */ +GST_EXPORT const GstSDPConnection* gst_sdp_message_get_connection (const GstSDPMessage *msg); + +GST_EXPORT GstSDPResult gst_sdp_message_set_connection (GstSDPMessage *msg, const gchar *nettype, const gchar *addrtype, const gchar *address, guint ttl, guint addr_number); /* b=: */ + +GST_EXPORT guint gst_sdp_message_bandwidths_len (const GstSDPMessage *msg); + +GST_EXPORT const GstSDPBandwidth* gst_sdp_message_get_bandwidth (const GstSDPMessage *msg, guint idx); + +GST_EXPORT GstSDPResult gst_sdp_message_insert_bandwidth (GstSDPMessage * msg, gint idx, GstSDPBandwidth * bw); + +GST_EXPORT GstSDPResult gst_sdp_message_replace_bandwidth (GstSDPMessage * msg, guint idx, GstSDPBandwidth * bw); + +GST_EXPORT GstSDPResult gst_sdp_message_remove_bandwidth (GstSDPMessage * msg, guint idx); + +GST_EXPORT GstSDPResult gst_sdp_message_add_bandwidth (GstSDPMessage *msg, const gchar *bwtype, guint bandwidth); /* t= and * r= */ + +GST_EXPORT guint gst_sdp_message_times_len (const GstSDPMessage *msg); + +GST_EXPORT const GstSDPTime* gst_sdp_message_get_time (const GstSDPMessage *msg, guint idx); + +GST_EXPORT GstSDPResult gst_sdp_message_insert_time (GstSDPMessage *msg, gint idx, GstSDPTime *t); + +GST_EXPORT GstSDPResult gst_sdp_message_replace_time (GstSDPMessage *msg, guint idx, GstSDPTime *t); + +GST_EXPORT GstSDPResult gst_sdp_message_remove_time (GstSDPMessage *msg, guint idx); + +GST_EXPORT GstSDPResult gst_sdp_message_add_time (GstSDPMessage *msg, const gchar *start, const gchar *stop, const gchar **repeat); /* z= .... */ + +GST_EXPORT guint gst_sdp_message_zones_len (const GstSDPMessage *msg); + +GST_EXPORT const GstSDPZone* gst_sdp_message_get_zone (const GstSDPMessage *msg, guint idx); + +GST_EXPORT GstSDPResult gst_sdp_message_insert_zone (GstSDPMessage *msg, gint idx, GstSDPZone *zone); + +GST_EXPORT GstSDPResult gst_sdp_message_replace_zone (GstSDPMessage *msg, guint idx, GstSDPZone *zone); + +GST_EXPORT GstSDPResult gst_sdp_message_remove_zone (GstSDPMessage *msg, guint idx); + +GST_EXPORT GstSDPResult gst_sdp_message_add_zone (GstSDPMessage *msg, const gchar *adj_time, const gchar *typed_time); /* k=[:] */ + +GST_EXPORT const GstSDPKey* gst_sdp_message_get_key (const GstSDPMessage *msg); + +GST_EXPORT GstSDPResult gst_sdp_message_set_key (GstSDPMessage *msg, const gchar *type, const gchar *data); /* a=... */ + +GST_EXPORT guint gst_sdp_message_attributes_len (const GstSDPMessage *msg); + +GST_EXPORT const GstSDPAttribute* gst_sdp_message_get_attribute (const GstSDPMessage *msg, guint idx); + +GST_EXPORT const gchar* gst_sdp_message_get_attribute_val (const GstSDPMessage *msg, const gchar *key); + +GST_EXPORT const gchar* gst_sdp_message_get_attribute_val_n (const GstSDPMessage *msg, const gchar *key, guint nth); + +GST_EXPORT GstSDPResult gst_sdp_message_insert_attribute (GstSDPMessage *msg, gint idx, GstSDPAttribute *attr); + +GST_EXPORT GstSDPResult gst_sdp_message_replace_attribute (GstSDPMessage *msg, guint idx, GstSDPAttribute *attr); + +GST_EXPORT GstSDPResult gst_sdp_message_remove_attribute (GstSDPMessage *msg, guint idx); + +GST_EXPORT GstSDPResult gst_sdp_message_add_attribute (GstSDPMessage *msg, const gchar *key, const gchar *value); /* m=.. sections */ + +GST_EXPORT guint gst_sdp_message_medias_len (const GstSDPMessage *msg); + +GST_EXPORT const GstSDPMedia* gst_sdp_message_get_media (const GstSDPMessage *msg, guint idx); + +GST_EXPORT GstSDPResult gst_sdp_message_add_media (GstSDPMessage *msg, GstSDPMedia *media); +GST_EXPORT GstSDPResult gst_sdp_message_dump (const GstSDPMessage *msg); /* Media descriptions */ + +GST_EXPORT GstSDPResult gst_sdp_media_new (GstSDPMedia **media); + +GST_EXPORT GstSDPResult gst_sdp_media_init (GstSDPMedia *media); + +GST_EXPORT GstSDPResult gst_sdp_media_uninit (GstSDPMedia *media); + +GST_EXPORT GstSDPResult gst_sdp_media_free (GstSDPMedia *media); + +GST_EXPORT GstSDPResult gst_sdp_media_copy (const GstSDPMedia *media, GstSDPMedia **copy); +GST_EXPORT gchar* gst_sdp_media_as_text (const GstSDPMedia *media); /* m= / ... */ + +GST_EXPORT const gchar* gst_sdp_media_get_media (const GstSDPMedia *media); + +GST_EXPORT GstSDPResult gst_sdp_media_set_media (GstSDPMedia *media, const gchar *med); +GST_EXPORT guint gst_sdp_media_get_port (const GstSDPMedia *media); + +GST_EXPORT guint gst_sdp_media_get_num_ports (const GstSDPMedia *media); + +GST_EXPORT GstSDPResult gst_sdp_media_set_port_info (GstSDPMedia *media, guint port, guint num_ports); +GST_EXPORT const gchar* gst_sdp_media_get_proto (const GstSDPMedia *media); + +GST_EXPORT GstSDPResult gst_sdp_media_set_proto (GstSDPMedia *media, const gchar *proto); +GST_EXPORT guint gst_sdp_media_formats_len (const GstSDPMedia *media); + +GST_EXPORT const gchar* gst_sdp_media_get_format (const GstSDPMedia *media, guint idx); + +GST_EXPORT GstSDPResult gst_sdp_media_insert_format (GstSDPMedia *media, gint idx, const gchar *format); + +GST_EXPORT GstSDPResult gst_sdp_media_replace_format (GstSDPMedia *media, guint idx, const gchar *format); + +GST_EXPORT GstSDPResult gst_sdp_media_remove_format (GstSDPMedia *media, guint idx); + +GST_EXPORT GstSDPResult gst_sdp_media_add_format (GstSDPMedia *media, const gchar *format); /* i= */ + +GST_EXPORT const gchar* gst_sdp_media_get_information (const GstSDPMedia *media); + +GST_EXPORT GstSDPResult gst_sdp_media_set_information (GstSDPMedia *media, const gchar *information); /* c= [/][/] */ + +GST_EXPORT guint gst_sdp_media_connections_len (const GstSDPMedia *media); + +GST_EXPORT const GstSDPConnection* gst_sdp_media_get_connection (const GstSDPMedia *media, guint idx); + +GST_EXPORT GstSDPResult gst_sdp_media_insert_connection (GstSDPMedia *media, gint idx, GstSDPConnection *conn); + +GST_EXPORT GstSDPResult gst_sdp_media_replace_connection (GstSDPMedia *media, guint idx, GstSDPConnection *conn); + +GST_EXPORT GstSDPResult gst_sdp_media_remove_connection (GstSDPMedia *media, guint idx); + +GST_EXPORT GstSDPResult gst_sdp_media_add_connection (GstSDPMedia *media, const gchar *nettype, const gchar *addrtype, @@ -476,39 +671,85 @@ GstSDPResult gst_sdp_media_add_connection (GstSDPMedia *media, guint ttl, guint addr_number); /* b=: */ + +GST_EXPORT guint gst_sdp_media_bandwidths_len (const GstSDPMedia *media); + +GST_EXPORT const GstSDPBandwidth* gst_sdp_media_get_bandwidth (const GstSDPMedia *media, guint idx); + +GST_EXPORT GstSDPResult gst_sdp_media_insert_bandwidth (GstSDPMedia *media, gint idx, GstSDPBandwidth *bw); + +GST_EXPORT GstSDPResult gst_sdp_media_replace_bandwidth (GstSDPMedia *media, guint idx, GstSDPBandwidth *bw); + +GST_EXPORT GstSDPResult gst_sdp_media_remove_bandwidth (GstSDPMedia *media, guint idx); + +GST_EXPORT GstSDPResult gst_sdp_media_add_bandwidth (GstSDPMedia *media, const gchar *bwtype, guint bandwidth); /* k=: */ + +GST_EXPORT const GstSDPKey* gst_sdp_media_get_key (const GstSDPMedia *media); + +GST_EXPORT GstSDPResult gst_sdp_media_set_key (GstSDPMedia *media, const gchar *type, const gchar *data); /* a=... */ + +GST_EXPORT guint gst_sdp_media_attributes_len (const GstSDPMedia *media); + +GST_EXPORT const GstSDPAttribute * gst_sdp_media_get_attribute (const GstSDPMedia *media, guint idx); + +GST_EXPORT const gchar* gst_sdp_media_get_attribute_val (const GstSDPMedia *media, const gchar *key); + +GST_EXPORT const gchar* gst_sdp_media_get_attribute_val_n (const GstSDPMedia *media, const gchar *key, guint nth); + +GST_EXPORT GstSDPResult gst_sdp_media_insert_attribute (GstSDPMedia *media, gint idx, GstSDPAttribute *attr); + +GST_EXPORT GstSDPResult gst_sdp_media_replace_attribute (GstSDPMedia *media, guint idx, GstSDPAttribute *attr); + +GST_EXPORT GstSDPResult gst_sdp_media_remove_attribute (GstSDPMedia *media, guint idx); + +GST_EXPORT GstSDPResult gst_sdp_media_add_attribute (GstSDPMedia *media, const gchar *key, const gchar *value); + +GST_EXPORT GstCaps* gst_sdp_media_get_caps_from_media (const GstSDPMedia *media, gint pt); + +GST_EXPORT GstSDPResult gst_sdp_media_set_media_from_caps (const GstCaps* caps, GstSDPMedia *media); + +GST_EXPORT gchar * gst_sdp_make_keymgmt (const gchar *uri, const gchar *base64); + +GST_EXPORT GstSDPResult gst_sdp_message_parse_keymgmt (const GstSDPMessage *msg, GstMIKEYMessage **mikey); + +GST_EXPORT GstSDPResult gst_sdp_media_parse_keymgmt (const GstSDPMedia *media, GstMIKEYMessage **mikey); + +GST_EXPORT GstSDPResult gst_sdp_message_attributes_to_caps (const GstSDPMessage *msg, GstCaps *caps); + +GST_EXPORT GstSDPResult gst_sdp_media_attributes_to_caps (const GstSDPMedia *media, GstCaps *caps); #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC