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

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

Powered by Google App Engine
This is Rietveld 408576698