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;