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}
This commit is contained in:
Niels Möller
2018-07-26 15:28:57 +02:00
committed by Commit Bot
parent 009d096986
commit 1bd66642c3
4 changed files with 25 additions and 15 deletions

View File

@ -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;
};

View File

@ -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;

View File

@ -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;

View File

@ -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;