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:
@ -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;
|
||||
};
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
Reference in New Issue
Block a user