From 1bd66642c37083156c625578130dbed13f5fb32c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=B6ller?= Date: Thu, 26 Jul 2018 15:28:57 +0200 Subject: [PATCH] Set RtpReceiverAudio::telephone_event_forward_to_decoder_ true on construction. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Åsa Persson Commit-Queue: Niels Moller Cr-Commit-Position: refs/heads/master@{#24141} --- modules/rtp_rtcp/include/rtp_receiver.h | 3 --- modules/rtp_rtcp/source/rtp_receiver_audio.cc | 8 +----- modules/rtp_rtcp/source/rtp_receiver_audio.h | 3 --- .../rtp_rtcp/test/testAPI/test_api_audio.cc | 26 +++++++++++++++++-- 4 files changed, 25 insertions(+), 15 deletions(-) diff --git a/modules/rtp_rtcp/include/rtp_receiver.h b/modules/rtp_rtcp/include/rtp_receiver.h index d43acb2c7c..e15bbe410d 100644 --- a/modules/rtp_rtcp/include/rtp_receiver.h +++ b/modules/rtp_rtcp/include/rtp_receiver.h @@ -29,9 +29,6 @@ class TelephoneEventHandler { // 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 ac571382f5..3d66fd57e4 100644 --- a/modules/rtp_rtcp/source/rtp_receiver_audio.cc +++ b/modules/rtp_rtcp/source/rtp_receiver_audio.cc @@ -27,7 +27,7 @@ RTPReceiverStrategy* RTPReceiverStrategy::CreateAudioStrategy( 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 @@ void RTPReceiverAudio::SetTelephoneEventForwardToDecoder( 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 8c82094ab9..1d3d6d42e0 100644 --- a/modules/rtp_rtcp/source/rtp_receiver_audio.h +++ b/modules/rtp_rtcp/source/rtp_receiver_audio.h @@ -32,9 +32,6 @@ class RTPReceiverAudio : public RTPReceiverStrategy, // 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 abda7b2120..fdd99decce 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 @@ const CngCodecSpec kCngCodecs[] = {{13, 8000}, {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 @@ class VerifyingAudioReceiver : public RtpData { 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;