Replace ArrayView with std::span in modules/ ArrayView is an alias to std::span. This change switch to use std::span directly instead of through the alias. Search&Replace MakeArrayView and ArrayView with std::span Search&Replace include "api/array_view.h" with include <span> Remove <span> include where std::span is not mentioned in the file Remove build dependencies on array_view target Bug: webrtc:439801349 Change-Id: I55a4978c265a0b8b6e873db93bbbf2241bd3e066 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/460800 Commit-Queue: Evan Shrubsole <eshr@webrtc.org> Auto-Submit: Danil Chapovalov <danilchap@webrtc.org> Reviewed-by: Evan Shrubsole <eshr@webrtc.org> Cr-Commit-Position: refs/heads/main@{#47285}
diff --git a/modules/audio_coding/BUILD.gn b/modules/audio_coding/BUILD.gn index d8e1e97..0aeff4e 100644 --- a/modules/audio_coding/BUILD.gn +++ b/modules/audio_coding/BUILD.gn
@@ -39,7 +39,6 @@ ":neteq", "..:module_api", "..:module_api_public", - "../../api:array_view", "../../api:function_view", "../../api/audio:audio_frame_api", "../../api/audio_codecs:audio_codecs_api", @@ -70,7 +69,6 @@ "codecs/legacy_encoded_audio_frame.h", ] deps = [ - "../../api:array_view", "../../api/audio_codecs:audio_codecs_api", "../../rtc_base:buffer", "../../rtc_base:checks", @@ -85,7 +83,6 @@ ] deps = [ - "../../api:array_view", "../../common_audio:common_audio_c", "../../rtc_base:buffer", "../../rtc_base:checks", @@ -102,7 +99,6 @@ deps = [ ":webrtc_cng", - "../../api:array_view", "../../api/audio_codecs:audio_codecs_api", "../../api/units:time_delta", "../../common_audio", @@ -119,7 +115,6 @@ ] deps = [ - "../../api:array_view", "../../api:bitrate_allocation", "../../api:field_trials_view", "../../api/audio_codecs:audio_codecs_api", @@ -145,7 +140,6 @@ deps = [ ":legacy_encoded_audio_frame", - "../../api:array_view", "../../api/audio_codecs:audio_codecs_api", "../../api/units:time_delta", "../../rtc_base:buffer", @@ -175,7 +169,6 @@ deps = [ ":legacy_encoded_audio_frame", - "../../api:array_view", "../../api/audio_codecs:audio_codecs_api", "../../api/audio_codecs/g722:audio_encoder_g722_config", "../../api/units:time_delta", @@ -239,7 +232,6 @@ deps = [ ":g711", ":legacy_encoded_audio_frame", - "../../api:array_view", "../../api/audio_codecs:audio_codecs_api", "../../rtc_base:buffer", "../../rtc_base:checks", @@ -262,7 +254,6 @@ ] deps = [ - "../../api:array_view", "../../api/audio_codecs:audio_codecs_api", "../../rtc_base:buffer", "../../rtc_base:checks", @@ -284,7 +275,6 @@ deps = [ ":audio_coding_opus_common", ":audio_network_adaptor", - "../../api:array_view", "../../api:bitrate_allocation", "../../api:field_trials_view", "../../api/audio_codecs:audio_codecs_api", @@ -324,7 +314,6 @@ deps = [ ":audio_coding_opus_common", - "../../api:array_view", "../../api/audio_codecs:audio_codecs_api", "../../api/audio_codecs/opus:audio_decoder_opus_config", "../../api/audio_codecs/opus:audio_encoder_opus_config", @@ -355,7 +344,6 @@ defines = audio_coding_defines deps = [ - "../../api:array_view", "../../rtc_base:checks", "../../rtc_base:ignore_wundef", ] @@ -423,7 +411,6 @@ [ ":audio_network_adaptor_config" ] deps = [ - "../../api:array_view", "../../api/audio_codecs:audio_codecs_api", "../../api/environment", "../../api/rtc_event_log", @@ -520,7 +507,6 @@ ":audio_coding_module_typedefs", ":webrtc_cng", "..:module_api_public", - "../../api:array_view", "../../api:field_trials_view", "../../api:rtp_headers", "../../api:rtp_packet_info", @@ -577,7 +563,6 @@ deps = [ ":neteq", - "../../api:array_view", "../../api:field_trials", "../../api:field_trials_view", "../../api:neteq_simulator_api", @@ -629,7 +614,6 @@ ":neteq_tools", ":neteq_tools_minimal", ":pcm16b", - "../../api:array_view", "../../api:rtp_headers", "../../api/units:timestamp", "../../common_audio", @@ -664,7 +648,6 @@ ":neteq_input_audio_tools", ":neteq_tools_minimal", "..:module_api_public", - "../../api:array_view", "../../api:rtp_headers", "../../api:rtp_packet_info", "../../api/audio:audio_frame_api", @@ -747,7 +730,6 @@ ":neteq_tools_minimal", ":webrtc_opus_wrapper", "..:module_api", - "../../api:array_view", "../../api:rtp_headers", "../../api:rtp_parameters", "../../api/audio:audio_frame_api", @@ -867,7 +849,6 @@ ":audio_encoder_cng", ":pcm16b_c", ":red", - "../../api:array_view", "../../api:field_trials", "../../api:rtp_headers", "../../api:scoped_refptr", @@ -945,7 +926,6 @@ ":audio_coding", ":neteq_tools", ":neteq_tools_minimal", - "../../api:array_view", "../../api:scoped_refptr", "../../api/audio_codecs:audio_codecs_api", "../../api/audio_codecs:builtin_audio_decoder_factory", @@ -1013,7 +993,6 @@ deps = [ ":neteq_input_audio_tools", - "../../api:array_view", "../../api/audio_codecs:audio_codecs_api", "../../api/audio_codecs/g722:audio_encoder_g722_config", "../../api/audio_codecs/opus:audio_encoder_opus", @@ -1183,7 +1162,6 @@ ":neteq_input_audio_tools", ":neteq_test_tools", ":neteq_tools_minimal", - "../../api:array_view", "../../api:rtp_headers", "../../api:scoped_refptr", "../../api/audio_codecs:audio_codecs_api", @@ -1236,7 +1214,6 @@ testonly = true deps = [ - "../../api:array_view", "../../rtc_base:buffer", "../../rtc_base:checks", "../rtp_rtcp:rtp_rtcp_format", @@ -1290,7 +1267,6 @@ ":neteq_quality_test_support", ":neteq_tools", ":webrtc_opus", - "../../api:array_view", "../../api:rtp_parameters", "../../api/audio_codecs:audio_codecs_api", "../../rtc_base:buffer", @@ -1326,7 +1302,6 @@ ":g711", ":neteq", ":neteq_quality_test_support", - "../../api:array_view", "../../api/audio_codecs:audio_codecs_api", "../../rtc_base:buffer", "../../rtc_base:checks", @@ -1347,7 +1322,6 @@ ":neteq", ":neteq_quality_test_support", ":pcm16b", - "../../api:array_view", "../../api/audio_codecs:audio_codecs_api", "../../rtc_base:buffer", "../../rtc_base:checks", @@ -1492,7 +1466,6 @@ ":webrtc_opus", ":webrtc_opus_wrapper", "..:module_api_public", - "../../api:array_view", "../../api:bitrate_allocation", "../../api:field_trials", "../../api:field_trials_view",
diff --git a/modules/audio_coding/acm2/acm_remixing.cc b/modules/audio_coding/acm2/acm_remixing.cc index 3ad9955..812929f 100644 --- a/modules/audio_coding/acm2/acm_remixing.cc +++ b/modules/audio_coding/acm2/acm_remixing.cc
@@ -13,16 +13,16 @@ #include <algorithm> #include <cstddef> #include <cstdint> +#include <span> #include <vector> -#include "api/array_view.h" #include "api/audio/audio_frame.h" #include "rtc_base/checks.h" #include "rtc_base/numerics/safe_conversions.h" namespace webrtc { -void DownMixFrame(const AudioFrame& input, ArrayView<int16_t> output) { +void DownMixFrame(const AudioFrame& input, std::span<int16_t> output) { RTC_DCHECK_EQ(input.num_channels_, 2); RTC_DCHECK_EQ(output.size(), input.samples_per_channel_);
diff --git a/modules/audio_coding/acm2/acm_remixing.h b/modules/audio_coding/acm2/acm_remixing.h index 0ccb7c0..fc2d082 100644 --- a/modules/audio_coding/acm2/acm_remixing.h +++ b/modules/audio_coding/acm2/acm_remixing.h
@@ -13,16 +13,16 @@ #include <cstddef> #include <cstdint> +#include <span> #include <vector> -#include "api/array_view.h" #include "api/audio/audio_frame.h" namespace webrtc { // Stereo-to-mono downmixing. The length of the output must equal to the number // of samples per channel in the input. -void DownMixFrame(const AudioFrame& input, ArrayView<int16_t> output); +void DownMixFrame(const AudioFrame& input, std::span<int16_t> output); // Remixes the interleaved input frame to an interleaved output data vector. The // remixed data replaces the data in the output vector which is resized if
diff --git a/modules/audio_coding/acm2/audio_coding_module.cc b/modules/audio_coding/acm2/audio_coding_module.cc index dfbfe18..784ceb0 100644 --- a/modules/audio_coding/acm2/audio_coding_module.cc +++ b/modules/audio_coding/acm2/audio_coding_module.cc
@@ -15,11 +15,11 @@ #include <cstdint> #include <memory> #include <optional> +#include <span> #include <string> #include <vector> #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/audio/audio_view.h" #include "api/audio_codecs/audio_encoder.h" #include "api/function_view.h" @@ -262,7 +262,7 @@ encode_buffer_.Clear(); encoded_info = encoder_stack_->Encode( rtp_timestamp, - ArrayView<const int16_t>( + std::span<const int16_t>( input_data.audio, input_data.audio_channel * input_data.length_per_channel), &encode_buffer_);
diff --git a/modules/audio_coding/acm2/audio_coding_module_unittest.cc b/modules/audio_coding/acm2/audio_coding_module_unittest.cc index f8285f8..cf9a385 100644 --- a/modules/audio_coding/acm2/audio_coding_module_unittest.cc +++ b/modules/audio_coding/acm2/audio_coding_module_unittest.cc
@@ -18,12 +18,12 @@ #include <cstring> #include <memory> #include <optional> +#include <span> #include <string> #include <utility> #include <vector> #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/audio_codecs/audio_decoder_factory.h" #include "api/audio_codecs/audio_encoder.h" #include "api/audio_codecs/audio_encoder_factory.h" @@ -208,7 +208,7 @@ const uint8_t kPayload[kPayloadSizeBytes] = {0}; ASSERT_EQ(0, neteq_->InsertPacket( rtp_header_, - ArrayView<const uint8_t>(kPayload, kPayloadSizeBytes), + std::span<const uint8_t>(kPayload, kPayloadSizeBytes), /*receive_time=*/Timestamp::MinusInfinity())); rtp_utility_->Forward(&rtp_header_); } @@ -577,7 +577,7 @@ Buffer checksum_result = Buffer::CreateWithCapacity(payload_checksum_->Size()); checksum_result.AppendData( - payload_checksum_->Size(), [&](ArrayView<uint8_t> checksum_view) { + payload_checksum_->Size(), [&](std::span<uint8_t> checksum_view) { payload_checksum_->Finish(checksum_view.data(), checksum_view.size()); return checksum_view.size(); }); @@ -1117,7 +1117,7 @@ .Times(AtLeast(1)) .WillRepeatedly(Invoke( &encoder, static_cast<AudioEncoder::EncodedInfo (AudioEncoder::*)( - uint32_t, ArrayView<const int16_t>, Buffer*)>( + uint32_t, std::span<const int16_t>, Buffer*)>( &AudioEncoderPcmU::Encode))); ASSERT_TRUE(SetUpSender(kTestFileMono32kHz, 32000)); ASSERT_NO_FATAL_FAILURE(
diff --git a/modules/audio_coding/audio_network_adaptor/controller_manager.cc b/modules/audio_coding/audio_network_adaptor/controller_manager.cc index 87f771b..f5cae7d 100644 --- a/modules/audio_coding/audio_network_adaptor/controller_manager.cc +++ b/modules/audio_coding/audio_network_adaptor/controller_manager.cc
@@ -18,12 +18,12 @@ #include <memory> #include <optional> #include <set> +#include <span> #include <string> #include <utility> #include <vector> #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/environment/environment.h" #include "modules/audio_coding/audio_network_adaptor/bitrate_controller.h" #include "modules/audio_coding/audio_network_adaptor/channel_controller.h" @@ -88,7 +88,7 @@ std::unique_ptr<FrameLengthController> CreateFrameLengthController( const audio_network_adaptor::config::FrameLengthController& config, - ArrayView<const int> encoder_frame_lengths_ms, + std::span<const int> encoder_frame_lengths_ms, int initial_frame_length_ms, int min_encoder_bitrate_bps) { RTC_CHECK(config.has_fl_increasing_packet_loss_fraction()); @@ -212,7 +212,7 @@ std::unique_ptr<FrameLengthControllerV2> CreateFrameLengthControllerV2( const audio_network_adaptor::config::FrameLengthControllerV2& config, - ArrayView<const int> encoder_frame_lengths_ms) { + std::span<const int> encoder_frame_lengths_ms) { return std::make_unique<FrameLengthControllerV2>( encoder_frame_lengths_ms, config.min_payload_bitrate_bps(), config.use_slow_adaptation()); @@ -232,7 +232,7 @@ const Environment& env, absl::string_view config_string, size_t num_encoder_channels, - ArrayView<const int> encoder_frame_lengths_ms, + std::span<const int> encoder_frame_lengths_ms, int min_encoder_bitrate_bps, size_t intial_channels_to_encode, int initial_frame_length_ms,
diff --git a/modules/audio_coding/audio_network_adaptor/controller_manager.h b/modules/audio_coding/audio_network_adaptor/controller_manager.h index 318db0c..f85a583 100644 --- a/modules/audio_coding/audio_network_adaptor/controller_manager.h +++ b/modules/audio_coding/audio_network_adaptor/controller_manager.h
@@ -16,11 +16,11 @@ #include <map> #include <memory> #include <optional> +#include <span> #include <utility> #include <vector> #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/environment/environment.h" #include "modules/audio_coding/audio_network_adaptor/controller.h" @@ -55,7 +55,7 @@ const Environment& env, absl::string_view config_string, size_t num_encoder_channels, - ArrayView<const int> encoder_frame_lengths_ms, + std::span<const int> encoder_frame_lengths_ms, int min_encoder_bitrate_bps, size_t intial_channels_to_encode, int initial_frame_length_ms,
diff --git a/modules/audio_coding/audio_network_adaptor/frame_length_controller_v2.cc b/modules/audio_coding/audio_network_adaptor/frame_length_controller_v2.cc index bbb0a2d..bb033b2 100644 --- a/modules/audio_coding/audio_network_adaptor/frame_length_controller_v2.cc +++ b/modules/audio_coding/audio_network_adaptor/frame_length_controller_v2.cc
@@ -10,8 +10,9 @@ #include "modules/audio_coding/audio_network_adaptor/frame_length_controller_v2.h" +#include <span> + #include "absl/algorithm/container.h" -#include "api/array_view.h" #include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor_config.h" #include "rtc_base/checks.h" @@ -25,7 +26,7 @@ } // namespace FrameLengthControllerV2::FrameLengthControllerV2( - ArrayView<const int> encoder_frame_lengths_ms, + std::span<const int> encoder_frame_lengths_ms, int min_payload_bitrate_bps, bool use_slow_adaptation) : encoder_frame_lengths_ms_(encoder_frame_lengths_ms.begin(),
diff --git a/modules/audio_coding/audio_network_adaptor/frame_length_controller_v2.h b/modules/audio_coding/audio_network_adaptor/frame_length_controller_v2.h index e8ff5ad..4ecfb0f 100644 --- a/modules/audio_coding/audio_network_adaptor/frame_length_controller_v2.h +++ b/modules/audio_coding/audio_network_adaptor/frame_length_controller_v2.h
@@ -12,9 +12,9 @@ #define MODULES_AUDIO_CODING_AUDIO_NETWORK_ADAPTOR_FRAME_LENGTH_CONTROLLER_V2_H_ #include <optional> +#include <span> #include <vector> -#include "api/array_view.h" #include "modules/audio_coding/audio_network_adaptor/controller.h" #include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor_config.h" @@ -22,7 +22,7 @@ class FrameLengthControllerV2 final : public Controller { public: - FrameLengthControllerV2(ArrayView<const int> encoder_frame_lengths_ms, + FrameLengthControllerV2(std::span<const int> encoder_frame_lengths_ms, int min_payload_bitrate_bps, bool use_slow_adaptation);
diff --git a/modules/audio_coding/codecs/builtin_audio_encoder_factory_unittest.cc b/modules/audio_coding/codecs/builtin_audio_encoder_factory_unittest.cc index f1250a2..d651d78 100644 --- a/modules/audio_coding/codecs/builtin_audio_encoder_factory_unittest.cc +++ b/modules/audio_coding/codecs/builtin_audio_encoder_factory_unittest.cc
@@ -14,10 +14,10 @@ #include <cstdint> #include <limits> #include <memory> +#include <span> #include <string> #include <vector> -#include "api/array_view.h" #include "api/audio_codecs/audio_encoder.h" #include "api/audio_codecs/audio_encoder_factory.h" #include "api/audio_codecs/audio_format.h" @@ -83,7 +83,7 @@ encoder->NumChannels() / 100); Buffer out; BufferT<int16_t> audio; - audio.SetData(num_samples, [](ArrayView<int16_t> audio) { + audio.SetData(num_samples, [](std::span<int16_t> audio) { for (size_t i = 0; i != audio.size(); ++i) { // Just put some numbers in there, ensure they're within range. audio[i] =
diff --git a/modules/audio_coding/codecs/cng/audio_encoder_cng.cc b/modules/audio_coding/codecs/cng/audio_encoder_cng.cc index fa7006f..384038c 100644 --- a/modules/audio_coding/codecs/cng/audio_encoder_cng.cc +++ b/modules/audio_coding/codecs/cng/audio_encoder_cng.cc
@@ -14,10 +14,10 @@ #include <cstdint> #include <memory> #include <optional> +#include <span> #include <utility> #include <vector> -#include "api/array_view.h" #include "api/audio_codecs/audio_encoder.h" #include "api/units/time_delta.h" #include "common_audio/vad/include/vad.h" @@ -49,14 +49,14 @@ size_t Max10MsFramesInAPacket() const override; int GetTargetBitrate() const override; EncodedInfo EncodeImpl(uint32_t rtp_timestamp, - ArrayView<const int16_t> audio, + std::span<const int16_t> audio, Buffer* encoded) override; void Reset() override; bool SetFec(bool enable) override; bool SetDtx(bool enable) override; bool SetApplication(Application application) override; void SetMaxPlaybackRate(int frequency_hz) override; - ArrayView<std::unique_ptr<AudioEncoder>> ReclaimContainedEncoders() override; + std::span<std::unique_ptr<AudioEncoder>> ReclaimContainedEncoders() override; void OnReceivedUplinkPacketLossFraction( float uplink_packet_loss_fraction) override; void OnReceivedUplinkBandwidth(int target_audio_bitrate_bps, @@ -125,7 +125,7 @@ AudioEncoder::EncodedInfo AudioEncoderCng::EncodeImpl( uint32_t rtp_timestamp, - ArrayView<const int16_t> audio, + std::span<const int16_t> audio, Buffer* encoded) { const size_t samples_per_10ms_frame = SamplesPer10msFrame(); RTC_CHECK_EQ(speech_buffer_.size(), @@ -216,9 +216,9 @@ speech_encoder_->SetMaxPlaybackRate(frequency_hz); } -ArrayView<std::unique_ptr<AudioEncoder>> +std::span<std::unique_ptr<AudioEncoder>> AudioEncoderCng::ReclaimContainedEncoders() { - return ArrayView<std::unique_ptr<AudioEncoder>>(&speech_encoder_, 1); + return std::span<std::unique_ptr<AudioEncoder>>(&speech_encoder_, 1); } void AudioEncoderCng::OnReceivedUplinkPacketLossFraction( @@ -253,7 +253,7 @@ // that value, in which case we don't want to overwrite any value from // an earlier iteration. size_t encoded_bytes_tmp = cng_encoder_->Encode( - ArrayView<const int16_t>(&speech_buffer_[i * samples_per_10ms_frame], + std::span<const int16_t>(&speech_buffer_[i * samples_per_10ms_frame], samples_per_10ms_frame), force_sid, encoded); @@ -279,7 +279,7 @@ for (size_t i = 0; i < frames_to_encode; ++i) { info = speech_encoder_->Encode( rtp_timestamps_.front(), - ArrayView<const int16_t>(&speech_buffer_[i * samples_per_10ms_frame], + std::span<const int16_t>(&speech_buffer_[i * samples_per_10ms_frame], samples_per_10ms_frame), encoded); if (i + 1 == frames_to_encode) {
diff --git a/modules/audio_coding/codecs/cng/audio_encoder_cng_unittest.cc b/modules/audio_coding/codecs/cng/audio_encoder_cng_unittest.cc index 720e236..81642e2 100644 --- a/modules/audio_coding/codecs/cng/audio_encoder_cng_unittest.cc +++ b/modules/audio_coding/codecs/cng/audio_encoder_cng_unittest.cc
@@ -15,9 +15,9 @@ #include <cstring> #include <memory> #include <optional> +#include <span> #include <utility> -#include "api/array_view.h" #include "api/audio_codecs/audio_encoder.h" #include "api/units/time_delta.h" #include "common_audio/vad/include/vad.h" @@ -98,7 +98,7 @@ void Encode() { ASSERT_TRUE(cng_) << "Must call CreateCng() first."; encoded_info_ = cng_->Encode( - timestamp_, ArrayView<const int16_t>(audio_, num_audio_samples_10ms_), + timestamp_, std::span<const int16_t>(audio_, num_audio_samples_10ms_), &encoded_); timestamp_ += static_cast<uint32_t>(num_audio_samples_10ms_); }
diff --git a/modules/audio_coding/codecs/cng/cng_unittest.cc b/modules/audio_coding/codecs/cng/cng_unittest.cc index 309e2b6..d6a1305 100644 --- a/modules/audio_coding/codecs/cng/cng_unittest.cc +++ b/modules/audio_coding/codecs/cng/cng_unittest.cc
@@ -10,9 +10,9 @@ #include <cstddef> #include <cstdint> #include <cstdio> +#include <span> #include <string> -#include "api/array_view.h" #include "modules/audio_coding/codecs/cng/webrtc_cng.h" #include "rtc_base/buffer.h" #include "rtc_base/checks.h" @@ -66,11 +66,11 @@ ComfortNoiseEncoder cng_encoder(sample_rate_hz, kSidNormalIntervalUpdate, quality); EXPECT_EQ(0U, cng_encoder.Encode( - ArrayView<const int16_t>(speech_data_, num_samples_10ms), + std::span<const int16_t>(speech_data_, num_samples_10ms), kNoSid, &sid_data)); EXPECT_EQ(static_cast<size_t>(quality + 1), cng_encoder.Encode( - ArrayView<const int16_t>(speech_data_, num_samples_10ms), + std::span<const int16_t>(speech_data_, num_samples_10ms), kForceSid, &sid_data)); } @@ -100,7 +100,7 @@ ComfortNoiseEncoder cng_encoder(8000, kSidNormalIntervalUpdate, kCNGNumParamsNormal); // Run encoder with too much data. - EXPECT_DEATH(cng_encoder.Encode(ArrayView<const int16_t>(speech_data_, 641), + EXPECT_DEATH(cng_encoder.Encode(std::span<const int16_t>(speech_data_, 641), kNoSid, &sid_data), ""); } @@ -137,7 +137,7 @@ // Run normal Encode and UpdateSid. EXPECT_EQ(kCNGNumParamsNormal + 1, - cng_encoder.Encode(ArrayView<const int16_t>(speech_data_, 160), + cng_encoder.Encode(std::span<const int16_t>(speech_data_, 160), kForceSid, &sid_data)); cng_decoder.UpdateSid(sid_data); @@ -146,14 +146,14 @@ cng_decoder.Reset(); // Expect 0 because of unstable parameters after switching length. - EXPECT_EQ(0U, cng_encoder.Encode(ArrayView<const int16_t>(speech_data_, 160), + EXPECT_EQ(0U, cng_encoder.Encode(std::span<const int16_t>(speech_data_, 160), kForceSid, &sid_data)); EXPECT_EQ( kCNGNumParamsHigh + 1, - cng_encoder.Encode(ArrayView<const int16_t>(speech_data_ + 160, 160), + cng_encoder.Encode(std::span<const int16_t>(speech_data_ + 160, 160), kForceSid, &sid_data)); cng_decoder.UpdateSid( - ArrayView<const uint8_t>(sid_data.data(), kCNGNumParamsNormal + 1)); + std::span<const uint8_t>(sid_data.data(), kCNGNumParamsNormal + 1)); } // Update SID parameters, with wrong parameters or without calling decode. @@ -165,7 +165,7 @@ kCNGNumParamsNormal); ComfortNoiseDecoder cng_decoder; EXPECT_EQ(kCNGNumParamsNormal + 1, - cng_encoder.Encode(ArrayView<const int16_t>(speech_data_, 160), + cng_encoder.Encode(std::span<const int16_t>(speech_data_, 160), kForceSid, &sid_data)); // First run with valid parameters, then with too many CNG parameters. @@ -193,18 +193,18 @@ // Normal Encode. EXPECT_EQ(kCNGNumParamsNormal + 1, - cng_encoder.Encode(ArrayView<const int16_t>(speech_data_, 160), + cng_encoder.Encode(std::span<const int16_t>(speech_data_, 160), kForceSid, &sid_data)); // Normal UpdateSid. cng_decoder.UpdateSid(sid_data); // Two normal Generate, one with new_period. - EXPECT_TRUE(cng_decoder.Generate(ArrayView<int16_t>(out_data, 640), 1)); - EXPECT_TRUE(cng_decoder.Generate(ArrayView<int16_t>(out_data, 640), 0)); + EXPECT_TRUE(cng_decoder.Generate(std::span<int16_t>(out_data, 640), 1)); + EXPECT_TRUE(cng_decoder.Generate(std::span<int16_t>(out_data, 640), 0)); // Call Genereate with too much data. - EXPECT_FALSE(cng_decoder.Generate(ArrayView<int16_t>(out_data, 641), 0)); + EXPECT_FALSE(cng_decoder.Generate(std::span<int16_t>(out_data, 641), 0)); } // Test automatic SID. @@ -219,13 +219,13 @@ // Normal Encode, 100 msec, where no SID data should be generated. for (int i = 0; i < 10; i++) { EXPECT_EQ(0U, - cng_encoder.Encode(ArrayView<const int16_t>(speech_data_, 160), + cng_encoder.Encode(std::span<const int16_t>(speech_data_, 160), kNoSid, &sid_data)); } // We have reached 100 msec, and SID data should be generated. EXPECT_EQ(kCNGNumParamsNormal + 1, - cng_encoder.Encode(ArrayView<const int16_t>(speech_data_, 160), + cng_encoder.Encode(std::span<const int16_t>(speech_data_, 160), kNoSid, &sid_data)); } @@ -239,13 +239,13 @@ ComfortNoiseDecoder cng_decoder; // First call will never generate SID, unless forced to. - EXPECT_EQ(0U, cng_encoder.Encode(ArrayView<const int16_t>(speech_data_, 160), + EXPECT_EQ(0U, cng_encoder.Encode(std::span<const int16_t>(speech_data_, 160), kNoSid, &sid_data)); // Normal Encode, 100 msec, SID data should be generated all the time. for (int i = 0; i < 10; i++) { EXPECT_EQ(kCNGNumParamsNormal + 1, - cng_encoder.Encode(ArrayView<const int16_t>(speech_data_, 160), + cng_encoder.Encode(std::span<const int16_t>(speech_data_, 160), kNoSid, &sid_data)); } }
diff --git a/modules/audio_coding/codecs/cng/webrtc_cng.cc b/modules/audio_coding/codecs/cng/webrtc_cng.cc index 5961cb0..f729bae 100644 --- a/modules/audio_coding/codecs/cng/webrtc_cng.cc +++ b/modules/audio_coding/codecs/cng/webrtc_cng.cc
@@ -13,8 +13,8 @@ #include <algorithm> #include <cstddef> #include <cstdint> +#include <span> -#include "api/array_view.h" #include "common_audio/signal_processing/include/signal_processing_library.h" #include "rtc_base/buffer.h" #include "rtc_base/checks.h" @@ -75,7 +75,7 @@ dec_used_scale_factor_ = 0; } -void ComfortNoiseDecoder::UpdateSid(ArrayView<const uint8_t> sid) { +void ComfortNoiseDecoder::UpdateSid(std::span<const uint8_t> sid) { int16_t refCs[WEBRTC_CNG_MAX_LPC_ORDER]; int32_t targetEnergy; size_t length = sid.size(); @@ -112,7 +112,7 @@ } } -bool ComfortNoiseDecoder::Generate(ArrayView<int16_t> out_data, +bool ComfortNoiseDecoder::Generate(std::span<int16_t> out_data, bool new_period) { int16_t excitation[kCngMaxOutsizeOrder]; int16_t low[kCngMaxOutsizeOrder]; @@ -236,7 +236,7 @@ enc_seed_ = 7777; /* For debugging only. */ } -size_t ComfortNoiseEncoder::Encode(ArrayView<const int16_t> speech, +size_t ComfortNoiseEncoder::Encode(std::span<const int16_t> speech, bool force_sid, Buffer* output) { int16_t arCoefs[WEBRTC_CNG_MAX_LPC_ORDER + 1]; @@ -367,7 +367,7 @@ index = 94; const size_t output_coefs = enc_nrOfCoefs_ + 1; - output->AppendData(output_coefs, [&](ArrayView<uint8_t> output) { + output->AppendData(output_coefs, [&](std::span<uint8_t> output) { output[0] = (uint8_t)index; /* Quantize coefficients with tweak for WebRtc implementation of
diff --git a/modules/audio_coding/codecs/cng/webrtc_cng.h b/modules/audio_coding/codecs/cng/webrtc_cng.h index 738f60a..4a12612 100644 --- a/modules/audio_coding/codecs/cng/webrtc_cng.h +++ b/modules/audio_coding/codecs/cng/webrtc_cng.h
@@ -14,8 +14,8 @@ #include <stdint.h> #include <cstddef> +#include <span> -#include "api/array_view.h" #include "rtc_base/buffer.h" #define WEBRTC_CNG_MAX_LPC_ORDER 12 @@ -34,7 +34,7 @@ // Updates the CN state when a new SID packet arrives. // `sid` is a view of the SID packet without the headers. - void UpdateSid(ArrayView<const uint8_t> sid); + void UpdateSid(std::span<const uint8_t> sid); // Generates comfort noise. // `out_data` will be filled with samples - its size determines the number of @@ -43,7 +43,7 @@ // currently 640 bytes (equalling 10ms at 64kHz). // TODO(ossu): Specify better limits for the size of out_data. Either let it // be unbounded or limit to 10ms in the current sample rate. - bool Generate(ArrayView<int16_t> out_data, bool new_period); + bool Generate(std::span<int16_t> out_data, bool new_period); private: uint32_t dec_seed_; @@ -79,7 +79,7 @@ // true, a SID frame is forced and the internal sid interval counter is reset. // Will fail if the input size is too large (> 640 samples, see // ComfortNoiseDecoder::Generate). - size_t Encode(ArrayView<const int16_t> speech, + size_t Encode(std::span<const int16_t> speech, bool force_sid, Buffer* output);
diff --git a/modules/audio_coding/codecs/g711/audio_encoder_pcm.cc b/modules/audio_coding/codecs/g711/audio_encoder_pcm.cc index 281be59..eaaa9b6 100644 --- a/modules/audio_coding/codecs/g711/audio_encoder_pcm.cc +++ b/modules/audio_coding/codecs/g711/audio_encoder_pcm.cc
@@ -13,9 +13,9 @@ #include <cstddef> #include <cstdint> #include <optional> +#include <span> #include <utility> -#include "api/array_view.h" #include "api/audio_codecs/audio_encoder.h" #include "api/units/time_delta.h" #include "modules/audio_coding/codecs/g711/g711_interface.h" @@ -69,7 +69,7 @@ AudioEncoder::EncodedInfo AudioEncoderPcm::EncodeImpl( uint32_t rtp_timestamp, - ArrayView<const int16_t> audio, + std::span<const int16_t> audio, Buffer* encoded) { if (speech_buffer_.empty()) { first_timestamp_in_buffer_ = rtp_timestamp; @@ -83,7 +83,7 @@ info.encoded_timestamp = first_timestamp_in_buffer_; info.payload_type = payload_type_; info.encoded_bytes = encoded->AppendData( - full_frame_samples_ * BytesPerSample(), [&](ArrayView<uint8_t> encoded) { + full_frame_samples_ * BytesPerSample(), [&](std::span<uint8_t> encoded) { return EncodeCall(&speech_buffer_[0], full_frame_samples_, encoded.data()); });
diff --git a/modules/audio_coding/codecs/g711/audio_encoder_pcm.h b/modules/audio_coding/codecs/g711/audio_encoder_pcm.h index 0d56e58..1ba2e1f 100644 --- a/modules/audio_coding/codecs/g711/audio_encoder_pcm.h +++ b/modules/audio_coding/codecs/g711/audio_encoder_pcm.h
@@ -14,10 +14,10 @@ #include <cstddef> #include <cstdint> #include <optional> +#include <span> #include <utility> #include <vector> -#include "api/array_view.h" #include "api/audio_codecs/audio_encoder.h" #include "api/units/time_delta.h" #include "rtc_base/buffer.h" @@ -54,7 +54,7 @@ AudioEncoderPcm(const Config& config, int sample_rate_hz); EncodedInfo EncodeImpl(uint32_t rtp_timestamp, - ArrayView<const int16_t> audio, + std::span<const int16_t> audio, Buffer* encoded) override; virtual size_t EncodeCall(const int16_t* audio,
diff --git a/modules/audio_coding/codecs/g722/audio_encoder_g722.cc b/modules/audio_coding/codecs/g722/audio_encoder_g722.cc index 45ffeff..36c8440 100644 --- a/modules/audio_coding/codecs/g722/audio_encoder_g722.cc +++ b/modules/audio_coding/codecs/g722/audio_encoder_g722.cc
@@ -13,9 +13,9 @@ #include <cstddef> #include <cstdint> #include <optional> +#include <span> #include <utility> -#include "api/array_view.h" #include "api/audio_codecs/audio_encoder.h" #include "api/audio_codecs/g722/audio_encoder_g722_config.h" #include "api/units/time_delta.h" @@ -94,7 +94,7 @@ AudioEncoder::EncodedInfo AudioEncoderG722Impl::EncodeImpl( uint32_t rtp_timestamp, - ArrayView<const int16_t> audio, + std::span<const int16_t> audio, Buffer* encoded) { if (num_10ms_frames_buffered_ == 0) first_timestamp_in_buffer_ = rtp_timestamp; @@ -124,7 +124,7 @@ const size_t bytes_to_encode = samples_per_channel / 2 * num_channels_; EncodedInfo info; info.encoded_bytes = - encoded->AppendData(bytes_to_encode, [&](ArrayView<uint8_t> encoded) { + encoded->AppendData(bytes_to_encode, [&](std::span<uint8_t> encoded) { // Interleave the encoded bytes of the different channels. Each separate // channel and the interleaved stream encodes two samples per byte, most // significant half first.
diff --git a/modules/audio_coding/codecs/g722/audio_encoder_g722.h b/modules/audio_coding/codecs/g722/audio_encoder_g722.h index c794202..97e5cfa 100644 --- a/modules/audio_coding/codecs/g722/audio_encoder_g722.h +++ b/modules/audio_coding/codecs/g722/audio_encoder_g722.h
@@ -15,10 +15,10 @@ #include <cstdint> #include <memory> #include <optional> +#include <span> #include <utility> #include <vector> -#include "api/array_view.h" #include "api/audio_codecs/audio_encoder.h" #include "api/audio_codecs/g722/audio_encoder_g722_config.h" #include "api/units/time_delta.h" @@ -47,7 +47,7 @@ protected: EncodedInfo EncodeImpl(uint32_t rtp_timestamp, - ArrayView<const int16_t> audio, + std::span<const int16_t> audio, Buffer* encoded) override; private:
diff --git a/modules/audio_coding/codecs/legacy_encoded_audio_frame.cc b/modules/audio_coding/codecs/legacy_encoded_audio_frame.cc index 8c914ca..cd26ef9 100644 --- a/modules/audio_coding/codecs/legacy_encoded_audio_frame.cc +++ b/modules/audio_coding/codecs/legacy_encoded_audio_frame.cc
@@ -15,10 +15,10 @@ #include <cstdint> #include <memory> #include <optional> +#include <span> #include <utility> #include <vector> -#include "api/array_view.h" #include "api/audio_codecs/audio_decoder.h" #include "rtc_base/buffer.h" #include "rtc_base/checks.h" @@ -37,7 +37,7 @@ } std::optional<AudioDecoder::EncodedAudioFrame::DecodeResult> -LegacyEncodedAudioFrame::Decode(ArrayView<int16_t> decoded) const { +LegacyEncodedAudioFrame::Decode(std::span<int16_t> decoded) const { AudioDecoder::SpeechType speech_type = AudioDecoder::kSpeech; const int ret = decoder_->Decode( payload_.data(), payload_.size(), decoder_->SampleRateHz(),
diff --git a/modules/audio_coding/codecs/legacy_encoded_audio_frame.h b/modules/audio_coding/codecs/legacy_encoded_audio_frame.h index 50349e0..e8353ba 100644 --- a/modules/audio_coding/codecs/legacy_encoded_audio_frame.h +++ b/modules/audio_coding/codecs/legacy_encoded_audio_frame.h
@@ -15,9 +15,9 @@ #include <stdint.h> #include <optional> +#include <span> #include <vector> -#include "api/array_view.h" #include "api/audio_codecs/audio_decoder.h" #include "rtc_base/buffer.h" @@ -37,7 +37,7 @@ size_t Duration() const override; - std::optional<DecodeResult> Decode(ArrayView<int16_t> decoded) const override; + std::optional<DecodeResult> Decode(std::span<int16_t> decoded) const override; // For testing: const Buffer& payload() const { return payload_; }
diff --git a/modules/audio_coding/codecs/legacy_encoded_audio_frame_unittest.cc b/modules/audio_coding/codecs/legacy_encoded_audio_frame_unittest.cc index e6bd7cf..a9be6de 100644 --- a/modules/audio_coding/codecs/legacy_encoded_audio_frame_unittest.cc +++ b/modules/audio_coding/codecs/legacy_encoded_audio_frame_unittest.cc
@@ -12,8 +12,8 @@ #include <cstddef> #include <cstdint> +#include <span> -#include "api/array_view.h" #include "rtc_base/buffer.h" #include "rtc_base/checks.h" #include "rtc_base/numerics/safe_conversions.h" @@ -133,7 +133,7 @@ // sample was missed or repeated. const auto generate_payload = [](size_t num_bytes) { Buffer payload = Buffer::CreateWithCapacity(num_bytes); - payload.AppendData(num_bytes, [](ArrayView<uint8_t> payload_view) { + payload.AppendData(num_bytes, [](std::span<uint8_t> payload_view) { uint8_t value = 0; // Allow wrap-around of value in counter below. for (size_t i = 0; i != payload_view.size(); ++i, ++value) {
diff --git a/modules/audio_coding/codecs/opus/audio_coder_opus_common.h b/modules/audio_coding/codecs/opus/audio_coder_opus_common.h index 011abfb..4d98cae 100644 --- a/modules/audio_coding/codecs/opus/audio_coder_opus_common.h +++ b/modules/audio_coding/codecs/opus/audio_coder_opus_common.h
@@ -14,12 +14,12 @@ #include <cstddef> #include <cstdint> #include <optional> +#include <span> #include <string> #include <utility> #include <vector> #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/audio_codecs/audio_decoder.h" #include "api/audio_codecs/audio_format.h" #include "rtc_base/buffer.h" @@ -61,7 +61,7 @@ bool IsDtxPacket() const override { return payload_.size() <= 2; } std::optional<DecodeResult> Decode( - ArrayView<int16_t> decoded) const override { + std::span<int16_t> decoded) const override { AudioDecoder::SpeechType speech_type = AudioDecoder::kSpeech; int ret; if (is_primary_payload_) {
diff --git a/modules/audio_coding/codecs/opus/audio_decoder_opus.cc b/modules/audio_coding/codecs/opus/audio_decoder_opus.cc index c4fb057..203969f 100644 --- a/modules/audio_coding/codecs/opus/audio_decoder_opus.cc +++ b/modules/audio_coding/codecs/opus/audio_decoder_opus.cc
@@ -13,10 +13,10 @@ #include <cstddef> #include <cstdint> #include <memory> +#include <span> #include <utility> #include <vector> -#include "api/array_view.h" #include "api/audio_codecs/audio_decoder.h" #include "api/field_trials_view.h" #include "modules/audio_coding/codecs/opus/audio_coder_opus_common.h" @@ -141,7 +141,7 @@ return; } int plc_size = WebRtcOpus_PlcDuration(dec_state_) * channels_; - concealment_audio->AppendData(plc_size, [&](ArrayView<int16_t> decoded) { + concealment_audio->AppendData(plc_size, [&](std::span<int16_t> decoded) { int16_t temp_type = 1; int ret = WebRtcOpus_Decode(dec_state_, nullptr, 0, decoded.data(), &temp_type);
diff --git a/modules/audio_coding/codecs/opus/audio_decoder_opus_unittest.cc b/modules/audio_coding/codecs/opus/audio_decoder_opus_unittest.cc index fb13f8a..b4d5df5 100644 --- a/modules/audio_coding/codecs/opus/audio_decoder_opus_unittest.cc +++ b/modules/audio_coding/codecs/opus/audio_decoder_opus_unittest.cc
@@ -16,10 +16,10 @@ #include <cstdint> #include <limits> #include <optional> +#include <span> #include <utility> #include <vector> -#include "api/array_view.h" #include "api/audio/audio_frame.h" #include "api/audio_codecs/audio_decoder.h" #include "api/audio_codecs/audio_encoder.h" @@ -82,7 +82,7 @@ std::numeric_limits<int16_t>::max())), random_generator_(42) {} - void GenerateNextFrame(ArrayView<int16_t> frame) { + void GenerateNextFrame(std::span<int16_t> frame) { for (size_t i = 0; i < frame.size(); ++i) { frame[i] = saturated_cast<int16_t>( random_generator_.Rand(-amplitude_, amplitude_)); @@ -94,7 +94,7 @@ Random random_generator_; }; -bool IsZeroedFrame(ArrayView<const int16_t> audio) { +bool IsZeroedFrame(std::span<const int16_t> audio) { for (const int16_t& v : audio) { if (v != 0) return false; @@ -102,7 +102,7 @@ return true; } -bool IsTrivialStereo(ArrayView<const int16_t> audio) { +bool IsTrivialStereo(std::span<const int16_t> audio) { const int num_samples = CheckedDivExact(audio.size(), static_cast<size_t>(2)); for (int i = 0, j = 0; i < num_samples; ++i, j += 2) { if (audio[j] != audio[j + 1]) { @@ -313,7 +313,7 @@ ASSERT_EQ(speech_type, AudioDecoder::SpeechType::kComfortNoise); RTC_CHECK_GT(num_decoded_samples, 0); RTC_CHECK_LE(num_decoded_samples, decoded_frame.size()); - ArrayView<const int16_t> decoded_view(decoded_frame.data(), + std::span<const int16_t> decoded_view(decoded_frame.data(), num_decoded_samples); // Make sure that comfort noise is not a muted frame. ASSERT_FALSE(IsZeroedFrame(decoded_view)); @@ -352,7 +352,7 @@ decoder.GeneratePlc(/*requested_samples_per_channel=*/kIgnored, &concealment_audio); RTC_CHECK_GT(concealment_audio.size(), 0); - ArrayView<const int16_t> decoded_view(concealment_audio.data(), + std::span<const int16_t> decoded_view(concealment_audio.data(), concealment_audio.size()); // Make sure that packet loss concealment is not a muted frame. ASSERT_FALSE(IsZeroedFrame(decoded_view)); @@ -450,7 +450,7 @@ ASSERT_EQ(speech_type, AudioDecoder::SpeechType::kComfortNoise); RTC_CHECK_GT(num_decoded_samples, 0); RTC_CHECK_LE(num_decoded_samples, decoded_frame.size()); - ArrayView<const int16_t> decoded_view(decoded_frame.data(), + std::span<const int16_t> decoded_view(decoded_frame.data(), num_decoded_samples); // Make sure that comfort noise is not a muted frame. ASSERT_FALSE(IsZeroedFrame(decoded_view)); @@ -484,7 +484,7 @@ decoder.GeneratePlc(/*requested_samples_per_channel=*/kIgnored, &concealment_audio); RTC_CHECK_GT(concealment_audio.size(), 0); - ArrayView<const int16_t> decoded_view(concealment_audio.data(), + std::span<const int16_t> decoded_view(concealment_audio.data(), concealment_audio.size()); // Make sure that packet loss concealment is not a muted frame. ASSERT_FALSE(IsZeroedFrame(decoded_view));
diff --git a/modules/audio_coding/codecs/opus/audio_encoder_multi_channel_opus_impl.cc b/modules/audio_coding/codecs/opus/audio_encoder_multi_channel_opus_impl.cc index be55406..646cd9f 100644 --- a/modules/audio_coding/codecs/opus/audio_encoder_multi_channel_opus_impl.cc +++ b/modules/audio_coding/codecs/opus/audio_encoder_multi_channel_opus_impl.cc
@@ -25,12 +25,12 @@ #include <iterator> #include <memory> #include <optional> +#include <span> #include <string> #include <utility> #include <vector> #include "absl/strings/match.h" -#include "api/array_view.h" #include "api/audio_codecs/audio_encoder.h" #include "api/audio_codecs/audio_format.h" #include "api/audio_codecs/opus/audio_encoder_multi_channel_opus_config.h" @@ -339,7 +339,7 @@ AudioEncoder::EncodedInfo AudioEncoderMultiChannelOpusImpl::EncodeImpl( uint32_t rtp_timestamp, - ArrayView<const int16_t> audio, + std::span<const int16_t> audio, Buffer* encoded) { if (input_buffer_.empty()) first_timestamp_in_buffer_ = rtp_timestamp; @@ -355,7 +355,7 @@ const size_t max_encoded_bytes = SufficientOutputBufferSize(); EncodedInfo info; info.encoded_bytes = - encoded->AppendData(max_encoded_bytes, [&](ArrayView<uint8_t> encoded) { + encoded->AppendData(max_encoded_bytes, [&](std::span<uint8_t> encoded) { int status = WebRtcOpus_Encode( inst_, &input_buffer_[0], CheckedDivExact(input_buffer_.size(), config_.num_channels),
diff --git a/modules/audio_coding/codecs/opus/audio_encoder_multi_channel_opus_impl.h b/modules/audio_coding/codecs/opus/audio_encoder_multi_channel_opus_impl.h index ccf05a8..b86fedc 100644 --- a/modules/audio_coding/codecs/opus/audio_encoder_multi_channel_opus_impl.h +++ b/modules/audio_coding/codecs/opus/audio_encoder_multi_channel_opus_impl.h
@@ -16,10 +16,10 @@ #include <memory> #include <optional> +#include <span> #include <utility> #include <vector> -#include "api/array_view.h" #include "api/audio_codecs/audio_encoder.h" #include "api/audio_codecs/audio_format.h" #include "api/audio_codecs/opus/audio_encoder_multi_channel_opus_config.h" @@ -59,7 +59,7 @@ protected: EncodedInfo EncodeImpl(uint32_t rtp_timestamp, - ArrayView<const int16_t> audio, + std::span<const int16_t> audio, Buffer* encoded) override; private:
diff --git a/modules/audio_coding/codecs/opus/audio_encoder_opus.cc b/modules/audio_coding/codecs/opus/audio_encoder_opus.cc index a8e1bff..451fe8b 100644 --- a/modules/audio_coding/codecs/opus/audio_encoder_opus.cc +++ b/modules/audio_coding/codecs/opus/audio_encoder_opus.cc
@@ -17,6 +17,7 @@ #include <iterator> #include <memory> #include <optional> +#include <span> #include <string> #include <utility> #include <vector> @@ -24,7 +25,6 @@ #include "absl/memory/memory.h" #include "absl/strings/match.h" #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/audio_codecs/audio_encoder.h" #include "api/audio_codecs/audio_format.h" #include "api/audio_codecs/opus/audio_encoder_opus_config.h" @@ -583,7 +583,7 @@ AudioEncoder::EncodedInfo AudioEncoderOpusImpl::EncodeImpl( uint32_t rtp_timestamp, - ArrayView<const int16_t> audio, + std::span<const int16_t> audio, Buffer* encoded) { MaybeUpdateUplinkBandwidth(); @@ -601,7 +601,7 @@ const size_t max_encoded_bytes = SufficientOutputBufferSize(); EncodedInfo info; info.encoded_bytes = - encoded->AppendData(max_encoded_bytes, [&](ArrayView<uint8_t> encoded) { + encoded->AppendData(max_encoded_bytes, [&](std::span<uint8_t> encoded) { int status = WebRtcOpus_Encode( inst_, &input_buffer_[0], CheckedDivExact(input_buffer_.size(), config_.num_channels),
diff --git a/modules/audio_coding/codecs/opus/audio_encoder_opus.h b/modules/audio_coding/codecs/opus/audio_encoder_opus.h index 5b873d9..6900e0e 100644 --- a/modules/audio_coding/codecs/opus/audio_encoder_opus.h +++ b/modules/audio_coding/codecs/opus/audio_encoder_opus.h
@@ -16,11 +16,11 @@ #include <functional> #include <memory> #include <optional> +#include <span> #include <utility> #include <vector> #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/audio_codecs/audio_encoder.h" #include "api/audio_codecs/audio_format.h" #include "api/audio_codecs/opus/audio_encoder_opus_config.h" @@ -102,7 +102,7 @@ ANAStats GetANAStats() const override; std::optional<std::pair<TimeDelta, TimeDelta> > GetFrameLengthRange() const override; - ArrayView<const int> supported_frame_lengths_ms() const { + std::span<const int> supported_frame_lengths_ms() const { return config_.supported_frame_lengths_ms; } @@ -117,7 +117,7 @@ protected: EncodedInfo EncodeImpl(uint32_t rtp_timestamp, - ArrayView<const int16_t> audio, + std::span<const int16_t> audio, Buffer* encoded) override; private:
diff --git a/modules/audio_coding/codecs/opus/audio_encoder_opus_unittest.cc b/modules/audio_coding/codecs/opus/audio_encoder_opus_unittest.cc index 1fcf7a7..f9ead46 100644 --- a/modules/audio_coding/codecs/opus/audio_encoder_opus_unittest.cc +++ b/modules/audio_coding/codecs/opus/audio_encoder_opus_unittest.cc
@@ -14,12 +14,12 @@ #include <cstdint> #include <memory> #include <optional> +#include <span> #include <string> #include <utility> #include <vector> #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/audio_codecs/audio_encoder.h" #include "api/audio_codecs/audio_format.h" #include "api/audio_codecs/opus/audio_encoder_opus_config.h" @@ -512,7 +512,7 @@ .WillOnce(Return(50000)); EXPECT_CALL(*states->mock_audio_network_adaptor, SetUplinkBandwidth(50000)); states->encoder->Encode( - 0, ArrayView<const int16_t>(audio.data(), audio.size()), &encoded); + 0, std::span<const int16_t>(audio.data(), audio.size()), &encoded); // Repeat update uplink bandwidth tests. for (int i = 0; i < 5; i++) { @@ -520,7 +520,7 @@ states->fake_clock->AdvanceTime( TimeDelta::Millis(states->uplink_bandwidth_update_interval_ms - 1)); states->encoder->Encode( - 0, ArrayView<const int16_t>(audio.data(), audio.size()), &encoded); + 0, std::span<const int16_t>(audio.data(), audio.size()), &encoded); // Update when it is time to update. EXPECT_CALL(*states->mock_bitrate_smoother, GetAverage) @@ -528,7 +528,7 @@ EXPECT_CALL(*states->mock_audio_network_adaptor, SetUplinkBandwidth(40000)); states->fake_clock->AdvanceTime(TimeDelta::Millis(1)); states->encoder->Encode( - 0, ArrayView<const int16_t>(audio.data(), audio.size()), &encoded); + 0, std::span<const int16_t>(audio.data(), audio.size()), &encoded); } }
diff --git a/modules/audio_coding/codecs/opus/opus_unittest.cc b/modules/audio_coding/codecs/opus/opus_unittest.cc index 3d86918..298049a 100644 --- a/modules/audio_coding/codecs/opus/opus_unittest.cc +++ b/modules/audio_coding/codecs/opus/opus_unittest.cc
@@ -16,11 +16,11 @@ #include <cstdlib> #include <map> #include <memory> +#include <span> #include <string> #include <tuple> #include <vector> -#include "api/array_view.h" #include "modules/audio_coding/codecs/opus/opus_interface.h" #include "modules/audio_coding/neteq/tools/audio_loop.h" #include "rtc_base/checks.h" @@ -131,7 +131,7 @@ void PrepareSpeechData(int block_length_ms, int loop_length_ms); int EncodeDecode(WebRtcOpusEncInst* encoder, - ArrayView<const int16_t> input_audio, + std::span<const int16_t> input_audio, WebRtcOpusDecInst* decoder, int16_t* output_audio, int16_t* audio_type); @@ -217,7 +217,7 @@ } int OpusTest::EncodeDecode(WebRtcOpusEncInst* encoder, - ArrayView<const int16_t> input_audio, + std::span<const int16_t> input_audio, WebRtcOpusDecInst* decoder, int16_t* output_audio, int16_t* audio_type) {
diff --git a/modules/audio_coding/codecs/red/audio_encoder_copy_red.cc b/modules/audio_coding/codecs/red/audio_encoder_copy_red.cc index b77f891..b62d5f2 100644 --- a/modules/audio_coding/codecs/red/audio_encoder_copy_red.cc +++ b/modules/audio_coding/codecs/red/audio_encoder_copy_red.cc
@@ -16,12 +16,12 @@ #include <iterator> #include <memory> #include <optional> +#include <span> #include <string> #include <utility> #include <vector> #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/audio_codecs/audio_encoder.h" #include "api/call/bitrate_allocation.h" #include "api/field_trials_view.h" @@ -106,7 +106,7 @@ AudioEncoder::EncodedInfo AudioEncoderCopyRed::EncodeImpl( uint32_t rtp_timestamp, - ArrayView<const int16_t> audio, + std::span<const int16_t> audio, Buffer* encoded) { primary_encoded_.Clear(); EncodedInfo info = @@ -160,7 +160,7 @@ const uint32_t timestamp_delta = info.encoded_timestamp - it->first.encoded_timestamp; encoded->data()[header_offset] = it->first.payload_type | 0x80; - SetBE16(ArrayView<uint8_t>(*encoded).subspan(header_offset + 1, 2), + SetBE16(std::span<uint8_t>(*encoded).subspan(header_offset + 1, 2), (timestamp_delta << 2) | (it->first.encoded_bytes >> 8)); encoded->data()[header_offset + 3] = it->first.encoded_bytes & 0xff; header_offset += kRedHeaderLength; @@ -282,9 +282,9 @@ return speech_encoder_->GetANAStats(); } -ArrayView<std::unique_ptr<AudioEncoder>> +std::span<std::unique_ptr<AudioEncoder>> AudioEncoderCopyRed::ReclaimContainedEncoders() { - return ArrayView<std::unique_ptr<AudioEncoder>>(&speech_encoder_, 1); + return std::span<std::unique_ptr<AudioEncoder>>(&speech_encoder_, 1); } } // namespace webrtc
diff --git a/modules/audio_coding/codecs/red/audio_encoder_copy_red.h b/modules/audio_coding/codecs/red/audio_encoder_copy_red.h index 7d14780..070a242 100644 --- a/modules/audio_coding/codecs/red/audio_encoder_copy_red.h +++ b/modules/audio_coding/codecs/red/audio_encoder_copy_red.h
@@ -17,10 +17,10 @@ #include <list> #include <memory> #include <optional> +#include <span> #include <utility> #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/audio_codecs/audio_encoder.h" #include "api/call/bitrate_allocation.h" #include "api/field_trials_view.h" @@ -81,11 +81,11 @@ ANAStats GetANAStats() const override; std::optional<std::pair<TimeDelta, TimeDelta>> GetFrameLengthRange() const override; - ArrayView<std::unique_ptr<AudioEncoder>> ReclaimContainedEncoders() override; + std::span<std::unique_ptr<AudioEncoder>> ReclaimContainedEncoders() override; protected: EncodedInfo EncodeImpl(uint32_t rtp_timestamp, - ArrayView<const int16_t> audio, + std::span<const int16_t> audio, Buffer* encoded) override; private:
diff --git a/modules/audio_coding/codecs/red/audio_encoder_copy_red_unittest.cc b/modules/audio_coding/codecs/red/audio_encoder_copy_red_unittest.cc index b1805f4..c7ac10f 100644 --- a/modules/audio_coding/codecs/red/audio_encoder_copy_red_unittest.cc +++ b/modules/audio_coding/codecs/red/audio_encoder_copy_red_unittest.cc
@@ -15,11 +15,11 @@ #include <cstring> #include <memory> #include <optional> +#include <span> #include <utility> #include <vector> #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/audio_codecs/audio_encoder.h" #include "api/field_trials.h" #include "api/units/time_delta.h" @@ -71,7 +71,7 @@ ASSERT_TRUE(red_.get() != nullptr); encoded_.Clear(); encoded_info_ = red_->Encode( - timestamp_, ArrayView<const int16_t>(audio_, num_audio_samples_10ms), + timestamp_, std::span<const int16_t>(audio_, num_audio_samples_10ms), &encoded_); timestamp_ += checked_cast<uint32_t>(num_audio_samples_10ms); }
diff --git a/modules/audio_coding/neteq/accelerate.cc b/modules/audio_coding/neteq/accelerate.cc index eda4370..38bbdd6 100644 --- a/modules/audio_coding/neteq/accelerate.cc +++ b/modules/audio_coding/neteq/accelerate.cc
@@ -12,8 +12,8 @@ #include <cstddef> #include <cstdint> +#include <span> -#include "api/array_view.h" #include "modules/audio_coding/neteq/audio_multi_vector.h" #include "modules/audio_coding/neteq/time_stretch.h" #include "rtc_base/checks.h" @@ -31,7 +31,7 @@ input_length / num_channels_ < (2 * k15ms - 1) * fs_mult_) { // Length of input data too short to do accelerate. Simply move all data // from input to output. - output->PushBackInterleaved(ArrayView<const int16_t>(input, input_length)); + output->PushBackInterleaved(std::span<const int16_t>(input, input_length)); return kError; } return TimeStretch::Process(input, input_length, fast_accelerate, output, @@ -74,15 +74,15 @@ RTC_DCHECK_GE(fs_mult_120, peak_index); // Should be handled in Process(). // Copy first part; 0 to 15 ms. output->PushBackInterleaved( - ArrayView<const int16_t>(input, fs_mult_120 * num_channels_)); + std::span<const int16_t>(input, fs_mult_120 * num_channels_)); // Copy the `peak_index` starting at 15 ms to `temp_vector`. AudioMultiVector temp_vector(num_channels_); - temp_vector.PushBackInterleaved(ArrayView<const int16_t>( + temp_vector.PushBackInterleaved(std::span<const int16_t>( &input[fs_mult_120 * num_channels_], peak_index * num_channels_)); // Cross-fade `temp_vector` onto the end of `output`. output->CrossFade(temp_vector, peak_index); // Copy the last unmodified part, 15 ms + pitch period until the end. - output->PushBackInterleaved(ArrayView<const int16_t>( + output->PushBackInterleaved(std::span<const int16_t>( &input[(fs_mult_120 + peak_index) * num_channels_], input_length - (fs_mult_120 + peak_index) * num_channels_)); @@ -93,7 +93,7 @@ } } else { // Accelerate not allowed. Simply move all data from decoded to outData. - output->PushBackInterleaved(ArrayView<const int16_t>(input, input_length)); + output->PushBackInterleaved(std::span<const int16_t>(input, input_length)); return kNoStretch; } }
diff --git a/modules/audio_coding/neteq/audio_decoder_unittest.cc b/modules/audio_coding/neteq/audio_decoder_unittest.cc index 34dd592..0503dda 100644 --- a/modules/audio_coding/neteq/audio_decoder_unittest.cc +++ b/modules/audio_coding/neteq/audio_decoder_unittest.cc
@@ -15,11 +15,11 @@ #include <cstdlib> #include <memory> #include <optional> +#include <span> #include <tuple> #include <utility> #include <vector> -#include "api/array_view.h" #include "api/audio_codecs/audio_encoder.h" #include "api/audio_codecs/g722/audio_encoder_g722_config.h" #include "api/audio_codecs/opus/audio_encoder_opus.h" @@ -147,7 +147,7 @@ encoded_info = audio_encoder_->Encode( 0, - ArrayView<const int16_t>(interleaved_input.get(), + std::span<const int16_t>(interleaved_input.get(), audio_encoder_->NumChannels() * audio_encoder_->SampleRateHz() / 100), output); @@ -191,7 +191,7 @@ decoder_->ParsePayload(std::move(encoded), /*timestamp=*/0); RTC_CHECK_EQ(parse_result.size(), size_t{1}); auto decode_result = parse_result[0].frame->Decode( - ArrayView<int16_t>(&decoded[processed_samples * channels_], + std::span<int16_t>(&decoded[processed_samples * channels_], frame_size_ * channels_ * sizeof(int16_t))); RTC_CHECK(decode_result.has_value()); EXPECT_EQ(frame_size_ * channels_, decode_result->num_decoded_samples);
diff --git a/modules/audio_coding/neteq/audio_multi_vector.cc b/modules/audio_coding/neteq/audio_multi_vector.cc index 6ba4bc3..d0d1ddc 100644 --- a/modules/audio_coding/neteq/audio_multi_vector.cc +++ b/modules/audio_coding/neteq/audio_multi_vector.cc
@@ -14,9 +14,9 @@ #include <cstddef> #include <cstdint> #include <memory> +#include <span> #include <vector> -#include "api/array_view.h" #include "api/audio/audio_view.h" #include "modules/audio_coding/neteq/audio_vector.h" #include "rtc_base/checks.h" @@ -67,7 +67,7 @@ } void AudioMultiVector::PushBackInterleaved( - ArrayView<const int16_t> append_this) { + std::span<const int16_t> append_this) { RTC_DCHECK_EQ(append_this.size() % Channels(), 0); if (append_this.empty()) { return;
diff --git a/modules/audio_coding/neteq/audio_multi_vector.h b/modules/audio_coding/neteq/audio_multi_vector.h index 486c13a..12b8f94 100644 --- a/modules/audio_coding/neteq/audio_multi_vector.h +++ b/modules/audio_coding/neteq/audio_multi_vector.h
@@ -15,9 +15,9 @@ #include <string.h> #include <memory> +#include <span> #include <vector> -#include "api/array_view.h" #include "api/audio/audio_view.h" #include "modules/audio_coding/neteq/audio_vector.h" @@ -55,7 +55,7 @@ // is assumed to be channel-interleaved. The length must be an even multiple // of this object's number of channels. The length of this object is increased // with the length of the array divided by the number of channels. - void PushBackInterleaved(ArrayView<const int16_t> append_this); + void PushBackInterleaved(std::span<const int16_t> append_this); // Appends the contents of AudioMultiVector `append_this` to this object. The // length of this object is increased with the length of `append_this`.
diff --git a/modules/audio_coding/neteq/background_noise.cc b/modules/audio_coding/neteq/background_noise.cc index 8c5102c..ce3d343 100644 --- a/modules/audio_coding/neteq/background_noise.cc +++ b/modules/audio_coding/neteq/background_noise.cc
@@ -13,8 +13,8 @@ #include <algorithm> // min, max #include <cstdint> #include <cstring> // memcpy +#include <span> -#include "api/array_view.h" #include "common_audio/signal_processing/dot_product_with_scale.h" #include "common_audio/signal_processing/include/signal_processing_library.h" #include "common_audio/signal_processing/include/spl_inl.h" @@ -119,7 +119,7 @@ } void BackgroundNoise::GenerateBackgroundNoise( - ArrayView<const int16_t> random_vector, + std::span<const int16_t> random_vector, size_t channel, int /* mute_slope */, bool /* too_many_expands */, @@ -194,7 +194,7 @@ } void BackgroundNoise::SetFilterState(size_t channel, - ArrayView<const int16_t> input) { + std::span<const int16_t> input) { RTC_DCHECK_LT(channel, num_channels_); size_t length = std::min(input.size(), kMaxLpcOrder); memcpy(channel_parameters_[channel].filter_state, input.data(),
diff --git a/modules/audio_coding/neteq/background_noise.h b/modules/audio_coding/neteq/background_noise.h index 1a506a1..00b7091 100644 --- a/modules/audio_coding/neteq/background_noise.h +++ b/modules/audio_coding/neteq/background_noise.h
@@ -15,8 +15,7 @@ #include <cstdint> #include <memory> - -#include "api/array_view.h" +#include <span> namespace webrtc { @@ -46,7 +45,7 @@ // Generates background noise given a random vector and writes the output to // `buffer`. - void GenerateBackgroundNoise(ArrayView<const int16_t> random_vector, + void GenerateBackgroundNoise(std::span<const int16_t> random_vector, size_t channel, int mute_slope, bool too_many_expands, @@ -70,7 +69,7 @@ // Copies `input` to the filter state. Will not copy more than `kMaxLpcOrder` // elements. - void SetFilterState(size_t channel, ArrayView<const int16_t> input); + void SetFilterState(size_t channel, std::span<const int16_t> input); // Returns `scale_` for `channel`. int16_t Scale(size_t channel) const;
diff --git a/modules/audio_coding/neteq/comfort_noise.cc b/modules/audio_coding/neteq/comfort_noise.cc index da94881..1b57145 100644 --- a/modules/audio_coding/neteq/comfort_noise.cc +++ b/modules/audio_coding/neteq/comfort_noise.cc
@@ -13,8 +13,8 @@ #include <cstddef> #include <cstdint> #include <memory> +#include <span> -#include "api/array_view.h" #include "modules/audio_coding/codecs/cng/webrtc_cng.h" #include "modules/audio_coding/neteq/audio_multi_vector.h" #include "modules/audio_coding/neteq/audio_vector.h" @@ -67,7 +67,7 @@ } std::unique_ptr<int16_t[]> temp(new int16_t[number_of_samples]); - if (!cng_decoder->Generate(ArrayView<int16_t>(temp.get(), number_of_samples), + if (!cng_decoder->Generate(std::span<int16_t>(temp.get(), number_of_samples), new_period)) { // Error returned. output->Zeros(requested_length);
diff --git a/modules/audio_coding/neteq/merge.cc b/modules/audio_coding/neteq/merge.cc index 8abaff7..ac1f51d 100644 --- a/modules/audio_coding/neteq/merge.cc +++ b/modules/audio_coding/neteq/merge.cc
@@ -15,8 +15,8 @@ #include <cstring> // memmove, memcpy, memset, size_t #include <limits> #include <memory> +#include <span> -#include "api/array_view.h" #include "common_audio/signal_processing/dot_product_with_scale.h" #include "common_audio/signal_processing/include/signal_processing_library.h" #include "common_audio/signal_processing/include/spl_inl.h" @@ -66,7 +66,7 @@ // Transfer input signal to an AudioMultiVector. AudioMultiVector input_vector(num_channels_); input_vector.PushBackInterleaved( - ArrayView<const int16_t>(input, input_length)); + std::span<const int16_t>(input, input_length)); size_t input_length_per_channel = input_vector.Size(); RTC_DCHECK_EQ(input_length_per_channel, input_length / num_channels_);
diff --git a/modules/audio_coding/neteq/neteq_decoder_plc_unittest.cc b/modules/audio_coding/neteq/neteq_decoder_plc_unittest.cc index 632d692..116892a 100644 --- a/modules/audio_coding/neteq/neteq_decoder_plc_unittest.cc +++ b/modules/audio_coding/neteq/neteq_decoder_plc_unittest.cc
@@ -14,11 +14,11 @@ #include <cstdint> #include <memory> #include <optional> +#include <span> #include <string> #include <utility> #include <vector> -#include "api/array_view.h" #include "api/audio_codecs/audio_decoder.h" #include "api/audio_codecs/audio_format.h" #include "api/make_ref_counted.h" @@ -107,9 +107,9 @@ // An input sample generator which generates only zero-samples. class ZeroSampleGenerator : public EncodeNetEqInput::Generator { public: - ArrayView<const int16_t> Generate(size_t num_samples) override { + std::span<const int16_t> Generate(size_t num_samples) override { vec.resize(num_samples, 0); - ArrayView<const int16_t> view(vec); + std::span<const int16_t> view(vec); RTC_DCHECK_EQ(view.size(), num_samples); return view; }
diff --git a/modules/audio_coding/neteq/neteq_impl.cc b/modules/audio_coding/neteq/neteq_impl.cc index f0e9656..8142026 100644 --- a/modules/audio_coding/neteq/neteq_impl.cc +++ b/modules/audio_coding/neteq/neteq_impl.cc
@@ -17,11 +17,11 @@ #include <map> #include <memory> #include <optional> +#include <span> #include <utility> #include <vector> #include "absl/strings/str_cat.h" -#include "api/array_view.h" #include "api/audio/audio_frame.h" #include "api/audio/audio_view.h" #include "api/audio_codecs/audio_decoder.h" @@ -180,7 +180,7 @@ NetEqImpl::~NetEqImpl() = default; int NetEqImpl::InsertPacket(const RTPHeader& rtp_header, - ArrayView<const uint8_t> payload, + std::span<const uint8_t> payload, const RtpPacketInfo& packet_info) { MsanCheckInitialized(payload); TRACE_EVENT0("webrtc", "NetEqImpl::InsertPacket"); @@ -1340,7 +1340,7 @@ operation == Operation::kPreemptiveExpand); auto opt_result = packet_list->front().frame->Decode( - ArrayView<int16_t>(&decoded_buffer_[*decoded_length], + std::span<int16_t>(&decoded_buffer_[*decoded_length], decoded_buffer_length_ - *decoded_length)); if (packet_list->front().packet_info) { last_decoded_packet_infos_.push_back(*packet_list->front().packet_info);
diff --git a/modules/audio_coding/neteq/neteq_impl.h b/modules/audio_coding/neteq/neteq_impl.h index c80ad4f..c02282a 100644 --- a/modules/audio_coding/neteq/neteq_impl.h +++ b/modules/audio_coding/neteq/neteq_impl.h
@@ -16,9 +16,9 @@ #include <map> #include <memory> #include <optional> +#include <span> #include <vector> -#include "api/array_view.h" #include "api/audio/audio_frame.h" #include "api/audio_codecs/audio_decoder.h" #include "api/audio_codecs/audio_decoder_factory.h" @@ -130,7 +130,7 @@ NetEqImpl& operator=(const NetEqImpl&) = delete; int InsertPacket(const RTPHeader& rtp_header, - ArrayView<const uint8_t> payload) override { + std::span<const uint8_t> payload) override { return InsertPacket( rtp_header, payload, RtpPacketInfo(rtp_header, /*receive_time=*/Timestamp::MinusInfinity())); @@ -138,7 +138,7 @@ // Inserts a new packet into NetEq. Returns 0 on success, -1 on failure. int InsertPacket(const RTPHeader& rtp_header, - ArrayView<const uint8_t> payload, + std::span<const uint8_t> payload, const RtpPacketInfo& packet_info) override; int GetAudio(
diff --git a/modules/audio_coding/neteq/neteq_network_stats_unittest.cc b/modules/audio_coding/neteq/neteq_network_stats_unittest.cc index fb0d8e5..79e8df0 100644 --- a/modules/audio_coding/neteq/neteq_network_stats_unittest.cc +++ b/modules/audio_coding/neteq/neteq_network_stats_unittest.cc
@@ -13,10 +13,10 @@ #include <cstring> #include <memory> #include <optional> +#include <span> #include <utility> #include <vector> -#include "api/array_view.h" #include "api/audio/audio_frame.h" #include "api/audio_codecs/audio_decoder.h" #include "api/audio_codecs/audio_decoder_factory.h" @@ -76,7 +76,7 @@ size_t Duration() const override { return kPacketDuration; } std::optional<DecodeResult> Decode( - ArrayView<int16_t> decoded) const override { + std::span<int16_t> decoded) const override { const size_t output_size = sizeof(int16_t) * kPacketDuration * num_channels_; if (decoded.size() >= output_size) {
diff --git a/modules/audio_coding/neteq/neteq_stereo_unittest.cc b/modules/audio_coding/neteq/neteq_stereo_unittest.cc index bdb0cfe..54c81b9 100644 --- a/modules/audio_coding/neteq/neteq_stereo_unittest.cc +++ b/modules/audio_coding/neteq/neteq_stereo_unittest.cc
@@ -17,9 +17,9 @@ #include <list> #include <memory> #include <ostream> +#include <span> #include <string> -#include "api/array_view.h" #include "api/audio/audio_frame.h" #include "api/audio_codecs/audio_format.h" #include "api/audio_codecs/builtin_audio_decoder_factory.h" @@ -178,13 +178,13 @@ ASSERT_EQ(NetEq::kOK, neteq_mono_->InsertPacket( rtp_header_mono_, - ArrayView<const uint8_t>(encoded_, payload_size_bytes_), + std::span<const uint8_t>(encoded_, payload_size_bytes_), Timestamp::Millis(time_now_ms))); // Insert packet in multi-channel instance. ASSERT_EQ(NetEq::kOK, neteq_->InsertPacket( rtp_header_, - ArrayView<const uint8_t>(encoded_multi_channel_, + std::span<const uint8_t>(encoded_multi_channel_, multi_payload_size_bytes_), Timestamp::Millis(time_now_ms))); // Get next input packets (mono and multi-channel).
diff --git a/modules/audio_coding/neteq/neteq_unittest.cc b/modules/audio_coding/neteq/neteq_unittest.cc index 897532f..4a25d56 100644 --- a/modules/audio_coding/neteq/neteq_unittest.cc +++ b/modules/audio_coding/neteq/neteq_unittest.cc
@@ -18,11 +18,11 @@ #include <memory> #include <optional> #include <set> +#include <span> #include <string> #include <utility> #include "absl/flags/flag.h" -#include "api/array_view.h" #include "api/audio/audio_frame.h" #include "api/audio_codecs/builtin_audio_decoder_factory.h" #include "api/rtp_headers.h" @@ -341,7 +341,7 @@ ASSERT_EQ(0, neteq_->InsertPacket( - rtp_info, ArrayView<const uint8_t>(payload, enc_len_bytes), + rtp_info, std::span<const uint8_t>(payload, enc_len_bytes), clock_.CurrentTime())); output.Reset(); ASSERT_EQ(0, neteq_->GetAudio(&output, &muted)); @@ -464,7 +464,7 @@ PopulateCng(seq_no, timestamp, &rtp_info, payload, &payload_len); // This is the first time this CNG packet is inserted. ASSERT_EQ(0, neteq_->InsertPacket( - rtp_info, ArrayView<const uint8_t>(payload, payload_len), + rtp_info, std::span<const uint8_t>(payload, payload_len), clock_.CurrentTime())); // Pull audio once and make sure CNG is played. @@ -479,7 +479,7 @@ // Insert the same CNG packet again. Note that at this point it is old, since // we have already decoded the first copy of it. ASSERT_EQ(0, neteq_->InsertPacket( - rtp_info, ArrayView<const uint8_t>(payload, payload_len), + rtp_info, std::span<const uint8_t>(payload, payload_len), clock_.CurrentTime())); // Pull audio until we have played `kCngPeriodMs` of CNG. Start at 10 ms since @@ -532,7 +532,7 @@ PopulateCng(seq_no, timestamp, &rtp_info, payload, &payload_len); ASSERT_EQ(NetEq::kOK, neteq_->InsertPacket(rtp_info, - ArrayView<const uint8_t>(payload, payload_len), + std::span<const uint8_t>(payload, payload_len), clock_.CurrentTime())); ++seq_no; timestamp += kCngPeriodSamples; @@ -585,7 +585,7 @@ PopulateCng(0, rtp_timestamp, &rtp_info, payload, &payload_len); EXPECT_EQ(NetEq::kOK, neteq_->InsertPacket( - rtp_info, ArrayView<const uint8_t>(payload, payload_len), + rtp_info, std::span<const uint8_t>(payload, payload_len), clock_.CurrentTime())); }
diff --git a/modules/audio_coding/neteq/normal.cc b/modules/audio_coding/neteq/normal.cc index 909e955..117c480 100644 --- a/modules/audio_coding/neteq/normal.cc +++ b/modules/audio_coding/neteq/normal.cc
@@ -14,8 +14,8 @@ #include <cstdint> #include <cstring> // memset, memcpy #include <memory> +#include <span> -#include "api/array_view.h" #include "api/neteq/neteq.h" #include "common_audio/signal_processing/dot_product_with_scale.h" #include "common_audio/signal_processing/include/signal_processing_library.h" @@ -46,7 +46,7 @@ output->Clear(); return 0; } - output->PushBackInterleaved(ArrayView<const int16_t>(input, length)); + output->PushBackInterleaved(std::span<const int16_t>(input, length)); const int fs_mult = fs_hz_ / 8000; RTC_DCHECK_GT(fs_mult, 0);
diff --git a/modules/audio_coding/neteq/packet_buffer_unittest.cc b/modules/audio_coding/neteq/packet_buffer_unittest.cc index 3e34602..5851e4a0 100644 --- a/modules/audio_coding/neteq/packet_buffer_unittest.cc +++ b/modules/audio_coding/neteq/packet_buffer_unittest.cc
@@ -17,10 +17,10 @@ #include <cstdint> #include <memory> #include <optional> +#include <span> #include <utility> #include <vector> -#include "api/array_view.h" #include "api/audio_codecs/audio_decoder.h" #include "api/neteq/tick_timer.h" #include "modules/audio_coding/neteq/mock/mock_decoder_database.h" @@ -47,7 +47,7 @@ MOCK_METHOD(std::optional<DecodeResult>, Decode, - (ArrayView<int16_t> decoded), + (std::span<int16_t> decoded), (const, override)); };
diff --git a/modules/audio_coding/neteq/preemptive_expand.cc b/modules/audio_coding/neteq/preemptive_expand.cc index a183c3d..1e3976e 100644 --- a/modules/audio_coding/neteq/preemptive_expand.cc +++ b/modules/audio_coding/neteq/preemptive_expand.cc
@@ -13,8 +13,8 @@ #include <algorithm> #include <cstddef> #include <cstdint> +#include <span> -#include "api/array_view.h" #include "modules/audio_coding/neteq/audio_multi_vector.h" #include "modules/audio_coding/neteq/time_stretch.h" @@ -35,7 +35,7 @@ old_data_length >= input_length / num_channels_ - overlap_samples_) { // Length of input data too short to do preemptive expand. Simply move all // data from input to output. - output->PushBackInterleaved(ArrayView<const int16_t>(input, input_length)); + output->PushBackInterleaved(std::span<const int16_t>(input, input_length)); return kError; } const bool kFastMode = false; // Fast mode is not available for PE Expand. @@ -79,17 +79,17 @@ size_t unmodified_length = std::max(old_data_length_per_channel_, fs_mult_120); // Copy first part, including cross-fade region. - output->PushBackInterleaved(ArrayView<const int16_t>( + output->PushBackInterleaved(std::span<const int16_t>( input, (unmodified_length + peak_index) * num_channels_)); // Copy the last `peak_index` samples up to 15 ms to `temp_vector`. AudioMultiVector temp_vector(num_channels_); - temp_vector.PushBackInterleaved(ArrayView<const int16_t>( + temp_vector.PushBackInterleaved(std::span<const int16_t>( &input[(unmodified_length - peak_index) * num_channels_], peak_index * num_channels_)); // Cross-fade `temp_vector` onto the end of `output`. output->CrossFade(temp_vector, peak_index); // Copy the last unmodified part, 15 ms + pitch period until the end. - output->PushBackInterleaved(ArrayView<const int16_t>( + output->PushBackInterleaved(std::span<const int16_t>( &input[unmodified_length * num_channels_], input_length - unmodified_length * num_channels_)); @@ -100,7 +100,7 @@ } } else { // Accelerate not allowed. Simply move all data from decoded to outData. - output->PushBackInterleaved(ArrayView<const int16_t>(input, input_length)); + output->PushBackInterleaved(std::span<const int16_t>(input, input_length)); return kNoStretch; } }
diff --git a/modules/audio_coding/neteq/test/neteq_decoding_test.cc b/modules/audio_coding/neteq/test/neteq_decoding_test.cc index f266081..45c3d6f 100644 --- a/modules/audio_coding/neteq/test/neteq_decoding_test.cc +++ b/modules/audio_coding/neteq/test/neteq_decoding_test.cc
@@ -14,10 +14,10 @@ #include <cstdint> #include <optional> #include <set> +#include <span> #include <string> #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/audio/audio_frame.h" #include "api/audio_codecs/audio_format.h" #include "api/audio_codecs/builtin_audio_decoder_factory.h" @@ -320,7 +320,7 @@ RTPHeader rtp_info; PopulateCng(seq_no, timestamp, &rtp_info, payload, &payload_len); ASSERT_EQ(0, neteq_->InsertPacket( - rtp_info, ArrayView<const uint8_t>(payload, payload_len), + rtp_info, std::span<const uint8_t>(payload, payload_len), Timestamp::Millis(t_ms))); ++seq_no; timestamp += kCngPeriodSamples; @@ -363,7 +363,7 @@ RTPHeader rtp_info; PopulateCng(seq_no, timestamp, &rtp_info, payload, &payload_len); ASSERT_EQ(0, neteq_->InsertPacket( - rtp_info, ArrayView<const uint8_t>(payload, payload_len), + rtp_info, std::span<const uint8_t>(payload, payload_len), Timestamp::Millis(t_ms))); ++seq_no; timestamp += kCngPeriodSamples;
diff --git a/modules/audio_coding/neteq/test/neteq_opus_quality_test.cc b/modules/audio_coding/neteq/test/neteq_opus_quality_test.cc index ecf1a21..e1c7e41 100644 --- a/modules/audio_coding/neteq/test/neteq_opus_quality_test.cc +++ b/modules/audio_coding/neteq/test/neteq_opus_quality_test.cc
@@ -11,9 +11,9 @@ #include <cstddef> #include <cstdint> #include <ostream> +#include <span> #include "absl/flags/flag.h" -#include "api/array_view.h" #include "api/audio_codecs/audio_format.h" #include "api/rtp_parameters.h" #include "modules/audio_coding/codecs/opus/opus_inst.h" @@ -161,7 +161,7 @@ int value; opus_repacketizer_init(repacketizer_); for (int idx = 0; idx < sub_packets_; idx++) { - payload->AppendData(max_bytes, [&](ArrayView<uint8_t> payload) { + payload->AppendData(max_bytes, [&](std::span<uint8_t> payload) { value = WebRtcOpus_Encode(opus_encoder_, pointer, sub_block_size_samples_, max_bytes, payload.data());
diff --git a/modules/audio_coding/neteq/test/neteq_pcm16b_quality_test.cc b/modules/audio_coding/neteq/test/neteq_pcm16b_quality_test.cc index d1f6cf7..b709139 100644 --- a/modules/audio_coding/neteq/test/neteq_pcm16b_quality_test.cc +++ b/modules/audio_coding/neteq/test/neteq_pcm16b_quality_test.cc
@@ -11,9 +11,9 @@ #include <cstddef> #include <cstdint> #include <memory> +#include <span> #include "absl/flags/flag.h" -#include "api/array_view.h" #include "api/audio_codecs/audio_encoder.h" #include "api/audio_codecs/audio_format.h" #include "modules/audio_coding/codecs/pcm16b/audio_encoder_pcm16b.h" @@ -67,7 +67,7 @@ AudioEncoder::EncodedInfo info; do { info = encoder_->Encode(dummy_timestamp, - ArrayView<const int16_t>( + std::span<const int16_t>( in_data + encoded_samples, kFrameSizeSamples), payload); encoded_samples += kFrameSizeSamples;
diff --git a/modules/audio_coding/neteq/test/neteq_pcmu_quality_test.cc b/modules/audio_coding/neteq/test/neteq_pcmu_quality_test.cc index a4a624d..b060a92 100644 --- a/modules/audio_coding/neteq/test/neteq_pcmu_quality_test.cc +++ b/modules/audio_coding/neteq/test/neteq_pcmu_quality_test.cc
@@ -11,9 +11,9 @@ #include <cstddef> #include <cstdint> #include <memory> +#include <span> #include "absl/flags/flag.h" -#include "api/array_view.h" #include "api/audio_codecs/audio_encoder.h" #include "api/audio_codecs/audio_format.h" #include "modules/audio_coding/codecs/g711/audio_encoder_pcm.h" @@ -66,7 +66,7 @@ AudioEncoder::EncodedInfo info; do { info = encoder_->Encode(dummy_timestamp, - ArrayView<const int16_t>( + std::span<const int16_t>( in_data + encoded_samples, kFrameSizeSamples), payload); encoded_samples += kFrameSizeSamples;
diff --git a/modules/audio_coding/neteq/tools/audio_checksum.h b/modules/audio_coding/neteq/tools/audio_checksum.h index b7ce149..de1c439 100644 --- a/modules/audio_coding/neteq/tools/audio_checksum.h +++ b/modules/audio_coding/neteq/tools/audio_checksum.h
@@ -14,9 +14,9 @@ #include <cstddef> #include <cstdint> #include <memory> +#include <span> #include <string> -#include "api/array_view.h" #include "modules/audio_coding/neteq/tools/audio_sink.h" #include "rtc_base/buffer.h" #include "rtc_base/message_digest.h" @@ -52,7 +52,7 @@ if (!finished_) { finished_ = true; checksum_result_.AppendData(checksum_->Size(), - [&](ArrayView<uint8_t> view) { + [&](std::span<uint8_t> view) { checksum_->Finish(view.data(), view.size()); return view.size(); });
diff --git a/modules/audio_coding/neteq/tools/audio_loop.cc b/modules/audio_coding/neteq/tools/audio_loop.cc index ba67a66..a7353b3 100644 --- a/modules/audio_coding/neteq/tools/audio_loop.cc +++ b/modules/audio_coding/neteq/tools/audio_loop.cc
@@ -13,10 +13,10 @@ #include <cstdint> #include <cstdio> #include <cstring> +#include <span> #include <string> #include "absl/strings/string_view.h" -#include "api/array_view.h" namespace webrtc { namespace test { @@ -50,14 +50,14 @@ return true; } -ArrayView<const int16_t> AudioLoop::GetNextBlock() { +std::span<const int16_t> AudioLoop::GetNextBlock() { // Check that the AudioLoop is initialized. if (block_length_samples_ == 0) - return ArrayView<const int16_t>(); + return std::span<const int16_t>(); const int16_t* output_ptr = &audio_array_[next_index_]; next_index_ = (next_index_ + block_length_samples_) % loop_length_samples_; - return ArrayView<const int16_t>(output_ptr, block_length_samples_); + return std::span<const int16_t>(output_ptr, block_length_samples_); } } // namespace test
diff --git a/modules/audio_coding/neteq/tools/audio_loop.h b/modules/audio_coding/neteq/tools/audio_loop.h index d5c561d..b00d50a 100644 --- a/modules/audio_coding/neteq/tools/audio_loop.h +++ b/modules/audio_coding/neteq/tools/audio_loop.h
@@ -14,9 +14,9 @@ #include <cstddef> #include <cstdint> #include <memory> +#include <span> #include "absl/strings/string_view.h" -#include "api/array_view.h" namespace webrtc { namespace test { @@ -44,7 +44,7 @@ // Returns a (pointer,size) pair for the next block of audio. The size is // equal to the `block_length_samples` Init() argument. - ArrayView<const int16_t> GetNextBlock(); + std::span<const int16_t> GetNextBlock(); private: size_t next_index_;
diff --git a/modules/audio_coding/neteq/tools/encode_neteq_input.h b/modules/audio_coding/neteq/tools/encode_neteq_input.h index 66927d2..d9b1cd3 100644 --- a/modules/audio_coding/neteq/tools/encode_neteq_input.h +++ b/modules/audio_coding/neteq/tools/encode_neteq_input.h
@@ -15,8 +15,8 @@ #include <cstdint> #include <memory> #include <optional> +#include <span> -#include "api/array_view.h" #include "api/audio_codecs/audio_encoder.h" #include "modules/audio_coding/neteq/tools/neteq_input.h" #include "modules/rtp_rtcp/source/rtp_packet_received.h" @@ -33,7 +33,7 @@ public: virtual ~Generator() = default; // Returns the next num_samples values from the signal generator. - virtual ArrayView<const int16_t> Generate(size_t num_samples) = 0; + virtual std::span<const int16_t> Generate(size_t num_samples) = 0; }; // The source will end after the given input duration.
diff --git a/modules/audio_coding/neteq/tools/fake_decode_from_file.cc b/modules/audio_coding/neteq/tools/fake_decode_from_file.cc index c2a9c77..e94c459 100644 --- a/modules/audio_coding/neteq/tools/fake_decode_from_file.cc +++ b/modules/audio_coding/neteq/tools/fake_decode_from_file.cc
@@ -15,9 +15,9 @@ #include <cstdint> #include <memory> #include <optional> +#include <span> #include <vector> -#include "api/array_view.h" #include "api/audio_codecs/audio_decoder.h" #include "modules/audio_coding/neteq/tools/input_audio_file.h" #include "modules/rtp_rtcp/source/byte_io.h" @@ -44,7 +44,7 @@ size_t Duration() const override { return duration_; } std::optional<DecodeResult> Decode( - ArrayView<int16_t> decoded) const override { + std::span<int16_t> decoded) const override { if (is_dtx_) { std::fill_n(decoded.data(), duration_, 0); return DecodeResult{.num_decoded_samples = duration_, @@ -105,7 +105,7 @@ void FakeDecodeFromFile::PrepareEncoded(uint32_t timestamp, size_t samples, size_t original_payload_size_bytes, - ArrayView<uint8_t> encoded) { + std::span<uint8_t> encoded) { RTC_CHECK_GE(encoded.size(), 12); ByteWriter<uint32_t>::WriteLittleEndian(&encoded[0], timestamp); ByteWriter<uint32_t>::WriteLittleEndian(&encoded[4],
diff --git a/modules/audio_coding/neteq/tools/fake_decode_from_file.h b/modules/audio_coding/neteq/tools/fake_decode_from_file.h index 39e4a5e..01c73c4 100644 --- a/modules/audio_coding/neteq/tools/fake_decode_from_file.h +++ b/modules/audio_coding/neteq/tools/fake_decode_from_file.h
@@ -15,10 +15,10 @@ #include <cstdint> #include <memory> #include <optional> +#include <span> #include <utility> #include <vector> -#include "api/array_view.h" #include "api/audio_codecs/audio_decoder.h" #include "modules/audio_coding/neteq/tools/input_audio_file.h" #include "rtc_base/buffer.h" @@ -68,7 +68,7 @@ static void PrepareEncoded(uint32_t timestamp, size_t samples, size_t original_payload_size_bytes, - ArrayView<uint8_t> encoded); + std::span<uint8_t> encoded); private: std::unique_ptr<InputAudioFile> input_;
diff --git a/modules/audio_coding/neteq/tools/neteq_event_log_input.cc b/modules/audio_coding/neteq/tools/neteq_event_log_input.cc index 66494d5..f7834c6 100644 --- a/modules/audio_coding/neteq/tools/neteq_event_log_input.cc +++ b/modules/audio_coding/neteq/tools/neteq_event_log_input.cc
@@ -15,10 +15,10 @@ #include <cstdint> #include <memory> #include <optional> +#include <span> #include <utility> #include <vector> -#include "api/array_view.h" #include "api/rtp_headers.h" #include "logging/rtc_event_log/events/logged_rtp_rtcp.h" #include "logging/rtc_event_log/events/rtc_event_audio_playout.h" @@ -130,7 +130,7 @@ packet_data->SetTimestamp(logged.header.timestamp); packet_data->SetSsrc(logged.header.ssrc); packet_data->SetCsrcs( - MakeArrayView(logged.header.arrOfCSRCs, logged.header.numCSRCs)); + std::span(logged.header.arrOfCSRCs, logged.header.numCSRCs)); packet_data->set_arrival_time(logged.log_time()); // This is a header-only "dummy" packet. Set the payload to all zeros, with
diff --git a/modules/audio_coding/neteq/tools/neteq_quality_test.cc b/modules/audio_coding/neteq/tools/neteq_quality_test.cc index 68e4fac..666d2e9 100644 --- a/modules/audio_coding/neteq/tools/neteq_quality_test.cc +++ b/modules/audio_coding/neteq/tools/neteq_quality_test.cc
@@ -21,6 +21,7 @@ #include <memory> #include <ostream> #include <set> +#include <span> #include <sstream> #include <string> #include <utility> @@ -28,7 +29,6 @@ #include "absl/flags/flag.h" #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/audio_codecs/audio_decoder_factory.h" #include "api/audio_codecs/audio_format.h" #include "api/environment/environment_factory.h" @@ -434,7 +434,7 @@ if (!PacketLost()) { int ret = neteq_->InsertPacket( rtp_header_, - ArrayView<const uint8_t>(payload_.data(), payload_size_bytes_), + std::span<const uint8_t>(payload_.data(), payload_size_bytes_), Timestamp::Millis(packet_input_time_ms)); if (ret != NetEq::kOK) return -1;
diff --git a/modules/audio_coding/neteq/tools/neteq_test.cc b/modules/audio_coding/neteq/tools/neteq_test.cc index bab757f..adf8820 100644 --- a/modules/audio_coding/neteq/tools/neteq_test.cc +++ b/modules/audio_coding/neteq/tools/neteq_test.cc
@@ -19,7 +19,6 @@ #include <optional> #include <utility> -#include "api/array_view.h" #include "api/audio/audio_frame.h" #include "api/audio_codecs/audio_decoder_factory.h" #include "api/audio_codecs/audio_format.h"
diff --git a/modules/audio_coding/neteq/tools/rtp_jitter.cc b/modules/audio_coding/neteq/tools/rtp_jitter.cc index acf2744..03b346c 100644 --- a/modules/audio_coding/neteq/tools/rtp_jitter.cc +++ b/modules/audio_coding/neteq/tools/rtp_jitter.cc
@@ -13,11 +13,11 @@ #include <cstdio> #include <fstream> #include <iostream> +#include <span> #include <string> #include <utility> #include <vector> -#include "api/array_view.h" #include "modules/rtp_rtcp/source/byte_io.h" #include "rtc_base/buffer.h" #include "rtc_base/checks.h" @@ -32,7 +32,7 @@ Buffer ReadNextPacket(FILE* file) { // Read the rtpdump header for the next packet. Buffer buffer; - buffer.SetData(kRtpDumpHeaderLength, [&](ArrayView<uint8_t> x) { + buffer.SetData(kRtpDumpHeaderLength, [&](std::span<uint8_t> x) { return fread(x.data(), 1, x.size(), file); }); if (buffer.size() != kRtpDumpHeaderLength) { @@ -45,7 +45,7 @@ RTC_CHECK_GE(len, kRtpDumpHeaderLength); // Read remaining data from file directly into buffer. - buffer.AppendData(len - kRtpDumpHeaderLength, [&](ArrayView<uint8_t> x) { + buffer.AppendData(len - kRtpDumpHeaderLength, [&](std::span<uint8_t> x) { return fread(x.data(), 1, x.size(), file); }); if (buffer.size() != len) {
diff --git a/modules/audio_coding/test/Channel.cc b/modules/audio_coding/test/Channel.cc index 5d3c219..e2ebb90 100644 --- a/modules/audio_coding/test/Channel.cc +++ b/modules/audio_coding/test/Channel.cc
@@ -14,8 +14,8 @@ #include <cstdint> #include <cstdio> #include <cstring> +#include <span> -#include "api/array_view.h" #include "api/neteq/neteq.h" #include "api/rtp_headers.h" #include "api/units/timestamp.h" @@ -92,7 +92,7 @@ } status = _neteq->InsertPacket( - rtp_header, ArrayView<const uint8_t>(_payloadData, payloadDataSize), + rtp_header, std::span<const uint8_t>(_payloadData, payloadDataSize), /*receive_time=*/Timestamp::MinusInfinity()); return status;
diff --git a/modules/audio_coding/test/EncodeDecodeTest.cc b/modules/audio_coding/test/EncodeDecodeTest.cc index 848e833..e61d584 100644 --- a/modules/audio_coding/test/EncodeDecodeTest.cc +++ b/modules/audio_coding/test/EncodeDecodeTest.cc
@@ -15,10 +15,10 @@ #include <cstdlib> #include <map> #include <memory> +#include <span> #include <string> #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/audio_codecs/audio_format.h" #include "api/audio_codecs/builtin_audio_decoder_factory.h" #include "api/audio_codecs/builtin_audio_encoder_factory.h" @@ -182,7 +182,7 @@ EXPECT_GE( 0, _neteq->InsertPacket(_rtpHeader, - ArrayView<const uint8_t>(_incomingPayload, + std::span<const uint8_t>(_incomingPayload, _realPayloadSizeBytes), /*receive_time=*/Timestamp::Millis(_nextTime))); _realPayloadSizeBytes = _rtpStream->Read(&_rtpHeader, _incomingPayload,
diff --git a/modules/audio_coding/test/PacketLossTest.cc b/modules/audio_coding/test/PacketLossTest.cc index 59b5309..129eebe 100644 --- a/modules/audio_coding/test/PacketLossTest.cc +++ b/modules/audio_coding/test/PacketLossTest.cc
@@ -12,10 +12,10 @@ #include <cstdint> #include <memory> +#include <span> #include <string> #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/audio_codecs/audio_encoder.h" #include "api/audio_codecs/audio_format.h" #include "api/audio_codecs/builtin_audio_decoder_factory.h" @@ -73,7 +73,7 @@ if (!PacketLost()) { _neteq->InsertPacket( _rtpHeader, - ArrayView<const uint8_t>(_incomingPayload, _realPayloadSizeBytes), + std::span<const uint8_t>(_incomingPayload, _realPayloadSizeBytes), Timestamp::Millis(_nextTime)); } packet_counter_++;
diff --git a/modules/audio_coding/test/TestAllCodecs.cc b/modules/audio_coding/test/TestAllCodecs.cc index e45f1fd..689c258 100644 --- a/modules/audio_coding/test/TestAllCodecs.cc +++ b/modules/audio_coding/test/TestAllCodecs.cc
@@ -14,11 +14,11 @@ #include <cstdio> #include <cstring> #include <limits> +#include <span> #include <string> #include "absl/strings/match.h" #include "absl/strings/str_cat.h" -#include "api/array_view.h" #include "api/audio_codecs/audio_format.h" #include "api/audio_codecs/builtin_audio_decoder_factory.h" #include "api/audio_codecs/builtin_audio_encoder_factory.h" @@ -93,7 +93,7 @@ memcpy(payload_data_, payload_data, payload_size); status = neteq_->InsertPacket( - rtp_header, ArrayView<const uint8_t>(payload_data_, payload_size), + rtp_header, std::span<const uint8_t>(payload_data_, payload_size), /*receive_time=*/Timestamp::MinusInfinity()); payload_size_ = payload_size;
diff --git a/modules/audio_coding/test/TestStereo.cc b/modules/audio_coding/test/TestStereo.cc index 78b0d8c..f0913f7 100644 --- a/modules/audio_coding/test/TestStereo.cc +++ b/modules/audio_coding/test/TestStereo.cc
@@ -14,12 +14,12 @@ #include <cstddef> #include <cstdint> #include <cstring> +#include <span> #include <string> #include <utility> #include "absl/strings/match.h" #include "absl/strings/str_cat.h" -#include "api/array_view.h" #include "api/audio/audio_frame.h" #include "api/audio_codecs/audio_format.h" #include "api/audio_codecs/builtin_audio_decoder_factory.h" @@ -78,7 +78,7 @@ if (lost_packet_ == false) { status = neteq_->InsertPacket( - rtp_header, ArrayView<const uint8_t>(payload_data, payload_size), + rtp_header, std::span<const uint8_t>(payload_data, payload_size), /*receive_time=*/Timestamp::MinusInfinity()); if (frame_type != AudioFrameType::kAudioFrameCN) {
diff --git a/modules/audio_coding/test/target_delay_unittest.cc b/modules/audio_coding/test/target_delay_unittest.cc index 96130b4..bf72bcd 100644 --- a/modules/audio_coding/test/target_delay_unittest.cc +++ b/modules/audio_coding/test/target_delay_unittest.cc
@@ -13,8 +13,8 @@ #include <cstdlib> #include <map> #include <memory> +#include <span> -#include "api/array_view.h" #include "api/audio/audio_frame.h" #include "api/audio_codecs/audio_format.h" #include "api/audio_codecs/builtin_audio_decoder_factory.h" @@ -95,7 +95,7 @@ rtp_header_.sequenceNumber++; ASSERT_EQ(0, neteq_->InsertPacket( rtp_header_, - ArrayView<const uint8_t>(payload_, kFrameSizeSamples * 2), + std::span<const uint8_t>(payload_, kFrameSizeSamples * 2), Timestamp::MinusInfinity())); }
diff --git a/modules/audio_device/BUILD.gn b/modules/audio_device/BUILD.gn index bad43a5..a5105a8 100644 --- a/modules/audio_device/BUILD.gn +++ b/modules/audio_device/BUILD.gn
@@ -58,7 +58,6 @@ "fine_audio_buffer.h", ] deps = [ - "../../api:array_view", "../../api:sequence_checker", "../../api/audio:audio_device", "../../api/environment", @@ -149,7 +148,6 @@ ":audio_device_buffer", ":audio_device_name", ":windows_core_audio_utility", - "../../api:array_view", "../../api:make_ref_counted", "../../api:scoped_refptr", "../../api:sequence_checker", @@ -186,7 +184,6 @@ ":audio_device_default", ":audio_device_generic", ":audio_device_impl", - "../../api:array_view", "../../api:make_ref_counted", "../../api:scoped_refptr", "../../api/audio:audio_device", @@ -264,7 +261,6 @@ ":audio_device_default", ":audio_device_dummy", ":audio_device_generic", - "../../api:array_view", "../../api:make_ref_counted", "../../api:ref_count", "../../api:refcountedbase", @@ -461,7 +457,6 @@ ":audio_device_impl", ":mock_audio_device", ":test_audio_device_module", - "../../api:array_view", "../../api:scoped_refptr", "../../api:sequence_checker", "../../api/audio:audio_device",
diff --git a/modules/audio_device/audio_device_unittest.cc b/modules/audio_device/audio_device_unittest.cc index ef93f7b..9dc10ea 100644 --- a/modules/audio_device/audio_device_unittest.cc +++ b/modules/audio_device/audio_device_unittest.cc
@@ -18,9 +18,9 @@ #include <list> #include <numeric> #include <optional> +#include <span> #include <vector> -#include "api/array_view.h" #include "api/audio/audio_device_defines.h" #include "api/audio/create_audio_device_module.h" #include "api/environment/environment.h" @@ -113,8 +113,8 @@ // measurements. class AudioStream { public: - virtual void Write(ArrayView<const int16_t> source) = 0; - virtual void Read(ArrayView<int16_t> destination) = 0; + virtual void Write(std::span<const int16_t> source) = 0; + virtual void Read(std::span<int16_t> destination) = 0; virtual ~AudioStream() = default; }; @@ -141,7 +141,7 @@ // change over time and that both sides will in most cases use the same size. class FifoAudioStream : public AudioStream { public: - void Write(ArrayView<const int16_t> source) override { + void Write(std::span<const int16_t> source) override { RTC_DCHECK_RUNS_SERIALIZED(&race_checker_); const size_t size = [&] { MutexLock lock(&lock_); @@ -158,7 +158,7 @@ written_elements_ += size; } - void Read(ArrayView<int16_t> destination) override { + void Read(std::span<int16_t> destination) override { MutexLock lock(&lock_); if (fifo_.empty()) { std::fill(destination.begin(), destination.end(), 0); @@ -227,7 +227,7 @@ } // Insert periodic impulses in first two samples of `destination`. - void Read(ArrayView<int16_t> destination) override { + void Read(std::span<int16_t> destination) override { RTC_DCHECK_RUN_ON(&read_thread_checker_); if (read_count_ == 0) { PRINT("["); @@ -249,7 +249,7 @@ // Detect received impulses in `source`, derive time between transmission and // detection and add the calculated delay to list of latencies. - void Write(ArrayView<const int16_t> source) override { + void Write(std::span<const int16_t> source) override { RTC_DCHECK_RUN_ON(&write_thread_checker_); RTC_DCHECK_RUNS_SERIALIZED(&race_checker_); MutexLock lock(&lock_); @@ -402,9 +402,8 @@ } // Write audio data to audio stream object if one has been injected. if (audio_stream_) { - audio_stream_->Write( - MakeArrayView(static_cast<const int16_t*>(audio_buffer), - samples_per_channel * channels)); + audio_stream_->Write(std::span(static_cast<const int16_t*>(audio_buffer), + samples_per_channel * channels)); } // Signal the event after given amount of callbacks. if (event_ && ReceivedEnoughCallbacks()) { @@ -443,8 +442,8 @@ samples_out = samples_per_channel * channels; // Read audio data from audio stream object if one has been injected. if (audio_stream_) { - audio_stream_->Read(MakeArrayView(static_cast<int16_t*>(audio_buffer), - samples_per_channel * channels)); + audio_stream_->Read(std::span(static_cast<int16_t*>(audio_buffer), + samples_per_channel * channels)); } else { // Fill the audio buffer with zeros to avoid disturbing audio. const size_t num_bytes = samples_per_channel * bytes_per_frame;
diff --git a/modules/audio_device/fine_audio_buffer.cc b/modules/audio_device/fine_audio_buffer.cc index 0ab7023..04cf671 100644 --- a/modules/audio_device/fine_audio_buffer.cc +++ b/modules/audio_device/fine_audio_buffer.cc
@@ -13,8 +13,8 @@ #include <cstdint> #include <cstring> #include <optional> +#include <span> -#include "api/array_view.h" #include "modules/audio_device/audio_device_buffer.h" #include "rtc_base/checks.h" #include "rtc_base/logging.h" @@ -64,7 +64,7 @@ return record_samples_per_channel_10ms_ > 0 && record_channels_ > 0; } -void FineAudioBuffer::GetPlayoutData(ArrayView<int16_t> audio_buffer, +void FineAudioBuffer::GetPlayoutData(std::span<int16_t> audio_buffer, int playout_delay_ms) { RTC_DCHECK(IsReadyForPlayout()); // Ask WebRTC for new data in chunks of 10ms until we have enough to @@ -81,7 +81,7 @@ const size_t num_elements_10ms = playout_channels_ * playout_samples_per_channel_10ms_; const size_t written_elements = playout_buffer_.AppendData( - num_elements_10ms, [&](ArrayView<int16_t> buf) { + num_elements_10ms, [&](std::span<int16_t> buf) { const size_t samples_per_channel_10ms = audio_device_buffer_->GetPlayoutData(buf.data()); return playout_channels_ * samples_per_channel_10ms; @@ -108,7 +108,7 @@ } void FineAudioBuffer::DeliverRecordedData( - ArrayView<const int16_t> audio_buffer, + std::span<const int16_t> audio_buffer, int record_delay_ms, std::optional<int64_t> capture_time_ns) { RTC_DCHECK(IsReadyForRecord());
diff --git a/modules/audio_device/fine_audio_buffer.h b/modules/audio_device/fine_audio_buffer.h index dd4d456..a2cb3c2 100644 --- a/modules/audio_device/fine_audio_buffer.h +++ b/modules/audio_device/fine_audio_buffer.h
@@ -14,8 +14,8 @@ #include <cstddef> #include <cstdint> #include <optional> +#include <span> -#include "api/array_view.h" #include "rtc_base/buffer.h" namespace webrtc { @@ -52,7 +52,7 @@ // silence instead. The provided delay estimate in `playout_delay_ms` should // contain an estimate of the latency between when an audio frame is read from // WebRTC and when it is played out on the speaker. - void GetPlayoutData(ArrayView<int16_t> audio_buffer, int playout_delay_ms); + void GetPlayoutData(std::span<int16_t> audio_buffer, int playout_delay_ms); // Consumes the audio data in `audio_buffer` and sends it to the WebRTC layer // in chunks of 10ms. The sum of the provided delay estimate in @@ -63,11 +63,11 @@ // Example: buffer size is 5ms => call #1 stores 5ms of data, call #2 stores // 5ms of data and sends a total of 10ms to WebRTC and clears the internal // cache. Call #3 restarts the scheme above. - void DeliverRecordedData(ArrayView<const int16_t> audio_buffer, + void DeliverRecordedData(std::span<const int16_t> audio_buffer, int record_delay_ms) { DeliverRecordedData(audio_buffer, record_delay_ms, std::nullopt); } - void DeliverRecordedData(ArrayView<const int16_t> audio_buffer, + void DeliverRecordedData(std::span<const int16_t> audio_buffer, int record_delay_ms, std::optional<int64_t> capture_time_ns);
diff --git a/modules/audio_device/fine_audio_buffer_unittest.cc b/modules/audio_device/fine_audio_buffer_unittest.cc index 2ec0a53..2516b5f 100644 --- a/modules/audio_device/fine_audio_buffer_unittest.cc +++ b/modules/audio_device/fine_audio_buffer_unittest.cc
@@ -13,8 +13,8 @@ #include <climits> #include <cstdint> #include <memory> +#include <span> -#include "api/array_view.h" #include "modules/audio_device/mock_audio_device_buffer.h" #include "test/create_test_environment.h" #include "test/gmock.h" @@ -131,12 +131,12 @@ for (int i = 0; i < kNumberOfFrames; ++i) { fine_buffer.GetPlayoutData( - ArrayView<int16_t>(out_buffer.get(), kChannels * kFrameSizeSamples), 0); + std::span<int16_t>(out_buffer.get(), kChannels * kFrameSizeSamples), 0); EXPECT_TRUE( VerifyBuffer(out_buffer.get(), i, kChannels * kFrameSizeSamples)); UpdateInputBuffer(in_buffer.get(), i, kChannels * kFrameSizeSamples); fine_buffer.DeliverRecordedData( - ArrayView<const int16_t>(in_buffer.get(), + std::span<const int16_t>(in_buffer.get(), kChannels * kFrameSizeSamples), 0); }
diff --git a/modules/audio_device/include/test_audio_device.cc b/modules/audio_device/include/test_audio_device.cc index 132128e..01360b2 100644 --- a/modules/audio_device/include/test_audio_device.cc +++ b/modules/audio_device/include/test_audio_device.cc
@@ -14,12 +14,12 @@ #include <cstdlib> #include <cstring> #include <memory> +#include <span> #include <string> #include <utility> #include <vector> #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/audio/audio_device.h" #include "api/environment/environment.h" #include "api/make_ref_counted.h" @@ -74,7 +74,7 @@ buffer->SetData( TestAudioDeviceModule::SamplesPerFrame(sampling_frequency_in_hz_) * num_channels_, - [&](ArrayView<int16_t> data) { + [&](std::span<int16_t> data) { if (fill_with_zero_) { std::fill(data.begin(), data.end(), 0); } else { @@ -120,7 +120,7 @@ buffer->SetData( TestAudioDeviceModule::SamplesPerFrame(sampling_frequency_in_hz_) * num_channels_, - [&](ArrayView<int16_t> data) { + [&](std::span<int16_t> data) { size_t read = wav_reader_->ReadSamples(data.size(), data.data()); if (read < data.size() && repeat_) { do { @@ -170,7 +170,7 @@ int NumChannels() const override { return num_channels_; } - bool Render(ArrayView<const int16_t> data) override { + bool Render(std::span<const int16_t> data) override { wav_writer_->WriteSamples(data.data(), data.size()); return true; } @@ -207,7 +207,7 @@ int NumChannels() const override { return num_channels_; } - bool Render(ArrayView<const int16_t> data) override { + bool Render(std::span<const int16_t> data) override { const int16_t kAmplitudeThreshold = 5; const int16_t* begin = data.data(); @@ -266,7 +266,7 @@ int NumChannels() const override { return num_channels_; } - bool Render(ArrayView<const int16_t> /* data */) override { return true; } + bool Render(std::span<const int16_t> /* data */) override { return true; } private: int sampling_frequency_in_hz_; @@ -302,8 +302,8 @@ buffer->SetData( TestAudioDeviceModule::SamplesPerFrame(SamplingFrequency()) * NumChannels(), - [&](ArrayView<int16_t> data) { - ArrayView<int8_t> read_buffer_view = ReadBufferView(); + [&](std::span<int16_t> data) { + std::span<int8_t> read_buffer_view = ReadBufferView(); size_t size = data.size() * 2; size_t read = input_file_.Read(read_buffer_view.data(), size); if (read < size && repeat_) { @@ -322,7 +322,7 @@ } private: - ArrayView<int8_t> ReadBufferView() { return read_buffer_; } + std::span<int8_t> ReadBufferView() { return read_buffer_; } const std::string input_file_name_; const int sampling_frequency_in_hz_; @@ -360,7 +360,7 @@ int NumChannels() const override { return num_channels_; } - bool Render(ArrayView<const int16_t> data) override { + bool Render(std::span<const int16_t> data) override { const int16_t kAmplitudeThreshold = 5; const int16_t* begin = data.data();
diff --git a/modules/audio_device/include/test_audio_device.h b/modules/audio_device/include/test_audio_device.h index 7969484..e460d25 100644 --- a/modules/audio_device/include/test_audio_device.h +++ b/modules/audio_device/include/test_audio_device.h
@@ -13,9 +13,9 @@ #include <cstddef> #include <cstdint> #include <memory> +#include <span> #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/audio/audio_device.h" #include "api/environment/environment.h" #include "api/scoped_refptr.h" @@ -59,7 +59,7 @@ virtual int NumChannels() const = 0; // Renders the passed audio data and returns true if the renderer wants // to keep receiving data, or false otherwise. - virtual bool Render(ArrayView<const int16_t> data) = 0; + virtual bool Render(std::span<const int16_t> data) = 0; }; // A fake capturer that generates pulses with random samples between
diff --git a/modules/audio_device/include/test_audio_device_unittest.cc b/modules/audio_device/include/test_audio_device_unittest.cc index 95eb74e..1ad4b9d 100644 --- a/modules/audio_device/include/test_audio_device_unittest.cc +++ b/modules/audio_device/include/test_audio_device_unittest.cc
@@ -20,11 +20,11 @@ #include <cstring> #include <memory> #include <optional> +#include <span> #include <string> #include <utility> #include <vector> -#include "api/array_view.h" #include "api/audio/audio_device.h" #include "api/audio/audio_device_defines.h" #include "api/environment/environment.h" @@ -65,7 +65,7 @@ TestAudioDeviceModule::CreateBoundedWavFileWriter(output_filename, 800); for (size_t i = 0; i < input_samples.size(); i += kSamplesPerFrame) { - EXPECT_TRUE(writer->Render(ArrayView<const int16_t>( + EXPECT_TRUE(writer->Render(std::span<const int16_t>( &input_samples[i], std::min(kSamplesPerFrame, input_samples.size() - i)))); } @@ -162,7 +162,7 @@ TestAudioDeviceModule::CreateWavFileWriter(output_filename, 800); for (size_t i = 0; i < kInputSamples.size(); i += kSamplesPerFrame) { - EXPECT_TRUE(writer->Render(ArrayView<const int16_t>( + EXPECT_TRUE(writer->Render(std::span<const int16_t>( &kInputSamples[i], std::min(kSamplesPerFrame, kInputSamples.size() - i)))); } @@ -203,7 +203,7 @@ output_filename, /*sampling_frequency_in_hz=*/800); for (size_t i = 0; i < input_samples.size(); i += kSamplesPerFrame) { - EXPECT_TRUE(writer->Render(ArrayView<const int16_t>( + EXPECT_TRUE(writer->Render(std::span<const int16_t>( &input_samples[i], std::min(kSamplesPerFrame, input_samples.size() - i)))); } @@ -311,7 +311,7 @@ output_filename, /*sampling_frequency_in_hz=*/800); for (size_t i = 0; i < kInputSamples.size(); i += kSamplesPerFrame) { - EXPECT_TRUE(writer->Render(ArrayView<const int16_t>( + EXPECT_TRUE(writer->Render(std::span<const int16_t>( &kInputSamples[i], std::min(kSamplesPerFrame, kInputSamples.size() - i)))); }
diff --git a/modules/audio_device/test_audio_device_impl.cc b/modules/audio_device/test_audio_device_impl.cc index 5cfb65b..33f59a8 100644 --- a/modules/audio_device/test_audio_device_impl.cc +++ b/modules/audio_device/test_audio_device_impl.cc
@@ -13,9 +13,9 @@ #include <cstdint> #include <memory> #include <optional> +#include <span> #include <utility> -#include "api/array_view.h" #include "api/environment/environment.h" #include "api/task_queue/task_queue_factory.h" #include "api/units/time_delta.h" @@ -189,7 +189,7 @@ size_t samples_out = samples_per_channel * renderer_->NumChannels(); RTC_CHECK_LE(samples_out, playout_buffer_.size()); const bool keep_rendering = renderer_->Render( - ArrayView<const int16_t>(playout_buffer_.data(), samples_out)); + std::span<const int16_t>(playout_buffer_.data(), samples_out)); if (!keep_rendering) { rendering_ = false; }
diff --git a/modules/audio_device/win/core_audio_input_win.cc b/modules/audio_device/win/core_audio_input_win.cc index f6139ae..3b92e58 100644 --- a/modules/audio_device/win/core_audio_input_win.cc +++ b/modules/audio_device/win/core_audio_input_win.cc
@@ -13,9 +13,9 @@ #include <cstdint> #include <memory> #include <optional> +#include <span> #include <string> -#include "api/array_view.h" #include "api/audio/audio_device.h" #include "api/environment/environment.h" #include "api/sequence_checker.h" @@ -368,8 +368,8 @@ // Copy recorded audio in `audio_data` to the WebRTC sink using the // FineAudioBuffer object. fine_audio_buffer_->DeliverRecordedData( - webrtc::MakeArrayView(reinterpret_cast<const int16_t*>(audio_data), - format_.Format.nChannels * num_frames_to_read), + std::span(reinterpret_cast<const int16_t*>(audio_data), + format_.Format.nChannels * num_frames_to_read), latency_ms_); }
diff --git a/modules/audio_device/win/core_audio_output_win.cc b/modules/audio_device/win/core_audio_output_win.cc index decc0ee..f373c40 100644 --- a/modules/audio_device/win/core_audio_output_win.cc +++ b/modules/audio_device/win/core_audio_output_win.cc
@@ -12,9 +12,9 @@ #include <cstdint> #include <memory> +#include <span> #include <string> -#include "api/array_view.h" #include "api/audio/audio_device.h" #include "api/environment/environment.h" #include "api/sequence_checker.h" @@ -346,8 +346,8 @@ // Get audio data from WebRTC and write it to the allocated buffer in // `audio_data`. The playout latency is not updated for each callback. fine_audio_buffer_->GetPlayoutData( - webrtc::MakeArrayView(reinterpret_cast<int16_t*>(audio_data), - num_requested_frames * format_.Format.nChannels), + std::span(reinterpret_cast<int16_t*>(audio_data), + num_requested_frames * format_.Format.nChannels), latency_ms_); // Release the buffer space acquired in IAudioRenderClient::GetBuffer.
diff --git a/modules/audio_mixer/BUILD.gn b/modules/audio_mixer/BUILD.gn index d2fa8db..362abf5 100644 --- a/modules/audio_mixer/BUILD.gn +++ b/modules/audio_mixer/BUILD.gn
@@ -39,14 +39,12 @@ deps = [ ":audio_frame_manipulator", - "../../api:array_view", "../../api:make_ref_counted", "../../api:rtp_packet_info", "../../api:scoped_refptr", "../../api/audio:audio_frame_api", "../../api/audio:audio_mixer_api", "../../api/audio:audio_processing", - "../../api/audio:audio_processing", "../../audio/utility:audio_frame_operations", "../../common_audio", "../../rtc_base:checks", @@ -97,7 +95,6 @@ deps = [ ":audio_frame_manipulator", ":audio_mixer_impl", - "../../api:array_view", "../../api/audio:audio_frame_api", "../../rtc_base:checks", "../../rtc_base:safe_conversions", @@ -116,7 +113,6 @@ ":audio_frame_manipulator", ":audio_mixer_impl", ":audio_mixer_test_utils", - "../../api:array_view", "../../api:rtp_packet_info", "../../api:scoped_refptr", "../../api/audio:audio_frame_api",
diff --git a/modules/audio_mixer/audio_mixer_impl.cc b/modules/audio_mixer/audio_mixer_impl.cc index edf6828..e961279 100644 --- a/modules/audio_mixer/audio_mixer_impl.cc +++ b/modules/audio_mixer/audio_mixer_impl.cc
@@ -13,10 +13,10 @@ #include <algorithm> #include <cstddef> #include <memory> +#include <span> #include <utility> #include <vector> -#include "api/array_view.h" #include "api/audio/audio_frame.h" #include "api/make_ref_counted.h" #include "api/scoped_refptr.h" @@ -101,7 +101,7 @@ }); int output_frequency = output_rate_calculator_->CalculateOutputRateFromRange( - ArrayView<const int>(helper_containers_->preferred_rates.data(), + std::span<const int>(helper_containers_->preferred_rates.data(), number_of_streams)); frame_combiner_.Combine(GetAudioFromSources(output_frequency), @@ -129,7 +129,7 @@ audio_source_list_.erase(iter); } -ArrayView<AudioFrame* const> AudioMixerImpl::GetAudioFromSources( +std::span<AudioFrame* const> AudioMixerImpl::GetAudioFromSources( int output_frequency) { int audio_to_mix_count = 0; for (auto& source_and_status : audio_source_list_) { @@ -148,7 +148,7 @@ &source_and_status->audio_frame; } } - return ArrayView<AudioFrame* const>(helper_containers_->audio_to_mix.data(), + return std::span<AudioFrame* const>(helper_containers_->audio_to_mix.data(), audio_to_mix_count); }
diff --git a/modules/audio_mixer/audio_mixer_impl.h b/modules/audio_mixer/audio_mixer_impl.h index 104f130..c70d6c9 100644 --- a/modules/audio_mixer/audio_mixer_impl.h +++ b/modules/audio_mixer/audio_mixer_impl.h
@@ -14,9 +14,9 @@ #include <stddef.h> #include <memory> +#include <span> #include <vector> -#include "api/array_view.h" #include "api/audio/audio_frame.h" #include "api/audio/audio_mixer.h" #include "api/scoped_refptr.h" @@ -63,7 +63,7 @@ void UpdateSourceCountStats() RTC_EXCLUSIVE_LOCKS_REQUIRED(mutex_); // Fetches audio frames to mix from sources. - ArrayView<AudioFrame* const> GetAudioFromSources(int output_frequency) + std::span<AudioFrame* const> GetAudioFromSources(int output_frequency) RTC_EXCLUSIVE_LOCKS_REQUIRED(mutex_); // The critical section lock guards audio source insertion and
diff --git a/modules/audio_mixer/audio_mixer_impl_unittest.cc b/modules/audio_mixer/audio_mixer_impl_unittest.cc index 9cd6b42..1e240cf 100644 --- a/modules/audio_mixer/audio_mixer_impl_unittest.cc +++ b/modules/audio_mixer/audio_mixer_impl_unittest.cc
@@ -15,10 +15,10 @@ #include <cstring> #include <memory> #include <optional> +#include <span> #include <string> #include <vector> -#include "api/array_view.h" #include "api/audio/audio_frame.h" #include "api/audio/audio_mixer.h" #include "api/rtp_packet_info.h" @@ -122,7 +122,7 @@ public: explicit CustomRateCalculator(int rate) : rate_(rate) {} int CalculateOutputRateFromRange( - ArrayView<const int> /* preferred_rates */) override { + std::span<const int> /* preferred_rates */) override { return rate_; } @@ -484,7 +484,7 @@ public: static const int kDefaultFrequency = 76000; int CalculateOutputRateFromRange( - ArrayView<const int> /* preferred_sample_rates */) override { + std::span<const int> /* preferred_sample_rates */) override { return kDefaultFrequency; } ~HighOutputRateCalculator() override {}
diff --git a/modules/audio_mixer/default_output_rate_calculator.cc b/modules/audio_mixer/default_output_rate_calculator.cc index be9819c..8eb6a05 100644 --- a/modules/audio_mixer/default_output_rate_calculator.cc +++ b/modules/audio_mixer/default_output_rate_calculator.cc
@@ -12,15 +12,15 @@ #include <algorithm> #include <iterator> +#include <span> -#include "api/array_view.h" #include "api/audio/audio_processing.h" #include "rtc_base/checks.h" namespace webrtc { int DefaultOutputRateCalculator::CalculateOutputRateFromRange( - ArrayView<const int> preferred_sample_rates) { + std::span<const int> preferred_sample_rates) { if (preferred_sample_rates.empty()) { return DefaultOutputRateCalculator::kDefaultFrequency; }
diff --git a/modules/audio_mixer/default_output_rate_calculator.h b/modules/audio_mixer/default_output_rate_calculator.h index acae77f..e91a2d8 100644 --- a/modules/audio_mixer/default_output_rate_calculator.h +++ b/modules/audio_mixer/default_output_rate_calculator.h
@@ -11,7 +11,8 @@ #ifndef MODULES_AUDIO_MIXER_DEFAULT_OUTPUT_RATE_CALCULATOR_H_ #define MODULES_AUDIO_MIXER_DEFAULT_OUTPUT_RATE_CALCULATOR_H_ -#include "api/array_view.h" +#include <span> + #include "modules/audio_mixer/output_rate_calculator.h" namespace webrtc { @@ -25,7 +26,7 @@ // AudioProcessing::NativeRate. If `preferred_sample_rates` is // empty, returns `kDefaultFrequency`. int CalculateOutputRateFromRange( - ArrayView<const int> preferred_sample_rates) override; + std::span<const int> preferred_sample_rates) override; ~DefaultOutputRateCalculator() override {} };
diff --git a/modules/audio_mixer/frame_combiner.cc b/modules/audio_mixer/frame_combiner.cc index 6f5e1b7..7fd5caf 100644 --- a/modules/audio_mixer/frame_combiner.cc +++ b/modules/audio_mixer/frame_combiner.cc
@@ -15,10 +15,10 @@ #include <cstddef> #include <cstdint> #include <memory> +#include <span> #include <utility> #include <vector> -#include "api/array_view.h" #include "api/audio/audio_frame.h" #include "api/audio/audio_view.h" #include "api/rtp_packet_info.h" @@ -32,7 +32,7 @@ namespace webrtc { namespace { -void SetAudioFrameFields(ArrayView<const AudioFrame* const> mix_list, +void SetAudioFrameFields(std::span<const AudioFrame* const> mix_list, size_t number_of_channels, int sample_rate, size_t /* number_of_streams */, @@ -70,7 +70,7 @@ } } -void MixFewFramesWithNoLimiter(ArrayView<const AudioFrame* const> mix_list, +void MixFewFramesWithNoLimiter(std::span<const AudioFrame* const> mix_list, AudioFrame* audio_frame_for_mixing) { if (mix_list.empty()) { audio_frame_for_mixing->Mute(); @@ -82,7 +82,7 @@ CopySamples(dst, mix_list[0]->data_view()); } -void MixToFloatFrame(ArrayView<const AudioFrame* const> mix_list, +void MixToFloatFrame(std::span<const AudioFrame* const> mix_list, DeinterleavedView<float>& mixing_buffer) { const size_t number_of_channels = NumChannels(mixing_buffer); // Clear the mixing buffer. @@ -133,7 +133,7 @@ FrameCombiner::~FrameCombiner() = default; -void FrameCombiner::Combine(ArrayView<AudioFrame* const> mix_list, +void FrameCombiner::Combine(std::span<AudioFrame* const> mix_list, size_t number_of_channels, int sample_rate, size_t number_of_streams,
diff --git a/modules/audio_mixer/frame_combiner.h b/modules/audio_mixer/frame_combiner.h index 74c4547..c6ee55c 100644 --- a/modules/audio_mixer/frame_combiner.h +++ b/modules/audio_mixer/frame_combiner.h
@@ -14,8 +14,8 @@ #include <array> #include <cstddef> #include <memory> +#include <span> -#include "api/array_view.h" #include "api/audio/audio_frame.h" #include "modules/audio_processing/agc2/limiter.h" @@ -33,7 +33,7 @@ // because 'mix_list' can be empty. The parameter // 'number_of_streams' is used for determining whether to pass the // data through a limiter. - void Combine(ArrayView<AudioFrame* const> mix_list, + void Combine(std::span<AudioFrame* const> mix_list, size_t number_of_channels, int sample_rate, size_t number_of_streams,
diff --git a/modules/audio_mixer/frame_combiner_unittest.cc b/modules/audio_mixer/frame_combiner_unittest.cc index ae44046..e2afc47 100644 --- a/modules/audio_mixer/frame_combiner_unittest.cc +++ b/modules/audio_mixer/frame_combiner_unittest.cc
@@ -14,10 +14,10 @@ #include <cstdint> #include <initializer_list> #include <numeric> +#include <span> #include <string> #include <vector> -#include "api/array_view.h" #include "api/audio/audio_frame.h" #include "api/audio/channel_layout.h" #include "api/rtp_packet_info.h" @@ -340,8 +340,8 @@ config.sample_rate_hz, number_of_streams, &audio_frame_for_mixing); cumulative_change += change_calculator.CalculateGainChange( - ArrayView<const int16_t>(frame1.data(), number_of_samples), - ArrayView<const int16_t>(audio_frame_for_mixing.data(), + std::span<const int16_t>(frame1.data(), number_of_samples), + std::span<const int16_t>(audio_frame_for_mixing.data(), number_of_samples)); }
diff --git a/modules/audio_mixer/gain_change_calculator.cc b/modules/audio_mixer/gain_change_calculator.cc index ff14baa..6420468 100644 --- a/modules/audio_mixer/gain_change_calculator.cc +++ b/modules/audio_mixer/gain_change_calculator.cc
@@ -13,9 +13,9 @@ #include <cmath> #include <cstdint> #include <cstdlib> +#include <span> #include <vector> -#include "api/array_view.h" #include "rtc_base/checks.h" namespace webrtc { @@ -24,8 +24,8 @@ constexpr int16_t kReliabilityThreshold = 100; } // namespace -float GainChangeCalculator::CalculateGainChange(ArrayView<const int16_t> in, - ArrayView<const int16_t> out) { +float GainChangeCalculator::CalculateGainChange(std::span<const int16_t> in, + std::span<const int16_t> out) { RTC_DCHECK_EQ(in.size(), out.size()); std::vector<float> gain(in.size()); @@ -37,9 +37,9 @@ return last_reliable_gain_; } -void GainChangeCalculator::CalculateGain(ArrayView<const int16_t> in, - ArrayView<const int16_t> out, - ArrayView<float> gain) { +void GainChangeCalculator::CalculateGain(std::span<const int16_t> in, + std::span<const int16_t> out, + std::span<float> gain) { RTC_DCHECK_EQ(in.size(), out.size()); RTC_DCHECK_EQ(in.size(), gain.size()); @@ -52,7 +52,7 @@ } float GainChangeCalculator::CalculateDifferences( - ArrayView<const float> values) { + std::span<const float> values) { float res = 0; for (float f : values) { res += fabs(f - last_value_);
diff --git a/modules/audio_mixer/gain_change_calculator.h b/modules/audio_mixer/gain_change_calculator.h index b17db3b..2b5013a 100644 --- a/modules/audio_mixer/gain_change_calculator.h +++ b/modules/audio_mixer/gain_change_calculator.h
@@ -13,7 +13,7 @@ #include <stdint.h> -#include "api/array_view.h" +#include <span> namespace webrtc { @@ -22,17 +22,17 @@ // The 'out' signal is assumed to be produced from 'in' by applying // a smoothly varying gain. This method computes variations of the // gain and handles special cases when the samples are small. - float CalculateGainChange(ArrayView<const int16_t> in, - ArrayView<const int16_t> out); + float CalculateGainChange(std::span<const int16_t> in, + std::span<const int16_t> out); float LatestGain() const; private: - void CalculateGain(ArrayView<const int16_t> in, - ArrayView<const int16_t> out, - ArrayView<float> gain); + void CalculateGain(std::span<const int16_t> in, + std::span<const int16_t> out, + std::span<float> gain); - float CalculateDifferences(ArrayView<const float> values); + float CalculateDifferences(std::span<const float> values); float last_value_ = 0.f; float last_reliable_gain_ = 1.0f; };
diff --git a/modules/audio_mixer/output_rate_calculator.h b/modules/audio_mixer/output_rate_calculator.h index 755da32..e9938a0 100644 --- a/modules/audio_mixer/output_rate_calculator.h +++ b/modules/audio_mixer/output_rate_calculator.h
@@ -11,7 +11,7 @@ #ifndef MODULES_AUDIO_MIXER_OUTPUT_RATE_CALCULATOR_H_ #define MODULES_AUDIO_MIXER_OUTPUT_RATE_CALCULATOR_H_ -#include "api/array_view.h" +#include <span> namespace webrtc { @@ -20,7 +20,7 @@ class OutputRateCalculator { public: virtual int CalculateOutputRateFromRange( - ArrayView<const int> preferred_sample_rates) = 0; + std::span<const int> preferred_sample_rates) = 0; virtual ~OutputRateCalculator() {} };
diff --git a/modules/audio_processing/agc2/rnn_vad/BUILD.gn b/modules/audio_processing/agc2/rnn_vad/BUILD.gn index 53c9af2..2e9c473 100644 --- a/modules/audio_processing/agc2/rnn_vad/BUILD.gn +++ b/modules/audio_processing/agc2/rnn_vad/BUILD.gn
@@ -302,7 +302,6 @@ ":rnn_vad", ":rnn_vad_common", "..:cpu_features", - "../../../../api:array_view", "../../../../common_audio", "../../../../rtc_base:checks", "../../../../rtc_base:logging",
diff --git a/modules/congestion_controller/goog_cc/BUILD.gn b/modules/congestion_controller/goog_cc/BUILD.gn index 837b108..a8c9da4 100644 --- a/modules/congestion_controller/goog_cc/BUILD.gn +++ b/modules/congestion_controller/goog_cc/BUILD.gn
@@ -125,7 +125,6 @@ "loss_based_bwe_v2.h", ] deps = [ - "../../../api:array_view", "../../../api:field_trials_view", "../../../api/transport:network_control", "../../../api/units:data_rate",
diff --git a/modules/congestion_controller/goog_cc/loss_based_bwe_v2.cc b/modules/congestion_controller/goog_cc/loss_based_bwe_v2.cc index 55c7873..9649332 100644 --- a/modules/congestion_controller/goog_cc/loss_based_bwe_v2.cc +++ b/modules/congestion_controller/goog_cc/loss_based_bwe_v2.cc
@@ -16,10 +16,10 @@ #include <cstdlib> #include <limits> #include <optional> +#include <span> #include <vector> #include "absl/algorithm/container.h" -#include "api/array_view.h" #include "api/field_trials_view.h" #include "api/transport/network_types.h" #include "api/units/data_rate.h" @@ -187,7 +187,7 @@ } void LossBasedBweV2::UpdateBandwidthEstimate( - ArrayView<const PacketResult> packet_results, + std::span<const PacketResult> packet_results, DataRate delay_based_estimate, bool in_alr) { delay_based_estimate_ = delay_based_estimate; @@ -1147,7 +1147,7 @@ } bool LossBasedBweV2::PushBackObservation( - ArrayView<const PacketResult> packet_results) { + std::span<const PacketResult> packet_results) { if (packet_results.empty()) { return false; }
diff --git a/modules/congestion_controller/goog_cc/loss_based_bwe_v2.h b/modules/congestion_controller/goog_cc/loss_based_bwe_v2.h index b088420..ce3219e 100644 --- a/modules/congestion_controller/goog_cc/loss_based_bwe_v2.h +++ b/modules/congestion_controller/goog_cc/loss_based_bwe_v2.h
@@ -13,10 +13,10 @@ #include <cstdint> #include <optional> +#include <span> #include <unordered_map> #include <vector> -#include "api/array_view.h" #include "api/field_trials_view.h" #include "api/transport/network_types.h" #include "api/units/data_rate.h" @@ -72,7 +72,7 @@ void SetAcknowledgedBitrate(DataRate acknowledged_bitrate); void SetMinMaxBitrate(DataRate min_bitrate, DataRate max_bitrate); - void UpdateBandwidthEstimate(ArrayView<const PacketResult> packet_results, + void UpdateBandwidthEstimate(std::span<const PacketResult> packet_results, DataRate delay_based_estimate, bool in_alr); @@ -193,7 +193,7 @@ void NewtonsMethodUpdate(ChannelParameters& channel_parameters) const; // Returns false if no observation was created. - bool PushBackObservation(ArrayView<const PacketResult> packet_results); + bool PushBackObservation(std::span<const PacketResult> packet_results); bool IsEstimateIncreasingWhenLossLimited(DataRate old_estimate, DataRate new_estimate); bool IsInLossLimitedState() const;
diff --git a/modules/congestion_controller/rtp/BUILD.gn b/modules/congestion_controller/rtp/BUILD.gn index 27c108a..23e6a06 100644 --- a/modules/congestion_controller/rtp/BUILD.gn +++ b/modules/congestion_controller/rtp/BUILD.gn
@@ -69,7 +69,6 @@ ] deps = [ ":transport_feedback", - "../../../api:array_view", "../../../api/transport:ecn_marking", "../../../api/transport:network_control", "../../../api/units:data_size",
diff --git a/modules/congestion_controller/rtp/transport_feedback_adapter_unittest.cc b/modules/congestion_controller/rtp/transport_feedback_adapter_unittest.cc index bdb63b7..cf36947 100644 --- a/modules/congestion_controller/rtp/transport_feedback_adapter_unittest.cc +++ b/modules/congestion_controller/rtp/transport_feedback_adapter_unittest.cc
@@ -15,10 +15,10 @@ #include <cstdint> #include <memory> #include <optional> +#include <span> #include <utility> #include <vector> -#include "api/array_view.h" #include "api/transport/ecn_marking.h" #include "api/transport/network_types.h" #include "api/units/data_size.h" @@ -145,7 +145,7 @@ } rtcp::TransportFeedback BuildRtcpTransportFeedbackPacket( - ArrayView<const PacketTemplate> packets) { + std::span<const PacketTemplate> packets) { rtcp::TransportFeedback feedback; feedback.SetBase(packets[0].transport_sequence_number, packets[0].receive_timestamp); @@ -160,7 +160,7 @@ } rtcp::CongestionControlFeedback BuildRtcpCongestionControlFeedbackPacket( - ArrayView<const PacketTemplate> packets) { + std::span<const PacketTemplate> packets) { // Assume the feedback was sent when the last packet was received. Timestamp feedback_sent_time = Timestamp::MinusInfinity(); for (auto it = packets.rbegin(); it != packets.rend(); ++it) { @@ -215,7 +215,7 @@ bool UseRfc8888CongestionControlFeedback() const { return GetParam(); } std::optional<TransportPacketsFeedback> CreateAndProcessFeedback( - ArrayView<const PacketTemplate> packets, + std::span<const PacketTemplate> packets, TransportFeedbackAdapter& adapter) { if (UseRfc8888CongestionControlFeedback()) { rtcp::CongestionControlFeedback rtcp_feedback = @@ -599,9 +599,9 @@ } std::optional<TransportPacketsFeedback> adapted_feedback_1 = - CreateAndProcessFeedback(MakeArrayView(&packets[0], 1), adapter); + CreateAndProcessFeedback(std::span(&packets[0], 1), adapter); std::optional<TransportPacketsFeedback> adapted_feedback_2 = - CreateAndProcessFeedback(MakeArrayView(&packets[1], 1), adapter); + CreateAndProcessFeedback(std::span(&packets[1], 1), adapter); EXPECT_EQ(adapted_feedback_1->data_in_flight, packets[1].packet_size); EXPECT_EQ(adapted_feedback_2->data_in_flight, DataSize::Zero()); } @@ -812,7 +812,7 @@ const TimeDelta kExpectedRtt = TimeDelta::Millis(20); for (int i = 0; i < 4; i = i + 2) { rtcp::CongestionControlFeedback rtcp_feedback = - BuildRtcpCongestionControlFeedbackPacket(MakeArrayView(&packets[i], 2)); + BuildRtcpCongestionControlFeedbackPacket(std::span(&packets[i], 2)); std::optional<TransportPacketsFeedback> adapted_feedback = adapter.ProcessCongestionControlFeedback( rtcp_feedback,
diff --git a/modules/desktop_capture/BUILD.gn b/modules/desktop_capture/BUILD.gn index 3da5304..6b15ad7 100644 --- a/modules/desktop_capture/BUILD.gn +++ b/modules/desktop_capture/BUILD.gn
@@ -69,7 +69,6 @@ ":desktop_capture_mock", ":primitives", ":screen_drawer", - "../../api:array_view", "../../rtc_base:base64", "../../rtc_base:threading", "../../test:test_support", @@ -163,7 +162,6 @@ ":desktop_capture", ":desktop_capture_mock", ":primitives", - "../../api:array_view", "../../api/units:time_delta", "../../api/units:timestamp", "../../rtc_base:checks",
diff --git a/modules/desktop_capture/desktop_frame_unittest.cc b/modules/desktop_capture/desktop_frame_unittest.cc index ea3b2bb..a29cc8e 100644 --- a/modules/desktop_capture/desktop_frame_unittest.cc +++ b/modules/desktop_capture/desktop_frame_unittest.cc
@@ -14,8 +14,8 @@ #include <cstring> #include <memory> #include <optional> +#include <span> -#include "api/array_view.h" #include "modules/desktop_capture/desktop_geometry.h" #include "test/gtest.h" @@ -77,7 +77,7 @@ } } -void RunTests(ArrayView<const TestData> tests) { +void RunTests(std::span<const TestData> tests) { for (const TestData& test : tests) { SCOPED_TRACE(test.description);
diff --git a/modules/desktop_capture/screen_capturer_integration_test.cc b/modules/desktop_capture/screen_capturer_integration_test.cc index a1f61e3..34996fc 100644 --- a/modules/desktop_capture/screen_capturer_integration_test.cc +++ b/modules/desktop_capture/screen_capturer_integration_test.cc
@@ -14,11 +14,11 @@ #include <initializer_list> #include <iostream> // TODO(zijiehe): Remove once flaky has been resolved. #include <memory> +#include <span> #include <string> #include <utility> #include <vector> -#include "api/array_view.h" #include "modules/desktop_capture/desktop_capture_options.h" #include "modules/desktop_capture/desktop_capturer.h" #include "modules/desktop_capture/desktop_frame.h" @@ -216,7 +216,7 @@ // The else if statement is for debugging purpose only, // which should be removed after flakiness of // ScreenCapturerIntegrationTest has been resolved. - ArrayView<const uint8_t> frame_data( + std::span<const uint8_t> frame_data( frame->data(), frame->size().height() * frame->stride()); std::string result = Base64Encode(frame_data); std::cout << frame->size().width() << " x " << frame->size().height()
diff --git a/modules/pacing/BUILD.gn b/modules/pacing/BUILD.gn index 11c8d02..083b6ec 100644 --- a/modules/pacing/BUILD.gn +++ b/modules/pacing/BUILD.gn
@@ -29,7 +29,6 @@ ] deps = [ - "../../api:array_view", "../../api:field_trials_view", "../../api:rtp_headers", "../../api:rtp_packet_sender", @@ -87,7 +86,6 @@ deps = [ ":interval_budget", ":pacing", - "../../api:array_view", "../../api:field_trials", "../../api:rtp_headers", "../../api:sequence_checker",
diff --git a/modules/pacing/pacing_controller.cc b/modules/pacing/pacing_controller.cc index 96fb3cb..8c2dda6 100644 --- a/modules/pacing/pacing_controller.cc +++ b/modules/pacing/pacing_controller.cc
@@ -16,12 +16,12 @@ #include <cstdint> #include <memory> #include <optional> +#include <span> #include <utility> #include <vector> #include "absl/cleanup/cleanup.h" #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/field_trials_view.h" #include "api/transport/network_types.h" #include "api/units/data_rate.h" @@ -102,7 +102,7 @@ PacingController::~PacingController() = default; void PacingController::CreateProbeClusters( - ArrayView<const ProbeClusterConfig> probe_cluster_configs) { + std::span<const ProbeClusterConfig> probe_cluster_configs) { for (const ProbeClusterConfig probe_cluster_config : probe_cluster_configs) { prober_.CreateProbeCluster(probe_cluster_config); }
diff --git a/modules/pacing/pacing_controller.h b/modules/pacing/pacing_controller.h index 0311423..6e24401 100644 --- a/modules/pacing/pacing_controller.h +++ b/modules/pacing/pacing_controller.h
@@ -17,10 +17,10 @@ #include <array> #include <memory> #include <optional> +#include <span> #include <vector> #include "absl/base/attributes.h" -#include "api/array_view.h" #include "api/field_trials_view.h" #include "api/rtp_packet_sender.h" #include "api/transport/network_types.h" @@ -59,7 +59,7 @@ // have been updated. virtual void OnAbortedRetransmissions( uint32_t /* ssrc */, - ArrayView<const uint16_t> /* sequence_numbers */) {} + std::span<const uint16_t> /* sequence_numbers */) {} virtual std::optional<uint32_t> GetRtxSsrcForMedia( uint32_t /* ssrc */) const { return std::nullopt; @@ -133,7 +133,7 @@ void EnqueuePacket(std::unique_ptr<RtpPacketToSend> packet); void CreateProbeClusters( - ArrayView<const ProbeClusterConfig> probe_cluster_configs); + std::span<const ProbeClusterConfig> probe_cluster_configs); void Pause(); // Temporarily pause all sending. void Resume(); // Resume sending packets.
diff --git a/modules/pacing/pacing_controller_unittest.cc b/modules/pacing/pacing_controller_unittest.cc index 84fa97c..0370248 100644 --- a/modules/pacing/pacing_controller_unittest.cc +++ b/modules/pacing/pacing_controller_unittest.cc
@@ -17,10 +17,10 @@ #include <cstdlib> #include <memory> #include <optional> +#include <span> #include <utility> #include <vector> -#include "api/array_view.h" #include "api/field_trials.h" #include "api/transport/network_types.h" #include "api/units/data_rate.h" @@ -139,7 +139,7 @@ MOCK_METHOD(size_t, SendPadding, (size_t target_size)); MOCK_METHOD(void, OnAbortedRetransmissions, - (uint32_t, ArrayView<const uint16_t>), + (uint32_t, std::span<const uint16_t>), (override)); MOCK_METHOD(std::optional<uint32_t>, GetRtxSsrcForMedia, @@ -167,7 +167,7 @@ (override)); MOCK_METHOD(void, OnAbortedRetransmissions, - (uint32_t, ArrayView<const uint16_t>), + (uint32_t, std::span<const uint16_t>), (override)); MOCK_METHOD(std::optional<uint32_t>, GetRtxSsrcForMedia, @@ -205,7 +205,7 @@ return packets; } - void OnAbortedRetransmissions(uint32_t, ArrayView<const uint16_t>) override {} + void OnAbortedRetransmissions(uint32_t, std::span<const uint16_t>) override {} std::optional<uint32_t> GetRtxSsrcForMedia(uint32_t) const override { return std::nullopt; } @@ -265,7 +265,7 @@ return packets; } - void OnAbortedRetransmissions(uint32_t, ArrayView<const uint16_t>) override {} + void OnAbortedRetransmissions(uint32_t, std::span<const uint16_t>) override {} std::optional<uint32_t> GetRtxSsrcForMedia(uint32_t) const override { return std::nullopt; }
diff --git a/modules/pacing/packet_router.cc b/modules/pacing/packet_router.cc index 67c3a63..a8b4aea 100644 --- a/modules/pacing/packet_router.cc +++ b/modules/pacing/packet_router.cc
@@ -14,11 +14,11 @@ #include <cstdint> #include <memory> #include <optional> +#include <span> #include <utility> #include <vector> #include "absl/functional/any_invocable.h" -#include "api/array_view.h" #include "api/rtp_headers.h" #include "api/sequence_checker.h" #include "api/transport/network_types.h" @@ -291,7 +291,7 @@ void PacketRouter::OnAbortedRetransmissions( uint32_t ssrc, - ArrayView<const uint16_t> sequence_numbers) { + std::span<const uint16_t> sequence_numbers) { RTC_DCHECK_RUN_ON(&thread_checker_); auto it = send_modules_map_.find(ssrc); if (it != send_modules_map_.end()) {
diff --git a/modules/pacing/packet_router.h b/modules/pacing/packet_router.h index 2a7336a..7b0ab39 100644 --- a/modules/pacing/packet_router.h +++ b/modules/pacing/packet_router.h
@@ -19,11 +19,11 @@ #include <memory> #include <optional> #include <set> +#include <span> #include <unordered_map> #include <vector> #include "absl/functional/any_invocable.h" -#include "api/array_view.h" #include "api/sequence_checker.h" #include "api/transport/network_types.h" #include "api/units/data_size.h" @@ -79,7 +79,7 @@ DataSize size) override; void OnAbortedRetransmissions( uint32_t ssrc, - ArrayView<const uint16_t> sequence_numbers) override; + std::span<const uint16_t> sequence_numbers) override; std::optional<uint32_t> GetRtxSsrcForMedia(uint32_t ssrc) const override; void OnBatchComplete() override;
diff --git a/modules/rtp_rtcp/source/rtp_packet.h b/modules/rtp_rtcp/source/rtp_packet.h index 78cccb3..027969a 100644 --- a/modules/rtp_rtcp/source/rtp_packet.h +++ b/modules/rtp_rtcp/source/rtp_packet.h
@@ -203,7 +203,7 @@ ExtensionInfo& FindOrCreateExtensionInfo(int id); // Allocates and returns place to store rtp header extension. - // Returns empty arrayview on failure. + // Returns empty std::span on failure. std::span<uint8_t> AllocateRawExtension(int id, size_t length); // Promotes existing one-byte header extensions to two-byte header extensions
diff --git a/modules/video_coding/BUILD.gn b/modules/video_coding/BUILD.gn index 029ddb6..74c0115 100644 --- a/modules/video_coding/BUILD.gn +++ b/modules/video_coding/BUILD.gn
@@ -47,7 +47,6 @@ ] deps = [ - "../../api:array_view", "../../common_video/generic_frame_descriptor", "../../rtc_base:checks", "../../rtc_base:logging", @@ -113,7 +112,6 @@ ":codec_globals_headers", ":h264_sprop_parameter_sets", ":packet_buffer", - "../../api:array_view", "../../api/video:video_frame", "../../api/video:video_frame_type", "../../common_video", @@ -199,7 +197,6 @@ "..:module_api", "..:module_api_public", "..:module_fec_api", - "../../api:array_view", "../../api:fec_controller_api", "../../api:field_trials_view", "../../api:rtp_packet_info", @@ -338,7 +335,6 @@ ] deps = [ - "../../api:array_view", "../../api:field_trials_view", "../../api:scoped_refptr", "../../api:sequence_checker", @@ -619,7 +615,6 @@ ":video_codec_interface", ":video_coding_utility", ":webrtc_libvpx_interface", - "../../api:array_view", "../../api:fec_controller_api", "../../api:field_trials_view", "../../api:refcountedbase", @@ -854,7 +849,6 @@ ":video_coding_utility", ":videocodec_test_stats_impl", ":webrtc_vp9_helpers", - "../../api:array_view", "../../api:field_trials_view", "../../api:make_ref_counted", "../../api:rtp_parameters", @@ -993,7 +987,6 @@ ":webrtc_vp8", ":webrtc_vp9", ":webrtc_vp9_helpers", - "../../api:array_view", "../../api:create_frame_generator", "../../api:create_videocodec_test_fixture_api", "../../api:field_trials", @@ -1131,7 +1124,6 @@ ":webrtc_vp9_helpers", "..:module_api", "..:module_fec_api", - "../../api:array_view", "../../api:create_frame_generator", "../../api:create_simulcast_test_fixture_api", "../../api:fec_controller_api",
diff --git a/modules/video_coding/codecs/av1/BUILD.gn b/modules/video_coding/codecs/av1/BUILD.gn index 5d6156f..3490a9f 100644 --- a/modules/video_coding/codecs/av1/BUILD.gn +++ b/modules/video_coding/codecs/av1/BUILD.gn
@@ -121,7 +121,6 @@ ":av1_svc_config", ":dav1d_decoder", "../..:video_codec_interface", - "../../../../api:array_view", "../../../../api:field_trials", "../../../../api:make_ref_counted", "../../../../api:scoped_refptr",
diff --git a/modules/video_coding/codecs/av1/dav1d_decoder_unittest.cc b/modules/video_coding/codecs/av1/dav1d_decoder_unittest.cc index 217edc1..edb969e 100644 --- a/modules/video_coding/codecs/av1/dav1d_decoder_unittest.cc +++ b/modules/video_coding/codecs/av1/dav1d_decoder_unittest.cc
@@ -13,9 +13,9 @@ #include <cstdint> #include <memory> #include <optional> +#include <span> #include <utility> -#include "api/array_view.h" #include "api/environment/environment.h" #include "api/environment/environment_factory.h" #include "api/video/color_space.h" @@ -45,7 +45,7 @@ 0x22, 0x02, 0x02, 0x03, 0x08, 0x32, 0x0e, 0x10, 0x00, 0xac, 0x02, 0x05, 0x14, 0x20, 0x81, 0x00, 0x02, 0x00, 0x95, 0xe1, 0xe0}; -EncodedImage CreateEncodedImage(ArrayView<const uint8_t> data) { +EncodedImage CreateEncodedImage(std::span<const uint8_t> data) { EncodedImage image; image.SetEncodedData(EncodedImageBuffer::Create(data.data(), data.size())); return image;
diff --git a/modules/video_coding/codecs/test/videocodec_test_fixture_impl.cc b/modules/video_coding/codecs/test/videocodec_test_fixture_impl.cc index 4260669..5c60bdb 100644 --- a/modules/video_coding/codecs/test/videocodec_test_fixture_impl.cc +++ b/modules/video_coding/codecs/test/videocodec_test_fixture_impl.cc
@@ -24,7 +24,6 @@ #include "absl/strings/match.h" #include "absl/strings/str_replace.h" #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/environment/environment_factory.h" #include "api/field_trials_view.h" #include "api/make_ref_counted.h"
diff --git a/modules/video_coding/codecs/vp9/libvpx_vp9_decoder.cc b/modules/video_coding/codecs/vp9/libvpx_vp9_decoder.cc index 77740ef..0dafd3e 100644 --- a/modules/video_coding/codecs/vp9/libvpx_vp9_decoder.cc +++ b/modules/video_coding/codecs/vp9/libvpx_vp9_decoder.cc
@@ -17,8 +17,8 @@ #include <cstdint> #include <cstring> #include <optional> +#include <span> -#include "api/array_view.h" #include "api/scoped_refptr.h" #include "api/video/color_space.h" #include "api/video/encoded_image.h" @@ -209,7 +209,7 @@ if (input_image.IsKey()) { std::optional<Vp9UncompressedHeader> frame_info = ParseUncompressedVp9Header( - MakeArrayView(input_image.data(), input_image.size())); + std::span(input_image.data(), input_image.size())); if (frame_info) { RenderResolution frame_resolution(frame_info->frame_width, frame_info->frame_height);
diff --git a/modules/video_coding/codecs/vp9/libvpx_vp9_encoder.cc b/modules/video_coding/codecs/vp9/libvpx_vp9_encoder.cc index 105a6e8..d757f1a 100644 --- a/modules/video_coding/codecs/vp9/libvpx_vp9_encoder.cc +++ b/modules/video_coding/codecs/vp9/libvpx_vp9_encoder.cc
@@ -21,12 +21,12 @@ #include <memory> #include <numeric> #include <optional> +#include <span> #include <utility> #include <vector> #include "absl/algorithm/container.h" #include "absl/container/inlined_vector.h" -#include "api/array_view.h" #include "api/environment/environment.h" #include "api/fec_controller_override.h" #include "api/field_trials_view.h" @@ -203,7 +203,7 @@ } vpx_svc_ref_frame_config_t Vp9References( - ArrayView<const ScalableVideoController::LayerFrameConfig> layers) { + std::span<const ScalableVideoController::LayerFrameConfig> layers) { vpx_svc_ref_frame_config_t ref_config = {}; for (const ScalableVideoController::LayerFrameConfig& layer_frame : layers) { const auto& buffers = layer_frame.Buffers();
diff --git a/modules/video_coding/codecs/vp9/test/vp9_impl_unittest.cc b/modules/video_coding/codecs/vp9/test/vp9_impl_unittest.cc index c6ffdb9..30884f4 100644 --- a/modules/video_coding/codecs/vp9/test/vp9_impl_unittest.cc +++ b/modules/video_coding/codecs/vp9/test/vp9_impl_unittest.cc
@@ -14,13 +14,13 @@ #include <functional> #include <memory> #include <optional> +#include <span> #include <string> #include <tuple> #include <vector> #include "absl/container/inlined_vector.h" #include "absl/memory/memory.h" -#include "api/array_view.h" #include "api/environment/environment_factory.h" #include "api/field_trials.h" #include "api/make_ref_counted.h" @@ -2116,7 +2116,7 @@ if (picture_idx == 0) { EXPECT_EQ(vp9.num_ref_pics, 0) << "Frame " << i; } else { - EXPECT_THAT(MakeArrayView(vp9.p_diff, vp9.num_ref_pics), + EXPECT_THAT(std::span(vp9.p_diff, vp9.num_ref_pics), UnorderedElementsAreArray(gof.pid_diff[gof_idx], gof.num_ref_pics[gof_idx])) << "Frame " << i;
diff --git a/modules/video_coding/frame_dependencies_calculator.cc b/modules/video_coding/frame_dependencies_calculator.cc index ca046f2..2d28a41 100644 --- a/modules/video_coding/frame_dependencies_calculator.cc +++ b/modules/video_coding/frame_dependencies_calculator.cc
@@ -14,10 +14,10 @@ #include <iterator> #include <optional> #include <set> +#include <span> #include "absl/algorithm/container.h" #include "absl/container/inlined_vector.h" -#include "api/array_view.h" #include "common_video/generic_frame_descriptor/generic_frame_info.h" #include "rtc_base/checks.h" #include "rtc_base/logging.h" @@ -26,7 +26,7 @@ absl::InlinedVector<int64_t, 5> FrameDependenciesCalculator::FromBuffersUsage( int64_t frame_id, - ArrayView<const CodecBufferUsage> buffers_usage) { + std::span<const CodecBufferUsage> buffers_usage) { absl::InlinedVector<int64_t, 5> dependencies; RTC_DCHECK_GT(buffers_usage.size(), 0); for (const CodecBufferUsage& buffer_usage : buffers_usage) {
diff --git a/modules/video_coding/frame_dependencies_calculator.h b/modules/video_coding/frame_dependencies_calculator.h index 3a354c5..d9da436 100644 --- a/modules/video_coding/frame_dependencies_calculator.h +++ b/modules/video_coding/frame_dependencies_calculator.h
@@ -14,9 +14,9 @@ #include <stdint.h> #include <optional> +#include <span> #include "absl/container/inlined_vector.h" -#include "api/array_view.h" #include "common_video/generic_frame_descriptor/generic_frame_info.h" namespace webrtc { @@ -32,7 +32,7 @@ // Calculates frame dependencies based on previous encoder buffer usage. absl::InlinedVector<int64_t, 5> FromBuffersUsage( int64_t frame_id, - ArrayView<const CodecBufferUsage> buffers_usage); + std::span<const CodecBufferUsage> buffers_usage); private: struct BufferUsage {
diff --git a/modules/video_coding/generic_decoder_unittest.cc b/modules/video_coding/generic_decoder_unittest.cc index 7c08345..23ecf26 100644 --- a/modules/video_coding/generic_decoder_unittest.cc +++ b/modules/video_coding/generic_decoder_unittest.cc
@@ -12,10 +12,10 @@ #include <cstdint> #include <optional> +#include <span> #include <utility> #include <vector> -#include "api/array_view.h" #include "api/field_trials.h" #include "api/rtp_packet_infos.h" #include "api/scoped_refptr.h" @@ -75,7 +75,7 @@ return ret; } - ArrayView<const VideoFrame> GetAllFrames() const { return frames_; } + std::span<const VideoFrame> GetAllFrames() const { return frames_; } void OnDroppedFrames(uint32_t frames_dropped) override { frames_dropped_ += frames_dropped;
diff --git a/modules/video_coding/h264_sps_pps_tracker.cc b/modules/video_coding/h264_sps_pps_tracker.cc index 3f76077..ebd8035 100644 --- a/modules/video_coding/h264_sps_pps_tracker.cc +++ b/modules/video_coding/h264_sps_pps_tracker.cc
@@ -13,10 +13,10 @@ #include <cstddef> #include <cstdint> #include <optional> +#include <span> #include <utility> #include <vector> -#include "api/array_view.h" #include "api/video/video_codec_type.h" #include "common_video/h264/h264_common.h" #include "common_video/h264/pps_parser.h" @@ -35,7 +35,7 @@ } // namespace H264SpsPpsTracker::FixedBitstream H264SpsPpsTracker::CopyAndFixBitstream( - ArrayView<const uint8_t> bitstream, + std::span<const uint8_t> bitstream, RTPVideoHeader* video_header) { RTC_DCHECK(video_header); RTC_DCHECK(video_header->codec == kVideoCodecH264); @@ -206,9 +206,9 @@ return; } std::optional<SpsParser::SpsState> parsed_sps = SpsParser::ParseSps( - ArrayView<const uint8_t>(sps).subspan(kNaluHeaderOffset)); + std::span<const uint8_t>(sps).subspan(kNaluHeaderOffset)); std::optional<PpsParser::PpsState> parsed_pps = PpsParser::ParsePps( - ArrayView<const uint8_t>(pps).subspan(kNaluHeaderOffset)); + std::span<const uint8_t>(pps).subspan(kNaluHeaderOffset)); if (!parsed_sps) { RTC_LOG(LS_WARNING) << "Failed to parse SPS.";
diff --git a/modules/video_coding/h264_sps_pps_tracker.h b/modules/video_coding/h264_sps_pps_tracker.h index 132aaa0..b8c04c0 100644 --- a/modules/video_coding/h264_sps_pps_tracker.h +++ b/modules/video_coding/h264_sps_pps_tracker.h
@@ -14,9 +14,9 @@ #include <cstddef> #include <cstdint> #include <map> +#include <span> #include <vector> -#include "api/array_view.h" #include "modules/rtp_rtcp/source/rtp_video_header.h" #include "rtc_base/buffer.h" #include "rtc_base/copy_on_write_buffer.h" @@ -38,7 +38,7 @@ ~H264SpsPpsTracker() = default; // Returns fixed bitstream and modifies `video_header`. - FixedBitstream CopyAndFixBitstream(ArrayView<const uint8_t> bitstream, + FixedBitstream CopyAndFixBitstream(std::span<const uint8_t> bitstream, RTPVideoHeader* video_header); void InsertSpsPpsNalus(const std::vector<uint8_t>& sps,
diff --git a/modules/video_coding/h264_sps_pps_tracker_unittest.cc b/modules/video_coding/h264_sps_pps_tracker_unittest.cc index 079049d..adb2307 100644 --- a/modules/video_coding/h264_sps_pps_tracker_unittest.cc +++ b/modules/video_coding/h264_sps_pps_tracker_unittest.cc
@@ -11,9 +11,9 @@ #include "modules/video_coding/h264_sps_pps_tracker.h" #include <cstdint> +#include <span> #include <vector> -#include "api/array_view.h" #include "api/video/video_codec_type.h" #include "common_video/h264/h264_common.h" #include "modules/rtp_rtcp/source/rtp_video_header.h" @@ -30,7 +30,7 @@ const uint8_t start_code[] = {0, 0, 0, 1}; -ArrayView<const uint8_t> Bitstream( +std::span<const uint8_t> Bitstream( const H264SpsPpsTracker::FixedBitstream& fixed) { return fixed.bitstream; }
diff --git a/modules/video_coding/h26x_packet_buffer.cc b/modules/video_coding/h26x_packet_buffer.cc index 10c22f3..cee203a 100644 --- a/modules/video_coding/h26x_packet_buffer.cc +++ b/modules/video_coding/h26x_packet_buffer.cc
@@ -17,12 +17,12 @@ #include <limits> #include <memory> #include <optional> +#include <span> #include <string> #include <utility> #include <vector> #include "absl/algorithm/container.h" -#include "api/array_view.h" #include "api/video/video_codec_type.h" #include "api/video/video_frame_type.h" #include "common_video/h264/h264_common.h" @@ -77,7 +77,7 @@ }); } -int64_t* GetContinuousSequence(ArrayView<int64_t> last_continuous, +int64_t* GetContinuousSequence(std::span<int64_t> last_continuous, int64_t unwrapped_seq_num) { for (int64_t& last : last_continuous) { if (unwrapped_seq_num - 1 == last) { @@ -361,9 +361,9 @@ return; } std::optional<SpsParser::SpsState> parsed_sps = SpsParser::ParseSps( - ArrayView<const uint8_t>(sps).subspan(kNaluHeaderOffset)); + std::span<const uint8_t>(sps).subspan(kNaluHeaderOffset)); std::optional<PpsParser::PpsState> parsed_pps = PpsParser::ParsePps( - ArrayView<const uint8_t>(pps).subspan(kNaluHeaderOffset)); + std::span<const uint8_t>(pps).subspan(kNaluHeaderOffset)); if (!parsed_sps) { RTC_LOG(LS_WARNING) << "Failed to parse SPS.";
diff --git a/modules/video_coding/h26x_packet_buffer_unittest.cc b/modules/video_coding/h26x_packet_buffer_unittest.cc index f786776..8a50b78 100644 --- a/modules/video_coding/h26x_packet_buffer_unittest.cc +++ b/modules/video_coding/h26x_packet_buffer_unittest.cc
@@ -12,11 +12,11 @@ #include <cstdint> #include <cstring> #include <memory> +#include <span> #include <string> #include <utility> #include <vector> -#include "api/array_view.h" #include "api/video/render_resolution.h" #include "api/video/video_codec_type.h" #include "api/video/video_frame_type.h" @@ -378,7 +378,7 @@ } #endif -ArrayView<const uint8_t> PacketPayload( +std::span<const uint8_t> PacketPayload( const std::unique_ptr<H26xPacketBuffer::Packet>& packet) { return packet->video_payload; }
diff --git a/modules/video_coding/loss_notification_controller.cc b/modules/video_coding/loss_notification_controller.cc index 97f86dc..4f4a008 100644 --- a/modules/video_coding/loss_notification_controller.cc +++ b/modules/video_coding/loss_notification_controller.cc
@@ -12,8 +12,8 @@ #include <cstddef> #include <cstdint> +#include <span> -#include "api/array_view.h" #include "api/sequence_checker.h" #include "modules/include/module_common_types.h" #include "rtc_base/checks.h" @@ -113,7 +113,7 @@ uint16_t first_seq_num, int64_t frame_id, bool discardable, - ArrayView<const int64_t> frame_dependencies) { + std::span<const int64_t> frame_dependencies) { RTC_DCHECK_RUN_ON(&sequence_checker_); DiscardOldInformation(); // Prevent memory overconsumption. @@ -139,7 +139,7 @@ } bool LossNotificationController::AllDependenciesDecodable( - ArrayView<const int64_t> frame_dependencies) const { + std::span<const int64_t> frame_dependencies) const { RTC_DCHECK_RUN_ON(&sequence_checker_); // Due to packet reordering, frame buffering and asynchronous decoders, it is
diff --git a/modules/video_coding/loss_notification_controller.h b/modules/video_coding/loss_notification_controller.h index f6b9992..0726584 100644 --- a/modules/video_coding/loss_notification_controller.h +++ b/modules/video_coding/loss_notification_controller.h
@@ -15,8 +15,8 @@ #include <optional> #include <set> +#include <span> -#include "api/array_view.h" #include "api/sequence_checker.h" #include "modules/include/module_common_types.h" #include "rtc_base/system/no_unique_address.h" @@ -29,7 +29,7 @@ struct FrameDetails { bool is_keyframe; int64_t frame_id; - ArrayView<const int64_t> frame_dependencies; + std::span<const int64_t> frame_dependencies; }; LossNotificationController(KeyFrameRequestSender* key_frame_request_sender, @@ -45,13 +45,13 @@ void OnAssembledFrame(uint16_t first_seq_num, int64_t frame_id, bool discardable, - ArrayView<const int64_t> frame_dependencies); + std::span<const int64_t> frame_dependencies); private: void DiscardOldInformation(); bool AllDependenciesDecodable( - ArrayView<const int64_t> frame_dependencies) const; + std::span<const int64_t> frame_dependencies) const; // When the loss of a packet or the non-decodability of a frame is detected, // produces a key frame request or a loss notification.
diff --git a/modules/video_coding/packet_buffer_unittest.cc b/modules/video_coding/packet_buffer_unittest.cc index af994c1..29f13e4 100644 --- a/modules/video_coding/packet_buffer_unittest.cc +++ b/modules/video_coding/packet_buffer_unittest.cc
@@ -14,10 +14,10 @@ #include <limits> #include <memory> #include <ostream> +#include <span> #include <utility> #include <vector> -#include "api/array_view.h" #include "api/video/video_codec_type.h" #include "api/video/video_frame_type.h" #include "common_video/h264/h264_common.h" @@ -48,7 +48,7 @@ // Validates frame boundaries are valid and returns first sequence_number for // each frame. std::vector<uint16_t> StartSeqNums( - ArrayView<const std::unique_ptr<PacketBuffer::Packet>> packets) { + std::span<const std::unique_ptr<PacketBuffer::Packet>> packets) { std::vector<uint16_t> result; bool frame_boundary = true; for (const auto& packet : packets) { @@ -117,7 +117,7 @@ IsKeyFrame keyframe, // is keyframe IsFirst first, // is first packet of frame IsLast last, // is last packet of frame - ArrayView<const uint8_t> data = {}, + std::span<const uint8_t> data = {}, uint32_t timestamp = 123u) { // rtp timestamp auto packet = std::make_unique<PacketBuffer::Packet>(); packet->video_header.codec = kVideoCodecGeneric; @@ -421,7 +421,7 @@ IsFirst first, // is first packet of frame IsLast last, // is last packet of frame uint32_t timestamp, // rtp timestamp - ArrayView<const uint8_t> data = {}, + std::span<const uint8_t> data = {}, uint32_t width = 0, // width of frame (SPS/IDR) uint32_t height = 0, // height of frame (SPS/IDR) bool generic = false) { // has generic descriptor @@ -459,7 +459,7 @@ IsFirst first, // is first packet of frame IsLast last, // is last packet of frame uint32_t timestamp, // rtp timestamp - ArrayView<const uint8_t> data = {}, + std::span<const uint8_t> data = {}, uint32_t width = 0, // width of frame (SPS/IDR) uint32_t height = 0) { // height of frame (SPS/IDR) auto packet = std::make_unique<PacketBuffer::Packet>();
diff --git a/modules/video_coding/rtp_vp8_ref_finder_unittest.cc b/modules/video_coding/rtp_vp8_ref_finder_unittest.cc index 0ed70b2..b52d1fb 100644 --- a/modules/video_coding/rtp_vp8_ref_finder_unittest.cc +++ b/modules/video_coding/rtp_vp8_ref_finder_unittest.cc
@@ -13,10 +13,10 @@ #include <cstdint> #include <memory> #include <optional> +#include <span> #include <utility> #include <vector> -#include "api/array_view.h" #include "api/rtp_packet_infos.h" #include "api/video/encoded_frame.h" #include "api/video/encoded_image.h" @@ -44,7 +44,7 @@ MATCHER_P2(HasIdAndRefs, id, refs, "") { return Matches(Eq(id))(arg->Id()) && Matches(UnorderedElementsAreArray(refs))( - ArrayView<int64_t>(arg->references, arg->num_references)); + std::span<int64_t>(arg->references, arg->num_references)); } Matcher<const std::vector<std::unique_ptr<EncodedFrame>>&>
diff --git a/modules/video_coding/rtp_vp9_ref_finder_unittest.cc b/modules/video_coding/rtp_vp9_ref_finder_unittest.cc index ab3c67b..0863325 100644 --- a/modules/video_coding/rtp_vp9_ref_finder_unittest.cc +++ b/modules/video_coding/rtp_vp9_ref_finder_unittest.cc
@@ -16,10 +16,10 @@ #include <memory> #include <optional> #include <ostream> +#include <span> #include <utility> #include <vector> -#include "api/array_view.h" #include "api/rtp_packet_infos.h" #include "api/video/encoded_frame.h" #include "api/video/encoded_image.h" @@ -192,7 +192,7 @@ return false; } - ArrayView<int64_t> actual_refs((*it)->references, (*it)->num_references); + std::span<int64_t> actual_refs((*it)->references, (*it)->num_references); if (!Matches(UnorderedElementsAreArray(expected_refs_))(actual_refs)) { if (result_listener->IsInterested()) { *result_listener << "Frame with frame_id:" << frame_id_ << " and "
diff --git a/modules/video_coding/svc/BUILD.gn b/modules/video_coding/svc/BUILD.gn index 7a7864b..dc08441 100644 --- a/modules/video_coding/svc/BUILD.gn +++ b/modules/video_coding/svc/BUILD.gn
@@ -127,7 +127,6 @@ ":scalable_video_controller", "..:chain_diff_calculator", "..:frame_dependencies_calculator", - "../../../api:array_view", "../../../api/transport/rtp:dependency_descriptor", "../../../api/video:video_bitrate_allocation", "../../../api/video:video_frame",
diff --git a/modules/video_coding/svc/scalability_structure_key_svc_unittest.cc b/modules/video_coding/svc/scalability_structure_key_svc_unittest.cc index 145a278..71d64a3 100644 --- a/modules/video_coding/svc/scalability_structure_key_svc_unittest.cc +++ b/modules/video_coding/svc/scalability_structure_key_svc_unittest.cc
@@ -9,9 +9,9 @@ */ #include "modules/video_coding/svc/scalability_structure_key_svc.h" +#include <span> #include <vector> -#include "api/array_view.h" #include "common_video/generic_frame_descriptor/generic_frame_info.h" #include "modules/video_coding/svc/scalability_structure_test_helpers.h" #include "test/gmock.h" @@ -234,7 +234,7 @@ EXPECT_EQ(frames[13].temporal_id, 0); EXPECT_EQ(frames[14].temporal_id, 0); EXPECT_EQ(frames[15].temporal_id, 0); - auto all_frames = MakeArrayView(frames.data(), frames.size()); + auto all_frames = std::span(frames.data(), frames.size()); EXPECT_TRUE(wrapper.FrameReferencesAreValid(all_frames.subspan(0, 13))); // Frames starting from the frame#13 should not reference any earlier frames. EXPECT_TRUE(wrapper.FrameReferencesAreValid(all_frames.subspan(13)));
diff --git a/modules/video_coding/svc/scalability_structure_l2t2_key_shift_unittest.cc b/modules/video_coding/svc/scalability_structure_l2t2_key_shift_unittest.cc index 1532940..ebf3ce4 100644 --- a/modules/video_coding/svc/scalability_structure_l2t2_key_shift_unittest.cc +++ b/modules/video_coding/svc/scalability_structure_l2t2_key_shift_unittest.cc
@@ -9,9 +9,9 @@ */ #include "modules/video_coding/svc/scalability_structure_l2t2_key_shift.h" +#include <span> #include <vector> -#include "api/array_view.h" #include "common_video/generic_frame_descriptor/generic_frame_info.h" #include "modules/video_coding/svc/scalability_structure_test_helpers.h" #include "test/gmock.h" @@ -236,8 +236,7 @@ EXPECT_THAT(frames[4].temporal_id, 1); // Expect frame[5] to be a key frame. - EXPECT_TRUE( - wrapper.FrameReferencesAreValid(MakeArrayView(frames.data() + 5, 4))); + EXPECT_TRUE(wrapper.FrameReferencesAreValid(std::span(frames.data() + 5, 4))); EXPECT_THAT(frames[5].spatial_id, 0); EXPECT_THAT(frames[6].spatial_id, 1);
diff --git a/modules/video_coding/svc/scalability_structure_test_helpers.cc b/modules/video_coding/svc/scalability_structure_test_helpers.cc index 004b7d2..7b4f1e4 100644 --- a/modules/video_coding/svc/scalability_structure_test_helpers.cc +++ b/modules/video_coding/svc/scalability_structure_test_helpers.cc
@@ -12,10 +12,10 @@ #include <bitset> #include <cstddef> #include <cstdint> +#include <span> #include <utility> #include <vector> -#include "api/array_view.h" #include "api/video/video_bitrate_allocation.h" #include "common_video/generic_frame_descriptor/generic_frame_info.h" #include "modules/video_coding/chain_diff_calculator.h" @@ -66,7 +66,7 @@ } bool ScalabilityStructureWrapper::FrameReferencesAreValid( - ArrayView<const GenericFrameInfo> frames) const { + std::span<const GenericFrameInfo> frames) const { bool valid = true; // VP9 and AV1 supports up to 8 buffers. Expect no more buffers are not used. std::bitset<8> buffer_contains_frame;
diff --git a/modules/video_coding/svc/scalability_structure_test_helpers.h b/modules/video_coding/svc/scalability_structure_test_helpers.h index 42257b5..ddc492a 100644 --- a/modules/video_coding/svc/scalability_structure_test_helpers.h +++ b/modules/video_coding/svc/scalability_structure_test_helpers.h
@@ -12,9 +12,9 @@ #include <stdint.h> +#include <span> #include <vector> -#include "api/array_view.h" #include "api/video/video_bitrate_allocation.h" #include "common_video/generic_frame_descriptor/generic_frame_info.h" #include "modules/video_coding/chain_diff_calculator.h" @@ -43,7 +43,7 @@ // Returns false and ADD_FAILUREs for frames with invalid references. // In particular validates no frame frame reference to frame before frames[0]. // In error messages frames are indexed starting with 0. - bool FrameReferencesAreValid(ArrayView<const GenericFrameInfo> frames) const; + bool FrameReferencesAreValid(std::span<const GenericFrameInfo> frames) const; private: ScalableVideoController& structure_controller_;
diff --git a/modules/video_coding/svc/scalability_structure_unittest.cc b/modules/video_coding/svc/scalability_structure_unittest.cc index 849f08f..1d95c6f 100644 --- a/modules/video_coding/svc/scalability_structure_unittest.cc +++ b/modules/video_coding/svc/scalability_structure_unittest.cc
@@ -14,11 +14,11 @@ #include <optional> #include <ostream> #include <set> +#include <span> #include <string> #include <utility> #include <vector> -#include "api/array_view.h" #include "api/transport/rtp/dependency_descriptor.h" #include "api/video/video_bitrate_allocation.h" #include "api/video_codecs/scalability_mode.h" @@ -115,14 +115,12 @@ controller->StreamConfig(); EXPECT_EQ(config.num_spatial_layers, static_config->num_spatial_layers); EXPECT_EQ(config.num_temporal_layers, static_config->num_temporal_layers); - EXPECT_THAT( - MakeArrayView(config.scaling_factor_num, config.num_spatial_layers), - ElementsAreArray(static_config->scaling_factor_num, - static_config->num_spatial_layers)); - EXPECT_THAT( - MakeArrayView(config.scaling_factor_den, config.num_spatial_layers), - ElementsAreArray(static_config->scaling_factor_den, - static_config->num_spatial_layers)); + EXPECT_THAT(std::span(config.scaling_factor_num, config.num_spatial_layers), + ElementsAreArray(static_config->scaling_factor_num, + static_config->num_spatial_layers)); + EXPECT_THAT(std::span(config.scaling_factor_den, config.num_spatial_layers), + ElementsAreArray(static_config->scaling_factor_den, + static_config->num_spatial_layers)); } TEST_P(ScalabilityStructureTest,
diff --git a/modules/video_coding/utility/qp_parser.cc b/modules/video_coding/utility/qp_parser.cc index 491bae8..95cf4fd 100644 --- a/modules/video_coding/utility/qp_parser.cc +++ b/modules/video_coding/utility/qp_parser.cc
@@ -13,8 +13,8 @@ #include <cstddef> #include <cstdint> #include <optional> +#include <span> -#include "api/array_view.h" #include "api/video/video_codec_constants.h" #include "api/video/video_codec_type.h" #include "modules/video_coding/utility/vp8_header_parser.h" @@ -58,7 +58,7 @@ size_t frame_size) { MutexLock lock(&mutex_); bitstream_parser_.ParseBitstream( - ArrayView<const uint8_t>(frame_data, frame_size)); + std::span<const uint8_t>(frame_data, frame_size)); return bitstream_parser_.GetLastSliceQp(); } @@ -67,7 +67,7 @@ size_t frame_size) { MutexLock lock(&mutex_); bitstream_parser_.ParseBitstream( - ArrayView<const uint8_t>(frame_data, frame_size)); + std::span<const uint8_t>(frame_data, frame_size)); return bitstream_parser_.GetLastSliceQp(); } #endif
diff --git a/modules/video_coding/utility/vp9_uncompressed_header_parser.cc b/modules/video_coding/utility/vp9_uncompressed_header_parser.cc index ca3c859..4219ecd 100644 --- a/modules/video_coding/utility/vp9_uncompressed_header_parser.cc +++ b/modules/video_coding/utility/vp9_uncompressed_header_parser.cc
@@ -12,10 +12,10 @@ #include <cstddef> #include <cstdint> #include <optional> +#include <span> #include <string> #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "modules/video_coding/utility/vp9_constants.h" #include "rtc_base/bitstream_reader.h" #include "rtc_base/logging.h" @@ -513,7 +513,7 @@ } std::optional<Vp9UncompressedHeader> ParseUncompressedVp9Header( - ArrayView<const uint8_t> buf) { + std::span<const uint8_t> buf) { BitstreamReader reader(buf); Vp9UncompressedHeader frame_info; Parse(reader, &frame_info, /*qp_only=*/false); @@ -526,7 +526,7 @@ namespace vp9 { bool GetQp(const uint8_t* buf, size_t length, int* qp) { - BitstreamReader reader(MakeArrayView(buf, length)); + BitstreamReader reader(std::span(buf, length)); Vp9UncompressedHeader frame_info; Parse(reader, &frame_info, /*qp_only=*/true); if (!reader.Ok()) {
diff --git a/modules/video_coding/utility/vp9_uncompressed_header_parser.h b/modules/video_coding/utility/vp9_uncompressed_header_parser.h index 0153a3b..400559b 100644 --- a/modules/video_coding/utility/vp9_uncompressed_header_parser.h +++ b/modules/video_coding/utility/vp9_uncompressed_header_parser.h
@@ -17,9 +17,9 @@ #include <array> #include <bitset> #include <optional> +#include <span> #include <string> -#include "api/array_view.h" #include "modules/video_coding/utility/vp9_constants.h" namespace webrtc { @@ -151,7 +151,7 @@ // Parses the uncompressed header and populates (most) values in a // UncompressedHeader struct. Returns nullopt on failure. std::optional<Vp9UncompressedHeader> ParseUncompressedVp9Header( - ArrayView<const uint8_t> buf); + std::span<const uint8_t> buf); } // namespace webrtc