From 89959966a9c0eb680da49052e42e3b541da26483 Mon Sep 17 00:00:00 2001 From: "jiayl@webrtc.org" Date: Thu, 11 Sep 2014 19:33:58 +0000 Subject: [PATCH] Fix window capturing on Windows when the window is minimized. BUG=crbug/410290 R=sergeyu@chromium.org Review URL: https://webrtc-codereview.appspot.com/20319004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7158 4adac7df-926f-26a2-2b94-8c16560cd09d --- webrtc/modules/desktop_capture/window_capturer_win.cc | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/webrtc/modules/desktop_capture/window_capturer_win.cc b/webrtc/modules/desktop_capture/window_capturer_win.cc index c6555de4b9..ac0ee7a774 100644 --- a/webrtc/modules/desktop_capture/window_capturer_win.cc +++ b/webrtc/modules/desktop_capture/window_capturer_win.cc @@ -173,6 +173,17 @@ void WindowCapturerWin::Capture(const DesktopRegion& region) { return; } + // Return a 2x2 black frame if the window is minimized. The size is 2x2 so it + // can be subsampled to I420 downstream. + if (IsIconic(window_)) { + BasicDesktopFrame* frame = new BasicDesktopFrame(DesktopSize(2, 2)); + memset(frame->data(), 0, frame->stride() * frame->size().height()); + + previous_size_ = frame->size(); + callback_->OnCaptureCompleted(frame); + return; + } + DesktopRect original_rect; DesktopRect cropped_rect; if (!GetCroppedWindowRect(window_, &cropped_rect, &original_rect)) {