diff --git a/webrtc/api/mediastream_unittest.cc b/webrtc/api/mediastream_unittest.cc index fee92b737a..f017466ea2 100644 --- a/webrtc/api/mediastream_unittest.cc +++ b/webrtc/api/mediastream_unittest.cc @@ -13,6 +13,7 @@ #include "webrtc/api/audiotrack.h" #include "webrtc/api/mediastream.h" #include "webrtc/api/videotrack.h" +#include "webrtc/api/test/fakevideotracksource.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" #include "webrtc/base/gunit.h" @@ -56,7 +57,8 @@ class MediaStreamTest: public testing::Test { stream_ = MediaStream::Create(kStreamLabel1); ASSERT_TRUE(stream_.get() != NULL); - video_track_ = VideoTrack::Create(kVideoTrackId, NULL); + video_track_ = + VideoTrack::Create(kVideoTrackId, FakeVideoTrackSource::Create()); ASSERT_TRUE(video_track_.get() != NULL); EXPECT_EQ(MediaStreamTrackInterface::kInitializing, video_track_->state()); diff --git a/webrtc/api/peerconnectioninterface_unittest.cc b/webrtc/api/peerconnectioninterface_unittest.cc index d4678bae0f..4d5eb966f5 100644 --- a/webrtc/api/peerconnectioninterface_unittest.cc +++ b/webrtc/api/peerconnectioninterface_unittest.cc @@ -25,6 +25,7 @@ #endif #include "webrtc/api/test/fakeconstraints.h" #include "webrtc/api/test/fakedtlsidentitystore.h" +#include "webrtc/api/test/fakevideotracksource.h" #include "webrtc/api/test/mockpeerconnectionobservers.h" #include "webrtc/api/test/testsdpstrings.h" #include "webrtc/api/videocapturertracksource.h" @@ -341,7 +342,8 @@ rtc::scoped_refptr CreateStreamCollection( // Add a local video track. rtc::scoped_refptr video_track( - webrtc::VideoTrack::Create(kVideoTracks[i], nullptr)); + webrtc::VideoTrack::Create(kVideoTracks[i], + webrtc::FakeVideoTrackSource::Create())); stream->AddTrack(video_track); local_collection->AddStream(stream); @@ -630,7 +632,9 @@ class PeerConnectionInterfaceTest : public testing::Test { audio_track_label, static_cast(NULL))); stream->AddTrack(audio_track.get()); scoped_refptr video_track( - pc_factory_->CreateVideoTrack(video_track_label, NULL)); + pc_factory_->CreateVideoTrack( + video_track_label, + pc_factory_->CreateVideoSource(new cricket::FakeVideoCapturer()))); stream->AddTrack(video_track.get()); EXPECT_TRUE(pc_->AddStream(stream)); EXPECT_TRUE_WAIT(observer_.renegotiation_needed_, kTimeout); @@ -899,7 +903,8 @@ class PeerConnectionInterfaceTest : public testing::Test { void AddVideoTrack(const std::string& track_id, MediaStreamInterface* stream) { rtc::scoped_refptr video_track( - webrtc::VideoTrack::Create(track_id, nullptr)); + webrtc::VideoTrack::Create(track_id, + webrtc::FakeVideoTrackSource::Create())); ASSERT_TRUE(stream->AddTrack(video_track)); } @@ -1010,8 +1015,9 @@ TEST_F(PeerConnectionInterfaceTest, AddTrackRemoveTrack) { stream_list.push_back(stream.get()); scoped_refptr audio_track( pc_factory_->CreateAudioTrack("audio_track", nullptr)); - scoped_refptr video_track( - pc_factory_->CreateVideoTrack("video_track", nullptr)); + scoped_refptr video_track(pc_factory_->CreateVideoTrack( + "video_track", + pc_factory_->CreateVideoSource(new cricket::FakeVideoCapturer()))); auto audio_sender = pc_->AddTrack(audio_track, stream_list); auto video_sender = pc_->AddTrack(video_track, stream_list); EXPECT_EQ(kStreamLabel1, audio_sender->stream_id()); @@ -1077,8 +1083,9 @@ TEST_F(PeerConnectionInterfaceTest, AddTrackWithoutStream) { // Create a dummy stream, so tracks share a stream label. scoped_refptr audio_track( pc_factory_->CreateAudioTrack("audio_track", nullptr)); - scoped_refptr video_track( - pc_factory_->CreateVideoTrack("video_track", nullptr)); + scoped_refptr video_track(pc_factory_->CreateVideoTrack( + "video_track", + pc_factory_->CreateVideoSource(new cricket::FakeVideoCapturer()))); auto audio_sender = pc_->AddTrack(audio_track, std::vector()); auto video_sender = @@ -1237,8 +1244,9 @@ TEST_F(PeerConnectionInterfaceTest, AddTrackAfterAddStream) { MediaStreamInterface* stream = pc_->local_streams()->at(0); // Add video track to the audio-only stream. - scoped_refptr video_track( - pc_factory_->CreateVideoTrack("video_label", nullptr)); + scoped_refptr video_track(pc_factory_->CreateVideoTrack( + "video_label", + pc_factory_->CreateVideoSource(new cricket::FakeVideoCapturer()))); stream->AddTrack(video_track.get()); scoped_ptr offer; @@ -2429,7 +2437,7 @@ class PeerConnectionFactoryForTest : public webrtc::PeerConnectionFactory { class PeerConnectionMediaConfigTest : public testing::Test { protected: void SetUp() override { - pcf_= new rtc::RefCountedObject(); + pcf_ = new rtc::RefCountedObject(); pcf_->Initialize(); } const cricket::MediaConfig& TestCreatePeerConnection( diff --git a/webrtc/api/rtpsenderreceiver_unittest.cc b/webrtc/api/rtpsenderreceiver_unittest.cc index b26526fffd..fd1c1f33b1 100644 --- a/webrtc/api/rtpsenderreceiver_unittest.cc +++ b/webrtc/api/rtpsenderreceiver_unittest.cc @@ -19,10 +19,10 @@ #include "webrtc/api/rtpreceiver.h" #include "webrtc/api/rtpsender.h" #include "webrtc/api/streamcollection.h" +#include "webrtc/api/test/fakevideotracksource.h" #include "webrtc/api/videotracksource.h" #include "webrtc/api/videotrack.h" #include "webrtc/base/gunit.h" -#include "webrtc/media/base/fakevideocapturer.h" #include "webrtc/media/base/mediachannel.h" using ::testing::_; @@ -86,31 +86,15 @@ class MockVideoProvider : public VideoProviderInterface { bool(uint32_t ssrc, const RtpParameters&)); }; -class FakeVideoTrackSource : public VideoTrackSource { - public: - static rtc::scoped_refptr Create(bool remote) { - return new rtc::RefCountedObject(remote); - } - cricket::VideoCapturer* GetVideoCapturer() { return &fake_capturer_; } - - protected: - explicit FakeVideoTrackSource(bool remote) - : VideoTrackSource(&fake_capturer_, rtc::Thread::Current(), remote) {} - ~FakeVideoTrackSource() {} - - private: - cricket::FakeVideoCapturer fake_capturer_; -}; - class RtpSenderReceiverTest : public testing::Test { public: virtual void SetUp() { stream_ = MediaStream::Create(kStreamLabel1); } - void AddVideoTrack(bool remote) { + void AddVideoTrack() { rtc::scoped_refptr source( - FakeVideoTrackSource::Create(remote)); + FakeVideoTrackSource::Create()); video_track_ = VideoTrack::Create(kVideoTrackId, source); EXPECT_TRUE(stream_->AddTrack(video_track_)); } @@ -126,7 +110,7 @@ class RtpSenderReceiverTest : public testing::Test { } void CreateVideoRtpSender() { - AddVideoTrack(false); + AddVideoTrack(); EXPECT_CALL(video_provider_, SetCaptureDevice( kVideoSsrc, video_track_->GetSource()->GetVideoCapturer())); @@ -356,7 +340,7 @@ TEST_F(RtpSenderReceiverTest, AudioSenderEarlyWarmupTrackThenSsrc) { // Test that a video sender calls the expected methods on the provider once // it has a track and SSRC, when the SSRC is set first. TEST_F(RtpSenderReceiverTest, VideoSenderEarlyWarmupSsrcThenTrack) { - AddVideoTrack(false); + AddVideoTrack(); rtc::scoped_refptr sender = new VideoRtpSender(&video_provider_); sender->SetSsrc(kVideoSsrc); @@ -374,7 +358,7 @@ TEST_F(RtpSenderReceiverTest, VideoSenderEarlyWarmupSsrcThenTrack) { // Test that a video sender calls the expected methods on the provider once // it has a track and SSRC, when the SSRC is set last. TEST_F(RtpSenderReceiverTest, VideoSenderEarlyWarmupTrackThenSsrc) { - AddVideoTrack(false); + AddVideoTrack(); rtc::scoped_refptr sender = new VideoRtpSender(&video_provider_); sender->SetTrack(video_track_); @@ -410,7 +394,7 @@ TEST_F(RtpSenderReceiverTest, AudioSenderSsrcSetToZero) { // Test that the sender is disconnected from the provider when its SSRC is // set to 0. TEST_F(RtpSenderReceiverTest, VideoSenderSsrcSetToZero) { - AddVideoTrack(false); + AddVideoTrack(); EXPECT_CALL(video_provider_, SetCaptureDevice(kVideoSsrc, video_track_->GetSource()->GetVideoCapturer())); @@ -446,7 +430,7 @@ TEST_F(RtpSenderReceiverTest, AudioSenderTrackSetToNull) { } TEST_F(RtpSenderReceiverTest, VideoSenderTrackSetToNull) { - AddVideoTrack(false); + AddVideoTrack(); EXPECT_CALL(video_provider_, SetCaptureDevice(kVideoSsrc, video_track_->GetSource()->GetVideoCapturer())); @@ -466,7 +450,7 @@ TEST_F(RtpSenderReceiverTest, VideoSenderTrackSetToNull) { } TEST_F(RtpSenderReceiverTest, AudioSenderSsrcChanged) { - AddVideoTrack(false); + AddVideoTrack(); rtc::scoped_refptr track = AudioTrack::Create(kAudioTrackId, nullptr); EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, true, _, _)); @@ -483,7 +467,7 @@ TEST_F(RtpSenderReceiverTest, AudioSenderSsrcChanged) { } TEST_F(RtpSenderReceiverTest, VideoSenderSsrcChanged) { - AddVideoTrack(false); + AddVideoTrack(); EXPECT_CALL(video_provider_, SetCaptureDevice(kVideoSsrc, video_track_->GetSource()->GetVideoCapturer())); diff --git a/webrtc/api/statscollector_unittest.cc b/webrtc/api/statscollector_unittest.cc index d4a59a1a6d..a1cd1e820f 100644 --- a/webrtc/api/statscollector_unittest.cc +++ b/webrtc/api/statscollector_unittest.cc @@ -22,6 +22,7 @@ #include "webrtc/api/peerconnection.h" #include "webrtc/api/peerconnectionfactory.h" #include "webrtc/api/test/fakedatachannelprovider.h" +#include "webrtc/api/test/fakevideotracksource.h" #include "webrtc/api/videotrack.h" #include "webrtc/base/base64.h" #include "webrtc/base/fakesslidentity.h" @@ -523,7 +524,8 @@ class StatsCollectorTest : public testing::Test { // Adds a outgoing video track with a given SSRC into the stats. void AddOutgoingVideoTrackStats() { stream_ = webrtc::MediaStream::Create("streamlabel"); - track_= webrtc::VideoTrack::Create(kLocalTrackId, NULL); + track_ = webrtc::VideoTrack::Create(kLocalTrackId, + webrtc::FakeVideoTrackSource::Create()); stream_->AddTrack(track_); EXPECT_CALL(session_, GetLocalTrackIdBySsrc(kSsrcOfTrack, _)) .WillRepeatedly(DoAll(SetArgPointee<1>(kLocalTrackId), Return(true))); @@ -532,7 +534,8 @@ class StatsCollectorTest : public testing::Test { // Adds a incoming video track with a given SSRC into the stats. void AddIncomingVideoTrackStats() { stream_ = webrtc::MediaStream::Create("streamlabel"); - track_= webrtc::VideoTrack::Create(kRemoteTrackId, NULL); + track_ = webrtc::VideoTrack::Create(kRemoteTrackId, + webrtc::FakeVideoTrackSource::Create()); stream_->AddTrack(track_); EXPECT_CALL(session_, GetRemoteTrackIdBySsrc(kSsrcOfTrack, _)) .WillRepeatedly(DoAll(SetArgPointee<1>(kRemoteTrackId), Return(true))); diff --git a/webrtc/api/test/fakevideotracksource.h b/webrtc/api/test/fakevideotracksource.h new file mode 100644 index 0000000000..0b70a56b4e --- /dev/null +++ b/webrtc/api/test/fakevideotracksource.h @@ -0,0 +1,43 @@ +/* + * Copyright 2016 The WebRTC project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#ifndef WEBRTC_API_TEST_FAKEVIDEOTRACKSOURCE_H_ +#define WEBRTC_API_TEST_FAKEVIDEOTRACKSOURCE_H_ + +#include "webrtc/api/mediastreaminterface.h" +#include "webrtc/api/videotracksource.h" +#include "webrtc/media/base/fakevideocapturer.h" + +namespace webrtc { + +class FakeVideoTrackSource : public VideoTrackSource { + public: + static rtc::scoped_refptr Create() { + return new rtc::RefCountedObject(); + } + + cricket::FakeVideoCapturer* fake_video_capturer() { + return &fake_video_capturer_; + } + + protected: + FakeVideoTrackSource() + : VideoTrackSource(&fake_video_capturer_, + rtc::Thread::Current(), + false /* remote */) {} + virtual ~FakeVideoTrackSource() {} + + private: + cricket::FakeVideoCapturer fake_video_capturer_; +}; + +} // namespace webrtc + +#endif // WEBRTC_API_TEST_FAKEVIDEOTRACKSOURCE_H_