Remove deprecated RemoveTrack interface

Bug: webrtc:9534
Change-Id: I970e6fd43284d9159897d5214fff9992cd26e171
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/247371
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35856}
This commit is contained in:
Harald Alvestrand
2022-01-19 12:28:45 +00:00
committed by WebRTC LUCI CQ
parent f564bfe82d
commit 93dd763360
8 changed files with 39 additions and 60 deletions

View File

@ -826,22 +826,6 @@ class RTC_EXPORT PeerConnectionInterface : public rtc::RefCountInterface {
return RTCError();
}
// Legacy API for removing a track from the PeerConnection.
// Returns true on success.
// TODO(bugs.webrtc.org/9534): Replace with signature that returns RTCError.
ABSL_DEPRECATED("Use RemoveTrackOrError")
virtual bool RemoveTrack(RtpSenderInterface* sender) {
return RemoveTrackOrError(rtc::scoped_refptr<RtpSenderInterface>(sender))
.ok();
}
// Old name for the new API. Will be removed when clients are updated.
ABSL_DEPRECATED("Use RemoveTrackOrError")
virtual RTCError RemoveTrackNew(
rtc::scoped_refptr<RtpSenderInterface> sender) {
return RemoveTrackOrError(sender);
}
// AddTransceiver creates a new RtpTransceiver and adds it to the set of
// transceivers. Adding a transceiver will cause future calls to CreateOffer
// to add a media description for the corresponding transceiver.

View File

