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

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

Issue 1589523002: Add tests for verifying transport feedback for audio and video. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: 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 | « no previous file | 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" 10 #include "webrtc/base/checks.h"
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 CreateSenderCall(send_config); 53 CreateSenderCall(send_config);
54 if (test->ShouldCreateReceivers()) { 54 if (test->ShouldCreateReceivers()) {
55 Call::Config recv_config(test->GetReceiverCallConfig()); 55 Call::Config recv_config(test->GetReceiverCallConfig());
56 if (num_audio_streams_ > 0) { 56 if (num_audio_streams_ > 0) {
57 AudioState::Config audio_state_config; 57 AudioState::Config audio_state_config;
58 audio_state_config.voice_engine = voe_recv_.voice_engine; 58 audio_state_config.voice_engine = voe_recv_.voice_engine;
59 recv_config.audio_state = AudioState::Create(audio_state_config); 59 recv_config.audio_state = AudioState::Create(audio_state_config);
60 } 60 }
61 CreateReceiverCall(recv_config); 61 CreateReceiverCall(recv_config);
62 } 62 }
63 test->OnCallsCreated(sender_call_.get(), receiver_call_.get());
mflodman 2016/01/14 08:53:16 Any particular reason for moving this?
stefan-webrtc 2016/01/14 08:59:16 There was a reason. The previous version of the te
63 send_transport_.reset(test->CreateSendTransport(sender_call_.get())); 64 send_transport_.reset(test->CreateSendTransport(sender_call_.get()));
64 receive_transport_.reset(test->CreateReceiveTransport()); 65 receive_transport_.reset(test->CreateReceiveTransport());
65 test->OnCallsCreated(sender_call_.get(), receiver_call_.get());
66 66
67 if (test->ShouldCreateReceivers()) { 67 if (test->ShouldCreateReceivers()) {
68 send_transport_->SetReceiver(receiver_call_->Receiver()); 68 send_transport_->SetReceiver(receiver_call_->Receiver());
69 receive_transport_->SetReceiver(sender_call_->Receiver()); 69 receive_transport_->SetReceiver(sender_call_->Receiver());
70 } else { 70 } else {
71 // Sender-only call delivers to itself. 71 // Sender-only call delivers to itself.
72 send_transport_->SetReceiver(sender_call_->Receiver()); 72 send_transport_->SetReceiver(sender_call_->Receiver());
73 receive_transport_->SetReceiver(nullptr); 73 receive_transport_->SetReceiver(nullptr);
74 } 74 }
75 75
(...skipping 14 matching lines...) Expand all
90 90
91 if (num_video_streams_ > 0) { 91 if (num_video_streams_ > 0) {
92 CreateVideoStreams(); 92 CreateVideoStreams();
93 test->OnVideoStreamsCreated(video_send_stream_, video_receive_streams_); 93 test->OnVideoStreamsCreated(video_send_stream_, video_receive_streams_);
94 } 94 }
95 if (num_audio_streams_ > 0) { 95 if (num_audio_streams_ > 0) {
96 CreateAudioStreams(); 96 CreateAudioStreams();
97 test->OnAudioStreamsCreated(audio_send_stream_, audio_receive_streams_); 97 test->OnAudioStreamsCreated(audio_send_stream_, audio_receive_streams_);
98 } 98 }
99 99
100 CreateFrameGeneratorCapturer(); 100 if (num_video_streams_ > 0) {
101 test->OnFrameGeneratorCapturerCreated(frame_generator_capturer_.get()); 101 CreateFrameGeneratorCapturer();
102 test->OnFrameGeneratorCapturerCreated(frame_generator_capturer_.get());
103 }
102 104
103 Start(); 105 Start();
104 test->PerformTest(); 106 test->PerformTest();
105 send_transport_->StopSending(); 107 send_transport_->StopSending();
106 receive_transport_->StopSending(); 108 receive_transport_->StopSending();
107 Stop(); 109 Stop();
108 110
109 DestroyStreams(); 111 DestroyStreams();
110 DestroyCalls(); 112 DestroyCalls();
111 if (num_audio_streams_ > 0) 113 if (num_audio_streams_ > 0)
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 sender_call_.reset(); 174 sender_call_.reset();
173 receiver_call_.reset(); 175 receiver_call_.reset();
174 } 176 }
175 177
176 void CallTest::CreateSendConfig(size_t num_video_streams, 178 void CallTest::CreateSendConfig(size_t num_video_streams,
177 size_t num_audio_streams, 179 size_t num_audio_streams,
178 Transport* send_transport) { 180 Transport* send_transport) {
179 RTC_DCHECK(num_video_streams <= kNumSsrcs); 181 RTC_DCHECK(num_video_streams <= kNumSsrcs);
180 RTC_DCHECK_LE(num_audio_streams, 1u); 182 RTC_DCHECK_LE(num_audio_streams, 1u);
181 RTC_DCHECK(num_audio_streams == 0 || voe_send_.channel_id >= 0); 183 RTC_DCHECK(num_audio_streams == 0 || voe_send_.channel_id >= 0);
182 video_send_config_ = VideoSendStream::Config(send_transport); 184 if (num_video_streams > 0) {
183 video_send_config_.encoder_settings.encoder = &fake_encoder_; 185 video_send_config_ = VideoSendStream::Config(send_transport);
184 video_send_config_.encoder_settings.payload_name = "FAKE"; 186 video_send_config_.encoder_settings.encoder = &fake_encoder_;
185 video_send_config_.encoder_settings.payload_type = kFakeVideoSendPayloadType; 187 video_send_config_.encoder_settings.payload_name = "FAKE";
186 video_send_config_.rtp.extensions.push_back( 188 video_send_config_.encoder_settings.payload_type =
187 RtpExtension(RtpExtension::kAbsSendTime, kAbsSendTimeExtensionId)); 189 kFakeVideoSendPayloadType;
188 video_encoder_config_.streams = test::CreateVideoStreams(num_video_streams); 190 video_send_config_.rtp.extensions.push_back(
189 for (size_t i = 0; i < num_video_streams; ++i) 191 RtpExtension(RtpExtension::kAbsSendTime, kAbsSendTimeExtensionId));
190 video_send_config_.rtp.ssrcs.push_back(kVideoSendSsrcs[i]); 192 video_encoder_config_.streams = test::CreateVideoStreams(num_video_streams);
191 video_send_config_.rtp.extensions.push_back( 193 for (size_t i = 0; i < num_video_streams; ++i)
192 RtpExtension(RtpExtension::kVideoRotation, kVideoRotationRtpExtensionId)); 194 video_send_config_.rtp.ssrcs.push_back(kVideoSendSsrcs[i]);
195 video_send_config_.rtp.extensions.push_back(RtpExtension(
196 RtpExtension::kVideoRotation, kVideoRotationRtpExtensionId));
197 }
193 198
194 if (num_audio_streams > 0) { 199 if (num_audio_streams > 0) {
195 audio_send_config_ = AudioSendStream::Config(send_transport); 200 audio_send_config_ = AudioSendStream::Config(send_transport);
196 audio_send_config_.voe_channel_id = voe_send_.channel_id; 201 audio_send_config_.voe_channel_id = voe_send_.channel_id;
197 audio_send_config_.rtp.ssrc = kAudioSendSsrc; 202 audio_send_config_.rtp.ssrc = kAudioSendSsrc;
198 } 203 }
199 } 204 }
200 205
201 void CallTest::CreateMatchingReceiveConfigs(Transport* rtcp_send_transport) { 206 void CallTest::CreateMatchingReceiveConfigs(Transport* rtcp_send_transport) {
202 RTC_DCHECK(!video_send_config_.rtp.ssrcs.empty());
203 RTC_DCHECK(video_receive_configs_.empty()); 207 RTC_DCHECK(video_receive_configs_.empty());
204 RTC_DCHECK(allocated_decoders_.empty()); 208 RTC_DCHECK(allocated_decoders_.empty());
205 RTC_DCHECK(num_audio_streams_ == 0 || voe_send_.channel_id >= 0); 209 if (num_video_streams_ > 0) {
206 VideoReceiveStream::Config video_config(rtcp_send_transport); 210 RTC_DCHECK(!video_send_config_.rtp.ssrcs.empty());
207 video_config.rtp.remb = true; 211 VideoReceiveStream::Config video_config(rtcp_send_transport);
208 video_config.rtp.local_ssrc = kReceiverLocalVideoSsrc; 212 video_config.rtp.remb = true;
209 for (const RtpExtension& extension : video_send_config_.rtp.extensions) 213 video_config.rtp.local_ssrc = kReceiverLocalVideoSsrc;
210 video_config.rtp.extensions.push_back(extension); 214 for (const RtpExtension& extension : video_send_config_.rtp.extensions)
211 for (size_t i = 0; i < video_send_config_.rtp.ssrcs.size(); ++i) { 215 video_config.rtp.extensions.push_back(extension);
212 VideoReceiveStream::Decoder decoder = 216 for (size_t i = 0; i < video_send_config_.rtp.ssrcs.size(); ++i) {
213 test::CreateMatchingDecoder(video_send_config_.encoder_settings); 217 VideoReceiveStream::Decoder decoder =
214 allocated_decoders_.push_back(decoder.decoder); 218 test::CreateMatchingDecoder(video_send_config_.encoder_settings);
215 video_config.decoders.clear(); 219 allocated_decoders_.push_back(decoder.decoder);
216 video_config.decoders.push_back(decoder); 220 video_config.decoders.clear();
217 video_config.rtp.remote_ssrc = video_send_config_.rtp.ssrcs[i]; 221 video_config.decoders.push_back(decoder);
218 video_receive_configs_.push_back(video_config); 222 video_config.rtp.remote_ssrc = video_send_config_.rtp.ssrcs[i];
223 video_receive_configs_.push_back(video_config);
224 }
219 } 225 }
220 226
221 RTC_DCHECK(num_audio_streams_ <= 1); 227 RTC_DCHECK(num_audio_streams_ <= 1);
222 if (num_audio_streams_ == 1) { 228 if (num_audio_streams_ == 1) {
229 RTC_DCHECK(voe_send_.channel_id >= 0);
223 AudioReceiveStream::Config audio_config; 230 AudioReceiveStream::Config audio_config;
224 audio_config.rtp.local_ssrc = kReceiverLocalAudioSsrc; 231 audio_config.rtp.local_ssrc = kReceiverLocalAudioSsrc;
225 audio_config.rtcp_send_transport = rtcp_send_transport; 232 audio_config.rtcp_send_transport = rtcp_send_transport;
226 audio_config.voe_channel_id = voe_recv_.channel_id; 233 audio_config.voe_channel_id = voe_recv_.channel_id;
227 audio_config.rtp.remote_ssrc = audio_send_config_.rtp.ssrc; 234 audio_config.rtp.remote_ssrc = audio_send_config_.rtp.ssrc;
228 audio_receive_configs_.push_back(audio_config); 235 audio_receive_configs_.push_back(audio_config);
229 } 236 }
230 } 237 }
231 238
232 void CallTest::CreateFrameGeneratorCapturer() { 239 void CallTest::CreateFrameGeneratorCapturer() {
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
428 435
429 EndToEndTest::EndToEndTest(unsigned int timeout_ms) : BaseTest(timeout_ms) { 436 EndToEndTest::EndToEndTest(unsigned int timeout_ms) : BaseTest(timeout_ms) {
430 } 437 }
431 438
432 bool EndToEndTest::ShouldCreateReceivers() const { 439 bool EndToEndTest::ShouldCreateReceivers() const {
433 return true; 440 return true;
434 } 441 }
435 442
436 } // namespace test 443 } // namespace test
437 } // namespace webrtc 444 } // namespace webrtc
OLDNEW
« no previous file with comments | « no previous file | webrtc/video/end_to_end_tests.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698