Cleanup arraysize usage in audio_device

Bug: webrtc:407433458
Change-Id: I48179bac2ae51c8f23f578263f1e4a515184b23a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/394120
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#44863}
diff --git a/modules/audio_device/BUILD.gn b/modules/audio_device/BUILD.gn
index 9bf81c3..b879e4f 100644
--- a/modules/audio_device/BUILD.gn
+++ b/modules/audio_device/BUILD.gn
@@ -114,7 +114,6 @@
       "../../api/units:time_delta",
       "../../rtc_base:checks",
       "../../rtc_base:logging",
-      "../../rtc_base:macromagic",
       "../../rtc_base:platform_thread_types",
       "../../rtc_base:stringutils",
       "../../rtc_base/win:windows_version",
@@ -157,7 +156,6 @@
       "../../api/task_queue",
       "../../rtc_base:checks",
       "../../rtc_base:logging",
-      "../../rtc_base:macromagic",
       "../../rtc_base:platform_thread",
       "../../rtc_base:safe_conversions",
       "../../rtc_base:stringutils",
diff --git a/modules/audio_device/mac/audio_device_mac.cc b/modules/audio_device/mac/audio_device_mac.cc
index 4d2c132..03bbdac 100644
--- a/modules/audio_device/mac/audio_device_mac.cc
+++ b/modules/audio_device/mac/audio_device_mac.cc
@@ -19,7 +19,6 @@
 
 #include "modules/audio_device/audio_device_config.h"
 #include "modules/third_party/portaudio/pa_ringbuffer.h"
-#include "rtc_base/arraysize.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/platform_thread.h"
 #include "rtc_base/system/arch.h"
