Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 7738281a461ecea0aff6612dad9e807ec7deceea
https://github.com/WebKit/WebKit/commit/7738281a461ecea0aff6612dad9e807ec7deceea
Author: Jean-Yves Avenard <[email protected]>
Date: 2025-12-16 (Tue, 16 Dec 2025)
Changed paths:
A LayoutTests/media/content/test-av1-709-fullrange.webm
A LayoutTests/media/media-webm-av1-expected.txt
A LayoutTests/media/media-webm-av1.html
M LayoutTests/platform/ios/TestExpectations
M LayoutTests/platform/mac/TestExpectations
M Source/WebCore/platform/graphics/AV1Utilities.cpp
M Source/WebCore/platform/graphics/AV1Utilities.h
M Source/WebCore/platform/graphics/CodecUtilities.cpp
M Source/WebCore/platform/graphics/cocoa/AV1UtilitiesCocoa.h
M Source/WebCore/platform/graphics/cocoa/AV1UtilitiesCocoa.mm
M Source/WebCore/platform/graphics/cocoa/SourceBufferParserWebM.cpp
M Source/WebCore/platform/graphics/cocoa/SourceBufferParserWebM.h
M Source/WebCore/platform/video-codecs/cocoa/RTCVideoDecoderVTBAV1.mm
M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp
M Source/WebKit/WebProcess/GPU/GPUProcessConnection.cpp
Log Message:
-----------
The webm videos on this page don't play in Safari (work in Firefox and Chrome)
https://bugs.webkit.org/show_bug.cgi?id=304109
rdar://problem/166439682
Reviewed by Youenn Fablet.
Create createVideoInfoFromAV1Stream utility and make computeAV1InputFormat
use it.
Add supports for AV1 in a WebM.
We only enable support for those videos if an AV1 hardware decoder is available.
To be able to determine if HW support is available in the web content process
like in 300722@main, we now distinguish if AV1 HW decoder is available
in process vs globally by adding a av1HardwareDecoderAvailableInProcess method.
Test Added (But disabled as it requires specific hardware on iOS and macOS).
* LayoutTests/media/content/test-av1-709-fullrange.webm: Added.
* LayoutTests/media/media-webm-av1-expected.txt: Added.
* LayoutTests/media/media-webm-av1.html: Added.
* LayoutTests/platform/ios/TestExpectations:
* LayoutTests/platform/mac/TestExpectations:
* Source/WebCore/platform/graphics/AV1Utilities.cpp:
(WTF::isValidEnum<WebCore::AV1ConfigurationLevel>): 31 value is valid and seen
in a few webm found on the web.
(WebCore::createPlatformVideoColorSpaceFromAV1CodecConfigurationRecord):
(WebCore::createVideoInfoFromAV1CodecConfigurationRecord):
(WebCore::readULEBSize):
(WebCore::getSequenceHeaderOBU):
(WebCore::createVideoInfoFromAV1Stream):
* Source/WebCore/platform/graphics/AV1Utilities.h:
* Source/WebCore/platform/graphics/CodecUtilities.cpp:
(WebCore::humanReadableStringFromCodecString): Extend with 31 (Maximum) value.
* Source/WebCore/platform/graphics/cocoa/AV1UtilitiesCocoa.h:
* Source/WebCore/platform/graphics/cocoa/AV1UtilitiesCocoa.mm:
(WebCore::av1HardwareDecoderAvailable):
(WebCore::av1HardwareDecoderAvailableInProcess):
(WebCore::readULEBSize): Deleted.
(WebCore::getSequenceHeaderOBU): Deleted.
* Source/WebCore/platform/graphics/cocoa/SourceBufferParserWebM.cpp:
(WebCore::WebMParser::OnTrackEntry):
(WebCore::WebMParser::OnFrame):
(WebCore::WebMParser::VideoTrackData::consumeFrameData):
(WebCore::WebMParser::isSupportedVideoCodec):
(WebCore::SourceBufferParserWebM::isContentTypeSupported):
* Source/WebCore/platform/graphics/cocoa/SourceBufferParserWebM.h:
* Source/WebCore/platform/video-codecs/cocoa/RTCVideoDecoderVTBAV1.mm:
(computeAV1InputFormat): Use existing AV1Utilities/CMUtilities.
* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::m_sharedPreferencesForWebProcess):
* Source/WebKit/WebProcess/GPU/GPUProcessConnection.cpp:
(WebKit::GPUProcessConnection::didInitialize):
Canonical link: https://commits.webkit.org/304510@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications