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:
committed by
WebRTC LUCI CQ
parent
f564bfe82d
commit
93dd763360
@ -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.
|
||||
|
||||
@ -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");
|
||||
|
||||
@ -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>),
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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();
|
||||
|
||||
|
||||
@ -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)));
|
||||
|
||||
@ -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()));
|
||||
}
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
Reference in New Issue
Block a user