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

Reply via email to