Browse Source

TT#76711 add custom SDP attributes capability

Change-Id: Iaf924938af1ef32a5a7eb961951c0debe7351ee5
changes/44/38444/8
Richard Fuchs 6 years ago
parent
commit
6792cde8b6
3 changed files with 15 additions and 1 deletions
  1. +1
    -0
      daemon/call.c
  2. +12
    -1
      daemon/sdp.c
  3. +2
    -0
      include/call.h

+ 1
- 0
daemon/call.c View File

@ -2411,6 +2411,7 @@ static void __call_free(void *p) {
g_queue_clear_full(&md->codecs_prefs_recv, (GDestroyNotify) payload_type_free);
g_queue_clear_full(&md->codecs_prefs_send, (GDestroyNotify) payload_type_free);
codec_handlers_free(md);
g_queue_clear_full(&md->sdp_attributes, free);
g_slice_free1(sizeof(*md), md);
}


+ 12
- 1
daemon/sdp.c View File

@ -1513,6 +1513,14 @@ static void insert_codec_parameters(struct sdp_chopper *chop, struct call_media
}
}
static void insert_sdp_attributes(struct sdp_chopper *chop, struct call_media *cm) {
for (GList *l = cm->sdp_attributes.head; l; l = l->next) {
str *s = l->data;
chopper_append_printf(chop, "a=" STR_FORMAT "\r\n",
STR_FMT(s));
}
}
static int replace_media_port(struct sdp_chopper *chop, struct sdp_media *media, struct packet_stream *ps) {
str *port = &media->port;
unsigned int p;
@ -2118,7 +2126,10 @@ int sdp_replace(struct sdp_chopper *chop, GQueue *sessions, struct call_monologu
chopper_append_c(chop, "\r\n");
}
insert_codec_parameters(chop, call_media);
if (call_media->protocol && call_media->protocol->rtp)
insert_codec_parameters(chop, call_media);
insert_sdp_attributes(chop, call_media);
ps_rtcp = NULL;
if (ps->rtcp_sibling) {


+ 2
- 0
include/call.h View File

@ -322,6 +322,8 @@ struct call_media {
GHashTable *codec_names_send; // codec name -> GQueue of int payload types; storage container
GQueue codecs_prefs_send; // storage container
GQueue sdp_attributes; // str_sprintf()
GHashTable *codec_handlers; // int payload type -> struct codec_handler
// XXX combine this with 'codecs_recv' hash table?
GQueue codec_handlers_store; // storage for struct codec_handler


Loading…
Cancel
Save