aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Chemeris <Alexander.Chemeris@gmail.com>2016-04-25 20:11:53 +0200
committerAlexander Chemeris <Alexander.Chemeris@gmail.com>2016-11-27 17:22:13 +0300
commit0cd67acffb954caff86005c364ca83ca39140db0 (patch)
tree5ed0c1f80de0cd232d43c68cb40d700b65487266
parent71bc9e2ac815aa07480110361651fdb5dbaf9003 (diff)
ortp: Print jitter stats along with sent/received RTP stats.
Jitter statistics is important for debugging voice quality issues. A number of dropped packets is sometimes not enough to really understand what's going on and jitter buffer statistics offer a deper view into the network quality.
-rw-r--r--src/trau/osmo_ortp.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/trau/osmo_ortp.c b/src/trau/osmo_ortp.c
index 65ec269..938777d 100644
--- a/src/trau/osmo_ortp.c
+++ b/src/trau/osmo_ortp.c
@@ -533,6 +533,19 @@ void osmo_rtp_socket_log_stats(struct osmo_rtp_socket *rs,
int subsys, int level,
const char *pfx)
{
+ char jitter_stats_str[1024] = "";
+#if HAVE_ORTP_021
+ const jitter_stats_t *jitter;
+
+ jitter = rtp_session_get_jitter_stats(rs->sess);
+ if (jitter)
+ snprintf(jitter_stats_str, sizeof(jitter_stats_str),
+ " Rx jitter(last: %"PRIu32" ms max: %"PRIu32" ms "
+ "sum: %"PRIu32" ms mean jb size %.1f ms)",
+ jitter->jitter, jitter->max_jitter,
+ jitter->sum_jitter, jitter->jitter_buffer_size_ms);
+#endif
+
const rtp_stats_t *stats;
stats = rtp_session_get_stats(rs->sess);
@@ -541,10 +554,11 @@ void osmo_rtp_socket_log_stats(struct osmo_rtp_socket *rs,
LOGP(subsys, level, "%sRTP Tx(%"PRIu64" pkts, %"PRIu64" bytes) "
"Rx(%"PRIu64" pkts, %"PRIu64" bytes, %"PRIu64" late, "
- "%"PRIu64" loss, %"PRIu64" qmax)\n",
+ "%"PRIu64" loss, %"PRIu64" qmax)%s\n",
pfx, stats->packet_sent, stats->sent,
stats->packet_recv, stats->hw_recv, stats->outoftime,
- stats->cum_packet_loss, stats->discarded);
+ stats->cum_packet_loss, stats->discarded,
+ jitter_stats_str);
}
void osmo_rtp_socket_stats(struct osmo_rtp_socket *rs,