Index: webrtc/video/end_to_end_tests.cc |
diff --git a/webrtc/video/end_to_end_tests.cc b/webrtc/video/end_to_end_tests.cc |
index e482246dd35fe7e67f5f92570411ff88aa4ed3ed..f31a68e17ac52174f592cc04bf6ff8d6a55985f1 100644 |
--- a/webrtc/video/end_to_end_tests.cc |
+++ b/webrtc/video/end_to_end_tests.cc |
@@ -66,7 +66,9 @@ |
namespace webrtc { |
-static const int kSilenceTimeoutMs = 2000; |
+namespace { |
+constexpr int kSilenceTimeoutMs = 2000; |
+} |
class EndToEndTest : public test::CallTest { |
public: |
@@ -210,10 +212,9 @@ TEST_F(EndToEndTest, RendersSingleDelayedFrame) { |
CreateCalls(Call::Config(event_log_.get()), Call::Config(event_log_.get())); |
- test::DirectTransport sender_transport( |
- sender_call_.get(), MediaType::VIDEO); |
- test::DirectTransport receiver_transport( |
- receiver_call_.get(), MediaType::VIDEO); |
+ test::DirectTransport sender_transport(sender_call_.get(), payload_type_map_); |
+ test::DirectTransport receiver_transport(receiver_call_.get(), |
+ payload_type_map_); |
sender_transport.SetReceiver(receiver_call_->Receiver()); |
receiver_transport.SetReceiver(sender_call_->Receiver()); |
@@ -260,10 +261,9 @@ TEST_F(EndToEndTest, TransmitsFirstFrame) { |
CreateCalls(Call::Config(event_log_.get()), Call::Config(event_log_.get())); |
- test::DirectTransport sender_transport( |
- sender_call_.get(), MediaType::VIDEO); |
- test::DirectTransport receiver_transport( |
- receiver_call_.get(), MediaType::VIDEO); |
+ test::DirectTransport sender_transport(sender_call_.get(), payload_type_map_); |
+ test::DirectTransport receiver_transport(receiver_call_.get(), |
+ payload_type_map_); |
sender_transport.SetReceiver(receiver_call_->Receiver()); |
receiver_transport.SetReceiver(sender_call_->Receiver()); |
@@ -323,7 +323,8 @@ class CodecObserver : public test::EndToEndTest, |
VideoEncoderConfig* encoder_config) override { |
send_config->encoder_settings.encoder = encoder_.get(); |
send_config->encoder_settings.payload_name = payload_name_; |
- send_config->encoder_settings.payload_type = 126; |
+ send_config->encoder_settings.payload_type = |
+ test::CallTest::kVideoSendPayloadType; |
(*receive_configs)[0].renderer = this; |
(*receive_configs)[0].decoders.resize(1); |
@@ -534,8 +535,7 @@ TEST_F(EndToEndTest, ReceivesNackAndRetransmitsAudio) { |
test::PacketTransport* CreateReceiveTransport() override { |
test::PacketTransport* receive_transport = new test::PacketTransport( |
- nullptr, this, test::PacketTransport::kReceiver, |
- MediaType::AUDIO, |
+ nullptr, this, test::PacketTransport::kReceiver, payload_type_map_, |
FakeNetworkPipe::Config()); |
receive_transport_ = receive_transport; |
return receive_transport; |
@@ -798,7 +798,7 @@ class FlexfecRenderObserver : public test::EndToEndTest, |
config.queue_delay_ms = kNetworkDelayMs; |
return new test::PacketTransport(sender_call, this, |
test::PacketTransport::kSender, |
- MediaType::VIDEO, config); |
+ test::CallTest::payload_type_map_, config); |
} |
void OnFrame(const VideoFrame& video_frame) override { |
@@ -978,7 +978,7 @@ TEST_F(EndToEndTest, ReceivedUlpfecPacketsNotNacked) { |
config.queue_delay_ms = kNetworkDelayMs; |
return new test::PacketTransport(sender_call, this, |
test::PacketTransport::kSender, |
- MediaType::VIDEO, config); |
+ payload_type_map_, config); |
} |
// TODO(holmer): Investigate why we don't send FEC packets when the bitrate |
@@ -1320,10 +1320,9 @@ TEST_F(EndToEndTest, UnknownRtpPacketGivesUnknownSsrcReturnCode) { |
CreateCalls(Call::Config(event_log_.get()), Call::Config(event_log_.get())); |
- test::DirectTransport send_transport( |
- sender_call_.get(), MediaType::VIDEO); |
- test::DirectTransport receive_transport( |
- receiver_call_.get(), MediaType::VIDEO); |
+ test::DirectTransport send_transport(sender_call_.get(), payload_type_map_); |
+ test::DirectTransport receive_transport(receiver_call_.get(), |
+ payload_type_map_); |
PacketInputObserver input_observer(receiver_call_->Receiver()); |
send_transport.SetReceiver(&input_observer); |
receive_transport.SetReceiver(sender_call_->Receiver()); |
@@ -1443,7 +1442,11 @@ TEST_F(EndToEndTest, UsesRtcpReducedSizeMode) { |
// Another is set up to receive all three of these with different renderers. |
class MultiStreamTest { |
public: |
- static const size_t kNumStreams = 3; |
+ static constexpr size_t kNumStreams = 3; |
+ const uint8_t kVideoPayloadType = 124; |
+ const std::map<uint8_t, MediaType> payload_type_map_ = { |
+ {kVideoPayloadType, MediaType::VIDEO}}; |
+ |
struct CodecSettings { |
uint32_t ssrc; |
int width; |
@@ -1489,7 +1492,7 @@ class MultiStreamTest { |
send_config.rtp.ssrcs.push_back(ssrc); |
send_config.encoder_settings.encoder = encoders[i].get(); |
send_config.encoder_settings.payload_name = "VP8"; |
- send_config.encoder_settings.payload_type = 124; |
+ send_config.encoder_settings.payload_type = kVideoPayloadType; |
VideoEncoderConfig encoder_config; |
test::FillEncoderConfiguration(1, &encoder_config); |
encoder_config.max_bitrate_bps = 100000; |
@@ -1550,10 +1553,10 @@ class MultiStreamTest { |
VideoReceiveStream::Config* receive_config) { |
} |
virtual test::DirectTransport* CreateSendTransport(Call* sender_call) { |
- return new test::DirectTransport(sender_call, MediaType::VIDEO); |
+ return new test::DirectTransport(sender_call, payload_type_map_); |
} |
virtual test::DirectTransport* CreateReceiveTransport(Call* receiver_call) { |
- return new test::DirectTransport(receiver_call, MediaType::VIDEO); |
+ return new test::DirectTransport(receiver_call, payload_type_map_); |
} |
}; |
@@ -1629,10 +1632,12 @@ TEST_F(EndToEndTest, AssignsTransportSequenceNumbers) { |
class RtpExtensionHeaderObserver : public test::DirectTransport { |
public: |
- RtpExtensionHeaderObserver(Call* sender_call, |
- const uint32_t& first_media_ssrc, |
- const std::map<uint32_t, uint32_t>& ssrc_map) |
- : DirectTransport(sender_call, MediaType::VIDEO), |
+ RtpExtensionHeaderObserver( |
+ Call* sender_call, |
+ const uint32_t& first_media_ssrc, |
+ const std::map<uint32_t, uint32_t>& ssrc_map, |
+ const std::map<uint8_t, MediaType>& payload_type_map) |
+ : DirectTransport(sender_call, payload_type_map), |
done_(false, false), |
parser_(RtpHeaderParser::Create()), |
first_media_ssrc_(first_media_ssrc), |
@@ -1796,8 +1801,14 @@ TEST_F(EndToEndTest, AssignsTransportSequenceNumbers) { |
} |
test::DirectTransport* CreateSendTransport(Call* sender_call) override { |
- observer_ = new RtpExtensionHeaderObserver(sender_call, first_media_ssrc_, |
- rtx_to_media_ssrcs_); |
+ std::map<uint8_t, MediaType> payload_type_map = |
+ MultiStreamTest::payload_type_map_; |
+ RTC_DCHECK(payload_type_map.find(kSendRtxPayloadType) == |
+ payload_type_map.end()); |
+ payload_type_map[kSendRtxPayloadType] = MediaType::VIDEO; |
+ observer_ = |
+ new RtpExtensionHeaderObserver(sender_call, first_media_ssrc_, |
+ rtx_to_media_ssrcs_, payload_type_map); |
return observer_; |
} |
@@ -1948,10 +1959,9 @@ TEST_F(EndToEndTest, ObserversEncodedFrames) { |
CreateCalls(Call::Config(event_log_.get()), Call::Config(event_log_.get())); |
- test::DirectTransport sender_transport( |
- sender_call_.get(), MediaType::VIDEO); |
- test::DirectTransport receiver_transport( |
- receiver_call_.get(), MediaType::VIDEO); |
+ test::DirectTransport sender_transport(sender_call_.get(), payload_type_map_); |
+ test::DirectTransport receiver_transport(receiver_call_.get(), |
+ payload_type_map_); |
sender_transport.SetReceiver(receiver_call_->Receiver()); |
receiver_transport.SetReceiver(sender_call_->Receiver()); |
@@ -2114,8 +2124,7 @@ TEST_F(EndToEndTest, RembWithSendSideBwe) { |
test::PacketTransport* CreateReceiveTransport() override { |
receive_transport_ = new test::PacketTransport( |
- nullptr, this, test::PacketTransport::kReceiver, |
- MediaType::VIDEO, |
+ nullptr, this, test::PacketTransport::kReceiver, payload_type_map_, |
FakeNetworkPipe::Config()); |
return receive_transport_; |
} |
@@ -3107,9 +3116,9 @@ TEST_F(EndToEndTest, GetStats) { |
test::PacketTransport* CreateSendTransport(Call* sender_call) override { |
FakeNetworkPipe::Config network_config; |
network_config.loss_percent = 5; |
- return new test::PacketTransport( |
- sender_call, this, test::PacketTransport::kSender, MediaType::VIDEO, |
- network_config); |
+ return new test::PacketTransport(sender_call, this, |
+ test::PacketTransport::kSender, |
+ payload_type_map_, network_config); |
} |
Call::Config GetSenderCallConfig() override { |
@@ -3661,14 +3670,12 @@ void EndToEndTest::TestRtpStatePreservation(bool use_rtx, |
Call::Config config(event_log_.get()); |
CreateCalls(config, config); |
- test::PacketTransport send_transport(sender_call_.get(), &observer, |
- test::PacketTransport::kSender, |
- MediaType::VIDEO, |
- FakeNetworkPipe::Config()); |
- test::PacketTransport receive_transport(nullptr, &observer, |
- test::PacketTransport::kReceiver, |
- MediaType::VIDEO, |
- FakeNetworkPipe::Config()); |
+ test::PacketTransport send_transport( |
+ sender_call_.get(), &observer, test::PacketTransport::kSender, |
+ payload_type_map_, FakeNetworkPipe::Config()); |
+ test::PacketTransport receive_transport( |
+ nullptr, &observer, test::PacketTransport::kReceiver, payload_type_map_, |
+ FakeNetworkPipe::Config()); |
send_transport.SetReceiver(receiver_call_->Receiver()); |
receive_transport.SetReceiver(sender_call_->Receiver()); |
@@ -3960,11 +3967,11 @@ TEST_F(EndToEndTest, CallReportsRttForSender) { |
FakeNetworkPipe::Config config; |
config.queue_delay_ms = kSendDelayMs; |
- test::DirectTransport sender_transport( |
- config, sender_call_.get(), MediaType::VIDEO); |
+ test::DirectTransport sender_transport(config, sender_call_.get(), |
+ payload_type_map_); |
config.queue_delay_ms = kReceiveDelayMs; |
- test::DirectTransport receiver_transport( |
- config, receiver_call_.get(), MediaType::VIDEO); |
+ test::DirectTransport receiver_transport(config, receiver_call_.get(), |
+ payload_type_map_); |
sender_transport.SetReceiver(receiver_call_->Receiver()); |
receiver_transport.SetReceiver(sender_call_->Receiver()); |
@@ -4026,7 +4033,7 @@ void EndToEndTest::VerifyNewVideoReceiveStreamsRespectNetworkState( |
CreateCalls(config, config); |
receiver_call_->SignalChannelNetworkState(network_to_bring_up, kNetworkUp); |
- test::DirectTransport sender_transport(sender_call_.get(), MediaType::VIDEO); |
+ test::DirectTransport sender_transport(sender_call_.get(), payload_type_map_); |
sender_transport.SetReceiver(receiver_call_->Receiver()); |
CreateSendConfig(1, 0, 0, &sender_transport); |
CreateMatchingReceiveConfigs(transport); |