From 2cf74b6d7ad8d9225d4cc0f91acd1a410614dd0b Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Fri, 9 Dec 2022 09:08:43 -0500 Subject: [PATCH] MT#55283 add media player stats to MQTT Change-Id: I40f215876394c806223d46c420669ee577e172f9 --- daemon/mqtt.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/daemon/mqtt.c b/daemon/mqtt.c index 97a11498a..87c85acdb 100644 --- a/daemon/mqtt.c +++ b/daemon/mqtt.c @@ -14,6 +14,7 @@ #include "call.h" #include "ssrc.h" #include "rtplib.h" +#include "media_player.h" @@ -21,6 +22,9 @@ static struct mosquitto *mosq; static bool is_connected = false; +static void mqtt_ssrc_stats(struct ssrc_ctx *ssrc, JsonBuilder *json, struct call_media *media); + + int mqtt_init(void) { mosq = mosquitto_new(rtpe_config.mqtt_id, true, NULL); if (!mosq) { @@ -157,6 +161,35 @@ static void mqtt_monologue_stats(struct call_monologue *ml, JsonBuilder *json) { json_builder_set_member_name(json, "label"); json_builder_add_string_value(json, ml->label.s); } + +#ifdef WITH_TRANSCODING + struct media_player *mp = ml->player; + if (mp) { + mutex_lock(&mp->lock); + + json_builder_set_member_name(json, "media_player"); + + json_builder_begin_object(json); + + json_builder_set_member_name(json, "duration"); + json_builder_add_int_value(json, mp->duration); + json_builder_set_member_name(json, "repeat"); + json_builder_add_int_value(json, mp->repeat); + json_builder_set_member_name(json, "frame_time"); + json_builder_add_int_value(json, mp->last_frame_ts); + + if (mp->ssrc_out && mp->media) { + json_builder_set_member_name(json, "SSRC"); + json_builder_begin_object(json); + mqtt_ssrc_stats(mp->ssrc_out, json, mp->media); + json_builder_end_object(json); + } + + json_builder_end_object(json); + + mutex_unlock(&mp->lock); + } +#endif }