Adding ChannelStatistics Logs

Bug: webrtc:363353566
Change-Id: I187432794d173175b83efd4a8899199916306dcd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/361127
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Tim Na <natim@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42916}
diff --git a/AUTHORS b/AUTHORS
index 9004844..064e126 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -59,6 +59,7 @@
 Hans Knoechel <hans@hans-knoechel.de>
 Helmut Januschka <helmut@januschka.com>
 Hugues Ekra <hekra01@gmail.com>
+Hyungjoo Na <element11sodium@gmail.com>
 Jake Hilton <jakehilton@gmail.com>
 James H. Brown <jbrown@burgoyne.com>
 Jan Grulich <grulja@gmail.com>
diff --git a/examples/androidvoip/BUILD.gn b/examples/androidvoip/BUILD.gn
index c86f899..b36f586 100644
--- a/examples/androidvoip/BUILD.gn
+++ b/examples/androidvoip/BUILD.gn
@@ -69,6 +69,7 @@
       "//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 5004fc0..c681dc5 100644
--- a/examples/androidvoip/jni/android_voip_client.cc
+++ b/examples/androidvoip/jni/android_voip_client.cc
@@ -16,8 +16,6 @@
 #include <algorithm>
 #include <map>
 #include <memory>
-#include <unordered_map>
-#include <unordered_set>
 #include <utility>
 #include <vector>
 
@@ -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 @@
       });
   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 073613b..b84ae18 100644
--- a/examples/androidvoip/jni/android_voip_client.h
+++ b/examples/androidvoip/jni/android_voip_client.h
@@ -150,6 +150,9 @@
   void ReadRTPPacket(const std::vector<uint8_t>& packet_copy);
   void ReadRTCPPacket(const std::vector<uint8_t>& packet_copy);
 
+  // Method to print out ChannelStatistics
+  void LogChannelStatistics(JNIEnv* env);
+
   // Used to invoke operations and send/receive RTP/RTCP packets.
   std::unique_ptr<rtc::Thread> voip_thread_;
   // Reference to the VoipClient java instance used to