New issue
Advanced search Search tips

Issue 785072 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Feb 2018
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug

Blocked on:
issue 754872



Sign in to add a comment

Revisit passive/active tab capture refresh logic

Project Member Reported by m...@chromium.org, Nov 15 2017

Issue description

Tab/Desktop capture will soon be completely moved into the VIZ service. In doing this, it became apparent that the design and control logic around passive vs. active refresh requests is now a bit misplaced: It seems that media::VideoCaptureOracle owns too much of this logic, and this prevents the new FrameSinkVideoCapturerImpl from guaranteeing that an initial video frame will always be captured and delivered to a consumer while the target frame sink's content is not changing.

OTOH solution: Once receiving a refresh frame request (or when starting capture), the FrameSinkVideoCapturerImpl should set a timer that forces capture after a reasonable delay. If other events cause a capture to happen in the meantime, the timer can be canceled. With this, perhaps a lot of the media::VideoCaptureOracle logic around refresh events can be removed?

 

Comment 1 by m...@chromium.org, Nov 15 2017

It's also worth noting that this may be affected by a later project to move mouse cursor rendering into VIZ as well.
Project Member

Comment 2 by bugdroid1@chromium.org, Jan 4 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/94e94c2e1cf3afce6158365aa3044450d7cd5890

commit 94e94c2e1cf3afce6158365aa3044450d7cd5890
Author: Yuri Wiitala <miu@chromium.org>
Date: Thu Jan 04 21:10:25 2018

FrameSinkVideoCapturer: Ensure refresh frame requests.

Due to a minor oversight, the FrameSinkVideoCapturer will occasionally
drop refresh frame requests. This is because the VideoCaptureOracle can
reject the request for a frame capture, based on its own sampling
heuristics. This change adds a simple mechanism where a "retry timer" is
started if this should occur. The "retry" is canceled if other frame
captures are triggered in the meantime. Essentially, this guarantees
that the consumer will eventually receive a new video frame after making
a refresh request for one.

Bug:  785072 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel
Change-Id: Ic3dd0d5ca1f8cb48193123e714ed8cf89076f953
Reviewed-on: https://chromium-review.googlesource.com/838320
Reviewed-by: Xiangjun Zhang <xjz@chromium.org>
Commit-Queue: Yuri Wiitala <miu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#527093}
[modify] https://crrev.com/94e94c2e1cf3afce6158365aa3044450d7cd5890/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl.cc
[modify] https://crrev.com/94e94c2e1cf3afce6158365aa3044450d7cd5890/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl.h
[modify] https://crrev.com/94e94c2e1cf3afce6158365aa3044450d7cd5890/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl_unittest.cc

Project Member

Comment 3 by bugdroid1@chromium.org, Jan 22 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9d36abaf9855b5a018a52ba861fb2638750d937c

commit 9d36abaf9855b5a018a52ba861fb2638750d937c
Author: Yuri Wiitala <miu@chromium.org>
Date: Mon Jan 22 20:07:09 2018

FrameSinkVideoCapturer: Fix initial refresh frame behavior.

During testing in the new tab capture impl, a behavior regression was
found, which was previously resolved in  crbug.com/704277 . This change
fixes the problem by postponing the first frame capture until the source
target is resolved AND its Surface has composited at least once.

Much of this change is around some refactoring of the existing refresh
frame requests/timer implementation to account for all refresh frame
scenarios. Also, unit tests were modified to test the modified and new
behaviors.

Bug:  785072 ,  754872 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel
Change-Id: Ic1cf4c49b66b6541fe7c8401545643c82cebc818
Reviewed-on: https://chromium-review.googlesource.com/877787
Reviewed-by: Xiangjun Zhang <xjz@chromium.org>
Commit-Queue: Yuri Wiitala <miu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#530963}
[modify] https://crrev.com/9d36abaf9855b5a018a52ba861fb2638750d937c/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl.cc
[modify] https://crrev.com/9d36abaf9855b5a018a52ba861fb2638750d937c/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl.h
[modify] https://crrev.com/9d36abaf9855b5a018a52ba861fb2638750d937c/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl_unittest.cc

