| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2017 The WebRTC project authors. All Rights Reserved. | 2 * Copyright 2017 The WebRTC project authors. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| 11 #include <memory> | 11 #include <memory> |
| 12 #include <utility> // For std::pair, std::move. | 12 #include <utility> // For std::pair, std::move. |
| 13 | 13 |
| 14 #include "webrtc/api/ortc/ortcfactoryinterface.h" | 14 #include "webrtc/api/ortc/ortcfactoryinterface.h" |
| 15 #include "webrtc/base/criticalsection.h" | 15 #include "webrtc/base/criticalsection.h" |
| 16 #include "webrtc/base/fakenetwork.h" | 16 #include "webrtc/base/fakenetwork.h" |
| 17 #include "webrtc/base/gunit.h" | 17 #include "webrtc/base/gunit.h" |
| 18 #include "webrtc/base/physicalsocketserver.h" | |
| 19 #include "webrtc/base/virtualsocketserver.h" | 18 #include "webrtc/base/virtualsocketserver.h" |
| 20 #include "webrtc/ortc/testrtpparameters.h" | 19 #include "webrtc/ortc/testrtpparameters.h" |
| 21 #include "webrtc/p2p/base/udptransport.h" | 20 #include "webrtc/p2p/base/udptransport.h" |
| 22 #include "webrtc/pc/test/fakeaudiocapturemodule.h" | 21 #include "webrtc/pc/test/fakeaudiocapturemodule.h" |
| 23 #include "webrtc/pc/test/fakeperiodicvideocapturer.h" | 22 #include "webrtc/pc/test/fakeperiodicvideocapturer.h" |
| 24 #include "webrtc/pc/test/fakevideotrackrenderer.h" | 23 #include "webrtc/pc/test/fakevideotrackrenderer.h" |
| 25 | 24 |
| 26 namespace { | 25 namespace { |
| 27 | 26 |
| 28 const int kDefaultTimeout = 10000; // 10 seconds. | 27 const int kDefaultTimeout = 10000; // 10 seconds. |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 63 | 62 |
| 64 // Used to test that things work end-to-end when using the default | 63 // Used to test that things work end-to-end when using the default |
| 65 // implementations of threads/etc. provided by OrtcFactory, with the exception | 64 // implementations of threads/etc. provided by OrtcFactory, with the exception |
| 66 // of using a virtual network. | 65 // of using a virtual network. |
| 67 // | 66 // |
| 68 // By default, the virtual network manager doesn't enumerate any networks, but | 67 // By default, the virtual network manager doesn't enumerate any networks, but |
| 69 // sockets can still be created in this state. | 68 // sockets can still be created in this state. |
| 70 class OrtcFactoryIntegrationTest : public testing::Test { | 69 class OrtcFactoryIntegrationTest : public testing::Test { |
| 71 public: | 70 public: |
| 72 OrtcFactoryIntegrationTest() | 71 OrtcFactoryIntegrationTest() |
| 73 : virtual_socket_server_(&physical_socket_server_), | 72 : network_thread_(&virtual_socket_server_), |
| 74 network_thread_(&virtual_socket_server_), | |
| 75 fake_audio_capture_module1_(FakeAudioCaptureModule::Create()), | 73 fake_audio_capture_module1_(FakeAudioCaptureModule::Create()), |
| 76 fake_audio_capture_module2_(FakeAudioCaptureModule::Create()) { | 74 fake_audio_capture_module2_(FakeAudioCaptureModule::Create()) { |
| 77 // Sockets are bound to the ANY address, so this is needed to tell the | 75 // Sockets are bound to the ANY address, so this is needed to tell the |
| 78 // virtual network which address to use in this case. | 76 // virtual network which address to use in this case. |
| 79 virtual_socket_server_.SetDefaultRoute(kIPv4LocalHostAddress); | 77 virtual_socket_server_.SetDefaultRoute(kIPv4LocalHostAddress); |
| 80 network_thread_.Start(); | 78 network_thread_.Start(); |
| 81 // Need to create after network thread is started. | 79 // Need to create after network thread is started. |
| 82 ortc_factory1_ = OrtcFactoryInterface::Create( | 80 ortc_factory1_ = OrtcFactoryInterface::Create( |
| 83 &network_thread_, nullptr, &fake_network_manager_, | 81 &network_thread_, nullptr, &fake_network_manager_, |
| 84 nullptr, fake_audio_capture_module1_) | 82 nullptr, fake_audio_capture_module1_) |
| (...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 323 kDefaultTimeout); | 321 kDefaultTimeout); |
| 324 } else { | 322 } else { |
| 325 WAIT(false, kReceivingDuration); | 323 WAIT(false, kReceivingDuration); |
| 326 rendered_video_frames1_ = fake_video_renderer1.num_rendered_frames(); | 324 rendered_video_frames1_ = fake_video_renderer1.num_rendered_frames(); |
| 327 rendered_video_frames2_ = fake_video_renderer2.num_rendered_frames(); | 325 rendered_video_frames2_ = fake_video_renderer2.num_rendered_frames(); |
| 328 received_audio_frames1_ = fake_audio_capture_module1_->frames_received(); | 326 received_audio_frames1_ = fake_audio_capture_module1_->frames_received(); |
| 329 received_audio_frames2_ = fake_audio_capture_module2_->frames_received(); | 327 received_audio_frames2_ = fake_audio_capture_module2_->frames_received(); |
| 330 } | 328 } |
| 331 } | 329 } |
| 332 | 330 |
| 333 rtc::PhysicalSocketServer physical_socket_server_; | |
| 334 rtc::VirtualSocketServer virtual_socket_server_; | 331 rtc::VirtualSocketServer virtual_socket_server_; |
| 335 rtc::Thread network_thread_; | 332 rtc::Thread network_thread_; |
| 336 rtc::FakeNetworkManager fake_network_manager_; | 333 rtc::FakeNetworkManager fake_network_manager_; |
| 337 rtc::scoped_refptr<FakeAudioCaptureModule> fake_audio_capture_module1_; | 334 rtc::scoped_refptr<FakeAudioCaptureModule> fake_audio_capture_module1_; |
| 338 rtc::scoped_refptr<FakeAudioCaptureModule> fake_audio_capture_module2_; | 335 rtc::scoped_refptr<FakeAudioCaptureModule> fake_audio_capture_module2_; |
| 339 std::unique_ptr<OrtcFactoryInterface> ortc_factory1_; | 336 std::unique_ptr<OrtcFactoryInterface> ortc_factory1_; |
| 340 std::unique_ptr<OrtcFactoryInterface> ortc_factory2_; | 337 std::unique_ptr<OrtcFactoryInterface> ortc_factory2_; |
| 341 // Actually owned by video tracks. | 338 // Actually owned by video tracks. |
| 342 std::vector<cricket::FakeVideoCapturer*> fake_video_capturers_; | 339 std::vector<cricket::FakeVideoCapturer*> fake_video_capturers_; |
| 343 int received_audio_frames1_ = 0; | 340 int received_audio_frames1_ = 0; |
| (...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 675 // BaseChannel model relies on there being a single VoiceChannel and | 672 // BaseChannel model relies on there being a single VoiceChannel and |
| 676 // VideoChannel, and these only support a single set of codecs/etc. per | 673 // VideoChannel, and these only support a single set of codecs/etc. per |
| 677 // send/receive direction. | 674 // send/receive direction. |
| 678 | 675 |
| 679 // TODO(deadbeef): End-to-end test for simulcast, once that's supported by this | 676 // TODO(deadbeef): End-to-end test for simulcast, once that's supported by this |
| 680 // API. | 677 // API. |
| 681 | 678 |
| 682 #endif // if !defined(THREAD_SANITIZER) | 679 #endif // if !defined(THREAD_SANITIZER) |
| 683 | 680 |
| 684 } // namespace webrtc | 681 } // namespace webrtc |
| OLD | NEW |