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

Issue 1132683004: MJPEG acceleration for video capture, browser part (Closed)

Created:
5 years, 7 months ago by kcwu
Modified:
5 years, 5 months ago
CC:
chromium-reviews, posciak+watch_chromium.org, jam, mcasas+watch_chromium.org, feature-media-reviews_chromium.org, darin-cc_chromium.org, wjia+watch_chromium.org, miu+watch_chromium.org, henryhsu
Base URL:
https://chromium.googlesource.com/chromium/src.git@mjpeg-2-gpu
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

MJPEG acceleration for video capture This is the browser part to utilize the acceleration. The acceleration is not enabled yet in this CL. BUG=335778 TEST=apprtc.appspot.com on intel platform Committed: https://crrev.com/f2c6c3c19f9729e35822ecd9cdf1bb35390fd0db Cr-Commit-Position: refs/heads/master@{#336550}

Patch Set 1 #

Total comments: 12

Patch Set 2 : #

Total comments: 22

Patch Set 3 : rebase due to VideoFrame refactoring #

Patch Set 4 : #

Patch Set 5 : addressed all comments #

Patch Set 6 : add flag --enable-accelerated-mjpeg-decode #

Total comments: 8

Patch Set 7 : revert patchset 6; disable by default #

Patch Set 8 : rebase (ignore this) #

Patch Set 9 : fix rebase #

Patch Set 10 : #

Patch Set 11 : rebase #

Patch Set 12 : fix gpu channel establish #

Total comments: 4

Patch Set 13 : #

Total comments: 50

Patch Set 14 : #

Patch Set 15 : gpu_jpeg_decoder renamed to video_capture_gpu_jpeg_decoder; rebase #

Patch Set 16 : fix compile for clang/windows/mac #

Total comments: 6

Patch Set 17 : addressed pawel's comments #

Patch Set 18 : rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+400 lines, -6 lines) Patch
M content/browser/renderer_host/media/video_capture_device_client.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 3 chunks +9 lines, -1 line 0 comments Download
M content/browser/renderer_host/media/video_capture_device_client.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 4 chunks +34 lines, -1 line 0 comments Download
A content/browser/renderer_host/media/video_capture_gpu_jpeg_decoder.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +124 lines, -0 lines 0 comments Download
A content/browser/renderer_host/media/video_capture_gpu_jpeg_decoder.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +225 lines, -0 lines 0 comments Download
M content/common/gpu/client/gpu_jpeg_decode_accelerator_host.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +3 lines, -2 lines 0 comments Download
M content/common/gpu/gpu_process_launch_causes.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2 chunks +2 lines, -1 line 0 comments Download
M content/common/gpu/media/gpu_jpeg_decode_accelerator.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +1 line, -1 line 0 comments Download
M content/content_browser.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +2 lines, -0 lines 0 comments Download

Dependent Patchsets:

Messages

