OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2013 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 <algorithm> | 10 #include <algorithm> |
(...skipping 3107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3118 | 3118 |
3119 Start(); | 3119 Start(); |
3120 SleepMs(kSilenceTimeoutMs); | 3120 SleepMs(kSilenceTimeoutMs); |
3121 Stop(); | 3121 Stop(); |
3122 | 3122 |
3123 sender_transport.StopSending(); | 3123 sender_transport.StopSending(); |
3124 | 3124 |
3125 DestroyStreams(); | 3125 DestroyStreams(); |
3126 } | 3126 } |
3127 | 3127 |
3128 // TODO(pbos): Remove this regression test when VideoEngine is no longer used as | |
3129 // a backend. This is to test that we hand channels back properly. | |
3130 TEST_F(EndToEndTest, CanCreateAndDestroyManyVideoStreams) { | |
3131 test::NullTransport transport; | |
3132 rtc::scoped_ptr<Call> call(Call::Create(Call::Config())); | |
3133 test::FakeDecoder fake_decoder; | |
3134 test::FakeEncoder fake_encoder(Clock::GetRealTimeClock()); | |
3135 for (size_t i = 0; i < 100; ++i) { | |
3136 VideoSendStream::Config send_config(&transport); | |
3137 send_config.encoder_settings.encoder = &fake_encoder; | |
3138 send_config.encoder_settings.payload_name = "FAKE"; | |
3139 send_config.encoder_settings.payload_type = 123; | |
3140 | |
3141 VideoEncoderConfig encoder_config; | |
3142 encoder_config.streams = test::CreateVideoStreams(1); | |
3143 send_config.rtp.ssrcs.push_back(1); | |
3144 VideoSendStream* send_stream = | |
3145 call->CreateVideoSendStream(send_config, encoder_config); | |
3146 call->DestroyVideoSendStream(send_stream); | |
3147 | |
3148 VideoReceiveStream::Config receive_config(&transport); | |
3149 receive_config.rtp.remote_ssrc = 1; | |
3150 receive_config.rtp.local_ssrc = kReceiverLocalSsrc; | |
3151 VideoReceiveStream::Decoder decoder; | |
3152 decoder.decoder = &fake_decoder; | |
3153 decoder.payload_type = 123; | |
3154 decoder.payload_name = "FAKE"; | |
3155 receive_config.decoders.push_back(decoder); | |
3156 VideoReceiveStream* receive_stream = | |
3157 call->CreateVideoReceiveStream(receive_config); | |
3158 call->DestroyVideoReceiveStream(receive_stream); | |
3159 } | |
3160 } | |
3161 | |
3162 void VerifyEmptyNackConfig(const NackConfig& config) { | 3128 void VerifyEmptyNackConfig(const NackConfig& config) { |
3163 EXPECT_EQ(0, config.rtp_history_ms) | 3129 EXPECT_EQ(0, config.rtp_history_ms) |
3164 << "Enabling NACK requires rtcp-fb: nack negotiation."; | 3130 << "Enabling NACK requires rtcp-fb: nack negotiation."; |
3165 } | 3131 } |
3166 | 3132 |
3167 void VerifyEmptyFecConfig(const FecConfig& config) { | 3133 void VerifyEmptyFecConfig(const FecConfig& config) { |
3168 EXPECT_EQ(-1, config.ulpfec_payload_type) | 3134 EXPECT_EQ(-1, config.ulpfec_payload_type) |
3169 << "Enabling FEC requires rtpmap: ulpfec negotiation."; | 3135 << "Enabling FEC requires rtpmap: ulpfec negotiation."; |
3170 EXPECT_EQ(-1, config.red_payload_type) | 3136 EXPECT_EQ(-1, config.red_payload_type) |
3171 << "Enabling FEC requires rtpmap: red negotiation."; | 3137 << "Enabling FEC requires rtpmap: red negotiation."; |
(...skipping 26 matching lines...) Expand all Loading... |
3198 EXPECT_TRUE(default_receive_config.rtp.rtx.empty()) | 3164 EXPECT_TRUE(default_receive_config.rtp.rtx.empty()) |
3199 << "Enabling RTX requires rtpmap: rtx negotiation."; | 3165 << "Enabling RTX requires rtpmap: rtx negotiation."; |
3200 EXPECT_TRUE(default_receive_config.rtp.extensions.empty()) | 3166 EXPECT_TRUE(default_receive_config.rtp.extensions.empty()) |
3201 << "Enabling RTP extensions require negotiation."; | 3167 << "Enabling RTP extensions require negotiation."; |
3202 | 3168 |
3203 VerifyEmptyNackConfig(default_receive_config.rtp.nack); | 3169 VerifyEmptyNackConfig(default_receive_config.rtp.nack); |
3204 VerifyEmptyFecConfig(default_receive_config.rtp.fec); | 3170 VerifyEmptyFecConfig(default_receive_config.rtp.fec); |
3205 } | 3171 } |
3206 | 3172 |
3207 } // namespace webrtc | 3173 } // namespace webrtc |
OLD | NEW |