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_stream_(NULL), | 23 send_stream_(NULL), |
23 fake_encoder_(clock_) { | 24 fake_encoder_(clock_) { |
24 } | 25 } |
25 | 26 |
26 CallTest::~CallTest() { | 27 CallTest::~CallTest() { |
27 } | 28 } |
28 | 29 |
29 void CallTest::RunBaseTest(BaseTest* test) { | 30 void CallTest::RunBaseTest(BaseTest* test) { |
30 CreateSenderCall(test->GetSenderCallConfig()); | 31 CreateSenderCall(test->GetSenderCallConfig()); |
31 if (test->ShouldCreateReceivers()) | 32 if (test->ShouldCreateReceivers()) |
32 CreateReceiverCall(test->GetReceiverCallConfig()); | 33 CreateReceiverCall(test->GetReceiverCallConfig()); |
33 test->OnCallsCreated(sender_call_.get(), receiver_call_.get()); | 34 test->OnCallsCreated(sender_call_.get(), receiver_call_.get()); |
34 | 35 |
35 if (test->ShouldCreateReceivers()) { | 36 if (test->ShouldCreateReceivers()) { |
36 test->SetReceivers(receiver_call_->Receiver(), sender_call_->Receiver()); | 37 test->SetReceivers(receiver_call_->Receiver(), sender_call_->Receiver()); |
37 } else { | 38 } else { |
38 // Sender-only call delivers to itself. | 39 // Sender-only call delivers to itself. |
39 test->SetReceivers(sender_call_->Receiver(), NULL); | 40 test->SetReceivers(sender_call_->Receiver(), NULL); |
40 } | 41 } |
41 | 42 |
42 CreateSendConfig(test->GetNumStreams()); | 43 CreateSendConfig(test->GetNumStreams(), test->SendTransport()); |
43 if (test->ShouldCreateReceivers()) { | 44 if (test->ShouldCreateReceivers()) { |
44 CreateMatchingReceiveConfigs(); | 45 CreateMatchingReceiveConfigs(test->ReceiveTransport()); |
45 } | 46 } |
46 test->ModifyConfigs(&send_config_, &receive_configs_, &encoder_config_); | 47 test->ModifyConfigs(&send_config_, &receive_configs_, &encoder_config_); |
47 CreateStreams(); | 48 CreateStreams(); |
48 test->OnStreamsCreated(send_stream_, receive_streams_); | 49 test->OnStreamsCreated(send_stream_, receive_streams_); |
49 | 50 |
50 CreateFrameGeneratorCapturer(); | 51 CreateFrameGeneratorCapturer(); |
51 test->OnFrameGeneratorCapturerCreated(frame_generator_capturer_.get()); | 52 test->OnFrameGeneratorCapturerCreated(frame_generator_capturer_.get()); |
52 | 53 |
53 Start(); | 54 Start(); |
54 test->PerformTest(); | 55 test->PerformTest(); |
(...skipping 26 matching lines...) Expand all Loading... |
81 } | 82 } |
82 | 83 |
83 void CallTest::CreateSenderCall(const Call::Config& config) { | 84 void CallTest::CreateSenderCall(const Call::Config& config) { |
84 sender_call_.reset(Call::Create(config)); | 85 sender_call_.reset(Call::Create(config)); |
85 } | 86 } |
86 | 87 |
87 void CallTest::CreateReceiverCall(const Call::Config& config) { | 88 void CallTest::CreateReceiverCall(const Call::Config& config) { |
88 receiver_call_.reset(Call::Create(config)); | 89 receiver_call_.reset(Call::Create(config)); |
89 } | 90 } |
90 | 91 |
91 void CallTest::CreateSendConfig(size_t num_streams) { | 92 void CallTest::CreateSendConfig(size_t num_streams, |
| 93 newapi::Transport* send_transport) { |
92 assert(num_streams <= kNumSsrcs); | 94 assert(num_streams <= kNumSsrcs); |
93 send_config_ = VideoSendStream::Config(); | 95 send_config_ = VideoSendStream::Config(send_transport); |
94 send_config_.encoder_settings.encoder = &fake_encoder_; | 96 send_config_.encoder_settings.encoder = &fake_encoder_; |
95 send_config_.encoder_settings.payload_name = "FAKE"; | 97 send_config_.encoder_settings.payload_name = "FAKE"; |
96 send_config_.encoder_settings.payload_type = kFakeSendPayloadType; | 98 send_config_.encoder_settings.payload_type = kFakeSendPayloadType; |
97 send_config_.rtp.extensions.push_back( | 99 send_config_.rtp.extensions.push_back( |
98 RtpExtension(RtpExtension::kAbsSendTime, kAbsSendTimeExtensionId)); | 100 RtpExtension(RtpExtension::kAbsSendTime, kAbsSendTimeExtensionId)); |
99 encoder_config_.streams = test::CreateVideoStreams(num_streams); | 101 encoder_config_.streams = test::CreateVideoStreams(num_streams); |
100 for (size_t i = 0; i < num_streams; ++i) | 102 for (size_t i = 0; i < num_streams; ++i) |
101 send_config_.rtp.ssrcs.push_back(kSendSsrcs[i]); | 103 send_config_.rtp.ssrcs.push_back(kSendSsrcs[i]); |
102 send_config_.rtp.extensions.push_back( | 104 send_config_.rtp.extensions.push_back( |
103 RtpExtension(RtpExtension::kVideoRotation, kVideoRotationRtpExtensionId)); | 105 RtpExtension(RtpExtension::kVideoRotation, kVideoRotationRtpExtensionId)); |
104 } | 106 } |
105 | 107 |
106 void CallTest::CreateMatchingReceiveConfigs() { | 108 void CallTest::CreateMatchingReceiveConfigs( |
| 109 newapi::Transport* rtcp_send_transport) { |
107 assert(!send_config_.rtp.ssrcs.empty()); | 110 assert(!send_config_.rtp.ssrcs.empty()); |
108 assert(receive_configs_.empty()); | 111 assert(receive_configs_.empty()); |
109 assert(allocated_decoders_.empty()); | 112 assert(allocated_decoders_.empty()); |
110 VideoReceiveStream::Config config; | 113 VideoReceiveStream::Config config(rtcp_send_transport); |
111 config.rtp.remb = true; | 114 config.rtp.remb = true; |
112 config.rtp.local_ssrc = kReceiverLocalSsrc; | 115 config.rtp.local_ssrc = kReceiverLocalSsrc; |
113 for (const RtpExtension& extension : send_config_.rtp.extensions) | 116 for (const RtpExtension& extension : send_config_.rtp.extensions) |
114 config.rtp.extensions.push_back(extension); | 117 config.rtp.extensions.push_back(extension); |
115 for (size_t i = 0; i < send_config_.rtp.ssrcs.size(); ++i) { | 118 for (size_t i = 0; i < send_config_.rtp.ssrcs.size(); ++i) { |
116 VideoReceiveStream::Decoder decoder = | 119 VideoReceiveStream::Decoder decoder = |
117 test::CreateMatchingDecoder(send_config_.encoder_settings); | 120 test::CreateMatchingDecoder(send_config_.encoder_settings); |
118 allocated_decoders_.push_back(decoder.decoder); | 121 allocated_decoders_.push_back(decoder.decoder); |
119 config.decoders.clear(); | 122 config.decoders.clear(); |
120 config.decoders.push_back(decoder); | 123 config.decoders.push_back(decoder); |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
176 | 179 |
177 BaseTest::BaseTest(unsigned int timeout_ms, | 180 BaseTest::BaseTest(unsigned int timeout_ms, |
178 const FakeNetworkPipe::Config& config) | 181 const FakeNetworkPipe::Config& config) |
179 : RtpRtcpObserver(timeout_ms, config) { | 182 : RtpRtcpObserver(timeout_ms, config) { |
180 } | 183 } |
181 | 184 |
182 BaseTest::~BaseTest() { | 185 BaseTest::~BaseTest() { |
183 } | 186 } |
184 | 187 |
185 Call::Config BaseTest::GetSenderCallConfig() { | 188 Call::Config BaseTest::GetSenderCallConfig() { |
186 return Call::Config(SendTransport()); | 189 return Call::Config(); |
187 } | 190 } |
188 | 191 |
189 Call::Config BaseTest::GetReceiverCallConfig() { | 192 Call::Config BaseTest::GetReceiverCallConfig() { |
190 return Call::Config(ReceiveTransport()); | 193 return Call::Config(); |
191 } | 194 } |
192 | 195 |
193 void BaseTest::OnCallsCreated(Call* sender_call, Call* receiver_call) { | 196 void BaseTest::OnCallsCreated(Call* sender_call, Call* receiver_call) { |
194 } | 197 } |
195 | 198 |
196 size_t BaseTest::GetNumStreams() const { | 199 size_t BaseTest::GetNumStreams() const { |
197 return 1; | 200 return 1; |
198 } | 201 } |
199 | 202 |
200 void BaseTest::ModifyConfigs( | 203 void BaseTest::ModifyConfigs( |
(...skipping 30 matching lines...) Expand all Loading... |
231 const FakeNetworkPipe::Config& config) | 234 const FakeNetworkPipe::Config& config) |
232 : BaseTest(timeout_ms, config) { | 235 : BaseTest(timeout_ms, config) { |
233 } | 236 } |
234 | 237 |
235 bool EndToEndTest::ShouldCreateReceivers() const { | 238 bool EndToEndTest::ShouldCreateReceivers() const { |
236 return true; | 239 return true; |
237 } | 240 } |
238 | 241 |
239 } // namespace test | 242 } // namespace test |
240 } // namespace webrtc | 243 } // namespace webrtc |
OLD | NEW |