diff --git a/webrtc/modules/desktop_capture/desktop_frame_win.cc b/webrtc/modules/desktop_capture/desktop_frame_win.cc index 261a90e9dc..98bc902c4b 100644 --- a/webrtc/modules/desktop_capture/desktop_frame_win.cc +++ b/webrtc/modules/desktop_capture/desktop_frame_win.cc @@ -10,6 +10,8 @@ #include "webrtc/modules/desktop_capture/desktop_frame_win.h" +#include "webrtc/system_wrappers/interface/logging.h" + namespace webrtc { DesktopFrameWin::DesktopFrameWin(DesktopSize size, @@ -48,6 +50,7 @@ DesktopFrameWin* DesktopFrameWin::Create(DesktopSize size, HBITMAP bitmap = CreateDIBSection(hdc, &bmi, DIB_RGB_COLORS, &data, section_handle, 0); if (!bitmap) { + LOG(LS_WARNING) << "Failed to allocate new window frame " << GetLastError(); delete shared_memory; return NULL; } diff --git a/webrtc/modules/desktop_capture/window_capturer_win.cc b/webrtc/modules/desktop_capture/window_capturer_win.cc index 089a877790..da93f5fce0 100644 --- a/webrtc/modules/desktop_capture/window_capturer_win.cc +++ b/webrtc/modules/desktop_capture/window_capturer_win.cc @@ -189,6 +189,10 @@ void WindowCapturerWin::Capture(const DesktopRegion& region) { scoped_ptr frame(DesktopFrameWin::Create( DesktopSize(rect.right - rect.left, rect.bottom - rect.top), NULL, window_dc_)); + if (!frame.get()) { + callback_->OnCaptureCompleted(NULL); + return; + } HDC mem_dc = CreateCompatibleDC(window_dc_); SelectObject(mem_dc, frame->bitmap());