Add tests for verifying transport feedback for audio and video.
BUG=webrtc:5263
R=mflodman@webrtc.org
Review URL: https://codereview.webrtc.org/1589523002 .
Cr-Commit-Position: refs/heads/master@{#11255}
diff --git a/webrtc/test/call_test.cc b/webrtc/test/call_test.cc
index 850e487..e9651e3 100644
--- a/webrtc/test/call_test.cc
+++ b/webrtc/test/call_test.cc
@@ -31,7 +31,7 @@
audio_send_config_(nullptr),
audio_send_stream_(nullptr),
fake_encoder_(clock_),
- num_video_streams_(0),
+ num_video_streams_(1),
num_audio_streams_(0),
fake_send_audio_device_(nullptr),
fake_recv_audio_device_(nullptr) {}
@@ -60,9 +60,9 @@
}
CreateReceiverCall(recv_config);
}
+ test->OnCallsCreated(sender_call_.get(), receiver_call_.get());
send_transport_.reset(test->CreateSendTransport(sender_call_.get()));
receive_transport_.reset(test->CreateReceiveTransport());
- test->OnCallsCreated(sender_call_.get(), receiver_call_.get());
if (test->ShouldCreateReceivers()) {
send_transport_->SetReceiver(receiver_call_->Receiver());
@@ -97,8 +97,10 @@
test->OnAudioStreamsCreated(audio_send_stream_, audio_receive_streams_);
}
- CreateFrameGeneratorCapturer();
- test->OnFrameGeneratorCapturerCreated(frame_generator_capturer_.get());
+ if (num_video_streams_ > 0) {
+ CreateFrameGeneratorCapturer();
+ test->OnFrameGeneratorCapturerCreated(frame_generator_capturer_.get());
+ }
Start();
test->PerformTest();
@@ -179,17 +181,20 @@
RTC_DCHECK(num_video_streams <= kNumSsrcs);
RTC_DCHECK_LE(num_audio_streams, 1u);
RTC_DCHECK(num_audio_streams == 0 || voe_send_.channel_id >= 0);
- video_send_config_ = VideoSendStream::Config(send_transport);
- video_send_config_.encoder_settings.encoder = &fake_encoder_;
- video_send_config_.encoder_settings.payload_name = "FAKE";
- video_send_config_.encoder_settings.payload_type = kFakeVideoSendPayloadType;
- video_send_config_.rtp.extensions.push_back(
- RtpExtension(RtpExtension::kAbsSendTime, kAbsSendTimeExtensionId));
- video_encoder_config_.streams = test::CreateVideoStreams(num_video_streams);
- for (size_t i = 0; i < num_video_streams; ++i)
- video_send_config_.rtp.ssrcs.push_back(kVideoSendSsrcs[i]);
- video_send_config_.rtp.extensions.push_back(
- RtpExtension(RtpExtension::kVideoRotation, kVideoRotationRtpExtensionId));
+ if (num_video_streams > 0) {
+ video_send_config_ = VideoSendStream::Config(send_transport);
+ video_send_config_.encoder_settings.encoder = &fake_encoder_;
+ video_send_config_.encoder_settings.payload_name = "FAKE";
+ video_send_config_.encoder_settings.payload_type =
+ kFakeVideoSendPayloadType;
+ video_send_config_.rtp.extensions.push_back(
+ RtpExtension(RtpExtension::kAbsSendTime, kAbsSendTimeExtensionId));
+ video_encoder_config_.streams = test::CreateVideoStreams(num_video_streams);
+ for (size_t i = 0; i < num_video_streams; ++i)
+ video_send_config_.rtp.ssrcs.push_back(kVideoSendSsrcs[i]);
+ video_send_config_.rtp.extensions.push_back(RtpExtension(
+ RtpExtension::kVideoRotation, kVideoRotationRtpExtensionId));
+ }
if (num_audio_streams > 0) {
audio_send_config_ = AudioSendStream::Config(send_transport);
@@ -199,27 +204,29 @@
}
void CallTest::CreateMatchingReceiveConfigs(Transport* rtcp_send_transport) {
- RTC_DCHECK(!video_send_config_.rtp.ssrcs.empty());
RTC_DCHECK(video_receive_configs_.empty());
RTC_DCHECK(allocated_decoders_.empty());
- RTC_DCHECK(num_audio_streams_ == 0 || voe_send_.channel_id >= 0);
- VideoReceiveStream::Config video_config(rtcp_send_transport);
- video_config.rtp.remb = true;
- video_config.rtp.local_ssrc = kReceiverLocalVideoSsrc;
- for (const RtpExtension& extension : video_send_config_.rtp.extensions)
- video_config.rtp.extensions.push_back(extension);
- for (size_t i = 0; i < video_send_config_.rtp.ssrcs.size(); ++i) {
- VideoReceiveStream::Decoder decoder =
- test::CreateMatchingDecoder(video_send_config_.encoder_settings);
- allocated_decoders_.push_back(decoder.decoder);
- video_config.decoders.clear();
- video_config.decoders.push_back(decoder);
- video_config.rtp.remote_ssrc = video_send_config_.rtp.ssrcs[i];
- video_receive_configs_.push_back(video_config);
+ if (num_video_streams_ > 0) {
+ RTC_DCHECK(!video_send_config_.rtp.ssrcs.empty());
+ VideoReceiveStream::Config video_config(rtcp_send_transport);
+ video_config.rtp.remb = true;
+ video_config.rtp.local_ssrc = kReceiverLocalVideoSsrc;
+ for (const RtpExtension& extension : video_send_config_.rtp.extensions)
+ video_config.rtp.extensions.push_back(extension);
+ for (size_t i = 0; i < video_send_config_.rtp.ssrcs.size(); ++i) {
+ VideoReceiveStream::Decoder decoder =
+ test::CreateMatchingDecoder(video_send_config_.encoder_settings);
+ allocated_decoders_.push_back(decoder.decoder);
+ video_config.decoders.clear();
+ video_config.decoders.push_back(decoder);
+ video_config.rtp.remote_ssrc = video_send_config_.rtp.ssrcs[i];
+ video_receive_configs_.push_back(video_config);
+ }
}
RTC_DCHECK(num_audio_streams_ <= 1);
if (num_audio_streams_ == 1) {
+ RTC_DCHECK(voe_send_.channel_id >= 0);
AudioReceiveStream::Config audio_config;
audio_config.rtp.local_ssrc = kReceiverLocalAudioSsrc;
audio_config.rtcp_send_transport = rtcp_send_transport;