|
|
|
@ -682,6 +682,7 @@ struct call_media *call_media_new(call_t *call) { |
|
|
|
ssrc_hash_call_init(&med->ssrc_hash_in); |
|
|
|
ssrc_hash_call_init(&med->ssrc_hash_out); |
|
|
|
med->extmap_ht = extmap_ht_new(); |
|
|
|
med->ext_name_ht = ext_name_ht_new(); |
|
|
|
med->extmap_lookup = call_media_ext_lookup_array; |
|
|
|
return med; |
|
|
|
} |
|
|
|
@ -2864,6 +2865,7 @@ __attribute__((nonnull(1, 2))) |
|
|
|
static void media_init_extmap(struct call_media *media, struct rtp_extension *ext) { |
|
|
|
ext->name = call_str_cpy(&ext->name); |
|
|
|
|
|
|
|
t_hash_table_insert(media->ext_name_ht, &ext->name, ext); |
|
|
|
t_hash_table_insert(media->extmap_ht, GUINT_TO_POINTER(ext->id), ext); |
|
|
|
|
|
|
|
if (ext->id > 0 && ext->id <= 14) |
|
|
|
@ -2879,6 +2881,7 @@ static void media_update_extmap(struct call_media *media, struct stream_params * |
|
|
|
media->extmap = sp->extmap; |
|
|
|
t_queue_init(&sp->extmap); |
|
|
|
|
|
|
|
t_hash_table_remove_all(media->ext_name_ht); |
|
|
|
t_hash_table_remove_all(media->extmap_ht); |
|
|
|
memset(media->extmap_a, 0, sizeof(media->extmap_a)); |
|
|
|
media->extmap_lookup = call_media_ext_lookup_array; |
|
|
|
@ -4421,6 +4424,7 @@ void call_media_free(struct call_media **mdp) { |
|
|
|
ssrc_hash_destroy(&md->ssrc_hash_in); |
|
|
|
ssrc_hash_destroy(&md->ssrc_hash_out); |
|
|
|
t_hash_table_destroy(md->extmap_ht); |
|
|
|
t_hash_table_destroy(md->ext_name_ht); |
|
|
|
t_queue_clear_full(&md->extmap, rtp_extension_free); |
|
|
|
g_free(md); |
|
|
|
*mdp = NULL; |
|
|
|
|