Refactor RtpSender to use absl::string_view for payload name.
Followup to https://webrtc-review.googlesource.com/c/src/+/109006 Bug: webrtc:6424 Change-Id: I1309a7365cf4132ba5d7b80a3847fcafc4fb8d27 Reviewed-on: https://webrtc-review.googlesource.com/c/109120 Commit-Queue: Niels Moller <nisse@webrtc.org> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25499}
This commit is contained in:
@ -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<int8_t, RtpUtility::Payload*>::iterator it =
|
||||
|
||||
@ -17,6 +17,7 @@
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
#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,
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -14,6 +14,7 @@
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#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,
|
||||
|
||||
@ -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")) {
|
||||
|
||||
@ -14,6 +14,7 @@
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#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,
|
||||
|
||||
@ -12,8 +12,9 @@
|
||||
#define MODULES_RTP_RTCP_SOURCE_RTP_UTILITY_H_
|
||||
|
||||
#include <stdint.h>
|
||||
#include <cstring>
|
||||
#include <algorithm>
|
||||
|
||||
#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;
|
||||
|
||||
Reference in New Issue
Block a user