MT#61625 refactor __rtp_stats_update

Make it so we can do this without a codec_store.

Change-Id: I3872709ee8d28ccccfab52006cb7f73887b53f04
pull/1910/head
Richard Fuchs 10 months ago
parent 587c0dac82
commit 06b84ac050

@ -1208,8 +1208,18 @@ int __init_stream(struct packet_stream *ps) {
return 0;
}
static void rtp_stats_add_pt(GHashTable *dst, const struct rtp_payload_type *pt) {
struct rtp_stats *rs = g_hash_table_lookup(dst, GINT_TO_POINTER(pt->payload_type));
if (rs)
return;
rs = bufferpool_alloc0(shm_bufferpool, sizeof(*rs));
rs->payload_type = pt->payload_type;
rs->clock_rate = pt->clock_rate;
g_hash_table_insert(dst, GINT_TO_POINTER(rs->payload_type), rs);
}
void __rtp_stats_update(GHashTable *dst, struct codec_store *cs) {
struct rtp_stats *rs;
rtp_payload_type *pt;
codecs_ht src = cs->codecs;
@ -1219,16 +1229,8 @@ void __rtp_stats_update(GHashTable *dst, struct codec_store *cs) {
codecs_ht_iter iter;
t_hash_table_iter_init(&iter, src);
while (t_hash_table_iter_next(&iter, NULL, &pt)) {
rs = g_hash_table_lookup(dst, GINT_TO_POINTER(pt->payload_type));
if (rs)
continue;
rs = bufferpool_alloc0(shm_bufferpool, sizeof(*rs));
rs->payload_type = pt->payload_type;
rs->clock_rate = pt->clock_rate;
g_hash_table_insert(dst, GINT_TO_POINTER(rs->payload_type), rs);
}
while (t_hash_table_iter_next(&iter, NULL, &pt))
rtp_stats_add_pt(dst, pt);
/* we leave previously added but now removed payload types in place */
}

Loading…
Cancel
Save