Project Member

Comment 4 by bugdroid1@chromium.org, Jan 27 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/93f7aa878977c00c2bfebb70b7c6f2ff73dcdee0

commit 93f7aa878977c00c2bfebb70b7c6f2ff73dcdee0
Author: Yuri Wiitala <miu@chromium.org>
Date: Sat Jan 27 05:27:07 2018

FrameSinkVideoCapturer: Fix refresh logic for damaged sources.

Fixes a couple of issues where frame capture becomes frozen or choppy,
with the following changes:

1. Move the "source dirty" logic out of VideoCaptureOracle and into
FrameSinkVideoCapturerImpl.

2. More-agressive response to frame refresh requests (needed for
improved mouse cursor update response).

3. Remove the distinction between passive and active refreshes from
VideoCaptureOracle. FrameSinkVideoCapturer now tracks source damage, and
can execute any refresh passively when there is no damage.

4. Add logic to ensure that FrameSinkVideoCapturerImpl provides
consumers with a refresh frame whenever key events occur; such as params
changes, capture target changes, etc.; that are known to require a full
update.

5. Re-enable the content_browsertests that were disabled due to
flakiness.

Bug:  785072 ,  754872 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel
Change-Id: I402f3f928de61e6754e04014327421e4f6917d5f
Reviewed-on: https://chromium-review.googlesource.com/884996
Reviewed-by: Yuri Wiitala <miu@chromium.org>
Reviewed-by: Xiangjun Zhang <xjz@chromium.org>
Reviewed-by: kylechar <kylechar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532161}
[modify] https://crrev.com/93f7aa878977c00c2bfebb70b7c6f2ff73dcdee0/components/viz/service/frame_sinks/compositor_frame_sink_support.cc
[modify] https://crrev.com/93f7aa878977c00c2bfebb70b7c6f2ff73dcdee0/components/viz/service/frame_sinks/compositor_frame_sink_support.h
[modify] https://crrev.com/93f7aa878977c00c2bfebb70b7c6f2ff73dcdee0/components/viz/service/frame_sinks/video_capture/capturable_frame_sink.h
[modify] https://crrev.com/93f7aa878977c00c2bfebb70b7c6f2ff73dcdee0/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl.cc
[modify] https://crrev.com/93f7aa878977c00c2bfebb70b7c6f2ff73dcdee0/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl.h
[modify] https://crrev.com/93f7aa878977c00c2bfebb70b7c6f2ff73dcdee0/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl_unittest.cc
[modify] https://crrev.com/93f7aa878977c00c2bfebb70b7c6f2ff73dcdee0/content/browser/media/capture/aura_window_capture_machine.cc
[modify] https://crrev.com/93f7aa878977c00c2bfebb70b7c6f2ff73dcdee0/content/browser/media/capture/web_contents_video_capture_device_browsertest.cc
[modify] https://crrev.com/93f7aa878977c00c2bfebb70b7c6f2ff73dcdee0/media/capture/content/android/screen_capture_machine_android.cc
[modify] https://crrev.com/93f7aa878977c00c2bfebb70b7c6f2ff73dcdee0/media/capture/content/screen_capture_device_core.cc
[modify] https://crrev.com/93f7aa878977c00c2bfebb70b7c6f2ff73dcdee0/media/capture/content/screen_capture_device_core.h
[modify] https://crrev.com/93f7aa878977c00c2bfebb70b7c6f2ff73dcdee0/media/capture/content/thread_safe_capture_oracle.cc
[modify] https://crrev.com/93f7aa878977c00c2bfebb70b7c6f2ff73dcdee0/media/capture/content/thread_safe_capture_oracle.h
[modify] https://crrev.com/93f7aa878977c00c2bfebb70b7c6f2ff73dcdee0/media/capture/content/video_capture_oracle.cc
[modify] https://crrev.com/93f7aa878977c00c2bfebb70b7c6f2ff73dcdee0/media/capture/content/video_capture_oracle.h
[modify] https://crrev.com/93f7aa878977c00c2bfebb70b7c6f2ff73dcdee0/media/capture/content/video_capture_oracle_unittest.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Jan 27 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/52c31b740b1d124a4a9fa521e65ee0c0dc20b724

