|
@@ -19,6 +19,7 @@ using base::PlatformThreadRef;
|
|
|
#include "third_party/webrtc/modules/desktop_capture/desktop_capturer.h"
|
|
|
#if defined(OS_WIN)
|
|
|
#include "third_party/webrtc/modules/desktop_capture/win/dxgi_duplicator_controller.h"
|
|
|
+#include "third_party/webrtc/modules/desktop_capture/win/screen_capturer_win_directx.h"
|
|
|
#include "ui/display/win/display_info.h"
|
|
|
#endif // defined(OS_WIN)
|
|
|
|
|
@@ -62,7 +63,13 @@ void DesktopCapturer::StartHandling(bool capture_window,
|
|
|
webrtc::DesktopCaptureOptions options =
|
|
|
content::CreateDesktopCaptureOptions();
|
|
|
#if defined(OS_WIN)
|
|
|
- using_directx_capturer_ = options.allow_directx_capturer();
|
|
|
+ if (options.allow_directx_capturer()) {
|
|
|
+ // DxgiDuplicatorController should be alive in this scope according to
|
|
|
+ // screen_capturer_win.cc.
|
|
|
+ auto duplicator = webrtc::DxgiDuplicatorController::Instance();
|
|
|
+ using_directx_capturer_ =
|
|
|
+ webrtc::ScreenCapturerWinDirectx::IsSupported();
|
|
|
+ }
|
|
|
#endif // defined(OS_WIN)
|
|
|
|
|
|
std::unique_ptr<webrtc::DesktopCapturer> screen_capturer(
|