diff options
author | sergeyu <sergeyu@chromium.org> | 2016-02-12 11:37:48 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-02-12 19:38:39 +0000 |
commit | 01cd66fb59834fc950146580fab0b94fdecb9730 (patch) | |
tree | 450e1150053c7b3f875f982674195038ee8e7e46 /remoting/protocol | |
parent | 8e8a03dbf4d42a44c4ade6c9566256ad815832ed (diff) | |
download | chromium_src-01cd66fb59834fc950146580fab0b94fdecb9730.zip chromium_src-01cd66fb59834fc950146580fab0b94fdecb9730.tar.gz chromium_src-01cd66fb59834fc950146580fab0b94fdecb9730.tar.bz2 |
Update webrtc::DesktopCapturere clients to use SharedMemoryFactory
webrtc::DesktopCapturer::Callback::CreateSharedMemory() has been
deprecated and webrtc::SharedMemoryFactory should be used instead now.
Review URL: https://codereview.chromium.org/1690853002
Cr-Commit-Position: refs/heads/master@{#375224}
Diffstat (limited to 'remoting/protocol')
-rw-r--r-- | remoting/protocol/fake_desktop_capturer.cc | 25 | ||||
-rw-r--r-- | remoting/protocol/fake_desktop_capturer.h | 7 | ||||
-rw-r--r-- | remoting/protocol/video_frame_pump_unittest.cc | 4 |
3 files changed, 22 insertions, 14 deletions
diff --git a/remoting/protocol/fake_desktop_capturer.cc b/remoting/protocol/fake_desktop_capturer.cc index ae7ff5a..290ef49 100644 --- a/remoting/protocol/fake_desktop_capturer.cc +++ b/remoting/protocol/fake_desktop_capturer.cc @@ -35,22 +35,20 @@ class DefaultFrameGenerator : public base::RefCountedThreadSafe<DefaultFrameGenerator> { public: DefaultFrameGenerator() - : bytes_per_row_(0), - box_pos_x_(0), + : box_pos_x_(0), box_pos_y_(0), box_speed_x_(kSpeed), box_speed_y_(kSpeed), first_frame_(true) {} scoped_ptr<webrtc::DesktopFrame> GenerateFrame( - webrtc::DesktopCapturer::Callback* callback); + webrtc::SharedMemoryFactory* shared_memory_factory); private: friend class base::RefCountedThreadSafe<DefaultFrameGenerator>; ~DefaultFrameGenerator() {} webrtc::DesktopSize size_; - int bytes_per_row_; int box_pos_x_; int box_pos_y_; int box_speed_x_; @@ -61,15 +59,14 @@ class DefaultFrameGenerator }; scoped_ptr<webrtc::DesktopFrame> DefaultFrameGenerator::GenerateFrame( - webrtc::DesktopCapturer::Callback* callback) { + webrtc::SharedMemoryFactory* shared_memory_factory) { const int kBytesPerPixel = webrtc::DesktopFrame::kBytesPerPixel; - int buffer_size = kWidth * kHeight * kBytesPerPixel; - webrtc::SharedMemory* shared_memory = - callback->CreateSharedMemory(buffer_size); scoped_ptr<webrtc::DesktopFrame> frame; - if (shared_memory) { + if (shared_memory_factory) { + int buffer_size = kWidth * kHeight * kBytesPerPixel; frame.reset(new webrtc::SharedMemoryDesktopFrame( - webrtc::DesktopSize(kWidth, kHeight), bytes_per_row_, shared_memory)); + webrtc::DesktopSize(kWidth, kHeight), kWidth * kBytesPerPixel, + shared_memory_factory->CreateSharedMemory(buffer_size).release())); } else { frame.reset( new webrtc::BasicDesktopFrame(webrtc::DesktopSize(kWidth, kHeight))); @@ -143,9 +140,15 @@ void FakeDesktopCapturer::Start(Callback* callback) { callback_ = callback; } +void FakeDesktopCapturer::SetSharedMemoryFactory( + rtc::scoped_ptr<webrtc::SharedMemoryFactory> shared_memory_factory) { + shared_memory_factory_.reset(shared_memory_factory.release()); +} + void FakeDesktopCapturer::Capture(const webrtc::DesktopRegion& region) { base::Time capture_start_time = base::Time::Now(); - scoped_ptr<webrtc::DesktopFrame> frame = frame_generator_.Run(callback_); + scoped_ptr<webrtc::DesktopFrame> frame = + frame_generator_.Run(shared_memory_factory_.get()); if (frame) { frame->set_capture_time_ms( (base::Time::Now() - capture_start_time).InMillisecondsRoundedUp()); diff --git a/remoting/protocol/fake_desktop_capturer.h b/remoting/protocol/fake_desktop_capturer.h index ab75aba..8cf294e 100644 --- a/remoting/protocol/fake_desktop_capturer.h +++ b/remoting/protocol/fake_desktop_capturer.h @@ -27,7 +27,8 @@ class FakeDesktopCapturer : public webrtc::DesktopCapturer { static const int kHeight = 600; typedef base::Callback<scoped_ptr<webrtc::DesktopFrame>( - webrtc::DesktopCapturer::Callback* callback)> FrameGenerator; + webrtc::SharedMemoryFactory* shared_memory_factory)> + FrameGenerator; FakeDesktopCapturer(); ~FakeDesktopCapturer() override; @@ -36,6 +37,8 @@ class FakeDesktopCapturer : public webrtc::DesktopCapturer { // webrtc::DesktopCapturer interface. void Start(Callback* callback) override; + void SetSharedMemoryFactory(rtc::scoped_ptr<webrtc::SharedMemoryFactory> + shared_memory_factory) override; void Capture(const webrtc::DesktopRegion& rect) override; private: @@ -43,6 +46,8 @@ class FakeDesktopCapturer : public webrtc::DesktopCapturer { Callback* callback_; + scoped_ptr<webrtc::SharedMemoryFactory> shared_memory_factory_; + DISALLOW_COPY_AND_ASSIGN(FakeDesktopCapturer); }; diff --git a/remoting/protocol/video_frame_pump_unittest.cc b/remoting/protocol/video_frame_pump_unittest.cc index 29e4133..023d831 100644 --- a/remoting/protocol/video_frame_pump_unittest.cc +++ b/remoting/protocol/video_frame_pump_unittest.cc @@ -41,12 +41,12 @@ ACTION(FinishSend) { } scoped_ptr<webrtc::DesktopFrame> CreateNullFrame( - webrtc::DesktopCapturer::Callback*) { + webrtc::SharedMemoryFactory* shared_memory_factory) { return nullptr; } scoped_ptr<webrtc::DesktopFrame> CreateUnchangedFrame( - webrtc::DesktopCapturer::Callback*) { + webrtc::SharedMemoryFactory* shared_memory_factory) { const webrtc::DesktopSize kSize(800, 640); // updated_region() is already empty by default in new BasicDesktopFrames. return make_scoped_ptr(new webrtc::BasicDesktopFrame(kSize)); |