| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "remoting/protocol/fake_desktop_capturer.h" | 5 #include "remoting/protocol/fake_desktop_capturer.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 23 matching lines...) Expand all Loading... |
| 34 class DefaultFrameGenerator | 34 class DefaultFrameGenerator |
| 35 : public base::RefCountedThreadSafe<DefaultFrameGenerator> { | 35 : public base::RefCountedThreadSafe<DefaultFrameGenerator> { |
| 36 public: | 36 public: |
| 37 DefaultFrameGenerator() | 37 DefaultFrameGenerator() |
| 38 : box_pos_x_(0), | 38 : box_pos_x_(0), |
| 39 box_pos_y_(0), | 39 box_pos_y_(0), |
| 40 box_speed_x_(kSpeed), | 40 box_speed_x_(kSpeed), |
| 41 box_speed_y_(kSpeed), | 41 box_speed_y_(kSpeed), |
| 42 first_frame_(true) {} | 42 first_frame_(true) {} |
| 43 | 43 |
| 44 scoped_ptr<webrtc::DesktopFrame> GenerateFrame( | 44 std::unique_ptr<webrtc::DesktopFrame> GenerateFrame( |
| 45 webrtc::SharedMemoryFactory* shared_memory_factory); | 45 webrtc::SharedMemoryFactory* shared_memory_factory); |
| 46 | 46 |
| 47 private: | 47 private: |
| 48 friend class base::RefCountedThreadSafe<DefaultFrameGenerator>; | 48 friend class base::RefCountedThreadSafe<DefaultFrameGenerator>; |
| 49 ~DefaultFrameGenerator() {} | 49 ~DefaultFrameGenerator() {} |
| 50 | 50 |
| 51 webrtc::DesktopSize size_; | 51 webrtc::DesktopSize size_; |
| 52 int box_pos_x_; | 52 int box_pos_x_; |
| 53 int box_pos_y_; | 53 int box_pos_y_; |
| 54 int box_speed_x_; | 54 int box_speed_x_; |
| 55 int box_speed_y_; | 55 int box_speed_y_; |
| 56 bool first_frame_; | 56 bool first_frame_; |
| 57 | 57 |
| 58 DISALLOW_COPY_AND_ASSIGN(DefaultFrameGenerator); | 58 DISALLOW_COPY_AND_ASSIGN(DefaultFrameGenerator); |
| 59 }; | 59 }; |
| 60 | 60 |
| 61 scoped_ptr<webrtc::DesktopFrame> DefaultFrameGenerator::GenerateFrame( | 61 std::unique_ptr<webrtc::DesktopFrame> DefaultFrameGenerator::GenerateFrame( |
| 62 webrtc::SharedMemoryFactory* shared_memory_factory) { | 62 webrtc::SharedMemoryFactory* shared_memory_factory) { |
| 63 const int kBytesPerPixel = webrtc::DesktopFrame::kBytesPerPixel; | 63 const int kBytesPerPixel = webrtc::DesktopFrame::kBytesPerPixel; |
| 64 scoped_ptr<webrtc::DesktopFrame> frame; | 64 std::unique_ptr<webrtc::DesktopFrame> frame; |
| 65 if (shared_memory_factory) { | 65 if (shared_memory_factory) { |
| 66 int buffer_size = kWidth * kHeight * kBytesPerPixel; | 66 int buffer_size = kWidth * kHeight * kBytesPerPixel; |
| 67 frame.reset(new webrtc::SharedMemoryDesktopFrame( | 67 frame.reset(new webrtc::SharedMemoryDesktopFrame( |
| 68 webrtc::DesktopSize(kWidth, kHeight), kWidth * kBytesPerPixel, | 68 webrtc::DesktopSize(kWidth, kHeight), kWidth * kBytesPerPixel, |
| 69 shared_memory_factory->CreateSharedMemory(buffer_size).release())); | 69 shared_memory_factory->CreateSharedMemory(buffer_size).release())); |
| 70 } else { | 70 } else { |
| 71 frame.reset( | 71 frame.reset( |
| 72 new webrtc::BasicDesktopFrame(webrtc::DesktopSize(kWidth, kHeight))); | 72 new webrtc::BasicDesktopFrame(webrtc::DesktopSize(kWidth, kHeight))); |
| 73 } | 73 } |
| 74 | 74 |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 140 callback_ = callback; | 140 callback_ = callback; |
| 141 } | 141 } |
| 142 | 142 |
| 143 void FakeDesktopCapturer::SetSharedMemoryFactory( | 143 void FakeDesktopCapturer::SetSharedMemoryFactory( |
| 144 rtc::scoped_ptr<webrtc::SharedMemoryFactory> shared_memory_factory) { | 144 rtc::scoped_ptr<webrtc::SharedMemoryFactory> shared_memory_factory) { |
| 145 shared_memory_factory_.reset(shared_memory_factory.release()); | 145 shared_memory_factory_.reset(shared_memory_factory.release()); |
| 146 } | 146 } |
| 147 | 147 |
| 148 void FakeDesktopCapturer::Capture(const webrtc::DesktopRegion& region) { | 148 void FakeDesktopCapturer::Capture(const webrtc::DesktopRegion& region) { |
| 149 base::Time capture_start_time = base::Time::Now(); | 149 base::Time capture_start_time = base::Time::Now(); |
| 150 scoped_ptr<webrtc::DesktopFrame> frame = | 150 std::unique_ptr<webrtc::DesktopFrame> frame = |
| 151 frame_generator_.Run(shared_memory_factory_.get()); | 151 frame_generator_.Run(shared_memory_factory_.get()); |
| 152 if (frame) { | 152 if (frame) { |
| 153 frame->set_capture_time_ms( | 153 frame->set_capture_time_ms( |
| 154 (base::Time::Now() - capture_start_time).InMillisecondsRoundedUp()); | 154 (base::Time::Now() - capture_start_time).InMillisecondsRoundedUp()); |
| 155 } | 155 } |
| 156 callback_->OnCaptureCompleted(frame.release()); | 156 callback_->OnCaptureCompleted(frame.release()); |
| 157 } | 157 } |
| 158 | 158 |
| 159 } // namespace protocol | 159 } // namespace protocol |
| 160 } // namespace remoting | 160 } // namespace remoting |
| OLD | NEW |