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

Unified Diff: media/video/capture/screen/screen_capturer_mac.mm

Issue 12047101: Move screen capturers from remoting/capturer to media/video/capturer/screen (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: media/video/capture/screen/screen_capturer_mac.mm
diff --git a/remoting/capturer/video_frame_capturer_mac.mm b/media/video/capture/screen/screen_capturer_mac.mm
similarity index 88%
rename from remoting/capturer/video_frame_capturer_mac.mm
rename to media/video/capture/screen/screen_capturer_mac.mm
index 8b10cac31431364ee152a0c1f24d7726823ccc2a..4ad326dd9e419815431ac3b8764ac5b893b15dc2 100644
--- a/remoting/capturer/video_frame_capturer_mac.mm
+++ b/media/video/capture/screen/screen_capturer_mac.mm
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "remoting/capturer/video_frame_capturer.h"
+#include "media/video/capture/screen/screen_capturer.h"
#include <ApplicationServices/ApplicationServices.h>
#include <Cocoa/Cocoa.h>
@@ -21,14 +21,14 @@
#include "base/scoped_native_library.h"
#include "base/synchronization/waitable_event.h"
#include "base/time.h"
-#include "remoting/capturer/capture_data.h"
-#include "remoting/capturer/mac/scoped_pixel_buffer_object.h"
-#include "remoting/capturer/mouse_cursor_shape.h"
-#include "remoting/capturer/video_frame.h"
-#include "remoting/capturer/video_frame_capturer_helper.h"
-#include "remoting/capturer/video_frame_queue.h"
+#include "media/video/capture/screen/mac/scoped_pixel_buffer_object.h"
+#include "media/video/capture/screen/mouse_cursor_shape.h"
+#include "media/video/capture/screen/screen_capture_data.h"
+#include "media/video/capture/screen/screen_capture_frame.h"
+#include "media/video/capture/screen/screen_capture_frame_queue.h"
+#include "media/video/capture/screen/screen_capturer_helper.h"
-namespace remoting {
+namespace media {
namespace {
@@ -82,10 +82,10 @@ void CopyRect(const uint8* src_plane,
const int64 kDisplayConfigurationEventTimeoutInSeconds = 10;
// A class representing a full-frame pixel buffer.
-class VideoFrameMac : public VideoFrame {
+class ScreenCaptureFrameMac : public ScreenCaptureFrame {
public:
- explicit VideoFrameMac(const SkISize& size);
- virtual ~VideoFrameMac();
+ explicit ScreenCaptureFrameMac(const SkISize& size);
+ virtual ~ScreenCaptureFrameMac();
const SkIPoint& dpi() const { return dpi_; }
@@ -96,18 +96,18 @@ class VideoFrameMac : public VideoFrame {
// DPI settings for this buffer.
SkIPoint dpi_;
- DISALLOW_COPY_AND_ASSIGN(VideoFrameMac);
+ DISALLOW_COPY_AND_ASSIGN(ScreenCaptureFrameMac);
};
// A class to perform video frame capturing for mac.
-class VideoFrameCapturerMac : public VideoFrameCapturer {
+class ScreenCapturerMac : public ScreenCapturer {
public:
- VideoFrameCapturerMac();
- virtual ~VideoFrameCapturerMac();
+ ScreenCapturerMac();
+ virtual ~ScreenCapturerMac();
bool Init();
- // Overridden from VideoFrameCapturer:
+ // Overridden from ScreenCapturer:
virtual void Start(Delegate* delegate) OVERRIDE;
virtual void Stop() OVERRIDE;
virtual void InvalidateRegion(const SkRegion& invalid_region) OVERRIDE;
@@ -116,10 +116,10 @@ class VideoFrameCapturerMac : public VideoFrameCapturer {
private:
void CaptureCursor();
- void GlBlitFast(const VideoFrame& buffer, const SkRegion& region);
- void GlBlitSlow(const VideoFrame& buffer);
- void CgBlitPreLion(const VideoFrame& buffer, const SkRegion& region);
- void CgBlitPostLion(const VideoFrame& buffer, const SkRegion& region);
+ void GlBlitFast(const ScreenCaptureFrame& buffer, const SkRegion& region);
+ void GlBlitSlow(const ScreenCaptureFrame& buffer);
+ void CgBlitPreLion(const ScreenCaptureFrame& buffer, const SkRegion& region);
+ void CgBlitPostLion(const ScreenCaptureFrame& buffer, const SkRegion& region);
// Called when the screen configuration is changed.
void ScreenConfigurationChanged();
@@ -149,7 +149,7 @@ class VideoFrameCapturerMac : public VideoFrameCapturer {
ScopedPixelBufferObject pixel_buffer_object_;
// Queue of the frames buffers.
- VideoFrameQueue queue_;
+ ScreenCaptureFrameQueue queue_;
// Current display configuration.
std::vector<CGDirectDisplayID> display_ids_;
@@ -157,7 +157,7 @@ class VideoFrameCapturerMac : public VideoFrameCapturer {
// A thread-safe list of invalid rectangles, and the size of the most
// recently captured screen.
- VideoFrameCapturerHelper helper_;
+ ScreenCapturerHelper helper_;
// Image of the last cursor that we sent to the client.
base::mac::ScopedCFTypeRef<CGImageRef> current_cursor_;
@@ -187,10 +187,10 @@ class VideoFrameCapturerMac : public VideoFrameCapturer {
base::ScopedNativeLibrary opengl_library_;
CGLSetFullScreenFunc cgl_set_full_screen_;
- DISALLOW_COPY_AND_ASSIGN(VideoFrameCapturerMac);
+ DISALLOW_COPY_AND_ASSIGN(ScreenCapturerMac);
};
-VideoFrameMac::VideoFrameMac(const SkISize& size) {
+ScreenCaptureFrameMac::ScreenCaptureFrameMac(const SkISize& size) {
set_bytes_per_row(size.width() * sizeof(uint32_t));
set_dimensions(size);
@@ -205,10 +205,10 @@ VideoFrameMac::VideoFrameMac(const SkISize& size) {
dpi_.set(resolution.width, resolution.height);
}
-VideoFrameMac::~VideoFrameMac() {
+ScreenCaptureFrameMac::~ScreenCaptureFrameMac() {
}
-VideoFrameCapturerMac::VideoFrameCapturerMac()
+ScreenCapturerMac::ScreenCapturerMac()
: delegate_(NULL),
cgl_context_(NULL),
display_configuration_capture_event_(false, true),
@@ -221,35 +221,35 @@ VideoFrameCapturerMac::VideoFrameCapturerMac()
{
}
-VideoFrameCapturerMac::~VideoFrameCapturerMac() {
+ScreenCapturerMac::~ScreenCapturerMac() {
ReleaseBuffers();
CGUnregisterScreenRefreshCallback(
- VideoFrameCapturerMac::ScreenRefreshCallback, this);
+ ScreenCapturerMac::ScreenRefreshCallback, this);
CGScreenUnregisterMoveCallback(
- VideoFrameCapturerMac::ScreenUpdateMoveCallback, this);
+ ScreenCapturerMac::ScreenUpdateMoveCallback, this);
CGError err = CGDisplayRemoveReconfigurationCallback(
- VideoFrameCapturerMac::DisplaysReconfiguredCallback, this);
+ ScreenCapturerMac::DisplaysReconfiguredCallback, this);
if (err != kCGErrorSuccess) {
LOG(ERROR) << "CGDisplayRemoveReconfigurationCallback " << err;
}
}
-bool VideoFrameCapturerMac::Init() {
+bool ScreenCapturerMac::Init() {
CGError err = CGRegisterScreenRefreshCallback(
- VideoFrameCapturerMac::ScreenRefreshCallback, this);
+ ScreenCapturerMac::ScreenRefreshCallback, this);
if (err != kCGErrorSuccess) {
LOG(ERROR) << "CGRegisterScreenRefreshCallback " << err;
return false;
}
err = CGScreenRegisterMoveCallback(
- VideoFrameCapturerMac::ScreenUpdateMoveCallback, this);
+ ScreenCapturerMac::ScreenUpdateMoveCallback, this);
if (err != kCGErrorSuccess) {
LOG(ERROR) << "CGScreenRegisterMoveCallback " << err;
return false;
}
err = CGDisplayRegisterReconfigurationCallback(
- VideoFrameCapturerMac::DisplaysReconfiguredCallback, this);
+ ScreenCapturerMac::DisplaysReconfiguredCallback, this);
if (err != kCGErrorSuccess) {
LOG(ERROR) << "CGDisplayRegisterReconfigurationCallback " << err;
return false;
@@ -259,7 +259,7 @@ bool VideoFrameCapturerMac::Init() {
return true;
}
-void VideoFrameCapturerMac::ReleaseBuffers() {
+void ScreenCapturerMac::ReleaseBuffers() {
if (cgl_context_) {
pixel_buffer_object_.Release();
CGLDestroyContext(cgl_context_);
@@ -271,7 +271,7 @@ void VideoFrameCapturerMac::ReleaseBuffers() {
queue_.SetAllFramesNeedUpdate();
}
-void VideoFrameCapturerMac::Start(Delegate* delegate) {
+void ScreenCapturerMac::Start(Delegate* delegate) {
DCHECK(delegate_ == NULL);
delegate_ = delegate;
@@ -292,7 +292,7 @@ void VideoFrameCapturerMac::Start(Delegate* delegate) {
&power_assertion_id_user_);
}
-void VideoFrameCapturerMac::Stop() {
+void ScreenCapturerMac::Stop() {
if (power_assertion_id_display_ != kIOPMNullAssertionID) {
IOPMAssertionRelease(power_assertion_id_display_);
power_assertion_id_display_ = kIOPMNullAssertionID;
@@ -303,13 +303,13 @@ void VideoFrameCapturerMac::Stop() {
}
}
-void VideoFrameCapturerMac::InvalidateRegion(const SkRegion& invalid_region) {
+void ScreenCapturerMac::InvalidateRegion(const SkRegion& invalid_region) {
helper_.InvalidateRegion(invalid_region);
}
-void VideoFrameCapturerMac::CaptureFrame() {
+void ScreenCapturerMac::CaptureFrame() {
// Only allow captures when the display configuration is not occurring.
- scoped_refptr<CaptureData> data;
+ scoped_refptr<ScreenCaptureData> data;
base::Time capture_start_time = base::Time::Now();
@@ -328,12 +328,12 @@ void VideoFrameCapturerMac::CaptureFrame() {
// Note that we can't reallocate other buffers at this point, since the caller
// may still be reading from them.
if (queue_.current_frame_needs_update()) {
- scoped_ptr<VideoFrameMac> buffer(new VideoFrameMac(
+ scoped_ptr<ScreenCaptureFrameMac> buffer(new ScreenCaptureFrameMac(
SkISize::Make(desktop_bounds_.width(), desktop_bounds_.height())));
- queue_.ReplaceCurrentFrame(buffer.PassAs<VideoFrame>());
+ queue_.ReplaceCurrentFrame(buffer.PassAs<ScreenCaptureFrame>());
}
- VideoFrame* current_buffer = queue_.current_frame();
+ ScreenCaptureFrame* current_buffer = queue_.current_frame();
bool flip = false; // GL capturers need flipping.
if (base::mac::IsOSLionOrLater()) {
@@ -361,8 +361,8 @@ void VideoFrameCapturerMac::CaptureFrame() {
current_buffer->bytes_per_row();
}
- data = new CaptureData(buffer, stride, current_buffer->dimensions());
- data->set_dpi(static_cast<VideoFrameMac*>(current_buffer)->dpi());
+ data = new ScreenCaptureData(buffer, stride, current_buffer->dimensions());
+ data->set_dpi(static_cast<ScreenCaptureFrameMac*>(current_buffer)->dpi());
data->mutable_dirty_region() = region;
helper_.set_size_most_recent(data->size());
@@ -382,7 +382,7 @@ void VideoFrameCapturerMac::CaptureFrame() {
delegate_->OnCaptureCompleted(data);
}
-void VideoFrameCapturerMac::CaptureCursor() {
+void ScreenCapturerMac::CaptureCursor() {
NSCursor* cursor = [NSCursor currentSystemCursor];
if (cursor == nil) {
return;
@@ -458,7 +458,7 @@ void VideoFrameCapturerMac::CaptureCursor() {
delegate_->OnCursorShapeChanged(cursor_shape.Pass());
}
-void VideoFrameCapturerMac::GlBlitFast(const VideoFrame& buffer,
+void ScreenCapturerMac::GlBlitFast(const ScreenCaptureFrame& buffer,
const SkRegion& region) {
const int buffer_height = buffer.dimensions().height();
const int buffer_width = buffer.dimensions().width();
@@ -525,7 +525,7 @@ void VideoFrameCapturerMac::GlBlitFast(const VideoFrame& buffer,
glBindBufferARB(GL_PIXEL_PACK_BUFFER_ARB, 0);
}
-void VideoFrameCapturerMac::GlBlitSlow(const VideoFrame& buffer) {
+void ScreenCapturerMac::GlBlitSlow(const ScreenCaptureFrame& buffer) {
CGLContextObj CGL_MACRO_CONTEXT = cgl_context_;
glReadBuffer(GL_FRONT);
glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT);
@@ -539,7 +539,7 @@ void VideoFrameCapturerMac::GlBlitSlow(const VideoFrame& buffer) {
glPopClientAttrib();
}
-void VideoFrameCapturerMac::CgBlitPreLion(const VideoFrame& buffer,
+void ScreenCapturerMac::CgBlitPreLion(const ScreenCaptureFrame& buffer,
const SkRegion& region) {
const int buffer_height = buffer.dimensions().height();
@@ -592,7 +592,7 @@ void VideoFrameCapturerMac::CgBlitPreLion(const VideoFrame& buffer,
}
}
-void VideoFrameCapturerMac::CgBlitPostLion(const VideoFrame& buffer,
+void ScreenCapturerMac::CgBlitPostLion(const ScreenCaptureFrame& buffer,
const SkRegion& region) {
const int buffer_height = buffer.dimensions().height();
@@ -652,7 +652,7 @@ void VideoFrameCapturerMac::CgBlitPostLion(const VideoFrame& buffer,
}
}
-void VideoFrameCapturerMac::ScreenConfigurationChanged() {
+void ScreenCapturerMac::ScreenConfigurationChanged() {
// Release existing buffers, which will be of the wrong size.
ReleaseBuffers();
@@ -753,7 +753,7 @@ void VideoFrameCapturerMac::ScreenConfigurationChanged() {
pixel_buffer_object_.Init(cgl_context_, buffer_size);
}
-void VideoFrameCapturerMac::ScreenRefresh(CGRectCount count,
+void ScreenCapturerMac::ScreenRefresh(CGRectCount count,
const CGRect* rect_array) {
if (desktop_bounds_.isEmpty()) {
return;
@@ -768,7 +768,7 @@ void VideoFrameCapturerMac::ScreenRefresh(CGRectCount count,
InvalidateRegion(region);
}
-void VideoFrameCapturerMac::ScreenUpdateMove(CGScreenUpdateMoveDelta delta,
+void ScreenCapturerMac::ScreenUpdateMove(CGScreenUpdateMoveDelta delta,
size_t count,
const CGRect* rect_array) {
SkIRect skirect_array[count];
@@ -783,7 +783,7 @@ void VideoFrameCapturerMac::ScreenUpdateMove(CGScreenUpdateMoveDelta delta,
InvalidateRegion(region);
}
-void VideoFrameCapturerMac::DisplaysReconfigured(
+void ScreenCapturerMac::DisplaysReconfigured(
CGDirectDisplayID display,
CGDisplayChangeSummaryFlags flags) {
if (flags & kCGDisplayBeginConfigurationFlag) {
@@ -809,10 +809,10 @@ void VideoFrameCapturerMac::DisplaysReconfigured(
}
}
-void VideoFrameCapturerMac::ScreenRefreshCallback(CGRectCount count,
+void ScreenCapturerMac::ScreenRefreshCallback(CGRectCount count,
const CGRect* rect_array,
void* user_parameter) {
- VideoFrameCapturerMac* capturer = reinterpret_cast<VideoFrameCapturerMac*>(
+ ScreenCapturerMac* capturer = reinterpret_cast<ScreenCapturerMac*>(
user_parameter);
if (capturer->desktop_bounds_.isEmpty()) {
capturer->ScreenConfigurationChanged();
@@ -820,21 +820,21 @@ void VideoFrameCapturerMac::ScreenRefreshCallback(CGRectCount count,
capturer->ScreenRefresh(count, rect_array);
}
-void VideoFrameCapturerMac::ScreenUpdateMoveCallback(
+void ScreenCapturerMac::ScreenUpdateMoveCallback(
CGScreenUpdateMoveDelta delta,
size_t count,
const CGRect* rect_array,
void* user_parameter) {
- VideoFrameCapturerMac* capturer = reinterpret_cast<VideoFrameCapturerMac*>(
+ ScreenCapturerMac* capturer = reinterpret_cast<ScreenCapturerMac*>(
user_parameter);
capturer->ScreenUpdateMove(delta, count, rect_array);
}
-void VideoFrameCapturerMac::DisplaysReconfiguredCallback(
+void ScreenCapturerMac::DisplaysReconfiguredCallback(
CGDirectDisplayID display,
CGDisplayChangeSummaryFlags flags,
void* user_parameter) {
- VideoFrameCapturerMac* capturer = reinterpret_cast<VideoFrameCapturerMac*>(
+ ScreenCapturerMac* capturer = reinterpret_cast<ScreenCapturerMac*>(
user_parameter);
capturer->DisplaysReconfigured(display, flags);
}
@@ -842,18 +842,18 @@ void VideoFrameCapturerMac::DisplaysReconfiguredCallback(
} // namespace
// static
-scoped_ptr<VideoFrameCapturer> VideoFrameCapturer::Create() {
- scoped_ptr<VideoFrameCapturerMac> capturer(new VideoFrameCapturerMac());
+scoped_ptr<ScreenCapturer> ScreenCapturer::Create() {
+ scoped_ptr<ScreenCapturerMac> capturer(new ScreenCapturerMac());
if (!capturer->Init())
capturer.reset();
- return capturer.PassAs<VideoFrameCapturer>();
+ return capturer.PassAs<ScreenCapturer>();
}
// static
-scoped_ptr<VideoFrameCapturer> VideoFrameCapturer::CreateWithFactory(
+scoped_ptr<ScreenCapturer> ScreenCapturer::CreateWithFactory(
SharedBufferFactory* shared_buffer_factory) {
NOTIMPLEMENTED();
- return scoped_ptr<VideoFrameCapturer>();
+ return scoped_ptr<ScreenCapturer>();
}
-} // namespace remoting
+} // namespace media

Powered by Google App Engine
This is Rietveld 408576698