Total messages: 33 (3 generated)
kcwu
Please take a look, thanks. @piman for content/ @mcasas for media/video/capture/video_capture_device.h This is split from ...
5 years, 7 months ago (2015-05-18 14:13:14 UTC) #2
piman
https://codereview.chromium.org/1132683004/diff/1/content/browser/renderer_host/gpu_jpeg_decoder.cc File content/browser/renderer_host/gpu_jpeg_decoder.cc (right): https://codereview.chromium.org/1132683004/diff/1/content/browser/renderer_host/gpu_jpeg_decoder.cc#newcode32 content/browser/renderer_host/gpu_jpeg_decoder.cc:32: : jpeg_thread_("GpuJpegDecoderThread"), Why do we need this thread? It ...
5 years, 7 months ago (2015-05-18 23:18:31 UTC) #3
kcwu
https://codereview.chromium.org/1132683004/diff/1/content/browser/renderer_host/gpu_jpeg_decoder.cc File content/browser/renderer_host/gpu_jpeg_decoder.cc (right): https://codereview.chromium.org/1132683004/diff/1/content/browser/renderer_host/gpu_jpeg_decoder.cc#newcode32 content/browser/renderer_host/gpu_jpeg_decoder.cc:32: : jpeg_thread_("GpuJpegDecoderThread"), On 2015/05/18 23:18:30, piman (Very slow to ...
5 years, 7 months ago (2015-05-25 18:57:51 UTC) #4
piman
On Mon, May 25, 2015 at 11:57 AM, <kcwu@chromium.org> wrote: > > > https://codereview.chromium.org/1132683004/diff/1/content/browser/renderer_host/gpu_jpeg_decoder.cc > ...
5 years, 6 months ago (2015-05-26 22:44:31 UTC) #5
kcwu
On 2015/05/26 22:44:31, piman (Very slow to review) wrote: > On Mon, May 25, 2015 ...
5 years, 6 months ago (2015-05-27 02:03:53 UTC) #6
piman
On Tue, May 26, 2015 at 7:03 PM, <kcwu@chromium.org> wrote: > On 2015/05/26 22:44:31, piman ...
5 years, 6 months ago (2015-05-27 02:42:06 UTC) #7
mcasas
Getting closer. Most of the video_* classes look good. Some more comments though. The Signal()-Wait ...
5 years, 6 months ago (2015-05-27 18:08:44 UTC) #8
kcwu
@mcasas, Sorry I forgot to reply earlier. As piman's suggestion, I will attempt to remove ...
5 years, 6 months ago (2015-05-27 19:17:41 UTC) #9
kcwu
Addressed some comments. Jpeg thread is removed. The major remain issues are ~GpuJpegDecoder called on ...
5 years, 6 months ago (2015-06-02 15:09:56 UTC) #10
kcwu
All comments are addressed. PTAL. I will update new performance numbers tomorrow. https://codereview.chromium.org/1132683004/diff/1/content/browser/renderer_host/gpu_jpeg_decoder.cc File content/browser/renderer_host/gpu_jpeg_decoder.cc ...
5 years, 6 months ago (2015-06-03 14:30:08 UTC) #11
kcwu
also added flag --enable-accelerated-mjpeg-decode
5 years, 6 months ago (2015-06-04 13:11:38 UTC) #12
piman
Some comments, but my review in https://codereview.chromium.org/1124423008/ indicated there are still some races there (in ...
5 years, 6 months ago (2015-06-05 23:07:51 UTC) #13
wuchengli
Kuang-che. Please don't add new big changes in the middle of the review. It's harder ...
5 years, 6 months ago (2015-06-08 08:11:21 UTC) #14
kcwu
In summary, there are total 4 CLs for MJPEG acceleration. They are - https://codereview.chromium.org/1124423008/ GPU ...
5 years, 6 months ago (2015-06-08 14:07:32 UTC) #15
kcwu
Sorry late to revise. PTAL. https://codereview.chromium.org/1132683004/diff/100001/content/browser/renderer_host/gpu_jpeg_decoder.cc File content/browser/renderer_host/gpu_jpeg_decoder.cc (right): https://codereview.chromium.org/1132683004/diff/100001/content/browser/renderer_host/gpu_jpeg_decoder.cc#newcode74 content/browser/renderer_host/gpu_jpeg_decoder.cc:74: base::Unretained(BrowserGpuChannelHostFactory::instance()), On 2015/06/05 23:07:51, ...
5 years, 6 months ago (2015-06-17 14:35:37 UTC) #16
piman
lgtm https://codereview.chromium.org/1132683004/diff/220001/content/browser/renderer_host/media/video_capture_device_client.cc File content/browser/renderer_host/media/video_capture_device_client.cc (right): https://codereview.chromium.org/1132683004/diff/220001/content/browser/renderer_host/media/video_capture_device_client.cc#newcode241 content/browser/renderer_host/media/video_capture_device_client.cc:241: base::Unretained(this)))); nit: can you add a comment about ...
5 years, 6 months ago (2015-06-20 00:33:58 UTC) #17
kcwu
https://codereview.chromium.org/1132683004/diff/220001/content/browser/renderer_host/media/video_capture_device_client.cc File content/browser/renderer_host/media/video_capture_device_client.cc (right): https://codereview.chromium.org/1132683004/diff/220001/content/browser/renderer_host/media/video_capture_device_client.cc#newcode241 content/browser/renderer_host/media/video_capture_device_client.cc:241: base::Unretained(this)))); On 2015/06/20 00:33:57, piman (Very slow to review) ...
5 years, 6 months ago (2015-06-20 00:47:08 UTC) #18
piman
https://codereview.chromium.org/1132683004/diff/220001/content/browser/renderer_host/media/video_capture_device_client.cc File content/browser/renderer_host/media/video_capture_device_client.cc (right): https://codereview.chromium.org/1132683004/diff/220001/content/browser/renderer_host/media/video_capture_device_client.cc#newcode241 content/browser/renderer_host/media/video_capture_device_client.cc:241: base::Unretained(this)))); On 2015/06/20 00:47:08, kcwu wrote: > On 2015/06/20 ...
5 years, 6 months ago (2015-06-20 00:59:26 UTC) #19
kcwu
https://codereview.chromium.org/1132683004/diff/220001/content/browser/renderer_host/media/video_capture_device_client.cc File content/browser/renderer_host/media/video_capture_device_client.cc (right): https://codereview.chromium.org/1132683004/diff/220001/content/browser/renderer_host/media/video_capture_device_client.cc#newcode241 content/browser/renderer_host/media/video_capture_device_client.cc:241: base::Unretained(this)))); On 2015/06/20 00:59:26, piman (Very slow to review) ...
5 years, 6 months ago (2015-06-20 01:26:10 UTC) #20
Pawel Osciak
Please also update the CL title/description (this is no longer related to VAAPI). https://codereview.chromium.org/1132683004/diff/240001/content/browser/renderer_host/gpu_jpeg_decoder.cc File ...
5 years, 6 months ago (2015-06-22 08:51:24 UTC) #21
kcwu
(quick reply first) https://codereview.chromium.org/1132683004/diff/240001/content/browser/renderer_host/gpu_jpeg_decoder.cc File content/browser/renderer_host/gpu_jpeg_decoder.cc (right): https://codereview.chromium.org/1132683004/diff/240001/content/browser/renderer_host/gpu_jpeg_decoder.cc#newcode26 content/browser/renderer_host/gpu_jpeg_decoder.cc:26: return false; On 2015/06/22 08:51:22, Pawel ...
5 years, 6 months ago (2015-06-22 09:18:48 UTC) #22
kcwu
@mcasas, please advise how to obtain SharedMemoryHandle from media::VideoCaptureDevice::Client::Buffer. https://codereview.chromium.org/1132683004/diff/240001/content/browser/renderer_host/gpu_jpeg_decoder.cc File content/browser/renderer_host/gpu_jpeg_decoder.cc (right): https://codereview.chromium.org/1132683004/diff/240001/content/browser/renderer_host/gpu_jpeg_decoder.cc#newcode188 content/browser/renderer_host/gpu_jpeg_decoder.cc:188: ...
5 years, 6 months ago (2015-06-22 12:59:35 UTC) #23
kcwu
https://codereview.chromium.org/1132683004/diff/240001/content/browser/renderer_host/gpu_jpeg_decoder.cc File content/browser/renderer_host/gpu_jpeg_decoder.cc (right): https://codereview.chromium.org/1132683004/diff/240001/content/browser/renderer_host/gpu_jpeg_decoder.cc#newcode25 content/browser/renderer_host/gpu_jpeg_decoder.cc:25: // TODO(kcwu): move this information to GpuInfo. On 2015/06/22 ...
5 years, 6 months ago (2015-06-23 13:58:25 UTC) #24
wuchengli
https://codereview.chromium.org/1132683004/diff/240001/content/browser/renderer_host/gpu_jpeg_decoder.cc File content/browser/renderer_host/gpu_jpeg_decoder.cc (right): https://codereview.chromium.org/1132683004/diff/240001/content/browser/renderer_host/gpu_jpeg_decoder.cc#newcode188 content/browser/renderer_host/gpu_jpeg_decoder.cc:188: base::SharedMemoryHandle out_handle(out_buffer->AsPlatformFile(), true); On 2015/06/22 12:59:35, kcwu wrote: > ...
5 years, 6 months ago (2015-06-25 07:42:27 UTC) #25
kcwu
Pawel, PTAL. thanks. https://codereview.chromium.org/1132683004/diff/240001/content/browser/renderer_host/gpu_jpeg_decoder.cc File content/browser/renderer_host/gpu_jpeg_decoder.cc (right): https://codereview.chromium.org/1132683004/diff/240001/content/browser/renderer_host/gpu_jpeg_decoder.cc#newcode188 content/browser/renderer_host/gpu_jpeg_decoder.cc:188: base::SharedMemoryHandle out_handle(out_buffer->AsPlatformFile(), true); On 2015/06/25 07:42:27, ...
5 years, 5 months ago (2015-06-25 14:25:47 UTC) #26
Pawel Osciak
lgtm % nits https://codereview.chromium.org/1132683004/diff/300001/content/browser/renderer_host/media/video_capture_device_client.cc File content/browser/renderer_host/media/video_capture_device_client.cc (right): https://codereview.chromium.org/1132683004/diff/300001/content/browser/renderer_host/media/video_capture_device_client.cc#newcode214 content/browser/renderer_host/media/video_capture_device_client.cc:214: external_jpeg_decoder_.reset(); Not needed? https://codereview.chromium.org/1132683004/diff/300001/content/browser/renderer_host/media/video_capture_device_client.cc#newcode361 content/browser/renderer_host/media/video_capture_device_client.cc:361: frame_format.pixel_format ...
5 years, 5 months ago (2015-06-29 06:18:39 UTC) #27
kcwu
https://codereview.chromium.org/1132683004/diff/300001/content/browser/renderer_host/media/video_capture_device_client.cc File content/browser/renderer_host/media/video_capture_device_client.cc (right): https://codereview.chromium.org/1132683004/diff/300001/content/browser/renderer_host/media/video_capture_device_client.cc#newcode214 content/browser/renderer_host/media/video_capture_device_client.cc:214: external_jpeg_decoder_.reset(); On 2015/06/29 06:18:39, Pawel Osciak wrote: > Not ...
5 years, 5 months ago (2015-06-29 10:35:34 UTC) #28
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1132683004/340001
5 years, 5 months ago (2015-06-29 12:43:44 UTC) #31
commit-bot: I haz the power
Committed patchset #18 (id:340001)
5 years, 5 months ago (2015-06-29 12:47:41 UTC) #32
commit-bot: I haz the power
5 years, 5 months ago (2015-06-29 12:48:35 UTC) #33
Message was sent while issue was closed.
Patchset 18 (id:??) landed as
https://crrev.com/f2c6c3c19f9729e35822ecd9cdf1bb35390fd0db
Cr-Commit-Position: refs/heads/master@{#336550}

Powered by Google App Engine
This is Rietveld 408576698