From: Michael Froman <mjfroman@mac.com>
Date: Mon, 4 Apr 2022 12:25:26 -0500
Subject: Bug 1766646 - (fix) breakout Call::Stats and SharedModuleThread into
 seperate files

---
 call/BUILD.gn            |  6 ++++++
 call/call.cc             | 13 -------------
 call/call.h              | 11 ++---------
 call/call_basic_stats.cc | 20 ++++++++++++++++++++
 call/call_basic_stats.h  | 21 +++++++++++++++++++++
 5 files changed, 49 insertions(+), 22 deletions(-)
 create mode 100644 call/call_basic_stats.cc
 create mode 100644 call/call_basic_stats.h

diff --git a/call/BUILD.gn b/call/BUILD.gn
index 37f772471f..14b5835f47 100644
--- a/call/BUILD.gn
+++ b/call/BUILD.gn
@@ -33,6 +33,12 @@ rtc_library("call_interfaces") {
     "syncable.cc",
     "syncable.h",
   ]
+  if (build_with_mozilla) {
+    sources += [
+      "call_basic_stats.cc",
+      "call_basic_stats.h",
+    ]
+  }
 
   deps = [
     ":audio_sender_interface",
diff --git a/call/call.cc b/call/call.cc
index ace69e717a..7d3d8f81b7 100644
--- a/call/call.cc
+++ b/call/call.cc
@@ -514,19 +514,6 @@ class Call final : public webrtc::Call,
 };
 }  // namespace internal
 
-std::string Call::Stats::ToString(int64_t time_ms) const {
-  char buf[1024];
-  SimpleStringBuilder ss(buf);
-  ss << "Call stats: " << time_ms << ", {";
-  ss << "send_bw_bps: " << send_bandwidth_bps << ", ";
-  ss << "recv_bw_bps: " << recv_bandwidth_bps << ", ";
-  ss << "max_pad_bps: " << max_padding_bitrate_bps << ", ";
-  ss << "pacer_delay_ms: " << pacer_delay_ms << ", ";
-  ss << "rtt_ms: " << rtt_ms;
-  ss << '}';
-  return ss.str();
-}
-
 std::unique_ptr<Call> Call::Create(CallConfig config) {
   std::unique_ptr<RtpTransportControllerSendInterface> transport_send;
   if (config.rtp_transport_controller_send_factory != nullptr) {
diff --git a/call/call.h b/call/call.h
index 87e1884583..420a754edd 100644
--- a/call/call.h
+++ b/call/call.h
@@ -25,6 +25,7 @@
 #include "api/transport/bitrate_settings.h"
 #include "call/audio_receive_stream.h"
 #include "call/audio_send_stream.h"
+#include "call/call_basic_stats.h"
 #include "call/call_config.h"
 #include "call/flexfec_receive_stream.h"
 #include "call/packet_receiver.h"
@@ -50,15 +51,7 @@ namespace webrtc {
 
 class Call {
  public:
-  struct Stats {
-    std::string ToString(int64_t time_ms) const;
-
-    int send_bandwidth_bps = 0;       // Estimated available send bandwidth.
-    int max_padding_bitrate_bps = 0;  // Cumulative configured max padding.
-    int recv_bandwidth_bps = 0;       // Estimated available receive bandwidth.
-    int64_t pacer_delay_ms = 0;
-    int64_t rtt_ms = -1;
-  };
+  using Stats = CallBasicStats;
 
   static std::unique_ptr<Call> Create(CallConfig config);
 
diff --git a/call/call_basic_stats.cc b/call/call_basic_stats.cc
new file mode 100644
index 0000000000..1882dfefea
--- /dev/null
+++ b/call/call_basic_stats.cc
@@ -0,0 +1,20 @@
+#include "call/call_basic_stats.h"
+
+#include "rtc_base/strings/string_builder.h"
+
+namespace webrtc {
+
+std::string CallBasicStats::ToString(int64_t time_ms) const {
+  char buf[1024];
+  SimpleStringBuilder ss(buf);
+  ss << "Call stats: " << time_ms << ", {";
+  ss << "send_bw_bps: " << send_bandwidth_bps << ", ";
+  ss << "recv_bw_bps: " << recv_bandwidth_bps << ", ";
+  ss << "max_pad_bps: " << max_padding_bitrate_bps << ", ";
+  ss << "pacer_delay_ms: " << pacer_delay_ms << ", ";
+  ss << "rtt_ms: " << rtt_ms;
+  ss << '}';
+  return ss.str();
+}
+
+}  // namespace webrtc
diff --git a/call/call_basic_stats.h b/call/call_basic_stats.h
new file mode 100644
index 0000000000..98febe9405
--- /dev/null
+++ b/call/call_basic_stats.h
@@ -0,0 +1,21 @@
+#ifndef CALL_CALL_BASIC_STATS_H_
+#define CALL_CALL_BASIC_STATS_H_
+
+#include <string>
+
+namespace webrtc {
+
+// named to avoid conflicts with video/call_stats.h
+struct CallBasicStats {
+  std::string ToString(int64_t time_ms) const;
+
+  int send_bandwidth_bps = 0;       // Estimated available send bandwidth.
+  int max_padding_bitrate_bps = 0;  // Cumulative configured max padding.
+  int recv_bandwidth_bps = 0;       // Estimated available receive bandwidth.
+  int64_t pacer_delay_ms = 0;
+  int64_t rtt_ms = -1;
+};
+
+}  // namespace webrtc
+
+#endif  // CALL_CALL_BASIC_STATS_H_
