LGTM3
On 6/19/23 7:09 AM, Yoav Weiss wrote:
LGTM2
On Mon, Jun 19, 2023 at 12:28 PM 'François Beaufort' via blink-dev
<blink-dev@chromium.org> wrote:
Thank you Alex.
WebGPU can use VideoFrames in any worker so as long as they can be
produced off-main thread
<https://www.w3.org/TR/webcodecs/#best-practices-developers> then
it shouldn't block.
VideoFrames are also possible to postMessage between workers
<https://www.w3.org/TR/webcodecs/#videoframe-transfer-serialization>
if needed.
On Fri, Jun 16, 2023 at 10:21 PM Alex Russell
<slightly...@chromium.org> wrote:
LGTM1, but does this need to bounce through main thread video
decode for every frame sampled? Is it not possible to target a
WebGPU texture with the decoded buffer contents without
needing to lean on the main thread's
`requestVideoFrameCallback()`?
On Friday, June 16, 2023 at 1:20:31 AM UTC-7
fbea...@google.com wrote:
Contact emails
cwal...@google.com, kain...@google.com, bajo...@google.com
Explainer
https://developer.chrome.com/blog/new-in-webgpu-113/#use-webcodecs-videoframe-source-in-importexternaltexture
<https://developer.chrome.com/blog/new-in-webgpu-113/#use-webcodecs-videoframe-source-in-importexternaltexture>
https://github.com/gpuweb/gpuweb/issues/1380
<https://github.com/gpuweb/gpuweb/issues/1380>
https://github.com/gpuweb/gpuweb/issues/4165
<https://github.com/gpuweb/gpuweb/issues/4165>
https://gpuweb.github.io/gpuweb/explainer/#image-input
<https://gpuweb.github.io/gpuweb/explainer/#image-input>
Specification
https://gpuweb.github.io/gpuweb/#gpuexternaltexture
<https://gpuweb.github.io/gpuweb/#gpuexternaltexture>
Design docs
https://github.com/gpuweb/gpuweb/issues/1380
<https://github.com/gpuweb/gpuweb/issues/1380>
Summary
WebGPU exposes an API to create opaque "external texture"
objects from HTMLVideoElement. These object can be used to
sample the video frames efficiently, potentially in a
zero-copy way directly from the source YUV data. However
the WebGPU specification for the first version of WebGPU
does not allow creating GPUExternalTextures from WebCodecs
VideoFrame objects. This capability is important for
advanced video processing applications that are already
using WebCodecs and would like to integrate WebGPU in the
video processing pipeline. This feature adds support for
using a VideoFrame as the source for a GPUExternalTexture
and a copyExternalImageToTexture call.
Blink component
Blink>WebGPU
<https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EWebGPU>
TAG review
A new TAG review is not needed in this case as WebGPU had
one recently already:
https://github.com/w3ctag/design-reviews/issues/626
<https://github.com/w3ctag/design-reviews/issues/626>
This small but important addition is about adding
VideoFrame support on top of HTMLVideoElement support to
GPUExternalTextures and copyExternalImageToTexture call.
TAG review status
Not applicable
Risks
Interoperability and Compatibility
Gecko: Positive
(https://github.com/gpuweb/gpuweb/wiki/Minutes-2023-04-19#investigation-import-videoframe-from-webcodec-to-webgpu-1380:~:text=KG%3A%20the%20proposal%20above%20makes%20sense
<https://github.com/gpuweb/gpuweb/wiki/Minutes-2023-04-19#investigation-import-videoframe-from-webcodec-to-webgpu-1380:~:text=KG%3A%20the%20proposal%20above%20makes%20sense>)
WebCodecs is listed as "worth prototyping" which likely
means this intergration is the same.
WebKit: In development
(https://github.com/WebKit/WebKit/pull/14055
<https://github.com/WebKit/WebKit/pull/14055>)
Web developers: Positive
Other signals:
Ergonomics
No ergonomic risk. This API would be used at the
intersection of WebGPU and WebCodec. It is designed to
keep performance as high as possible by allowing zero-copy
sampling of YUV frame data.
Security
The lifetime management of VideoFrame was taken into
account of this feature. No other security considerations.
WebView application risks
N/A
Debuggability
No support.
Will this feature be supported on all six Blink
platforms (Windows, Mac, Linux, Chrome OS,
Android, and Android WebView)?
Yes
It will be supported where WebGPU is supported. For now,
it is only ChromeOS, macOS, and Windows.
Is this feature fully tested by web-platform-tests
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?
Yes
DevTrial instructions
https://github.com/gpuweb/gpuweb/issues/1380
<https://github.com/gpuweb/gpuweb/issues/1380>
Requires code in //chrome?
False
Tracking bug
https://bugs.chromium.org/p/chromium/issues/detail?id=1455083
<https://bugs.chromium.org/p/chromium/issues/detail?id=1455083>
Availability expectation
This feature will be part of the WebGPU API in all
browsers when they ship it.
Sample links
https://webgpu.github.io/webgpu-samples/samples/videoUploadingWebCodecs
<https://webgpu.github.io/webgpu-samples/samples/videoUploadingWebCodecs>
Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5078348864159744
<https://chromestatus.com/feature/5078348864159744>
Links to previous Intent discussions
Intent to Experiment:
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGdfWNPH6Jk-g%2B3Nkx0F_rmn05kWcWU%3Dd3cOJNpjfZ3nAWjXcQ%40mail.gmail.com
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGdfWNPH6Jk-g%2B3Nkx0F_rmn05kWcWU%3Dd3cOJNpjfZ3nAWjXcQ%40mail.gmail.com>
This intent message was generated by Chrome Platform
Status <https://chromestatus.com/>.
--
You received this message because you are subscribed to the Google
Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it,
send an email to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPpwU5Kb%3DNMqiZURzoUK%2BJ45Au2P_rY7yAzK8-OeCZ-g3%2Bo98g%40mail.gmail.com
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPpwU5Kb%3DNMqiZURzoUK%2BJ45Au2P_rY7yAzK8-OeCZ-g3%2Bo98g%40mail.gmail.com?utm_medium=email&utm_source=footer>.
--
You received this message because you are subscribed to the Google
Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfXecSRht7k4wzc22bBF-GtX9nWSko3nPpTB4j9d-s%3DDmw%40mail.gmail.com
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfXecSRht7k4wzc22bBF-GtX9nWSko3nPpTB4j9d-s%3DDmw%40mail.gmail.com?utm_medium=email&utm_source=footer>.
--
You received this message because you are subscribed to the Google Groups
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6bfa3d56-9843-2c0d-ac73-63d67c261953%40chromium.org.