OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright 2012 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 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
69 } | 69 } |
70 | 70 |
71 private: | 71 private: |
72 std::unique_ptr<AudioSinkInterface> sink_; | 72 std::unique_ptr<AudioSinkInterface> sink_; |
73 }; | 73 }; |
74 | 74 |
75 // Helper class to test RtpSender/RtpReceiver. | 75 // Helper class to test RtpSender/RtpReceiver. |
76 class MockVideoProvider : public VideoProviderInterface { | 76 class MockVideoProvider : public VideoProviderInterface { |
77 public: | 77 public: |
78 virtual ~MockVideoProvider() {} | 78 virtual ~MockVideoProvider() {} |
79 MOCK_METHOD2(SetSource, | |
80 bool(uint32_t ssrc, | |
81 rtc::VideoSourceInterface<cricket::VideoFrame>* source)); | |
82 MOCK_METHOD3(SetVideoPlayout, | 79 MOCK_METHOD3(SetVideoPlayout, |
83 void(uint32_t ssrc, | 80 void(uint32_t ssrc, |
84 bool enable, | 81 bool enable, |
85 rtc::VideoSinkInterface<cricket::VideoFrame>* sink)); | 82 rtc::VideoSinkInterface<cricket::VideoFrame>* sink)); |
86 MOCK_METHOD3(SetVideoSend, | 83 MOCK_METHOD4(SetVideoSend, |
87 void(uint32_t ssrc, | 84 void(uint32_t ssrc, |
88 bool enable, | 85 bool enable, |
89 const cricket::VideoOptions* options)); | 86 const cricket::VideoOptions* options, |
| 87 rtc::VideoSourceInterface<cricket::VideoFrame>* source)); |
90 | 88 |
91 MOCK_CONST_METHOD1(GetVideoRtpParameters, RtpParameters(uint32_t ssrc)); | 89 MOCK_CONST_METHOD1(GetVideoRtpParameters, RtpParameters(uint32_t ssrc)); |
92 MOCK_METHOD2(SetVideoRtpParameters, | 90 MOCK_METHOD2(SetVideoRtpParameters, |
93 bool(uint32_t ssrc, const RtpParameters&)); | 91 bool(uint32_t ssrc, const RtpParameters&)); |
94 }; | 92 }; |
95 | 93 |
96 class RtpSenderReceiverTest : public testing::Test { | 94 class RtpSenderReceiverTest : public testing::Test { |
97 public: | 95 public: |
98 virtual void SetUp() { | 96 virtual void SetUp() { |
99 stream_ = MediaStream::Create(kStreamLabel1); | 97 stream_ = MediaStream::Create(kStreamLabel1); |
(...skipping 11 matching lines...) Expand all Loading... |
111 EXPECT_TRUE(stream_->AddTrack(audio_track_)); | 109 EXPECT_TRUE(stream_->AddTrack(audio_track_)); |
112 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, true, _, _)); | 110 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, true, _, _)); |
113 audio_rtp_sender_ = | 111 audio_rtp_sender_ = |
114 new AudioRtpSender(stream_->GetAudioTracks()[0], stream_->label(), | 112 new AudioRtpSender(stream_->GetAudioTracks()[0], stream_->label(), |
115 &audio_provider_, nullptr); | 113 &audio_provider_, nullptr); |
116 audio_rtp_sender_->SetSsrc(kAudioSsrc); | 114 audio_rtp_sender_->SetSsrc(kAudioSsrc); |
117 } | 115 } |
118 | 116 |
119 void CreateVideoRtpSender() { | 117 void CreateVideoRtpSender() { |
120 AddVideoTrack(); | 118 AddVideoTrack(); |
121 EXPECT_CALL(video_provider_, SetSource(kVideoSsrc, video_track_.get())); | 119 EXPECT_CALL(video_provider_, |
122 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, true, _)); | 120 SetVideoSend(kVideoSsrc, true, _, video_track_.get())); |
123 video_rtp_sender_ = new VideoRtpSender(stream_->GetVideoTracks()[0], | 121 video_rtp_sender_ = new VideoRtpSender(stream_->GetVideoTracks()[0], |
124 stream_->label(), &video_provider_); | 122 stream_->label(), &video_provider_); |
125 video_rtp_sender_->SetSsrc(kVideoSsrc); | 123 video_rtp_sender_->SetSsrc(kVideoSsrc); |
126 } | 124 } |
127 | 125 |
128 void DestroyAudioRtpSender() { | 126 void DestroyAudioRtpSender() { |
129 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, false, _, _)) | 127 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, false, _, _)) |
130 .Times(1); | 128 .Times(1); |
131 audio_rtp_sender_ = nullptr; | 129 audio_rtp_sender_ = nullptr; |
132 } | 130 } |
133 | 131 |
134 void DestroyVideoRtpSender() { | 132 void DestroyVideoRtpSender() { |
135 EXPECT_CALL(video_provider_, SetSource(kVideoSsrc, NULL)).Times(1); | 133 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, false, _, nullptr)) |
136 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, false, _)).Times(1); | 134 .Times(1); |
137 video_rtp_sender_ = nullptr; | 135 video_rtp_sender_ = nullptr; |
138 } | 136 } |
139 | 137 |
140 void CreateAudioRtpReceiver() { | 138 void CreateAudioRtpReceiver() { |
141 audio_track_ = AudioTrack::Create( | 139 audio_track_ = AudioTrack::Create( |
142 kAudioTrackId, RemoteAudioSource::Create(kAudioSsrc, NULL)); | 140 kAudioTrackId, RemoteAudioSource::Create(kAudioSsrc, NULL)); |
143 EXPECT_TRUE(stream_->AddTrack(audio_track_)); | 141 EXPECT_TRUE(stream_->AddTrack(audio_track_)); |
144 EXPECT_CALL(audio_provider_, SetAudioPlayout(kAudioSsrc, true)); | 142 EXPECT_CALL(audio_provider_, SetAudioPlayout(kAudioSsrc, true)); |
145 audio_rtp_receiver_ = new AudioRtpReceiver(stream_, kAudioTrackId, | 143 audio_rtp_receiver_ = new AudioRtpReceiver(stream_, kAudioTrackId, |
146 kAudioSsrc, &audio_provider_); | 144 kAudioSsrc, &audio_provider_); |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
225 | 223 |
226 EXPECT_CALL(audio_provider_, SetAudioPlayout(kAudioSsrc, true)); | 224 EXPECT_CALL(audio_provider_, SetAudioPlayout(kAudioSsrc, true)); |
227 audio_track_->set_enabled(true); | 225 audio_track_->set_enabled(true); |
228 | 226 |
229 DestroyAudioRtpReceiver(); | 227 DestroyAudioRtpReceiver(); |
230 } | 228 } |
231 | 229 |
232 TEST_F(RtpSenderReceiverTest, LocalVideoTrackDisable) { | 230 TEST_F(RtpSenderReceiverTest, LocalVideoTrackDisable) { |
233 CreateVideoRtpSender(); | 231 CreateVideoRtpSender(); |
234 | 232 |
235 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, false, _)); | 233 EXPECT_CALL(video_provider_, |
| 234 SetVideoSend(kVideoSsrc, false, _, video_track_.get())); |
236 video_track_->set_enabled(false); | 235 video_track_->set_enabled(false); |
237 | 236 |
238 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, true, _)); | 237 EXPECT_CALL(video_provider_, |
| 238 SetVideoSend(kVideoSsrc, true, _, video_track_.get())); |
239 video_track_->set_enabled(true); | 239 video_track_->set_enabled(true); |
240 | 240 |
241 DestroyVideoRtpSender(); | 241 DestroyVideoRtpSender(); |
242 } | 242 } |
243 | 243 |
244 TEST_F(RtpSenderReceiverTest, RemoteVideoTrackState) { | 244 TEST_F(RtpSenderReceiverTest, RemoteVideoTrackState) { |
245 CreateVideoRtpReceiver(); | 245 CreateVideoRtpReceiver(); |
246 | 246 |
247 EXPECT_EQ(webrtc::MediaStreamTrackInterface::kLive, video_track_->state()); | 247 EXPECT_EQ(webrtc::MediaStreamTrackInterface::kLive, video_track_->state()); |
248 EXPECT_EQ(webrtc::MediaSourceInterface::kLive, | 248 EXPECT_EQ(webrtc::MediaSourceInterface::kLive, |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
343 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, false, _, _)).Times(1); | 343 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, false, _, _)).Times(1); |
344 } | 344 } |
345 | 345 |
346 // Test that a video sender calls the expected methods on the provider once | 346 // Test that a video sender calls the expected methods on the provider once |
347 // it has a track and SSRC, when the SSRC is set first. | 347 // it has a track and SSRC, when the SSRC is set first. |
348 TEST_F(RtpSenderReceiverTest, VideoSenderEarlyWarmupSsrcThenTrack) { | 348 TEST_F(RtpSenderReceiverTest, VideoSenderEarlyWarmupSsrcThenTrack) { |
349 AddVideoTrack(); | 349 AddVideoTrack(); |
350 rtc::scoped_refptr<VideoRtpSender> sender = | 350 rtc::scoped_refptr<VideoRtpSender> sender = |
351 new VideoRtpSender(&video_provider_); | 351 new VideoRtpSender(&video_provider_); |
352 sender->SetSsrc(kVideoSsrc); | 352 sender->SetSsrc(kVideoSsrc); |
353 EXPECT_CALL(video_provider_, SetSource(kVideoSsrc, video_track_.get())); | 353 EXPECT_CALL(video_provider_, |
354 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, true, _)); | 354 SetVideoSend(kVideoSsrc, true, _, video_track_.get())); |
355 sender->SetTrack(video_track_); | 355 sender->SetTrack(video_track_); |
356 | 356 |
357 // Calls expected from destructor. | 357 // Calls expected from destructor. |
358 EXPECT_CALL(video_provider_, SetSource(kVideoSsrc, nullptr)).Times(1); | 358 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, false, _, nullptr)) |
359 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, false, _)).Times(1); | 359 .Times(1); |
360 } | 360 } |
361 | 361 |
362 // Test that a video sender calls the expected methods on the provider once | 362 // Test that a video sender calls the expected methods on the provider once |
363 // it has a track and SSRC, when the SSRC is set last. | 363 // it has a track and SSRC, when the SSRC is set last. |
364 TEST_F(RtpSenderReceiverTest, VideoSenderEarlyWarmupTrackThenSsrc) { | 364 TEST_F(RtpSenderReceiverTest, VideoSenderEarlyWarmupTrackThenSsrc) { |
365 AddVideoTrack(); | 365 AddVideoTrack(); |
366 rtc::scoped_refptr<VideoRtpSender> sender = | 366 rtc::scoped_refptr<VideoRtpSender> sender = |
367 new VideoRtpSender(&video_provider_); | 367 new VideoRtpSender(&video_provider_); |
368 sender->SetTrack(video_track_); | 368 sender->SetTrack(video_track_); |
369 EXPECT_CALL(video_provider_, SetSource(kVideoSsrc, video_track_.get())); | 369 EXPECT_CALL(video_provider_, |
370 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, true, _)); | 370 SetVideoSend(kVideoSsrc, true, _, video_track_.get())); |
371 sender->SetSsrc(kVideoSsrc); | 371 sender->SetSsrc(kVideoSsrc); |
372 | 372 |
373 // Calls expected from destructor. | 373 // Calls expected from destructor. |
374 EXPECT_CALL(video_provider_, SetSource(kVideoSsrc, nullptr)).Times(1); | 374 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, false, _, nullptr)) |
375 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, false, _)).Times(1); | 375 .Times(1); |
376 } | 376 } |
377 | 377 |
378 // Test that the sender is disconnected from the provider when its SSRC is | 378 // Test that the sender is disconnected from the provider when its SSRC is |
379 // set to 0. | 379 // set to 0. |
380 TEST_F(RtpSenderReceiverTest, AudioSenderSsrcSetToZero) { | 380 TEST_F(RtpSenderReceiverTest, AudioSenderSsrcSetToZero) { |
381 rtc::scoped_refptr<AudioTrackInterface> track = | 381 rtc::scoped_refptr<AudioTrackInterface> track = |
382 AudioTrack::Create(kAudioTrackId, nullptr); | 382 AudioTrack::Create(kAudioTrackId, nullptr); |
383 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, true, _, _)); | 383 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, true, _, _)); |
384 rtc::scoped_refptr<AudioRtpSender> sender = | 384 rtc::scoped_refptr<AudioRtpSender> sender = |
385 new AudioRtpSender(track, kStreamLabel1, &audio_provider_, nullptr); | 385 new AudioRtpSender(track, kStreamLabel1, &audio_provider_, nullptr); |
386 sender->SetSsrc(kAudioSsrc); | 386 sender->SetSsrc(kAudioSsrc); |
387 | 387 |
388 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, false, _, _)).Times(1); | 388 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, false, _, _)).Times(1); |
389 sender->SetSsrc(0); | 389 sender->SetSsrc(0); |
390 | 390 |
391 // Make sure it's SetSsrc that called methods on the provider, and not the | 391 // Make sure it's SetSsrc that called methods on the provider, and not the |
392 // destructor. | 392 // destructor. |
393 EXPECT_CALL(audio_provider_, SetAudioSend(_, _, _, _)).Times(0); | 393 EXPECT_CALL(audio_provider_, SetAudioSend(_, _, _, _)).Times(0); |
394 } | 394 } |
395 | 395 |
396 // Test that the sender is disconnected from the provider when its SSRC is | 396 // Test that the sender is disconnected from the provider when its SSRC is |
397 // set to 0. | 397 // set to 0. |
398 TEST_F(RtpSenderReceiverTest, VideoSenderSsrcSetToZero) { | 398 TEST_F(RtpSenderReceiverTest, VideoSenderSsrcSetToZero) { |
399 AddVideoTrack(); | 399 AddVideoTrack(); |
400 EXPECT_CALL(video_provider_, SetSource(kVideoSsrc, video_track_.get())); | 400 EXPECT_CALL(video_provider_, |
401 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, true, _)); | 401 SetVideoSend(kVideoSsrc, true, _, video_track_.get())); |
402 rtc::scoped_refptr<VideoRtpSender> sender = | 402 rtc::scoped_refptr<VideoRtpSender> sender = |
403 new VideoRtpSender(video_track_, kStreamLabel1, &video_provider_); | 403 new VideoRtpSender(video_track_, kStreamLabel1, &video_provider_); |
404 sender->SetSsrc(kVideoSsrc); | 404 sender->SetSsrc(kVideoSsrc); |
405 | 405 |
406 EXPECT_CALL(video_provider_, SetSource(kVideoSsrc, nullptr)).Times(1); | 406 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, false, _, nullptr)) |
407 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, false, _)).Times(1); | 407 .Times(1); |
408 sender->SetSsrc(0); | 408 sender->SetSsrc(0); |
409 | 409 |
410 // Make sure it's SetSsrc that called methods on the provider, and not the | 410 // Make sure it's SetSsrc that called methods on the provider, and not the |
411 // destructor. | 411 // destructor. |
412 EXPECT_CALL(video_provider_, SetSource(_, _)).Times(0); | 412 EXPECT_CALL(video_provider_, SetVideoSend(_, _, _, _)).Times(0); |
413 EXPECT_CALL(video_provider_, SetVideoSend(_, _, _)).Times(0); | |
414 } | 413 } |
415 | 414 |
416 TEST_F(RtpSenderReceiverTest, AudioSenderTrackSetToNull) { | 415 TEST_F(RtpSenderReceiverTest, AudioSenderTrackSetToNull) { |
417 rtc::scoped_refptr<AudioTrackInterface> track = | 416 rtc::scoped_refptr<AudioTrackInterface> track = |
418 AudioTrack::Create(kAudioTrackId, nullptr); | 417 AudioTrack::Create(kAudioTrackId, nullptr); |
419 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, true, _, _)); | 418 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, true, _, _)); |
420 rtc::scoped_refptr<AudioRtpSender> sender = | 419 rtc::scoped_refptr<AudioRtpSender> sender = |
421 new AudioRtpSender(track, kStreamLabel1, &audio_provider_, nullptr); | 420 new AudioRtpSender(track, kStreamLabel1, &audio_provider_, nullptr); |
422 sender->SetSsrc(kAudioSsrc); | 421 sender->SetSsrc(kAudioSsrc); |
423 | 422 |
(...skipping 10 matching lines...) Expand all Loading... |
434 // Make sure it's SetTrack that called methods on the provider, and not the | 433 // Make sure it's SetTrack that called methods on the provider, and not the |
435 // destructor. | 434 // destructor. |
436 EXPECT_CALL(audio_provider_, SetAudioSend(_, _, _, _)).Times(0); | 435 EXPECT_CALL(audio_provider_, SetAudioSend(_, _, _, _)).Times(0); |
437 } | 436 } |
438 | 437 |
439 TEST_F(RtpSenderReceiverTest, VideoSenderTrackSetToNull) { | 438 TEST_F(RtpSenderReceiverTest, VideoSenderTrackSetToNull) { |
440 rtc::scoped_refptr<VideoTrackSourceInterface> source( | 439 rtc::scoped_refptr<VideoTrackSourceInterface> source( |
441 FakeVideoTrackSource::Create()); | 440 FakeVideoTrackSource::Create()); |
442 rtc::scoped_refptr<VideoTrackInterface> track = | 441 rtc::scoped_refptr<VideoTrackInterface> track = |
443 VideoTrack::Create(kVideoTrackId, source); | 442 VideoTrack::Create(kVideoTrackId, source); |
444 EXPECT_CALL(video_provider_, SetSource(kVideoSsrc, track.get())); | 443 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, true, _, track.get())); |
445 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, true, _)); | |
446 rtc::scoped_refptr<VideoRtpSender> sender = | 444 rtc::scoped_refptr<VideoRtpSender> sender = |
447 new VideoRtpSender(track, kStreamLabel1, &video_provider_); | 445 new VideoRtpSender(track, kStreamLabel1, &video_provider_); |
448 sender->SetSsrc(kVideoSsrc); | 446 sender->SetSsrc(kVideoSsrc); |
449 | 447 |
450 // Expect that SetSource will be called before the reference to the track | 448 // Expect that SetVideoSend will be called before the reference to the track |
451 // is released. | 449 // is released. |
452 EXPECT_CALL(video_provider_, SetSource(kVideoSsrc, nullptr)) | 450 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, false, _, nullptr)) |
453 .Times(1) | 451 .Times(1) |
454 .WillOnce(InvokeWithoutArgs([&track] { | 452 .WillOnce(InvokeWithoutArgs([&track] { |
455 EXPECT_LT(2, track->AddRef()); | 453 EXPECT_LT(2, track->AddRef()); |
456 track->Release(); | 454 track->Release(); |
457 return true; | |
458 })); | 455 })); |
459 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, false, _)).Times(1); | |
460 EXPECT_TRUE(sender->SetTrack(nullptr)); | 456 EXPECT_TRUE(sender->SetTrack(nullptr)); |
461 | 457 |
462 // Make sure it's SetTrack that called methods on the provider, and not the | 458 // Make sure it's SetTrack that called methods on the provider, and not the |
463 // destructor. | 459 // destructor. |
464 EXPECT_CALL(video_provider_, SetSource(_, _)).Times(0); | 460 EXPECT_CALL(video_provider_, SetVideoSend(_, _, _, _)).Times(0); |
465 EXPECT_CALL(video_provider_, SetVideoSend(_, _, _)).Times(0); | |
466 } | 461 } |
467 | 462 |
468 TEST_F(RtpSenderReceiverTest, AudioSenderSsrcChanged) { | 463 TEST_F(RtpSenderReceiverTest, AudioSenderSsrcChanged) { |
469 AddVideoTrack(); | 464 AddVideoTrack(); |
470 rtc::scoped_refptr<AudioTrackInterface> track = | 465 rtc::scoped_refptr<AudioTrackInterface> track = |
471 AudioTrack::Create(kAudioTrackId, nullptr); | 466 AudioTrack::Create(kAudioTrackId, nullptr); |
472 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, true, _, _)); | 467 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, true, _, _)); |
473 rtc::scoped_refptr<AudioRtpSender> sender = | 468 rtc::scoped_refptr<AudioRtpSender> sender = |
474 new AudioRtpSender(track, kStreamLabel1, &audio_provider_, nullptr); | 469 new AudioRtpSender(track, kStreamLabel1, &audio_provider_, nullptr); |
475 sender->SetSsrc(kAudioSsrc); | 470 sender->SetSsrc(kAudioSsrc); |
476 | 471 |
477 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, false, _, _)).Times(1); | 472 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, false, _, _)).Times(1); |
478 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc2, true, _, _)).Times(1); | 473 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc2, true, _, _)).Times(1); |
479 sender->SetSsrc(kAudioSsrc2); | 474 sender->SetSsrc(kAudioSsrc2); |
480 | 475 |
481 // Calls expected from destructor. | 476 // Calls expected from destructor. |
482 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc2, false, _, _)).Times(1); | 477 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc2, false, _, _)).Times(1); |
483 } | 478 } |
484 | 479 |
485 TEST_F(RtpSenderReceiverTest, VideoSenderSsrcChanged) { | 480 TEST_F(RtpSenderReceiverTest, VideoSenderSsrcChanged) { |
486 AddVideoTrack(); | 481 AddVideoTrack(); |
487 EXPECT_CALL(video_provider_, SetSource(kVideoSsrc, video_track_.get())); | 482 EXPECT_CALL(video_provider_, |
488 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, true, _)); | 483 SetVideoSend(kVideoSsrc, true, _, video_track_.get())); |
489 rtc::scoped_refptr<VideoRtpSender> sender = | 484 rtc::scoped_refptr<VideoRtpSender> sender = |
490 new VideoRtpSender(video_track_, kStreamLabel1, &video_provider_); | 485 new VideoRtpSender(video_track_, kStreamLabel1, &video_provider_); |
491 sender->SetSsrc(kVideoSsrc); | 486 sender->SetSsrc(kVideoSsrc); |
492 | 487 |
493 EXPECT_CALL(video_provider_, SetSource(kVideoSsrc, nullptr)).Times(1); | 488 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, false, _, nullptr)) |
494 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, false, _)).Times(1); | 489 .Times(1); |
495 EXPECT_CALL(video_provider_, SetSource(kVideoSsrc2, video_track_.get())); | 490 EXPECT_CALL(video_provider_, |
496 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc2, true, _)); | 491 SetVideoSend(kVideoSsrc2, true, _, video_track_.get())) |
| 492 .Times(1); |
497 sender->SetSsrc(kVideoSsrc2); | 493 sender->SetSsrc(kVideoSsrc2); |
498 | 494 |
499 // Calls expected from destructor. | 495 // Calls expected from destructor. |
500 EXPECT_CALL(video_provider_, SetSource(kVideoSsrc2, nullptr)).Times(1); | 496 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc2, false, _, nullptr)) |
501 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc2, false, _)).Times(1); | 497 .Times(1); |
502 } | 498 } |
503 | 499 |
504 TEST_F(RtpSenderReceiverTest, AudioSenderCanSetParameters) { | 500 TEST_F(RtpSenderReceiverTest, AudioSenderCanSetParameters) { |
505 CreateAudioRtpSender(); | 501 CreateAudioRtpSender(); |
506 | 502 |
507 EXPECT_CALL(audio_provider_, GetAudioRtpParameters(kAudioSsrc)) | 503 EXPECT_CALL(audio_provider_, GetAudioRtpParameters(kAudioSsrc)) |
508 .WillOnce(Return(RtpParameters())); | 504 .WillOnce(Return(RtpParameters())); |
509 EXPECT_CALL(audio_provider_, SetAudioRtpParameters(kAudioSsrc, _)) | 505 EXPECT_CALL(audio_provider_, SetAudioRtpParameters(kAudioSsrc, _)) |
510 .WillOnce(Return(true)); | 506 .WillOnce(Return(true)); |
511 RtpParameters params = audio_rtp_sender_->GetParameters(); | 507 RtpParameters params = audio_rtp_sender_->GetParameters(); |
512 EXPECT_TRUE(audio_rtp_sender_->SetParameters(params)); | 508 EXPECT_TRUE(audio_rtp_sender_->SetParameters(params)); |
513 | 509 |
514 DestroyAudioRtpSender(); | 510 DestroyAudioRtpSender(); |
515 } | 511 } |
516 | 512 |
517 TEST_F(RtpSenderReceiverTest, VideoSenderCanSetParameters) { | 513 TEST_F(RtpSenderReceiverTest, VideoSenderCanSetParameters) { |
518 CreateVideoRtpSender(); | 514 CreateVideoRtpSender(); |
519 | 515 |
520 EXPECT_CALL(video_provider_, GetVideoRtpParameters(kVideoSsrc)) | 516 EXPECT_CALL(video_provider_, GetVideoRtpParameters(kVideoSsrc)) |
521 .WillOnce(Return(RtpParameters())); | 517 .WillOnce(Return(RtpParameters())); |
522 EXPECT_CALL(video_provider_, SetVideoRtpParameters(kVideoSsrc, _)) | 518 EXPECT_CALL(video_provider_, SetVideoRtpParameters(kVideoSsrc, _)) |
523 .WillOnce(Return(true)); | 519 .WillOnce(Return(true)); |
524 RtpParameters params = video_rtp_sender_->GetParameters(); | 520 RtpParameters params = video_rtp_sender_->GetParameters(); |
525 EXPECT_TRUE(video_rtp_sender_->SetParameters(params)); | 521 EXPECT_TRUE(video_rtp_sender_->SetParameters(params)); |
526 | 522 |
527 DestroyVideoRtpSender(); | 523 DestroyVideoRtpSender(); |
528 } | 524 } |
529 | 525 |
530 } // namespace webrtc | 526 } // namespace webrtc |
OLD | NEW |