Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 56c5d5123c3d8d413cce7ac3d7a859e0032e6ff2
https://github.com/WebKit/WebKit/commit/56c5d5123c3d8d413cce7ac3d7a859e0032e6ff2
Author: Youenn Fablet <[email protected]>
Date: 2026-09-23 (Wed, 23 Sep 2026)
Changed paths:
A
LayoutTests/http/wpt/webcodecs/h264-encoder-quality-latency-profiles.https.any-expected.txt
A
LayoutTests/http/wpt/webcodecs/h264-encoder-quality-latency-profiles.https.any.html
A
LayoutTests/http/wpt/webcodecs/h264-encoder-quality-latency-profiles.https.any.js
A
LayoutTests/http/wpt/webcodecs/h264-encoder-quality-latency-profiles.https.any.worker-expected.txt
A
LayoutTests/http/wpt/webcodecs/h264-encoder-quality-latency-profiles.https.any.worker.html
M Source/WebKit/GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in
Log Message:
-----------
WebCodecs video encoder may buffer too many
frames
rdar://188029698
https://bugs.webkit.org/show_bug.cgi?id=324827
Reviewed by Per Arne Vollan and Jean-Yves Avenard.
On macOS 27, VideoToolbox probes the AVCEncoderChromaFormat property to decide
which H.264 encoder to select (SW or HW).
The GPU process sandbox denied this property, so VT chooses the software H264
encoder.
This has an impact on performance but also caused the issue that the webcodecs
H264 encoder was stalling.
This is due to the fact that the software encoder buffers more than 4 frames
(up to 16 actually), which is over the current webcodecs queue max size.
We allow the AVCEncoderChromaFormat property so that we are back to using the
HW H264 encoder.
As a follow-up, we will need to fix the current webcodecs queue max size so
that the SW H264 encoder works fine..
Covered by
http/wpt/webcodecs/h264-encoder-quality-latency-profiles.https.any.html and its
worker variant, which encode 30 frames with latencyMode="quality" and then call
flush().
Covered by
http/wpt/webcodecs/h264-encoder-quality-latency-profiles.https.any.html and its
worker variant, which tries to encode 30 frames non realtime, and then calls
flush.
Tests: http/wpt/webcodecs/h264-encoder-quality-latency-profiles.https.any.html
http/wpt/webcodecs/h264-encoder-quality-latency-profiles.https.any.worker.html
*
LayoutTests/http/wpt/webcodecs/h264-encoder-quality-latency-profiles.https.any-expected.txt:
Added.
*
LayoutTests/http/wpt/webcodecs/h264-encoder-quality-latency-profiles.https.any.html:
Added.
*
LayoutTests/http/wpt/webcodecs/h264-encoder-quality-latency-profiles.https.any.js:
Added.
(async testProfile):
*
LayoutTests/http/wpt/webcodecs/h264-encoder-quality-latency-profiles.https.any.worker-expected.txt:
Added.
*
LayoutTests/http/wpt/webcodecs/h264-encoder-quality-latency-profiles.https.any.worker.html:
Added.
* Source/WebKit/GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
Canonical link:
https://flagged.apple.com:443/proxy?t2=Df8I3C7Qp9&o=aHR0cHM6Ly9jb21taXRzLndlYmtpdC5vcmcvMzIxNzAwQG1haW4=&emid=5d7c2d30-43ce-4adf-a2ee-937c9a7bc0e0&c=11
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications