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://github.com/gpuweb/gpuweb/issues/1380
>>>
>>> https://github.com/gpuweb/gpuweb/issues/4165
>>>
>>> https://gpuweb.github.io/gpuweb/explainer/#image-input
>>>
>>> Specification
>>>
>>> https://gpuweb.github.io/gpuweb/#gpuexternaltexture
>>>
>>> Design docs
>>>
>>> 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
>>>
>>> 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)
>>> WebCodecs is listed as "worth prototyping" which likely means this
>>> intergration is the same.
>>>
>>> WebKit: In development (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
>>>
>>> Requires code in //chrome?
>>>
>>> False
>>>
>>> Tracking bug
>>>
>>> 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
>>>
>>> Link to entry on the Chrome Platform Status
>>>
>>> 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
>>>
>>>
>>> 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.

Reply via email to