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

Side by Side Diff: media/video/capture/screen/screen_capturer_fake.h

Issue 13983010: Use webrtc::DesktopCapturer for screen capturer implementation. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #ifndef MEDIA_VIDEO_CAPTURE_SCREEN_SCREEN_CAPTURER_FAKE_H_ 5 #ifndef MEDIA_VIDEO_CAPTURE_SCREEN_SCREEN_CAPTURER_FAKE_H_
6 #define MEDIA_VIDEO_CAPTURE_SCREEN_SCREEN_CAPTURER_FAKE_H_ 6 #define MEDIA_VIDEO_CAPTURE_SCREEN_SCREEN_CAPTURER_FAKE_H_
7 7
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "media/base/media_export.h" 9 #include "media/base/media_export.h"
10 #include "media/video/capture/screen/screen_capture_frame_queue.h"
10 #include "media/video/capture/screen/screen_capturer.h" 11 #include "media/video/capture/screen/screen_capturer.h"
11 #include "media/video/capture/screen/screen_capturer_helper.h" 12 #include "third_party/webrtc/modules/desktop_capture/desktop_geometry.h"
12 13
13 namespace media { 14 namespace media {
14 15
15 // A ScreenCapturerFake generates artificial image for testing purpose. 16 // A ScreenCapturerFake generates artificial image for testing purpose.
16 // 17 //
17 // ScreenCapturerFake is double-buffered as required by ScreenCapturer. 18 // ScreenCapturerFake is double-buffered as required by ScreenCapturer.
18 class MEDIA_EXPORT ScreenCapturerFake : public ScreenCapturer { 19 class MEDIA_EXPORT ScreenCapturerFake : public ScreenCapturer {
19 public: 20 public:
20 // ScreenCapturerFake generates a picture of size kWidth x kHeight. 21 // ScreenCapturerFake generates a picture of size kWidth x kHeight.
21 static const int kWidth = 800; 22 static const int kWidth = 800;
22 static const int kHeight = 600; 23 static const int kHeight = 600;
23 24
24 ScreenCapturerFake(); 25 ScreenCapturerFake();
25 virtual ~ScreenCapturerFake(); 26 virtual ~ScreenCapturerFake();
26 27
27 // Overridden from ScreenCapturer: 28 // webrtc::DesktopCapturer interface.
28 virtual void Start(Delegate* delegate) OVERRIDE; 29 virtual void Start(Callback* callback) OVERRIDE;
29 virtual void CaptureFrame() OVERRIDE; 30 virtual void Capture(const webrtc::DesktopRegion& rect) OVERRIDE;
31
32 // ScreenCapturer interface.
33 virtual void SetMouseShapeObserver(
34 MouseShapeObserver* mouse_shape_observer) OVERRIDE;
30 35
31 private: 36 private:
32 // Generates an image in the front buffer. 37 // Generates an image in the front buffer.
33 void GenerateImage(); 38 void GenerateImage();
34 39
35 // Called when the screen configuration is changed. 40 // Called when the screen configuration is changed.
36 void ScreenConfigurationChanged(); 41 void ScreenConfigurationChanged();
37 42
38 Delegate* delegate_; 43 Callback* callback_;
44 MouseShapeObserver* mouse_shape_observer_;
39 45
40 SkISize size_; 46 webrtc::DesktopSize size_;
41 int bytes_per_row_; 47 int bytes_per_row_;
42 int box_pos_x_; 48 int box_pos_x_;
43 int box_pos_y_; 49 int box_pos_y_;
44 int box_speed_x_; 50 int box_speed_x_;
45 int box_speed_y_; 51 int box_speed_y_;
46 52
47 ScreenCapturerHelper helper_; 53 ScreenCaptureFrameQueue queue_;
48
49 // We have two buffers for the screen images as required by Capturer.
50 static const int kNumBuffers = 2;
51 uint8* buffers_[kNumBuffers];
52
53 // The current buffer with valid data for reading.
54 int current_buffer_;
55
56 // Used when |delegate_| implements CreateSharedBuffer().
57 scoped_refptr<SharedBuffer> shared_buffers_[kNumBuffers];
58
59 // Used when |delegate_| does not implement CreateSharedBuffer().
60 scoped_ptr<uint8[]> private_buffers_[kNumBuffers];
61 54
62 DISALLOW_COPY_AND_ASSIGN(ScreenCapturerFake); 55 DISALLOW_COPY_AND_ASSIGN(ScreenCapturerFake);
63 }; 56 };
64 57
65 } // namespace media 58 } // namespace media
66 59
67 #endif // MEDIA_VIDEO_CAPTURE_SCREEN_SCREEN_CAPTURER_FAKE_H_ 60 #endif // MEDIA_VIDEO_CAPTURE_SCREEN_SCREEN_CAPTURER_FAKE_H_
OLDNEW
« no previous file with comments | « media/video/capture/screen/screen_capturer.h ('k') | media/video/capture/screen/screen_capturer_fake.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698