Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Issue 1273943002: media: Make GpuMemoryBuffers VideoFrame copies asynchronous. (Closed)

Created:
5 years, 4 months ago by Daniele Castagna
Modified:
5 years, 4 months ago
CC:
Aaron Boodman, abarth-chromium, ben+mojo_chromium.org, chromium-reviews, creis+watch_chromium.org, darin (slow to review), darin-cc_chromium.org, feature-media-reviews_chromium.org, gunsch+watch_chromium.org, jam, lcwu+watch_chromium.org, mcasas+watch_chromium.org, mkwst+moarreviews-renderer_chromium.org, mlamouri+watch-content_chromium.org, nasko+codewatch_chromium.org, posciak+watch_chromium.org, qsr+mojo_chromium.org, viettrungluu+watch_chromium.org, wjia+watch_chromium.org, yzshen+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

media: Make GpuMemoryBuffers VideoFrame copies asynchronous. Plane copies from VideoFrames to GpuMemoryBuffers happening in the same thread as the decoding thread might push the decoding time past the frame time and slow down the entire video. This patch adds a TaskRunner to GpuMemoryBufferVideoFramePool that is used to do the copies asynchronously. BUG=485859 Committed: https://crrev.com/617d086b0eb548e4841c03e85c55efd57fb5239f Cr-Commit-Position: refs/heads/master@{#344401}

Patch Set 1 #

Patch Set 2 : Split copy in parallel small copies. #

Patch Set 3 : Make it compile. #

Patch Set 4 : Make mojo compile. #

Patch Set 5 : Fix wrong num copies crash. #

Patch Set 6 : Pass around scoped_refptr. #

Patch Set 7 : Edit comments. Typed std::max. #

Patch Set 8 : Mojo... #

Patch Set 9 : And Chromecast... #

Patch Set 10 : Use the right texture target. #

Patch Set 11 : Avoid copying the frame if start_timestamp_ > timestamp. #

Patch Set 12 : Rebase on master. #

Total comments: 26

Patch Set 13 : Address reveman's and dalecurtis' comments. Disable GMB VideoFrames. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+368 lines, -155 lines) Patch
M chromecast/renderer/media/chromecast_media_renderer_factory.h View 1 2 3 4 5 6 7 8 1 chunk +1 line, -0 lines 0 comments Download
M chromecast/renderer/media/chromecast_media_renderer_factory.cc View 1 2 3 4 5 6 7 8 2 chunks +4 lines, -3 lines 0 comments Download
M components/html_viewer/media_factory.cc View 1 chunk +3 lines, -3 lines 0 comments Download
M content/renderer/render_frame_impl.cc View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M media/base/renderer_factory.h View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +2 lines, -0 lines 0 comments Download
M media/blink/webmediaplayer_impl.h View 1 2 3 4 5 2 chunks +2 lines, -0 lines 0 comments Download
M media/blink/webmediaplayer_impl.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +4 lines, -3 lines 0 comments Download
M media/blink/webmediaplayer_params.h View 1 2 3 4 5 6 7 8 9 10 11 12 4 chunks +7 lines, -0 lines 0 comments Download
M media/blink/webmediaplayer_params.cc View 1 2 3 4 5 6 7 8 9 10 11 12 3 chunks +4 lines, -2 lines 0 comments Download
M media/mojo/services/mojo_renderer_factory.h View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download
M media/mojo/services/mojo_renderer_factory.cc View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download
M media/mojo/services/mojo_renderer_service.cc View 1 2 3 4 5 6 7 1 chunk +4 lines, -3 lines 0 comments Download
M media/renderers/default_renderer_factory.h View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download
M media/renderers/default_renderer_factory.cc View 1 2 3 4 5 2 chunks +3 lines, -2 lines 0 comments Download
M media/renderers/video_renderer_impl.h View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +9 lines, -1 line 0 comments Download
M media/renderers/video_renderer_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 4 chunks +26 lines, -8 lines 0 comments Download
M media/renderers/video_renderer_impl_unittest.cc View 1 2 1 chunk +5 lines, -5 lines 0 comments Download
M media/test/pipeline_integration_test_base.cc View 1 2 1 chunk +3 lines, -2 lines 0 comments Download
M media/video/gpu_memory_buffer_video_frame_pool.h View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +14 lines, -6 lines 0 comments Download
M media/video/gpu_memory_buffer_video_frame_pool.cc View 1 2 3 4 5 6 7 8 9 10 11 12 11 chunks +204 lines, -89 lines 0 comments Download
M media/video/gpu_memory_buffer_video_frame_pool_unittest.cc View 1 2 7 chunks +69 lines, -28 lines 0 comments Download