@@ -2491,7 +2490,7 @@
 bool AudioDeviceMac::KeyPressed() {
   bool key_down = false;
   // Loop through all Mac virtual key constant values.
-  for (unsigned int key_index = 0; key_index < arraysize(prev_key_state_);
+  for (unsigned int key_index = 0; key_index < std::size(prev_key_state_);
        ++key_index) {
     bool keyState =
         CGEventSourceKeyState(kCGEventSourceStateHIDSystemState, key_index);
diff --git a/modules/audio_device/win/core_audio_base_win.cc b/modules/audio_device/win/core_audio_base_win.cc
index 4d73ea5..98cb29f 100644
--- a/modules/audio_device/win/core_audio_base_win.cc
+++ b/modules/audio_device/win/core_audio_base_win.cc
@@ -10,12 +10,12 @@
 
 #include "modules/audio_device/win/core_audio_base_win.h"
 
+#include <iterator>
 #include <memory>
 #include <string>
 
 #include "absl/strings/string_view.h"
 #include "modules/audio_device/audio_device_buffer.h"
-#include "rtc_base/arraysize.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/numerics/safe_conversions.h"
@@ -905,7 +905,7 @@
   // is signaled. An error event can also break the main thread loop.
   while (streaming && !error) {
     // Wait for a close-down event, stream-switch event or a new render event.
-    DWORD wait_result = WaitForMultipleObjects(arraysize(wait_array),
+    DWORD wait_result = WaitForMultipleObjects(std::size(wait_array),
                                                wait_array, false, INFINITE);
     switch (wait_result) {
       case WAIT_OBJECT_0 + 0:
diff --git a/modules/audio_device/win/core_audio_utility_win.cc b/modules/audio_device/win/core_audio_utility_win.cc
index b574c28..dbfefa0 100644
--- a/modules/audio_device/win/core_audio_utility_win.cc
+++ b/modules/audio_device/win/core_audio_utility_win.cc
@@ -15,11 +15,11 @@
 #include <tchar.h>
 
 #include <iomanip>
+#include <iterator>
 #include <string>
 #include <utility>
 
 #include "absl/strings/string_view.h"
-#include "rtc_base/arraysize.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/platform_thread_types.h"
 #include "rtc_base/string_utils.h"
@@ -205,7 +205,7 @@
   static const wchar_t* const kAudiosesDLL =
       L"%WINDIR%\\system32\\audioses.dll";
   wchar_t path[MAX_PATH] = {0};
-  ExpandEnvironmentStringsW(kAudiosesDLL, path, arraysize(path));
+  ExpandEnvironmentStringsW(kAudiosesDLL, path, std::size(path));
   RTC_DLOG(LS_INFO) << webrtc::ToUtf8(path);
   return (LoadLibraryExW(path, nullptr, LOAD_WITH_ALTERED_SEARCH_PATH) !=
           nullptr);
@@ -214,7 +214,7 @@
 bool LoadAvrtDll() {
   static const wchar_t* const kAvrtDLL = L"%WINDIR%\\system32\\Avrt.dll";
   wchar_t path[MAX_PATH] = {0};
-  ExpandEnvironmentStringsW(kAvrtDLL, path, arraysize(path));
+  ExpandEnvironmentStringsW(kAvrtDLL, path, std::size(path));
   RTC_DLOG(LS_INFO) << webrtc::ToUtf8(path);
   return (LoadLibraryExW(path, nullptr, LOAD_WITH_ALTERED_SEARCH_PATH) !=
           nullptr);
@@ -548,22 +548,21 @@
   // id if only one active device exists). The first element (index 0) is the
   // default device and the second element (index 1) is the default
   // communication device.
-  ERole role[] = {eCommunications, eConsole};
   ComPtr<IMMDevice> default_device;
   AudioDeviceName default_device_name;
-  for (size_t i = 0; i < arraysize(role); ++i) {
+  for (ERole role : {eCommunications, eConsole}) {
     default_device = CreateDeviceInternal(AudioDeviceName::kDefaultDeviceId,
-                                          data_flow, role[i]);
+                                          data_flow, role);
     if (!default_device.Get()) {
       // Add empty strings to device name if the device could not be created.
       RTC_DLOG(LS_WARNING) << "Failed to add device with role: "
-                           << RoleToString(role[i]);
+                           << RoleToString(role);
       default_device_name.device_name = std::string();
       default_device_name.unique_id = std::string();
     } else {
       // Populate the device name with friendly name and unique id.
       std::string device_name;
-      device_name += (role[i] == eConsole ? "Default - " : "Communication - ");
+      device_name += (role == eConsole ? "Default - " : "Communication - ");
       device_name += GetDeviceFriendlyNameInternal(default_device.Get());
       std::string unique_id = GetDeviceIdInternal(default_device.Get());
       default_device_name.device_name = std::move(device_name);
diff --git a/modules/audio_device/win/core_audio_utility_win_unittest.cc b/modules/audio_device/win/core_audio_utility_win_unittest.cc
index c035cc4..e6514e5 100644
--- a/modules/audio_device/win/core_audio_utility_win_unittest.cc
+++ b/modules/audio_device/win/core_audio_utility_win_unittest.cc
@@ -10,7 +10,6 @@
 
 #include "modules/audio_device/win/core_audio_utility_win.h"
 
-#include "rtc_base/arraysize.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/win/scoped_com_initializer.h"
 #include "rtc_base/win/windows_version.h"
@@ -204,12 +203,11 @@
 
   // Create default devices for all flow/role combinations above.
   ComPtr<IMMDevice> audio_device;
-  for (size_t i = 0; i < arraysize(data); ++i) {
+  for (auto [flow, role] : data) {
     audio_device = core_audio_utility::CreateDevice(
-        AudioDeviceName::kDefaultDeviceId, data[i].flow, data[i].role);
+        AudioDeviceName::kDefaultDeviceId, flow, role);
     EXPECT_TRUE(audio_device.Get());
-    EXPECT_EQ(data[i].flow,
-              core_audio_utility::GetDataFlow(audio_device.Get()));
+    EXPECT_EQ(flow, core_audio_utility::GetDataFlow(audio_device.Get()));
   }
 
   // Only eRender and eCapture are allowed as flow parameter.
@@ -256,9 +254,9 @@
   // Get name and ID of default devices for all flow/role combinations above.
   ComPtr<IMMDevice> audio_device;
   AudioDeviceName device_name;
-  for (size_t i = 0; i < arraysize(data); ++i) {
+  for (auto [flow, role] : data) {
     audio_device = core_audio_utility::CreateDevice(
-        AudioDeviceName::kDefaultDeviceId, data[i].flow, data[i].role);
+        AudioDeviceName::kDefaultDeviceId, flow, role);
     device_name = core_audio_utility::GetDeviceName(audio_device.Get());
     EXPECT_TRUE(device_name.IsValid());
   }
@@ -317,14 +315,12 @@
   ABORT_TEST_IF_NOT(DevicesAvailable() && webrtc::rtc_win::GetVersion() >=
                                               webrtc::rtc_win::VERSION_WIN7);
 
-  EDataFlow data_flow[] = {eRender, eCapture};
-
   // Obtain reference to an IAudioSessionManager2 interface for a default audio
   // endpoint device specified by two different data flows and the `eConsole`
   // role.
-  for (size_t i = 0; i < arraysize(data_flow); ++i) {
+  for (EDataFlow data_flow : {eRender, eCapture}) {
     ComPtr<IMMDevice> device(core_audio_utility::CreateDevice(
-        AudioDeviceName::kDefaultDeviceId, data_flow[i], eConsole));
+        AudioDeviceName::kDefaultDeviceId, data_flow, eConsole));
     EXPECT_TRUE(device.Get());
     ComPtr<IAudioSessionManager2> session_manager =
         core_audio_utility::CreateSessionManager2(device.Get());
@@ -336,14 +332,12 @@
   ABORT_TEST_IF_NOT(DevicesAvailable() && webrtc::rtc_win::GetVersion() >=
                                               webrtc::rtc_win::VERSION_WIN7);
 
-  EDataFlow data_flow[] = {eRender, eCapture};
-
   // Obtain reference to an IAudioSessionEnumerator interface for a default
   // audio endpoint device specified by two different data flows and the
   // `eConsole` role.
-  for (size_t i = 0; i < arraysize(data_flow); ++i) {
+  for (EDataFlow data_flow : {eRender, eCapture}) {
     ComPtr<IMMDevice> device(core_audio_utility::CreateDevice(
-        AudioDeviceName::kDefaultDeviceId, data_flow[i], eConsole));
+        AudioDeviceName::kDefaultDeviceId, data_flow, eConsole));
     EXPECT_TRUE(device.Get());
     ComPtr<IAudioSessionEnumerator> session_enumerator =
         core_audio_utility::CreateSessionEnumerator(device.Get());
@@ -362,16 +356,14 @@
   ABORT_TEST_IF_NOT(DevicesAvailable() && webrtc::rtc_win::GetVersion() >=
                                               webrtc::rtc_win::VERSION_WIN7);
 
-  EDataFlow data_flow[] = {eRender, eCapture};
-
   // Count number of active audio session for a default audio endpoint device
   // specified by two different data flows and the `eConsole` role.
   // Ensure that the number of active audio sessions is less than or equal to
   // the total number of audio sessions on that same device.
-  for (size_t i = 0; i < arraysize(data_flow); ++i) {
+  for (EDataFlow data_flow : {eRender, eCapture}) {
     // Create an audio endpoint device.
     ComPtr<IMMDevice> device(core_audio_utility::CreateDevice(
-        AudioDeviceName::kDefaultDeviceId, data_flow[i], eConsole));
+        AudioDeviceName::kDefaultDeviceId, data_flow, eConsole));
     EXPECT_TRUE(device.Get());
 
     // Ask for total number of audio sessions on the created device.
@@ -392,13 +384,11 @@
 TEST_F(CoreAudioUtilityWinTest, CreateClient) {
   ABORT_TEST_IF_NOT(DevicesAvailable());
 
-  EDataFlow data_flow[] = {eRender, eCapture};
-
   // Obtain reference to an IAudioClient interface for a default audio endpoint
   // device specified by two different data flows and the `eConsole` role.
-  for (size_t i = 0; i < arraysize(data_flow); ++i) {
+  for (EDataFlow data_flow : {eRender, eCapture}) {
     ComPtr<IAudioClient> client = core_audio_utility::CreateClient(
-        AudioDeviceName::kDefaultDeviceId, data_flow[i], eConsole);
+        AudioDeviceName::kDefaultDeviceId, data_flow, eConsole);
     EXPECT_TRUE(client.Get());
   }
 }
@@ -407,13 +397,11 @@
   ABORT_TEST_IF_NOT(DevicesAvailable() &&
                     core_audio_utility::GetAudioClientVersion() >= 2);
 
-  EDataFlow data_flow[] = {eRender, eCapture};
-
   // Obtain reference to an IAudioClient2 interface for a default audio endpoint
   // device specified by two different data flows and the `eConsole` role.
-  for (size_t i = 0; i < arraysize(data_flow); ++i) {
+  for (EDataFlow data_flow : {eRender, eCapture}) {
     ComPtr<IAudioClient2> client2 = core_audio_utility::CreateClient2(
-        AudioDeviceName::kDefaultDeviceId, data_flow[i], eConsole);
+        AudioDeviceName::kDefaultDeviceId, data_flow, eConsole);
     EXPECT_TRUE(client2.Get());
   }
 }
@@ -422,13 +410,11 @@
   ABORT_TEST_IF_NOT(DevicesAvailable() &&
                     core_audio_utility::GetAudioClientVersion() >= 3);
 
-  EDataFlow data_flow[] = {eRender, eCapture};
-
   // Obtain reference to an IAudioClient3 interface for a default audio endpoint
   // device specified by two different data flows and the `eConsole` role.
-  for (size_t i = 0; i < arraysize(data_flow); ++i) {
+  for (EDataFlow data_flow : {eRender, eCapture}) {
     ComPtr<IAudioClient3> client3 = core_audio_utility::CreateClient3(
-        AudioDeviceName::kDefaultDeviceId, data_flow[i], eConsole);
+        AudioDeviceName::kDefaultDeviceId, data_flow, eConsole);
     EXPECT_TRUE(client3.Get());
   }
 }
@@ -541,16 +527,14 @@
 TEST_F(CoreAudioUtilityWinTest, GetDevicePeriod) {
   ABORT_TEST_IF_NOT(DevicesAvailable());
 
-  EDataFlow data_flow[] = {eRender, eCapture};
-
   // Verify that the device periods are valid for the default render and
   // capture devices.
   ComPtr<IAudioClient> client;
-  for (size_t i = 0; i < arraysize(data_flow); ++i) {
+  for (EDataFlow data_flow : {eRender, eCapture}) {
     REFERENCE_TIME shared_time_period = 0;
     REFERENCE_TIME exclusive_time_period = 0;
     client = core_audio_utility::CreateClient(AudioDeviceName::kDefaultDeviceId,
-                                              data_flow[i], eConsole);
+                                              data_flow, eConsole);
     EXPECT_TRUE(client.Get());
     EXPECT_TRUE(SUCCEEDED(core_audio_utility::GetDevicePeriod(
         client.Get(), AUDCLNT_SHAREMODE_SHARED, &shared_time_period)));
@@ -577,9 +561,9 @@
   // combinations above.
   ComPtr<IAudioClient> client;
   webrtc::AudioParameters params;
-  for (size_t i = 0; i < arraysize(data); ++i) {
+  for (auto [flow, role] : data) {
     client = core_audio_utility::CreateClient(AudioDeviceName::kDefaultDeviceId,
-                                              data[i].flow, data[i].role);
+                                              flow, role);
     EXPECT_TRUE(client.Get());
     EXPECT_TRUE(SUCCEEDED(core_audio_utility::GetPreferredAudioParameters(
         client.Get(), &params)));
@@ -661,23 +645,21 @@
 TEST_F(CoreAudioUtilityWinTest, CreateRenderAndCaptureClients) {
   ABORT_TEST_IF_NOT(DevicesAvailable());
 
-  EDataFlow data_flow[] = {eRender, eCapture};
-
   WAVEFORMATPCMEX format;
   uint32_t endpoint_buffer_size = 0;
 
-  for (size_t i = 0; i < arraysize(data_flow); ++i) {
+  for (EDataFlow data_flow : {eRender, eCapture}) {
     ComPtr<IAudioClient> client;
     ComPtr<IAudioRenderClient> render_client;
     ComPtr<IAudioCaptureClient> capture_client;
 
     // Create a default client for the given data-flow direction.
     client = core_audio_utility::CreateClient(AudioDeviceName::kDefaultDeviceId,
-                                              data_flow[i], eConsole);
+                                              data_flow, eConsole);
     EXPECT_TRUE(client.Get());
     EXPECT_TRUE(SUCCEEDED(
         core_audio_utility::GetSharedModeMixFormat(client.Get(), &format)));
-    if (data_flow[i] == eRender) {
+    if (data_flow == eRender) {
       // It is not possible to create a render client using an unitialized
       // client interface.
       render_client = core_audio_utility::CreateRenderClient(client.Get());
@@ -689,7 +671,7 @@
       render_client = core_audio_utility::CreateRenderClient(client.Get());
       EXPECT_TRUE(render_client.Get());
       EXPECT_GT(endpoint_buffer_size, 0u);
-    } else if (data_flow[i] == eCapture) {
+    } else if (data_flow == eCapture) {
       // It is not possible to create a capture client using an unitialized
       // client interface.
       capture_client = core_audio_utility::CreateCaptureClient(client.Get());
@@ -708,18 +690,16 @@
 TEST_F(CoreAudioUtilityWinTest, CreateAudioClock) {
   ABORT_TEST_IF_NOT(DevicesAvailable());
 
-  EDataFlow data_flow[] = {eRender, eCapture};
-
   WAVEFORMATPCMEX format;
   uint32_t endpoint_buffer_size = 0;
 
-  for (size_t i = 0; i < arraysize(data_flow); ++i) {
+  for (EDataFlow data_flow : {eRender, eCapture}) {
     ComPtr<IAudioClient> client;
     ComPtr<IAudioClock> audio_clock;
 
     // Create a default client for the given data-flow direction.
     client = core_audio_utility::CreateClient(AudioDeviceName::kDefaultDeviceId,
-                                              data_flow[i], eConsole);
+                                              data_flow, eConsole);
     EXPECT_TRUE(client.Get());
     EXPECT_TRUE(SUCCEEDED(
         core_audio_utility::GetSharedModeMixFormat(client.Get(), &format)));
@@ -746,18 +726,16 @@
 TEST_F(CoreAudioUtilityWinTest, CreateAudioSessionControl) {
   ABORT_TEST_IF_NOT(DevicesAvailable());
 
-  EDataFlow data_flow[] = {eRender, eCapture};
-
   WAVEFORMATPCMEX format;
   uint32_t endpoint_buffer_size = 0;
 
-  for (size_t i = 0; i < arraysize(data_flow); ++i) {
+  for (EDataFlow data_flow : {eRender, eCapture}) {
     ComPtr<IAudioClient> client;
     ComPtr<IAudioSessionControl> audio_session_control;
 
     // Create a default client for the given data-flow direction.
     client = core_audio_utility::CreateClient(AudioDeviceName::kDefaultDeviceId,
-                                              data_flow[i], eConsole);
+                                              data_flow, eConsole);
     EXPECT_TRUE(client.Get());
     EXPECT_TRUE(SUCCEEDED(
         core_audio_utility::GetSharedModeMixFormat(client.Get(), &format)));
@@ -791,18 +769,16 @@
 TEST_F(CoreAudioUtilityWinTest, CreateSimpleAudioVolume) {
   ABORT_TEST_IF_NOT(DevicesAvailable());
 
-  EDataFlow data_flow[] = {eRender, eCapture};
-
   WAVEFORMATPCMEX format;
   uint32_t endpoint_buffer_size = 0;
 
-  for (size_t i = 0; i < arraysize(data_flow); ++i) {
+  for (EDataFlow data_flow : {eRender, eCapture}) {
     ComPtr<IAudioClient> client;
     ComPtr<ISimpleAudioVolume> simple_audio_volume;
 
     // Create a default client for the given data-flow direction.
     client = core_audio_utility::CreateClient(AudioDeviceName::kDefaultDeviceId,
-                                              data_flow[i], eConsole);
+                                              data_flow, eConsole);
     EXPECT_TRUE(client.Get());
     EXPECT_TRUE(SUCCEEDED(
         core_audio_utility::GetSharedModeMixFormat(client.Get(), &format)));
diff --git a/sdk/android/BUILD.gn b/sdk/android/BUILD.gn
index 9c9cd41..1d68092 100644
--- a/sdk/android/BUILD.gn
+++ b/sdk/android/BUILD.gn
@@ -1265,7 +1265,6 @@
       "../../modules/audio_device:audio_device_buffer",
       "../../rtc_base:checks",
       "../../rtc_base:logging",
-      "../../rtc_base:macromagic",
       "../../rtc_base:platform_thread",
       "../../rtc_base:timeutils",
       "../../system_wrappers:metrics",
@@ -1296,7 +1295,6 @@
         "../../modules/audio_device:audio_device_buffer",
         "../../rtc_base:checks",
         "../../rtc_base:logging",
-        "../../rtc_base:macromagic",
         "../../rtc_base:stringutils",
         "../../rtc_base:timeutils",
         "../../system_wrappers",
@@ -1327,7 +1325,6 @@
       "../../modules/audio_device:audio_device_buffer",
       "../../rtc_base:checks",
       "../../rtc_base:logging",
-      "../../rtc_base:macromagic",
       "../../rtc_base:platform_thread",
       "../../rtc_base:timeutils",
     ]
@@ -1741,7 +1738,6 @@
       "../../rtc_base:checks",
       "../../rtc_base:ip_address",
       "../../rtc_base:logging",
-      "../../rtc_base:macromagic",
       "../../rtc_base:platform_thread",
       "../../rtc_base:rtc_event",
       "../../rtc_base:stringutils",
diff --git a/sdk/android/native_unittests/audio_device/audio_device_unittest.cc b/sdk/android/native_unittests/audio_device/audio_device_unittest.cc
index e8e5ad7..62c81c4 100644
--- a/sdk/android/native_unittests/audio_device/audio_device_unittest.cc
+++ b/sdk/android/native_unittests/audio_device/audio_device_unittest.cc
@@ -18,7 +18,6 @@
 #include "api/environment/environment_factory.h"
 #include "api/scoped_refptr.h"
 #include "modules/audio_device/include/mock_audio_transport.h"
-#include "rtc_base/arraysize.h"
 #include "rtc_base/event.h"
 #include "rtc_base/synchronization/mutex.h"
 #include "rtc_base/time_utils.h"
diff --git a/sdk/android/src/jni/audio_device/audio_record_jni.cc b/sdk/android/src/jni/audio_device/audio_record_jni.cc
index 195950b..43706e9 100644
--- a/sdk/android/src/jni/audio_device/audio_record_jni.cc
+++ b/sdk/android/src/jni/audio_device/audio_record_jni.cc
@@ -13,7 +13,6 @@
 #include <string>
 #include <utility>
 
-#include "rtc_base/arraysize.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/platform_thread.h"
diff --git a/sdk/android/src/jni/audio_device/opensles_common.cc b/sdk/android/src/jni/audio_device/opensles_common.cc
index 300019a..8225518 100644
--- a/sdk/android/src/jni/audio_device/opensles_common.cc
+++ b/sdk/android/src/jni/audio_device/opensles_common.cc
@@ -12,7 +12,8 @@
 
 #include <SLES/OpenSLES.h>
 
-#include "rtc_base/arraysize.h"
+#include <iterator>
+
 #include "rtc_base/checks.h"
 
 namespace webrtc {
@@ -42,7 +43,7 @@
       "SL_RESULT_CONTROL_LOST",            // 16
   };
 
-  if (code >= arraysize(sl_error_strings)) {
+  if (code >= std::size(sl_error_strings)) {
     return "SL_RESULT_UNKNOWN_ERROR";
   }
   return sl_error_strings[code];
diff --git a/sdk/android/src/jni/audio_device/opensles_player.cc b/sdk/android/src/jni/audio_device/opensles_player.cc
index efb6766..674e6e0 100644
--- a/sdk/android/src/jni/audio_device/opensles_player.cc
+++ b/sdk/android/src/jni/audio_device/opensles_player.cc
@@ -12,11 +12,11 @@
 
 #include <android/log.h>
 
+#include <iterator>
 #include <memory>
 
 #include "api/array_view.h"
 #include "modules/audio_device/fine_audio_buffer.h"
-#include "rtc_base/arraysize.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/platform_thread.h"
 #include "rtc_base/time_utils.h"
@@ -307,7 +307,7 @@
   RETURN_ON_ERROR(
       (*engine_)->CreateAudioPlayer(
           engine_, player_object_.Receive(), &audio_source, &audio_sink,
-          arraysize(interface_ids), interface_ids, interface_required),
+          std::size(interface_ids), interface_ids, interface_required),
       false);
 
   // Use the Android configuration interface to set platform-specific
diff --git a/sdk/android/src/jni/audio_device/opensles_recorder.cc b/sdk/android/src/jni/audio_device/opensles_recorder.cc
index 8e9bfaa..b34cba9 100644
--- a/sdk/android/src/jni/audio_device/opensles_recorder.cc
+++ b/sdk/android/src/jni/audio_device/opensles_recorder.cc
@@ -12,11 +12,11 @@
 
 #include <android/log.h>
 
+#include <iterator>
 #include <memory>
 
 #include "api/array_view.h"
 #include "modules/audio_device/fine_audio_buffer.h"
-#include "rtc_base/arraysize.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/platform_thread.h"
 #include "rtc_base/time_utils.h"
@@ -264,7 +264,7 @@
   const SLboolean interface_required[] = {SL_BOOLEAN_TRUE, SL_BOOLEAN_TRUE};
   if (LOG_ON_ERROR((*engine_)->CreateAudioRecorder(
           engine_, recorder_object_.Receive(), &audio_source, &audio_sink,
-          arraysize(interface_id), interface_id, interface_required))) {
+          std::size(interface_id), interface_id, interface_required))) {
     return false;
   }