Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1088)

Side by Side Diff: webrtc/test/call_test.cc

Issue 1542653002: Add audio streams to CallTest and a first A/V call test. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Comment addressed Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « webrtc/test/call_test.h ('k') | webrtc/video/end_to_end_tests.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/base/checks.h"
11 #include "webrtc/common.h"
12 #include "webrtc/config.h"
10 #include "webrtc/test/call_test.h" 13 #include "webrtc/test/call_test.h"
11 #include "webrtc/test/encoder_settings.h" 14 #include "webrtc/test/encoder_settings.h"
15 #include "webrtc/test/testsupport/fileutils.h"
16 #include "webrtc/voice_engine/include/voe_base.h"
17 #include "webrtc/voice_engine/include/voe_codec.h"
18 #include "webrtc/voice_engine/include/voe_network.h"
12 19
13 namespace webrtc { 20 namespace webrtc {
14 namespace test { 21 namespace test {
15 22
16 namespace { 23 namespace {
17 const int kVideoRotationRtpExtensionId = 4; 24 const int kVideoRotationRtpExtensionId = 4;
18 } 25 }
19 26
20 CallTest::CallTest() 27 CallTest::CallTest()
21 : clock_(Clock::GetRealTimeClock()), 28 : clock_(Clock::GetRealTimeClock()),
22 video_send_config_(nullptr), 29 video_send_config_(nullptr),
23 video_send_stream_(NULL), 30 video_send_stream_(nullptr),
24 fake_encoder_(clock_) {} 31 audio_send_config_(nullptr),
32 audio_send_stream_(nullptr),
33 fake_encoder_(clock_),
34 num_video_streams_(0),
35 num_audio_streams_(0),
36 fake_send_audio_device_(nullptr),
37 fake_recv_audio_device_(nullptr) {}
25 38
26 CallTest::~CallTest() { 39 CallTest::~CallTest() {
27 } 40 }
28 41
29 void CallTest::RunBaseTest(BaseTest* test, 42 void CallTest::RunBaseTest(BaseTest* test,
30 const FakeNetworkPipe::Config& config) { 43 const FakeNetworkPipe::Config& config) {
31 CreateSenderCall(test->GetSenderCallConfig()); 44 num_video_streams_ = test->GetNumVideoStreams();
32 if (test->ShouldCreateReceivers()) 45 num_audio_streams_ = test->GetNumAudioStreams();
33 CreateReceiverCall(test->GetReceiverCallConfig()); 46 RTC_DCHECK(num_video_streams_ > 0 || num_audio_streams_ > 0);
47 Call::Config send_config(test->GetSenderCallConfig());
48 if (num_audio_streams_ > 0) {
49 CreateVoiceEngines();
50 AudioState::Config audio_state_config;
51 audio_state_config.voice_engine = voe_send_.voice_engine;
52 send_config.audio_state = AudioState::Create(audio_state_config);
53 }
54 CreateSenderCall(send_config);
55 if (test->ShouldCreateReceivers()) {
56 Call::Config recv_config(test->GetReceiverCallConfig());
57 if (num_audio_streams_ > 0) {
58 AudioState::Config audio_state_config;
59 audio_state_config.voice_engine = voe_recv_.voice_engine;
60 recv_config.audio_state = AudioState::Create(audio_state_config);
61 }
62 CreateReceiverCall(recv_config);
63 }
34 send_transport_.reset(new PacketTransport( 64 send_transport_.reset(new PacketTransport(
35 sender_call_.get(), test, test::PacketTransport::kSender, config)); 65 sender_call_.get(), test, test::PacketTransport::kSender, config));
36 receive_transport_.reset(new PacketTransport( 66 receive_transport_.reset(new PacketTransport(
37 nullptr, test, test::PacketTransport::kReceiver, config)); 67 nullptr, test, test::PacketTransport::kReceiver, config));
38 test->OnTransportsCreated(send_transport_.get(), receive_transport_.get()); 68 test->OnTransportsCreated(send_transport_.get(), receive_transport_.get());
39 test->OnCallsCreated(sender_call_.get(), receiver_call_.get()); 69 test->OnCallsCreated(sender_call_.get(), receiver_call_.get());
40 70
41 if (test->ShouldCreateReceivers()) { 71 if (test->ShouldCreateReceivers()) {
42 send_transport_->SetReceiver(receiver_call_->Receiver()); 72 send_transport_->SetReceiver(receiver_call_->Receiver());
43 receive_transport_->SetReceiver(sender_call_->Receiver()); 73 receive_transport_->SetReceiver(sender_call_->Receiver());
44 } else { 74 } else {
45 // Sender-only call delivers to itself. 75 // Sender-only call delivers to itself.
46 send_transport_->SetReceiver(sender_call_->Receiver()); 76 send_transport_->SetReceiver(sender_call_->Receiver());
47 receive_transport_->SetReceiver(nullptr); 77 receive_transport_->SetReceiver(nullptr);
48 } 78 }
49 79
50 CreateSendConfig(test->GetNumStreams(), send_transport_.get()); 80 CreateSendConfig(num_video_streams_, num_audio_streams_,
81 send_transport_.get());
51 if (test->ShouldCreateReceivers()) { 82 if (test->ShouldCreateReceivers()) {
52 CreateMatchingReceiveConfigs(receive_transport_.get()); 83 CreateMatchingReceiveConfigs(receive_transport_.get());
53 } 84 }
54 test->ModifyVideoConfigs(&video_send_config_, &video_receive_configs_, 85 if (num_audio_streams_ > 0)
55 &video_encoder_config_); 86 SetupVoiceEngineTransports(send_transport_.get(), receive_transport_.get());
56 CreateStreams(); 87
57 test->OnVideoStreamsCreated(video_send_stream_, video_receive_streams_); 88 if (num_video_streams_ > 0) {
89 test->ModifyVideoConfigs(&video_send_config_, &video_receive_configs_,
90 &video_encoder_config_);
91 }
92 if (num_audio_streams_ > 0)
93 test->ModifyAudioConfigs(&audio_send_config_, &audio_receive_configs_);
94
95 if (num_video_streams_ > 0) {
96 CreateVideoStreams();
97 test->OnVideoStreamsCreated(video_send_stream_, video_receive_streams_);
98 }
99 if (num_audio_streams_ > 0) {
100 CreateAudioStreams();
101 test->OnAudioStreamsCreated(audio_send_stream_, audio_receive_streams_);
102 }
58 103
59 CreateFrameGeneratorCapturer(); 104 CreateFrameGeneratorCapturer();
60 test->OnFrameGeneratorCapturerCreated(frame_generator_capturer_.get()); 105 test->OnFrameGeneratorCapturerCreated(frame_generator_capturer_.get());
61 106
62 Start(); 107 Start();
63 test->PerformTest(); 108 test->PerformTest();
64 send_transport_->StopSending(); 109 send_transport_->StopSending();
65 receive_transport_->StopSending(); 110 receive_transport_->StopSending();
66 Stop(); 111 Stop();
67 112
68 DestroyStreams(); 113 DestroyStreams();
114 DestroyCalls();
115 if (num_audio_streams_ > 0)
116 DestroyVoiceEngines();
69 } 117 }
70 118
71 void CallTest::Start() { 119 void CallTest::Start() {
72 video_send_stream_->Start(); 120 if (video_send_stream_)
73 for (size_t i = 0; i < video_receive_streams_.size(); ++i) 121 video_send_stream_->Start();
74 video_receive_streams_[i]->Start(); 122 for (VideoReceiveStream* video_recv_stream : video_receive_streams_)
123 video_recv_stream->Start();
124 if (audio_send_stream_) {
125 fake_send_audio_device_->Start();
126 audio_send_stream_->Start();
127 EXPECT_EQ(0, voe_send_.base->StartSend(voe_send_.channel_id));
128 }
129 for (AudioReceiveStream* audio_recv_stream : audio_receive_streams_)
130 audio_recv_stream->Start();
131 if (!audio_receive_streams_.empty()) {
132 fake_recv_audio_device_->Start();
133 EXPECT_EQ(0, voe_recv_.base->StartPlayout(voe_recv_.channel_id));
134 EXPECT_EQ(0, voe_recv_.base->StartReceive(voe_recv_.channel_id));
135 }
75 if (frame_generator_capturer_.get() != NULL) 136 if (frame_generator_capturer_.get() != NULL)
76 frame_generator_capturer_->Start(); 137 frame_generator_capturer_->Start();
77 } 138 }
78 139
79 void CallTest::Stop() { 140 void CallTest::Stop() {
80 if (frame_generator_capturer_.get() != NULL) 141 if (frame_generator_capturer_.get() != NULL)
81 frame_generator_capturer_->Stop(); 142 frame_generator_capturer_->Stop();
82 for (size_t i = 0; i < video_receive_streams_.size(); ++i) 143 if (!audio_receive_streams_.empty()) {
83 video_receive_streams_[i]->Stop(); 144 fake_recv_audio_device_->Stop();
84 video_send_stream_->Stop(); 145 EXPECT_EQ(0, voe_recv_.base->StopReceive(voe_recv_.channel_id));
146 EXPECT_EQ(0, voe_recv_.base->StopPlayout(voe_recv_.channel_id));
147 }
148 for (AudioReceiveStream* audio_recv_stream : audio_receive_streams_)
149 audio_recv_stream->Stop();
150 if (audio_send_stream_) {
151 fake_send_audio_device_->Stop();
152 EXPECT_EQ(0, voe_send_.base->StopSend(voe_send_.channel_id));
153 audio_send_stream_->Stop();
154 }
155 for (VideoReceiveStream* video_recv_stream : video_receive_streams_)
156 video_recv_stream->Stop();
157 if (video_send_stream_)
158 video_send_stream_->Stop();
85 } 159 }
86 160
87 void CallTest::CreateCalls(const Call::Config& sender_config, 161 void CallTest::CreateCalls(const Call::Config& sender_config,
88 const Call::Config& receiver_config) { 162 const Call::Config& receiver_config) {
89 CreateSenderCall(sender_config); 163 CreateSenderCall(sender_config);
90 CreateReceiverCall(receiver_config); 164 CreateReceiverCall(receiver_config);
91 } 165 }
92 166
93 void CallTest::CreateSenderCall(const Call::Config& config) { 167 void CallTest::CreateSenderCall(const Call::Config& config) {
94 sender_call_.reset(Call::Create(config)); 168 sender_call_.reset(Call::Create(config));
95 } 169 }
96 170
97 void CallTest::CreateReceiverCall(const Call::Config& config) { 171 void CallTest::CreateReceiverCall(const Call::Config& config) {
98 receiver_call_.reset(Call::Create(config)); 172 receiver_call_.reset(Call::Create(config));
99 } 173 }
100 174
101 void CallTest::DestroyCalls() { 175 void CallTest::DestroyCalls() {
102 sender_call_.reset(nullptr); 176 sender_call_.reset();
103 receiver_call_.reset(nullptr); 177 receiver_call_.reset();
104 } 178 }
105 179
106 void CallTest::CreateSendConfig(size_t num_streams, 180 void CallTest::CreateSendConfig(size_t num_video_streams,
181 size_t num_audio_streams,
107 Transport* send_transport) { 182 Transport* send_transport) {
108 assert(num_streams <= kNumSsrcs); 183 RTC_DCHECK(num_video_streams <= kNumSsrcs);
184 RTC_DCHECK_LE(num_audio_streams, 1u);
185 RTC_DCHECK(num_audio_streams == 0 || voe_send_.channel_id >= 0);
109 video_send_config_ = VideoSendStream::Config(send_transport); 186 video_send_config_ = VideoSendStream::Config(send_transport);
110 video_send_config_.encoder_settings.encoder = &fake_encoder_; 187 video_send_config_.encoder_settings.encoder = &fake_encoder_;
111 video_send_config_.encoder_settings.payload_name = "FAKE"; 188 video_send_config_.encoder_settings.payload_name = "FAKE";
112 video_send_config_.encoder_settings.payload_type = kFakeSendPayloadType; 189 video_send_config_.encoder_settings.payload_type = kFakeVideoSendPayloadType;
113 video_send_config_.rtp.extensions.push_back( 190 video_send_config_.rtp.extensions.push_back(
114 RtpExtension(RtpExtension::kAbsSendTime, kAbsSendTimeExtensionId)); 191 RtpExtension(RtpExtension::kAbsSendTime, kAbsSendTimeExtensionId));
115 video_encoder_config_.streams = test::CreateVideoStreams(num_streams); 192 video_encoder_config_.streams = test::CreateVideoStreams(num_video_streams);
116 for (size_t i = 0; i < num_streams; ++i) 193 for (size_t i = 0; i < num_video_streams; ++i)
117 video_send_config_.rtp.ssrcs.push_back(kSendSsrcs[i]); 194 video_send_config_.rtp.ssrcs.push_back(kVideoSendSsrcs[i]);
118 video_send_config_.rtp.extensions.push_back( 195 video_send_config_.rtp.extensions.push_back(
119 RtpExtension(RtpExtension::kVideoRotation, kVideoRotationRtpExtensionId)); 196 RtpExtension(RtpExtension::kVideoRotation, kVideoRotationRtpExtensionId));
197
198 if (num_audio_streams > 0) {
199 audio_send_config_ = AudioSendStream::Config(send_transport);
200 audio_send_config_.voe_channel_id = voe_send_.channel_id;
201 audio_send_config_.rtp.ssrc = kAudioSendSsrc;
202 }
120 } 203 }
121 204
122 void CallTest::CreateMatchingReceiveConfigs( 205 void CallTest::CreateMatchingReceiveConfigs(Transport* rtcp_send_transport) {
123 Transport* rtcp_send_transport) { 206 RTC_DCHECK(!video_send_config_.rtp.ssrcs.empty());
124 assert(!video_send_config_.rtp.ssrcs.empty()); 207 RTC_DCHECK(video_receive_configs_.empty());
125 assert(video_receive_configs_.empty()); 208 RTC_DCHECK(allocated_decoders_.empty());
126 assert(allocated_decoders_.empty()); 209 RTC_DCHECK(num_audio_streams_ == 0 || voe_send_.channel_id >= 0);
127 VideoReceiveStream::Config config(rtcp_send_transport); 210 VideoReceiveStream::Config video_config(rtcp_send_transport);
128 config.rtp.remb = true; 211 video_config.rtp.remb = true;
129 config.rtp.local_ssrc = kReceiverLocalSsrc; 212 video_config.rtp.local_ssrc = kReceiverLocalVideoSsrc;
130 for (const RtpExtension& extension : video_send_config_.rtp.extensions) 213 for (const RtpExtension& extension : video_send_config_.rtp.extensions)
131 config.rtp.extensions.push_back(extension); 214 video_config.rtp.extensions.push_back(extension);
132 for (size_t i = 0; i < video_send_config_.rtp.ssrcs.size(); ++i) { 215 for (size_t i = 0; i < video_send_config_.rtp.ssrcs.size(); ++i) {
133 VideoReceiveStream::Decoder decoder = 216 VideoReceiveStream::Decoder decoder =
134 test::CreateMatchingDecoder(video_send_config_.encoder_settings); 217 test::CreateMatchingDecoder(video_send_config_.encoder_settings);
135 allocated_decoders_.push_back(decoder.decoder); 218 allocated_decoders_.push_back(decoder.decoder);
136 config.decoders.clear(); 219 video_config.decoders.clear();
137 config.decoders.push_back(decoder); 220 video_config.decoders.push_back(decoder);
138 config.rtp.remote_ssrc = video_send_config_.rtp.ssrcs[i]; 221 video_config.rtp.remote_ssrc = video_send_config_.rtp.ssrcs[i];
139 video_receive_configs_.push_back(config); 222 video_receive_configs_.push_back(video_config);
223 }
224
225 RTC_DCHECK(num_audio_streams_ <= 1);
226 if (num_audio_streams_ == 1) {
227 AudioReceiveStream::Config audio_config;
228 audio_config.rtp.local_ssrc = kReceiverLocalAudioSsrc;
229 audio_config.rtcp_send_transport = rtcp_send_transport;
230 audio_config.voe_channel_id = voe_recv_.channel_id;
231 audio_config.rtp.remote_ssrc = audio_send_config_.rtp.ssrc;
232 audio_receive_configs_.push_back(audio_config);
140 } 233 }
141 } 234 }
142 235
143 void CallTest::CreateFrameGeneratorCapturer() { 236 void CallTest::CreateFrameGeneratorCapturer() {
144 VideoStream stream = video_encoder_config_.streams.back(); 237 VideoStream stream = video_encoder_config_.streams.back();
145 frame_generator_capturer_.reset(test::FrameGeneratorCapturer::Create( 238 frame_generator_capturer_.reset(test::FrameGeneratorCapturer::Create(
146 video_send_stream_->Input(), stream.width, stream.height, 239 video_send_stream_->Input(), stream.width, stream.height,
147 stream.max_framerate, clock_)); 240 stream.max_framerate, clock_));
148 } 241 }
149 242
150 void CallTest::CreateStreams() { 243 void CallTest::CreateFakeAudioDevices() {
151 assert(video_send_stream_ == NULL); 244 fake_send_audio_device_.reset(new FakeAudioDevice(
152 assert(video_receive_streams_.empty()); 245 clock_, test::ResourcePath("voice_engine/audio_long16", "pcm")));
246 fake_recv_audio_device_.reset(new FakeAudioDevice(
247 clock_, test::ResourcePath("voice_engine/audio_long16", "pcm")));
248 }
249
250 void CallTest::CreateVideoStreams() {
251 RTC_DCHECK(video_send_stream_ == nullptr);
252 RTC_DCHECK(video_receive_streams_.empty());
253 RTC_DCHECK(audio_send_stream_ == nullptr);
254 RTC_DCHECK(audio_receive_streams_.empty());
153 255
154 video_send_stream_ = sender_call_->CreateVideoSendStream( 256 video_send_stream_ = sender_call_->CreateVideoSendStream(
155 video_send_config_, video_encoder_config_); 257 video_send_config_, video_encoder_config_);
156
157 for (size_t i = 0; i < video_receive_configs_.size(); ++i) { 258 for (size_t i = 0; i < video_receive_configs_.size(); ++i) {
158 video_receive_streams_.push_back( 259 video_receive_streams_.push_back(
159 receiver_call_->CreateVideoReceiveStream(video_receive_configs_[i])); 260 receiver_call_->CreateVideoReceiveStream(video_receive_configs_[i]));
160 } 261 }
161 } 262 }
162 263
264 void CallTest::CreateAudioStreams() {
265 audio_send_stream_ = sender_call_->CreateAudioSendStream(audio_send_config_);
266 for (size_t i = 0; i < audio_receive_configs_.size(); ++i) {
267 audio_receive_streams_.push_back(
268 receiver_call_->CreateAudioReceiveStream(audio_receive_configs_[i]));
269 }
270 CodecInst isac = {kAudioSendPayloadType, "ISAC", 16000, 480, 1, 32000};
271 EXPECT_EQ(0, voe_send_.codec->SetSendCodec(voe_send_.channel_id, isac));
272 }
273
163 void CallTest::DestroyStreams() { 274 void CallTest::DestroyStreams() {
164 if (video_send_stream_ != NULL) 275 if (video_send_stream_)
165 sender_call_->DestroyVideoSendStream(video_send_stream_); 276 sender_call_->DestroyVideoSendStream(video_send_stream_);
166 video_send_stream_ = NULL; 277 video_send_stream_ = nullptr;
167 for (size_t i = 0; i < video_receive_streams_.size(); ++i) 278 for (VideoReceiveStream* video_recv_stream : video_receive_streams_)
168 receiver_call_->DestroyVideoReceiveStream(video_receive_streams_[i]); 279 receiver_call_->DestroyVideoReceiveStream(video_recv_stream);
280
281 if (audio_send_stream_)
282 sender_call_->DestroyAudioSendStream(audio_send_stream_);
283 audio_send_stream_ = nullptr;
284 for (AudioReceiveStream* audio_recv_stream : audio_receive_streams_)
285 receiver_call_->DestroyAudioReceiveStream(audio_recv_stream);
169 video_receive_streams_.clear(); 286 video_receive_streams_.clear();
287
170 allocated_decoders_.clear(); 288 allocated_decoders_.clear();
171 } 289 }
172 290
291 void CallTest::CreateVoiceEngines() {
292 CreateFakeAudioDevices();
293 voe_send_.voice_engine = VoiceEngine::Create();
294 voe_send_.base = VoEBase::GetInterface(voe_send_.voice_engine);
295 voe_send_.network = VoENetwork::GetInterface(voe_send_.voice_engine);
296 voe_send_.codec = VoECodec::GetInterface(voe_send_.voice_engine);
297 EXPECT_EQ(0, voe_send_.base->Init(fake_send_audio_device_.get(), nullptr));
298 Config voe_config;
299 voe_config.Set<VoicePacing>(new VoicePacing(true));
300 voe_send_.channel_id = voe_send_.base->CreateChannel(voe_config);
301 EXPECT_GE(voe_send_.channel_id, 0);
302
303 voe_recv_.voice_engine = VoiceEngine::Create();
304 voe_recv_.base = VoEBase::GetInterface(voe_recv_.voice_engine);
305 voe_recv_.network = VoENetwork::GetInterface(voe_recv_.voice_engine);
306 voe_recv_.codec = VoECodec::GetInterface(voe_recv_.voice_engine);
307 EXPECT_EQ(0, voe_recv_.base->Init(fake_recv_audio_device_.get(), nullptr));
308 voe_recv_.channel_id = voe_recv_.base->CreateChannel();
309 EXPECT_GE(voe_recv_.channel_id, 0);
310 }
311
312 void CallTest::SetupVoiceEngineTransports(PacketTransport* send_transport,
313 PacketTransport* recv_transport) {
314 voe_send_.transport_adapter.reset(
315 new internal::TransportAdapter(send_transport));
316 voe_send_.transport_adapter->Enable();
317 EXPECT_EQ(0, voe_send_.network->RegisterExternalTransport(
318 voe_send_.channel_id, *voe_send_.transport_adapter.get()));
319
320 voe_recv_.transport_adapter.reset(
321 new internal::TransportAdapter(recv_transport));
322 voe_recv_.transport_adapter->Enable();
323 EXPECT_EQ(0, voe_recv_.network->RegisterExternalTransport(
324 voe_recv_.channel_id, *voe_recv_.transport_adapter.get()));
325 }
326
327 void CallTest::DestroyVoiceEngines() {
328 voe_recv_.base->DeleteChannel(voe_recv_.channel_id);
329 voe_recv_.channel_id = -1;
330 voe_recv_.base->Release();
331 voe_recv_.base = nullptr;
332 voe_recv_.network->Release();
333 voe_recv_.network = nullptr;
334 voe_recv_.codec->Release();
335 voe_recv_.codec = nullptr;
336
337 voe_send_.base->DeleteChannel(voe_send_.channel_id);
338 voe_send_.channel_id = -1;
339 voe_send_.base->Release();
340 voe_send_.base = nullptr;
341 voe_send_.network->Release();
342 voe_send_.network = nullptr;
343 voe_send_.codec->Release();
344 voe_send_.codec = nullptr;
345
346 VoiceEngine::Delete(voe_send_.voice_engine);
347 voe_send_.voice_engine = nullptr;
348 VoiceEngine::Delete(voe_recv_.voice_engine);
349 voe_recv_.voice_engine = nullptr;
350 }
351
173 const int CallTest::kDefaultTimeoutMs = 30 * 1000; 352 const int CallTest::kDefaultTimeoutMs = 30 * 1000;
174 const int CallTest::kLongTimeoutMs = 120 * 1000; 353 const int CallTest::kLongTimeoutMs = 120 * 1000;
175 const uint8_t CallTest::kSendPayloadType = 100; 354 const uint8_t CallTest::kVideoSendPayloadType = 100;
176 const uint8_t CallTest::kFakeSendPayloadType = 125; 355 const uint8_t CallTest::kFakeVideoSendPayloadType = 125;
177 const uint8_t CallTest::kSendRtxPayloadType = 98; 356 const uint8_t CallTest::kSendRtxPayloadType = 98;
178 const uint8_t CallTest::kRedPayloadType = 118; 357 const uint8_t CallTest::kRedPayloadType = 118;
179 const uint8_t CallTest::kRtxRedPayloadType = 99; 358 const uint8_t CallTest::kRtxRedPayloadType = 99;
180 const uint8_t CallTest::kUlpfecPayloadType = 119; 359 const uint8_t CallTest::kUlpfecPayloadType = 119;
360 const uint8_t CallTest::kAudioSendPayloadType = 103;
181 const uint32_t CallTest::kSendRtxSsrcs[kNumSsrcs] = {0xBADCAFD, 0xBADCAFE, 361 const uint32_t CallTest::kSendRtxSsrcs[kNumSsrcs] = {0xBADCAFD, 0xBADCAFE,
182 0xBADCAFF}; 362 0xBADCAFF};
183 const uint32_t CallTest::kSendSsrcs[kNumSsrcs] = {0xC0FFED, 0xC0FFEE, 0xC0FFEF}; 363 const uint32_t CallTest::kVideoSendSsrcs[kNumSsrcs] = {0xC0FFED, 0xC0FFEE,
184 const uint32_t CallTest::kReceiverLocalSsrc = 0x123456; 364 0xC0FFEF};
365 const uint32_t CallTest::kAudioSendSsrc = 0xDEADBEEF;
366 const uint32_t CallTest::kReceiverLocalVideoSsrc = 0x123456;
367 const uint32_t CallTest::kReceiverLocalAudioSsrc = 0x1234567;
185 const int CallTest::kNackRtpHistoryMs = 1000; 368 const int CallTest::kNackRtpHistoryMs = 1000;
186 369
187 BaseTest::BaseTest(unsigned int timeout_ms) : RtpRtcpObserver(timeout_ms) { 370 BaseTest::BaseTest(unsigned int timeout_ms) : RtpRtcpObserver(timeout_ms) {
188 } 371 }
189 372
190 BaseTest::~BaseTest() { 373 BaseTest::~BaseTest() {
191 } 374 }
192 375
193 Call::Config BaseTest::GetSenderCallConfig() { 376 Call::Config BaseTest::GetSenderCallConfig() {
194 return Call::Config(); 377 return Call::Config();
195 } 378 }
196 379
197 Call::Config BaseTest::GetReceiverCallConfig() { 380 Call::Config BaseTest::GetReceiverCallConfig() {
198 return Call::Config(); 381 return Call::Config();
199 } 382 }
200 383
201 void BaseTest::OnCallsCreated(Call* sender_call, Call* receiver_call) { 384 void BaseTest::OnCallsCreated(Call* sender_call, Call* receiver_call) {
202 } 385 }
203 386
204 void BaseTest::OnTransportsCreated(PacketTransport* send_transport, 387 void BaseTest::OnTransportsCreated(PacketTransport* send_transport,
205 PacketTransport* receive_transport) {} 388 PacketTransport* receive_transport) {}
206 389
207 size_t BaseTest::GetNumStreams() const { 390 size_t BaseTest::GetNumVideoStreams() const {
208 return 1; 391 return 1;
209 } 392 }
210 393
394 size_t BaseTest::GetNumAudioStreams() const {
395 return 0;
396 }
397
211 void BaseTest::ModifyVideoConfigs( 398 void BaseTest::ModifyVideoConfigs(
212 VideoSendStream::Config* send_config, 399 VideoSendStream::Config* send_config,
213 std::vector<VideoReceiveStream::Config>* receive_configs, 400 std::vector<VideoReceiveStream::Config>* receive_configs,
214 VideoEncoderConfig* encoder_config) {} 401 VideoEncoderConfig* encoder_config) {}
215 402
216 void BaseTest::OnVideoStreamsCreated( 403 void BaseTest::OnVideoStreamsCreated(
217 VideoSendStream* send_stream, 404 VideoSendStream* send_stream,
218 const std::vector<VideoReceiveStream*>& receive_streams) {} 405 const std::vector<VideoReceiveStream*>& receive_streams) {}
219 406
407 void BaseTest::ModifyAudioConfigs(
408 AudioSendStream::Config* send_config,
409 std::vector<AudioReceiveStream::Config>* receive_configs) {}
410
411 void BaseTest::OnAudioStreamsCreated(
412 AudioSendStream* send_stream,
413 const std::vector<AudioReceiveStream*>& receive_streams) {}
414
220 void BaseTest::OnFrameGeneratorCapturerCreated( 415 void BaseTest::OnFrameGeneratorCapturerCreated(
221 FrameGeneratorCapturer* frame_generator_capturer) { 416 FrameGeneratorCapturer* frame_generator_capturer) {
222 } 417 }
223 418
224 SendTest::SendTest(unsigned int timeout_ms) : BaseTest(timeout_ms) { 419 SendTest::SendTest(unsigned int timeout_ms) : BaseTest(timeout_ms) {
225 } 420 }
226 421
227 bool SendTest::ShouldCreateReceivers() const { 422 bool SendTest::ShouldCreateReceivers() const {
228 return false; 423 return false;
229 } 424 }
230 425
231 EndToEndTest::EndToEndTest(unsigned int timeout_ms) : BaseTest(timeout_ms) { 426 EndToEndTest::EndToEndTest(unsigned int timeout_ms) : BaseTest(timeout_ms) {
232 } 427 }
233 428
234 bool EndToEndTest::ShouldCreateReceivers() const { 429 bool EndToEndTest::ShouldCreateReceivers() const {
235 return true; 430 return true;
236 } 431 }
237 432
238 } // namespace test 433 } // namespace test
239 } // namespace webrtc 434 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/test/call_test.h ('k') | webrtc/video/end_to_end_tests.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698