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 <functional> | 10 #include <functional> |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
127 video_send_config_.encoder_settings.payload_type = | 127 video_send_config_.encoder_settings.payload_type = |
128 kFakeVideoSendPayloadType; | 128 kFakeVideoSendPayloadType; |
129 video_encoder_config_.streams = test::CreateVideoStreams(1); | 129 video_encoder_config_.streams = test::CreateVideoStreams(1); |
130 | 130 |
131 receive_config_ = VideoReceiveStream::Config(receive_transport_.get()); | 131 receive_config_ = VideoReceiveStream::Config(receive_transport_.get()); |
132 // receive_config_.decoders will be set by every stream separately. | 132 // receive_config_.decoders will be set by every stream separately. |
133 receive_config_.rtp.remote_ssrc = video_send_config_.rtp.ssrcs[0]; | 133 receive_config_.rtp.remote_ssrc = video_send_config_.rtp.ssrcs[0]; |
134 receive_config_.rtp.local_ssrc = kReceiverLocalVideoSsrc; | 134 receive_config_.rtp.local_ssrc = kReceiverLocalVideoSsrc; |
135 receive_config_.rtp.remb = true; | 135 receive_config_.rtp.remb = true; |
136 receive_config_.rtp.extensions.push_back( | 136 receive_config_.rtp.extensions.push_back( |
137 RtpExtension(RtpExtension::kTOffset, kTOFExtensionId)); | 137 RtpExtension(RtpExtension::kTimestampOffsetUri, kTOFExtensionId)); |
138 receive_config_.rtp.extensions.push_back( | 138 receive_config_.rtp.extensions.push_back( |
139 RtpExtension(RtpExtension::kAbsSendTime, kASTExtensionId)); | 139 RtpExtension(RtpExtension::kAbsSendTimeUri, kASTExtensionId)); |
140 } | 140 } |
141 | 141 |
142 virtual void TearDown() { | 142 virtual void TearDown() { |
143 std::for_each(streams_.begin(), streams_.end(), | 143 std::for_each(streams_.begin(), streams_.end(), |
144 std::mem_fun(&Stream::StopSending)); | 144 std::mem_fun(&Stream::StopSending)); |
145 | 145 |
146 send_transport_->StopSending(); | 146 send_transport_->StopSending(); |
147 receive_transport_->StopSending(); | 147 receive_transport_->StopSending(); |
148 | 148 |
149 while (!streams_.empty()) { | 149 while (!streams_.empty()) { |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
182 frame_generator_capturer_->Start(); | 182 frame_generator_capturer_->Start(); |
183 | 183 |
184 if (receive_audio) { | 184 if (receive_audio) { |
185 AudioReceiveStream::Config receive_config; | 185 AudioReceiveStream::Config receive_config; |
186 receive_config.rtp.remote_ssrc = test_->video_send_config_.rtp.ssrcs[0]; | 186 receive_config.rtp.remote_ssrc = test_->video_send_config_.rtp.ssrcs[0]; |
187 // Bogus non-default id to prevent hitting a RTC_DCHECK when creating | 187 // Bogus non-default id to prevent hitting a RTC_DCHECK when creating |
188 // the AudioReceiveStream. Every receive stream has to correspond to | 188 // the AudioReceiveStream. Every receive stream has to correspond to |
189 // an underlying channel id. | 189 // an underlying channel id. |
190 receive_config.voe_channel_id = 0; | 190 receive_config.voe_channel_id = 0; |
191 receive_config.rtp.extensions.push_back( | 191 receive_config.rtp.extensions.push_back( |
192 RtpExtension(RtpExtension::kAbsSendTime, kASTExtensionId)); | 192 RtpExtension(RtpExtension::kAbsSendTimeUri, kASTExtensionId)); |
193 audio_receive_stream_ = | 193 audio_receive_stream_ = |
194 test_->receiver_call_->CreateAudioReceiveStream(receive_config); | 194 test_->receiver_call_->CreateAudioReceiveStream(receive_config); |
195 } else { | 195 } else { |
196 VideoReceiveStream::Decoder decoder; | 196 VideoReceiveStream::Decoder decoder; |
197 decoder.decoder = &fake_decoder_; | 197 decoder.decoder = &fake_decoder_; |
198 decoder.payload_type = | 198 decoder.payload_type = |
199 test_->video_send_config_.encoder_settings.payload_type; | 199 test_->video_send_config_.encoder_settings.payload_type; |
200 decoder.payload_name = | 200 decoder.payload_name = |
201 test_->video_send_config_.encoder_settings.payload_name; | 201 test_->video_send_config_.encoder_settings.payload_name; |
202 test_->receive_config_.decoders.clear(); | 202 test_->receive_config_.decoders.clear(); |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
258 std::vector<Stream*> streams_; | 258 std::vector<Stream*> streams_; |
259 }; | 259 }; |
260 | 260 |
261 static const char* kAbsSendTimeLog = | 261 static const char* kAbsSendTimeLog = |
262 "RemoteBitrateEstimatorAbsSendTime: Instantiating."; | 262 "RemoteBitrateEstimatorAbsSendTime: Instantiating."; |
263 static const char* kSingleStreamLog = | 263 static const char* kSingleStreamLog = |
264 "RemoteBitrateEstimatorSingleStream: Instantiating."; | 264 "RemoteBitrateEstimatorSingleStream: Instantiating."; |
265 | 265 |
266 TEST_F(BitrateEstimatorTest, InstantiatesTOFPerDefaultForVideo) { | 266 TEST_F(BitrateEstimatorTest, InstantiatesTOFPerDefaultForVideo) { |
267 video_send_config_.rtp.extensions.push_back( | 267 video_send_config_.rtp.extensions.push_back( |
268 RtpExtension(RtpExtension::kTOffset, kTOFExtensionId)); | 268 RtpExtension(RtpExtension::kTimestampOffsetUri, kTOFExtensionId)); |
269 receiver_log_.PushExpectedLogLine(kSingleStreamLog); | 269 receiver_log_.PushExpectedLogLine(kSingleStreamLog); |
270 receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); | 270 receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); |
271 receiver_log_.PushExpectedLogLine(kSingleStreamLog); | 271 receiver_log_.PushExpectedLogLine(kSingleStreamLog); |
272 streams_.push_back(new Stream(this, false)); | 272 streams_.push_back(new Stream(this, false)); |
273 EXPECT_TRUE(receiver_log_.Wait()); | 273 EXPECT_TRUE(receiver_log_.Wait()); |
274 } | 274 } |
275 | 275 |
276 TEST_F(BitrateEstimatorTest, ImmediatelySwitchToASTForVideo) { | 276 TEST_F(BitrateEstimatorTest, ImmediatelySwitchToASTForVideo) { |
277 video_send_config_.rtp.extensions.push_back( | 277 video_send_config_.rtp.extensions.push_back( |
278 RtpExtension(RtpExtension::kAbsSendTime, kASTExtensionId)); | 278 RtpExtension(RtpExtension::kAbsSendTimeUri, kASTExtensionId)); |
279 receiver_log_.PushExpectedLogLine(kSingleStreamLog); | 279 receiver_log_.PushExpectedLogLine(kSingleStreamLog); |
280 receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); | 280 receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); |
281 receiver_log_.PushExpectedLogLine(kSingleStreamLog); | 281 receiver_log_.PushExpectedLogLine(kSingleStreamLog); |
282 receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); | 282 receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); |
283 receiver_log_.PushExpectedLogLine("Switching to absolute send time RBE."); | 283 receiver_log_.PushExpectedLogLine("Switching to absolute send time RBE."); |
284 streams_.push_back(new Stream(this, false)); | 284 streams_.push_back(new Stream(this, false)); |
285 EXPECT_TRUE(receiver_log_.Wait()); | 285 EXPECT_TRUE(receiver_log_.Wait()); |
286 } | 286 } |
287 | 287 |
288 TEST_F(BitrateEstimatorTest, SwitchesToASTForVideo) { | 288 TEST_F(BitrateEstimatorTest, SwitchesToASTForVideo) { |
289 video_send_config_.rtp.extensions.push_back( | 289 video_send_config_.rtp.extensions.push_back( |
290 RtpExtension(RtpExtension::kTOffset, kTOFExtensionId)); | 290 RtpExtension(RtpExtension::kTimestampOffsetUri, kTOFExtensionId)); |
291 receiver_log_.PushExpectedLogLine(kSingleStreamLog); | 291 receiver_log_.PushExpectedLogLine(kSingleStreamLog); |
292 receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); | 292 receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); |
293 receiver_log_.PushExpectedLogLine(kSingleStreamLog); | 293 receiver_log_.PushExpectedLogLine(kSingleStreamLog); |
294 streams_.push_back(new Stream(this, false)); | 294 streams_.push_back(new Stream(this, false)); |
295 EXPECT_TRUE(receiver_log_.Wait()); | 295 EXPECT_TRUE(receiver_log_.Wait()); |
296 | 296 |
297 video_send_config_.rtp.extensions[0] = | 297 video_send_config_.rtp.extensions[0] = |
298 RtpExtension(RtpExtension::kAbsSendTime, kASTExtensionId); | 298 RtpExtension(RtpExtension::kAbsSendTimeUri, kASTExtensionId); |
299 receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); | 299 receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); |
300 receiver_log_.PushExpectedLogLine("Switching to absolute send time RBE."); | 300 receiver_log_.PushExpectedLogLine("Switching to absolute send time RBE."); |
301 streams_.push_back(new Stream(this, false)); | 301 streams_.push_back(new Stream(this, false)); |
302 EXPECT_TRUE(receiver_log_.Wait()); | 302 EXPECT_TRUE(receiver_log_.Wait()); |
303 } | 303 } |
304 | 304 |
305 // This test is flaky. See webrtc:5790. | 305 // This test is flaky. See webrtc:5790. |
306 TEST_F(BitrateEstimatorTest, DISABLED_SwitchesToASTThenBackToTOFForVideo) { | 306 TEST_F(BitrateEstimatorTest, DISABLED_SwitchesToASTThenBackToTOFForVideo) { |
307 video_send_config_.rtp.extensions.push_back( | 307 video_send_config_.rtp.extensions.push_back( |
308 RtpExtension(RtpExtension::kTOffset, kTOFExtensionId)); | 308 RtpExtension(RtpExtension::kTimestampOffsetUri, kTOFExtensionId)); |
309 receiver_log_.PushExpectedLogLine(kSingleStreamLog); | 309 receiver_log_.PushExpectedLogLine(kSingleStreamLog); |
310 receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); | 310 receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); |
311 receiver_log_.PushExpectedLogLine(kSingleStreamLog); | 311 receiver_log_.PushExpectedLogLine(kSingleStreamLog); |
312 streams_.push_back(new Stream(this, false)); | 312 streams_.push_back(new Stream(this, false)); |
313 EXPECT_TRUE(receiver_log_.Wait()); | 313 EXPECT_TRUE(receiver_log_.Wait()); |
314 | 314 |
315 video_send_config_.rtp.extensions[0] = | 315 video_send_config_.rtp.extensions[0] = |
316 RtpExtension(RtpExtension::kAbsSendTime, kASTExtensionId); | 316 RtpExtension(RtpExtension::kAbsSendTimeUri, kASTExtensionId); |
317 receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); | 317 receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); |
318 receiver_log_.PushExpectedLogLine("Switching to absolute send time RBE."); | 318 receiver_log_.PushExpectedLogLine("Switching to absolute send time RBE."); |
319 streams_.push_back(new Stream(this, false)); | 319 streams_.push_back(new Stream(this, false)); |
320 EXPECT_TRUE(receiver_log_.Wait()); | 320 EXPECT_TRUE(receiver_log_.Wait()); |
321 | 321 |
322 video_send_config_.rtp.extensions[0] = | 322 video_send_config_.rtp.extensions[0] = |
323 RtpExtension(RtpExtension::kTOffset, kTOFExtensionId); | 323 RtpExtension(RtpExtension::kTimestampOffsetUri, kTOFExtensionId); |
324 receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); | 324 receiver_log_.PushExpectedLogLine(kAbsSendTimeLog); |
325 receiver_log_.PushExpectedLogLine( | 325 receiver_log_.PushExpectedLogLine( |
326 "WrappingBitrateEstimator: Switching to transmission time offset RBE."); | 326 "WrappingBitrateEstimator: Switching to transmission time offset RBE."); |
327 streams_.push_back(new Stream(this, false)); | 327 streams_.push_back(new Stream(this, false)); |
328 streams_[0]->StopSending(); | 328 streams_[0]->StopSending(); |
329 streams_[1]->StopSending(); | 329 streams_[1]->StopSending(); |
330 EXPECT_TRUE(receiver_log_.Wait()); | 330 EXPECT_TRUE(receiver_log_.Wait()); |
331 } | 331 } |
332 } // namespace webrtc | 332 } // namespace webrtc |
OLD | NEW |