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

Unified Diff: webrtc/modules/desktop_capture/desktop_capturer_differ_wrapper.cc

Issue 2468753002: Add CreateWindowCapturer() and CreateScreenCapturer() in DesktopCapturer (Closed)
Patch Set: Build break without X11 Created 4 years, 1 month 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: webrtc/modules/desktop_capture/desktop_capturer_differ_wrapper.cc
diff --git a/webrtc/modules/desktop_capture/screen_capturer_differ_wrapper.cc b/webrtc/modules/desktop_capture/desktop_capturer_differ_wrapper.cc
similarity index 76%
copy from webrtc/modules/desktop_capture/screen_capturer_differ_wrapper.cc
copy to webrtc/modules/desktop_capture/desktop_capturer_differ_wrapper.cc
index 6306d0290c0b18236e9ffb8839d0833cd231419a..1ad9ce47056f24de307155c47795a89410dee358 100644
--- a/webrtc/modules/desktop_capture/screen_capturer_differ_wrapper.cc
+++ b/webrtc/modules/desktop_capture/desktop_capturer_differ_wrapper.cc
@@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
-#include "webrtc/modules/desktop_capture/screen_capturer_differ_wrapper.h"
+#include "webrtc/modules/desktop_capture/desktop_capturer_differ_wrapper.h"
#include <string.h>
@@ -77,9 +77,9 @@ void CompareRow(const uint8_t* old_buffer,
} else if (first_dirty_x_block != -1) {
// The block on the left is the last dirty block in a continuous
// dirty area.
- output->AddRect(DesktopRect::MakeLTRB(
- first_dirty_x_block * kBlockSize + left, top,
- x * kBlockSize + left, bottom));
+ output->AddRect(
+ DesktopRect::MakeLTRB(first_dirty_x_block * kBlockSize + left, top,
+ x * kBlockSize + left, bottom));
first_dirty_x_block = -1;
}
old_buffer += block_x_offset;
@@ -89,23 +89,21 @@ void CompareRow(const uint8_t* old_buffer,
bool last_block_diff;
if (last_block_width < kBlockSize) {
// The last one is a partial vector.
- last_block_diff = PartialBlockDifference(
- old_buffer, new_buffer, last_block_width, height, stride);
+ last_block_diff = PartialBlockDifference(old_buffer, new_buffer,
+ last_block_width, height, stride);
} else {
- last_block_diff =
- BlockDifference(old_buffer, new_buffer, height, stride);
+ last_block_diff = BlockDifference(old_buffer, new_buffer, height, stride);
}
if (last_block_diff) {
if (first_dirty_x_block == -1) {
first_dirty_x_block = block_count;
}
- output->AddRect(
- DesktopRect::MakeLTRB(first_dirty_x_block * kBlockSize + left,
- top, right, bottom));
- } else if (first_dirty_x_block != -1) {
output->AddRect(DesktopRect::MakeLTRB(
- first_dirty_x_block * kBlockSize + left, top,
- block_count * kBlockSize + left, bottom));
+ first_dirty_x_block * kBlockSize + left, top, right, bottom));
+ } else if (first_dirty_x_block != -1) {
+ output->AddRect(
+ DesktopRect::MakeLTRB(first_dirty_x_block * kBlockSize + left, top,
+ block_count * kBlockSize + left, bottom));
}
}
@@ -132,50 +130,57 @@ void CompareFrames(const DesktopFrame& old_frame,
// The last row may have a different height, so we handle it separately.
for (int y = 0; y < y_block_count; y++) {
CompareRow(prev_block_row_start, curr_block_row_start, rect.left(),
- rect.right(), top, top + kBlockSize,
- old_frame.stride(), output);
+ rect.right(), top, top + kBlockSize, old_frame.stride(), output);
top += kBlockSize;
prev_block_row_start += block_y_stride;
curr_block_row_start += block_y_stride;
}
CompareRow(prev_block_row_start, curr_block_row_start, rect.left(),
- rect.right(), top, top + last_y_block_height,
- old_frame.stride(), output);
+ rect.right(), top, top + last_y_block_height, old_frame.stride(),
+ output);
}
} // namespace
-ScreenCapturerDifferWrapper::ScreenCapturerDifferWrapper(
- std::unique_ptr<ScreenCapturer> base_capturer)
+DesktopCapturerDifferWrapper::DesktopCapturerDifferWrapper(
+ std::unique_ptr<DesktopCapturer> base_capturer)
: base_capturer_(std::move(base_capturer)) {
RTC_DCHECK(base_capturer_);
}
-ScreenCapturerDifferWrapper::~ScreenCapturerDifferWrapper() {}
+DesktopCapturerDifferWrapper::~DesktopCapturerDifferWrapper() {}
-void ScreenCapturerDifferWrapper::Start(DesktopCapturer::Callback* callback) {
+void DesktopCapturerDifferWrapper::Start(DesktopCapturer::Callback* callback) {
callback_ = callback;
base_capturer_->Start(this);
}
-void ScreenCapturerDifferWrapper::SetSharedMemoryFactory(
+void DesktopCapturerDifferWrapper::SetSharedMemoryFactory(
std::unique_ptr<SharedMemoryFactory> shared_memory_factory) {
base_capturer_->SetSharedMemoryFactory(std::move(shared_memory_factory));
}
-void ScreenCapturerDifferWrapper::CaptureFrame() {
+void DesktopCapturerDifferWrapper::CaptureFrame() {
base_capturer_->CaptureFrame();
}
-bool ScreenCapturerDifferWrapper::GetScreenList(ScreenList* screens) {
- return base_capturer_->GetScreenList(screens);
+void DesktopCapturerDifferWrapper::SetExcludedWindow(WindowId window) {
+ base_capturer_->SetExcludedWindow(window);
+}
+
+bool DesktopCapturerDifferWrapper::GetSourceList(SourceList* sources) {
+ return base_capturer_->GetSourceList(sources);
+}
+
+bool DesktopCapturerDifferWrapper::SelectSource(SourceId id) {
+ return base_capturer_->SelectSource(id);
}
-bool ScreenCapturerDifferWrapper::SelectScreen(ScreenId id) {
- return base_capturer_->SelectScreen(id);
+bool DesktopCapturerDifferWrapper::FocusOnSelectedSource() {
+ return base_capturer_->FocusOnSelectedSource();
}
-void ScreenCapturerDifferWrapper::OnCaptureResult(
+void DesktopCapturerDifferWrapper::OnCaptureResult(
Result result,
std::unique_ptr<DesktopFrame> input_frame) {
int64_t start_time_nanos = rtc::TimeNanos();
@@ -187,10 +192,9 @@ void ScreenCapturerDifferWrapper::OnCaptureResult(
std::unique_ptr<SharedDesktopFrame> frame =
SharedDesktopFrame::Wrap(std::move(input_frame));
- if (last_frame_ &&
- (last_frame_->size().width() != frame->size().width() ||
- last_frame_->size().height() != frame->size().height() ||
- last_frame_->stride() != frame->stride())) {
+ if (last_frame_ && (last_frame_->size().width() != frame->size().width() ||
+ last_frame_->size().height() != frame->size().height() ||
+ last_frame_->stride() != frame->stride())) {
last_frame_.reset();
}

Powered by Google App Engine
This is Rietveld 408576698