From 77eba463248c07c633a50a2acdeae31b04356f1e Mon Sep 17 00:00:00 2001 From: Daniel Date: Mon, 2 Sep 2024 15:49:43 -0400 Subject: [PATCH] Adding ChannelStatistics Logs Bug: webrtc:363353566 Change-Id: I187432794d173175b83efd4a8899199916306dcd Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/361127 Commit-Queue: Mirko Bonadei Reviewed-by: Tim Na Reviewed-by: Mirko Bonadei Cr-Commit-Position: refs/heads/main@{#42916} --- AUTHORS | 1 + examples/androidvoip/BUILD.gn | 1 + .../androidvoip/jni/android_voip_client.cc | 27 +++++++++++++++++-- .../androidvoip/jni/android_voip_client.h | 3 +++ 4 files changed, 30 insertions(+), 2 deletions(-) diff --git a/AUTHORS b/AUTHORS index 9004844ca8..064e12611d 100644 --- a/AUTHORS +++ b/AUTHORS @@ -59,6 +59,7 @@ Gustavo Garcia Hans Knoechel Helmut Januschka Hugues Ekra +Hyungjoo Na Jake Hilton James H. Brown Jan Grulich diff --git a/examples/androidvoip/BUILD.gn b/examples/androidvoip/BUILD.gn index c86f899df4..b36f586141 100644 --- a/examples/androidvoip/BUILD.gn +++ b/examples/androidvoip/BUILD.gn @@ -69,6 +69,7 @@ if (is_android) { "//api/audio_codecs:builtin_audio_decoder_factory", "//api/audio_codecs:builtin_audio_encoder_factory", "//api/task_queue:default_task_queue_factory", + "//api/units:time_delta", "//api/voip:voip_api", "//api/voip:voip_engine_factory", "//rtc_base/network:received_packet", diff --git a/examples/androidvoip/jni/android_voip_client.cc b/examples/androidvoip/jni/android_voip_client.cc index 5004fc0de7..c681dc572b 100644 --- a/examples/androidvoip/jni/android_voip_client.cc +++ b/examples/androidvoip/jni/android_voip_client.cc @@ -16,8 +16,6 @@ #include #include #include -#include -#include #include #include @@ -25,9 +23,12 @@ #include "api/audio_codecs/builtin_audio_decoder_factory.h" #include "api/audio_codecs/builtin_audio_encoder_factory.h" #include "api/task_queue/default_task_queue_factory.h" +#include "api/units/time_delta.h" +#include "api/voip/voip_base.h" #include "api/voip/voip_codec.h" #include "api/voip/voip_engine_factory.h" #include "api/voip/voip_network.h" +#include "api/voip/voip_statistics.h" #include "examples/androidvoip/generated_jni/VoipClient_jni.h" #include "rtc_base/logging.h" #include "rtc_base/network.h" @@ -333,6 +334,28 @@ void AndroidVoipClient::StartSession(JNIEnv* env) { }); Java_VoipClient_onStartSessionCompleted(env_, j_voip_client_, /*isSuccessful=*/true); + voip_thread_->PostTask([this, env] { LogChannelStatistics(env); }); +} + +void AndroidVoipClient::LogChannelStatistics(JNIEnv* env) { + RUN_ON_VOIP_THREAD(LogChannelStatistics, env) + + if (!channel_) + return; + webrtc::ChannelStatistics stats; + if (voip_engine_->Statistics().GetChannelStatistics(*channel_, stats) == + webrtc::VoipResult::kInvalidArgument) + return; + + RTC_LOG(LS_INFO) << "PACKETS SENT: " << stats.packets_sent + << " BYTES SENT: " << stats.bytes_sent + << " PACKETS RECV: " << stats.packets_received + << " BYTES RECV: " << stats.bytes_received + << " JITTER: " << stats.jitter + << " PACKETS LOST: " << stats.packets_lost; + + voip_thread_->PostDelayedTask([this, env] { LogChannelStatistics(env); }, + webrtc::TimeDelta::Seconds(1)); } void AndroidVoipClient::StopSession(JNIEnv* env) { diff --git a/examples/androidvoip/jni/android_voip_client.h b/examples/androidvoip/jni/android_voip_client.h index 073613b7ce..b84ae184aa 100644 --- a/examples/androidvoip/jni/android_voip_client.h +++ b/examples/androidvoip/jni/android_voip_client.h @@ -150,6 +150,9 @@ class AndroidVoipClient : public webrtc::Transport { void ReadRTPPacket(const std::vector& packet_copy); void ReadRTCPPacket(const std::vector& packet_copy); + // Method to print out ChannelStatistics + void LogChannelStatistics(JNIEnv* env); + // Used to invoke operations and send/receive RTP/RTCP packets. std::unique_ptr voip_thread_; // Reference to the VoipClient java instance used to