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 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
73 } | 73 } |
74 | 74 |
75 private: | 75 private: |
76 std::unique_ptr<AudioSinkInterface> sink_; | 76 std::unique_ptr<AudioSinkInterface> sink_; |
77 }; | 77 }; |
78 | 78 |
79 // Helper class to test RtpSender/RtpReceiver. | 79 // Helper class to test RtpSender/RtpReceiver. |
80 class MockVideoProvider : public VideoProviderInterface { | 80 class MockVideoProvider : public VideoProviderInterface { |
81 public: | 81 public: |
82 virtual ~MockVideoProvider() {} | 82 virtual ~MockVideoProvider() {} |
83 MOCK_METHOD2(SetSource, | |
84 bool(uint32_t ssrc, | |
85 rtc::VideoSourceInterface<cricket::VideoFrame>* source)); | |
86 MOCK_METHOD3(SetVideoPlayout, | 83 MOCK_METHOD3(SetVideoPlayout, |
87 void(uint32_t ssrc, | 84 void(uint32_t ssrc, |
88 bool enable, | 85 bool enable, |
89 rtc::VideoSinkInterface<cricket::VideoFrame>* sink)); | 86 rtc::VideoSinkInterface<cricket::VideoFrame>* sink)); |
90 MOCK_METHOD3(SetVideoSend, | 87 MOCK_METHOD4(SetVideoSend, |
91 void(uint32_t ssrc, | 88 void(uint32_t ssrc, |
92 bool enable, | 89 bool enable, |
93 const cricket::VideoOptions* options)); | 90 const cricket::VideoOptions* options, |
| 91 rtc::VideoSourceInterface<cricket::VideoFrame>* source)); |
94 | 92 |
95 MOCK_CONST_METHOD1(GetVideoRtpSendParameters, RtpParameters(uint32_t ssrc)); | 93 MOCK_CONST_METHOD1(GetVideoRtpSendParameters, RtpParameters(uint32_t ssrc)); |
96 MOCK_METHOD2(SetVideoRtpSendParameters, | 94 MOCK_METHOD2(SetVideoRtpSendParameters, |
97 bool(uint32_t ssrc, const RtpParameters&)); | 95 bool(uint32_t ssrc, const RtpParameters&)); |
98 MOCK_CONST_METHOD1(GetVideoRtpReceiveParameters, | 96 MOCK_CONST_METHOD1(GetVideoRtpReceiveParameters, |
99 RtpParameters(uint32_t ssrc)); | 97 RtpParameters(uint32_t ssrc)); |
100 MOCK_METHOD2(SetVideoRtpReceiveParameters, | 98 MOCK_METHOD2(SetVideoRtpReceiveParameters, |
101 bool(uint32_t ssrc, const RtpParameters&)); | 99 bool(uint32_t ssrc, const RtpParameters&)); |
102 }; | 100 }; |
103 | 101 |
(...skipping 15 matching lines...) Expand all Loading... |
119 EXPECT_TRUE(stream_->AddTrack(audio_track_)); | 117 EXPECT_TRUE(stream_->AddTrack(audio_track_)); |
120 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, true, _, _)); | 118 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, true, _, _)); |
121 audio_rtp_sender_ = | 119 audio_rtp_sender_ = |
122 new AudioRtpSender(stream_->GetAudioTracks()[0], stream_->label(), | 120 new AudioRtpSender(stream_->GetAudioTracks()[0], stream_->label(), |
123 &audio_provider_, nullptr); | 121 &audio_provider_, nullptr); |
124 audio_rtp_sender_->SetSsrc(kAudioSsrc); | 122 audio_rtp_sender_->SetSsrc(kAudioSsrc); |
125 } | 123 } |
126 | 124 |
127 void CreateVideoRtpSender() { | 125 void CreateVideoRtpSender() { |
128 AddVideoTrack(); | 126 AddVideoTrack(); |
129 EXPECT_CALL(video_provider_, SetSource(kVideoSsrc, video_track_.get())); | 127 EXPECT_CALL(video_provider_, |
130 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, true, _)); | 128 SetVideoSend(kVideoSsrc, true, _, video_track_.get())); |
131 video_rtp_sender_ = new VideoRtpSender(stream_->GetVideoTracks()[0], | 129 video_rtp_sender_ = new VideoRtpSender(stream_->GetVideoTracks()[0], |
132 stream_->label(), &video_provider_); | 130 stream_->label(), &video_provider_); |
133 video_rtp_sender_->SetSsrc(kVideoSsrc); | 131 video_rtp_sender_->SetSsrc(kVideoSsrc); |
134 } | 132 } |
135 | 133 |
136 void DestroyAudioRtpSender() { | 134 void DestroyAudioRtpSender() { |
137 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, false, _, _)) | 135 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, false, _, _)) |
138 .Times(1); | 136 .Times(1); |
139 audio_rtp_sender_ = nullptr; | 137 audio_rtp_sender_ = nullptr; |
140 } | 138 } |
141 | 139 |
142 void DestroyVideoRtpSender() { | 140 void DestroyVideoRtpSender() { |
143 EXPECT_CALL(video_provider_, SetSource(kVideoSsrc, NULL)).Times(1); | 141 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, false, _, nullptr)) |
144 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, false, _)).Times(1); | 142 .Times(1); |
145 video_rtp_sender_ = nullptr; | 143 video_rtp_sender_ = nullptr; |
146 } | 144 } |
147 | 145 |
148 void CreateAudioRtpReceiver() { | 146 void CreateAudioRtpReceiver() { |
149 audio_track_ = AudioTrack::Create( | 147 audio_track_ = AudioTrack::Create( |
150 kAudioTrackId, RemoteAudioSource::Create(kAudioSsrc, NULL)); | 148 kAudioTrackId, RemoteAudioSource::Create(kAudioSsrc, NULL)); |
151 EXPECT_TRUE(stream_->AddTrack(audio_track_)); | 149 EXPECT_TRUE(stream_->AddTrack(audio_track_)); |
152 EXPECT_CALL(audio_provider_, SetAudioPlayout(kAudioSsrc, true)); | 150 EXPECT_CALL(audio_provider_, SetAudioPlayout(kAudioSsrc, true)); |
153 audio_rtp_receiver_ = new AudioRtpReceiver(stream_, kAudioTrackId, | 151 audio_rtp_receiver_ = new AudioRtpReceiver(stream_, kAudioTrackId, |
154 kAudioSsrc, &audio_provider_); | 152 kAudioSsrc, &audio_provider_); |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
233 | 231 |
234 EXPECT_CALL(audio_provider_, SetAudioPlayout(kAudioSsrc, true)); | 232 EXPECT_CALL(audio_provider_, SetAudioPlayout(kAudioSsrc, true)); |
235 audio_track_->set_enabled(true); | 233 audio_track_->set_enabled(true); |
236 | 234 |
237 DestroyAudioRtpReceiver(); | 235 DestroyAudioRtpReceiver(); |
238 } | 236 } |
239 | 237 |
240 TEST_F(RtpSenderReceiverTest, LocalVideoTrackDisable) { | 238 TEST_F(RtpSenderReceiverTest, LocalVideoTrackDisable) { |
241 CreateVideoRtpSender(); | 239 CreateVideoRtpSender(); |
242 | 240 |
243 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, false, _)); | 241 EXPECT_CALL(video_provider_, |
| 242 SetVideoSend(kVideoSsrc, false, _, video_track_.get())); |
244 video_track_->set_enabled(false); | 243 video_track_->set_enabled(false); |
245 | 244 |
246 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, true, _)); | 245 EXPECT_CALL(video_provider_, |
| 246 SetVideoSend(kVideoSsrc, true, _, video_track_.get())); |
247 video_track_->set_enabled(true); | 247 video_track_->set_enabled(true); |
248 | 248 |
249 DestroyVideoRtpSender(); | 249 DestroyVideoRtpSender(); |
250 } | 250 } |
251 | 251 |
252 TEST_F(RtpSenderReceiverTest, RemoteVideoTrackState) { | 252 TEST_F(RtpSenderReceiverTest, RemoteVideoTrackState) { |
253 CreateVideoRtpReceiver(); | 253 CreateVideoRtpReceiver(); |
254 | 254 |
255 EXPECT_EQ(webrtc::MediaStreamTrackInterface::kLive, video_track_->state()); | 255 EXPECT_EQ(webrtc::MediaStreamTrackInterface::kLive, video_track_->state()); |
256 EXPECT_EQ(webrtc::MediaSourceInterface::kLive, | 256 EXPECT_EQ(webrtc::MediaSourceInterface::kLive, |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
351 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, false, _, _)).Times(1); | 351 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, false, _, _)).Times(1); |
352 } | 352 } |
353 | 353 |
354 // Test that a video sender calls the expected methods on the provider once | 354 // Test that a video sender calls the expected methods on the provider once |
355 // it has a track and SSRC, when the SSRC is set first. | 355 // it has a track and SSRC, when the SSRC is set first. |
356 TEST_F(RtpSenderReceiverTest, VideoSenderEarlyWarmupSsrcThenTrack) { | 356 TEST_F(RtpSenderReceiverTest, VideoSenderEarlyWarmupSsrcThenTrack) { |
357 AddVideoTrack(); | 357 AddVideoTrack(); |
358 rtc::scoped_refptr<VideoRtpSender> sender = | 358 rtc::scoped_refptr<VideoRtpSender> sender = |
359 new VideoRtpSender(&video_provider_); | 359 new VideoRtpSender(&video_provider_); |
360 sender->SetSsrc(kVideoSsrc); | 360 sender->SetSsrc(kVideoSsrc); |
361 EXPECT_CALL(video_provider_, SetSource(kVideoSsrc, video_track_.get())); | 361 EXPECT_CALL(video_provider_, |
362 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, true, _)); | 362 SetVideoSend(kVideoSsrc, true, _, video_track_.get())); |
363 sender->SetTrack(video_track_); | 363 sender->SetTrack(video_track_); |
364 | 364 |
365 // Calls expected from destructor. | 365 // Calls expected from destructor. |
366 EXPECT_CALL(video_provider_, SetSource(kVideoSsrc, nullptr)).Times(1); | 366 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, false, _, nullptr)) |
367 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, false, _)).Times(1); | 367 .Times(1); |
368 } | 368 } |
369 | 369 |
370 // Test that a video sender calls the expected methods on the provider once | 370 // Test that a video sender calls the expected methods on the provider once |
371 // it has a track and SSRC, when the SSRC is set last. | 371 // it has a track and SSRC, when the SSRC is set last. |
372 TEST_F(RtpSenderReceiverTest, VideoSenderEarlyWarmupTrackThenSsrc) { | 372 TEST_F(RtpSenderReceiverTest, VideoSenderEarlyWarmupTrackThenSsrc) { |
373 AddVideoTrack(); | 373 AddVideoTrack(); |
374 rtc::scoped_refptr<VideoRtpSender> sender = | 374 rtc::scoped_refptr<VideoRtpSender> sender = |
375 new VideoRtpSender(&video_provider_); | 375 new VideoRtpSender(&video_provider_); |
376 sender->SetTrack(video_track_); | 376 sender->SetTrack(video_track_); |
377 EXPECT_CALL(video_provider_, SetSource(kVideoSsrc, video_track_.get())); | 377 EXPECT_CALL(video_provider_, |
378 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, true, _)); | 378 SetVideoSend(kVideoSsrc, true, _, video_track_.get())); |
379 sender->SetSsrc(kVideoSsrc); | 379 sender->SetSsrc(kVideoSsrc); |
380 | 380 |
381 // Calls expected from destructor. | 381 // Calls expected from destructor. |
382 EXPECT_CALL(video_provider_, SetSource(kVideoSsrc, nullptr)).Times(1); | 382 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, false, _, nullptr)) |
383 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, false, _)).Times(1); | 383 .Times(1); |
384 } | 384 } |
385 | 385 |
386 // Test that the sender is disconnected from the provider when its SSRC is | 386 // Test that the sender is disconnected from the provider when its SSRC is |
387 // set to 0. | 387 // set to 0. |
388 TEST_F(RtpSenderReceiverTest, AudioSenderSsrcSetToZero) { | 388 TEST_F(RtpSenderReceiverTest, AudioSenderSsrcSetToZero) { |
389 rtc::scoped_refptr<AudioTrackInterface> track = | 389 rtc::scoped_refptr<AudioTrackInterface> track = |
390 AudioTrack::Create(kAudioTrackId, nullptr); | 390 AudioTrack::Create(kAudioTrackId, nullptr); |
391 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, true, _, _)); | 391 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, true, _, _)); |
392 rtc::scoped_refptr<AudioRtpSender> sender = | 392 rtc::scoped_refptr<AudioRtpSender> sender = |
393 new AudioRtpSender(track, kStreamLabel1, &audio_provider_, nullptr); | 393 new AudioRtpSender(track, kStreamLabel1, &audio_provider_, nullptr); |
394 sender->SetSsrc(kAudioSsrc); | 394 sender->SetSsrc(kAudioSsrc); |
395 | 395 |
396 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, false, _, _)).Times(1); | 396 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, false, _, _)).Times(1); |
397 sender->SetSsrc(0); | 397 sender->SetSsrc(0); |
398 | 398 |
399 // Make sure it's SetSsrc that called methods on the provider, and not the | 399 // Make sure it's SetSsrc that called methods on the provider, and not the |
400 // destructor. | 400 // destructor. |
401 EXPECT_CALL(audio_provider_, SetAudioSend(_, _, _, _)).Times(0); | 401 EXPECT_CALL(audio_provider_, SetAudioSend(_, _, _, _)).Times(0); |
402 } | 402 } |
403 | 403 |
404 // Test that the sender is disconnected from the provider when its SSRC is | 404 // Test that the sender is disconnected from the provider when its SSRC is |
405 // set to 0. | 405 // set to 0. |
406 TEST_F(RtpSenderReceiverTest, VideoSenderSsrcSetToZero) { | 406 TEST_F(RtpSenderReceiverTest, VideoSenderSsrcSetToZero) { |
407 AddVideoTrack(); | 407 AddVideoTrack(); |
408 EXPECT_CALL(video_provider_, SetSource(kVideoSsrc, video_track_.get())); | 408 EXPECT_CALL(video_provider_, |
409 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, true, _)); | 409 SetVideoSend(kVideoSsrc, true, _, video_track_.get())); |
410 rtc::scoped_refptr<VideoRtpSender> sender = | 410 rtc::scoped_refptr<VideoRtpSender> sender = |
411 new VideoRtpSender(video_track_, kStreamLabel1, &video_provider_); | 411 new VideoRtpSender(video_track_, kStreamLabel1, &video_provider_); |
412 sender->SetSsrc(kVideoSsrc); | 412 sender->SetSsrc(kVideoSsrc); |
413 | 413 |
414 EXPECT_CALL(video_provider_, SetSource(kVideoSsrc, nullptr)).Times(1); | 414 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, false, _, nullptr)) |
415 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, false, _)).Times(1); | 415 .Times(1); |
416 sender->SetSsrc(0); | 416 sender->SetSsrc(0); |
417 | 417 |
418 // Make sure it's SetSsrc that called methods on the provider, and not the | 418 // Make sure it's SetSsrc that called methods on the provider, and not the |
419 // destructor. | 419 // destructor. |
420 EXPECT_CALL(video_provider_, SetSource(_, _)).Times(0); | 420 EXPECT_CALL(video_provider_, SetVideoSend(_, _, _, _)).Times(0); |
421 EXPECT_CALL(video_provider_, SetVideoSend(_, _, _)).Times(0); | |
422 } | 421 } |
423 | 422 |
424 TEST_F(RtpSenderReceiverTest, AudioSenderTrackSetToNull) { | 423 TEST_F(RtpSenderReceiverTest, AudioSenderTrackSetToNull) { |
425 rtc::scoped_refptr<AudioTrackInterface> track = | 424 rtc::scoped_refptr<AudioTrackInterface> track = |
426 AudioTrack::Create(kAudioTrackId, nullptr); | 425 AudioTrack::Create(kAudioTrackId, nullptr); |
427 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, true, _, _)); | 426 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, true, _, _)); |
428 rtc::scoped_refptr<AudioRtpSender> sender = | 427 rtc::scoped_refptr<AudioRtpSender> sender = |
429 new AudioRtpSender(track, kStreamLabel1, &audio_provider_, nullptr); | 428 new AudioRtpSender(track, kStreamLabel1, &audio_provider_, nullptr); |
430 sender->SetSsrc(kAudioSsrc); | 429 sender->SetSsrc(kAudioSsrc); |
431 | 430 |
(...skipping 10 matching lines...) Expand all Loading... |
442 // Make sure it's SetTrack that called methods on the provider, and not the | 441 // Make sure it's SetTrack that called methods on the provider, and not the |
443 // destructor. | 442 // destructor. |
444 EXPECT_CALL(audio_provider_, SetAudioSend(_, _, _, _)).Times(0); | 443 EXPECT_CALL(audio_provider_, SetAudioSend(_, _, _, _)).Times(0); |
445 } | 444 } |
446 | 445 |
447 TEST_F(RtpSenderReceiverTest, VideoSenderTrackSetToNull) { | 446 TEST_F(RtpSenderReceiverTest, VideoSenderTrackSetToNull) { |
448 rtc::scoped_refptr<VideoTrackSourceInterface> source( | 447 rtc::scoped_refptr<VideoTrackSourceInterface> source( |
449 FakeVideoTrackSource::Create()); | 448 FakeVideoTrackSource::Create()); |
450 rtc::scoped_refptr<VideoTrackInterface> track = | 449 rtc::scoped_refptr<VideoTrackInterface> track = |
451 VideoTrack::Create(kVideoTrackId, source); | 450 VideoTrack::Create(kVideoTrackId, source); |
452 EXPECT_CALL(video_provider_, SetSource(kVideoSsrc, track.get())); | 451 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, true, _, track.get())); |
453 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, true, _)); | |
454 rtc::scoped_refptr<VideoRtpSender> sender = | 452 rtc::scoped_refptr<VideoRtpSender> sender = |
455 new VideoRtpSender(track, kStreamLabel1, &video_provider_); | 453 new VideoRtpSender(track, kStreamLabel1, &video_provider_); |
456 sender->SetSsrc(kVideoSsrc); | 454 sender->SetSsrc(kVideoSsrc); |
457 | 455 |
458 // Expect that SetSource will be called before the reference to the track | 456 // Expect that SetVideoSend will be called before the reference to the track |
459 // is released. | 457 // is released. |
460 EXPECT_CALL(video_provider_, SetSource(kVideoSsrc, nullptr)) | 458 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, false, _, nullptr)) |
461 .Times(1) | 459 .Times(1) |
462 .WillOnce(InvokeWithoutArgs([&track] { | 460 .WillOnce(InvokeWithoutArgs([&track] { |
463 EXPECT_LT(2, track->AddRef()); | 461 EXPECT_LT(2, track->AddRef()); |
464 track->Release(); | 462 track->Release(); |
465 return true; | |
466 })); | 463 })); |
467 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, false, _)).Times(1); | |
468 EXPECT_TRUE(sender->SetTrack(nullptr)); | 464 EXPECT_TRUE(sender->SetTrack(nullptr)); |
469 | 465 |
470 // Make sure it's SetTrack that called methods on the provider, and not the | 466 // Make sure it's SetTrack that called methods on the provider, and not the |
471 // destructor. | 467 // destructor. |
472 EXPECT_CALL(video_provider_, SetSource(_, _)).Times(0); | 468 EXPECT_CALL(video_provider_, SetVideoSend(_, _, _, _)).Times(0); |
473 EXPECT_CALL(video_provider_, SetVideoSend(_, _, _)).Times(0); | |
474 } | 469 } |
475 | 470 |
476 TEST_F(RtpSenderReceiverTest, AudioSenderSsrcChanged) { | 471 TEST_F(RtpSenderReceiverTest, AudioSenderSsrcChanged) { |
477 AddVideoTrack(); | 472 AddVideoTrack(); |
478 rtc::scoped_refptr<AudioTrackInterface> track = | 473 rtc::scoped_refptr<AudioTrackInterface> track = |
479 AudioTrack::Create(kAudioTrackId, nullptr); | 474 AudioTrack::Create(kAudioTrackId, nullptr); |
480 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, true, _, _)); | 475 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, true, _, _)); |
481 rtc::scoped_refptr<AudioRtpSender> sender = | 476 rtc::scoped_refptr<AudioRtpSender> sender = |
482 new AudioRtpSender(track, kStreamLabel1, &audio_provider_, nullptr); | 477 new AudioRtpSender(track, kStreamLabel1, &audio_provider_, nullptr); |
483 sender->SetSsrc(kAudioSsrc); | 478 sender->SetSsrc(kAudioSsrc); |
484 | 479 |
485 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, false, _, _)).Times(1); | 480 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, false, _, _)).Times(1); |
486 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc2, true, _, _)).Times(1); | 481 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc2, true, _, _)).Times(1); |
487 sender->SetSsrc(kAudioSsrc2); | 482 sender->SetSsrc(kAudioSsrc2); |
488 | 483 |
489 // Calls expected from destructor. | 484 // Calls expected from destructor. |
490 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc2, false, _, _)).Times(1); | 485 EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc2, false, _, _)).Times(1); |
491 } | 486 } |
492 | 487 |
493 TEST_F(RtpSenderReceiverTest, VideoSenderSsrcChanged) { | 488 TEST_F(RtpSenderReceiverTest, VideoSenderSsrcChanged) { |
494 AddVideoTrack(); | 489 AddVideoTrack(); |
495 EXPECT_CALL(video_provider_, SetSource(kVideoSsrc, video_track_.get())); | 490 EXPECT_CALL(video_provider_, |
496 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, true, _)); | 491 SetVideoSend(kVideoSsrc, true, _, video_track_.get())); |
497 rtc::scoped_refptr<VideoRtpSender> sender = | 492 rtc::scoped_refptr<VideoRtpSender> sender = |
498 new VideoRtpSender(video_track_, kStreamLabel1, &video_provider_); | 493 new VideoRtpSender(video_track_, kStreamLabel1, &video_provider_); |
499 sender->SetSsrc(kVideoSsrc); | 494 sender->SetSsrc(kVideoSsrc); |
500 | 495 |
501 EXPECT_CALL(video_provider_, SetSource(kVideoSsrc, nullptr)).Times(1); | 496 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, false, _, nullptr)) |
502 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc, false, _)).Times(1); | 497 .Times(1); |
503 EXPECT_CALL(video_provider_, SetSource(kVideoSsrc2, video_track_.get())); | 498 EXPECT_CALL(video_provider_, |
504 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc2, true, _)); | 499 SetVideoSend(kVideoSsrc2, true, _, video_track_.get())) |
| 500 .Times(1); |
505 sender->SetSsrc(kVideoSsrc2); | 501 sender->SetSsrc(kVideoSsrc2); |
506 | 502 |
507 // Calls expected from destructor. | 503 // Calls expected from destructor. |
508 EXPECT_CALL(video_provider_, SetSource(kVideoSsrc2, nullptr)).Times(1); | 504 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc2, false, _, nullptr)) |
509 EXPECT_CALL(video_provider_, SetVideoSend(kVideoSsrc2, false, _)).Times(1); | 505 .Times(1); |
510 } | 506 } |
511 | 507 |
512 TEST_F(RtpSenderReceiverTest, AudioSenderCanSetParameters) { | 508 TEST_F(RtpSenderReceiverTest, AudioSenderCanSetParameters) { |
513 CreateAudioRtpSender(); | 509 CreateAudioRtpSender(); |
514 | 510 |
515 EXPECT_CALL(audio_provider_, GetAudioRtpSendParameters(kAudioSsrc)) | 511 EXPECT_CALL(audio_provider_, GetAudioRtpSendParameters(kAudioSsrc)) |
516 .WillOnce(Return(RtpParameters())); | 512 .WillOnce(Return(RtpParameters())); |
517 EXPECT_CALL(audio_provider_, SetAudioRtpSendParameters(kAudioSsrc, _)) | 513 EXPECT_CALL(audio_provider_, SetAudioRtpSendParameters(kAudioSsrc, _)) |
518 .WillOnce(Return(true)); | 514 .WillOnce(Return(true)); |
519 RtpParameters params = audio_rtp_sender_->GetParameters(); | 515 RtpParameters params = audio_rtp_sender_->GetParameters(); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
555 .WillOnce(Return(RtpParameters())); | 551 .WillOnce(Return(RtpParameters())); |
556 EXPECT_CALL(video_provider_, SetVideoRtpReceiveParameters(kVideoSsrc, _)) | 552 EXPECT_CALL(video_provider_, SetVideoRtpReceiveParameters(kVideoSsrc, _)) |
557 .WillOnce(Return(true)); | 553 .WillOnce(Return(true)); |
558 RtpParameters params = video_rtp_receiver_->GetParameters(); | 554 RtpParameters params = video_rtp_receiver_->GetParameters(); |
559 EXPECT_TRUE(video_rtp_receiver_->SetParameters(params)); | 555 EXPECT_TRUE(video_rtp_receiver_->SetParameters(params)); |
560 | 556 |
561 DestroyVideoRtpReceiver(); | 557 DestroyVideoRtpReceiver(); |
562 } | 558 } |
563 | 559 |
564 } // namespace webrtc | 560 } // namespace webrtc |
OLD | NEW |