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

Issue 2648633005: cros: Support YUYV format for GPU memory buffer video frames

Created:
3 years, 11 months ago by dshwang
Modified:
3 years, 10 months ago
CC:
Aaron Boodman, abarth-chromium, cc-bugs_chromium.org, chromium-reviews, creis+watch_chromium.org, danakj+watch_chromium.org, darin (slow to review), darin-cc_chromium.org, feature-media-reviews_chromium.org, jam, jbauman+watch_chromium.org, kalyank, mlamouri+watch-content_chromium.org, nasko+codewatch_chromium.org, ozone-reviews_chromium.org, piman+watch_chromium.org, posciak+watch_chromium.org, qsr+mojo_chromium.org, rjkroege, viettrungluu+watch_chromium.org, yzshen+watch_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

cros: Support YUYV format for GPU memory buffer video frames YUYV is only format supported by all linux stack such as kernel, mesa, minigbm, and gpu decoder. So ChromeOS IA prefers to use YUYV for video decoding. This CL makes --enable-gpu-memory-buffer-video-frames choose YUYV if possible. This CL is based on Johnson Lin's implementaion https://codereview.chromium.org/2636433003/ BUG=683347 TEST=run relevant unittests run chrome on http://www.quirksmode.org/html5/tests/video.html with all possible configurations * decoding configuration * gpu decoding: N/A * pure software decoding: --disable-accelerated-video-decode * GMB video frame: --disable-accelerated-video-decode --enable-native-gpu-memory-buffers --enable-gpu-memory-buffer-video-frames * overlay configurations * atomic mode setting: --enable-hardware-overlays --enable-drm-atomic * legacy mode setting: --enable-hardware-overlays * no overlay: N/A CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

Patch Set 1 #

Total comments: 18

Patch Set 2 : fix nits and bots #

Patch Set 3 : Enable YUYV GPU memory buffer video frames #

Unified diffs Side-by-side diffs Delta from patch set Stats (+102 lines, -9 lines) Patch
M content/renderer/media/renderer_gpu_video_accelerator_factories.cc View 1 2 chunks +15 lines, -1 line 0 comments Download
M gpu/command_buffer/service/feature_info.cc View 1 2 3 chunks +17 lines, -5 lines 0 comments Download
M gpu/ipc/common/gpu_memory_buffer_support.cc View 1 2 2 chunks +2 lines, -2 lines 0 comments Download
M media/renderers/gpu_video_accelerator_factories.h View 1 1 chunk +1 line, -0 lines 0 comments Download
M media/renderers/mock_gpu_video_accelerator_factories.cc View 1 1 chunk +2 lines, -1 line 0 comments Download
M media/video/gpu_memory_buffer_video_frame_pool.cc View 8 chunks +49 lines, -0 lines 0 comments Download
M media/video/gpu_memory_buffer_video_frame_pool_unittest.cc View 1 chunk +16 lines, -0 lines 0 comments Download

Messages

