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

Unified Diff: media/video/capture/screen/screen_capturer_helper.cc

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 side-by-side diff with in-line comments
Download patch
Index: media/video/capture/screen/screen_capturer_helper.cc
diff --git a/media/video/capture/screen/screen_capturer_helper.cc b/media/video/capture/screen/screen_capturer_helper.cc
index 2f4534260c9cb0190481a9a3115988b4f6dce087..e85cf3b7ddb5bd7ad78005ff167a1c3a3fa145fd 100644
--- a/media/video/capture/screen/screen_capturer_helper.cc
+++ b/media/video/capture/screen/screen_capturer_helper.cc
@@ -12,7 +12,6 @@
namespace media {
ScreenCapturerHelper::ScreenCapturerHelper() :
- size_most_recent_(SkISize::Make(0, 0)),
log_grid_size_(0) {
}
@@ -25,33 +24,43 @@ void ScreenCapturerHelper::ClearInvalidRegion() {
}
void ScreenCapturerHelper::InvalidateRegion(
- const SkRegion& invalid_region) {
+ const webrtc::DesktopRegion& invalid_region) {
base::AutoLock auto_invalid_region_lock(invalid_region_lock_);
- invalid_region_.op(invalid_region, SkRegion::kUnion_Op);
+ for (webrtc::DesktopRegion::Iterator it(invalid_region);
+ !it.IsAtEnd(); it.Advance()) {
+ invalid_region_.op(SkIRect::MakeLTRB(it.rect().left(), it.rect().top(),
+ it.rect().right(), it.rect().bottom()),
+ SkRegion::kUnion_Op);
+ }
}
-void ScreenCapturerHelper::InvalidateScreen(const SkISize& size) {
+void ScreenCapturerHelper::InvalidateScreen(const webrtc::DesktopSize& size) {
base::AutoLock auto_invalid_region_lock(invalid_region_lock_);
invalid_region_.op(SkIRect::MakeWH(size.width(), size.height()),
SkRegion::kUnion_Op);
}
-void ScreenCapturerHelper::InvalidateFullScreen() {
- if (!size_most_recent_.isZero())
- InvalidateScreen(size_most_recent_);
-}
-
-void ScreenCapturerHelper::SwapInvalidRegion(SkRegion* invalid_region) {
+void ScreenCapturerHelper::TakeInvalidRegion(
+ webrtc::DesktopRegion* invalid_region) {
+ SkRegion sk_invalid_region;
{
base::AutoLock auto_invalid_region_lock(invalid_region_lock_);
- invalid_region->swap(invalid_region_);
+ sk_invalid_region.swap(invalid_region_);
}
+
if (log_grid_size_ > 0) {
scoped_ptr<SkRegion> expanded_region(
- ExpandToGrid(*invalid_region, log_grid_size_));
- invalid_region->swap(*expanded_region);
- invalid_region->op(SkRegion(SkIRect::MakeSize(size_most_recent_)),
- SkRegion::kIntersect_Op);
+ ExpandToGrid(sk_invalid_region, log_grid_size_));
+ sk_invalid_region.swap(*expanded_region);
+ sk_invalid_region.op(SkIRect::MakeWH(size_most_recent_.width(),
+ size_most_recent_.height()),
+ SkRegion::kIntersect_Op);
+ }
+ invalid_region->Clear();
+ for (SkRegion::Iterator it(sk_invalid_region); !it.done(); it.next()) {
+ invalid_region->AddRect(webrtc::DesktopRect::MakeLTRB(
+ it.rect().left(), it.rect().top(),
+ it.rect().right(), it.rect().bottom()));
}
}
@@ -59,11 +68,12 @@ void ScreenCapturerHelper::SetLogGridSize(int log_grid_size) {
log_grid_size_ = log_grid_size;
}
-const SkISize& ScreenCapturerHelper::size_most_recent() const {
+const webrtc::DesktopSize& ScreenCapturerHelper::size_most_recent() const {
return size_most_recent_;
}
-void ScreenCapturerHelper::set_size_most_recent(const SkISize& size) {
+void ScreenCapturerHelper::set_size_most_recent(
+ const webrtc::DesktopSize& size) {
size_most_recent_ = size;
}
« no previous file with comments | « media/video/capture/screen/screen_capturer_helper.h ('k') | media/video/capture/screen/screen_capturer_helper_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698