|
"Buttery Smooth" Tab Capture.
There are three main changes being made with the overall goal of
improving the smoothness of the video coming out of the tab capture
pipeline:
1. A new AnimatedContentSampler has been added that identifies which
frames were rendered due to animated content (e.g., a video or Flash
widget). VideoCaptureOracle is then informed of exactly which subset of
frames should be captured from the compositor and provided near-perfect
frame timestamps for downstream consumers.
2. Additional plumbing in the FrameSubscriber interface to provide the
damage region of each frame. This is used by AnimatedContentSampler.
Also, impls now provide true vsync-based presentation timestamps.
3. Raised the VideoCaptureController buffer pool count from 3 to 5.
This value is based on the logical capacity of the capture pipeline, and
not on hardware performance. Testing revealed that more buffers are
needed to account for both multiple pipelined GPU readbacks as well as
those frames undergoing video encoding dowstream.
Testing: Tested mirroring using the usual self_mirroring.zip test
extension as well as the Google Cast extension to a Chromecast device.
Tested lock-in/out scenarios with a number of well- and ill- behaving
video playbacks. Observed dramatic improvement in end-to-end smoothness
scores in the lab. New unit tests to cover new code, and made sure all
relevant existing unit tests still pass.
BUG= 258630
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=287447
Total comments: 10
Total comments: 24
Total comments: 10
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+1422 lines, -192 lines) |
Patch |
 |
M |
content/browser/compositor/delegated_frame_host.h
|
View
|
1
2
3
4
|
2 chunks |
+6 lines, -1 line |
0 comments
|
Download
|
 |
M |
content/browser/compositor/delegated_frame_host.cc
|
View
|
1
2
3
4
|
5 chunks |
+26 lines, -14 lines |
0 comments
|
Download
|
 |
M |
content/browser/media/capture/content_video_capture_device_core.h
|
View
|
|
1 chunk |
+3 lines, -2 lines |
0 comments
|
Download
|
 |
M |
content/browser/media/capture/content_video_capture_device_core.cc
|
View
|
|
5 chunks |
+5 lines, -4 lines |
0 comments
|
Download
|
 |
M |
content/browser/media/capture/desktop_capture_device_aura.cc
|
View
|
|
2 chunks |
+2 lines, -2 lines |
0 comments
|
Download
|
 |
M |
content/browser/media/capture/video_capture_oracle.h
|
View
|
1
2
3
4
|
4 chunks |
+164 lines, -29 lines |
0 comments
|
Download
|
 |
M |
content/browser/media/capture/video_capture_oracle.cc
|
View
|
1
2
3
4
|
4 chunks |
+320 lines, -56 lines |
0 comments
|
Download
|
 |
M |
content/browser/media/capture/video_capture_oracle_unittest.cc
|
View
|
1
2
3
4
|
20 chunks |
+823 lines, -49 lines |
0 comments
|
Download
|
 |
M |
content/browser/media/capture/web_contents_video_capture_device.cc
|
View
|
|
6 chunks |
+8 lines, -4 lines |
0 comments
|
Download
|
 |
M |
content/browser/media/capture/web_contents_video_capture_device_unittest.cc
|
View
|
|
1 chunk |
+2 lines, -2 lines |
0 comments
|
Download
|
 |
M |
content/browser/renderer_host/media/video_capture_buffer_pool.cc
|
View
|
1
2
3
|
2 chunks |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
content/browser/renderer_host/media/video_capture_controller.h
|
View
|
1
2
3
|
1 chunk |
+6 lines, -1 line |
0 comments
|
Download
|
 |
M |
content/browser/renderer_host/media/video_capture_controller.cc
|
View
|
1
2
3
|
2 chunks |
+2 lines, -5 lines |
0 comments
|
Download
|
 |
M |
content/browser/renderer_host/media/video_capture_controller_unittest.cc
|
View
|
1
2
3
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
content/browser/renderer_host/media/video_capture_manager.cc
|
View
|
1
2
3
|
2 chunks |
+8 lines, -1 line |
0 comments
|
Download
|
 |
M |
content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
|
View
|
1
2
3
4
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
 |
M |
content/browser/renderer_host/render_widget_host_view_browsertest.cc
|
View
|
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
 |
M |
content/browser/renderer_host/render_widget_host_view_mac.h
|
View
|
1
2
3
|
2 chunks |
+7 lines, -1 line |
0 comments
|
Download
|
 |
M |
content/browser/renderer_host/render_widget_host_view_mac.mm
|
View
|
1
2
3
4
|
6 chunks |
+26 lines, -11 lines |
0 comments
|
Download
|
 |
M |
content/public/browser/render_widget_host_view_frame_subscriber.h
|
View
|
|
2 chunks |
+8 lines, -6 lines |
0 comments
|
Download
|
Total messages: 14 (0 generated)
|