Browse Source

MT#55283 fix missing MQTT SSRC stats

Change-Id: I3464f56263f783b7d81d4bdddfe56cd1fafa9ac3
pull/2025/head
Richard Fuchs 1 month ago
parent
commit
23aa836800
1 changed files with 19 additions and 11 deletions
  1. +19
    -11
      daemon/mqtt.c

+ 19
- 11
daemon/mqtt.c View File

@ -338,6 +338,9 @@ static void mqtt_stream_stats_dir(const struct stream_stats *s, JsonBuilder *jso
static void mqtt_stream_stats(struct packet_stream *ps, JsonBuilder *json) {
if (!ps)
return;
LOCK(&ps->lock);
stream_fd *sfd = ps->selected_sfd;
@ -362,18 +365,20 @@ static void mqtt_stream_stats(struct packet_stream *ps, JsonBuilder *json) {
json_builder_set_member_name(json, "transcoding");
json_builder_add_boolean_value(json, MEDIA_ISSET(ps->media, TRANSCODING) ? TRUE : FALSE);
}
json_builder_set_member_name(json, "ingress");
json_builder_begin_object(json);
static void mqtt_stream_stats_ingress(struct packet_stream *ps, JsonBuilder *json) {
if (!ps)
return;
mqtt_stream_stats_dir(ps->stats_in, json);
}
json_builder_end_object(json);
json_builder_set_member_name(json, "egress");
json_builder_begin_object(json);
static void mqtt_stream_stats_egress(struct packet_stream *ps, JsonBuilder *json) {
if (!ps)
return;
mqtt_stream_stats_dir(ps->stats_out, json);
json_builder_end_object(json);
}
@ -406,12 +411,16 @@ static void mqtt_media_stats(struct call_media *media, JsonBuilder *json) {
json_builder_add_string_value(json, "inactive");
}
struct packet_stream *ps = media->streams.head ? media->streams.head->data : NULL;
mutex_lock(&media->ssrc_hash_in.lock);
json_builder_set_member_name(json, "ingress");
json_builder_begin_object(json);
mqtt_stream_stats_ingress(ps, json);
json_builder_set_member_name(json, "SSRC");
json_builder_begin_array(json);
for (GList *l = media->ssrc_hash_in.nq.head; l; l = l->next) {
@ -432,6 +441,8 @@ static void mqtt_media_stats(struct call_media *media, JsonBuilder *json) {
json_builder_set_member_name(json, "egress");
json_builder_begin_object(json);
mqtt_stream_stats_egress(ps, json);
json_builder_set_member_name(json, "SSRC");
json_builder_begin_array(json);
for (GList *l = media->ssrc_hash_out.nq.head; l; l = l->next) {
@ -446,10 +457,7 @@ static void mqtt_media_stats(struct call_media *media, JsonBuilder *json) {
mutex_unlock(&media->ssrc_hash_out.lock);
struct packet_stream *ps = media->streams.head ? media->streams.head->data : NULL;
if (ps)
mqtt_stream_stats(ps, json);
mqtt_stream_stats(ps, json);
}


Loading…
Cancel
Save