Add RegisterAudioSendPayload() method
In preparation of removing CodecInst.
Bug: webrtc:7626
Change-Id: I8955d17dbb3ec15177e505ae420376b542d48410
Reviewed-on: https://webrtc-review.googlesource.com/c/113306
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25919}
diff --git a/modules/rtp_rtcp/BUILD.gn b/modules/rtp_rtcp/BUILD.gn
index edb981b..807203c 100644
--- a/modules/rtp_rtcp/BUILD.gn
+++ b/modules/rtp_rtcp/BUILD.gn
@@ -221,7 +221,6 @@
"../../system_wrappers",
"../../system_wrappers:field_trial",
"../../system_wrappers:metrics",
- "../audio_coding:audio_format_conversion",
"../remote_bitrate_estimator",
"../video_coding:codec_globals_headers",
"//third_party/abseil-cpp/absl/container:inlined_vector",
@@ -444,7 +443,6 @@
"../../test:rtp_test_utils",
"../../test:test_common",
"../../test:test_support",
- "../audio_coding:audio_format_conversion",
"../video_coding:codec_globals_headers",
"//third_party/abseil-cpp/absl/memory",
"//third_party/abseil-cpp/absl/types:optional",
diff --git a/modules/rtp_rtcp/include/rtp_rtcp.h b/modules/rtp_rtcp/include/rtp_rtcp.h
index d136a5e..f3656e6 100644
--- a/modules/rtp_rtcp/include/rtp_rtcp.h
+++ b/modules/rtp_rtcp/include/rtp_rtcp.h
@@ -16,6 +16,7 @@
#include <utility>
#include <vector>
+#include "absl/strings/string_view.h"
#include "absl/types/optional.h"
#include "api/video/video_bitrate_allocation.h"
#include "modules/include/module.h"
@@ -138,6 +139,11 @@
// Sets codec name and payload type. Returns -1 on failure else 0.
virtual int32_t RegisterSendPayload(const CodecInst& voice_codec) = 0;
+ virtual void RegisterAudioSendPayload(int payload_type,
+ absl::string_view payload_name,
+ int frequency,
+ int channels,
+ int rate) = 0;
virtual void RegisterVideoSendPayload(int payload_type,
const char* payload_name) = 0;
diff --git a/modules/rtp_rtcp/mocks/mock_rtp_rtcp.h b/modules/rtp_rtcp/mocks/mock_rtp_rtcp.h
index 3b9b943..b18bb1d 100644
--- a/modules/rtp_rtcp/mocks/mock_rtp_rtcp.h
+++ b/modules/rtp_rtcp/mocks/mock_rtp_rtcp.h
@@ -38,6 +38,12 @@
MOCK_METHOD1(SetMaxRtpPacketSize, void(size_t size));
MOCK_CONST_METHOD0(MaxRtpPacketSize, size_t());
MOCK_METHOD1(RegisterSendPayload, int32_t(const CodecInst& voice_codec));
+ MOCK_METHOD5(RegisterAudioSendPayload,
+ void(int payload_type,
+ absl::string_view payload_name,
+ int frequency,
+ int channels,
+ int rate));
MOCK_METHOD2(RegisterVideoSendPayload,
void(int payload_type, const char* payload_name));
MOCK_METHOD1(DeRegisterSendPayload, int32_t(int8_t payload_type));
diff --git a/modules/rtp_rtcp/source/rtp_rtcp_impl.cc b/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
index 0d0ca96..fc1c91b 100644
--- a/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
+++ b/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
@@ -271,6 +271,17 @@
voice_codec.channels, (voice_codec.rate < 0) ? 0 : voice_codec.rate);
}
+void ModuleRtpRtcpImpl::RegisterAudioSendPayload(int payload_type,
+ absl::string_view payload_name,
+ int frequency,
+ int channels,
+ int rate) {
+ rtcp_sender_.SetRtpClockRate(payload_type, frequency);
+ RTC_CHECK_EQ(0,
+ rtp_sender_->RegisterPayload(payload_name, payload_type,
+ frequency, channels, rate));
+}
+
void ModuleRtpRtcpImpl::RegisterVideoSendPayload(int payload_type,
const char* payload_name) {
rtcp_sender_.SetRtpClockRate(payload_type, kVideoPayloadTypeFrequency);
diff --git a/modules/rtp_rtcp/source/rtp_rtcp_impl.h b/modules/rtp_rtcp/source/rtp_rtcp_impl.h
index 8e9751d..e044823 100644
--- a/modules/rtp_rtcp/source/rtp_rtcp_impl.h
+++ b/modules/rtp_rtcp/source/rtp_rtcp_impl.h
@@ -64,7 +64,11 @@
// Sender part.
int32_t RegisterSendPayload(const CodecInst& voice_codec) override;
-
+ void RegisterAudioSendPayload(int payload_type,
+ absl::string_view payload_name,
+ int frequency,
+ int channels,
+ int rate) override;
void RegisterVideoSendPayload(int payload_type,
const char* payload_name) override;