Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(589)

Side by Side Diff: webrtc/media/base/fakevideocapturer.h

Issue 1711763003: New flag is_screencast in VideoOptions. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: In WebRtcVideoSendStream::SetOptions, modify only options specified by the caller. Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2004 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2004 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 10 matching lines...) Expand all
21 #include "webrtc/media/base/videoframe.h" 21 #include "webrtc/media/base/videoframe.h"
22 #ifdef HAVE_WEBRTC_VIDEO 22 #ifdef HAVE_WEBRTC_VIDEO
23 #include "webrtc/media/engine/webrtcvideoframefactory.h" 23 #include "webrtc/media/engine/webrtcvideoframefactory.h"
24 #endif 24 #endif
25 25
26 namespace cricket { 26 namespace cricket {
27 27
28 // Fake video capturer that allows the test to manually pump in frames. 28 // Fake video capturer that allows the test to manually pump in frames.
29 class FakeVideoCapturer : public cricket::VideoCapturer { 29 class FakeVideoCapturer : public cricket::VideoCapturer {
30 public: 30 public:
31 FakeVideoCapturer() 31 FakeVideoCapturer(bool is_screencast)
32 : running_(false), 32 : running_(false),
33 initial_unix_timestamp_(time(NULL) * rtc::kNumNanosecsPerSec), 33 initial_unix_timestamp_(time(NULL) * rtc::kNumNanosecsPerSec),
34 next_timestamp_(rtc::kNumNanosecsPerMillisec), 34 next_timestamp_(rtc::kNumNanosecsPerMillisec),
35 is_screencast_(false), 35 is_screencast_(is_screencast),
36 rotation_(webrtc::kVideoRotation_0) { 36 rotation_(webrtc::kVideoRotation_0) {
37 #ifdef HAVE_WEBRTC_VIDEO 37 #ifdef HAVE_WEBRTC_VIDEO
38 set_frame_factory(new cricket::WebRtcVideoFrameFactory()); 38 set_frame_factory(new cricket::WebRtcVideoFrameFactory());
39 #endif 39 #endif
40 // Default supported formats. Use ResetSupportedFormats to over write. 40 // Default supported formats. Use ResetSupportedFormats to over write.
41 std::vector<cricket::VideoFormat> formats; 41 std::vector<cricket::VideoFormat> formats;
42 formats.push_back(cricket::VideoFormat(1280, 720, 42 formats.push_back(cricket::VideoFormat(1280, 720,
43 cricket::VideoFormat::FpsToInterval(30), cricket::FOURCC_I420)); 43 cricket::VideoFormat::FpsToInterval(30), cricket::FOURCC_I420));
44 formats.push_back(cricket::VideoFormat(640, 480, 44 formats.push_back(cricket::VideoFormat(640, 480,
45 cricket::VideoFormat::FpsToInterval(30), cricket::FOURCC_I420)); 45 cricket::VideoFormat::FpsToInterval(30), cricket::FOURCC_I420));
46 formats.push_back(cricket::VideoFormat(320, 240, 46 formats.push_back(cricket::VideoFormat(320, 240,
47 cricket::VideoFormat::FpsToInterval(30), cricket::FOURCC_I420)); 47 cricket::VideoFormat::FpsToInterval(30), cricket::FOURCC_I420));
48 formats.push_back(cricket::VideoFormat(160, 120, 48 formats.push_back(cricket::VideoFormat(160, 120,
49 cricket::VideoFormat::FpsToInterval(30), cricket::FOURCC_I420)); 49 cricket::VideoFormat::FpsToInterval(30), cricket::FOURCC_I420));
50 formats.push_back(cricket::VideoFormat(1280, 720, 50 formats.push_back(cricket::VideoFormat(1280, 720,
51 cricket::VideoFormat::FpsToInterval(60), cricket::FOURCC_I420)); 51 cricket::VideoFormat::FpsToInterval(60), cricket::FOURCC_I420));
52 ResetSupportedFormats(formats); 52 ResetSupportedFormats(formats);
53 } 53 }
54 FakeVideoCapturer()
55 : FakeVideoCapturer(false) {}
56
54 ~FakeVideoCapturer() { 57 ~FakeVideoCapturer() {
55 SignalDestroyed(this); 58 SignalDestroyed(this);
56 } 59 }
57 60
58 void ResetSupportedFormats(const std::vector<cricket::VideoFormat>& formats) { 61 void ResetSupportedFormats(const std::vector<cricket::VideoFormat>& formats) {
59 SetSupportedFormats(formats); 62 SetSupportedFormats(formats);
60 } 63 }
61 bool CaptureFrame() { 64 bool CaptureFrame() {
62 if (!GetCaptureFormat()) { 65 if (!GetCaptureFormat()) {
63 return false; 66 return false;
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 running_ = true; 131 running_ = true;
129 SetCaptureState(cricket::CS_RUNNING); 132 SetCaptureState(cricket::CS_RUNNING);
130 return cricket::CS_RUNNING; 133 return cricket::CS_RUNNING;
131 } 134 }
132 virtual void Stop() { 135 virtual void Stop() {
133 running_ = false; 136 running_ = false;
134 SetCaptureFormat(NULL); 137 SetCaptureFormat(NULL);
135 SetCaptureState(cricket::CS_STOPPED); 138 SetCaptureState(cricket::CS_STOPPED);
136 } 139 }
137 virtual bool IsRunning() { return running_; } 140 virtual bool IsRunning() { return running_; }
138 void SetScreencast(bool is_screencast) {
139 is_screencast_ = is_screencast;
140 }
141 virtual bool IsScreencast() const { return is_screencast_; } 141 virtual bool IsScreencast() const { return is_screencast_; }
142 bool GetPreferredFourccs(std::vector<uint32_t>* fourccs) { 142 bool GetPreferredFourccs(std::vector<uint32_t>* fourccs) {
143 fourccs->push_back(cricket::FOURCC_I420); 143 fourccs->push_back(cricket::FOURCC_I420);
144 fourccs->push_back(cricket::FOURCC_MJPG); 144 fourccs->push_back(cricket::FOURCC_MJPG);
145 return true; 145 return true;
146 } 146 }
147 147
148 void SetRotation(webrtc::VideoRotation rotation) { 148 void SetRotation(webrtc::VideoRotation rotation) {
149 rotation_ = rotation; 149 rotation_ = rotation;
150 } 150 }
151 151
152 webrtc::VideoRotation GetRotation() { return rotation_; } 152 webrtc::VideoRotation GetRotation() { return rotation_; }
153 153
154 private: 154 private:
155 bool running_; 155 bool running_;
156 int64_t initial_unix_timestamp_; 156 int64_t initial_unix_timestamp_;
157 int64_t next_timestamp_; 157 int64_t next_timestamp_;
158 bool is_screencast_; 158 const bool is_screencast_;
159 webrtc::VideoRotation rotation_; 159 webrtc::VideoRotation rotation_;
160 }; 160 };
161 161
162 } // namespace cricket 162 } // namespace cricket
163 163
164 #endif // WEBRTC_MEDIA_BASE_FAKEVIDEOCAPTURER_H_ 164 #endif // WEBRTC_MEDIA_BASE_FAKEVIDEOCAPTURER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698