Replace ArrayView with std::span in media/ Search&Replace MakeArrayView and ArrayView with std::span Search&Replace include "api/array_view.h" with include <span> Remove build dependencies on array_view target In rtp_utils_unittest remove unnecessary span constants touched by rename above. Bug: webrtc:439801349 Change-Id: I7cf2dd49622dd457455474aedc9bede3262d5df5 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/455281 Reviewed-by: Harald Alvestrand <hta@webrtc.org> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/main@{#47103}
diff --git a/media/BUILD.gn b/media/BUILD.gn index fbe70c9..9b026bf 100644 --- a/media/BUILD.gn +++ b/media/BUILD.gn
@@ -69,7 +69,6 @@ ":video_broadcaster", ":video_common", ":video_source_base", - "../api:array_view", "../api:audio_options_api", "../api:call_api", "../api:field_trials_view", @@ -218,7 +217,6 @@ "base/video_common.h", ] deps = [ - "../api:array_view", "../rtc_base:stringutils", "../rtc_base:timeutils", "../rtc_base/system:rtc_export", @@ -238,7 +236,6 @@ ":rtc_media_config", ":stream_params", ":video_common", - "../api:array_view", "../api:audio_options_api", "../api:field_trials_view", "../api:rtc_error", @@ -273,7 +270,6 @@ ":media_channel", ":rtp_utils", ":stream_params", - "../api:array_view", "../api:audio_options_api", "../api:call_api", "../api:frame_transformer_interface", @@ -416,7 +412,6 @@ ] deps = [ ":turn_utils", - "../api:array_view", "../modules/rtp_rtcp:rtp_rtcp_format", "../rtc_base:async_packet_socket", "../rtc_base:byte_order", @@ -434,7 +429,6 @@ ] deps = [ ":rid_description", - "../api:array_view", "../rtc_base:checks", "../rtc_base:stringutils", "../rtc_base:unique_id_generator", @@ -457,7 +451,6 @@ "base/turn_utils.h", ] deps = [ - "../api:array_view", "../api/transport:stun_types", "../rtc_base:byte_order", "../rtc_base/system:rtc_export", @@ -486,7 +479,6 @@ deps = [ ":rtc_sdp_video_format_utils", ":video_common", - "../api:array_view", "../api:fec_controller_api", "../api:field_trials_view", "../api:scoped_refptr", @@ -594,7 +586,6 @@ ":rtc_media_config", ":rtp_utils", ":stream_params", - "../api:array_view", "../api:audio_options_api", "../api:call_api", "../api:field_trials_view", @@ -731,7 +722,6 @@ deps = [ ":media_channel", ":rtc_data_sctp_transport_internal", - "../api:array_view", "../api:data_channel_interface", "../api:dtls_transport_interface", "../api:field_trials_view", @@ -822,7 +812,6 @@ ":rtp_utils", ":stream_params", ":video_common", - "../api:array_view", "../api:audio_options_api", "../api:call_api", "../api:fec_controller_api", @@ -966,7 +955,6 @@ ":stream_params", ":turn_utils", ":video_common", - "../api:array_view", "../api:audio_options_api", "../api:call_api", "../api:create_simulcast_test_fixture_api",
diff --git a/media/base/fake_network_interface.h b/media/base/fake_network_interface.h index fa758aa..4573c43 100644 --- a/media/base/fake_network_interface.h +++ b/media/base/fake_network_interface.h
@@ -15,10 +15,10 @@ #include <cstdint> #include <map> #include <set> +#include <span> #include <utility> #include <vector> -#include "api/array_view.h" #include "api/environment/environment.h" #include "api/task_queue/pending_task_safety_flag.h" #include "api/task_queue/task_queue_base.h" @@ -192,7 +192,7 @@ void SetRtpSsrc(uint32_t ssrc, CopyOnWriteBuffer& buffer) { RTC_CHECK_GE(buffer.size(), 12); SetBE32( - ArrayView<uint8_t>(buffer.MutableData(), buffer.size()).subspan(8, 4), + std::span<uint8_t>(buffer.MutableData(), buffer.size()).subspan(8, 4), ssrc); }
diff --git a/media/base/media_channel_impl.cc b/media/base/media_channel_impl.cc index d8f3b41..cb74a27 100644 --- a/media/base/media_channel_impl.cc +++ b/media/base/media_channel_impl.cc
@@ -12,11 +12,11 @@ #include <cstdint> #include <map> +#include <span> #include <string> #include <utility> #include "absl/functional/any_invocable.h" -#include "api/array_view.h" #include "api/audio_options.h" #include "api/call/transport.h" #include "api/media_stream_interface.h" @@ -190,7 +190,7 @@ } bool MediaChannelUtil::TransportForMediaChannels::SendRtcp( - ArrayView<const uint8_t> packet, + std::span<const uint8_t> packet, const PacketOptions& options) { auto send = [this, packet = CopyOnWriteBuffer(packet, kMaxRtpPacketLen), options]() mutable { @@ -206,7 +206,7 @@ } bool MediaChannelUtil::TransportForMediaChannels::SendRtp( - ArrayView<const uint8_t> packet, + std::span<const uint8_t> packet, const PacketOptions& options) { auto send = [this, packet = CopyOnWriteBuffer(packet, kMaxRtpPacketLen), options]() mutable {
diff --git a/media/base/media_channel_impl.h b/media/base/media_channel_impl.h index 958018b..9826cdf 100644 --- a/media/base/media_channel_impl.h +++ b/media/base/media_channel_impl.h
@@ -14,7 +14,8 @@ #include <stddef.h> #include <stdint.h> -#include "api/array_view.h" +#include <span> + #include "api/call/transport.h" #include "api/scoped_refptr.h" #include "api/sequence_checker.h" @@ -89,9 +90,9 @@ ~TransportForMediaChannels() override; // Implementation of Transport - bool SendRtp(ArrayView<const uint8_t> packet, + bool SendRtp(std::span<const uint8_t> packet, const PacketOptions& options) override; - bool SendRtcp(ArrayView<const uint8_t> packet, + bool SendRtcp(std::span<const uint8_t> packet, const PacketOptions& options) override; // Not implementation of Transport
diff --git a/media/base/media_engine.cc b/media/base/media_engine.cc index ba0a91e..52da64d 100644 --- a/media/base/media_engine.cc +++ b/media/base/media_engine.cc
@@ -14,12 +14,12 @@ #include <cstdint> #include <memory> #include <optional> +#include <span> #include <string> #include <utility> #include <vector> #include "absl/algorithm/container.h" -#include "api/array_view.h" #include "api/field_trials_view.h" #include "api/rtc_error.h" #include "api/rtp_headers.h" @@ -90,7 +90,7 @@ } RTCError CheckScalabilityModeValues(const RtpParameters& rtp_parameters, - ArrayView<const Codec> send_codecs, + std::span<const Codec> send_codecs, std::optional<Codec> send_codec) { if (send_codecs.empty()) { // This is an audio sender or an extra check in the stack where the codec @@ -161,7 +161,7 @@ } RTCError CheckRtpParametersValues(const RtpParameters& rtp_parameters, - ArrayView<const Codec> send_codecs, + std::span<const Codec> send_codecs, std::optional<Codec> send_codec, const FieldTrialsView& field_trials) { bool has_scale_resolution_down_to = false; @@ -280,7 +280,7 @@ RTCError CheckRtpParametersInvalidModificationAndValues( const RtpParameters& old_rtp_parameters, const RtpParameters& rtp_parameters, - ArrayView<const Codec> send_codecs, + std::span<const Codec> send_codecs, std::optional<Codec> send_codec, const FieldTrialsView& field_trials) { if (rtp_parameters.encodings.size() != old_rtp_parameters.encodings.size()) {
diff --git a/media/base/media_engine.h b/media/base/media_engine.h index fd1de06..0ac3277 100644 --- a/media/base/media_engine.h +++ b/media/base/media_engine.h
@@ -14,9 +14,9 @@ #include <cstdint> #include <memory> #include <optional> +#include <span> #include <vector> -#include "api/array_view.h" #include "api/audio/audio_device.h" #include "api/audio_codecs/audio_decoder_factory.h" #include "api/audio_codecs/audio_encoder_factory.h" @@ -43,13 +43,13 @@ // Checks that the scalability_mode value of each encoding is supported by at // least one video codec of the list. If the list is empty, no check is done. RTCError CheckScalabilityModeValues(const RtpParameters& new_parameters, - ArrayView<const Codec> send_codecs, + std::span<const Codec> send_codecs, std::optional<Codec> send_codec); // Checks the parameters have valid and supported values, and checks parameters // with CheckScalabilityModeValues(). RTCError CheckRtpParametersValues(const RtpParameters& new_parameters, - ArrayView<const Codec> send_codecs, + std::span<const Codec> send_codecs, std::optional<Codec> send_codec, const FieldTrialsView& field_trials); @@ -58,7 +58,7 @@ RTCError CheckRtpParametersInvalidModificationAndValues( const RtpParameters& old_parameters, const RtpParameters& new_parameters, - ArrayView<const Codec> send_codecs, + std::span<const Codec> send_codecs, std::optional<Codec> send_codec, const FieldTrialsView& field_trials);
diff --git a/media/base/rtp_utils.cc b/media/base/rtp_utils.cc index a6448d7..3a2002e 100644 --- a/media/base/rtp_utils.cc +++ b/media/base/rtp_utils.cc
@@ -12,12 +12,13 @@ #include <cstdint> #include <cstring> +#include <span> #include <vector> // PacketTimeUpdateParams is defined in asyncpacketsocket.h. // TODO(sergeyu): Find more appropriate place for PacketTimeUpdateParams. + #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "media/base/turn_utils.h" #include "modules/rtp_rtcp/source/rtp_util.h" #include "rtc_base/async_packet_socket.h" @@ -73,7 +74,7 @@ // Assumes `length` is actual packet length + tag length. Updates HMAC at end of // the RTP packet. -void UpdateRtpAuthTag(ArrayView<uint8_t> rtp, +void UpdateRtpAuthTag(std::span<uint8_t> rtp, const PacketTimeUpdateParams& packet_time_params) { // If there is no key, return. if (packet_time_params.srtp_auth_key.empty()) { @@ -148,7 +149,7 @@ if (pl_type == kRtcpTypeSDES) return false; *value = GetBE32( - ArrayView<const uint8_t>(static_cast<const uint8_t*>(data) + 4, 4)); + std::span<const uint8_t>(static_cast<const uint8_t*>(data) + 4, 4)); return true; } @@ -176,7 +177,7 @@ RTC_CHECK_NOTREACHED(); } -RtpPacketType InferRtpPacketType(ArrayView<const uint8_t> packet) { +RtpPacketType InferRtpPacketType(std::span<const uint8_t> packet) { if (IsRtcpPacket(packet)) { return RtpPacketType::kRtcp; } @@ -186,7 +187,7 @@ return RtpPacketType::kUnknown; } -bool ValidateRtpHeader(ArrayView<const uint8_t> rtp, size_t* header_length) { +bool ValidateRtpHeader(std::span<const uint8_t> rtp, size_t* header_length) { size_t length = rtp.size(); if (header_length) { *header_length = 0; @@ -238,7 +239,7 @@ // ValidateRtpHeader() must be called before this method to make sure, we have // a sane rtp packet. -bool UpdateRtpAbsSendTimeExtension(ArrayView<uint8_t> packet, +bool UpdateRtpAbsSendTimeExtension(std::span<uint8_t> packet, int extension_id, uint64_t time_us) { // 0 1 2 3 @@ -265,7 +266,7 @@ uint8_t* rtp = packet.data(); rtp += header_length_without_extension; - ArrayView<const uint8_t> extension_header = + std::span<const uint8_t> extension_header = packet.subspan(header_length_without_extension, kRtpExtensionHeaderLen); // Getting extension profile ID and length. @@ -356,7 +357,7 @@ return found; } -bool ApplyPacketOptions(ArrayView<uint8_t> data, +bool ApplyPacketOptions(std::span<uint8_t> data, const PacketTimeUpdateParams& packet_time_params, uint64_t time_us) { RTC_DCHECK(!data.empty());
diff --git a/media/base/rtp_utils.h b/media/base/rtp_utils.h index b9fae21..a8f1a12 100644 --- a/media/base/rtp_utils.h +++ b/media/base/rtp_utils.h
@@ -13,9 +13,9 @@ #include <cstddef> #include <cstdint> +#include <span> #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "rtc_base/async_packet_socket.h" #include "rtc_base/system/rtc_export.h" @@ -45,7 +45,7 @@ bool GetRtcpSsrc(const void* data, size_t len, uint32_t* value); // Checks the packet header to determine if it can be an RTP or RTCP packet. -RtpPacketType InferRtpPacketType(ArrayView<const uint8_t> packet); +RtpPacketType InferRtpPacketType(std::span<const uint8_t> packet); // True if |payload type| is 0-127. bool IsValidRtpPayloadType(int payload_type); @@ -56,18 +56,18 @@ absl::string_view RtpPacketTypeToString(RtpPacketType packet_type); // Verifies that a packet has a valid RTP header. -bool RTC_EXPORT ValidateRtpHeader(ArrayView<const uint8_t> rtp, +bool RTC_EXPORT ValidateRtpHeader(std::span<const uint8_t> rtp, size_t* header_length); // Helper method which updates the absolute send time extension if present. -bool UpdateRtpAbsSendTimeExtension(ArrayView<uint8_t> rtp, +bool UpdateRtpAbsSendTimeExtension(std::span<uint8_t> rtp, int extension_id, uint64_t time_us); // Applies specified `options` to the packet. It updates the absolute send time // extension header if it is present present then updates HMAC. bool RTC_EXPORT -ApplyPacketOptions(ArrayView<uint8_t> data, +ApplyPacketOptions(std::span<uint8_t> data, const PacketTimeUpdateParams& packet_time_params, uint64_t time_us);
diff --git a/media/base/rtp_utils_unittest.cc b/media/base/rtp_utils_unittest.cc index af3263e..269e4d6 100644 --- a/media/base/rtp_utils_unittest.cc +++ b/media/base/rtp_utils_unittest.cc
@@ -14,7 +14,6 @@ #include <cstring> #include <vector> -#include "api/array_view.h" #include "media/base/fake_rtp.h" #include "rtc_base/async_packet_socket.h" #include "test/gtest.h" @@ -72,13 +71,6 @@ // and in message `kRtpMsgWithTwoByteAbsSendTimeExtension`. static const int kAstIndexInTwoByteRtpMsg = 21; -static const ArrayView<const uint8_t> kPcmuFrameArrayView = - MakeArrayView(kPcmuFrame, sizeof(kPcmuFrame)); -static const ArrayView<const uint8_t> kRtcpReportArrayView = - MakeArrayView(kRtcpReport, sizeof(kRtcpReport)); -static const ArrayView<const uint8_t> kInvalidPacketArrayView = - MakeArrayView(kInvalidPacket, sizeof(kInvalidPacket)); - TEST(RtpUtilsTest, GetRtcp) { int pt; EXPECT_TRUE(GetRtcpType(kRtcpReport, sizeof(kRtcpReport), &pt)); @@ -280,10 +272,9 @@ } TEST(RtpUtilsTest, InferRtpPacketType) { - EXPECT_EQ(RtpPacketType::kRtp, InferRtpPacketType(kPcmuFrameArrayView)); - EXPECT_EQ(RtpPacketType::kRtcp, InferRtpPacketType(kRtcpReportArrayView)); - EXPECT_EQ(RtpPacketType::kUnknown, - InferRtpPacketType(kInvalidPacketArrayView)); + EXPECT_EQ(RtpPacketType::kRtp, InferRtpPacketType(kPcmuFrame)); + EXPECT_EQ(RtpPacketType::kRtcp, InferRtpPacketType(kRtcpReport)); + EXPECT_EQ(RtpPacketType::kUnknown, InferRtpPacketType(kInvalidPacket)); } } // namespace webrtc
diff --git a/media/base/stream_params.cc b/media/base/stream_params.cc index 4cae898..d330d9c 100644 --- a/media/base/stream_params.cc +++ b/media/base/stream_params.cc
@@ -11,12 +11,12 @@ #include "media/base/stream_params.h" #include <cstdint> +#include <span> #include <string> #include <vector> #include "absl/algorithm/container.h" #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "media/base/rid_description.h" #include "rtc_base/checks.h" #include "rtc_base/strings/string_builder.h" @@ -25,7 +25,7 @@ namespace webrtc { namespace { -void AppendSsrcs(ArrayView<const uint32_t> ssrcs, SimpleStringBuilder* sb) { +void AppendSsrcs(std::span<const uint32_t> ssrcs, SimpleStringBuilder* sb) { *sb << "ssrcs:["; const char* delimiter = ""; for (uint32_t ssrc : ssrcs) { @@ -35,7 +35,7 @@ *sb << "]"; } -void AppendSsrcGroups(ArrayView<const SsrcGroup> ssrc_groups, +void AppendSsrcGroups(std::span<const SsrcGroup> ssrc_groups, SimpleStringBuilder* sb) { *sb << "ssrc_groups:"; const char* delimiter = ""; @@ -45,7 +45,7 @@ } } -void AppendStreamIds(ArrayView<const std::string> stream_ids, +void AppendStreamIds(std::span<const std::string> stream_ids, SimpleStringBuilder* sb) { *sb << "stream_ids:"; const char* delimiter = ""; @@ -55,7 +55,7 @@ } } -void AppendRids(ArrayView<const RidDescription> rids, SimpleStringBuilder* sb) { +void AppendRids(std::span<const RidDescription> rids, SimpleStringBuilder* sb) { *sb << "rids:["; const char* delimiter = ""; for (const RidDescription& rid : rids) {
diff --git a/media/base/stream_params_unittest.cc b/media/base/stream_params_unittest.cc index 49a8926..332022a 100644 --- a/media/base/stream_params_unittest.cc +++ b/media/base/stream_params_unittest.cc
@@ -12,10 +12,10 @@ #include <cstddef> #include <cstdint> +#include <span> #include <string> #include <vector> -#include "api/array_view.h" #include "media/base/test_utils.h" #include "rtc_base/unique_id_generator.h" #include "test/gmock.h" @@ -29,7 +29,7 @@ static webrtc::StreamParams CreateStreamParamsWithSsrcGroup( const std::string& semantics, - webrtc::ArrayView<const uint32_t> ssrcs_in) { + std::span<const uint32_t> ssrcs_in) { webrtc::StreamParams stream; std::vector<uint32_t> ssrcs(ssrcs_in.begin(), ssrcs_in.end()); webrtc::SsrcGroup sg(semantics, ssrcs);
diff --git a/media/base/turn_utils.cc b/media/base/turn_utils.cc index 77f0f18..b3e14bd 100644 --- a/media/base/turn_utils.cc +++ b/media/base/turn_utils.cc
@@ -12,8 +12,8 @@ #include <cstddef> #include <cstdint> +#include <span> -#include "api/array_view.h" #include "api/transport/stun.h" #include "rtc_base/byte_order.h" @@ -32,7 +32,7 @@ return false; } - uint16_t type = GetBE16(ArrayView<const uint8_t>(data, 2)); + uint16_t type = GetBE16(std::span<const uint8_t>(data, 2)); return (type == TURN_SEND_INDICATION); } @@ -42,7 +42,7 @@ size_t packet_size, size_t* content_position, size_t* content_size) { - ArrayView<const uint8_t> data_view(packet, packet_size); + std::span<const uint8_t> data_view(packet, packet_size); if (IsTurnChannelData(packet, packet_size)) { // Turn Channel Message header format. // 0 1 2 3
diff --git a/media/base/video_common.cc b/media/base/video_common.cc index 053a250..38b5562 100644 --- a/media/base/video_common.cc +++ b/media/base/video_common.cc
@@ -13,7 +13,6 @@ #include <cstdint> #include <string> -#include "api/array_view.h" #include "rtc_base/strings/string_builder.h" namespace webrtc {
diff --git a/media/engine/fake_webrtc_call.cc b/media/engine/fake_webrtc_call.cc index 20ed986..a9c1a2c 100644 --- a/media/engine/fake_webrtc_call.cc +++ b/media/engine/fake_webrtc_call.cc
@@ -13,6 +13,7 @@ #include <cstdint> #include <map> #include <memory> +#include <span> #include <string> #include <utility> #include <vector> @@ -20,7 +21,6 @@ #include "absl/algorithm/container.h" #include "absl/strings/string_view.h" #include "api/adaptation/resource.h" -#include "api/array_view.h" #include "api/audio_codecs/audio_format.h" #include "api/call/audio_sink.h" #include "api/crypto/frame_decryptor_interface.h" @@ -124,11 +124,11 @@ } bool FakeAudioReceiveStream::VerifyLastPacket( - ArrayView<const uint8_t> data) const { + std::span<const uint8_t> data) const { return last_packet_ == Buffer(data.data(), data.size()); } -bool FakeAudioReceiveStream::DeliverRtp(ArrayView<const uint8_t> packet, +bool FakeAudioReceiveStream::DeliverRtp(std::span<const uint8_t> packet, int64_t /* packet_time_us */) { ++received_packets_; last_packet_.SetData(packet); @@ -295,7 +295,7 @@ return stats_; } -void FakeVideoSendStream::SetCsrcs(ArrayView<const uint32_t> csrcs) {} +void FakeVideoSendStream::SetCsrcs(std::span<const uint32_t> csrcs) {} void FakeVideoSendStream::ReconfigureVideoEncoder(VideoEncoderConfig config) { ReconfigureVideoEncoder(std::move(config), nullptr);
diff --git a/media/engine/fake_webrtc_call.h b/media/engine/fake_webrtc_call.h index e4dff9a..8bd0f0a 100644 --- a/media/engine/fake_webrtc_call.h +++ b/media/engine/fake_webrtc_call.h
@@ -25,13 +25,13 @@ #include <map> #include <memory> #include <optional> +#include <span> #include <string> #include <utility> #include <vector> #include "absl/strings/string_view.h" #include "api/adaptation/resource.h" -#include "api/array_view.h" #include "api/audio/audio_frame.h" #include "api/audio/audio_mixer.h" #include "api/audio_codecs/audio_format.h" @@ -125,10 +125,10 @@ const AudioReceiveStreamInterface::Config& GetConfig() const; void SetStats(const AudioReceiveStreamInterface::Stats& stats); int received_packets() const { return received_packets_; } - bool VerifyLastPacket(ArrayView<const uint8_t> data) const; + bool VerifyLastPacket(std::span<const uint8_t> data) const; const AudioSinkInterface* sink() const { return sink_; } float gain() const { return gain_; } - bool DeliverRtp(ArrayView<const uint8_t> packet, int64_t packet_time_us); + bool DeliverRtp(std::span<const uint8_t> packet, int64_t packet_time_us); bool started() const { return started_; } int base_mininum_playout_delay_ms() const { return base_mininum_playout_delay_ms_; @@ -206,7 +206,7 @@ int GetLastHeight() const; int64_t GetLastTimestamp() const; void SetStats(const VideoSendStream::Stats& stats) override; - void SetCsrcs(ArrayView<const uint32_t> csrcs) override; + void SetCsrcs(std::span<const uint32_t> csrcs) override; int num_encoder_reconfigurations() const { return num_encoder_reconfigurations_; }
diff --git a/media/engine/simulcast_encoder_adapter.cc b/media/engine/simulcast_encoder_adapter.cc index 3e10c92..c25d0a5 100644 --- a/media/engine/simulcast_encoder_adapter.cc +++ b/media/engine/simulcast_encoder_adapter.cc
@@ -19,6 +19,7 @@ #include <memory> #include <numeric> #include <optional> +#include <span> #include <string> #include <tuple> #include <utility> @@ -26,7 +27,6 @@ #include "absl/algorithm/container.h" #include "absl/base/nullability.h" -#include "api/array_view.h" #include "api/environment/environment.h" #include "api/fec_controller_override.h" #include "api/field_trials_view.h" @@ -131,7 +131,7 @@ } void GetLowestAndHighestQualityStreamIndixes( - ArrayView<const SimulcastStream> streams, + std::span<const SimulcastStream> streams, int* lowest_quality_stream_idx, int* highest_quality_stream_idx) { const auto lowest_highest_quality_streams = @@ -385,7 +385,7 @@ int highest_quality_stream_idx = 0; if (!is_legacy_singlecast) { GetLowestAndHighestQualityStreamIndixes( - ArrayView<SimulcastStream>(codec_.simulcastStream, + std::span<SimulcastStream>(codec_.simulcastStream, total_streams_count_), &lowest_quality_stream_idx, &highest_quality_stream_idx); }
diff --git a/media/engine/webrtc_media_engine.cc b/media/engine/webrtc_media_engine.cc index 96bacd8..4f586d5 100644 --- a/media/engine/webrtc_media_engine.cc +++ b/media/engine/webrtc_media_engine.cc
@@ -11,12 +11,12 @@ #include "media/engine/webrtc_media_engine.h" #include <algorithm> +#include <span> #include <string> #include <vector> #include "absl/algorithm/container.h" #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/field_trials_view.h" #include "api/rtp_parameters.h" #include "api/transport/bitrate_settings.h" @@ -30,7 +30,7 @@ // Remove mutually exclusive extensions with lower priority. void DiscardRedundantExtensions( std::vector<RtpExtension>* extensions, - ArrayView<const char* const> extensions_decreasing_prio) { + std::span<const char* const> extensions_decreasing_prio) { RTC_DCHECK(extensions); bool found = false; for (const char* uri : extensions_decreasing_prio) {
diff --git a/media/engine/webrtc_video_engine.cc b/media/engine/webrtc_video_engine.cc index fc04a6c..bb77667 100644 --- a/media/engine/webrtc_video_engine.cc +++ b/media/engine/webrtc_video_engine.cc
@@ -19,6 +19,7 @@ #include <memory> #include <optional> #include <set> +#include <span> #include <string> #include <unordered_set> #include <utility> @@ -29,7 +30,6 @@ #include "absl/functional/bind_front.h" #include "absl/strings/match.h" #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/crypto/crypto_options.h" #include "api/crypto/frame_decryptor_interface.h" #include "api/environment/environment.h" @@ -734,7 +734,7 @@ } void ExtractCodecInformation( - ArrayView<const VideoCodecSettings> recv_codecs, + std::span<const VideoCodecSettings> recv_codecs, std::map<int, int>& rtx_associated_payload_types, std::set<int>& raw_payload_types, std::vector<VideoReceiveStreamInterface::Decoder>& decoders) {
diff --git a/media/engine/webrtc_voice_engine_unittest.cc b/media/engine/webrtc_voice_engine_unittest.cc index 0d66c96..8195403 100644 --- a/media/engine/webrtc_voice_engine_unittest.cc +++ b/media/engine/webrtc_voice_engine_unittest.cc
@@ -17,13 +17,13 @@ #include <memory> #include <optional> #include <set> +#include <span> #include <string> #include <utility> #include <vector> #include "absl/strings/match.h" #include "absl/strings/string_view.h" -#include "api/array_view.h" #include "api/audio/audio_processing.h" #include "api/audio/builtin_audio_processing_builder.h" #include "api/audio_codecs/audio_format.h" @@ -336,7 +336,7 @@ EXPECT_FALSE(call_.GetAudioSendStream(kSsrcX)); } - void DeliverPacket(ArrayView<const uint8_t> data) { + void DeliverPacket(std::span<const uint8_t> data) { RtpPacketReceived packet; packet.Parse(data); receive_channel_->OnPacketReceived(packet); @@ -2779,7 +2779,7 @@ uint8_t packets[4][sizeof(kPcmuFrame)]; for (size_t i = 0; i < std::size(packets); ++i) { memcpy(packets[i], kPcmuFrame, sizeof(kPcmuFrame)); - SetBE32(ArrayView<uint8_t>(packets[i] + 8, 4), static_cast<uint32_t>(i)); + SetBE32(std::span<uint8_t>(packets[i] + 8, 4), static_cast<uint32_t>(i)); } const FakeAudioReceiveStream& s1 = GetRecvStream(ssrc1); @@ -2868,9 +2868,9 @@ // Deliver a couple packets with unsignaled SSRCs. uint8_t packet[sizeof(kPcmuFrame)]; memcpy(packet, kPcmuFrame, sizeof(kPcmuFrame)); - SetBE32(ArrayView<uint8_t>(&packet[8], 4), 0x1234); + SetBE32(std::span<uint8_t>(&packet[8], 4), 0x1234); DeliverPacket(packet); - SetBE32(ArrayView<uint8_t>(&packet[8], 4), 0x5678); + SetBE32(std::span<uint8_t>(&packet[8], 4), 0x5678); DeliverPacket(packet); // Verify that the receive streams were created. @@ -2892,7 +2892,7 @@ // Note that SSRC = 0 is not supported. for (uint32_t ssrc = 1; ssrc < (1 + kMaxUnsignaledRecvStreams); ++ssrc) { - SetBE32(ArrayView<uint8_t>(&packet[8], 4), ssrc); + SetBE32(std::span<uint8_t>(&packet[8], 4), ssrc); DeliverPacket(packet); // Verify we have one new stream for each loop iteration. @@ -2903,7 +2903,7 @@ // Sending on the same SSRCs again should not create new streams. for (uint32_t ssrc = 1; ssrc < (1 + kMaxUnsignaledRecvStreams); ++ssrc) { - SetBE32(ArrayView<uint8_t>(&packet[8], 4), ssrc); + SetBE32(std::span<uint8_t>(&packet[8], 4), ssrc); DeliverPacket(packet); EXPECT_EQ(kMaxUnsignaledRecvStreams, call_.GetAudioReceiveStreams().size()); @@ -2913,7 +2913,7 @@ // Send on another SSRC, the oldest unsignaled stream (SSRC=1) is replaced. constexpr uint32_t kAnotherSsrc = 667; - SetBE32(ArrayView<uint8_t>(&packet[8], 4), kAnotherSsrc); + SetBE32(std::span<uint8_t>(&packet[8], 4), kAnotherSsrc); DeliverPacket(packet); const auto& streams = call_.GetAudioReceiveStreams(); @@ -2938,7 +2938,7 @@ // Add a known stream, send packet and verify we got it. const uint32_t signaled_ssrc = 1; - SetBE32(ArrayView<uint8_t>(&packet[8], 4), signaled_ssrc); + SetBE32(std::span<uint8_t>(&packet[8], 4), signaled_ssrc); EXPECT_TRUE(AddRecvStream(signaled_ssrc)); DeliverPacket(packet); EXPECT_TRUE(GetRecvStream(signaled_ssrc).VerifyLastPacket(packet)); @@ -2947,7 +2947,7 @@ // Note that the first unknown SSRC cannot be 0, because we only support // creating receive streams for SSRC!=0. const uint32_t unsignaled_ssrc = 7011; - SetBE32(ArrayView<uint8_t>(&packet[8], 4), unsignaled_ssrc); + SetBE32(std::span<uint8_t>(&packet[8], 4), unsignaled_ssrc); DeliverPacket(packet); EXPECT_TRUE(GetRecvStream(unsignaled_ssrc).VerifyLastPacket(packet)); EXPECT_EQ(2u, call_.GetAudioReceiveStreams().size()); @@ -2955,7 +2955,7 @@ DeliverPacket(packet); EXPECT_EQ(2, GetRecvStream(unsignaled_ssrc).received_packets()); - SetBE32(ArrayView<uint8_t>(&packet[8], 4), signaled_ssrc); + SetBE32(std::span<uint8_t>(&packet[8], 4), signaled_ssrc); DeliverPacket(packet); EXPECT_EQ(2, GetRecvStream(signaled_ssrc).received_packets()); EXPECT_EQ(2u, call_.GetAudioReceiveStreams().size()); @@ -3420,7 +3420,7 @@ // Spawn an unsignaled stream by sending a packet - gain should be 2. uint8_t pcmuFrame2[sizeof(kPcmuFrame)]; memcpy(pcmuFrame2, kPcmuFrame, sizeof(kPcmuFrame)); - SetBE32(ArrayView<uint8_t>(&pcmuFrame2[8], 4), kSsrcX); + SetBE32(std::span<uint8_t>(&pcmuFrame2[8], 4), kSsrcX); DeliverPacket(pcmuFrame2); EXPECT_DOUBLE_EQ(2, GetRecvStream(kSsrcX).gain()); @@ -3482,7 +3482,7 @@ // Spawn an unsignaled stream by sending a packet - delay should be 100. uint8_t pcmuFrame2[sizeof(kPcmuFrame)]; memcpy(pcmuFrame2, kPcmuFrame, sizeof(kPcmuFrame)); - SetBE32(ArrayView<uint8_t>(&pcmuFrame2[8], 4), kSsrcX); + SetBE32(std::span<uint8_t>(&pcmuFrame2[8], 4), kSsrcX); DeliverPacket(pcmuFrame2); EXPECT_EQ( 100, receive_channel_->GetBaseMinimumPlayoutDelayMs(kSsrcX).value_or(-1)); @@ -3659,7 +3659,7 @@ // and the previous unsignaled stream should lose it. uint8_t pcmuFrame2[sizeof(kPcmuFrame)]; memcpy(pcmuFrame2, kPcmuFrame, sizeof(kPcmuFrame)); - SetBE32(ArrayView<uint8_t>(&pcmuFrame2[8], 4), kSsrcX); + SetBE32(std::span<uint8_t>(&pcmuFrame2[8], 4), kSsrcX); DeliverPacket(pcmuFrame2); if (kMaxUnsignaledRecvStreams > 1) { EXPECT_EQ(nullptr, GetRecvStream(kSsrc1).sink());
diff --git a/media/sctp/dcsctp_transport.cc b/media/sctp/dcsctp_transport.cc index 63f3d52..03ffc69 100644 --- a/media/sctp/dcsctp_transport.cc +++ b/media/sctp/dcsctp_transport.cc
@@ -17,12 +17,12 @@ #include <limits> #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/data_channel_interface.h" #include "api/dtls_transport_interface.h" #include "api/environment/environment.h" @@ -440,7 +440,7 @@ } SendPacketStatus DcSctpTransport::SendPacketWithStatus( - ArrayView<const uint8_t> data) { + std::span<const uint8_t> data) { RTC_DCHECK_RUN_ON(network_thread_); RTC_DCHECK(socket_); @@ -591,7 +591,7 @@ } void DcSctpTransport::OnStreamsResetFailed( - ArrayView<const dcsctp::StreamID> outgoing_streams, + std::span<const dcsctp::StreamID> outgoing_streams, absl::string_view reason) { // TODO(orphis): Need a test to check for correct behavior for (auto& stream_id : outgoing_streams) { @@ -603,7 +603,7 @@ } void DcSctpTransport::OnStreamsResetPerformed( - ArrayView<const dcsctp::StreamID> outgoing_streams) { + std::span<const dcsctp::StreamID> outgoing_streams) { RTC_DCHECK_RUN_ON(network_thread_); for (auto& stream_id : outgoing_streams) { RTC_LOG(LS_INFO) << debug_name_ @@ -631,7 +631,7 @@ } void DcSctpTransport::OnIncomingStreamsReset( - ArrayView<const dcsctp::StreamID> incoming_streams) { + std::span<const dcsctp::StreamID> incoming_streams) { RTC_DCHECK_RUN_ON(network_thread_); for (auto& stream_id : incoming_streams) { RTC_LOG(LS_INFO) << debug_name_
diff --git a/media/sctp/dcsctp_transport.h b/media/sctp/dcsctp_transport.h index 143d4b3..bf945c9 100644 --- a/media/sctp/dcsctp_transport.h +++ b/media/sctp/dcsctp_transport.h
@@ -16,11 +16,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 "api/dtls_transport_interface.h" #include "api/environment/environment.h" #include "api/field_trials_view.h" @@ -83,7 +83,7 @@ private: // dcsctp::DcSctpSocketCallbacks dcsctp::SendPacketStatus SendPacketWithStatus( - ArrayView<const uint8_t> data) override; + std::span<const uint8_t> data) override; std::unique_ptr<dcsctp::Timeout> CreateTimeout( TaskQueueBase::DelayPrecision precision) override; dcsctp::TimeMs TimeMillis() override; @@ -96,12 +96,12 @@ void OnConnected() override; void OnClosed() override; void OnConnectionRestarted() override; - void OnStreamsResetFailed(ArrayView<const dcsctp::StreamID> outgoing_streams, + void OnStreamsResetFailed(std::span<const dcsctp::StreamID> outgoing_streams, absl::string_view reason) override; void OnStreamsResetPerformed( - ArrayView<const dcsctp::StreamID> outgoing_streams) override; + std::span<const dcsctp::StreamID> outgoing_streams) override; void OnIncomingStreamsReset( - ArrayView<const dcsctp::StreamID> incoming_streams) override; + std::span<const dcsctp::StreamID> incoming_streams) override; // Transport callbacks void ConnectTransportSignals();