commit 52c31b740b1d124a4a9fa521e65ee0c0dc20b724
Author: Thomas Anderson <thomasanderson@chromium.org>
Date: Sat Jan 27 19:54:48 2018

Revert "FrameSinkVideoCapturer: Fix refresh logic for damaged sources."

This reverts commit 93f7aa878977c00c2bfebb70b7c6f2ff73dcdee0.

Reason for revert: Causes failure in WebContentsVideoCaptureDeviceBrowserTest on Linux Tests (dbg)(1)(32):
https://ci.chromium.org/buildbot/chromium.linux/Linux%20Tests%20%28dbg%29%281%29%2832%29/47651

Original change's description:
> FrameSinkVideoCapturer: Fix refresh logic for damaged sources.
> 
> Fixes a couple of issues where frame capture becomes frozen or choppy,
> with the following changes:
> 
> 1. Move the "source dirty" logic out of VideoCaptureOracle and into
> FrameSinkVideoCapturerImpl.
> 
> 2. More-agressive response to frame refresh requests (needed for
> improved mouse cursor update response).
> 
> 3. Remove the distinction between passive and active refreshes from
> VideoCaptureOracle. FrameSinkVideoCapturer now tracks source damage, and
> can execute any refresh passively when there is no damage.
> 
> 4. Add logic to ensure that FrameSinkVideoCapturerImpl provides
> consumers with a refresh frame whenever key events occur; such as params
> changes, capture target changes, etc.; that are known to require a full
> update.
> 
> 5. Re-enable the content_browsertests that were disabled due to
> flakiness.
> 
> Bug:  785072 ,  754872 
> Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel
> Change-Id: I402f3f928de61e6754e04014327421e4f6917d5f
> Reviewed-on: https://chromium-review.googlesource.com/884996
> Reviewed-by: Yuri Wiitala <miu@chromium.org>
> Reviewed-by: Xiangjun Zhang <xjz@chromium.org>
> Reviewed-by: kylechar <kylechar@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#532161}

TBR=miu@chromium.org,kylechar@chromium.org,xjz@chromium.org

