Improvements for NetEqControllers

When creating a NetEqController it can be useful to have access to a
webrtc::Clock*. Also, NetEqControllers should have access to the
contents of the sync buffer when making decisions.

Bug: webrtc:11005
Change-Id: I7fdba75ce661b2ace52458620a8c1f3c990e5ac2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167208
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30368}
diff --git a/api/neteq/BUILD.gn b/api/neteq/BUILD.gn
index f1e5d1d..1ab02ec 100644
--- a/api/neteq/BUILD.gn
+++ b/api/neteq/BUILD.gn
@@ -55,6 +55,7 @@
     ":neteq_api",
     ":tick_timer",
     "../../rtc_base:rtc_base_approved",
+    "../../system_wrappers:system_wrappers",
     "//third_party/abseil-cpp/absl/types:optional",
   ]
 }
diff --git a/api/neteq/DEPS b/api/neteq/DEPS
index 14dd963..6c1c602 100644
--- a/api/neteq/DEPS
+++ b/api/neteq/DEPS
@@ -1,11 +1,14 @@
 specific_include_rules = {
-  "neteq_factory\.h": [
-    "+system_wrappers/include/clock.h",
-  ],
   "custom_neteq_factory\.h": [
     "+system_wrappers/include/clock.h",
   ],
   "default_neteq_factory\.h": [
     "+system_wrappers/include/clock.h",
   ],
+  "neteq_controller\.h": [
+    "+system_wrappers/include/clock.h",
+  ],
+  "neteq_factory\.h": [
+    "+system_wrappers/include/clock.h",
+  ],
 }
diff --git a/api/neteq/OWNERS b/api/neteq/OWNERS
new file mode 100644
index 0000000..2a16031
--- /dev/null
+++ b/api/neteq/OWNERS
@@ -0,0 +1,2 @@
+ivoc@webrtc.org
+hlundin@webrtc.org
diff --git a/api/neteq/neteq_controller.h b/api/neteq/neteq_controller.h
index dfd697b..1d47eac 100644
--- a/api/neteq/neteq_controller.h
+++ b/api/neteq/neteq_controller.h
@@ -20,6 +20,7 @@
 #include "absl/types/optional.h"
 #include "api/neteq/neteq.h"
 #include "api/neteq/tick_timer.h"
+#include "system_wrappers/include/clock.h"
 
 namespace webrtc {
 
@@ -67,6 +68,7 @@
     int max_packets_in_buffer;
     int base_min_delay_ms;
     TickTimer* tick_timer;
+    webrtc::Clock* clock = nullptr;
   };
 
   struct PacketInfo {
@@ -92,6 +94,7 @@
     bool play_dtmf;
     size_t generated_noise_samples;
     PacketBufferInfo packet_buffer_info;
+    size_t sync_buffer_samples;
   };
 
   virtual ~NetEqController() = default;