Changeset 248718 in webkit
- Timestamp:
- Aug 15, 2019, 10:12:52 AM (7 years ago)
- Location:
- trunk
- Files:
-
- 20 edited
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/fast/mediastream/RTCPeerConnection-icecandidate-event.html (modified) (1 diff)
-
LayoutTests/fast/mediastream/RTCPeerConnection-iceconnectionstatechange-event.html (modified) (1 diff)
-
LayoutTests/fast/mediastream/RTCPeerConnection-inspect-answer.html (modified) (1 diff)
-
LayoutTests/fast/mediastream/RTCPeerConnection-inspect-offer.html (modified) (1 diff)
-
LayoutTests/fast/mediastream/RTCPeerConnection-media-setup-single-dialog.html (modified) (1 diff)
-
LayoutTests/fast/mediastream/RTCPeerConnection-remotely-assigned-transceiver-mid.html (modified) (1 diff)
-
LayoutTests/fast/mediastream/RTCPeerConnection-setLocalDescription-offer.html (modified) (1 diff)
-
LayoutTests/fast/mediastream/RTCPeerConnection-setRemoteDescription-offer.html (modified) (1 diff)
-
LayoutTests/webrtc/libwebrtc/release-while-creating-offer.html (modified) (1 diff)
-
LayoutTests/webrtc/libwebrtc/release-while-getting-stats.html (modified) (1 diff)
-
LayoutTests/webrtc/libwebrtc/release-while-setting-local-description.html (modified) (1 diff)
-
Source/ThirdParty/libwebrtc/ChangeLog (modified) (1 diff)
-
Source/ThirdParty/libwebrtc/Configurations/libwebrtc.iOS.exp (modified) (1 diff)
-
Source/ThirdParty/libwebrtc/Configurations/libwebrtc.iOSsim.exp (modified) (1 diff)
-
Source/ThirdParty/libwebrtc/Configurations/libwebrtc.mac.exp (modified) (1 diff)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/testing/Internals.cpp (modified) (1 diff)
-
Source/WebCore/testing/MockLibWebRTCPeerConnection.cpp (modified) (7 diffs)
-
Source/WebCore/testing/MockLibWebRTCPeerConnection.h (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r248706 r248718 1 2019-08-15 Youenn Fablet <youenn@apple.com> 2 3 Make mock libwebrtc tests run with unified plan 4 https://bugs.webkit.org/show_bug.cgi?id=200713 5 6 Reviewed by Alex Christensen. 7 8 Enable unified plan. 9 10 * fast/mediastream/RTCPeerConnection-icecandidate-event.html: 11 * fast/mediastream/RTCPeerConnection-iceconnectionstatechange-event.html: 12 * fast/mediastream/RTCPeerConnection-inspect-answer.html: 13 * fast/mediastream/RTCPeerConnection-inspect-offer.html: 14 * fast/mediastream/RTCPeerConnection-media-setup-single-dialog.html: 15 * fast/mediastream/RTCPeerConnection-remotely-assigned-transceiver-mid.html: 16 * fast/mediastream/RTCPeerConnection-setLocalDescription-offer.html: 17 * fast/mediastream/RTCPeerConnection-setRemoteDescription-offer.html: 18 * webrtc/libwebrtc/release-while-creating-offer.html: 19 * webrtc/libwebrtc/release-while-getting-stats.html: 20 * webrtc/libwebrtc/release-while-setting-local-description.html: 21 1 22 2019-08-14 Myles C. Maxfield <mmaxfield@apple.com> 2 23 -
trunk/LayoutTests/fast/mediastream/RTCPeerConnection-icecandidate-event.html
r235809 r248718 8 8 <script> 9 9 description("Test RTCPeerConnection 'icecandidate' event and gathering done"); 10 11 if (window.testRunner)12 testRunner.setWebRTCUnifiedPlanEnabled(false);13 10 14 11 if (window.internals) -
trunk/LayoutTests/fast/mediastream/RTCPeerConnection-iceconnectionstatechange-event.html
r235809 r248718 8 8 <script> 9 9 description("Test RTCPeerConnection 'iceconnectionstatechange' event"); 10 if (window.testRunner)11 testRunner.setWebRTCUnifiedPlanEnabled(false);12 10 13 11 if (window.internals) -
trunk/LayoutTests/fast/mediastream/RTCPeerConnection-inspect-answer.html
r235809 r248718 7 7 <body> 8 8 <script> 9 if (window.testRunner)10 testRunner.setWebRTCUnifiedPlanEnabled(false);11 12 9 if (window.internals) 13 10 internals.useMockRTCPeerConnectionFactory(""); -
trunk/LayoutTests/fast/mediastream/RTCPeerConnection-inspect-offer.html
r235809 r248718 7 7 <body> 8 8 <script> 9 if (window.testRunner)10 testRunner.setWebRTCUnifiedPlanEnabled(false);11 12 9 if (window.internals) 13 10 internals.useMockRTCPeerConnectionFactory(""); -
trunk/LayoutTests/fast/mediastream/RTCPeerConnection-media-setup-single-dialog.html
r235809 r248718 7 7 <body> 8 8 <script> 9 if (window.testRunner)10 testRunner.setWebRTCUnifiedPlanEnabled(false);11 12 9 if (window.internals) 13 10 internals.useMockRTCPeerConnectionFactory(""); -
trunk/LayoutTests/fast/mediastream/RTCPeerConnection-remotely-assigned-transceiver-mid.html
r235809 r248718 7 7 <body> 8 8 <script> 9 if (window.testRunner)10 testRunner.setWebRTCUnifiedPlanEnabled(false);11 12 9 if (window.internals) 13 10 internals.useMockRTCPeerConnectionFactory(""); -
trunk/LayoutTests/fast/mediastream/RTCPeerConnection-setLocalDescription-offer.html
r235809 r248718 7 7 <body> 8 8 <script> 9 if (window.testRunner)10 testRunner.setWebRTCUnifiedPlanEnabled(false);11 12 9 if (window.internals) 13 10 internals.useMockRTCPeerConnectionFactory(""); -
trunk/LayoutTests/fast/mediastream/RTCPeerConnection-setRemoteDescription-offer.html
r235809 r248718 7 7 <body> 8 8 <script> 9 if (window.testRunner)10 testRunner.setWebRTCUnifiedPlanEnabled(false);11 12 9 if (window.internals) 13 10 internals.useMockRTCPeerConnectionFactory(""); -
trunk/LayoutTests/webrtc/libwebrtc/release-while-creating-offer.html
r235809 r248718 7 7 <script> 8 8 self.jsTestIsAsync = true; 9 10 if (window.testRunner)11 testRunner.setWebRTCUnifiedPlanEnabled(false);12 9 13 10 if (window.internals) -
trunk/LayoutTests/webrtc/libwebrtc/release-while-getting-stats.html
r235809 r248718 7 7 <script> 8 8 self.jsTestIsAsync = true; 9 10 if (window.testRunner)11 testRunner.setWebRTCUnifiedPlanEnabled(false);12 9 13 10 if (window.internals) -
trunk/LayoutTests/webrtc/libwebrtc/release-while-setting-local-description.html
r235809 r248718 10 10 // Silence unhandled rejection messages. 11 11 window.onunhandledrejection = () => false; 12 13 if (window.testRunner)14 testRunner.setWebRTCUnifiedPlanEnabled(false);15 12 16 13 if (window.internals) -
trunk/Source/ThirdParty/libwebrtc/ChangeLog
r248697 r248718 1 2019-08-15 Youenn Fablet <youenn@apple.com> 2 3 Make mock libwebrtc tests run with unified plan 4 https://bugs.webkit.org/show_bug.cgi?id=200713 5 6 Reviewed by Alex Christensen. 7 8 * Configurations/libwebrtc.iOS.exp: 9 * Configurations/libwebrtc.iOSsim.exp: 10 * Configurations/libwebrtc.mac.exp: 11 1 12 2019-08-14 Keith Rollin <krollin@apple.com> 2 13 -
trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.iOS.exp
r248592 r248718 254 254 __ZN3rtc11CryptStringD1Ev 255 255 __ZN3rtc11CryptStringC1ERKS0_ 256 __ZN6webrtc20RtpReceiverInterface17SetFrameDecryptorEN3rtc13scoped_refptrINS_23FrameDecryptorInterfaceEEE 257 __ZN6webrtc23RtpTransceiverInterface19SetCodecPreferencesEN3rtc9ArrayViewINS_18RtpCodecCapabilityELln4711EEE 258 __ZNK6webrtc20RtpReceiverInterface10GetSourcesEv 259 __ZNK6webrtc20RtpReceiverInterface10stream_idsEv 260 __ZNK6webrtc20RtpReceiverInterface17GetFrameDecryptorEv 261 __ZNK6webrtc20RtpReceiverInterface7streamsEv 262 __ZNK6webrtc23RtpTransceiverInterface15fired_directionEv 263 __ZTVN6webrtc20RtpReceiverInterfaceE 264 __ZTVN6webrtc23RtpTransceiverInterfaceE -
trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.iOSsim.exp
r248592 r248718 255 255 __ZN3rtc11CryptStringD1Ev 256 256 __ZN3rtc11CryptStringC1ERKS0_ 257 __ZN6webrtc20RtpReceiverInterface17SetFrameDecryptorEN3rtc13scoped_refptrINS_23FrameDecryptorInterfaceEEE 258 __ZN6webrtc23RtpTransceiverInterface19SetCodecPreferencesEN3rtc9ArrayViewINS_18RtpCodecCapabilityELln4711EEE 259 __ZNK6webrtc20RtpReceiverInterface10GetSourcesEv 260 __ZNK6webrtc20RtpReceiverInterface10stream_idsEv 261 __ZNK6webrtc20RtpReceiverInterface17GetFrameDecryptorEv 262 __ZNK6webrtc20RtpReceiverInterface7streamsEv 263 __ZNK6webrtc23RtpTransceiverInterface15fired_directionEv 264 __ZTVN6webrtc20RtpReceiverInterfaceE 265 __ZTVN6webrtc23RtpTransceiverInterfaceE -
trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.mac.exp
r248592 r248718 255 255 __ZN3rtc11CryptStringD1Ev 256 256 __ZN3rtc11CryptStringC1ERKS0_ 257 __ZN6webrtc20RtpReceiverInterface17SetFrameDecryptorEN3rtc13scoped_refptrINS_23FrameDecryptorInterfaceEEE 258 __ZN6webrtc23RtpTransceiverInterface19SetCodecPreferencesEN3rtc9ArrayViewINS_18RtpCodecCapabilityELln4711EEE 259 __ZNK6webrtc20RtpReceiverInterface10GetSourcesEv 260 __ZNK6webrtc20RtpReceiverInterface10stream_idsEv 261 __ZNK6webrtc20RtpReceiverInterface17GetFrameDecryptorEv 262 __ZNK6webrtc20RtpReceiverInterface7streamsEv 263 __ZNK6webrtc23RtpTransceiverInterface15fired_directionEv 264 __ZTVN6webrtc20RtpReceiverInterfaceE 265 __ZTVN6webrtc23RtpTransceiverInterfaceE -
trunk/Source/WebCore/ChangeLog
r248714 r248718 1 2019-08-15 Youenn Fablet <youenn@apple.com> 2 3 Make mock libwebrtc tests run with unified plan 4 https://bugs.webkit.org/show_bug.cgi?id=200713 5 6 Reviewed by Alex Christensen. 7 8 Update mock endpoint to pass mock webrtc tests with unified plan. 9 This requires implementing support for mock transceivers. 10 Covered by existing tests. 11 12 * testing/Internals.cpp: 13 (WebCore::Internals::useMockRTCPeerConnectionFactory): 14 Update assert to mandate unified plan. 15 * testing/MockLibWebRTCPeerConnection.cpp: 16 (WebCore::MockLibWebRTCPeerConnection::~MockLibWebRTCPeerConnection): 17 (WebCore::MockLibWebRTCPeerConnection::GetTransceivers const): 18 (WebCore::MockLibWebRTCPeerConnection::AddTrack): 19 (WebCore::MockLibWebRTCPeerConnection::RemoveTrack): 20 (WebCore::MockLibWebRTCPeerConnection::CreateOffer): 21 (WebCore::MockLibWebRTCPeerConnection::CreateAnswer): 22 * testing/MockLibWebRTCPeerConnection.h: 23 (WebCore::MockRtpSender::MockRtpSender): 24 (WebCore::MockRtpReceiver::id const): 25 (WebCore::MockRtpReceiver::GetParameters const): 26 (WebCore::MockRtpReceiver::SetParameters): 27 (WebCore::MockRtpReceiver::SetObserver): 28 (WebCore::MockRtpTransceiver::MockRtpTransceiver): 29 (WebCore::MockLibWebRTCPeerConnection::MockLibWebRTCPeerConnection): 30 (WebCore::MockLibWebRTCPeerConnection::gotLocalDescription): 31 1 32 2019-08-15 Chris Dumez <cdumez@apple.com> 2 33 -
trunk/Source/WebCore/testing/Internals.cpp
r248503 r248718 1435 1435 void Internals::useMockRTCPeerConnectionFactory(const String& testCase) 1436 1436 { 1437 // FIXME: We should upgrade mocks to support unified plan APIs, until then use plan B in tests using mock. 1438 1439 ASSERT(!RuntimeEnabledFeatures::sharedFeatures().webRTCUnifiedPlanEnabled()); 1437 ASSERT(RuntimeEnabledFeatures::sharedFeatures().webRTCUnifiedPlanEnabled()); 1440 1438 if (!LibWebRTCProvider::webRTCAvailable()) 1441 1439 return; -
trunk/Source/WebCore/testing/MockLibWebRTCPeerConnection.cpp
r242506 r248718 72 72 MockLibWebRTCPeerConnection::~MockLibWebRTCPeerConnection() 73 73 { 74 // Free senders in a different thread like an actual peer connection would probably do. 75 Thread::create("MockLibWebRTCPeerConnection thread", [senders = WTFMove(m_senders)] { }); 74 // Free senders and receivers in a different thread like an actual peer connection would probably do. 75 Thread::create("MockLibWebRTCPeerConnection thread", [transceivers = WTFMove(m_transceivers)] { }); 76 } 77 78 std::vector<rtc::scoped_refptr<webrtc::RtpTransceiverInterface>> MockLibWebRTCPeerConnection::GetTransceivers() const 79 { 80 std::vector<rtc::scoped_refptr<webrtc::RtpTransceiverInterface>> transceivers; 81 for (auto transceiver : m_transceivers) 82 transceivers.push_back(transceiver); 83 return transceivers; 76 84 } 77 85 … … 255 263 m_streamLabel = streamIds.front(); 256 264 257 m_senders.append(new rtc::RefCountedObject<MockRtpSender>(WTFMove(track))); 258 return rtc::scoped_refptr<webrtc::RtpSenderInterface>(m_senders.last().get()); 265 rtc::scoped_refptr<webrtc::RtpSenderInterface> sender = new rtc::RefCountedObject<MockRtpSender>(WTFMove(track)); 266 rtc::scoped_refptr<webrtc::RtpReceiverInterface> receiver = new rtc::RefCountedObject<MockRtpReceiver>(); 267 rtc::scoped_refptr<MockRtpTransceiver> transceiver = new rtc::RefCountedObject<MockRtpTransceiver>(WTFMove(sender), WTFMove(receiver)); 268 269 m_transceivers.append(WTFMove(transceiver)); 270 return rtc::scoped_refptr<webrtc::RtpSenderInterface>(m_transceivers.last()->sender()); 259 271 } 260 272 … … 265 277 }); 266 278 bool isRemoved = false; 267 return m_ senders.removeFirstMatching([&](auto& item) {268 if ( item.get() != sender)279 return m_transceivers.removeFirstMatching([&](auto& transceiver) { 280 if (transceiver->sender().get() != sender) 269 281 return false; 270 282 isRemoved = true; … … 282 294 "s=-\r\n" 283 295 "t=0 0\r\n"; 284 if (m_ senders.size()) {296 if (m_transceivers.size()) { 285 297 unsigned partCounter = 1; 286 298 sdp << "a=msid-semantic:WMS " << m_streamLabel << "\r\n"; 287 for (auto& sender : m_senders) {288 auto track = sender->track();299 for (auto& transceiver : m_transceivers) { 300 auto track = transceiver->sender()->track(); 289 301 if (track->kind() != "audio") 290 302 continue; … … 305 317 "a=setup:actpass\r\n"; 306 318 } 307 for (auto& sender : m_senders) {308 auto track = sender->track();319 for (auto& transceiver : m_transceivers) { 320 auto track = transceiver->sender()->track(); 309 321 if (track->kind() != "video") 310 322 continue; … … 346 358 "s=-\r\n" 347 359 "t=0 0\r\n"; 348 if (m_ senders.size()) {349 for (auto& sender : m_senders) {350 auto track = sender->track();360 if (m_transceivers.size()) { 361 for (auto& transceiver : m_transceivers) { 362 auto track = transceiver->sender()->track(); 351 363 if (track->kind() != "audio") 352 364 continue; … … 366 378 "a=setup:active\r\n"; 367 379 } 368 for (auto& sender : m_senders) {369 auto track = sender->track();380 for (auto& transceiver : m_transceivers) { 381 auto track = transceiver->sender()->track(); 370 382 if (track->kind() != "video") 371 383 continue; -
trunk/Source/WebCore/testing/MockLibWebRTCPeerConnection.h
r247688 r248718 46 46 void useRealRTCPeerConnectionFactory(LibWebRTCProvider&); 47 47 48 class MockLibWebRTCPeerConnection : public webrtc::PeerConnectionInterface {49 public:50 ~MockLibWebRTCPeerConnection();51 52 protected:53 explicit MockLibWebRTCPeerConnection(webrtc::PeerConnectionObserver& observer) : m_observer(observer) { }54 55 private:56 rtc::scoped_refptr<webrtc::StreamCollectionInterface> local_streams() override { return nullptr; }57 rtc::scoped_refptr<webrtc::StreamCollectionInterface> remote_streams() override { return nullptr; }58 const webrtc::SessionDescriptionInterface* local_description() const override { return nullptr; }59 const webrtc::SessionDescriptionInterface* remote_description() const override { return nullptr; }60 bool AddIceCandidate(const webrtc::IceCandidateInterface*) override { return true; }61 SignalingState signaling_state() override { return kStable; }62 IceConnectionState ice_connection_state() override { return kIceConnectionNew; }63 IceGatheringState ice_gathering_state() override { return kIceGatheringNew; }64 void StopRtcEventLog() override { }65 void Close() override { }66 67 bool AddStream(webrtc::MediaStreamInterface*) final { return false; }68 void RemoveStream(webrtc::MediaStreamInterface*) final { }69 70 protected:71 void SetRemoteDescription(webrtc::SetSessionDescriptionObserver*, webrtc::SessionDescriptionInterface*) final;72 void CreateAnswer(webrtc::CreateSessionDescriptionObserver*, const webrtc::PeerConnectionInterface::RTCOfferAnswerOptions&) final;73 rtc::scoped_refptr<webrtc::DataChannelInterface> CreateDataChannel(const std::string&, const webrtc::DataChannelInit*) final;74 webrtc::RTCErrorOr<rtc::scoped_refptr<webrtc::RtpSenderInterface>> AddTrack(rtc::scoped_refptr<webrtc::MediaStreamTrackInterface>, const std::vector<std::string>& streams) final;75 bool RemoveTrack(webrtc::RtpSenderInterface*) final;76 webrtc::RTCError SetBitrate(const BitrateParameters&) final { return { }; }77 78 79 void SetLocalDescription(webrtc::SetSessionDescriptionObserver*, webrtc::SessionDescriptionInterface*) override;80 bool GetStats(webrtc::StatsObserver*, webrtc::MediaStreamTrackInterface*, StatsOutputLevel) override { return false; }81 void CreateOffer(webrtc::CreateSessionDescriptionObserver*, const webrtc::PeerConnectionInterface::RTCOfferAnswerOptions&) override;82 83 virtual void gotLocalDescription() { }84 85 webrtc::PeerConnectionObserver& m_observer;86 unsigned m_counter { 0 };87 Vector<rtc::scoped_refptr<MockRtpSender>> m_senders;88 bool m_isInitiator { true };89 bool m_isReceivingAudio { false };90 bool m_isReceivingVideo { false };91 std::string m_streamLabel;92 };93 94 48 class MockLibWebRTCSessionDescription: public webrtc::SessionDescriptionInterface { 95 49 public: … … 214 168 class MockRtpSender : public webrtc::RtpSenderInterface { 215 169 public: 216 MockRtpSender(rtc::scoped_refptr<webrtc::MediaStreamTrackInterface>&& track) : m_track(WTFMove(track)) { } 170 explicit MockRtpSender(rtc::scoped_refptr<webrtc::MediaStreamTrackInterface>&& track) : m_track(WTFMove(track)) { } 171 172 private: 217 173 bool SetTrack(webrtc::MediaStreamTrackInterface* track) final 218 174 { … … 233 189 rtc::scoped_refptr<webrtc::MediaStreamTrackInterface> m_track; 234 190 }; 235 191 192 class MockRtpReceiver : public webrtc::RtpReceiverInterface { 193 private: 194 cricket::MediaType media_type() const final { return cricket::MEDIA_TYPE_VIDEO; } 195 std::string id() const { return { }; } 196 webrtc::RtpParameters GetParameters() const { return { }; } 197 bool SetParameters(const webrtc::RtpParameters&) { return true; } 198 void SetObserver(webrtc::RtpReceiverObserverInterface*) { } 199 rtc::scoped_refptr<webrtc::MediaStreamTrackInterface> track() const final { return { }; } 200 }; 201 202 class MockRtpTransceiver : public webrtc::RtpTransceiverInterface { 203 public: 204 MockRtpTransceiver(rtc::scoped_refptr<webrtc::RtpSenderInterface>&& sender, rtc::scoped_refptr<webrtc::RtpReceiverInterface>&& receiver) 205 : m_sender(WTFMove(sender)) 206 , m_receiver(WTFMove(receiver)) 207 { 208 } 209 210 rtc::scoped_refptr<webrtc::RtpSenderInterface> sender() const final { return m_sender; } 211 212 private: 213 cricket::MediaType media_type() const final { return m_sender->media_type(); } 214 absl::optional<std::string> mid() const final { return { }; } 215 rtc::scoped_refptr<webrtc::RtpReceiverInterface> receiver() const final { return m_receiver; } 216 bool stopped() const final { return false; } 217 webrtc::RtpTransceiverDirection direction() const final { return webrtc::RtpTransceiverDirection::kSendRecv; } 218 void SetDirection(webrtc::RtpTransceiverDirection) final { } 219 absl::optional<webrtc::RtpTransceiverDirection> current_direction() const final { return { }; } 220 void Stop() final { } 221 222 private: 223 rtc::scoped_refptr<webrtc::RtpSenderInterface> m_sender; 224 rtc::scoped_refptr<webrtc::RtpReceiverInterface> m_receiver; 225 }; 226 227 class MockLibWebRTCPeerConnection : public webrtc::PeerConnectionInterface { 228 public: 229 ~MockLibWebRTCPeerConnection(); 230 231 protected: 232 explicit MockLibWebRTCPeerConnection(webrtc::PeerConnectionObserver& observer) : m_observer(observer) { } 233 234 private: 235 rtc::scoped_refptr<webrtc::StreamCollectionInterface> local_streams() override { return nullptr; } 236 rtc::scoped_refptr<webrtc::StreamCollectionInterface> remote_streams() override { return nullptr; } 237 const webrtc::SessionDescriptionInterface* local_description() const override { return nullptr; } 238 const webrtc::SessionDescriptionInterface* remote_description() const override { return nullptr; } 239 bool AddIceCandidate(const webrtc::IceCandidateInterface*) override { return true; } 240 SignalingState signaling_state() override { return kStable; } 241 IceConnectionState ice_connection_state() override { return kIceConnectionNew; } 242 IceGatheringState ice_gathering_state() override { return kIceGatheringNew; } 243 void StopRtcEventLog() override { } 244 void Close() override { } 245 246 bool AddStream(webrtc::MediaStreamInterface*) final { return false; } 247 void RemoveStream(webrtc::MediaStreamInterface*) final { } 248 249 std::vector<rtc::scoped_refptr<webrtc::RtpTransceiverInterface>> GetTransceivers() const final; 250 251 protected: 252 void SetRemoteDescription(webrtc::SetSessionDescriptionObserver*, webrtc::SessionDescriptionInterface*) final; 253 void CreateAnswer(webrtc::CreateSessionDescriptionObserver*, const webrtc::PeerConnectionInterface::RTCOfferAnswerOptions&) final; 254 rtc::scoped_refptr<webrtc::DataChannelInterface> CreateDataChannel(const std::string&, const webrtc::DataChannelInit*) final; 255 webrtc::RTCErrorOr<rtc::scoped_refptr<webrtc::RtpSenderInterface>> AddTrack(rtc::scoped_refptr<webrtc::MediaStreamTrackInterface>, const std::vector<std::string>& streams) final; 256 bool RemoveTrack(webrtc::RtpSenderInterface*) final; 257 webrtc::RTCError SetBitrate(const BitrateParameters&) final { return { }; } 258 259 void SetLocalDescription(webrtc::SetSessionDescriptionObserver*, webrtc::SessionDescriptionInterface*) override; 260 bool GetStats(webrtc::StatsObserver*, webrtc::MediaStreamTrackInterface*, StatsOutputLevel) override { return false; } 261 void CreateOffer(webrtc::CreateSessionDescriptionObserver*, const webrtc::PeerConnectionInterface::RTCOfferAnswerOptions&) override; 262 263 virtual void gotLocalDescription() { } 264 265 webrtc::PeerConnectionObserver& m_observer; 266 unsigned m_counter { 0 }; 267 Vector<rtc::scoped_refptr<MockRtpTransceiver>> m_transceivers; 268 bool m_isInitiator { true }; 269 bool m_isReceivingAudio { false }; 270 bool m_isReceivingVideo { false }; 271 std::string m_streamLabel; 272 }; 273 236 274 class MockLibWebRTCPeerConnectionFactory : public webrtc::PeerConnectionFactoryInterface { 237 275 public:
Note:
See TracChangeset
for help on using the changeset viewer.