Change-Id: I32fd2fb0bf1e1dc32c026198809d12ff2ecc69f1
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  785072 ,  754872 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel
Reviewed-on: https://chromium-review.googlesource.com/890380
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532247}
[modify] https://crrev.com/52c31b740b1d124a4a9fa521e65ee0c0dc20b724/components/viz/service/frame_sinks/compositor_frame_sink_support.cc
[modify] https://crrev.com/52c31b740b1d124a4a9fa521e65ee0c0dc20b724/components/viz/service/frame_sinks/compositor_frame_sink_support.h
[modify] https://crrev.com/52c31b740b1d124a4a9fa521e65ee0c0dc20b724/components/viz/service/frame_sinks/video_capture/capturable_frame_sink.h
[modify] https://crrev.com/52c31b740b1d124a4a9fa521e65ee0c0dc20b724/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl.cc
[modify] https://crrev.com/52c31b740b1d124a4a9fa521e65ee0c0dc20b724/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl.h
[modify] https://crrev.com/52c31b740b1d124a4a9fa521e65ee0c0dc20b724/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl_unittest.cc
[modify] https://crrev.com/52c31b740b1d124a4a9fa521e65ee0c0dc20b724/content/browser/media/capture/aura_window_capture_machine.cc
[modify] https://crrev.com/52c31b740b1d124a4a9fa521e65ee0c0dc20b724/content/browser/media/capture/web_contents_video_capture_device_browsertest.cc
[modify] https://crrev.com/52c31b740b1d124a4a9fa521e65ee0c0dc20b724/media/capture/content/android/screen_capture_machine_android.cc
[modify] https://crrev.com/52c31b740b1d124a4a9fa521e65ee0c0dc20b724/media/capture/content/screen_capture_device_core.cc
[modify] https://crrev.com/52c31b740b1d124a4a9fa521e65ee0c0dc20b724/media/capture/content/screen_capture_device_core.h
[modify] https://crrev.com/52c31b740b1d124a4a9fa521e65ee0c0dc20b724/media/capture/content/thread_safe_capture_oracle.cc
[modify] https://crrev.com/52c31b740b1d124a4a9fa521e65ee0c0dc20b724/media/capture/content/thread_safe_capture_oracle.h
[modify] https://crrev.com/52c31b740b1d124a4a9fa521e65ee0c0dc20b724/media/capture/content/video_capture_oracle.cc
[modify] https://crrev.com/52c31b740b1d124a4a9fa521e65ee0c0dc20b724/media/capture/content/video_capture_oracle.h
[modify] https://crrev.com/52c31b740b1d124a4a9fa521e65ee0c0dc20b724/media/capture/content/video_capture_oracle_unittest.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Jan 29 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d26dcac0a6390fb039dee8eaec0906411164c7a9

commit d26dcac0a6390fb039dee8eaec0906411164c7a9
Author: Yuri Wiitala <miu@chromium.org>
Date: Mon Jan 29 04:37:30 2018

Re-land "FrameSinkVideoCapturer: Fix refresh logic for damaged sources."

This reverts commit 52c31b740b1d124a4a9fa521e65ee0c0dc20b724, to re-land
the original CL (https://chromium-review.googlesource.com/884996). The
viz_content_browsertests were failing because of a bug in the posix
shmem impl (in base/memory/shared_memory_helper.cc) when the pool is
being run in the VIZ process. For now, the tests have been added to the
viz_content_browsertests filter file; and once the root-cause issue has
been resolved, they can be re-enabled.

TBR=xjz@chromium.org,kylechar@chromium.org

Bug:  806635 ,  785072 ,  754872 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel
Change-Id: I0f419ce2aee170a0fbd966ff8e10bb99c3b7067f
Reviewed-on: https://chromium-review.googlesource.com/889934
Commit-Queue: Yuri Wiitala <miu@chromium.org>
Reviewed-by: Yuri Wiitala <miu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532322}
[modify] https://crrev.com/d26dcac0a6390fb039dee8eaec0906411164c7a9/components/viz/service/frame_sinks/compositor_frame_sink_support.cc
[modify] https://crrev.com/d26dcac0a6390fb039dee8eaec0906411164c7a9/components/viz/service/frame_sinks/compositor_frame_sink_support.h
[modify] https://crrev.com/d26dcac0a6390fb039dee8eaec0906411164c7a9/components/viz/service/frame_sinks/video_capture/capturable_frame_sink.h
[modify] https://crrev.com/d26dcac0a6390fb039dee8eaec0906411164c7a9/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl.cc
[modify] https://crrev.com/d26dcac0a6390fb039dee8eaec0906411164c7a9/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl.h
[modify] https://crrev.com/d26dcac0a6390fb039dee8eaec0906411164c7a9/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl_unittest.cc
[modify] https://crrev.com/d26dcac0a6390fb039dee8eaec0906411164c7a9/content/browser/media/capture/aura_window_capture_machine.cc
[modify] https://crrev.com/d26dcac0a6390fb039dee8eaec0906411164c7a9/content/browser/media/capture/web_contents_video_capture_device_browsertest.cc
[modify] https://crrev.com/d26dcac0a6390fb039dee8eaec0906411164c7a9/media/capture/content/android/screen_capture_machine_android.cc
[modify] https://crrev.com/d26dcac0a6390fb039dee8eaec0906411164c7a9/media/capture/content/screen_capture_device_core.cc
[modify] https://crrev.com/d26dcac0a6390fb039dee8eaec0906411164c7a9/media/capture/content/screen_capture_device_core.h
[modify] https://crrev.com/d26dcac0a6390fb039dee8eaec0906411164c7a9/media/capture/content/thread_safe_capture_oracle.cc
[modify] https://crrev.com/d26dcac0a6390fb039dee8eaec0906411164c7a9/media/capture/content/thread_safe_capture_oracle.h
[modify] https://crrev.com/d26dcac0a6390fb039dee8eaec0906411164c7a9/media/capture/content/video_capture_oracle.cc
[modify] https://crrev.com/d26dcac0a6390fb039dee8eaec0906411164c7a9/media/capture/content/video_capture_oracle.h
[modify] https://crrev.com/d26dcac0a6390fb039dee8eaec0906411164c7a9/media/capture/content/video_capture_oracle_unittest.cc
[modify] https://crrev.com/d26dcac0a6390fb039dee8eaec0906411164c7a9/testing/buildbot/filters/viz.content_browsertests.filter