@ -45,8 +45,6 @@ class DummyPeerConnection : public PeerConnectionInterface {
return RTCError(RTCErrorType::UNSUPPORTED_OPERATION, "Not implemented");
}
bool RemoveTrack(RtpSenderInterface* sender) override { return false; }
RTCError RemoveTrackOrError(
rtc::scoped_refptr<RtpSenderInterface> sender) override {
return RTCError(RTCErrorType::UNSUPPORTED_OPERATION, "Not implemented");

View File

@ -48,7 +48,6 @@ class MockPeerConnectionInterface
(rtc::scoped_refptr<MediaStreamTrackInterface>,
const std::vector<std::string>&),
(override));
MOCK_METHOD(bool, RemoveTrack, (RtpSenderInterface*), (override));
MOCK_METHOD(RTCError,
RemoveTrackOrError,
(rtc::scoped_refptr<RtpSenderInterface>),

View File

@ -473,7 +473,7 @@ TEST_P(PeerConnectionIntegrationTest,
ASSERT_TRUE_WAIT(SignalingStateStable(), kDefaultTimeout);
// Remove receive video (i.e., callee sender track).
callee()->pc()->RemoveTrack(callee_sender);
callee()->pc()->RemoveTrackOrError(callee_sender);
caller()->CreateAndSetAndSignalOffer();
ASSERT_TRUE_WAIT(SignalingStateStable(), kDefaultTimeout);
@ -505,7 +505,7 @@ TEST_P(PeerConnectionIntegrationTest,
ASSERT_TRUE_WAIT(SignalingStateStable(), kDefaultTimeout);
// Remove send video (i.e., caller sender track).
caller()->pc()->RemoveTrack(caller_sender);
caller()->pc()->RemoveTrackOrError(caller_sender);
caller()->CreateAndSetAndSignalOffer();
ASSERT_TRUE_WAIT(SignalingStateStable(), kDefaultTimeout);
@ -963,7 +963,7 @@ TEST_F(PeerConnectionIntegrationTestPlanB, EnableAudioAfterRejecting) {
// Remove audio track, and set offer_to_receive_audio to false to cause the
// m= section to be completely disabled, not just "recvonly".
caller()->pc()->RemoveTrack(sender);
caller()->pc()->RemoveTrackOrError(sender);
PeerConnectionInterface::RTCOfferAnswerOptions options;
options.offer_to_receive_audio = 0;
caller()->SetOfferAnswerOptions(options);
@ -2956,7 +2956,7 @@ TEST_F(PeerConnectionIntegrationTestPlanB, RemoveAndAddTrackWithNewStreamId) {
ASSERT_TRUE(ExpectNewFrames(media_expectations));
}
// Remove the sender, and create a new one with the new stream.
caller()->pc()->RemoveTrack(sender);
caller()->pc()->RemoveTrackOrError(sender);
sender = caller()->AddTrack(track, {"stream_2"});
caller()->CreateAndSetAndSignalOffer();
ASSERT_TRUE_WAIT(SignalingStateStable(), kDefaultTimeout);

View File

@ -1561,8 +1561,8 @@ TEST_F(PeerConnectionInterfaceTestPlanB, AddTrackRemoveTrack) {
EXPECT_TRUE(DoSetLocalDescription(std::move(offer)));
// Now try removing the tracks.
EXPECT_TRUE(pc_->RemoveTrack(audio_sender));
EXPECT_TRUE(pc_->RemoveTrack(video_sender));
EXPECT_TRUE(pc_->RemoveTrackOrError(audio_sender).ok());
EXPECT_TRUE(pc_->RemoveTrackOrError(video_sender).ok());
// Create a new offer and ensure it doesn't contain the removed senders.
ASSERT_TRUE(DoCreateOffer(&offer, nullptr));
@ -1579,8 +1579,8 @@ TEST_F(PeerConnectionInterfaceTestPlanB, AddTrackRemoveTrack) {
// Calling RemoveTrack on a sender no longer attached to a PeerConnection
// should return false.
EXPECT_FALSE(pc_->RemoveTrack(audio_sender));
EXPECT_FALSE(pc_->RemoveTrack(video_sender));
EXPECT_FALSE(pc_->RemoveTrackOrError(audio_sender).ok());
EXPECT_FALSE(pc_->RemoveTrackOrError(video_sender).ok());
}
// Test creating senders without a stream specified,
@ -1867,7 +1867,7 @@ TEST_P(PeerConnectionInterfaceTest, GetStatsForSpecificTrack) {
// Remove the stream. Since we are sending to our selves the local
// and the remote stream is the same.
pc_->RemoveTrack(pc_->GetSenders()[0]);
pc_->RemoveTrackOrError(pc_->GetSenders()[0]);
// Do a re-negotiation.
CreateOfferReceiveAnswer();

View File

@ -312,8 +312,8 @@ TEST_F(PeerConnectionMediaTestPlanB, EmptyRemoteOfferRemovesRecvStreams) {
ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get()));
// Remove both tracks from caller.
caller->pc()->RemoveTrack(caller_audio_track);
caller->pc()->RemoveTrack(caller_video_track);
caller->pc()->RemoveTrackOrError(caller_audio_track);
caller->pc()->RemoveTrackOrError(caller_video_track);
ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get()));
@ -410,8 +410,8 @@ TEST_F(PeerConnectionMediaTestPlanB, EmptyLocalAnswerRemovesSendStreams) {
ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get()));
// Remove both tracks from callee.
callee->pc()->RemoveTrack(callee_audio_track);
callee->pc()->RemoveTrack(callee_video_track);
callee->pc()->RemoveTrackOrError(callee_audio_track);
callee->pc()->RemoveTrackOrError(callee_video_track);
ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get()));
@ -1083,7 +1083,7 @@ TEST_P(PeerConnectionMediaTest, TestAVOfferWithAudioOnlyAnswer) {
EXPECT_EQ(1u, callee_video->send_streams().size());
// Callee removes video but keeps audio and rejects the video once again.
callee->pc()->RemoveTrack(callee_video_track);
callee->pc()->RemoveTrackOrError(callee_video_track);
ASSERT_TRUE(callee->SetRemoteDescription(caller->CreateOfferAndSetAsLocal()));
ASSERT_TRUE(
callee->SetLocalDescription(callee->CreateAnswer(options_reject_video)));
@ -1153,7 +1153,7 @@ TEST_P(PeerConnectionMediaTest, TestAVOfferWithVideoOnlyAnswer) {
EXPECT_EQ(1u, callee_video->send_streams().size());
// Callee removes audio but keeps video and rejects the audio once again.
callee->pc()->RemoveTrack(callee_audio_track);
callee->pc()->RemoveTrackOrError(callee_audio_track);
ASSERT_TRUE(callee->SetRemoteDescription(caller->CreateOfferAndSetAsLocal()));
ASSERT_TRUE(
callee->SetLocalDescription(callee->CreateAnswer(options_reject_audio)));

View File

@ -237,7 +237,7 @@ TEST_P(PeerConnectionRtpTest, RemoveTrackWithoutStreamFiresOnRemoveTrack) {
ASSERT_TRUE(
caller->SetRemoteDescription(callee->CreateAnswerAndSetAsLocal()));
EXPECT_TRUE(caller->pc()->RemoveTrack(sender));
EXPECT_TRUE(caller->pc()->RemoveTrackOrError(sender).ok());
ASSERT_TRUE(callee->SetRemoteDescription(caller->CreateOfferAndSetAsLocal()));
ASSERT_EQ(callee->observer()->add_track_events_.size(), 1u);
@ -255,7 +255,7 @@ TEST_P(PeerConnectionRtpTest, RemoveTrackWithStreamFiresOnRemoveTrack) {
ASSERT_TRUE(
caller->SetRemoteDescription(callee->CreateAnswerAndSetAsLocal()));
EXPECT_TRUE(caller->pc()->RemoveTrack(sender));
EXPECT_TRUE(caller->pc()->RemoveTrackOrError(sender).ok());
ASSERT_TRUE(callee->SetRemoteDescription(caller->CreateOfferAndSetAsLocal()));
ASSERT_EQ(callee->observer()->add_track_events_.size(), 1u);
@ -277,7 +277,7 @@ TEST_P(PeerConnectionRtpTest, RemoveTrackWithSharedStreamFiresOnRemoveTrack) {
caller->SetRemoteDescription(callee->CreateAnswerAndSetAsLocal()));
// Remove "audio_track1".
EXPECT_TRUE(caller->pc()->RemoveTrack(sender1));
EXPECT_TRUE(caller->pc()->RemoveTrackOrError(sender1).ok());
ASSERT_TRUE(callee->SetRemoteDescription(caller->CreateOfferAndSetAsLocal()));
ASSERT_EQ(callee->observer()->add_track_events_.size(), 2u);
EXPECT_EQ(
@ -289,7 +289,7 @@ TEST_P(PeerConnectionRtpTest, RemoveTrackWithSharedStreamFiresOnRemoveTrack) {
caller->SetRemoteDescription(callee->CreateAnswerAndSetAsLocal()));
// Remove "audio_track2".
EXPECT_TRUE(caller->pc()->RemoveTrack(sender2));
EXPECT_TRUE(caller->pc()->RemoveTrackOrError(sender2).ok());
ASSERT_TRUE(callee->SetRemoteDescription(caller->CreateOfferAndSetAsLocal()));
ASSERT_EQ(callee->observer()->add_track_events_.size(), 2u);
EXPECT_EQ(callee->observer()->GetAddTrackReceivers(),
@ -480,7 +480,7 @@ TEST_F(PeerConnectionRtpTestUnifiedPlan,
ASSERT_EQ(1u, callee->observer()->add_track_events_.size());
EXPECT_EQ(0u, callee->observer()->remove_track_events_.size());
caller->pc()->RemoveTrack(sender);
caller->pc()->RemoveTrackOrError(sender);
ASSERT_TRUE(callee->SetRemoteDescription(caller->CreateOfferAndSetAsLocal()));
EXPECT_EQ(1u, callee->observer()->add_track_events_.size());
@ -580,7 +580,7 @@ TEST_P(PeerConnectionRtpTest, RemoveTrackWithoutStreamRemovesReceiver) {
ASSERT_EQ(callee->pc()->GetReceivers().size(), 1u);
auto receiver = callee->pc()->GetReceivers()[0];
ASSERT_TRUE(caller->pc()->RemoveTrack(sender));
ASSERT_TRUE(caller->pc()->RemoveTrackOrError(sender).ok());
ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get()));
if (sdp_semantics_ == SdpSemantics::kUnifiedPlan) {
@ -604,7 +604,7 @@ TEST_P(PeerConnectionRtpTest, RemoveTrackWithStreamRemovesReceiver) {
ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get()));
ASSERT_EQ(callee->pc()->GetReceivers().size(), 1u);
auto receiver = callee->pc()->GetReceivers()[0];
ASSERT_TRUE(caller->pc()->RemoveTrack(sender));
ASSERT_TRUE(caller->pc()->RemoveTrackOrError(sender).ok());
ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get()));
if (sdp_semantics_ == SdpSemantics::kUnifiedPlan) {
@ -630,7 +630,7 @@ TEST_P(PeerConnectionRtpTest, RemoveTrackWithSharedStreamRemovesReceiver) {
ASSERT_EQ(2u, callee->pc()->GetReceivers().size());
// Remove "audio_track1".
EXPECT_TRUE(caller->pc()->RemoveTrack(sender1));
EXPECT_TRUE(caller->pc()->RemoveTrackOrError(sender1).ok());
ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get()));
if (sdp_semantics_ == SdpSemantics::kUnifiedPlan) {
@ -648,7 +648,7 @@ TEST_P(PeerConnectionRtpTest, RemoveTrackWithSharedStreamRemovesReceiver) {
}
// Remove "audio_track2".
EXPECT_TRUE(caller->pc()->RemoveTrack(sender2));
EXPECT_TRUE(caller->pc()->RemoveTrackOrError(sender2).ok());
ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get()));
if (sdp_semantics_ == SdpSemantics::kUnifiedPlan) {
@ -706,7 +706,7 @@ TEST_F(PeerConnectionRtpTestPlanB,
// first and second SetRemoteDescription() calls.
auto sender = caller->AddAudioTrack("audio_track", {});
auto srd1_sdp = caller->CreateOfferAndSetAsLocal();
EXPECT_TRUE(caller->pc()->RemoveTrack(sender));
EXPECT_TRUE(caller->pc()->RemoveTrackOrError(sender).ok());
auto srd2_sdp = caller->CreateOfferAndSetAsLocal();
// In the first SetRemoteDescription() callback, check that we have a
@ -1304,7 +1304,7 @@ TEST_F(PeerConnectionRtpTestUnifiedPlan, RemoveTrackClearsSenderTrack) {
auto caller = CreatePeerConnection();
auto sender = caller->AddAudioTrack("a");
ASSERT_TRUE(caller->pc()->RemoveTrack(sender));
ASSERT_TRUE(caller->pc()->RemoveTrackOrError(sender).ok());
EXPECT_FALSE(sender->track());
}
@ -1327,7 +1327,7 @@ TEST_F(PeerConnectionRtpTestUnifiedPlan,
caller->observer()->clear_legacy_renegotiation_needed();
caller->observer()->clear_latest_negotiation_needed_event();
ASSERT_TRUE(caller->pc()->RemoveTrack(transceiver->sender()));
ASSERT_TRUE(caller->pc()->RemoveTrackOrError(transceiver->sender()).ok());
EXPECT_TRUE(caller->observer()->legacy_renegotiation_needed());
EXPECT_TRUE(caller->observer()->has_negotiation_needed_event());
@ -1352,7 +1352,7 @@ TEST_F(PeerConnectionRtpTestUnifiedPlan,
caller->observer()->clear_legacy_renegotiation_needed();
caller->observer()->clear_latest_negotiation_needed_event();
ASSERT_TRUE(caller->pc()->RemoveTrack(transceiver->sender()));
ASSERT_TRUE(caller->pc()->RemoveTrackOrError(transceiver->sender()).ok());
EXPECT_TRUE(caller->observer()->legacy_renegotiation_needed());
EXPECT_TRUE(caller->observer()->has_negotiation_needed_event());
@ -1370,7 +1370,7 @@ TEST_F(PeerConnectionRtpTestUnifiedPlan, RemoveTrackWithNullSenderTrackIsNoOp) {
caller->observer()->clear_legacy_renegotiation_needed();
caller->observer()->clear_latest_negotiation_needed_event();
ASSERT_TRUE(caller->pc()->RemoveTrack(sender));
ASSERT_TRUE(caller->pc()->RemoveTrackOrError(sender).ok());
EXPECT_FALSE(caller->observer()->legacy_renegotiation_needed());
EXPECT_FALSE(caller->observer()->has_negotiation_needed_event());
@ -1387,7 +1387,7 @@ TEST_F(PeerConnectionRtpTestUnifiedPlan, RemoveTrackErrorIfClosed) {
caller->observer()->clear_legacy_renegotiation_needed();
caller->observer()->clear_latest_negotiation_needed_event();
EXPECT_FALSE(caller->pc()->RemoveTrack(sender));
EXPECT_FALSE(caller->pc()->RemoveTrackOrError(sender).ok());
EXPECT_FALSE(caller->observer()->legacy_renegotiation_needed());
EXPECT_FALSE(caller->observer()->has_negotiation_needed_event());
}
@ -1397,11 +1397,11 @@ TEST_F(PeerConnectionRtpTestUnifiedPlan,
auto caller = CreatePeerConnection();
auto sender = caller->AddAudioTrack("a");
ASSERT_TRUE(caller->pc()->RemoveTrack(sender));
ASSERT_TRUE(caller->pc()->RemoveTrackOrError(sender).ok());
caller->observer()->clear_legacy_renegotiation_needed();
caller->observer()->clear_latest_negotiation_needed_event();
EXPECT_TRUE(caller->pc()->RemoveTrack(sender));
EXPECT_TRUE(caller->pc()->RemoveTrackOrError(sender).ok());
EXPECT_FALSE(caller->observer()->legacy_renegotiation_needed());
EXPECT_FALSE(caller->observer()->has_negotiation_needed_event());
}
@ -1415,7 +1415,7 @@ TEST_F(PeerConnectionRtpTestUnifiedPlan, AddRemoveAddTrackOffersWorksAudio) {
auto sender1 = caller->AddAudioTrack("audio1");
ASSERT_TRUE(caller->SetLocalDescription(caller->CreateOffer()));
caller->pc()->RemoveTrack(sender1);
caller->pc()->RemoveTrackOrError(sender1);
ASSERT_TRUE(caller->SetLocalDescription(caller->CreateOffer()));
// This will re-use the transceiver created by the first AddTrack.
@ -1431,7 +1431,7 @@ TEST_F(PeerConnectionRtpTestUnifiedPlan, AddRemoveAddTrackOffersWorksVideo) {
auto sender1 = caller->AddVideoTrack("video1");
ASSERT_TRUE(caller->SetLocalDescription(caller->CreateOffer()));
caller->pc()->RemoveTrack(sender1);
caller->pc()->RemoveTrackOrError(sender1);
ASSERT_TRUE(caller->SetLocalDescription(caller->CreateOffer()));
// This will re-use the transceiver created by the first AddTrack.
@ -1488,7 +1488,7 @@ TEST_F(PeerConnectionRtpTestUnifiedPlan,
auto sender1 = caller->AddTrack(track);
ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get()));
caller->pc()->RemoveTrack(sender1);
caller->pc()->RemoveTrackOrError(sender1);
ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get()));
auto sender2 = caller->AddTrack(track);
@ -1656,11 +1656,11 @@ TEST_F(PeerConnectionRtpTestUnifiedPlan,
caller->AddTransceiver(video_track);
auto transceiver = caller->AddTransceiver(track);
ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get()));
caller->pc()->RemoveTrack(transceiver->sender());
caller->pc()->RemoveTrackOrError(transceiver->sender());
ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get()));
caller->AddTrack(track);
ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get()));
caller->pc()->RemoveTrack(transceiver->sender());
caller->pc()->RemoveTrackOrError(transceiver->sender());
ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get()));
}
@ -1674,12 +1674,12 @@ TEST_F(PeerConnectionRtpTestUnifiedPlan,
caller->AddTransceiver(video_track);
auto transceiver = caller->AddTransceiver(track);
ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get()));
caller->pc()->RemoveTrack(transceiver->sender());
caller->pc()->RemoveTrackOrError(transceiver->sender());
ExchangeOfferAnswerWhereRemoteStopsTransceiver(caller.get(), callee.get(), 1);
ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get()));
caller->AddTrack(track);
ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get()));
caller->pc()->RemoveTrack(transceiver->sender());
caller->pc()->RemoveTrackOrError(transceiver->sender());
ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get()));
}

View File

@ -50,8 +50,6 @@ class FakePeerConnectionBase : public PeerConnectionInternal {
return RTCError(RTCErrorType::UNSUPPORTED_OPERATION, "Not implemented");
}
bool RemoveTrack(RtpSenderInterface* sender) override { return false; }
RTCError RemoveTrackOrError(
rtc::scoped_refptr<RtpSenderInterface> sender) override {
return RTCError(RTCErrorType::UNSUPPORTED_OPERATION);