| Index: webrtc/modules/rtp_rtcp/source/rtp_receiver_audio.cc
|
| diff --git a/webrtc/modules/rtp_rtcp/source/rtp_receiver_audio.cc b/webrtc/modules/rtp_rtcp/source/rtp_receiver_audio.cc
|
| index cd25d9ef87aebbf51fa59718c4b5573dd5cf340c..38b2830b79cbe9c3e903044b8c3b2eb746d49fdb 100644
|
| --- a/webrtc/modules/rtp_rtcp/source/rtp_receiver_audio.cc
|
| +++ b/webrtc/modules/rtp_rtcp/source/rtp_receiver_audio.cc
|
| @@ -25,7 +25,9 @@
|
|
|
| RTPReceiverAudio::RTPReceiverAudio(RtpData* data_callback)
|
| : RTPReceiverStrategy(data_callback),
|
| + TelephoneEventHandler(),
|
| last_received_frequency_(8000),
|
| + telephone_event_forward_to_decoder_(false),
|
| telephone_event_payload_type_(-1),
|
| cng_nb_payload_type_(-1),
|
| cng_wb_payload_type_(-1),
|
| @@ -38,6 +40,19 @@
|
| current_remote_energy_() {
|
| last_payload_.Audio.channels = 1;
|
| memset(current_remote_energy_, 0, sizeof(current_remote_energy_));
|
| +}
|
| +
|
| +// Outband TelephoneEvent(DTMF) detection
|
| +void RTPReceiverAudio::SetTelephoneEventForwardToDecoder(
|
| + bool forward_to_decoder) {
|
| + rtc::CritScope lock(&crit_sect_);
|
| + 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(
|
| @@ -341,6 +356,10 @@
|
|
|
| // check if it's a DTMF event, hence something we can playout
|
| if (telephone_event_packet) {
|
| + if (!telephone_event_forward_to_decoder_) {
|
| + // don't forward event to decoder
|
| + return 0;
|
| + }
|
| std::set<uint8_t>::iterator first =
|
| telephone_event_reported_.begin();
|
| if (first != telephone_event_reported_.end() && *first > 15) {
|
|
|