Project Member

Comment 7 by bugdroid1@chromium.org, Jan 29 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/13c588bc9a1e2855f1f6cba4664a1f3502c4b0ad

commit 13c588bc9a1e2855f1f6cba4664a1f3502c4b0ad
Author: vitaliii <vitaliii@chromium.org>
Date: Mon Jan 29 11:37:48 2018

Revert "Re-land "FrameSinkVideoCapturer: Fix refresh logic for damaged sources.""

This reverts commit d26dcac0a6390fb039dee8eaec0906411164c7a9.

Reason for revert: Seems to cause an exception (time out) on Linux ChromiumOS MSan Tests (see  crbug.com/806715 ). The original CL (the one relanded) caused this exception too.

Original change's description:
> Re-land "FrameSinkVideoCapturer: Fix refresh logic for damaged sources."
> 
> This reverts commit 52c31b740b1d124a4a9fa521e65ee0c0dc20b724, to re-land
> the original CL (https://chromium-review.googlesource.com/884996). The
> viz_content_browsertests were failing because of a bug in the posix
> shmem impl (in base/memory/shared_memory_helper.cc) when the pool is
> being run in the VIZ process. For now, the tests have been added to the
> viz_content_browsertests filter file; and once the root-cause issue has
> been resolved, they can be re-enabled.
> 
> TBR=xjz@chromium.org,kylechar@chromium.org
> 
> Bug:  806635 ,  785072 ,  754872 
> Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel
> Change-Id: I0f419ce2aee170a0fbd966ff8e10bb99c3b7067f
> Reviewed-on: https://chromium-review.googlesource.com/889934
> Commit-Queue: Yuri Wiitala <miu@chromium.org>
> Reviewed-by: Yuri Wiitala <miu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#532322}

TBR=miu@chromium.org,kylechar@chromium.org,xjz@chromium.org

Change-Id: Ia3715ed63494598badbe85e2f418b792c952dadb
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  806635 ,  785072 ,  754872 ,  806715 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel
Reviewed-on: https://chromium-review.googlesource.com/890445
Reviewed-by: vitaliii <vitaliii@chromium.org>
Commit-Queue: vitaliii <vitaliii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532395}
[modify] https://crrev.com/13c588bc9a1e2855f1f6cba4664a1f3502c4b0ad/components/viz/service/frame_sinks/compositor_frame_sink_support.cc
[modify] https://crrev.com/13c588bc9a1e2855f1f6cba4664a1f3502c4b0ad/components/viz/service/frame_sinks/compositor_frame_sink_support.h
[modify] https://crrev.com/13c588bc9a1e2855f1f6cba4664a1f3502c4b0ad/components/viz/service/frame_sinks/video_capture/capturable_frame_sink.h
[modify] https://crrev.com/13c588bc9a1e2855f1f6cba4664a1f3502c4b0ad/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl.cc
[modify] https://crrev.com/13c588bc9a1e2855f1f6cba4664a1f3502c4b0ad/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl.h
[modify] https://crrev.com/13c588bc9a1e2855f1f6cba4664a1f3502c4b0ad/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl_unittest.cc
[modify] https://crrev.com/13c588bc9a1e2855f1f6cba4664a1f3502c4b0ad/content/browser/media/capture/aura_window_capture_machine.cc
[modify] https://crrev.com/13c588bc9a1e2855f1f6cba4664a1f3502c4b0ad/content/browser/media/capture/web_contents_video_capture_device_browsertest.cc
[modify] https://crrev.com/13c588bc9a1e2855f1f6cba4664a1f3502c4b0ad/media/capture/content/android/screen_capture_machine_android.cc
[modify] https://crrev.com/13c588bc9a1e2855f1f6cba4664a1f3502c4b0ad/media/capture/content/screen_capture_device_core.cc
[modify] https://crrev.com/13c588bc9a1e2855f1f6cba4664a1f3502c4b0ad/media/capture/content/screen_capture_device_core.h
[modify] https://crrev.com/13c588bc9a1e2855f1f6cba4664a1f3502c4b0ad/media/capture/content/thread_safe_capture_oracle.cc
[modify] https://crrev.com/13c588bc9a1e2855f1f6cba4664a1f3502c4b0ad/media/capture/content/thread_safe_capture_oracle.h
[modify] https://crrev.com/13c588bc9a1e2855f1f6cba4664a1f3502c4b0ad/media/capture/content/video_capture_oracle.cc
[modify] https://crrev.com/13c588bc9a1e2855f1f6cba4664a1f3502c4b0ad/media/capture/content/video_capture_oracle.h
[modify] https://crrev.com/13c588bc9a1e2855f1f6cba4664a1f3502c4b0ad/media/capture/content/video_capture_oracle_unittest.cc
[modify] https://crrev.com/13c588bc9a1e2855f1f6cba4664a1f3502c4b0ad/testing/buildbot/filters/viz.content_browsertests.filter

