| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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_ |
| OLD | NEW |