Set RtpReceiverAudio::telephone_event_forward_to_decoder_ true on construction.

All users call SetTelephoneEventForwardToDecoder(true). Setting the
flag to true on construction, enables deletion of those calls,
followed by deletion of the flag itself.

The unused getter method TelephoneEventForwardToDecoder() is deleted
right away.

Bug: webrtc:7135
Change-Id: I8c52c957b3f074be7ffc425b3588402d1e42b844
Reviewed-on: https://webrtc-review.googlesource.com/90402
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24141}
diff --git a/modules/rtp_rtcp/include/rtp_receiver.h b/modules/rtp_rtcp/include/rtp_receiver.h
index d43acb2..e15bbe4 100644
--- a/modules/rtp_rtcp/include/rtp_receiver.h
+++ b/modules/rtp_rtcp/include/rtp_receiver.h
@@ -29,9 +29,6 @@
   // Forward DTMFs to decoder for playout.
   virtual void SetTelephoneEventForwardToDecoder(bool forward_to_decoder) = 0;
 
-  // Is forwarding of outband telephone events turned on/off?
-  virtual bool TelephoneEventForwardToDecoder() const = 0;
-
   // Is TelephoneEvent configured with payload type payload_type
   virtual bool TelephoneEventPayloadType(const int8_t payload_type) const = 0;
 };
diff --git a/modules/rtp_rtcp/source/rtp_receiver_audio.cc b/modules/rtp_rtcp/source/rtp_receiver_audio.cc
index ac57138..3d66fd5 100644
--- a/modules/rtp_rtcp/source/rtp_receiver_audio.cc
+++ b/modules/rtp_rtcp/source/rtp_receiver_audio.cc
@@ -27,7 +27,7 @@
 RTPReceiverAudio::RTPReceiverAudio(RtpData* data_callback)
     : RTPReceiverStrategy(data_callback),
       TelephoneEventHandler(),
-      telephone_event_forward_to_decoder_(false),
+      telephone_event_forward_to_decoder_(true),
       telephone_event_payload_type_(-1),
       cng_nb_payload_type_(-1),
       cng_wb_payload_type_(-1),
@@ -43,12 +43,6 @@
   telephone_event_forward_to_decoder_ = forward_to_decoder;
 }
 
-// Is forwarding of outband telephone events turned on/off?
-bool RTPReceiverAudio::TelephoneEventForwardToDecoder() const {
-  rtc::CritScope lock(&crit_sect_);
-  return telephone_event_forward_to_decoder_;
-}
-
 bool RTPReceiverAudio::TelephoneEventPayloadType(int8_t payload_type) const {
   rtc::CritScope lock(&crit_sect_);
   return telephone_event_payload_type_ == payload_type;
diff --git a/modules/rtp_rtcp/source/rtp_receiver_audio.h b/modules/rtp_rtcp/source/rtp_receiver_audio.h
index 8c82094..1d3d6d4 100644
--- a/modules/rtp_rtcp/source/rtp_receiver_audio.h
+++ b/modules/rtp_rtcp/source/rtp_receiver_audio.h
@@ -32,9 +32,6 @@
   // Forward DTMFs to decoder for playout.
   void SetTelephoneEventForwardToDecoder(bool forward_to_decoder) override;
 
-  // Is forwarding of outband telephone events turned on/off?
-  bool TelephoneEventForwardToDecoder() const override;
-
   // Is TelephoneEvent configured with |payload_type|.
   bool TelephoneEventPayloadType(const int8_t payload_type) const override;
 
diff --git a/modules/rtp_rtcp/test/testAPI/test_api_audio.cc b/modules/rtp_rtcp/test/testAPI/test_api_audio.cc
index abda7b2..fdd99de 100644
--- a/modules/rtp_rtcp/test/testAPI/test_api_audio.cc
+++ b/modules/rtp_rtcp/test/testAPI/test_api_audio.cc
@@ -39,6 +39,26 @@
                                    {104, 32000},
                                    {105, 48000}};
 
+// Rough sanity check of DTMF payload.
+void VerifyDtmf(const uint8_t* payloadData,
+                size_t payloadSize) {
+  EXPECT_EQ(payloadSize, 4u);
+  uint8_t p0 = (payloadSize > 0) ? payloadData[0] : 0xff;
+  uint8_t p1 = (payloadSize > 1) ? payloadData[1] : 0xff;
+  uint8_t p2 = (payloadSize > 2) ? payloadData[2] : 0xff;
+  uint8_t p3 = (payloadSize > 3) ? payloadData[3] : 0xff;
+  uint8_t event = p0;
+  bool reserved = (p1 >> 6) & 1;
+  uint8_t volume = p1 & 63;
+  uint16_t duration = (p2 << 8) | p3;
+
+  // 0-15 are digits, #, *, A-D, 32 is answer tone (see rfc 4734)
+  EXPECT_LE(event, 32u);
+  EXPECT_TRUE(event < 16u || event == 32u);
+  EXPECT_FALSE(reserved);
+  EXPECT_EQ(volume, 10u);
+  EXPECT_LE(duration, 6560u);
+}
 
 class VerifyingAudioReceiver : public RtpData {
  public:
@@ -47,11 +67,13 @@
       size_t payloadSize,
       const webrtc::WebRtcRTPHeader* rtpHeader) override {
     const uint8_t payload_type = rtpHeader->header.payloadType;
-    if (payload_type == kPcmuPayloadType || payload_type == kDtmfPayloadType) {
+    if (payload_type == kPcmuPayloadType) {
       EXPECT_EQ(sizeof(kTestPayload), payloadSize);
-      // All our test vectors for PCMU and DTMF are equal to |kTestPayload|.
+      // All our test vectors for PCMU are equal to |kTestPayload|.
       const size_t min_size = std::min(sizeof(kTestPayload), payloadSize);
       EXPECT_EQ(0, memcmp(payloadData, kTestPayload, min_size));
+    } else if (payload_type == kDtmfPayloadType) {
+      VerifyDtmf(payloadData, payloadSize);
     }
 
     return 0;