From 721ede1096d9c3afc8d846311692a1ac1888c712 Mon Sep 17 00:00:00 2001 From: zijiehe Date: Thu, 23 Jun 2016 18:41:02 -0700 Subject: [PATCH] [Chromoting] DirectX based capturer should always return a temporary error When Windows is switching display mode, DirectX based capturer may not be able to create a new IDXGIOutputDuplication instance, which is expected. So it should return a temporary error instead of a permanent error. BUG= Review-Url: https://codereview.webrtc.org/2092543003 Cr-Commit-Position: refs/heads/master@{#13279} --- .../desktop_capture/win/screen_capturer_win_directx.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/webrtc/modules/desktop_capture/win/screen_capturer_win_directx.cc b/webrtc/modules/desktop_capture/win/screen_capturer_win_directx.cc index bdada9e398..47d0134d4e 100644 --- a/webrtc/modules/desktop_capture/win/screen_capturer_win_directx.cc +++ b/webrtc/modules/desktop_capture/win/screen_capturer_win_directx.cc @@ -619,8 +619,10 @@ void ScreenCapturerWinDirectx::Capture(const DesktopRegion& region) { RTC_DCHECK(callback_); if (!g_container->duplication && !DuplicateOutput()) { - // Failed to initialize desktop duplication. - callback_->OnCaptureResult(Result::ERROR_PERMANENT, nullptr); + // Failed to initialize desktop duplication. This usually happens when + // Windows is switching display mode. Retrying later usually resolves the + // issue. + callback_->OnCaptureResult(Result::ERROR_TEMPORARY, nullptr); return; }