Chromium Code Reviews
Description[WebRTC] Two DirectX capturers cannot work concurrently
DirectX capturer won't be able to update the DesktopFrame for the second
ScreenCapturerWinDirectx instance, if AcquireNextFrame() returns timeout or
unchanged error. Current solution uses |last_frame| of the second
ScreenCapturerWinDirectx instance, which also does not contain the updated frame
between this and last AcquireNextFrame() calls. Considering following situation,
(C1: capturer 1, C2: capturer 2, update: screen updated, next AcquireNextFrame()
call will return a new frame, Fx: a frame x)
update -> C2.capture returns F1 -> update -> C1.capture returns F2 ->
C2.capture unchanged
So using F1 to update the last capture frame is not correct, we need to use F2.
Refer to design doc https://goo.gl/hU1ifG for a detail description.
The change also makes DxgiDuplicatorController work with 2+ DesktopFrame queue.
Now TwoDirectxCapturers test can pass.
BUG=314516
Committed: https://crrev.com/aa90b313b437df0043d0c1621f1175727f6145f6
Cr-Commit-Position: refs/heads/master@{#14077}
Patch Set 1 #
Total comments: 6
Patch Set 2 : Resolve review comments #Patch Set 3 : Sync latest changes #
Messages
Total messages: 25 (15 generated)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||