Project Member

Comment 8 by bugdroid1@chromium.org, Jan 29 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/910087dc8404fb0df27a9fc27e236777a86954c1

commit 910087dc8404fb0df27a9fc27e236777a86954c1
Author: Yuri Wiitala <miu@chromium.org>
Date: Mon Jan 29 21:39:07 2018

Re-Re-land "FrameSinkVideoCapturer: Fix refresh logic for damaged sources."

This reverts commit 13c588bc9a1e2855f1f6cba4664a1f3502c4b0ad, to re-land
the original patch (https://chromium-review.googlesource.com/884996)
again. This patch contains fixes needed to restore tab capture
functionality and clear up failing perf waterfall bots.

This time, I'm landing with the "sensitive to random bots not in the CQ"
content_browsertests disabled. I will re-enable them in a separate
change so that people stop reverting this very important fix, the act of
which keeps making things worse elsewhere.

TBR=xjz@chromium.org,kylechar@chromium.org

Bug:  806635 ,  785072 ,  754872 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel
Change-Id: I15ac4faaa168eb57f1775b70148382c3933de82f
Reviewed-on: https://chromium-review.googlesource.com/891541
Commit-Queue: Yuri Wiitala <miu@chromium.org>
Reviewed-by: Yuri Wiitala <miu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532598}
[modify] https://crrev.com/910087dc8404fb0df27a9fc27e236777a86954c1/components/viz/service/frame_sinks/compositor_frame_sink_support.cc
[modify] https://crrev.com/910087dc8404fb0df27a9fc27e236777a86954c1/components/viz/service/frame_sinks/compositor_frame_sink_support.h
[modify] https://crrev.com/910087dc8404fb0df27a9fc27e236777a86954c1/components/viz/service/frame_sinks/video_capture/capturable_frame_sink.h
[modify] https://crrev.com/910087dc8404fb0df27a9fc27e236777a86954c1/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl.cc
[modify] https://crrev.com/910087dc8404fb0df27a9fc27e236777a86954c1/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl.h
[modify] https://crrev.com/910087dc8404fb0df27a9fc27e236777a86954c1/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl_unittest.cc
[modify] https://crrev.com/910087dc8404fb0df27a9fc27e236777a86954c1/content/browser/media/capture/aura_window_capture_machine.cc
[modify] https://crrev.com/910087dc8404fb0df27a9fc27e236777a86954c1/content/browser/media/capture/web_contents_video_capture_device_browsertest.cc
[modify] https://crrev.com/910087dc8404fb0df27a9fc27e236777a86954c1/media/capture/content/android/screen_capture_machine_android.cc
[modify] https://crrev.com/910087dc8404fb0df27a9fc27e236777a86954c1/media/capture/content/screen_capture_device_core.cc
[modify] https://crrev.com/910087dc8404fb0df27a9fc27e236777a86954c1/media/capture/content/screen_capture_device_core.h
[modify] https://crrev.com/910087dc8404fb0df27a9fc27e236777a86954c1/media/capture/content/thread_safe_capture_oracle.cc
[modify] https://crrev.com/910087dc8404fb0df27a9fc27e236777a86954c1/media/capture/content/thread_safe_capture_oracle.h
[modify] https://crrev.com/910087dc8404fb0df27a9fc27e236777a86954c1/media/capture/content/video_capture_oracle.cc
[modify] https://crrev.com/910087dc8404fb0df27a9fc27e236777a86954c1/media/capture/content/video_capture_oracle.h
[modify] https://crrev.com/910087dc8404fb0df27a9fc27e236777a86954c1/media/capture/content/video_capture_oracle_unittest.cc
[modify] https://crrev.com/910087dc8404fb0df27a9fc27e236777a86954c1/testing/buildbot/filters/viz.content_browsertests.filter

