New issue
Advanced search Search tips

Issue 873345 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Aug 21
Cc:
Components:
EstimatedDays: ----
NextAction: 2018-08-31
OS: Chrome , Mac
Pri: 3
Type: Bug

Blocked on:
issue 875158
issue 875670



Sign in to add a comment

Consider supporting PIXEL_FORMAT_I420A in GpuMemoryBufferVideoFramePool

Project Member Reported by mcasas@chromium.org, Aug 10

Issue description

These VideoFrames show up when decoding VP8 with alpha, e.g.:
 https://simpl.info/videoalpha/
 https://simpl.info/videoalpha/video/dancer1.webm

we consistently see some of those around 
 https://uma.googleplex.com/p/chrome/timeline_v2/?sid=6518b53bfeb00b3fa79f40fb9b9d7780

so we could consider supporting them in GMBVFPool.
 
Cc: dalecur...@chromium.org emir...@chromium.org
dalecurtis@, emircan@, I have a WIP CL in [1]. I420A frames are generated
from either VP8+alpha VpxVideoDecoders, or from CanvasCapture w/ alpha.

I think it's worth doing this, in light of the #VideoFrames seen in the wild. 

[1] https://chromium-review.googlesource.com/c/chromium/src/+/1171569
Fine with me, there's not a huge amount, but would be useful -- especially if AV1+A ends up being a thing.
Looks good to me. We can send alpha over the wire in WebRTc as well behind multiplex flag.
Project Member

Comment 4 by bugdroid1@chromium.org, Aug 15

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

commit ba7d3ef92b1e4b7a10e3e6e04025ebf012f560b9
Author: Miguel Casas <mcasas@chromium.org>
Date: Wed Aug 15 23:20:00 2018

GpuVideoAcceleratorFactories: use pixel format to figure out output format

This CL changes the signature of GpuVideoAcceleratorFactories'
 VideoFrameOutputFormat(size_t bit_depth)
to
 VideoFrameOutputFormat(media::VideoPixelFormat pixel_format)
which is needed for the next CL (see also crrev.com/c/1171569).

VideoFrame::BitDepth() is extracted to media/base/video_types.cc.

Bug:  873345 
Change-Id: I0afb480657ffb5ae5c3b01b6384832221476e1e9
Reviewed-on: https://chromium-review.googlesource.com/1174946
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#583439}
[modify] https://crrev.com/ba7d3ef92b1e4b7a10e3e6e04025ebf012f560b9/content/renderer/media/gpu/gpu_video_accelerator_factories_impl.cc
[modify] https://crrev.com/ba7d3ef92b1e4b7a10e3e6e04025ebf012f560b9/content/renderer/media/gpu/gpu_video_accelerator_factories_impl.h
[modify] https://crrev.com/ba7d3ef92b1e4b7a10e3e6e04025ebf012f560b9/media/base/video_frame.cc
[modify] https://crrev.com/ba7d3ef92b1e4b7a10e3e6e04025ebf012f560b9/media/base/video_types.cc
[modify] https://crrev.com/ba7d3ef92b1e4b7a10e3e6e04025ebf012f560b9/media/base/video_types.h
[modify] https://crrev.com/ba7d3ef92b1e4b7a10e3e6e04025ebf012f560b9/media/video/gpu_memory_buffer_video_frame_pool.cc
[modify] https://crrev.com/ba7d3ef92b1e4b7a10e3e6e04025ebf012f560b9/media/video/gpu_video_accelerator_factories.h
[modify] https://crrev.com/ba7d3ef92b1e4b7a10e3e6e04025ebf012f560b9/media/video/mock_gpu_video_accelerator_factories.h

Project Member

Comment 5 by bugdroid1@chromium.org, Aug 16

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

commit 1e53b4ec05f2485450a177c372e38b6215341a1c
Author: Miguel Casas <mcasas@chromium.org>
Date: Thu Aug 16 13:15:19 2018

GMBVFPool: support I420A VideoFrames

This CL adds support for I420A VideoFrames in GMBVideoFramePool. These
VFrames are turned into BGRA or RGBA depending on the preferred platform
swizzling (spolier: BGRA is Mac).

Canvas Capture test is changed to premultiplied to follow up the Skia
convention.

Bug:  873345 
Change-Id: I20d1f9f59e47a55b67763b2cb7884387f99118a5
Reviewed-on: https://chromium-review.googlesource.com/1174949
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Reviewed-by: Emircan Uysaler <emircan@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#583623}
[modify] https://crrev.com/1e53b4ec05f2485450a177c372e38b6215341a1c/content/renderer/media/gpu/gpu_video_accelerator_factories_impl.cc
[modify] https://crrev.com/1e53b4ec05f2485450a177c372e38b6215341a1c/content/test/data/media/canvas_capture_color.html
[modify] https://crrev.com/1e53b4ec05f2485450a177c372e38b6215341a1c/media/video/gpu_memory_buffer_video_frame_pool.cc
[modify] https://crrev.com/1e53b4ec05f2485450a177c372e38b6215341a1c/media/video/gpu_memory_buffer_video_frame_pool_unittest.cc
[modify] https://crrev.com/1e53b4ec05f2485450a177c372e38b6215341a1c/media/video/gpu_video_accelerator_factories.h
[modify] https://crrev.com/1e53b4ec05f2485450a177c372e38b6215341a1c/media/video/mock_gpu_video_accelerator_factories.cc

NextAction: 2018-08-24
Status: Fixed (was: Assigned)
Ths should be Fixed now, pending verification (that nothing regresses)
in a few Canaries. The UMA is here:

https://uma.googleplex.com/p/chrome/histograms/?endDate=latest&dayCount=1&histograms=Media.GpuMemoryBufferVideoFramePool.UnsupportedFormat&fixupData=true&uniqueUsers=true&showMax=true&filters=isofficial%2Ceq%2CTrue&implicitFilters=isofficial

also for future reference this is the omaha query for what Chrome contains #c5
https://storage.googleapis.com/chromium-find-releases-static/1e5.html#1e53b4ec05f2485450a177c372e38b6215341a1c
Blockedon: 875158
Status: Started (was: Fixed)
Blockedon: 875670
Status: Fixed (was: Started)
Fixed again.
The NextAction date has arrived: 2018-08-24
Summary: Consider supporting PIXEL_FORMAT_I420A in GpuMemoryBufferVideoFramePool (was: support I420A in GpuMemoryBufferVideoFramePool)
The NextAction date has arrived: 2018-08-31

Sign in to add a comment