OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2014 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 #include "webrtc/test/call_test.h" | 10 #include "webrtc/test/call_test.h" |
11 #include "webrtc/test/encoder_settings.h" | 11 #include "webrtc/test/encoder_settings.h" |
12 | 12 |
13 namespace webrtc { | 13 namespace webrtc { |
14 namespace test { | 14 namespace test { |
15 | 15 |
16 namespace { | 16 namespace { |
17 const int kVideoRotationRtpExtensionId = 4; | 17 const int kVideoRotationRtpExtensionId = 4; |
18 } | 18 } |
19 | 19 |
20 CallTest::CallTest() | 20 CallTest::CallTest() |
21 : clock_(Clock::GetRealTimeClock()), | 21 : clock_(Clock::GetRealTimeClock()), |
22 send_config_(nullptr), | 22 send_config_(nullptr), |
23 send_stream_(NULL), | 23 send_stream_(NULL), |
24 fake_encoder_(clock_) { | 24 fake_encoder_(clock_) { |
25 } | 25 } |
26 | 26 |
27 CallTest::~CallTest() { | 27 CallTest::~CallTest() { |
28 } | 28 } |
29 | 29 |
30 void CallTest::RunBaseTest(BaseTest* test) { | 30 void CallTest::RunBaseTest(BaseTest* test, |
31 const FakeNetworkPipe::Config& config) { | |
31 CreateSenderCall(test->GetSenderCallConfig()); | 32 CreateSenderCall(test->GetSenderCallConfig()); |
32 if (test->ShouldCreateReceivers()) | 33 if (test->ShouldCreateReceivers()) |
33 CreateReceiverCall(test->GetReceiverCallConfig()); | 34 CreateReceiverCall(test->GetReceiverCallConfig()); |
35 send_transport_.reset(new PacketTransport( | |
36 sender_call_.get(), test, test::PacketTransport::kSender, config)); | |
37 receive_transport_.reset(new PacketTransport( | |
38 nullptr, test, test::PacketTransport::kReceiver, config)); | |
39 test->SetTransports(send_transport_.get(), receive_transport_.get()); | |
pbos-webrtc
2015/10/27 14:06:29
Comment on why this one is needed (I assume it's n
stefan-webrtc
2015/10/27 14:33:16
Done.
| |
34 test->OnCallsCreated(sender_call_.get(), receiver_call_.get()); | 40 test->OnCallsCreated(sender_call_.get(), receiver_call_.get()); |
35 | 41 |
36 if (test->ShouldCreateReceivers()) { | 42 if (test->ShouldCreateReceivers()) { |
37 test->SetReceivers(receiver_call_->Receiver(), sender_call_->Receiver()); | 43 send_transport_->SetReceiver(receiver_call_->Receiver()); |
44 receive_transport_->SetReceiver(sender_call_->Receiver()); | |
38 } else { | 45 } else { |
39 // Sender-only call delivers to itself. | 46 // Sender-only call delivers to itself. |
40 test->SetReceivers(sender_call_->Receiver(), NULL); | 47 send_transport_->SetReceiver(sender_call_->Receiver()); |
48 receive_transport_->SetReceiver(nullptr); | |
41 } | 49 } |
42 | 50 |
43 CreateSendConfig(test->GetNumStreams(), test->SendTransport()); | 51 CreateSendConfig(test->GetNumStreams(), send_transport_.get()); |
44 if (test->ShouldCreateReceivers()) { | 52 if (test->ShouldCreateReceivers()) { |
45 CreateMatchingReceiveConfigs(test->ReceiveTransport()); | 53 CreateMatchingReceiveConfigs(receive_transport_.get()); |
46 } | 54 } |
47 test->ModifyConfigs(&send_config_, &receive_configs_, &encoder_config_); | 55 test->ModifyConfigs(&send_config_, &receive_configs_, &encoder_config_); |
48 CreateStreams(); | 56 CreateStreams(); |
49 test->OnStreamsCreated(send_stream_, receive_streams_); | 57 test->OnStreamsCreated(send_stream_, receive_streams_); |
50 | 58 |
51 CreateFrameGeneratorCapturer(); | 59 CreateFrameGeneratorCapturer(); |
52 test->OnFrameGeneratorCapturerCreated(frame_generator_capturer_.get()); | 60 test->OnFrameGeneratorCapturerCreated(frame_generator_capturer_.get()); |
53 | 61 |
54 Start(); | 62 Start(); |
55 test->PerformTest(); | 63 test->PerformTest(); |
56 test->StopSending(); | 64 send_transport_->StopSending(); |
65 receive_transport_->StopSending(); | |
57 Stop(); | 66 Stop(); |
58 | 67 |
59 DestroyStreams(); | 68 DestroyStreams(); |
60 } | 69 } |
61 | 70 |
62 void CallTest::Start() { | 71 void CallTest::Start() { |
63 send_stream_->Start(); | 72 send_stream_->Start(); |
64 for (size_t i = 0; i < receive_streams_.size(); ++i) | 73 for (size_t i = 0; i < receive_streams_.size(); ++i) |
65 receive_streams_[i]->Start(); | 74 receive_streams_[i]->Start(); |
66 if (frame_generator_capturer_.get() != NULL) | 75 if (frame_generator_capturer_.get() != NULL) |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
175 const uint32_t CallTest::kSendRtxSsrcs[kNumSsrcs] = {0xBADCAFD, 0xBADCAFE, | 184 const uint32_t CallTest::kSendRtxSsrcs[kNumSsrcs] = {0xBADCAFD, 0xBADCAFE, |
176 0xBADCAFF}; | 185 0xBADCAFF}; |
177 const uint32_t CallTest::kSendSsrcs[kNumSsrcs] = {0xC0FFED, 0xC0FFEE, 0xC0FFEF}; | 186 const uint32_t CallTest::kSendSsrcs[kNumSsrcs] = {0xC0FFED, 0xC0FFEE, 0xC0FFEF}; |
178 const uint32_t CallTest::kReceiverLocalSsrc = 0x123456; | 187 const uint32_t CallTest::kReceiverLocalSsrc = 0x123456; |
179 const int CallTest::kNackRtpHistoryMs = 1000; | 188 const int CallTest::kNackRtpHistoryMs = 1000; |
180 const int CallTest::kAbsSendTimeExtensionId = 7; | 189 const int CallTest::kAbsSendTimeExtensionId = 7; |
181 | 190 |
182 BaseTest::BaseTest(unsigned int timeout_ms) : RtpRtcpObserver(timeout_ms) { | 191 BaseTest::BaseTest(unsigned int timeout_ms) : RtpRtcpObserver(timeout_ms) { |
183 } | 192 } |
184 | 193 |
185 BaseTest::BaseTest(unsigned int timeout_ms, | |
186 const FakeNetworkPipe::Config& config) | |
187 : RtpRtcpObserver(timeout_ms, config) { | |
188 } | |
189 | |
190 BaseTest::~BaseTest() { | 194 BaseTest::~BaseTest() { |
191 } | 195 } |
192 | 196 |
193 Call::Config BaseTest::GetSenderCallConfig() { | 197 Call::Config BaseTest::GetSenderCallConfig() { |
194 return Call::Config(); | 198 return Call::Config(); |
195 } | 199 } |
196 | 200 |
197 Call::Config BaseTest::GetReceiverCallConfig() { | 201 Call::Config BaseTest::GetReceiverCallConfig() { |
198 return Call::Config(); | 202 return Call::Config(); |
199 } | 203 } |
(...skipping 16 matching lines...) Expand all Loading... | |
216 const std::vector<VideoReceiveStream*>& receive_streams) { | 220 const std::vector<VideoReceiveStream*>& receive_streams) { |
217 } | 221 } |
218 | 222 |
219 void BaseTest::OnFrameGeneratorCapturerCreated( | 223 void BaseTest::OnFrameGeneratorCapturerCreated( |
220 FrameGeneratorCapturer* frame_generator_capturer) { | 224 FrameGeneratorCapturer* frame_generator_capturer) { |
221 } | 225 } |
222 | 226 |
223 SendTest::SendTest(unsigned int timeout_ms) : BaseTest(timeout_ms) { | 227 SendTest::SendTest(unsigned int timeout_ms) : BaseTest(timeout_ms) { |
224 } | 228 } |
225 | 229 |
226 SendTest::SendTest(unsigned int timeout_ms, | |
227 const FakeNetworkPipe::Config& config) | |
228 : BaseTest(timeout_ms, config) { | |
229 } | |
230 | |
231 bool SendTest::ShouldCreateReceivers() const { | 230 bool SendTest::ShouldCreateReceivers() const { |
232 return false; | 231 return false; |
233 } | 232 } |
234 | 233 |
235 EndToEndTest::EndToEndTest(unsigned int timeout_ms) : BaseTest(timeout_ms) { | 234 EndToEndTest::EndToEndTest(unsigned int timeout_ms) : BaseTest(timeout_ms) { |
236 } | 235 } |
237 | 236 |
238 EndToEndTest::EndToEndTest(unsigned int timeout_ms, | |
239 const FakeNetworkPipe::Config& config) | |
240 : BaseTest(timeout_ms, config) { | |
241 } | |
242 | |
243 bool EndToEndTest::ShouldCreateReceivers() const { | 237 bool EndToEndTest::ShouldCreateReceivers() const { |
244 return true; | 238 return true; |
245 } | 239 } |
246 | 240 |
247 } // namespace test | 241 } // namespace test |
248 } // namespace webrtc | 242 } // namespace webrtc |
OLD | NEW |