Browse Source

MT#55283 add SSRC stats to NG output

Change-Id: I440dfdb11a9464566f8f2a3d58e5d4e225b336cf
pull/1826/head
Richard Fuchs 2 years ago
parent
commit
83797790ec
1 changed files with 22 additions and 3 deletions
  1. +22
    -3
      daemon/call_interfaces.c

+ 22
- 3
daemon/call_interfaces.c View File

@ -2351,6 +2351,26 @@ static void ng_stats_endpoint(bencode_item_t *dict, const endpoint_t *ep) {
bencode_dictionary_add_integer(dict, "port", ep->port); bencode_dictionary_add_integer(dict, "port", ep->port);
} }
static void ng_stats_stream_ssrc(bencode_item_t *dict, struct ssrc_ctx *const ssrcs[RTPE_NUM_SSRC_TRACKING],
const char *label)
{
bencode_item_t *list = bencode_dictionary_add_list(dict, label);
for (int i = 0; i < RTPE_NUM_SSRC_TRACKING; i++) {
struct ssrc_ctx *c = ssrcs[i];
if (!c)
break;
bencode_item_t *ssrc = bencode_list_add_dictionary(list);
bencode_dictionary_add_integer(ssrc, "SSRC", ssrcs[i]->parent->h.ssrc);
bencode_dictionary_add_integer(ssrc, "bytes", atomic64_get_na(&c->octets));
bencode_dictionary_add_integer(ssrc, "packets", atomic64_get_na(&c->packets));
bencode_dictionary_add_integer(ssrc, "last RTP timestamp", atomic64_get_na(&c->last_ts));
bencode_dictionary_add_integer(ssrc, "last RTP seq", atomic64_get_na(&c->last_seq));
}
}
#define BF_PS(k, f) if (PS_ISSET(ps, f)) bencode_list_add_string(flags, k) #define BF_PS(k, f) if (PS_ISSET(ps, f)) bencode_list_add_string(flags, k)
static void ng_stats_stream(bencode_item_t *list, const struct packet_stream *ps, static void ng_stats_stream(bencode_item_t *list, const struct packet_stream *ps,
@ -2392,9 +2412,8 @@ static void ng_stats_stream(bencode_item_t *list, const struct packet_stream *ps
BF_PS("media handover", MEDIA_HANDOVER); BF_PS("media handover", MEDIA_HANDOVER);
BF_PS("ICE", ICE); BF_PS("ICE", ICE);
// XXX convert to list output?
if (ps->ssrc_in[0])
bencode_dictionary_add_integer(dict, "SSRC", ps->ssrc_in[0]->parent->h.ssrc);
ng_stats_stream_ssrc(dict, ps->ssrc_in, "ingress SSRCs");
ng_stats_stream_ssrc(dict, ps->ssrc_out, "egress SSRCs");
stats: stats:
if (totals->last_packet < atomic64_get(&ps->last_packet)) if (totals->last_packet < atomic64_get(&ps->last_packet))


Loading…
Cancel
Save