In DxgiOutputDuplicator, we need to convert between a monitor based coordinate and a entire screen based coordinate. i.e. Copying an updated area from a monitor (an output in DirectX API) to the entire screen frame (DesktopFrame). But DxgiOutputDuplicator always assumes the coordinate is based on screen frame. So we only need to convert a rectange in updated_region to monitor based coordinate when copying data from texture_. But in last_frame_, the data are always based on screen coordinate. So fixes are both required in line 167 and line 180. In the previous one, we do not need to convert the DesktopRect, which is already screen based, into screen based coordinate. In the late one, we do not need to convert the DesktopRect at all. So after these two changes, DxgiOutputDuplicator::TargetRect() function can be removed. Flickers of DirectX capturer can happen on any devices, but a virtual machine can easily reproduce it. While on a regular high performance machine, it's harder, but not totally impossible, to reproduce the issue. BUG=314516 Review-Url: https://codereview.webrtc.org/2495143002 Cr-Commit-Position: refs/heads/master@{#15075}
Name: WebRTC URL: http://www.webrtc.org Version: 90 License: BSD License File: LICENSE Description: WebRTC provides real time voice and video processing functionality to enable the implementation of PeerConnection/MediaStream. Third party code used in this project is described in the file LICENSE_THIRD_PARTY.