Messages

Total messages: 24 (7 generated)
Daniele Castagna
This is the second attempt to make videoframe to GPU memory buffer copies asynchronous. Since ...
5 years, 4 months ago (2015-08-12 04:47:53 UTC) #3
DaleCurtis
Hmm, I'm not sure I'd call those results okay, there are more worse metrics than ...
5 years, 4 months ago (2015-08-12 18:22:49 UTC) #5
reveman
On 2015/08/12 at 04:47:53, dcastagna wrote: > This is the second attempt to make videoframe ...
5 years, 4 months ago (2015-08-12 19:17:34 UTC) #6
Daniele Castagna
On 2015/08/12 at 19:17:34, reveman wrote: > On 2015/08/12 at 04:47:53, dcastagna wrote: > > ...
5 years, 4 months ago (2015-08-15 03:35:13 UTC) #7
reveman
On 2015/08/15 at 03:35:13, dcastagna wrote: > On 2015/08/12 at 19:17:34, reveman wrote: > > ...
5 years, 4 months ago (2015-08-15 06:41:51 UTC) #8
Daniele Castagna
Can anyone take a look at the code? The interface change and the passing around ...
5 years, 4 months ago (2015-08-17 16:19:28 UTC) #9
reveman
lgtm with nits https://codereview.chromium.org/1273943002/diff/260001/media/base/renderer_factory.h File media/base/renderer_factory.h (right): https://codereview.chromium.org/1273943002/diff/260001/media/base/renderer_factory.h#newcode15 media/base/renderer_factory.h:15: class SequencedTaskRunner; needed? https://codereview.chromium.org/1273943002/diff/260001/media/blink/webmediaplayer_params.cc File media/blink/webmediaplayer_params.cc ...
5 years, 4 months ago (2015-08-17 16:38:30 UTC) #10
DaleCurtis
Something still seems a bit off, you're dropping more frames on average in the 1080p ...
5 years, 4 months ago (2015-08-17 18:01:30 UTC) #11
Daniele Castagna
On 2015/08/17 at 18:01:30, dalecurtis wrote: > Something still seems a bit off, you're dropping ...
5 years, 4 months ago (2015-08-19 21:31:25 UTC) #12
DaleCurtis
media/ lgtm since this is disabled currently.
5 years, 4 months ago (2015-08-19 23:07:41 UTC) #13
Daniele Castagna
+halliwell for chromecast/ +avi for content/ +sky for components/html_viewer/
5 years, 4 months ago (2015-08-19 23:16:29 UTC) #15
Avi (use Gerrit)
On 2015/08/19 23:16:29, Daniele Castagna wrote: > +halliwell for chromecast/ > +avi for content/ > ...
5 years, 4 months ago (2015-08-19 23:18:27 UTC) #16
halliwell
On 2015/08/19 23:16:29, Daniele Castagna wrote: > +halliwell for chromecast/ > +avi for content/ > ...
5 years, 4 months ago (2015-08-19 23:20:22 UTC) #17
sky
LGTM
5 years, 4 months ago (2015-08-19 23:56:44 UTC) #19
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1273943002/280001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1273943002/280001
5 years, 4 months ago (2015-08-20 00:01:00 UTC) #22
commit-bot: I haz the power
Committed patchset #13 (id:280001)
5 years, 4 months ago (2015-08-20 01:39:39 UTC) #23
commit-bot: I haz the power
5 years, 4 months ago (2015-08-20 01:40:27 UTC) #24
Message was sent while issue was closed.
Patchset 13 (id:??) landed as
https://crrev.com/617d086b0eb548e4841c03e85c55efd57fb5239f
Cr-Commit-Position: refs/heads/master@{#344401}

Powered by Google App Engine
This is Rietveld 408576698