Comment 9 by m...@chromium.org, Feb 1 2018

Status: Fixed (was: Assigned)

Comment 10 by m...@chromium.org, Feb 6 2018

Status: Started (was: Fixed)
Re-opening, as one case was missed: When the buffer pool is depleted, a refresh frame should be scheduled to ensure the consumer is updated.

Comment 11 by m...@chromium.org, Feb 6 2018

Labels: -Pri-3 M-66 Pri-2
Project Member

Comment 12 by bugdroid1@chromium.org, Feb 6 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5000b19b1ec27a5b572d5b4955b38c7810d39590

commit 5000b19b1ec27a5b572d5b4955b38c7810d39590
Author: Yuri Wiitala <miu@chromium.org>
Date: Tue Feb 06 20:04:34 2018

FrameSinkVideoCapturer: Ensure eventual update after buffer depletion.

If frame capture was to proceed, but couldn't because the buffer pool
was depleted, schedule a refresh to ensure the content update will
eventually be captured and sent to the consumer.

Bug:  785072 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel
Change-Id: Ifd28739a8ceeeb75d07a05f314b6cb6827a86ea7
Reviewed-on: https://chromium-review.googlesource.com/903373
Reviewed-by: Xiangjun Zhang <xjz@chromium.org>
Commit-Queue: Yuri Wiitala <miu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534766}
[modify] https://crrev.com/5000b19b1ec27a5b572d5b4955b38c7810d39590/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl.cc
[modify] https://crrev.com/5000b19b1ec27a5b572d5b4955b38c7810d39590/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl_unittest.cc

Comment 13 by m...@chromium.org, Feb 7 2018

Status: Fixed (was: Started)

Sign in to add a comment