Replace ArrayView with std::span in api/ 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 Updated comment in audio_frame.cc to be more accurate matching one of the behavior changes between ArrayView and std::span Bug: webrtc:439801349 Change-Id: Iec42e1bf3ff5539211e8a4c85773ba08cf1412dd Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/461060 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@{#47315}
diff --git a/api/BUILD.gn b/api/BUILD.gn index 3555ec0..df24e79 100644 --- a/api/BUILD.gn +++ b/api/BUILD.gn
@@ -523,7 +523,6 @@ "rtp_transceiver_interface.h", ] deps = [ - ":array_view", ":ref_count", ":rtc_error", ":rtp_parameters", @@ -594,7 +593,6 @@ "video_track_source_proxy_factory.h", # Used downstream ] deps = [ - ":array_view", ":async_dns_resolver", ":audio_options_api", ":candidate", @@ -684,7 +682,6 @@ "frame_transformer_interface.h", ] deps = [ - ":array_view", ":ref_count", ":scoped_refptr", "../rtc_base:checks", @@ -784,7 +781,6 @@ sources = [ "test/video_quality_analyzer_interface.h" ] deps = [ - ":array_view", ":rtc_stats_api", ":scoped_refptr", ":stats_observer_interface", @@ -838,7 +834,6 @@ "rtp_parameters.h", ] deps = [ - ":array_view", ":priority", ":rtc_error", ":rtp_transceiver_direction", @@ -1040,10 +1035,7 @@ rtc_source_set("data_channel_event_observer_interface") { visibility = [ "*" ] sources = [ "data_channel_event_observer_interface.h" ] - deps = [ - ":array_view", - "//third_party/abseil-cpp/absl/strings:string_view", - ] + deps = [ "//third_party/abseil-cpp/absl/strings:string_view" ] } rtc_source_set("libjingle_logging_api") { @@ -1098,7 +1090,6 @@ ] deps = [ - ":array_view", "../rtc_base:stringutils", "../rtc_base/system:rtc_export", ] @@ -1110,7 +1101,7 @@ "call/transport.cc", "call/transport.h", ] - deps = [ ":array_view" ] + deps = [] } rtc_source_set("bitrate_allocation") { @@ -1143,7 +1134,6 @@ "test/network_emulation_manager.h", ] deps = [ - ":array_view", ":field_trials_view", ":peer_network_dependencies", ":simulated_network_api", @@ -1262,7 +1252,6 @@ visibility = [ "*" ] sources = [ "datagram_connection.h" ] deps = [ - ":array_view", ":candidate", ":ref_count", "../p2p:transport_description", @@ -1459,7 +1448,6 @@ testonly = true sources = [ "test/mock_frame_encryptor.h" ] deps = [ - ":array_view", ":rtp_parameters", "../test:test_support", "crypto:frame_encryptor_interface", @@ -1471,7 +1459,6 @@ testonly = true sources = [ "test/mock_frame_decryptor.h" ] deps = [ - ":array_view", ":rtp_parameters", "../test:test_support", "crypto:frame_decryptor_interface", @@ -1509,7 +1496,6 @@ "test/fake_frame_encryptor.h", ] deps = [ - ":array_view", ":rtp_parameters", "../rtc_base:checks", "../rtc_base:refcount", @@ -1525,7 +1511,6 @@ "test/fake_frame_decryptor.h", ] deps = [ - ":array_view", ":rtp_parameters", "../rtc_base:checks", "crypto:frame_decryptor_interface", @@ -1616,7 +1601,6 @@ testonly = true sources = [ "test/mock_transformable_frame.h" ] deps = [ - ":array_view", ":frame_transformer_interface", "../test:test_support", "units:time_delta", @@ -1662,7 +1646,6 @@ ] deps = [ - ":array_view", ":dtls_transport_interface", ":dtmf_sender_interface", ":frame_transformer_interface", @@ -1690,7 +1673,6 @@ sources = [ "test/mock_transformable_audio_frame.h" ] deps = [ - ":array_view", ":frame_transformer_interface", "../test:test_support", "units:time_delta", @@ -1704,7 +1686,6 @@ sources = [ "test/mock_transformable_video_frame.h" ] deps = [ - ":array_view", ":frame_transformer_interface", "../test:test_support", "units:time_delta", @@ -1801,7 +1782,6 @@ testonly = true sources = [ "test/mock_datagram_connection.h" ] deps = [ - ":array_view", ":candidate", ":datagram_connection", "../p2p:transport_description", @@ -1816,7 +1796,6 @@ testonly = true sources = [ "test/mock_datagram_connection_observer.h" ] deps = [ - ":array_view", ":candidate", ":datagram_connection", "//test:test_support",
diff --git a/api/audio/BUILD.gn b/api/audio/BUILD.gn index db356e6..578930e 100644 --- a/api/audio/BUILD.gn +++ b/api/audio/BUILD.gn
@@ -48,7 +48,6 @@ ] deps = [ - "..:array_view", "..:rtp_packet_info", "../../rtc_base:checks", "../../rtc_base:logging", @@ -84,7 +83,6 @@ ":aec3_config", ":audio_processing_statistics", ":echo_control", - "..:array_view", "..:ref_count", "..:scoped_refptr", "../../rtc_base:checks", @@ -176,10 +174,7 @@ rtc_source_set("neural_residual_echo_estimator_api") { visibility = [ "*" ] sources = [ "neural_residual_echo_estimator.h" ] - deps = [ - ":aec3_config", - "..:array_view", - ] + deps = [ ":aec3_config" ] } if (rtc_enable_protobuf) {
diff --git a/api/audio/audio_frame.cc b/api/audio/audio_frame.cc index b894673..14afade 100644 --- a/api/audio/audio_frame.cc +++ b/api/audio/audio_frame.cc
@@ -13,9 +13,9 @@ #include <cstdint> #include <cstring> #include <optional> +#include <span> #include "absl/algorithm/container.h" -#include "api/array_view.h" #include "api/audio/audio_view.h" #include "api/audio/channel_layout.h" #include "api/rtp_packet_infos.h" @@ -133,12 +133,10 @@ InterleavedView<const int16_t> AudioFrame::data_view() const { // If you get a nullptr from `data_view()`, it's likely because the // samples_per_channel_ and/or num_channels_ members haven't been properly - // set. Since `data_view()` returns an InterleavedView<> (which internally - // uses ArrayView<>), we inherit the behavior in InterleavedView when - // the view size is 0 that ArrayView<>::data() returns nullptr. So, even when - // an AudioFrame is muted and we want to return `zeroed_data()`, if - // samples_per_channel_ or num_channels_ is 0, the view will point to - // nullptr. + // set. `data_view()` returns an InterleavedView<> which internally + // uses std::span<>. So, even when an AudioFrame is muted and we want to + // return `zeroed_data()`, if samples_per_channel_ or num_channels_ is 0, + // the view might point to nullptr. return InterleavedView<const int16_t>(muted_ ? &zeroed_data()[0] : &data_[0], samples_per_channel_, num_channels_); } @@ -213,9 +211,9 @@ } // static -ArrayView<const int16_t> AudioFrame::zeroed_data() { +std::span<const int16_t> AudioFrame::zeroed_data() { static int16_t* null_data = new int16_t[kMaxDataSizeSamples](); - return ArrayView<const int16_t>(null_data, kMaxDataSizeSamples); + return std::span<const int16_t>(null_data, kMaxDataSizeSamples); } } // namespace webrtc
diff --git a/api/audio/audio_frame.h b/api/audio/audio_frame.h index c4c9303..095db19 100644 --- a/api/audio/audio_frame.h +++ b/api/audio/audio_frame.h
@@ -16,8 +16,8 @@ #include <array> #include <optional> +#include <span> -#include "api/array_view.h" #include "api/audio/audio_view.h" #include "api/audio/channel_layout.h" #include "api/rtp_packet_infos.h" @@ -199,7 +199,7 @@ // A permanently zeroed out buffer to represent muted frames. This is a // header-only class, so the only way to avoid creating a separate zeroed // buffer per translation unit is to wrap a static in an inline function. - static ArrayView<const int16_t> zeroed_data(); + static std::span<const int16_t> zeroed_data(); std::array<int16_t, kMaxDataSizeSamples> data_; bool muted_ = true;
diff --git a/api/audio/audio_processing.h b/api/audio/audio_processing.h index 1e0ea0b..a4f3f52 100644 --- a/api/audio/audio_processing.h +++ b/api/audio/audio_processing.h
@@ -18,11 +18,11 @@ #include <cstring> #include <memory> #include <optional> +#include <span> #include <string> #include "absl/base/nullability.h" #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/audio/audio_processing_statistics.h" #include "api/audio/echo_control.h" #include "api/environment/environment.h" @@ -582,7 +582,7 @@ // representation of the input is returned. Returns true/false to indicate // whether an output returned. virtual bool GetLinearAecOutput( - ArrayView<std::array<float, 160>> linear_output) const = 0; + std::span<std::array<float, 160>> linear_output) const = 0; // This must be called prior to ProcessStream() if and only if adaptive analog // gain control is enabled, to pass the current analog level from the audio @@ -864,10 +864,10 @@ int num_render_channels) = 0; // Analysis (not changing) of the first channel of the render signal. - virtual void AnalyzeRenderAudio(ArrayView<const float> render_audio) = 0; + virtual void AnalyzeRenderAudio(std::span<const float> render_audio) = 0; // Analysis (not changing) of the capture signal. - virtual void AnalyzeCaptureAudio(ArrayView<const float> capture_audio) = 0; + virtual void AnalyzeCaptureAudio(std::span<const float> capture_audio) = 0; struct Metrics { std::optional<double> echo_likelihood;
diff --git a/api/audio/audio_view.h b/api/audio/audio_view.h index f3fcf8d..9f7291b 100644 --- a/api/audio/audio_view.h +++ b/api/audio/audio_view.h
@@ -13,11 +13,11 @@ #include <cstddef> #include <iterator> +#include <span> #include <variant> #include <vector> #include "absl/algorithm/container.h" -#include "api/array_view.h" #include "rtc_base/checks.h" namespace webrtc { @@ -34,7 +34,7 @@ // buffer. Channels can be enumerated and accessing the individual channel // data is done via MonoView<>. // -// The views are comparable to and built on ArrayView<> but add +// The views are comparable to and built on std::span<> but add // audio specific properties for the dimensions of the buffer and the above // specialized [de]interleaved support. // @@ -45,7 +45,7 @@ // can be either an single channel (mono) interleaved buffer (e.g. AudioFrame), // or a de-interleaved channel (e.g. from AudioBuffer). template <typename T> -using MonoView = ArrayView<T>; +using MonoView = std::span<T>; // The maximum number of audio channels supported by WebRTC encoders, decoders // and the AudioFrame class. @@ -59,8 +59,8 @@ class InterleavedView { public: using value_type = T; - using iterator = typename ArrayView<T>::iterator; - using const_iterator = typename ArrayView<const T>::iterator; + using iterator = typename std::span<T>::iterator; + using const_iterator = typename std::span<const T>::iterator; InterleavedView() = default; @@ -90,7 +90,7 @@ size_t num_channels() const { return num_channels_; } size_t samples_per_channel() const { return samples_per_channel_; } - ArrayView<T> data() const { return data_; } + std::span<T> data() const { return data_; } bool empty() const { return data_.empty(); } size_t size() const { return data_.size(); } @@ -131,7 +131,7 @@ // construction. size_t num_channels_ = 0u; size_t samples_per_channel_ = 0u; - ArrayView<T> data_; + std::span<T> data_; }; template <typename T>
diff --git a/api/audio/neural_residual_echo_estimator.h b/api/audio/neural_residual_echo_estimator.h index 87e8149..974bc67 100644 --- a/api/audio/neural_residual_echo_estimator.h +++ b/api/audio/neural_residual_echo_estimator.h
@@ -12,8 +12,8 @@ #define API_AUDIO_NEURAL_RESIDUAL_ECHO_ESTIMATOR_H_ #include <array> +#include <span> -#include "api/array_view.h" #include "api/audio/echo_canceller3_config.h" namespace webrtc { @@ -45,14 +45,14 @@ // Other inputs: // * dominant_nearend: True if dominant nearend is active virtual void Estimate(const Block& render, - ArrayView<const std::array<float, 64>> y, - ArrayView<const std::array<float, 64>> e, - ArrayView<const std::array<float, 65>> S2, - ArrayView<const std::array<float, 65>> Y2, - ArrayView<const std::array<float, 65>> E2, + std::span<const std::array<float, 64>> y, + std::span<const std::array<float, 64>> e, + std::span<const std::array<float, 65>> S2, + std::span<const std::array<float, 65>> Y2, + std::span<const std::array<float, 65>> E2, bool dominant_nearend, - ArrayView<std::array<float, 65>> R2, - ArrayView<std::array<float, 65>> R2_unbounded) = 0; + std::span<std::array<float, 65>> R2, + std::span<std::array<float, 65>> R2_unbounded) = 0; // Returns a recommended AEC3 configuration for this estimator. virtual EchoCanceller3Config GetConfiguration(bool multi_channel) const = 0;
diff --git a/api/audio/test/BUILD.gn b/api/audio/test/BUILD.gn index b1060fa..edd3dcd 100644 --- a/api/audio/test/BUILD.gn +++ b/api/audio/test/BUILD.gn
@@ -23,7 +23,6 @@ deps = [ "..:aec3_config", "..:audio_frame_api", - "../..:array_view", "../../../modules/audio_processing:aec3_config_json", "../../../rtc_base:checks", "../../../test:test_support",
diff --git a/api/audio/test/audio_frame_unittest.cc b/api/audio/test/audio_frame_unittest.cc index a7c0166..e9a1e6f 100644 --- a/api/audio/test/audio_frame_unittest.cc +++ b/api/audio/test/audio_frame_unittest.cc
@@ -66,7 +66,7 @@ EXPECT_TRUE(AllSamplesAre(0, frame)); } -// TODO: b/335805780 - Delete test when `mutable_data()` returns ArrayView. +// TODO: b/335805780 - Delete test when `mutable_data()` returns std::span. TEST(AudioFrameTest, UnmutedFrameIsInitiallyZeroedLegacy) { AudioFrame frame(kSampleRateHz, kNumChannelsMono, CHANNEL_LAYOUT_NONE); frame.mutable_data();
diff --git a/api/audio/test/audio_view_unittest.cc b/api/audio/test/audio_view_unittest.cc index 4ac914f..833f936 100644 --- a/api/audio/test/audio_view_unittest.cc +++ b/api/audio/test/audio_view_unittest.cc
@@ -13,9 +13,9 @@ #include <array> #include <cstddef> #include <cstdint> +#include <span> #include <vector> -#include "api/array_view.h" #include "test/gtest.h" namespace webrtc { @@ -37,7 +37,7 @@ // Fills a given buffer with monotonically increasing values. template <typename T> -void FillBuffer(ArrayView<T> buffer) { +void FillBuffer(std::span<T> buffer) { T value = {}; for (T& t : buffer) { Increment<T>(value); @@ -50,7 +50,7 @@ TEST(AudioViewTest, MonoView) { const size_t kArraySize = 100u; int16_t arr[kArraySize]; - FillBuffer(ArrayView<int16_t>(arr)); + FillBuffer(std::span<int16_t>(arr)); MonoView<int16_t> mono(arr); MonoView<const int16_t> const_mono(arr); @@ -69,7 +69,7 @@ TEST(AudioViewTest, InterleavedView) { const size_t kArraySize = 100u; int16_t arr[kArraySize]; - FillBuffer(ArrayView<int16_t>(arr)); + FillBuffer(std::span<int16_t>(arr)); InterleavedView<int16_t> interleaved(arr, kArraySize, 1); EXPECT_EQ(NumChannels(interleaved), 1u); @@ -144,7 +144,7 @@ const size_t kArraySize = 100u; int16_t source_arr[kArraySize] = {}; int16_t dest_arr[kArraySize] = {}; - FillBuffer(ArrayView<int16_t>(source_arr)); + FillBuffer(std::span<int16_t>(source_arr)); InterleavedView<const int16_t> source(source_arr, 2); InterleavedView<int16_t> destination(dest_arr, 2);
diff --git a/api/audio_codecs/BUILD.gn b/api/audio_codecs/BUILD.gn index 25ea125..0d5b919 100644 --- a/api/audio_codecs/BUILD.gn +++ b/api/audio_codecs/BUILD.gn
@@ -29,7 +29,6 @@ "audio_format.h", ] deps = [ - "..:array_view", "..:bitrate_allocation", "..:make_ref_counted", "..:ref_count",
diff --git a/api/audio_codecs/audio_decoder.cc b/api/audio_codecs/audio_decoder.cc index ecc1dec..dd2920e 100644 --- a/api/audio_codecs/audio_decoder.cc +++ b/api/audio_codecs/audio_decoder.cc
@@ -14,10 +14,10 @@ #include <cstdint> #include <memory> #include <optional> +#include <span> #include <utility> #include <vector> -#include "api/array_view.h" #include "rtc_base/buffer.h" #include "rtc_base/checks.h" #include "rtc_base/sanitizer.h" @@ -41,7 +41,7 @@ } std::optional<DecodeResult> Decode( - ArrayView<int16_t> decoded) const override { + std::span<int16_t> decoded) const override { auto speech_type = AudioDecoder::kSpeech; const int ret = decoder_->Decode( payload_.data(), payload_.size(), decoder_->SampleRateHz(), @@ -94,7 +94,7 @@ int16_t* decoded, SpeechType* speech_type) { TRACE_EVENT0("webrtc", "AudioDecoder::Decode"); - MsanCheckInitialized(MakeArrayView(encoded, encoded_len)); + MsanCheckInitialized(std::span(encoded, encoded_len)); int duration = PacketDuration(encoded, encoded_len); if (duration >= 0 && duration * Channels() * sizeof(int16_t) > max_decoded_bytes) { @@ -111,7 +111,7 @@ int16_t* decoded, SpeechType* speech_type) { TRACE_EVENT0("webrtc", "AudioDecoder::DecodeRedundant"); - MsanCheckInitialized(MakeArrayView(encoded, encoded_len)); + MsanCheckInitialized(std::span(encoded, encoded_len)); int duration = PacketDurationRedundant(encoded, encoded_len); if (duration >= 0 && duration * Channels() * sizeof(int16_t) > max_decoded_bytes) {
diff --git a/api/audio_codecs/audio_decoder.h b/api/audio_codecs/audio_decoder.h index a085d3b..e15ffc9 100644 --- a/api/audio_codecs/audio_decoder.h +++ b/api/audio_codecs/audio_decoder.h
@@ -16,9 +16,9 @@ #include <memory> #include <optional> +#include <span> #include <vector> -#include "api/array_view.h" #include "api/audio/audio_view.h" #include "rtc_base/buffer.h" @@ -63,7 +63,7 @@ // decoder produced comfort noise or speech. On failure, returns an empty // std::optional. Decode may be called at most once per frame object. virtual std::optional<DecodeResult> Decode( - ArrayView<int16_t> decoded) const = 0; + std::span<int16_t> decoded) const = 0; }; struct ParseResult {
diff --git a/api/audio_codecs/audio_encoder.cc b/api/audio_codecs/audio_encoder.cc index cb86adc..3fef371 100644 --- a/api/audio_codecs/audio_encoder.cc +++ b/api/audio_codecs/audio_encoder.cc
@@ -14,9 +14,9 @@ #include <cstdint> #include <memory> #include <optional> +#include <span> #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/call/bitrate_allocation.h" #include "rtc_base/buffer.h" #include "rtc_base/checks.h" @@ -45,7 +45,7 @@ } AudioEncoder::EncodedInfo AudioEncoder::Encode(uint32_t rtp_timestamp, - ArrayView<const int16_t> audio, + std::span<const int16_t> audio, Buffer* encoded) { TRACE_EVENT0("webrtc", "AudioEncoder::Encode"); RTC_CHECK_EQ(audio.size(), @@ -77,7 +77,7 @@ void AudioEncoder::SetTargetBitrate(int /* target_bps */) {} -ArrayView<std::unique_ptr<AudioEncoder>> +std::span<std::unique_ptr<AudioEncoder>> AudioEncoder::ReclaimContainedEncoders() { return {}; }
diff --git a/api/audio_codecs/audio_encoder.h b/api/audio_codecs/audio_encoder.h index 8c4fe33..d82a074 100644 --- a/api/audio_codecs/audio_encoder.h +++ b/api/audio_codecs/audio_encoder.h
@@ -16,12 +16,12 @@ #include <memory> #include <optional> +#include <span> #include <utility> #include <vector> #include "absl/base/attributes.h" #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/audio/audio_view.h" #include "api/call/bitrate_allocation.h" #include "api/units/data_rate.h" @@ -150,7 +150,7 @@ // EncodeImpl() which does the actual work, and then checks some // postconditions. EncodedInfo Encode(uint32_t rtp_timestamp, - ArrayView<const int16_t> audio, + std::span<const int16_t> audio, Buffer* encoded); // Resets the encoder to its starting state, discarding any input that has @@ -196,7 +196,7 @@ // not call any methods on this encoder afterwards, except for the // destructor. The default implementation just returns an empty array. // NOTE: This method is subject to change. Do not call or override it. - virtual ArrayView<std::unique_ptr<AudioEncoder>> ReclaimContainedEncoders(); + virtual std::span<std::unique_ptr<AudioEncoder>> ReclaimContainedEncoders(); // Enables audio network adaptor. Returns true if successful. virtual bool EnableAudioNetworkAdaptor(absl::string_view config); @@ -260,7 +260,7 @@ // Subclasses implement this to perform the actual encoding. Called by // Encode(). virtual EncodedInfo EncodeImpl(uint32_t rtp_timestamp, - ArrayView<const int16_t> audio, + std::span<const int16_t> audio, Buffer* encoded) = 0; }; } // namespace webrtc
diff --git a/api/audio_options.cc b/api/audio_options.cc index 46913b8a..8342920 100644 --- a/api/audio_options.cc +++ b/api/audio_options.cc
@@ -13,7 +13,6 @@ #include <optional> #include <string> -#include "api/array_view.h" #include "rtc_base/strings/string_builder.h" namespace webrtc {
diff --git a/api/call/transport.h b/api/call/transport.h index 74d7add..aade6a5 100644 --- a/api/call/transport.h +++ b/api/call/transport.h
@@ -13,7 +13,7 @@ #include <stdint.h> -#include "api/array_view.h" +#include <span> namespace webrtc { @@ -41,9 +41,9 @@ class Transport { public: - virtual bool SendRtp(ArrayView<const uint8_t> packet, + virtual bool SendRtp(std::span<const uint8_t> packet, const PacketOptions& options) = 0; - virtual bool SendRtcp(ArrayView<const uint8_t> packet, + virtual bool SendRtcp(std::span<const uint8_t> packet, const PacketOptions& options) = 0; protected:
diff --git a/api/crypto/BUILD.gn b/api/crypto/BUILD.gn index 00a9deb..e89016a 100644 --- a/api/crypto/BUILD.gn +++ b/api/crypto/BUILD.gn
@@ -35,7 +35,6 @@ visibility = [ "*" ] sources = [ "frame_decryptor_interface.h" ] deps = [ - "..:array_view", "..:ref_count", "..:rtp_parameters", "../../rtc_base:refcount", @@ -46,7 +45,6 @@ visibility = [ "*" ] sources = [ "frame_encryptor_interface.h" ] deps = [ - "..:array_view", "..:ref_count", "..:rtp_parameters", "../../rtc_base:refcount",
diff --git a/api/crypto/frame_decryptor_interface.h b/api/crypto/frame_decryptor_interface.h index 659f166..c0b8801 100644 --- a/api/crypto/frame_decryptor_interface.h +++ b/api/crypto/frame_decryptor_interface.h
@@ -13,9 +13,9 @@ #include <cstddef> #include <cstdint> +#include <span> #include <vector> -#include "api/array_view.h" #include "api/media_types.h" #include "api/ref_count.h" @@ -62,9 +62,9 @@ // cases. virtual Result Decrypt(MediaType media_type, const std::vector<uint32_t>& csrcs, - ArrayView<const uint8_t> additional_data, - ArrayView<const uint8_t> encrypted_frame, - ArrayView<uint8_t> frame) = 0; + std::span<const uint8_t> additional_data, + std::span<const uint8_t> encrypted_frame, + std::span<uint8_t> frame) = 0; // Returns the total required length in bytes for the output of the // decryption. This can be larger than the actual number of bytes you need but
diff --git a/api/crypto/frame_encryptor_interface.h b/api/crypto/frame_encryptor_interface.h index 6a17972..4360cd5 100644 --- a/api/crypto/frame_encryptor_interface.h +++ b/api/crypto/frame_encryptor_interface.h
@@ -13,8 +13,8 @@ #include <cstddef> #include <cstdint> +#include <span> -#include "api/array_view.h" #include "api/media_types.h" #include "api/ref_count.h" @@ -40,9 +40,9 @@ // selected by the implementer to represent error codes. virtual int Encrypt(MediaType media_type, uint32_t ssrc, - ArrayView<const uint8_t> additional_data, - ArrayView<const uint8_t> frame, - ArrayView<uint8_t> encrypted_frame, + std::span<const uint8_t> additional_data, + std::span<const uint8_t> frame, + std::span<uint8_t> encrypted_frame, size_t* bytes_written) = 0; // Returns the total required length in bytes for the output of the
diff --git a/api/data_channel_event_observer_interface.h b/api/data_channel_event_observer_interface.h index f9b5902..135db62 100644 --- a/api/data_channel_event_observer_interface.h +++ b/api/data_channel_event_observer_interface.h
@@ -12,11 +12,11 @@ #define API_DATA_CHANNEL_EVENT_OBSERVER_INTERFACE_H_ #include <cstdint> +#include <span> #include <string> #include <vector> #include "absl/strings/string_view.h" -#include "api/array_view.h" namespace webrtc { @@ -55,7 +55,7 @@ void set_data_type(DataType type) { data_type_ = type; } const std::vector<uint8_t>& data() const { return data_; } - void set_data(ArrayView<const uint8_t> d) { + void set_data(std::span<const uint8_t> d) { data_.assign(d.begin(), d.end()); }
diff --git a/api/datagram_connection.h b/api/datagram_connection.h index 9b52e97..e18588b 100644 --- a/api/datagram_connection.h +++ b/api/datagram_connection.h
@@ -12,11 +12,11 @@ #include <cstddef> #include <cstdint> +#include <span> #include <string_view> #include "absl/functional/any_invocable.h" #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/candidate.h" #include "api/ref_count.h" #include "api/units/timestamp.h" @@ -48,7 +48,7 @@ struct PacketMetadata { Timestamp receive_time; }; - virtual void OnPacketReceived(ArrayView<const uint8_t> data, + virtual void OnPacketReceived(std::span<const uint8_t> data, PacketMetadata metadata) = 0; // Notification of outcome of an earlier call to SendPacket. @@ -96,13 +96,13 @@ // performed, the caller is responsible for ensuring uniqueness and handing // rollovers. PacketId id = 0; - ArrayView<const uint8_t> payload; + std::span<const uint8_t> payload; }; // Send a batch of packets on this connection. Listen to // Observer::OnSendOutcome for notification of whether each was sent // successfully. - virtual void SendPackets(ArrayView<PacketSendParameters> packets) = 0; + virtual void SendPackets(std::span<PacketSendParameters> packets) = 0; // Initiate closing connection and releasing resources. Must be called before // destruction.
diff --git a/api/frame_transformer_interface.h b/api/frame_transformer_interface.h index 42ac2c1..9f4ed92 100644 --- a/api/frame_transformer_interface.h +++ b/api/frame_transformer_interface.h
@@ -14,9 +14,9 @@ #include <cstdint> #include <memory> #include <optional> +#include <span> #include <string> -#include "api/array_view.h" #include "api/ref_count.h" #include "api/scoped_refptr.h" #include "api/units/time_delta.h" @@ -46,10 +46,10 @@ // Returns the frame payload data. The data is valid until the next non-const // method call. - virtual ArrayView<const uint8_t> GetData() const = 0; + virtual std::span<const uint8_t> GetData() const = 0; // Copies `data` into the owned frame payload data. - virtual void SetData(ArrayView<const uint8_t> data) = 0; + virtual void SetData(std::span<const uint8_t> data) = 0; virtual uint8_t GetPayloadType() const = 0; virtual bool CanSetPayloadType() const { return false; } @@ -125,7 +125,7 @@ RTC_EXPORT explicit TransformableAudioFrameInterface(Passkey passkey); ~TransformableAudioFrameInterface() override = default; - virtual ArrayView<const uint32_t> GetContributingSources() const = 0; + virtual std::span<const uint32_t> GetContributingSources() const = 0; virtual const std::optional<uint16_t> SequenceNumber() const = 0;
diff --git a/api/neteq/BUILD.gn b/api/neteq/BUILD.gn index 826e426..b68fbe8 100644 --- a/api/neteq/BUILD.gn +++ b/api/neteq/BUILD.gn
@@ -17,7 +17,6 @@ ] deps = [ - "..:array_view", "..:rtp_headers", "..:rtp_packet_info", "..:scoped_refptr",
diff --git a/api/neteq/neteq.h b/api/neteq/neteq.h index b0aed23..da667b5 100644 --- a/api/neteq/neteq.h +++ b/api/neteq/neteq.h
@@ -16,10 +16,10 @@ #include <map> #include <optional> +#include <span> #include <string> #include <vector> -#include "api/array_view.h" #include "api/audio_codecs/audio_format.h" #include "api/rtp_headers.h" #include "api/rtp_packet_info.h" @@ -186,14 +186,14 @@ virtual ~NetEq() {} virtual int InsertPacket(const RTPHeader& rtp_header, - ArrayView<const uint8_t> payload) { + std::span<const uint8_t> payload) { return InsertPacket(rtp_header, payload, /*receive_time=*/Timestamp::MinusInfinity()); } // TODO: webrtc:343501093 - removed unused method. virtual int InsertPacket(const RTPHeader& rtp_header, - ArrayView<const uint8_t> payload, + std::span<const uint8_t> payload, Timestamp receive_time) { return InsertPacket(rtp_header, payload, RtpPacketInfo(rtp_header, receive_time)); @@ -203,7 +203,7 @@ // Returns 0 on success, -1 on failure. // TODO: webrtc:343501093 - Make this method pure virtual. virtual int InsertPacket(const RTPHeader& rtp_header, - ArrayView<const uint8_t> payload, + std::span<const uint8_t> payload, const RtpPacketInfo& /* rtp_packet_info */) { return InsertPacket(rtp_header, payload); }
diff --git a/api/numerics/BUILD.gn b/api/numerics/BUILD.gn index 3ec8c37..2d9f6a2 100644 --- a/api/numerics/BUILD.gn +++ b/api/numerics/BUILD.gn
@@ -16,7 +16,6 @@ "samples_stats_counter.h", ] deps = [ - "..:array_view", "../../rtc_base:checks", "../../rtc_base:rtc_numerics", "../units:timestamp",
diff --git a/api/numerics/samples_stats_counter.h b/api/numerics/samples_stats_counter.h index 38d0cbe..89bedb2 100644 --- a/api/numerics/samples_stats_counter.h +++ b/api/numerics/samples_stats_counter.h
@@ -15,10 +15,10 @@ #include <stdint.h> #include <map> +#include <span> #include <string> #include <vector> -#include "api/array_view.h" #include "api/units/timestamp.h" #include "rtc_base/checks.h" #include "rtc_base/numerics/running_statistics.h" @@ -102,7 +102,7 @@ // guarantees of order, so samples can be in different order comparing to in // which they were added into counter. Also return value will be invalidate // after call to any non const method. - ArrayView<const StatsSample> GetTimedSamples() const { return samples_; } + std::span<const StatsSample> GetTimedSamples() const { return samples_; } std::vector<double> GetSamples() const { std::vector<double> out; out.reserve(samples_.size());
diff --git a/api/rtp_transceiver_interface.h b/api/rtp_transceiver_interface.h index a4ff39a..021b215 100644 --- a/api/rtp_transceiver_interface.h +++ b/api/rtp_transceiver_interface.h
@@ -12,11 +12,11 @@ #define API_RTP_TRANSCEIVER_INTERFACE_H_ #include <optional> +#include <span> #include <string> #include <vector> #include "absl/base/attributes.h" -#include "api/array_view.h" #include "api/media_types.h" #include "api/ref_count.h" #include "api/rtc_error.h" @@ -152,7 +152,7 @@ // by WebRTC for this transceiver. // https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiver-setcodecpreferences virtual RTCError SetCodecPreferences( - ArrayView<RtpCodecCapability> codecs) = 0; + std::span<RtpCodecCapability> codecs) = 0; virtual std::vector<RtpCodecCapability> codec_preferences() const = 0; // Returns the set of header extensions that was set @@ -172,7 +172,7 @@ // so that it negotiates use of header extensions which are not kStopped. // https://w3c.github.io/webrtc-extensions/#rtcrtptransceiver-interface virtual RTCError SetHeaderExtensionsToNegotiate( - ArrayView<const RtpHeaderExtensionCapability> header_extensions) = 0; + std::span<const RtpHeaderExtensionCapability> header_extensions) = 0; protected: ~RtpTransceiverInterface() override = default;
diff --git a/api/test/fake_frame_decryptor.cc b/api/test/fake_frame_decryptor.cc index 0e1da2c..a57c086 100644 --- a/api/test/fake_frame_decryptor.cc +++ b/api/test/fake_frame_decryptor.cc
@@ -12,9 +12,9 @@ #include <cstddef> #include <cstdint> +#include <span> #include <vector> -#include "api/array_view.h" #include "api/media_types.h" #include "rtc_base/checks.h" @@ -27,9 +27,9 @@ FakeFrameDecryptor::Result FakeFrameDecryptor::Decrypt( MediaType /* media_type */, const std::vector<uint32_t>& /* csrcs */, - ArrayView<const uint8_t> /* additional_data */, - ArrayView<const uint8_t> encrypted_frame, - ArrayView<uint8_t> frame) { + std::span<const uint8_t> /* additional_data */, + std::span<const uint8_t> encrypted_frame, + std::span<uint8_t> frame) { if (fail_decryption_) { return Result(Status::kFailedToDecrypt, 0); }
diff --git a/api/test/fake_frame_decryptor.h b/api/test/fake_frame_decryptor.h index b3a7997..018a3e5 100644 --- a/api/test/fake_frame_decryptor.h +++ b/api/test/fake_frame_decryptor.h
@@ -14,9 +14,9 @@ #include <stddef.h> #include <stdint.h> +#include <span> #include <vector> -#include "api/array_view.h" #include "api/crypto/frame_decryptor_interface.h" #include "api/media_types.h" @@ -36,9 +36,9 @@ // the postfix byte. This will always fail if fail_decryption_ is set to true. Result Decrypt(MediaType media_type, const std::vector<uint32_t>& csrcs, - ArrayView<const uint8_t> additional_data, - ArrayView<const uint8_t> encrypted_frame, - ArrayView<uint8_t> frame) override; + std::span<const uint8_t> additional_data, + std::span<const uint8_t> encrypted_frame, + std::span<uint8_t> frame) override; // Always returns 1 less than the size of the encrypted frame. size_t GetMaxPlaintextByteSize(MediaType media_type, size_t encrypted_frame_size) override;
diff --git a/api/test/fake_frame_encryptor.cc b/api/test/fake_frame_encryptor.cc index d35756e..da996c4 100644 --- a/api/test/fake_frame_encryptor.cc +++ b/api/test/fake_frame_encryptor.cc
@@ -12,8 +12,8 @@ #include <cstddef> #include <cstdint> +#include <span> -#include "api/array_view.h" #include "api/media_types.h" #include "rtc_base/checks.h" @@ -24,9 +24,9 @@ // FrameEncryptorInterface implementation int FakeFrameEncryptor::Encrypt(MediaType /* media_type */, uint32_t /* ssrc */, - ArrayView<const uint8_t> /* additional_data */, - ArrayView<const uint8_t> frame, - ArrayView<uint8_t> encrypted_frame, + std::span<const uint8_t> /* additional_data */, + std::span<const uint8_t> frame, + std::span<uint8_t> encrypted_frame, size_t* bytes_written) { if (fail_encryption_) { return static_cast<int>(FakeEncryptionStatus::FORCED_FAILURE);
diff --git a/api/test/fake_frame_encryptor.h b/api/test/fake_frame_encryptor.h index eae0e41..4f8d6c2 100644 --- a/api/test/fake_frame_encryptor.h +++ b/api/test/fake_frame_encryptor.h
@@ -14,7 +14,8 @@ #include <stddef.h> #include <stdint.h> -#include "api/array_view.h" +#include <span> + #include "api/crypto/frame_encryptor_interface.h" #include "api/media_types.h" #include "rtc_base/ref_counted_object.h" @@ -34,9 +35,9 @@ // bit to the end. This will always fail if fail_encryption_ is set to true. int Encrypt(MediaType media_type, uint32_t ssrc, - ArrayView<const uint8_t> additional_data, - ArrayView<const uint8_t> frame, - ArrayView<uint8_t> encrypted_frame, + std::span<const uint8_t> additional_data, + std::span<const uint8_t> frame, + std::span<uint8_t> encrypted_frame, size_t* bytes_written) override; // Always returns 1 more than the size of the frame. size_t GetMaxCiphertextByteSize(MediaType media_type,
diff --git a/api/test/metrics/BUILD.gn b/api/test/metrics/BUILD.gn index abb6453..7834e21 100644 --- a/api/test/metrics/BUILD.gn +++ b/api/test/metrics/BUILD.gn
@@ -95,10 +95,7 @@ rtc_library("metrics_exporter") { visibility = [ "*" ] sources = [ "metrics_exporter.h" ] - deps = [ - ":metric", - "../..:array_view", - ] + deps = [ ":metric" ] } if (!build_with_chromium) { @@ -114,7 +111,6 @@ deps = [ ":metric", ":metrics_exporter", - "../..:array_view", "../../../rtc_base:stringutils", "../../../test:test_flags", "//third_party/abseil-cpp/absl/flags:flag", @@ -133,7 +129,6 @@ deps = [ ":metric", ":metrics_exporter", - "../..:array_view", "../../../test:fileutils", "../../../test:perf_test", "//third_party/abseil-cpp/absl/memory", @@ -160,7 +155,6 @@ deps = [ ":metric", ":metrics_exporter", - "../..:array_view", "../../../rtc_base:logging", "../../../test:fileutils", "//third_party/abseil-cpp/absl/strings:string_view", @@ -181,7 +175,6 @@ deps = [ ":metric", ":metrics_exporter", - "../..:array_view", "../../../test:perf_test", "../../numerics", ] @@ -259,7 +252,6 @@ ":metric", ":metrics_exporter", ":metrics_logger", - "../..:array_view", "../../../system_wrappers", "../../../test:test_support", ]
diff --git a/api/test/metrics/chrome_perf_dashboard_metrics_exporter.cc b/api/test/metrics/chrome_perf_dashboard_metrics_exporter.cc index 79d50d6..3ba87cb 100644 --- a/api/test/metrics/chrome_perf_dashboard_metrics_exporter.cc +++ b/api/test/metrics/chrome_perf_dashboard_metrics_exporter.cc
@@ -11,12 +11,12 @@ #include <cstdio> #include <memory> +#include <span> #include <string> #include <vector> #include "absl/memory/memory.h" #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/test/metrics/metric.h" #include "test/testsupport/file_utils.h" #include "test/testsupport/perf_test.h" @@ -101,7 +101,7 @@ : export_file_path_(export_file_path) {} bool ChromePerfDashboardMetricsExporter::Export( - ArrayView<const Metric> metrics) { + std::span<const Metric> metrics) { std::unique_ptr<PerfTestResultWriter> writer = absl::WrapUnique<PerfTestResultWriter>(CreateHistogramWriter()); for (const Metric& metric : metrics) {
diff --git a/api/test/metrics/chrome_perf_dashboard_metrics_exporter.h b/api/test/metrics/chrome_perf_dashboard_metrics_exporter.h index 1044751..0395993 100644 --- a/api/test/metrics/chrome_perf_dashboard_metrics_exporter.h +++ b/api/test/metrics/chrome_perf_dashboard_metrics_exporter.h
@@ -11,10 +11,10 @@ #ifndef API_TEST_METRICS_CHROME_PERF_DASHBOARD_METRICS_EXPORTER_H_ #define API_TEST_METRICS_CHROME_PERF_DASHBOARD_METRICS_EXPORTER_H_ +#include <span> #include <string> #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/test/metrics/metric.h" #include "api/test/metrics/metrics_exporter.h" @@ -29,7 +29,7 @@ absl::string_view export_file_path); ~ChromePerfDashboardMetricsExporter() override = default; - bool Export(ArrayView<const Metric> metrics) override; + bool Export(std::span<const Metric> metrics) override; private: const std::string export_file_path_;
diff --git a/api/test/metrics/global_metrics_logger_and_exporter_test.cc b/api/test/metrics/global_metrics_logger_and_exporter_test.cc index bf462a6..4e50a93 100644 --- a/api/test/metrics/global_metrics_logger_and_exporter_test.cc +++ b/api/test/metrics/global_metrics_logger_and_exporter_test.cc
@@ -12,11 +12,11 @@ #include <map> #include <memory> #include <optional> +#include <span> #include <string> #include <utility> #include <vector> -#include "api/array_view.h" #include "api/test/metrics/metric.h" #include "api/test/metrics/metrics_exporter.h" #include "api/test/metrics/metrics_logger.h" @@ -54,7 +54,7 @@ : factory_(factory), export_result_(export_result) {} ~TestMetricsExporter() override = default; - bool Export(ArrayView<const Metric> metrics) override { + bool Export(std::span<const Metric> metrics) override { factory_->exported_metrics = std::vector<Metric>(metrics.begin(), metrics.end()); return export_result_;
diff --git a/api/test/metrics/metrics_exporter.h b/api/test/metrics/metrics_exporter.h index b71d4fb..2640fc8 100644 --- a/api/test/metrics/metrics_exporter.h +++ b/api/test/metrics/metrics_exporter.h
@@ -11,7 +11,8 @@ #ifndef API_TEST_METRICS_METRICS_EXPORTER_H_ #define API_TEST_METRICS_METRICS_EXPORTER_H_ -#include "api/array_view.h" +#include <span> + #include "api/test/metrics/metric.h" namespace webrtc { @@ -24,7 +25,7 @@ // Exports specified metrics in a format that depends on the implementation. // Returns true if export succeeded, false otherwise. - virtual bool Export(ArrayView<const Metric> metrics) = 0; + virtual bool Export(std::span<const Metric> metrics) = 0; }; } // namespace test
diff --git a/api/test/metrics/metrics_set_proto_file_exporter.cc b/api/test/metrics/metrics_set_proto_file_exporter.cc index c3a7554..88588e8 100644 --- a/api/test/metrics/metrics_set_proto_file_exporter.cc +++ b/api/test/metrics/metrics_set_proto_file_exporter.cc
@@ -11,11 +11,11 @@ #include <cstdio> #include <map> +#include <span> #include <string> #include <utility> #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/test/metrics/metric.h" #include "rtc_base/logging.h" #include "test/testsupport/file_utils.h" @@ -131,7 +131,7 @@ std::map<std::string, std::string> metadata) : export_file_path(export_file_path), metadata(std::move(metadata)) {} -bool MetricsSetProtoFileExporter::Export(ArrayView<const Metric> metrics) { +bool MetricsSetProtoFileExporter::Export(std::span<const Metric> metrics) { #if WEBRTC_ENABLE_PROTOBUF test_metrics::MetricsSet metrics_set; for (const auto& [key, value] : options_.metadata) {
diff --git a/api/test/metrics/metrics_set_proto_file_exporter.h b/api/test/metrics/metrics_set_proto_file_exporter.h index 6e38eb9..6338527 100644 --- a/api/test/metrics/metrics_set_proto_file_exporter.h +++ b/api/test/metrics/metrics_set_proto_file_exporter.h
@@ -12,10 +12,10 @@ #define API_TEST_METRICS_METRICS_SET_PROTO_FILE_EXPORTER_H_ #include <map> +#include <span> #include <string> #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/test/metrics/metric.h" #include "api/test/metrics/metrics_exporter.h" @@ -48,7 +48,7 @@ MetricsSetProtoFileExporter& operator=(const MetricsSetProtoFileExporter&) = delete; - bool Export(ArrayView<const Metric> metrics) override; + bool Export(std::span<const Metric> metrics) override; private: const Options options_;
diff --git a/api/test/metrics/print_result_proxy_metrics_exporter.cc b/api/test/metrics/print_result_proxy_metrics_exporter.cc index cb163fa..2a16858 100644 --- a/api/test/metrics/print_result_proxy_metrics_exporter.cc +++ b/api/test/metrics/print_result_proxy_metrics_exporter.cc
@@ -10,10 +10,10 @@ #include "api/test/metrics/print_result_proxy_metrics_exporter.h" #include <cstddef> +#include <span> #include <string> #include <unordered_set> -#include "api/array_view.h" #include "api/numerics/samples_stats_counter.h" #include "api/test/metrics/metric.h" #include "test/testsupport/perf_test.h" @@ -78,7 +78,7 @@ } // namespace -bool PrintResultProxyMetricsExporter::Export(ArrayView<const Metric> metrics) { +bool PrintResultProxyMetricsExporter::Export(std::span<const Metric> metrics) { static const std::unordered_set<std::string> per_call_metrics{ "actual_encode_bitrate", "encode_frame_rate",
diff --git a/api/test/metrics/print_result_proxy_metrics_exporter.h b/api/test/metrics/print_result_proxy_metrics_exporter.h index cbc72ab..a84304b 100644 --- a/api/test/metrics/print_result_proxy_metrics_exporter.h +++ b/api/test/metrics/print_result_proxy_metrics_exporter.h
@@ -11,7 +11,8 @@ #ifndef API_TEST_METRICS_PRINT_RESULT_PROXY_METRICS_EXPORTER_H_ #define API_TEST_METRICS_PRINT_RESULT_PROXY_METRICS_EXPORTER_H_ -#include "api/array_view.h" +#include <span> + #include "api/test/metrics/metric.h" #include "api/test/metrics/metrics_exporter.h" @@ -23,7 +24,7 @@ public: ~PrintResultProxyMetricsExporter() override = default; - bool Export(ArrayView<const Metric> metrics) override; + bool Export(std::span<const Metric> metrics) override; }; } // namespace test
diff --git a/api/test/metrics/stdout_metrics_exporter.cc b/api/test/metrics/stdout_metrics_exporter.cc index 336817f..f87fe02 100644 --- a/api/test/metrics/stdout_metrics_exporter.cc +++ b/api/test/metrics/stdout_metrics_exporter.cc
@@ -13,11 +13,11 @@ #include <cstdint> #include <cstdio> #include <optional> +#include <span> #include <string> #include "absl/flags/flag.h" #include "absl/strings/str_cat.h" -#include "api/array_view.h" #include "api/test/metrics/metric.h" #include "rtc_base/strings/string_builder.h" #include "test/test_flags.h" @@ -89,7 +89,7 @@ StdoutMetricsExporter::StdoutMetricsExporter() : output_(stdout) {} -bool StdoutMetricsExporter::Export(ArrayView<const Metric> metrics) { +bool StdoutMetricsExporter::Export(std::span<const Metric> metrics) { for (const Metric& metric : metrics) { PrintMetric(metric); }
diff --git a/api/test/metrics/stdout_metrics_exporter.h b/api/test/metrics/stdout_metrics_exporter.h index 60354b5..bdf473b 100644 --- a/api/test/metrics/stdout_metrics_exporter.h +++ b/api/test/metrics/stdout_metrics_exporter.h
@@ -12,8 +12,8 @@ #define API_TEST_METRICS_STDOUT_METRICS_EXPORTER_H_ #include <cstdio> +#include <span> -#include "api/array_view.h" #include "api/test/metrics/metric.h" #include "api/test/metrics/metrics_exporter.h" @@ -29,7 +29,7 @@ StdoutMetricsExporter(const StdoutMetricsExporter&) = delete; StdoutMetricsExporter& operator=(const StdoutMetricsExporter&) = delete; - bool Export(ArrayView<const Metric> metrics) override; + bool Export(std::span<const Metric> metrics) override; private: void PrintMetric(const Metric& metric);
diff --git a/api/test/mock_datagram_connection.h b/api/test/mock_datagram_connection.h index 128add9..e31e4fe 100644 --- a/api/test/mock_datagram_connection.h +++ b/api/test/mock_datagram_connection.h
@@ -12,11 +12,11 @@ #include <cstddef> #include <cstdint> +#include <span> #include <type_traits> #include "absl/functional/any_invocable.h" #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/candidate.h" #include "api/datagram_connection.h" #include "p2p/base/transport_description.h" @@ -45,14 +45,14 @@ (override)); MOCK_METHOD(void, SendPackets, - (ArrayView<PacketSendParameters> packets), + (std::span<PacketSendParameters> packets), (override)); MOCK_METHOD(void, Terminate, (absl::AnyInvocable<void()> terminate_complete_callback), (override)); - MOCK_METHOD(std::string_view, IceUsernameFragment, (), (override)); - MOCK_METHOD(std::string_view, IcePassword, (), (override)); + MOCK_METHOD(absl::string_view, IceUsernameFragment, (), (override)); + MOCK_METHOD(absl::string_view, IcePassword, (), (override)); }; static_assert(!std::is_abstract_v<RefCountedObject<MockDatagramConnection>>,
diff --git a/api/test/mock_datagram_connection_observer.h b/api/test/mock_datagram_connection_observer.h index 9850872..c9978658 100644 --- a/api/test/mock_datagram_connection_observer.h +++ b/api/test/mock_datagram_connection_observer.h
@@ -11,8 +11,8 @@ #define API_TEST_MOCK_DATAGRAM_CONNECTION_OBSERVER_H_ #include <cstdint> +#include <span> -#include "api/array_view.h" #include "api/candidate.h" #include "api/datagram_connection.h" #include "test/gmock.h" @@ -27,7 +27,7 @@ (override)); MOCK_METHOD(void, OnPacketReceived, - (ArrayView<const uint8_t> data, PacketMetadata metadata), + (std::span<const uint8_t> data, PacketMetadata metadata), (override)); MOCK_METHOD(void, OnSendOutcome, (SendOutcome send_outcome), (override)); MOCK_METHOD(void, OnConnectionError, (), (override));
diff --git a/api/test/mock_frame_decryptor.h b/api/test/mock_frame_decryptor.h index 191a7dd..93ed397 100644 --- a/api/test/mock_frame_decryptor.h +++ b/api/test/mock_frame_decryptor.h
@@ -13,9 +13,9 @@ #include <cstddef> #include <cstdint> +#include <span> #include <vector> -#include "api/array_view.h" #include "api/crypto/frame_decryptor_interface.h" #include "api/media_types.h" #include "test/gmock.h" @@ -28,9 +28,9 @@ Decrypt, (MediaType, const std::vector<uint32_t>&, - ArrayView<const uint8_t>, - ArrayView<const uint8_t>, - ArrayView<uint8_t>), + std::span<const uint8_t>, + std::span<const uint8_t>, + std::span<uint8_t>), (override)); MOCK_METHOD(size_t,
diff --git a/api/test/mock_frame_encryptor.h b/api/test/mock_frame_encryptor.h index a449a29..85e3507 100644 --- a/api/test/mock_frame_encryptor.h +++ b/api/test/mock_frame_encryptor.h
@@ -13,8 +13,8 @@ #include <cstddef> #include <cstdint> +#include <span> -#include "api/array_view.h" #include "api/crypto/frame_encryptor_interface.h" #include "api/media_types.h" #include "test/gmock.h" @@ -27,9 +27,9 @@ Encrypt, (MediaType, uint32_t, - ArrayView<const uint8_t>, - ArrayView<const uint8_t>, - ArrayView<uint8_t>, + std::span<const uint8_t>, + std::span<const uint8_t>, + std::span<uint8_t>, size_t*), (override));
diff --git a/api/test/mock_rtp_transceiver.h b/api/test/mock_rtp_transceiver.h index 1a55efa..25a5c89 100644 --- a/api/test/mock_rtp_transceiver.h +++ b/api/test/mock_rtp_transceiver.h
@@ -12,10 +12,10 @@ #define API_TEST_MOCK_RTP_TRANSCEIVER_H_ #include <optional> +#include <span> #include <string> #include <vector> -#include "api/array_view.h" #include "api/make_ref_counted.h" #include "api/media_types.h" #include "api/rtc_error.h" @@ -68,7 +68,7 @@ MOCK_METHOD(void, Stop, (), (override)); MOCK_METHOD(RTCError, SetCodecPreferences, - (ArrayView<RtpCodecCapability> codecs), + (std::span<RtpCodecCapability> codecs), (override)); MOCK_METHOD(std::vector<RtpCodecCapability>, codec_preferences, @@ -84,7 +84,7 @@ (const, override)); MOCK_METHOD(RTCError, SetHeaderExtensionsToNegotiate, - (ArrayView<const RtpHeaderExtensionCapability> header_extensions), + (std::span<const RtpHeaderExtensionCapability> header_extensions), (override)); };
diff --git a/api/test/mock_transformable_audio_frame.h b/api/test/mock_transformable_audio_frame.h index 9de3c3f..6abb24a 100644 --- a/api/test/mock_transformable_audio_frame.h +++ b/api/test/mock_transformable_audio_frame.h
@@ -13,9 +13,9 @@ #include <cstdint> #include <optional> +#include <span> #include <string> -#include "api/array_view.h" #include "api/frame_transformer_interface.h" #include "api/units/time_delta.h" #include "api/units/timestamp.h" @@ -27,8 +27,8 @@ public: MockTransformableAudioFrame() : TransformableAudioFrameInterface(Passkey()) {} - MOCK_METHOD(ArrayView<const uint8_t>, GetData, (), (const, override)); - MOCK_METHOD(void, SetData, (ArrayView<const uint8_t>), (override)); + MOCK_METHOD(std::span<const uint8_t>, GetData, (), (const, override)); + MOCK_METHOD(void, SetData, (std::span<const uint8_t>), (override)); MOCK_METHOD(void, SetRTPTimestamp, (uint32_t), (override)); MOCK_METHOD(uint8_t, GetPayloadType, (), (const, override)); MOCK_METHOD(bool, CanSetPayloadType, (), (const, override)); @@ -36,7 +36,7 @@ MOCK_METHOD(uint32_t, GetSsrc, (), (const, override)); MOCK_METHOD(uint32_t, GetTimestamp, (), (const, override)); MOCK_METHOD(std::string, GetMimeType, (), (const, override)); - MOCK_METHOD(ArrayView<const uint32_t>, + MOCK_METHOD(std::span<const uint32_t>, GetContributingSources, (), (const, override));
diff --git a/api/test/mock_transformable_frame.h b/api/test/mock_transformable_frame.h index 252622a..804901d 100644 --- a/api/test/mock_transformable_frame.h +++ b/api/test/mock_transformable_frame.h
@@ -14,10 +14,10 @@ #include <stdint.h> #include <optional> +#include <span> #include <string> #include <type_traits> -#include "api/array_view.h" #include "api/frame_transformer_interface.h" #include "api/units/time_delta.h" #include "api/units/timestamp.h" @@ -29,8 +29,8 @@ public: MockTransformableFrame() : TransformableFrameInterface(Passkey()) {} - MOCK_METHOD(ArrayView<const uint8_t>, GetData, (), (const, override)); - MOCK_METHOD(void, SetData, (ArrayView<const uint8_t>), (override)); + MOCK_METHOD(std::span<const uint8_t>, GetData, (), (const, override)); + MOCK_METHOD(void, SetData, (std::span<const uint8_t>), (override)); MOCK_METHOD(uint8_t, GetPayloadType, (), (const, override)); MOCK_METHOD(bool, CanSetPayloadType, (), (const, override)); MOCK_METHOD(void, SetPayloadType, (uint8_t), (override));
diff --git a/api/test/mock_transformable_video_frame.h b/api/test/mock_transformable_video_frame.h index 2529dcc..8f418a3 100644 --- a/api/test/mock_transformable_video_frame.h +++ b/api/test/mock_transformable_video_frame.h
@@ -13,10 +13,10 @@ #include <cstdint> #include <optional> +#include <span> #include <string> #include <type_traits> -#include "api/array_view.h" #include "api/frame_transformer_interface.h" #include "api/units/time_delta.h" #include "api/units/timestamp.h" @@ -28,8 +28,8 @@ class MockTransformableVideoFrame : public TransformableVideoFrameInterface { public: MockTransformableVideoFrame() : TransformableVideoFrameInterface(Passkey()) {} - MOCK_METHOD(ArrayView<const uint8_t>, GetData, (), (const, override)); - MOCK_METHOD(void, SetData, (ArrayView<const uint8_t> data), (override)); + MOCK_METHOD(std::span<const uint8_t>, GetData, (), (const, override)); + MOCK_METHOD(void, SetData, (std::span<const uint8_t> data), (override)); MOCK_METHOD(uint32_t, GetTimestamp, (), (const, override)); MOCK_METHOD(void, SetRTPTimestamp, (uint32_t), (override)); MOCK_METHOD(uint32_t, GetSsrc, (), (const, override));
diff --git a/api/test/network_emulation_manager.h b/api/test/network_emulation_manager.h index 611a4b3..de5afe8 100644 --- a/api/test/network_emulation_manager.h +++ b/api/test/network_emulation_manager.h
@@ -15,13 +15,13 @@ #include <functional> #include <memory> #include <optional> +#include <span> #include <string> #include <utility> #include <vector> #include "absl/base/nullability.h" #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/field_trials_view.h" #include "api/test/network_emulation/cross_traffic.h" #include "api/test/network_emulation/network_emulation_interfaces.h" @@ -346,14 +346,14 @@ // `stats_callback`. Callback will be executed on network emulation // internal task queue. virtual void GetStats( - ArrayView<EmulatedEndpoint* const> endpoints, + std::span<EmulatedEndpoint* const> endpoints, std::function<void(EmulatedNetworkStats)> stats_callback) = 0; // Passes combined network stats for all specified `nodes` into specified // `stats_callback`. Callback will be executed on network emulation // internal task queue. virtual void GetStats( - ArrayView<EmulatedNetworkNode* const> nodes, + std::span<EmulatedNetworkNode* const> nodes, std::function<void(EmulatedNetworkNodeStats)> stats_callback) = 0; // Create a EmulatedTURNServer.
diff --git a/api/test/pclf/BUILD.gn b/api/test/pclf/BUILD.gn index 363bedd..858b09b 100644 --- a/api/test/pclf/BUILD.gn +++ b/api/test/pclf/BUILD.gn
@@ -17,7 +17,6 @@ ] deps = [ - "../..:array_view", "../..:audio_options_api", "../..:media_stream_interface", "../..:rtp_parameters",
diff --git a/api/test/pclf/media_configuration.cc b/api/test/pclf/media_configuration.cc index 679486d..1ce3f2a 100644 --- a/api/test/pclf/media_configuration.cc +++ b/api/test/pclf/media_configuration.cc
@@ -16,12 +16,12 @@ #include <map> #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/test/video/video_frame_writer.h" #include "api/units/time_delta.h" #include "rtc_base/checks.h" @@ -229,7 +229,7 @@ : name(name), required_params(std::move(required_params)) {} std::optional<VideoResolution> VideoSubscription::GetMaxResolution( - ArrayView<const VideoConfig> video_configs) { + std::span<const VideoConfig> video_configs) { std::vector<VideoResolution> resolutions; for (const auto& video_config : video_configs) { resolutions.push_back(video_config.GetResolution()); @@ -238,7 +238,7 @@ } std::optional<VideoResolution> VideoSubscription::GetMaxResolution( - ArrayView<const VideoResolution> resolutions) { + std::span<const VideoResolution> resolutions) { if (resolutions.empty()) { return std::nullopt; }
diff --git a/api/test/pclf/media_configuration.h b/api/test/pclf/media_configuration.h index 5f8e45c..c39978a 100644 --- a/api/test/pclf/media_configuration.h +++ b/api/test/pclf/media_configuration.h
@@ -17,11 +17,11 @@ #include <map> #include <memory> #include <optional> +#include <span> #include <string> #include <vector> #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/audio_options.h" #include "api/media_stream_interface.h" #include "api/rtp_parameters.h" @@ -394,9 +394,9 @@ // Returns the resolution constructed as maximum from all resolution // dimensions: width, height and fps. static std::optional<VideoResolution> GetMaxResolution( - ArrayView<const VideoConfig> video_configs); + std::span<const VideoConfig> video_configs); static std::optional<VideoResolution> GetMaxResolution( - ArrayView<const VideoResolution> resolutions); + std::span<const VideoResolution> resolutions); bool operator==(const VideoSubscription& other) const; bool operator!=(const VideoSubscription& other) const;
diff --git a/api/test/video_quality_analyzer_interface.h b/api/test/video_quality_analyzer_interface.h index 4322336..a06342c 100644 --- a/api/test/video_quality_analyzer_interface.h +++ b/api/test/video_quality_analyzer_interface.h
@@ -13,10 +13,10 @@ #include <cstdint> #include <optional> +#include <span> #include <string> #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/scoped_refptr.h" #include "api/stats/rtc_stats_report.h" #include "api/test/stats_observer_interface.h" @@ -88,7 +88,7 @@ // thread in each method, but should remember, that it is the same thread, // that is used in video pipeline. virtual void Start(std::string /* test_case_name */, - ArrayView<const std::string> /* peer_names */, + std::span<const std::string> /* peer_names */, int /* max_threads_count */) {} // Will be called when frame was generated from the input stream.
diff --git a/api/transport/BUILD.gn b/api/transport/BUILD.gn index 136a8f9..26737a2 100644 --- a/api/transport/BUILD.gn +++ b/api/transport/BUILD.gn
@@ -65,7 +65,6 @@ visibility = [ "*" ] sources = [ "data_channel_transport_interface.h" ] deps = [ - "..:array_view", "..:priority", "..:rtc_error", "../../rtc_base:copy_on_write_buffer", @@ -110,7 +109,6 @@ ] deps = [ - "../../api:array_view", "../../rtc_base:byte_buffer", "../../rtc_base:byte_order", "../../rtc_base:checks", @@ -176,7 +174,6 @@ sources = [ "stun_unittest.cc" ] deps = [ ":stun_types", - "..:array_view", "../../rtc_base:byte_buffer", "../../rtc_base:byte_order", "../../rtc_base:ip_address",
diff --git a/api/transport/rtp/BUILD.gn b/api/transport/rtp/BUILD.gn index fa0dc97..dc627f8 100644 --- a/api/transport/rtp/BUILD.gn +++ b/api/transport/rtp/BUILD.gn
@@ -41,7 +41,6 @@ "corruption_detection_message.h", ] deps = [ - "../../:array_view", "../../../rtc_base:checks", "../../video/corruption_detection:frame_instrumentation_data", "//third_party/abseil-cpp/absl/container:inlined_vector",
diff --git a/api/transport/rtp/corruption_detection_message.cc b/api/transport/rtp/corruption_detection_message.cc index 68e1ca6..903b0ca 100644 --- a/api/transport/rtp/corruption_detection_message.cc +++ b/api/transport/rtp/corruption_detection_message.cc
@@ -11,9 +11,9 @@ #include "api/transport/rtp/corruption_detection_message.h" #include <optional> +#include <span> #include <utility> -#include "api/array_view.h" #include "api/video/corruption_detection/frame_instrumentation_data.h" #include "rtc_base/checks.h" @@ -116,7 +116,7 @@ CorruptionDetectionMessage::Builder& CorruptionDetectionMessage::Builder::WithSampleValues( - const ArrayView<const double>& sample_values) { + const std::span<const double>& sample_values) { message_.sample_values_.assign(sample_values.begin(), sample_values.end()); return *this; }
diff --git a/api/transport/rtp/corruption_detection_message.h b/api/transport/rtp/corruption_detection_message.h index 81ea224..2765b51 100644 --- a/api/transport/rtp/corruption_detection_message.h +++ b/api/transport/rtp/corruption_detection_message.h
@@ -13,9 +13,9 @@ #include <cstddef> #include <optional> +#include <span> #include "absl/container/inlined_vector.h" -#include "api/array_view.h" #include "api/video/corruption_detection/frame_instrumentation_data.h" namespace webrtc { @@ -39,8 +39,8 @@ double std_dev() const { return std_dev_; } int luma_error_threshold() const { return luma_error_threshold_; } int chroma_error_threshold() const { return chroma_error_threshold_; } - ArrayView<const double> sample_values() const { - return MakeArrayView(sample_values_.data(), sample_values_.size()); + std::span<const double> sample_values() const { + return std::span(sample_values_.data(), sample_values_.size()); } static CorruptionDetectionMessage FromFrameInstrumentationData( @@ -95,7 +95,7 @@ Builder& WithStdDev(double std_dev); Builder& WithLumaErrorThreshold(int luma_error_threshold); Builder& WithChromaErrorThreshold(int chroma_error_threshold); - Builder& WithSampleValues(const ArrayView<const double>& sample_values); + Builder& WithSampleValues(const std::span<const double>& sample_values); private: CorruptionDetectionMessage message_;
diff --git a/api/transport/stun.cc b/api/transport/stun.cc index 6b9ca04..2849a5a 100644 --- a/api/transport/stun.cc +++ b/api/transport/stun.cc
@@ -17,12 +17,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 "rtc_base/byte_buffer.h" #include "rtc_base/byte_order.h" #include "rtc_base/checks.h" @@ -51,8 +51,8 @@ transaction_id.length() == kStunLegacyTransactionIdLength) << transaction_id.length(); ByteBufferReader reader( - MakeArrayView(reinterpret_cast<const uint8_t*>(transaction_id.data()), - transaction_id.size())); + std::span(reinterpret_cast<const uint8_t*>(transaction_id.data()), + transaction_id.size())); uint32_t result = 0; uint32_t next; while (reader.ReadUInt32(&next)) { @@ -379,7 +379,7 @@ return false; } - ArrayView<const uint8_t> data_view(reinterpret_cast<const uint8_t*>(data), + std::span<const uint8_t> data_view(reinterpret_cast<const uint8_t*>(data), size); // Getting the message length from the STUN header. @@ -438,7 +438,7 @@ // |0 0| STUN Message Type | Message Length | // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ SetBE16( - ArrayView<uint8_t>(reinterpret_cast<uint8_t*>(temp_data.get() + 2), 2), + std::span<uint8_t>(reinterpret_cast<uint8_t*>(temp_data.get() + 2), 2), static_cast<uint16_t>(new_adjusted_len)); } @@ -510,7 +510,7 @@ if (size % 4 != 0 || size < kStunHeaderSize + fingerprint_attr_size) return false; - ArrayView<const uint8_t> data_view(reinterpret_cast<const uint8_t*>(data), + std::span<const uint8_t> data_view(reinterpret_cast<const uint8_t*>(data), size); // Skip the rest if the magic cookie isn't present. @@ -539,14 +539,14 @@ return CreateRandomString(kStunTransactionIdLength); } -bool StunMessage::IsStunMethod(ArrayView<int> methods, +bool StunMessage::IsStunMethod(std::span<int> methods, const char* data, size_t size) { // Check the message length. if (size % 4 != 0 || size < kStunHeaderSize) return false; - ArrayView<const uint8_t> data_view(reinterpret_cast<const uint8_t*>(data), + std::span<const uint8_t> data_view(reinterpret_cast<const uint8_t*>(data), size); // Skip the rest if the magic cookie isn't present. @@ -816,7 +816,7 @@ int remainder = length_ % 4; if (remainder > 0) { uint8_t zeroes[4] = {0}; - buf->Write(ArrayView<const uint8_t>(zeroes, 4 - remainder)); + buf->Write(std::span<const uint8_t>(zeroes, 4 - remainder)); } } @@ -915,8 +915,8 @@ if (length() != SIZE_IP4) { return false; } - if (!buf->ReadBytes(MakeArrayView(reinterpret_cast<uint8_t*>(&v4addr), - sizeof(v4addr)))) { + if (!buf->ReadBytes( + std::span(reinterpret_cast<uint8_t*>(&v4addr), sizeof(v4addr)))) { return false; } IPAddress ipaddr(v4addr); @@ -926,8 +926,8 @@ if (length() != SIZE_IP6) { return false; } - if (!buf->ReadBytes(MakeArrayView(reinterpret_cast<uint8_t*>(&v6addr), - sizeof(v6addr)))) { + if (!buf->ReadBytes( + std::span(reinterpret_cast<uint8_t*>(&v6addr), sizeof(v6addr)))) { return false; } IPAddress ipaddr(v6addr); @@ -950,13 +950,13 @@ switch (address_.family()) { case AF_INET: { in_addr v4addr = address_.ipaddr().ipv4_address(); - buf->Write(ArrayView<const uint8_t>(reinterpret_cast<uint8_t*>(&v4addr), + buf->Write(std::span<const uint8_t>(reinterpret_cast<uint8_t*>(&v4addr), sizeof(v4addr))); break; } case AF_INET6: { in6_addr v6addr = address_.ipaddr().ipv6_address(); - buf->Write(ArrayView<const uint8_t>(reinterpret_cast<uint8_t*>(&v6addr), + buf->Write(std::span<const uint8_t>(reinterpret_cast<uint8_t*>(&v6addr), sizeof(v6addr))); break; } @@ -1040,13 +1040,13 @@ switch (xored_ip.family()) { case AF_INET: { in_addr v4addr = xored_ip.ipv4_address(); - buf->Write(ArrayView<const uint8_t>( + buf->Write(std::span<const uint8_t>( reinterpret_cast<const uint8_t*>(&v4addr), sizeof(v4addr))); break; } case AF_INET6: { in6_addr v6addr = xored_ip.ipv6_address(); - buf->Write(ArrayView<const uint8_t>( + buf->Write(std::span<const uint8_t>( reinterpret_cast<const uint8_t*>(&v6addr), sizeof(v6addr))); break; } @@ -1185,7 +1185,7 @@ bool StunByteStringAttribute::Read(ByteBufferReader* buf) { bytes_ = new uint8_t[length()]; - if (!buf->ReadBytes(ArrayView<uint8_t>(bytes_, length()))) { + if (!buf->ReadBytes(std::span<uint8_t>(bytes_, length()))) { return false; } @@ -1198,7 +1198,7 @@ if (!LengthValid(type(), length())) { return false; } - buf->Write(ArrayView<const uint8_t>(bytes_, length())); + buf->Write(std::span<const uint8_t>(bytes_, length())); WritePadding(buf); return true; }
diff --git a/api/transport/stun.h b/api/transport/stun.h index 9066a5c..f9e0a8f 100644 --- a/api/transport/stun.h +++ b/api/transport/stun.h
@@ -19,11 +19,11 @@ #include <functional> #include <memory> #include <optional> +#include <span> #include <string> #include <vector> #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "rtc_base/byte_buffer.h" #include "rtc_base/checks.h" #include "rtc_base/ip_address.h" @@ -255,7 +255,7 @@ // Verify that a buffer has stun magic cookie and one of the specified // methods. Note that it does not check for the existance of FINGERPRINT. - static bool IsStunMethod(ArrayView<int> methods, + static bool IsStunMethod(std::span<int> methods, const char* data, size_t size); @@ -523,9 +523,7 @@ } // Returns the attribute value as an uint8_t view. // Use this function for values that are not text. - ArrayView<uint8_t> array_view() const { - return MakeArrayView(bytes_, length()); - } + std::span<uint8_t> array_view() const { return std::span(bytes_, length()); } [[deprecated]] std::string GetString() const { return std::string(reinterpret_cast<const char*>(bytes_), length());
diff --git a/api/transport/stun_unittest.cc b/api/transport/stun_unittest.cc index 1d70f5f..21d26ee 100644 --- a/api/transport/stun_unittest.cc +++ b/api/transport/stun_unittest.cc
@@ -14,11 +14,11 @@ #include <cstring> #include <memory> #include <optional> +#include <span> #include <string> #include <utility> #include <vector> -#include "api/array_view.h" #include "rtc_base/byte_buffer.h" #include "rtc_base/byte_order.h" #include "rtc_base/ip_address.h" @@ -212,9 +212,9 @@ 0x00, 0x03, 0x73, 0x50, }; -const ArrayView<const uint8_t> kZeroLenView(kStunMessageWithZeroLength); -const ArrayView<const uint8_t> kExcessLenView(kStunMessageWithExcessLength); -const ArrayView<const uint8_t> kSmallLenView(kStunMessageWithSmallLength); +const std::span<const uint8_t> kZeroLenView(kStunMessageWithZeroLength); +const std::span<const uint8_t> kExcessLenView(kStunMessageWithExcessLength); +const std::span<const uint8_t> kSmallLenView(kStunMessageWithSmallLength); // RFC5769 Test Vectors @@ -546,7 +546,7 @@ size_t ReadStunMessageTestCase(StunMessage* msg, const uint8_t* testcase, size_t size) { - ByteBufferReader buf(MakeArrayView(testcase, size)); + ByteBufferReader buf(std::span(testcase, size)); if (msg->Read(&buf)) { // Returns the size the stun message should report itself as being return (size - 20); @@ -1133,7 +1133,7 @@ // Test that we fail to read messages with invalid lengths. void CheckFailureToRead(const uint8_t* testcase, size_t length) { StunMessage msg; - ByteBufferReader buf(MakeArrayView(testcase, length)); + ByteBufferReader buf(std::span(testcase, length)); ASSERT_FALSE(msg.Read(&buf)); }
diff --git a/api/units/BUILD.gn b/api/units/BUILD.gn index 379d5b5..0c54b3e 100644 --- a/api/units/BUILD.gn +++ b/api/units/BUILD.gn
@@ -19,7 +19,6 @@ ":data_size", ":frequency", ":time_delta", - "..:array_view", "../../rtc_base:checks", "../../rtc_base:stringutils", "../../rtc_base/system:rtc_export", @@ -35,7 +34,6 @@ ] deps = [ - "..:array_view", "../../rtc_base:checks", "../../rtc_base:stringutils", "../../rtc_base/system:rtc_export", @@ -51,7 +49,6 @@ ] deps = [ - "..:array_view", "../../rtc_base:checks", "../../rtc_base:stringutils", "../../rtc_base/system:rtc_export", @@ -68,7 +65,6 @@ deps = [ ":time_delta", - "..:array_view", "../../rtc_base:checks", "../../rtc_base:stringutils", "../../rtc_base/system:rtc_export", @@ -85,7 +81,6 @@ deps = [ ":time_delta", - "..:array_view", "../../rtc_base:checks", "../../rtc_base:stringutils", "../../rtc_base/system:rtc_export",
diff --git a/api/units/data_rate.cc b/api/units/data_rate.cc index 7f99a17..5b3838f 100644 --- a/api/units/data_rate.cc +++ b/api/units/data_rate.cc
@@ -12,7 +12,6 @@ #include <string> -#include "api/array_view.h" #include "rtc_base/strings/string_builder.h" namespace webrtc {
diff --git a/api/units/data_size.cc b/api/units/data_size.cc index abe4906..24bb83c 100644 --- a/api/units/data_size.cc +++ b/api/units/data_size.cc
@@ -12,7 +12,6 @@ #include <string> -#include "api/array_view.h" #include "rtc_base/strings/string_builder.h" namespace webrtc {
diff --git a/api/units/time_delta.cc b/api/units/time_delta.cc index efd5a2a..9e1521b 100644 --- a/api/units/time_delta.cc +++ b/api/units/time_delta.cc
@@ -12,7 +12,6 @@ #include <string> -#include "api/array_view.h" #include "rtc_base/strings/string_builder.h" namespace webrtc {
diff --git a/api/units/timestamp.cc b/api/units/timestamp.cc index 38b0d11..6dd64ab 100644 --- a/api/units/timestamp.cc +++ b/api/units/timestamp.cc
@@ -12,7 +12,6 @@ #include <string> -#include "api/array_view.h" #include "rtc_base/strings/string_builder.h" namespace webrtc {
diff --git a/api/video/BUILD.gn b/api/video/BUILD.gn index d618604..0566d8b 100644 --- a/api/video/BUILD.gn +++ b/api/video/BUILD.gn
@@ -27,7 +27,6 @@ ] deps = [ - "..:array_view", "../../rtc_base:checks", "../../rtc_base:logging", "../../rtc_base:safe_conversions", @@ -61,7 +60,6 @@ deps = [ ":video_rtp_headers", - "..:array_view", "..:make_ref_counted", "..:ref_count", "..:rtp_packet_info", @@ -117,7 +115,6 @@ ":encoded_image", ":video_frame", ":video_rtp_headers", - "..:array_view", "..:make_ref_counted", "..:scoped_refptr", "../units:timestamp", @@ -206,7 +203,6 @@ ":encoded_image", ":video_frame_type", ":video_rtp_headers", - "..:array_view", "..:rtp_packet_info", "..:scoped_refptr", "../../modules/rtp_rtcp", @@ -231,7 +227,6 @@ ":rtp_video_frame_assembler", ":video_frame", ":video_frame_type", - "..:array_view", "../../modules/rtp_rtcp", "../../modules/rtp_rtcp:rtp_packetizer_av1_test_helper", "../../modules/rtp_rtcp:rtp_rtcp_format", @@ -253,7 +248,6 @@ ":rtp_video_frame_assembler", ":video_frame", ":video_frame_type", - "..:array_view", "../../modules/rtp_rtcp", "../../modules/rtp_rtcp:rtp_rtcp_format", "../../modules/rtp_rtcp:rtp_video_header", @@ -363,7 +357,6 @@ ":video_frame", ":video_frame_type", ":video_rtp_headers", - "..:array_view", "../../modules/video_coding:codec_globals_headers", "../../rtc_base/system:rtc_export", "../transport/rtp:dependency_descriptor", @@ -400,7 +393,6 @@ "frame_buffer.h", ] deps = [ - "..:array_view", "../../api:field_trials_view", "../../api/units:timestamp", "../../api/video:encoded_frame",
diff --git a/api/video/corruption_detection/frame_instrumentation_data.cc b/api/video/corruption_detection/frame_instrumentation_data.cc index ecc076ad..d54aa4b 100644 --- a/api/video/corruption_detection/frame_instrumentation_data.cc +++ b/api/video/corruption_detection/frame_instrumentation_data.cc
@@ -10,11 +10,10 @@ #include "api/video/corruption_detection/frame_instrumentation_data.h" +#include <span> #include <utility> #include <vector> -#include "api/array_view.h" - namespace webrtc { constexpr int kMaxSequenceIndex = (1 << 14) - 1; @@ -61,7 +60,7 @@ } bool FrameInstrumentationData::SetSampleValues( - webrtc::ArrayView<const double> samples) { + std::span<const double> samples) { for (double sample_value : samples) { if (sample_value < 0.0 || sample_value > 255.0) { return false;
diff --git a/api/video/corruption_detection/frame_instrumentation_data.h b/api/video/corruption_detection/frame_instrumentation_data.h index 8d4dc41..923a981 100644 --- a/api/video/corruption_detection/frame_instrumentation_data.h +++ b/api/video/corruption_detection/frame_instrumentation_data.h
@@ -11,10 +11,9 @@ #ifndef API_VIDEO_CORRUPTION_DETECTION_FRAME_INSTRUMENTATION_DATA_H_ #define API_VIDEO_CORRUPTION_DETECTION_FRAME_INSTRUMENTATION_DATA_H_ +#include <span> #include <vector> -#include "api/array_view.h" - namespace webrtc { class FrameInstrumentationData { @@ -26,14 +25,14 @@ double std_dev() const { return std_dev_; } int luma_error_threshold() const { return luma_error_threshold_; } int chroma_error_threshold() const { return chroma_error_threshold_; } - ArrayView<const double> sample_values() const { return sample_values_; } + std::span<const double> sample_values() const { return sample_values_; } bool SetSequenceIndex(int index); void set_droppable(bool droppable) { droppable_ = droppable; } bool SetStdDev(double std_dev); bool SetLumaErrorThreshold(int threshold); bool SetChromaErrorThreshold(int threshold); - bool SetSampleValues(ArrayView<const double> samples); + bool SetSampleValues(std::span<const double> samples); bool SetSampleValues(std::vector<double>&& samples); // Convenience methods..
diff --git a/api/video/corruption_detection/frame_instrumentation_data_reader.cc b/api/video/corruption_detection/frame_instrumentation_data_reader.cc index 760fead..b025d25 100644 --- a/api/video/corruption_detection/frame_instrumentation_data_reader.cc +++ b/api/video/corruption_detection/frame_instrumentation_data_reader.cc
@@ -11,8 +11,8 @@ #include "api/video/corruption_detection/frame_instrumentation_data_reader.h" #include <optional> +#include <span> -#include "api/array_view.h" #include "api/transport/rtp/corruption_detection_message.h" #include "api/video/corruption_detection/frame_instrumentation_data.h" #include "rtc_base/logging.h" @@ -45,7 +45,7 @@ // The sequence index field of the message refers to the halton sequence index // for the first sample in the message. In order to figure out the next // expected sequence index we must increment it by the number of samples. - ArrayView<const double> sample_values = message.sample_values(); + std::span<const double> sample_values = message.sample_values(); last_seen_sequence_index_ = data.sequence_index() + sample_values.size(); if (!sample_values.empty()) {
diff --git a/api/video/corruption_detection/frame_instrumentation_evaluation.cc b/api/video/corruption_detection/frame_instrumentation_evaluation.cc index a3e271d..d1beb7c 100644 --- a/api/video/corruption_detection/frame_instrumentation_evaluation.cc +++ b/api/video/corruption_detection/frame_instrumentation_evaluation.cc
@@ -12,9 +12,9 @@ #include <cstddef> #include <memory> +#include <span> #include <vector> -#include "api/array_view.h" #include "api/video/corruption_detection/frame_instrumentation_data.h" #include "api/video/video_content_type.h" #include "api/video/video_frame.h" @@ -28,8 +28,8 @@ namespace { std::vector<FilteredSample> ConvertSampleValuesToFilteredSamples( - ArrayView<const double> values, - ArrayView<const FilteredSample> samples) { + std::span<const double> values, + std::span<const FilteredSample> samples) { RTC_CHECK_EQ(values.size(), samples.size()) << "values and samples must have the same size"; std::vector<FilteredSample> filtered_samples;
diff --git a/api/video/frame_buffer.cc b/api/video/frame_buffer.cc index 78426db..fcff81f 100644 --- a/api/video/frame_buffer.cc +++ b/api/video/frame_buffer.cc
@@ -16,11 +16,11 @@ #include <iterator> #include <memory> #include <optional> +#include <span> #include <utility> #include "absl/algorithm/container.h" #include "absl/container/inlined_vector.h" -#include "api/array_view.h" #include "api/field_trials_view.h" #include "api/video/encoded_frame.h" #include "rtc_base/logging.h" @@ -46,7 +46,7 @@ // Since FrameBuffer::FrameInfo is private it can't be used in the function // signature, hence the FrameIteratorT type. template <typename FrameIteratorT> -ArrayView<const int64_t> GetReferences(const FrameIteratorT& it) { +std::span<const int64_t> GetReferences(const FrameIteratorT& it) { return {it->second.encoded_frame->references, std::min<size_t>(it->second.encoded_frame->num_references, EncodedFrame::kMaxFrameReferences)};
diff --git a/api/video/rtp_video_frame_assembler.cc b/api/video/rtp_video_frame_assembler.cc index e7bc37a..821e529 100644 --- a/api/video/rtp_video_frame_assembler.cc +++ b/api/video/rtp_video_frame_assembler.cc
@@ -13,11 +13,11 @@ #include <cstdint> #include <memory> #include <optional> +#include <span> #include <utility> #include <vector> #include "absl/container/inlined_vector.h" -#include "api/array_view.h" #include "api/rtp_packet_infos.h" #include "api/scoped_refptr.h" #include "api/transport/rtp/dependency_descriptor.h" @@ -161,7 +161,7 @@ RtpVideoFrameAssembler::Impl::AssembleFrames( video_coding::PacketBuffer::InsertResult insert_result) { video_coding::PacketBuffer::Packet* first_packet = nullptr; - std::vector<ArrayView<const uint8_t>> payloads; + std::vector<std::span<const uint8_t>> payloads; RtpFrameVector result; for (auto& packet : insert_result.packets) {
diff --git a/api/video/rtp_video_frame_assembler_unittests.cc b/api/video/rtp_video_frame_assembler_unittests.cc index 826ae8a..e5c0dba 100644 --- a/api/video/rtp_video_frame_assembler_unittests.cc +++ b/api/video/rtp_video_frame_assembler_unittests.cc
@@ -11,9 +11,9 @@ #include <cstdint> #include <iterator> #include <memory> +#include <span> #include <vector> -#include "api/array_view.h" #include "api/transport/rtp/dependency_descriptor.h" #include "api/video/encoded_frame.h" #include "api/video/rtp_video_frame_assembler.h" @@ -54,7 +54,7 @@ return *this; } - PacketBuilder& WithPayload(ArrayView<const uint8_t> payload) { + PacketBuilder& WithPayload(std::span<const uint8_t> payload) { payload_.assign(payload.begin(), payload.end()); return *this; } @@ -131,11 +131,11 @@ std::make_move_iterator(from.end())); } -ArrayView<int64_t> References(const std::unique_ptr<EncodedFrame>& frame) { - return MakeArrayView(frame->references, frame->num_references); +std::span<int64_t> References(const std::unique_ptr<EncodedFrame>& frame) { + return std::span(frame->references, frame->num_references); } -ArrayView<const uint8_t> Payload(const std::unique_ptr<EncodedFrame>& frame) { +std::span<const uint8_t> Payload(const std::unique_ptr<EncodedFrame>& frame) { return *frame->GetEncodedData(); }
diff --git a/api/video/rtp_video_frame_h265_assembler_unittests.cc b/api/video/rtp_video_frame_h265_assembler_unittests.cc index aff5c8a..db82307 100644 --- a/api/video/rtp_video_frame_h265_assembler_unittests.cc +++ b/api/video/rtp_video_frame_h265_assembler_unittests.cc
@@ -11,10 +11,10 @@ #include <cstdint> #include <iterator> #include <memory> +#include <span> #include <utility> #include <vector> -#include "api/array_view.h" #include "api/video/encoded_frame.h" #include "api/video/rtp_video_frame_assembler.h" #include "api/video/video_frame_type.h" @@ -44,7 +44,7 @@ return *this; } - PacketBuilder& WithPayload(ArrayView<const uint8_t> payload) { + PacketBuilder& WithPayload(std::span<const uint8_t> payload) { payload_.assign(payload.begin(), payload.end()); return *this; } @@ -87,11 +87,11 @@ std::make_move_iterator(from.end())); } -ArrayView<int64_t> References(const std::unique_ptr<EncodedFrame>& frame) { - return MakeArrayView(frame->references, frame->num_references); +std::span<int64_t> References(const std::unique_ptr<EncodedFrame>& frame) { + return std::span(frame->references, frame->num_references); } -ArrayView<const uint8_t> Payload(const std::unique_ptr<EncodedFrame>& frame) { +std::span<const uint8_t> Payload(const std::unique_ptr<EncodedFrame>& frame) { return *frame->GetEncodedData(); }
diff --git a/api/video/video_frame_buffer.cc b/api/video/video_frame_buffer.cc index 7b45658..131aa3e 100644 --- a/api/video/video_frame_buffer.cc +++ b/api/video/video_frame_buffer.cc
@@ -11,9 +11,9 @@ #include "api/video/video_frame_buffer.h" #include <cstddef> +#include <span> #include <string> -#include "api/array_view.h" #include "api/scoped_refptr.h" #include "api/video/i420_buffer.h" #include "api/video/i422_buffer.h" @@ -89,7 +89,7 @@ } scoped_refptr<VideoFrameBuffer> VideoFrameBuffer::GetMappedFrameBuffer( - ArrayView<Type> /* types */) { + std::span<Type> /* types */) { RTC_CHECK(type() == Type::kNative); return nullptr; }
diff --git a/api/video/video_frame_buffer.h b/api/video/video_frame_buffer.h index b160ab8..5545239 100644 --- a/api/video/video_frame_buffer.h +++ b/api/video/video_frame_buffer.h
@@ -13,9 +13,9 @@ #include <cstddef> #include <cstdint> +#include <span> #include <string> -#include "api/array_view.h" #include "api/ref_count.h" #include "api/scoped_refptr.h" #include "rtc_base/system/rtc_export.h" @@ -129,7 +129,7 @@ // frame type is not supported, mapping is not possible, or if the kNative // frame has not implemented this method. Only callable if type() is kNative. virtual scoped_refptr<VideoFrameBuffer> GetMappedFrameBuffer( - ArrayView<Type> types); + std::span<Type> types); // For logging: returns a textual representation of the storage. virtual std::string storage_representation() const;
diff --git a/api/video/video_frame_metadata.cc b/api/video/video_frame_metadata.cc index f265fc3..4441b98 100644 --- a/api/video/video_frame_metadata.cc +++ b/api/video/video_frame_metadata.cc
@@ -12,10 +12,10 @@ #include <cstdint> #include <optional> +#include <span> #include <utility> #include <vector> -#include "api/array_view.h" #include "api/transport/rtp/dependency_descriptor.h" #include "api/video/video_codec_type.h" #include "api/video/video_content_type.h" @@ -90,23 +90,23 @@ temporal_index_ = temporal_index; } -ArrayView<const int64_t> VideoFrameMetadata::GetFrameDependencies() const { +std::span<const int64_t> VideoFrameMetadata::GetFrameDependencies() const { return frame_dependencies_; } void VideoFrameMetadata::SetFrameDependencies( - ArrayView<const int64_t> frame_dependencies) { + std::span<const int64_t> frame_dependencies) { frame_dependencies_.assign(frame_dependencies.begin(), frame_dependencies.end()); } -ArrayView<const DecodeTargetIndication> +std::span<const DecodeTargetIndication> VideoFrameMetadata::GetDecodeTargetIndications() const { return decode_target_indications_; } void VideoFrameMetadata::SetDecodeTargetIndications( - ArrayView<const DecodeTargetIndication> decode_target_indications) { + std::span<const DecodeTargetIndication> decode_target_indications) { decode_target_indications_.assign(decode_target_indications.begin(), decode_target_indications.end()); }
diff --git a/api/video/video_frame_metadata.h b/api/video/video_frame_metadata.h index 342d69b..1dfd1bb 100644 --- a/api/video/video_frame_metadata.h +++ b/api/video/video_frame_metadata.h
@@ -13,11 +13,11 @@ #include <cstdint> #include <optional> +#include <span> #include <variant> #include <vector> #include "absl/container/inlined_vector.h" -#include "api/array_view.h" #include "api/transport/rtp/dependency_descriptor.h" #include "api/video/video_codec_type.h" #include "api/video/video_content_type.h" @@ -67,12 +67,12 @@ int GetTemporalIndex() const; void SetTemporalIndex(int temporal_index); - ArrayView<const int64_t> GetFrameDependencies() const; - void SetFrameDependencies(ArrayView<const int64_t> frame_dependencies); + std::span<const int64_t> GetFrameDependencies() const; + void SetFrameDependencies(std::span<const int64_t> frame_dependencies); - ArrayView<const DecodeTargetIndication> GetDecodeTargetIndications() const; + std::span<const DecodeTargetIndication> GetDecodeTargetIndications() const; void SetDecodeTargetIndications( - ArrayView<const DecodeTargetIndication> decode_target_indications); + std::span<const DecodeTargetIndication> decode_target_indications); bool GetIsLastFrameInPicture() const; void SetIsLastFrameInPicture(bool is_last_frame_in_picture);
diff --git a/api/video/video_timing.cc b/api/video/video_timing.cc index a5b7f78..bc9ee80 100644 --- a/api/video/video_timing.cc +++ b/api/video/video_timing.cc
@@ -14,7 +14,6 @@ #include <cstdint> #include <string> -#include "api/array_view.h" #include "api/units/time_delta.h" #include "rtc_base/logging.h" #include "rtc_base/numerics/safe_conversions.h"
diff --git a/api/video_codecs/BUILD.gn b/api/video_codecs/BUILD.gn index 2b16682..1ec3dff 100644 --- a/api/video_codecs/BUILD.gn +++ b/api/video_codecs/BUILD.gn
@@ -81,7 +81,6 @@ ":scalability_mode", "..:fec_controller_api", "..:scoped_refptr", - "../../api:array_view", "../../api:rtp_parameters", "../../media:media_constants", "../../modules/video_coding:codec_globals_headers", @@ -122,7 +121,7 @@ rtc_source_set("bitstream_parser_api") { visibility = [ "*" ] sources = [ "bitstream_parser.h" ] - deps = [ "..:array_view" ] + deps = [] } rtc_library("builtin_video_decoder_factory") { @@ -169,7 +168,6 @@ deps = [ ":scalability_mode", ":video_codecs_api", - "..:array_view", "../../modules/video_coding/svc:scalability_mode_util", "../environment", "//third_party/abseil-cpp/absl/algorithm:container", @@ -240,7 +238,6 @@ deps = [ ":video_codecs_api", - "..:array_view", "../environment", "//third_party/abseil-cpp/absl/algorithm:container", ] @@ -301,7 +298,6 @@ deps = [ ":video_encoding_general", - "..:array_view", "..:scoped_refptr", "../../api/units:data_rate", "../../api/units:data_size", @@ -338,7 +334,6 @@ deps = [ ":video_encoder_factory_interface", ":video_encoder_interface", - "..:array_view", "..:scoped_refptr", "../../api/units:data_rate", "../../api/video_codecs:scalability_mode", @@ -405,7 +400,6 @@ ":video_encoder_factory_interface", ":video_encoder_interface", ":video_encoding_general", - "..:array_view", "..:scoped_refptr", "../../api/video:video_frame", "../../api/video_codecs:video_codecs_api",
diff --git a/api/video_codecs/bitstream_parser.h b/api/video_codecs/bitstream_parser.h index a7dd998..85587c6 100644 --- a/api/video_codecs/bitstream_parser.h +++ b/api/video_codecs/bitstream_parser.h
@@ -15,8 +15,7 @@ #include <stdint.h> #include <optional> - -#include "api/array_view.h" +#include <span> namespace webrtc { @@ -26,7 +25,7 @@ virtual ~BitstreamParser() = default; // Parse an additional chunk of the bitstream. - virtual void ParseBitstream(ArrayView<const uint8_t> bitstream) = 0; + virtual void ParseBitstream(std::span<const uint8_t> bitstream) = 0; // Get the last extracted QP value from the parsed bitstream. If no QP // value could be parsed, returns std::nullopt.
diff --git a/api/video_codecs/libaom_av1_encoder_factory_test.cc b/api/video_codecs/libaom_av1_encoder_factory_test.cc index 27189fc..8d58b51 100644 --- a/api/video_codecs/libaom_av1_encoder_factory_test.cc +++ b/api/video_codecs/libaom_av1_encoder_factory_test.cc
@@ -15,12 +15,12 @@ #include <memory> #include <optional> #include <ostream> +#include <span> #include <string> #include <utility> #include <variant> #include <vector> -#include "api/array_view.h" #include "api/scoped_refptr.h" #include "api/units/data_rate.h" #include "api/units/data_size.h" @@ -98,7 +98,7 @@ return 0; } - VideoFrame Decode(ArrayView<uint8_t> bitstream_data) { + VideoFrame Decode(std::span<uint8_t> bitstream_data) { EncodedImage img; img.SetEncodedData(EncodedImageBuffer::Create(bitstream_data.data(), bitstream_data.size())); @@ -127,7 +127,7 @@ FrameEncoderSettingsBuilder() { class IgnoredOutput : public VideoEncoderInterface::FrameOutput { public: - ArrayView<uint8_t> GetBitstreamOutputBuffer(DataSize size) override { + std::span<uint8_t> GetBitstreamOutputBuffer(DataSize size) override { unread_.resize(size.bytes()); return unread_; } @@ -203,9 +203,9 @@ private: struct FrameOut : public VideoEncoderInterface::FrameOutput { explicit FrameOut(EncOut& e) : eo(e) {} - ArrayView<uint8_t> GetBitstreamOutputBuffer(DataSize size) override { + std::span<uint8_t> GetBitstreamOutputBuffer(DataSize size) override { eo.bitstream.resize(size.bytes()); - return ArrayView<uint8_t>(eo.bitstream); + return std::span<uint8_t>(eo.bitstream); } void EncodeComplete(const EncodeResult& encode_result) override { eo.res = encode_result;
diff --git a/api/video_codecs/sdp_video_format.cc b/api/video_codecs/sdp_video_format.cc index dcc966e..57cdbec 100644 --- a/api/video_codecs/sdp_video_format.cc +++ b/api/video_codecs/sdp_video_format.cc
@@ -11,11 +11,11 @@ #include "api/video_codecs/sdp_video_format.h" #include <optional> +#include <span> #include <string> #include "absl/container/inlined_vector.h" #include "absl/strings/match.h" -#include "api/array_view.h" #include "api/rtp_parameters.h" #include "api/video/video_codec_type.h" #include "api/video_codecs/av1_profile.h" @@ -172,7 +172,7 @@ } bool SdpVideoFormat::IsCodecInList( - ArrayView<const SdpVideoFormat> formats) const { + std::span<const SdpVideoFormat> formats) const { for (const auto& format : formats) { if (IsSameCodec(format)) { return true; @@ -245,7 +245,7 @@ } std::optional<SdpVideoFormat> FuzzyMatchSdpVideoFormat( - ArrayView<const SdpVideoFormat> supported_formats, + std::span<const SdpVideoFormat> supported_formats, const SdpVideoFormat& format) { std::optional<SdpVideoFormat> res; int best_parameter_match = 0;
diff --git a/api/video_codecs/sdp_video_format.h b/api/video_codecs/sdp_video_format.h index 494d1df..37f03aa 100644 --- a/api/video_codecs/sdp_video_format.h +++ b/api/video_codecs/sdp_video_format.h
@@ -13,10 +13,10 @@ #include <map> #include <optional> +#include <span> #include <string> #include "absl/container/inlined_vector.h" -#include "api/array_view.h" #include "api/rtp_parameters.h" #include "api/video_codecs/scalability_mode.h" #include "rtc_base/system/rtc_export.h" @@ -55,7 +55,7 @@ // specific parameters. Please note that two SdpVideoFormats can represent the // same codec even though not all parameters are the same. bool IsSameCodec(const SdpVideoFormat& other) const; - bool IsCodecInList(ArrayView<const SdpVideoFormat> formats) const; + bool IsCodecInList(std::span<const SdpVideoFormat> formats) const; std::string ToString() const; @@ -92,7 +92,7 @@ // anymore. Until we stop misusing SdpVideoFormats provide this convenience // function to perform fuzzy matching. std::optional<SdpVideoFormat> FuzzyMatchSdpVideoFormat( - ArrayView<const SdpVideoFormat> supported_formats, + std::span<const SdpVideoFormat> supported_formats, const SdpVideoFormat& format); } // namespace webrtc
diff --git a/api/video_codecs/simple_encoder_wrapper.cc b/api/video_codecs/simple_encoder_wrapper.cc index 90fb4ce..cb5ddce 100644 --- a/api/video_codecs/simple_encoder_wrapper.cc +++ b/api/video_codecs/simple_encoder_wrapper.cc
@@ -15,6 +15,7 @@ #include <cstdint> #include <memory> #include <optional> +#include <span> #include <string> #include <utility> #include <variant> @@ -22,7 +23,6 @@ #include "absl/algorithm/container.h" #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/scoped_refptr.h" #include "api/units/data_size.h" #include "api/units/frequency.h" @@ -192,7 +192,7 @@ } struct FrameOut : public VideoEncoderInterface::FrameOutput { - ArrayView<uint8_t> GetBitstreamOutputBuffer(DataSize size) override { + std::span<uint8_t> GetBitstreamOutputBuffer(DataSize size) override { bitstream.resize(size.bytes()); return bitstream; }
diff --git a/api/video_codecs/video_decoder_factory_template.h b/api/video_codecs/video_decoder_factory_template.h index fba0cec..45eeb0f 100644 --- a/api/video_codecs/video_decoder_factory_template.h +++ b/api/video_codecs/video_decoder_factory_template.h
@@ -12,11 +12,11 @@ #define API_VIDEO_CODECS_VIDEO_DECODER_FACTORY_TEMPLATE_H_ #include <memory> +#include <span> #include <type_traits> #include <vector> #include "absl/algorithm/container.h" -#include "api/array_view.h" #include "api/environment/environment.h" #include "api/video_codecs/sdp_video_format.h" #include "api/video_codecs/video_decoder.h" @@ -53,7 +53,7 @@ private: bool IsFormatInList(const SdpVideoFormat& format, - ArrayView<const SdpVideoFormat> supported_formats) const { + std::span<const SdpVideoFormat> supported_formats) const { return absl::c_any_of( supported_formats, [&](const SdpVideoFormat& supported_format) { return supported_format.name == format.name &&
diff --git a/api/video_codecs/video_encoder_factory_template.h b/api/video_codecs/video_encoder_factory_template.h index f58a36e..938a73b 100644 --- a/api/video_codecs/video_encoder_factory_template.h +++ b/api/video_codecs/video_encoder_factory_template.h
@@ -13,11 +13,11 @@ #include <memory> #include <optional> +#include <span> #include <string> #include <vector> #include "absl/algorithm/container.h" -#include "api/array_view.h" #include "api/environment/environment.h" #include "api/video_codecs/scalability_mode.h" #include "api/video_codecs/sdp_video_format.h" @@ -76,7 +76,7 @@ private: bool IsFormatInList(const SdpVideoFormat& format, - ArrayView<const SdpVideoFormat> supported_formats) const { + std::span<const SdpVideoFormat> supported_formats) const { return absl::c_any_of( supported_formats, [&](const SdpVideoFormat& supported_format) { return supported_format.name == format.name &&
diff --git a/api/video_codecs/video_encoder_interface.h b/api/video_codecs/video_encoder_interface.h index 2e99d50..5a3cb77 100644 --- a/api/video_codecs/video_encoder_interface.h +++ b/api/video_codecs/video_encoder_interface.h
@@ -14,10 +14,10 @@ #include <cstdint> #include <memory> #include <optional> +#include <span> #include <variant> #include <vector> -#include "api/array_view.h" #include "api/scoped_refptr.h" #include "api/units/data_rate.h" #include "api/units/data_size.h" @@ -43,7 +43,7 @@ struct FrameOutput { virtual ~FrameOutput() = default; - virtual ArrayView<uint8_t> GetBitstreamOutputBuffer(DataSize size) = 0; + virtual std::span<uint8_t> GetBitstreamOutputBuffer(DataSize size) = 0; virtual void EncodeComplete(const EncodeResult& encode_result) = 0; };
diff --git a/api/voip/BUILD.gn b/api/voip/BUILD.gn index b0ae871..0d3e7b7 100644 --- a/api/voip/BUILD.gn +++ b/api/voip/BUILD.gn
@@ -20,7 +20,6 @@ "voip_volume_control.h", ] deps = [ - "..:array_view", "../audio_codecs:audio_codecs_api", "../neteq:neteq_api", "//third_party/abseil-cpp/absl/base:core_headers", @@ -56,7 +55,6 @@ sources = [ "test/mock_voip_engine.h" ] deps = [ ":voip_api", - "..:array_view", "../../test:test_support", "../audio_codecs:audio_codecs_api", ]
diff --git a/api/voip/test/mock_voip_engine.h b/api/voip/test/mock_voip_engine.h index 97006a5..779824e 100644 --- a/api/voip/test/mock_voip_engine.h +++ b/api/voip/test/mock_voip_engine.h
@@ -14,8 +14,8 @@ #include <cstdint> #include <map> #include <optional> +#include <span> -#include "api/array_view.h" #include "api/audio_codecs/audio_format.h" #include "api/voip/voip_base.h" #include "api/voip/voip_codec.h" @@ -69,11 +69,11 @@ public: MOCK_METHOD(VoipResult, ReceivedRTPPacket, - (ChannelId channel_id, ArrayView<const uint8_t> rtp_packet), + (ChannelId channel_id, std::span<const uint8_t> rtp_packet), (override)); MOCK_METHOD(VoipResult, ReceivedRTCPPacket, - (ChannelId channel_id, ArrayView<const uint8_t> rtcp_packet), + (ChannelId channel_id, std::span<const uint8_t> rtcp_packet), (override)); };
diff --git a/api/voip/voip_network.h b/api/voip/voip_network.h index b239c7e..7760891 100644 --- a/api/voip/voip_network.h +++ b/api/voip/voip_network.h
@@ -12,8 +12,8 @@ #define API_VOIP_VOIP_NETWORK_H_ #include <cstdint> +#include <span> -#include "api/array_view.h" #include "api/voip/voip_base.h" namespace webrtc { @@ -28,7 +28,7 @@ // kOk - received RTP packet is processed. // kInvalidArgument - `channel_id` is invalid. virtual VoipResult ReceivedRTPPacket(ChannelId channel_id, - ArrayView<const uint8_t> rtp_packet) = 0; + std::span<const uint8_t> rtp_packet) = 0; // The data received from the network including RTCP header is passed here. // Returns following VoipResult; @@ -36,7 +36,7 @@ // kInvalidArgument - `channel_id` is invalid. virtual VoipResult ReceivedRTCPPacket( ChannelId channel_id, - ArrayView<const uint8_t> rtcp_packet) = 0; + std::span<const uint8_t> rtcp_packet) = 0; protected: virtual ~VoipNetwork() = default;
diff --git a/api/webrtc_sdp_unittest.cc b/api/webrtc_sdp_unittest.cc index cc58f50..d121d8d 100644 --- a/api/webrtc_sdp_unittest.cc +++ b/api/webrtc_sdp_unittest.cc
@@ -25,7 +25,6 @@ #include "absl/strings/str_cat.h" #include "absl/strings/str_replace.h" #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/candidate.h" #include "api/jsep.h" #include "api/media_types.h"