1 /* 2 * Copyright 2016 The WebRTC project authors. All Rights Reserved. 3 * 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 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 #ifndef WEBRTC_API_TEST_FAKEVIDEOTRACKSOURCE_H_ 12 #define WEBRTC_API_TEST_FAKEVIDEOTRACKSOURCE_H_ 13 14 #include "webrtc/api/mediastreaminterface.h" 15 #include "webrtc/api/videotracksource.h" 16 #include "webrtc/media/base/fakevideocapturer.h" 17 18 namespace webrtc { 19 20 class FakeVideoTrackSource : public VideoTrackSource { 21 public: Create(bool is_screencast)22 static rtc::scoped_refptr<FakeVideoTrackSource> Create(bool is_screencast) { 23 return new rtc::RefCountedObject<FakeVideoTrackSource>(is_screencast); 24 } 25 Create()26 static rtc::scoped_refptr<FakeVideoTrackSource> Create() { 27 return Create(false); 28 } 29 fake_video_capturer()30 cricket::FakeVideoCapturer* fake_video_capturer() { 31 return &fake_video_capturer_; 32 } 33 is_screencast()34 bool is_screencast() const override { return is_screencast_; } 35 36 protected: FakeVideoTrackSource(bool is_screencast)37 explicit FakeVideoTrackSource(bool is_screencast) 38 : VideoTrackSource(&fake_video_capturer_, false /* remote */), 39 is_screencast_(is_screencast) {} ~FakeVideoTrackSource()40 virtual ~FakeVideoTrackSource() {} 41 42 private: 43 cricket::FakeVideoCapturer fake_video_capturer_; 44 const bool is_screencast_; 45 }; 46 47 } // namespace webrtc 48 49 #endif // WEBRTC_API_TEST_FAKEVIDEOTRACKSOURCE_H_ 50