diff --git a/modules/rtp_rtcp/source/rtp_sender.cc b/modules/rtp_rtcp/source/rtp_sender.cc index 8afc2de985..38d603092f 100644 --- a/modules/rtp_rtcp/source/rtp_sender.cc +++ b/modules/rtp_rtcp/source/rtp_sender.cc @@ -273,12 +273,12 @@ int32_t RTPSender::DeregisterRtpHeaderExtension(RTPExtensionType type) { return rtp_header_extension_map_.Deregister(type); } -int32_t RTPSender::RegisterPayload(const char* payload_name, +int32_t RTPSender::RegisterPayload(absl::string_view payload_name, int8_t payload_number, uint32_t frequency, size_t channels, uint32_t rate) { - RTC_DCHECK_LT(strlen(payload_name), RTP_PAYLOAD_NAME_SIZE); + RTC_DCHECK_LT(payload_name.size(), RTP_PAYLOAD_NAME_SIZE); rtc::CritScope lock(&send_critsect_); std::map::iterator it = diff --git a/modules/rtp_rtcp/source/rtp_sender.h b/modules/rtp_rtcp/source/rtp_sender.h index 53bc8f1c51..f9bbbdd9e2 100644 --- a/modules/rtp_rtcp/source/rtp_sender.h +++ b/modules/rtp_rtcp/source/rtp_sender.h @@ -17,6 +17,7 @@ #include #include +#include "absl/strings/string_view.h" #include "absl/types/optional.h" #include "api/array_view.h" #include "api/call/transport.h" @@ -78,7 +79,7 @@ class RTPSender { uint32_t FecOverheadRate() const; uint32_t NackOverheadRate() const; - int32_t RegisterPayload(const char* payload_name, + int32_t RegisterPayload(absl::string_view payload_name, const int8_t payload_type, const uint32_t frequency, const size_t channels, diff --git a/modules/rtp_rtcp/source/rtp_sender_audio.cc b/modules/rtp_rtcp/source/rtp_sender_audio.cc index 6cf9a17e30..636ccccf0d 100644 --- a/modules/rtp_rtcp/source/rtp_sender_audio.cc +++ b/modules/rtp_rtcp/source/rtp_sender_audio.cc @@ -32,13 +32,13 @@ RTPSenderAudio::RTPSenderAudio(Clock* clock, RTPSender* rtp_sender) RTPSenderAudio::~RTPSenderAudio() {} -int32_t RTPSenderAudio::RegisterAudioPayload(const char* payloadName, +int32_t RTPSenderAudio::RegisterAudioPayload(absl::string_view payload_name, const int8_t payload_type, const uint32_t frequency, const size_t channels, const uint32_t rate, RtpUtility::Payload** payload) { - if (absl::EqualsIgnoreCase(payloadName, "cn")) { + if (absl::EqualsIgnoreCase(payload_name, "cn")) { rtc::CritScope cs(&send_audio_critsect_); // we can have multiple CNG payload types switch (frequency) { @@ -57,7 +57,7 @@ int32_t RTPSenderAudio::RegisterAudioPayload(const char* payloadName, default: return -1; } - } else if (absl::EqualsIgnoreCase(payloadName, "telephone-event")) { + } else if (absl::EqualsIgnoreCase(payload_name, "telephone-event")) { rtc::CritScope cs(&send_audio_critsect_); // Don't add it to the list // we dont want to allow send with a DTMF payloadtype @@ -66,9 +66,9 @@ int32_t RTPSenderAudio::RegisterAudioPayload(const char* payloadName, return 0; } *payload = new RtpUtility::Payload( - payloadName, + payload_name, PayloadUnion(AudioPayload{ - SdpAudioFormat(payloadName, frequency, channels), rate})); + SdpAudioFormat(payload_name, frequency, channels), rate})); return 0; } diff --git a/modules/rtp_rtcp/source/rtp_sender_audio.h b/modules/rtp_rtcp/source/rtp_sender_audio.h index 2c4c60c0ee..1dbe5b5817 100644 --- a/modules/rtp_rtcp/source/rtp_sender_audio.h +++ b/modules/rtp_rtcp/source/rtp_sender_audio.h @@ -14,6 +14,7 @@ #include #include +#include "absl/strings/string_view.h" #include "common_types.h" // NOLINT(build/include) #include "modules/rtp_rtcp/source/dtmf_queue.h" #include "modules/rtp_rtcp/source/rtp_sender.h" @@ -31,7 +32,7 @@ class RTPSenderAudio { RTPSenderAudio(Clock* clock, RTPSender* rtp_sender); ~RTPSenderAudio(); - int32_t RegisterAudioPayload(const char* payloadName, + int32_t RegisterAudioPayload(absl::string_view payload_name, int8_t payload_type, uint32_t frequency, size_t channels, diff --git a/modules/rtp_rtcp/source/rtp_sender_video.cc b/modules/rtp_rtcp/source/rtp_sender_video.cc index 2f7b440834..cb0b665608 100644 --- a/modules/rtp_rtcp/source/rtp_sender_video.cc +++ b/modules/rtp_rtcp/source/rtp_sender_video.cc @@ -153,7 +153,7 @@ VideoCodecType RTPSenderVideo::VideoCodecType() const { // Static. RtpUtility::Payload* RTPSenderVideo::CreateVideoPayload( - const char* payload_name, + absl::string_view payload_name, int8_t payload_type) { enum VideoCodecType video_type = kVideoCodecGeneric; if (absl::EqualsIgnoreCase(payload_name, "VP8")) { diff --git a/modules/rtp_rtcp/source/rtp_sender_video.h b/modules/rtp_rtcp/source/rtp_sender_video.h index 441e7b7a4b..d3a898b40a 100644 --- a/modules/rtp_rtcp/source/rtp_sender_video.h +++ b/modules/rtp_rtcp/source/rtp_sender_video.h @@ -14,6 +14,7 @@ #include #include +#include "absl/strings/string_view.h" #include "absl/types/optional.h" #include "common_types.h" // NOLINT(build/include) #include "modules/rtp_rtcp/include/flexfec_sender.h" @@ -47,9 +48,8 @@ class RTPSenderVideo { virtual enum VideoCodecType VideoCodecType() const; - static RtpUtility::Payload* CreateVideoPayload( - const char payload_name[RTP_PAYLOAD_NAME_SIZE], - int8_t payload_type); + static RtpUtility::Payload* CreateVideoPayload(absl::string_view payload_name, + int8_t payload_type); bool SendVideo(enum VideoCodecType video_type, FrameType frame_type, diff --git a/modules/rtp_rtcp/source/rtp_utility.h b/modules/rtp_rtcp/source/rtp_utility.h index 07ef102b67..408517481b 100644 --- a/modules/rtp_rtcp/source/rtp_utility.h +++ b/modules/rtp_rtcp/source/rtp_utility.h @@ -12,8 +12,9 @@ #define MODULES_RTP_RTCP_SOURCE_RTP_UTILITY_H_ #include -#include +#include +#include "absl/strings/string_view.h" #include "api/rtp_headers.h" #include "common_types.h" // NOLINT(build/include) #include "modules/rtp_rtcp/include/rtp_header_extension_map.h" @@ -26,9 +27,10 @@ const uint8_t kRtpMarkerBitMask = 0x80; namespace RtpUtility { struct Payload { - Payload(const char* name, const PayloadUnion& pu) : typeSpecific(pu) { - std::strncpy(this->name, name, sizeof(this->name) - 1); - this->name[sizeof(this->name) - 1] = '\0'; + Payload(absl::string_view payload_name, const PayloadUnion& pu) + : typeSpecific(pu) { + size_t clipped_size = payload_name.copy(name, sizeof(name) - 1); + name[clipped_size] = '\0'; } char name[RTP_PAYLOAD_NAME_SIZE]; PayloadUnion typeSpecific;