OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2016 The WebRTC Project Authors. All rights reserved. | 2 * Copyright 2016 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 | 10 |
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
338 EXPECT_EQ( | 338 EXPECT_EQ( |
339 *map_->GetVideoSenderInfos(*local_video_track_), | 339 *map_->GetVideoSenderInfos(*local_video_track_), |
340 std::vector<cricket::VideoSenderInfo*>( | 340 std::vector<cricket::VideoSenderInfo*>( |
341 {&video_media_info_->senders[0], &video_media_info_->senders[1]})); | 341 {&video_media_info_->senders[0], &video_media_info_->senders[1]})); |
342 EXPECT_EQ(map_->GetVideoTrack(video_media_info_->senders[0]), | 342 EXPECT_EQ(map_->GetVideoTrack(video_media_info_->senders[0]), |
343 local_video_track_.get()); | 343 local_video_track_.get()); |
344 EXPECT_EQ(map_->GetVideoTrack(video_media_info_->senders[1]), | 344 EXPECT_EQ(map_->GetVideoTrack(video_media_info_->senders[1]), |
345 local_video_track_.get()); | 345 local_video_track_.get()); |
346 } | 346 } |
347 | 347 |
| 348 // SSRCs can be reused for send and receive in loopback. |
| 349 TEST_F(TrackMediaInfoMapTest, SingleSenderReceiverPerTrackWithSsrcNotUnique) { |
| 350 AddRtpSenderWithSsrcs({1}, local_audio_track_); |
| 351 AddRtpReceiverWithSsrcs({1}, remote_audio_track_); |
| 352 AddRtpSenderWithSsrcs({2}, local_video_track_); |
| 353 AddRtpReceiverWithSsrcs({2}, remote_video_track_); |
| 354 CreateMap(); |
| 355 |
| 356 // Local audio track <-> RTP audio senders |
| 357 ASSERT_TRUE(map_->GetVoiceSenderInfos(*local_audio_track_)); |
| 358 EXPECT_EQ( |
| 359 *map_->GetVoiceSenderInfos(*local_audio_track_), |
| 360 std::vector<cricket::VoiceSenderInfo*>({&voice_media_info_->senders[0]})); |
| 361 EXPECT_EQ(map_->GetAudioTrack(voice_media_info_->senders[0]), |
| 362 local_audio_track_.get()); |
| 363 |
| 364 // Remote audio track <-> RTP audio receiver |
| 365 EXPECT_EQ(map_->GetVoiceReceiverInfo(*remote_audio_track_), |
| 366 &voice_media_info_->receivers[0]); |
| 367 EXPECT_EQ(map_->GetAudioTrack(voice_media_info_->receivers[0]), |
| 368 remote_audio_track_.get()); |
| 369 |
| 370 // Local video track <-> RTP video senders |
| 371 ASSERT_TRUE(map_->GetVideoSenderInfos(*local_video_track_)); |
| 372 EXPECT_EQ( |
| 373 *map_->GetVideoSenderInfos(*local_video_track_), |
| 374 std::vector<cricket::VideoSenderInfo*>({&video_media_info_->senders[0]})); |
| 375 EXPECT_EQ(map_->GetVideoTrack(video_media_info_->senders[0]), |
| 376 local_video_track_.get()); |
| 377 |
| 378 // Remote video track <-> RTP video receiver |
| 379 EXPECT_EQ(map_->GetVideoReceiverInfo(*remote_video_track_), |
| 380 &video_media_info_->receivers[0]); |
| 381 EXPECT_EQ(map_->GetVideoTrack(video_media_info_->receivers[0]), |
| 382 remote_video_track_.get()); |
| 383 } |
| 384 |
348 // Death tests. | 385 // Death tests. |
349 // Disabled on Android because death tests misbehave on Android, see | 386 // Disabled on Android because death tests misbehave on Android, see |
350 // base/test/gtest_util.h. | 387 // base/test/gtest_util.h. |
351 #if RTC_DCHECK_IS_ON && GTEST_HAS_DEATH_TEST && !defined(WEBRTC_ANDROID) | 388 #if RTC_DCHECK_IS_ON && GTEST_HAS_DEATH_TEST && !defined(WEBRTC_ANDROID) |
352 | 389 |
353 class TrackMediaInfoMapDeathTest : public TrackMediaInfoMapTest {}; | 390 class TrackMediaInfoMapDeathTest : public TrackMediaInfoMapTest {}; |
354 | 391 |
355 TEST_F(TrackMediaInfoMapDeathTest, MultipleOneSsrcReceiversPerTrack) { | 392 TEST_F(TrackMediaInfoMapDeathTest, MultipleOneSsrcReceiversPerTrack) { |
356 AddRtpReceiverWithSsrcs({1}, remote_audio_track_); | 393 AddRtpReceiverWithSsrcs({1}, remote_audio_track_); |
357 AddRtpReceiverWithSsrcs({2}, remote_audio_track_); | 394 AddRtpReceiverWithSsrcs({2}, remote_audio_track_); |
358 AddRtpReceiverWithSsrcs({3}, remote_video_track_); | 395 AddRtpReceiverWithSsrcs({3}, remote_video_track_); |
359 AddRtpReceiverWithSsrcs({4}, remote_video_track_); | 396 AddRtpReceiverWithSsrcs({4}, remote_video_track_); |
360 EXPECT_DEATH(CreateMap(), ""); | 397 EXPECT_DEATH(CreateMap(), ""); |
361 } | 398 } |
362 | 399 |
363 TEST_F(TrackMediaInfoMapDeathTest, MultipleMultiSsrcReceiversPerTrack) { | 400 TEST_F(TrackMediaInfoMapDeathTest, MultipleMultiSsrcReceiversPerTrack) { |
364 AddRtpReceiverWithSsrcs({1, 2}, remote_audio_track_); | 401 AddRtpReceiverWithSsrcs({1, 2}, remote_audio_track_); |
365 AddRtpReceiverWithSsrcs({3, 4}, remote_audio_track_); | 402 AddRtpReceiverWithSsrcs({3, 4}, remote_audio_track_); |
366 AddRtpReceiverWithSsrcs({5, 6}, remote_video_track_); | 403 AddRtpReceiverWithSsrcs({5, 6}, remote_video_track_); |
367 AddRtpReceiverWithSsrcs({7, 8}, remote_video_track_); | 404 AddRtpReceiverWithSsrcs({7, 8}, remote_video_track_); |
368 EXPECT_DEATH(CreateMap(), ""); | 405 EXPECT_DEATH(CreateMap(), ""); |
369 } | 406 } |
370 | 407 |
371 TEST_F(TrackMediaInfoMapDeathTest, | |
372 SingleSenderReceiverPerTrackWithSsrcNotUnique) { | |
373 AddRtpSenderWithSsrcs({1}, local_audio_track_); | |
374 AddRtpReceiverWithSsrcs({1}, remote_audio_track_); | |
375 AddRtpSenderWithSsrcs({2}, local_video_track_); | |
376 AddRtpReceiverWithSsrcs({2}, remote_video_track_); | |
377 EXPECT_DEATH(CreateMap(), ""); | |
378 } | |
379 | |
380 #endif // RTC_DCHECK_IS_ON && GTEST_HAS_DEATH_TEST && !defined(WEBRTC_ANDROID) | 408 #endif // RTC_DCHECK_IS_ON && GTEST_HAS_DEATH_TEST && !defined(WEBRTC_ANDROID) |
381 | 409 |
382 } // namespace webrtc | 410 } // namespace webrtc |
OLD | NEW |