Total messages: 49 (33 generated)
dshwang
Hi Daniele, could you review overall of this CL? This CL make ChromeOS decoder use ...
3 years, 11 months ago (2017-01-21 00:20:49 UTC) #9
Daniele Castagna
Haven't look at the code, but it's great you're working on this. 8.8% power save ...
3 years, 11 months ago (2017-01-21 00:24:16 UTC) #11
marcheu1
https://codereview.chromium.org/2648633005/diff/1/content/renderer/media/renderer_gpu_video_accelerator_factories.cc File content/renderer/media/renderer_gpu_video_accelerator_factories.cc (right): https://codereview.chromium.org/2648633005/diff/1/content/renderer/media/renderer_gpu_video_accelerator_factories.cc#newcode281 content/renderer/media/renderer_gpu_video_accelerator_factories.cc:281: // Mesa EGL supports not UYVY but YUYV image. ...
3 years, 11 months ago (2017-01-21 00:25:18 UTC) #13
dshwang
On 2017/01/21 00:24:16, Daniele Castagna wrote: > Haven't look at the code, but it's great ...
3 years, 11 months ago (2017-01-21 01:01:16 UTC) #14
Daniele Castagna
On 2017/01/21 at 01:01:16, dongseong.hwang wrote: > On 2017/01/21 00:24:16, Daniele Castagna wrote: > > ...
3 years, 11 months ago (2017-01-21 01:21:32 UTC) #15
dshwang
On 2017/01/21 00:25:18, marcheu1 wrote: > https://codereview.chromium.org/2648633005/diff/1/content/renderer/media/renderer_gpu_video_accelerator_factories.cc Thanks for reviewing. I fixed nits and explain ...
3 years, 11 months ago (2017-01-23 23:13:43 UTC) #18
Daniele Castagna
On 2017/01/23 at 23:13:43, dongseong.hwang wrote: > On 2017/01/21 00:25:18, marcheu1 wrote: > > https://codereview.chromium.org/2648633005/diff/1/content/renderer/media/renderer_gpu_video_accelerator_factories.cc ...
3 years, 11 months ago (2017-01-26 21:47:00 UTC) #36
dshwang
On 2017/01/26 21:47:00, Daniele Castagna wrote: > > > > > Btw, I don't think ...
3 years, 10 months ago (2017-01-28 01:03:29 UTC) #37
johnson.lin
This line is the same with above? Why add the same ENUM?
3 years, 10 months ago (2017-02-01 12:56:14 UTC) #39
johnson.lin
+const gfx::BufferFormat kAllocatePictureFormat = gfx::BufferFormat::YUYV_422; This line still hardcoding the video output format. Is there ...
3 years, 10 months ago (2017-02-01 13:00:45 UTC) #40
johnson.lin
+ if (controller->IsFormatSupported(DRM_FORMAT_YUYV, z_order)) { + return DRM_FORMAT_YUYV; Here is another hardcoding...
3 years, 10 months ago (2017-02-01 13:05:54 UTC) #41
johnson.lin
+ if (controller->IsFormatSupported(DRM_FORMAT_YUYV, z_order)) { + return DRM_FORMAT_YUYV; Here is another hardcoding...
3 years, 10 months ago (2017-02-01 13:06:03 UTC) #42
dshwang
Thank you for reviewing. I'm recoverying slowly after BlinkOn7 On 2017/02/01 12:56:14, johnson.lin wrote: > ...
3 years, 10 months ago (2017-02-08 00:51:30 UTC) #43
dshwang
As reviewer requested, I'm splitting CLs. This CL depends on cc: UYVY video is not ...
3 years, 10 months ago (2017-02-09 04:55:29 UTC) #46
marcheu
On 2017/02/09 04:55:29, dshwang wrote: > As reviewer requested, I'm splitting CLs. This CL depends ...
3 years, 10 months ago (2017-02-10 23:46:19 UTC) #47
dshwang
3 years, 10 months ago (2017-02-11 01:16:11 UTC) #49
On 2017/02/10 23:46:19, marcheu wrote:
> Before reenabling GMBs, can you fix the issues with dmabuf mmap() for these? I
> don't think it's fit for reenabling otherwise, and I don't want to start
relying
> on it until then. I actually suspect there might be lifetime issues around
> these, which causes the issues you are seeing.

Hi marcheu, sorry for taking time to fix GMB issue. Daniele also mentioned we
need to fix GMB issue. I also want to fix it.

On the other hands, the prerequisite 6 CLs is not related GMB mmap issue. Only
this CL depends on GMB mmap enablement.
Above 6 CLs are about gpu video decoding, and gpu decoder uses scanline GBM
buffer like output_surface. In my opinion, we can review above 6 CLs in
parallel. It makes sense to review this CL after fixing GMB mmap issue.

Powered by Google App Engine
This is Rietveld 408576698