Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: d9eaeec65476955a24f5cbb42c512a81c2517d9b
https://github.com/WebKit/WebKit/commit/d9eaeec65476955a24f5cbb42c512a81c2517d9b
Author: Youenn Fablet <[email protected]>
Date: 2026-09-22 (Tue, 22 Sep 2026)
Changed paths:
M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
M Source/WebCore/PAL/pal/cf/CoreMediaSoftLink.cpp
M Source/WebCore/PAL/pal/cf/CoreMediaSoftLink.h
M Source/WebCore/SourcesCocoa.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/platform/graphics/HEVCUtilities.cpp
M Source/WebCore/platform/graphics/HEVCUtilities.h
M Source/WebCore/platform/graphics/cocoa/HEVCUtilitiesCocoa.h
M Source/WebCore/platform/graphics/cocoa/HEVCUtilitiesCocoa.mm
A Source/WebCore/platform/video-codecs/cocoa/GPUVideoDecoderVTBH265.h
A Source/WebCore/platform/video-codecs/cocoa/GPUVideoDecoderVTBH265.mm
M Source/WebCore/platform/video-codecs/cocoa/WebRTCVideoDecoder.h
M Source/WebCore/platform/video-codecs/cocoa/WebRTCVideoDecoder.mm
M Source/WebCore/platform/video-codecs/cocoa/WebRTCVideoDecoderVTB.h
M Source/WebKit/GPUProcess/webrtc/LibWebRTCCodecsProxy.mm
Log Message:
-----------
Implement a VideoToolbox H265 decoder in WebCore
rdar://187770610
https://bugs.webkit.org/show_bug.cgi?id=324534
Reviewed by Jean-Yves Avenard.
We implement GPUVideoDecoderVTBH265 as a straigthforward replacement to
libwebrtc RTCVideoDecoderH265.
At some point in the future, RTCVideoDecoderH265 will be retired.
In the meantime, we enable GPUVideoDecoderVTBH265 when WebCore's H265 encoder
is enabled.
We reimplement libwebrtc parsing/conversion routines that are needed in
WebCore, using safe cpp guideline.
We keep for now the color space handling similar to libwebrtc (fixed setup),
this will be fixed as a follow-up.
*
LayoutTests/imported/w3c/web-platform-tests/webcodecs/videoDecoder-codec-specific-orientation.https.any.js:
(promise_test.async t):
* Source/WebCore/PAL/pal/cf/CoreMediaSoftLink.cpp:
* Source/WebCore/PAL/pal/cf/CoreMediaSoftLink.h:
* Source/WebCore/SourcesCocoa.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/platform/graphics/cocoa/HEVCUtilitiesCocoa.h:
* Source/WebCore/platform/graphics/cocoa/HEVCUtilitiesCocoa.mm:
(WebCore::createVideoInfoFromHEVCAnnexBStream):
(WebCore::convertHEVCAnnexBToLengthPrefixed):
(WebCore::defaultHEVCPlatformVideoColorSpace):
(WebCore::createVideoInfoFromHVCC):
* Source/WebCore/platform/video-codecs/cocoa/GPUVideoDecoderVTBH265.h: Added.
* Source/WebCore/platform/video-codecs/cocoa/GPUVideoDecoderVTBH265.mm: Added.
(WebCore::GPUVideoDecoderVTBH265::GPUVideoDecoderVTBH265):
(WebCore::GPUVideoDecoderVTBH265::decodeFrame):
(WebCore::GPUVideoDecoderVTBH265::setFormat):
* Source/WebCore/platform/video-codecs/cocoa/WebRTCVideoDecoder.h:
* Source/WebCore/platform/video-codecs/cocoa/WebRTCVideoDecoder.mm:
(WebCore::WebRTCVideoDecoder::create):
* Source/WebCore/platform/video-codecs/cocoa/WebRTCVideoDecoderVTB.h:
* Source/WebKit/GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:
(WebKit::LibWebRTCCodecsProxy::createLocalDecoder):
* Source/WebCore/platform/graphics/HEVCUtilities.cpp:
(WebCore::findHEVCAnnexBMaxNumReorderPics):
(WebCore::findHVCCMaxNumReorderPics):
(WebCore::HEVCBitstreamParser::parseVpsMaxNumReorderPics):
* Source/WebCore/platform/graphics/HEVCUtilities.h:
Canonical link: https://commits.webkit.org/321590@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications