Remove unused/deprecated DTMF methods
PeerConnectionInterface::CreateDtmfSender
DtmfSenderInterface::track
Bug: webrtc:9426
Change-Id: I7d151d8e0bdd60750ed60466083245631d540a91
Reviewed-on: https://webrtc-review.googlesource.com/84244
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23690}
diff --git a/api/dtmfsenderinterface.h b/api/dtmfsenderinterface.h
index ce848a7..217f9d2 100644
--- a/api/dtmfsenderinterface.h
+++ b/api/dtmfsenderinterface.h
@@ -71,12 +71,6 @@
int duration,
int inter_tone_gap) = 0;
- // Returns the track given as argument to the constructor. Only exists for
- // backwards compatibilty; now that DtmfSenders are tied to RtpSenders, it's
- // no longer relevant.
- // TODO(bugs.webrtc.org/9426): Remove this method.
- virtual const AudioTrackInterface* track() const { return nullptr; }
-
// Returns the tones remaining to be played out.
virtual std::string tones() const = 0;
diff --git a/api/peerconnectioninterface.h b/api/peerconnectioninterface.h
index cb6b572..683a597 100644
--- a/api/peerconnectioninterface.h
+++ b/api/peerconnectioninterface.h
@@ -740,17 +740,6 @@
return RTCError(RTCErrorType::INTERNAL_ERROR, "not implemented");
}
- // Returns pointer to a DtmfSender on success. Otherwise returns null.
- //
- // This API is no longer part of the standard; instead DtmfSenders are
- // obtained from RtpSenders. Which is what the implementation does; it finds
- // an RtpSender for |track| and just returns its DtmfSender.
- // TODO(bugs.webrtc.org/9426): Remove this method.
- virtual rtc::scoped_refptr<DtmfSenderInterface> CreateDtmfSender(
- AudioTrackInterface* track) {
- return nullptr;
- }
-
// TODO(deadbeef): Make these pure virtual once all subclasses implement them.
// Creates a sender without a track. Can be used for "early media"/"warmup"
diff --git a/api/peerconnectionproxy.h b/api/peerconnectionproxy.h
index 1e16ecf..ab3b735 100644
--- a/api/peerconnectionproxy.h
+++ b/api/peerconnectionproxy.h
@@ -51,9 +51,6 @@
AddTransceiver,
cricket::MediaType,
const RtpTransceiverInit&)
-PROXY_METHOD1(rtc::scoped_refptr<DtmfSenderInterface>,
- CreateDtmfSender,
- AudioTrackInterface*)
PROXY_METHOD2(rtc::scoped_refptr<RtpSenderInterface>,
CreateSender,
const std::string&,
diff --git a/pc/dtmfsender.cc b/pc/dtmfsender.cc
index 64876ee..7096120 100644
--- a/pc/dtmfsender.cc
+++ b/pc/dtmfsender.cc
@@ -62,31 +62,28 @@
}
rtc::scoped_refptr<DtmfSender> DtmfSender::Create(
- AudioTrackInterface* track,
rtc::Thread* signaling_thread,
DtmfProviderInterface* provider) {
if (!signaling_thread) {
return nullptr;
}
rtc::scoped_refptr<DtmfSender> dtmf_sender(
- new rtc::RefCountedObject<DtmfSender>(track, signaling_thread, provider));
+ new rtc::RefCountedObject<DtmfSender>(signaling_thread, provider));
return dtmf_sender;
}
-DtmfSender::DtmfSender(AudioTrackInterface* track,
- rtc::Thread* signaling_thread,
+DtmfSender::DtmfSender(rtc::Thread* signaling_thread,
DtmfProviderInterface* provider)
- : track_(track),
- observer_(NULL),
+ : observer_(nullptr),
signaling_thread_(signaling_thread),
provider_(provider),
duration_(kDtmfDefaultDurationMs),
inter_tone_gap_(kDtmfDefaultGapMs) {
- RTC_DCHECK(signaling_thread_ != NULL);
+ RTC_DCHECK(signaling_thread_);
// TODO(deadbeef): Once we can use shared_ptr and weak_ptr,
// do that instead of relying on a "destroyed" signal.
if (provider_) {
- RTC_DCHECK(provider_->GetOnDestroyedSignal() != NULL);
+ RTC_DCHECK(provider_->GetOnDestroyedSignal());
provider_->GetOnDestroyedSignal()->connect(
this, &DtmfSender::OnProviderDestroyed);
}
@@ -101,7 +98,7 @@
}
void DtmfSender::UnregisterObserver() {
- observer_ = NULL;
+ observer_ = nullptr;
}
bool DtmfSender::CanInsertDtmf() {
@@ -144,10 +141,6 @@
return true;
}
-const AudioTrackInterface* DtmfSender::track() const {
- return track_;
-}
-
std::string DtmfSender::tones() const {
return tones_;
}
@@ -232,7 +225,7 @@
void DtmfSender::OnProviderDestroyed() {
RTC_LOG(LS_INFO) << "The Dtmf provider is deleted. Clear the sending queue.";
StopSending();
- provider_ = NULL;
+ provider_ = nullptr;
}
void DtmfSender::StopSending() {
diff --git a/pc/dtmfsender.h b/pc/dtmfsender.h
index f72778b..7b45a1f 100644
--- a/pc/dtmfsender.h
+++ b/pc/dtmfsender.h
@@ -14,20 +14,16 @@
#include <string>
#include "api/dtmfsenderinterface.h"
-#include "api/mediastreaminterface.h"
#include "api/proxy.h"
#include "rtc_base/constructormagic.h"
#include "rtc_base/messagehandler.h"
#include "rtc_base/refcount.h"
+#include "rtc_base/thread.h"
// DtmfSender is the native implementation of the RTCDTMFSender defined by
// the WebRTC W3C Editor's Draft.
// http://dev.w3.org/2011/webrtc/editor/webrtc.html
-namespace rtc {
-class Thread;
-}
-
namespace webrtc {
// This interface is called by DtmfSender to talk to the actual audio channel
@@ -53,10 +49,7 @@
public sigslot::has_slots<>,
public rtc::MessageHandler {
public:
- // |track| is only there for backwards compatibility, since there's a track
- // accessor method.
- static rtc::scoped_refptr<DtmfSender> Create(AudioTrackInterface* track,
- rtc::Thread* signaling_thread,
+ static rtc::scoped_refptr<DtmfSender> Create(rtc::Thread* signaling_thread,
DtmfProviderInterface* provider);
// Implements DtmfSenderInterface.
@@ -66,15 +59,12 @@
bool InsertDtmf(const std::string& tones,
int duration,
int inter_tone_gap) override;
- const AudioTrackInterface* track() const override;
std::string tones() const override;
int duration() const override;
int inter_tone_gap() const override;
protected:
- DtmfSender(AudioTrackInterface* track,
- rtc::Thread* signaling_thread,
- DtmfProviderInterface* provider);
+ DtmfSender(rtc::Thread* signaling_thread, DtmfProviderInterface* provider);
virtual ~DtmfSender();
private:
@@ -90,7 +80,6 @@
void StopSending();
- rtc::scoped_refptr<AudioTrackInterface> track_;
DtmfSenderObserverInterface* observer_;
rtc::Thread* signaling_thread_;
DtmfProviderInterface* provider_;
@@ -108,7 +97,6 @@
PROXY_METHOD0(void, UnregisterObserver)
PROXY_METHOD0(bool, CanInsertDtmf)
PROXY_METHOD3(bool, InsertDtmf, const std::string&, int, int)
-PROXY_CONSTMETHOD0(const AudioTrackInterface*, track)
PROXY_CONSTMETHOD0(std::string, tones)
PROXY_CONSTMETHOD0(int, duration)
PROXY_CONSTMETHOD0(int, inter_tone_gap)
diff --git a/pc/dtmfsender_unittest.cc b/pc/dtmfsender_unittest.cc
index c901763..dc8cc11 100644
--- a/pc/dtmfsender_unittest.cc
+++ b/pc/dtmfsender_unittest.cc
@@ -15,18 +15,14 @@
#include <string>
#include <vector>
-#include "pc/audiotrack.h"
#include "rtc_base/fakeclock.h"
#include "rtc_base/gunit.h"
#include "rtc_base/timeutils.h"
-using webrtc::AudioTrackInterface;
-using webrtc::AudioTrack;
using webrtc::DtmfProviderInterface;
using webrtc::DtmfSender;
using webrtc::DtmfSenderObserverInterface;
-static const char kTestAudioLabel[] = "test_audio_track";
// TODO(deadbeef): Even though this test now uses a fake clock, it has a
// generous 3-second timeout for every test case. The timeout could be tuned
// to each test based on the tones sent, instead.
@@ -105,11 +101,10 @@
class DtmfSenderTest : public testing::Test {
protected:
DtmfSenderTest()
- : track_(AudioTrack::Create(kTestAudioLabel, NULL)),
- observer_(new rtc::RefCountedObject<FakeDtmfObserver>()),
+ : observer_(new rtc::RefCountedObject<FakeDtmfObserver>()),
provider_(new FakeDtmfProvider()) {
provider_->SetCanInsertDtmf(true);
- dtmf_ = DtmfSender::Create(track_, rtc::Thread::Current(), provider_.get());
+ dtmf_ = DtmfSender::Create(rtc::Thread::Current(), provider_.get());
dtmf_->RegisterObserver(observer_.get());
}
@@ -144,11 +139,9 @@
}
}
- void VerifyExpectedState(AudioTrackInterface* track,
- const std::string& tones,
+ void VerifyExpectedState(const std::string& tones,
int duration,
int inter_tone_gap) {
- EXPECT_EQ(track, dtmf_->track());
EXPECT_EQ(tones, dtmf_->tones());
EXPECT_EQ(duration, dtmf_->duration());
EXPECT_EQ(inter_tone_gap, dtmf_->inter_tone_gap());
@@ -198,7 +191,6 @@
}
}
- rtc::scoped_refptr<AudioTrackInterface> track_;
std::unique_ptr<FakeDtmfObserver> observer_;
std::unique_ptr<FakeDtmfProvider> provider_;
rtc::scoped_refptr<DtmfSender> dtmf_;
@@ -230,14 +222,14 @@
int duration = 100;
int inter_tone_gap = 50;
EXPECT_TRUE(dtmf_->InsertDtmf(tones1, duration, inter_tone_gap));
- VerifyExpectedState(track_, tones1, duration, inter_tone_gap);
+ VerifyExpectedState(tones1, duration, inter_tone_gap);
// Wait until the first tone got sent.
EXPECT_TRUE_SIMULATED_WAIT(observer_->tones().size() == 1, kMaxWaitMs,
fake_clock_);
- VerifyExpectedState(track_, "2", duration, inter_tone_gap);
+ VerifyExpectedState("2", duration, inter_tone_gap);
// Insert with another tone buffer.
EXPECT_TRUE(dtmf_->InsertDtmf(tones2, duration, inter_tone_gap));
- VerifyExpectedState(track_, tones2, duration, inter_tone_gap);
+ VerifyExpectedState(tones2, duration, inter_tone_gap);
// Wait until it's completed.
EXPECT_TRUE_SIMULATED_WAIT(observer_->completed(), kMaxWaitMs, fake_clock_);
@@ -334,9 +326,9 @@
int duration = 100;
int inter_tone_gap = 50;
EXPECT_TRUE(dtmf_->InsertDtmf(tones, duration, inter_tone_gap));
- VerifyExpectedState(track_, "ABC", duration, inter_tone_gap);
+ VerifyExpectedState("ABC", duration, inter_tone_gap);
// Wait until the first tone got sent.
EXPECT_TRUE_SIMULATED_WAIT(observer_->tones().size() == 1, kMaxWaitMs,
fake_clock_);
- VerifyExpectedState(track_, "BC", duration, inter_tone_gap);
+ VerifyExpectedState("BC", duration, inter_tone_gap);
}
diff --git a/pc/peerconnection.cc b/pc/peerconnection.cc
index d99e97f..5526d72 100644
--- a/pc/peerconnection.cc
+++ b/pc/peerconnection.cc
@@ -1471,25 +1471,6 @@
observer_->OnRenegotiationNeeded();
}
-rtc::scoped_refptr<DtmfSenderInterface> PeerConnection::CreateDtmfSender(
- AudioTrackInterface* track) {
- TRACE_EVENT0("webrtc", "PeerConnection::CreateDtmfSender");
- if (IsClosed()) {
- return nullptr;
- }
- if (!track) {
- RTC_LOG(LS_ERROR) << "CreateDtmfSender - track is NULL.";
- return nullptr;
- }
- auto track_sender = FindSenderForTrack(track);
- if (!track_sender) {
- RTC_LOG(LS_ERROR) << "CreateDtmfSender called with a non-added track.";
- return nullptr;
- }
-
- return track_sender->GetDtmfSender();
-}
-
rtc::scoped_refptr<RtpSenderInterface> PeerConnection::CreateSender(
const std::string& kind,
const std::string& stream_id) {
diff --git a/pc/peerconnection.h b/pc/peerconnection.h
index 4113746..0e8b71d 100644
--- a/pc/peerconnection.h
+++ b/pc/peerconnection.h
@@ -113,9 +113,6 @@
// Version of the above method that returns the full certificate chain.
std::unique_ptr<rtc::SSLCertChain> GetRemoteAudioSSLCertChain();
- rtc::scoped_refptr<DtmfSenderInterface> CreateDtmfSender(
- AudioTrackInterface* track) override;
-
rtc::scoped_refptr<RtpSenderInterface> CreateSender(
const std::string& kind,
const std::string& stream_id) override;
diff --git a/pc/peerconnectioninterface_unittest.cc b/pc/peerconnectioninterface_unittest.cc
index 938e5b2..26cf6a5 100644
--- a/pc/peerconnectioninterface_unittest.cc
+++ b/pc/peerconnectioninterface_unittest.cc
@@ -1861,18 +1861,6 @@
EXPECT_TRUE(video_desc == nullptr);
}
-// Verify that CreateDtmfSender only succeeds if called with a valid local
-// track. Other aspects of DtmfSenders are tested in
-// peerconnection_integrationtest.cc.
-TEST_P(PeerConnectionInterfaceTest, CreateDtmfSenderWithInvalidParams) {
- CreatePeerConnection();
- AddAudioTrack(kAudioTracks[0]);
- EXPECT_EQ(nullptr, pc_->CreateDtmfSender(nullptr));
- rtc::scoped_refptr<webrtc::AudioTrackInterface> non_localtrack(
- pc_factory_->CreateAudioTrack("dummy_track", nullptr));
- EXPECT_EQ(nullptr, pc_->CreateDtmfSender(non_localtrack));
-}
-
// Test creating a sender with a stream ID, and ensure the ID is populated
// in the offer.
// Don't run under Unified Plan since the stream API is not available.
@@ -2728,11 +2716,6 @@
pc_->RemoveStream(local_stream);
EXPECT_FALSE(pc_->AddStream(local_stream));
- ASSERT_FALSE(local_stream->GetAudioTracks().empty());
- rtc::scoped_refptr<webrtc::DtmfSenderInterface> dtmf_sender(
- pc_->CreateDtmfSender(local_stream->GetAudioTracks()[0]));
- EXPECT_TRUE(NULL == dtmf_sender); // local stream has been removed.
-
EXPECT_TRUE(pc_->CreateDataChannel("test", NULL) == NULL);
EXPECT_TRUE(pc_->local_description() != NULL);
diff --git a/pc/rtpsender.cc b/pc/rtpsender.cc
index e8105a8..f3bf970 100644
--- a/pc/rtpsender.cc
+++ b/pc/rtpsender.cc
@@ -129,7 +129,7 @@
track_(track),
dtmf_sender_proxy_(DtmfSenderProxy::Create(
rtc::Thread::Current(),
- DtmfSender::Create(track_, rtc::Thread::Current(), this))),
+ DtmfSender::Create(rtc::Thread::Current(), this))),
cached_track_enabled_(track ? track->enabled() : false),
sink_adapter_(new LocalAudioSinkAdapter()),
attachment_id_(track ? GenerateUniqueId() : 0) {
diff --git a/pc/test/fakepeerconnectionbase.h b/pc/test/fakepeerconnectionbase.h
index d6b6118..3db2d4b 100644
--- a/pc/test/fakepeerconnectionbase.h
+++ b/pc/test/fakepeerconnectionbase.h
@@ -77,11 +77,6 @@
return RTCError(RTCErrorType::UNSUPPORTED_OPERATION, "Not implemented");
}
- rtc::scoped_refptr<DtmfSenderInterface> CreateDtmfSender(
- AudioTrackInterface* track) override {
- return nullptr;
- }
-
rtc::scoped_refptr<RtpSenderInterface> CreateSender(
const std::string& kind,
const std::string& stream_id) override {