Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 676d1e61c613c793bdad642eaf70dfa6e408d96c https://github.com/WebKit/WebKit/commit/676d1e61c613c793bdad642eaf70dfa6e408d96c Author: Jean-Yves Avenard <j...@apple.com> Date: 2024-12-04 (Wed, 04 Dec 2024)
Changed paths: M LayoutTests/TestExpectations M LayoutTests/http/wpt/webcodecs/audioData-serialization-expected.txt M LayoutTests/imported/w3c/web-platform-tests/mediacapture-insertable-streams/VideoTrackGenerator.worker-expected.txt M LayoutTests/imported/w3c/web-platform-tests/webcodecs/transfering.https.any-expected.txt M LayoutTests/imported/w3c/web-platform-tests/webcodecs/transfering.https.any.worker-expected.txt M LayoutTests/platform/glib/TestExpectations R LayoutTests/platform/glib/http/wpt/webcodecs/audioData-serialization-expected.txt M Source/WebCore/Modules/webcodecs/WebCodecsAudioDataAlgorithms.cpp M Source/WebCore/Modules/webcodecs/WebCodecsAudioDataAlgorithms.h M Source/WebCore/SourcesCocoa.txt M Source/WebCore/WebCore.xcodeproj/project.pbxproj M Source/WebCore/platform/audio/AudioStreamDescription.h M Source/WebCore/platform/audio/PlatformRawAudioData.cpp M Source/WebCore/platform/audio/PlatformRawAudioData.h M Source/WebCore/platform/audio/cocoa/AudioSampleBufferList.cpp M Source/WebCore/platform/audio/cocoa/CAAudioStreamDescription.cpp M Source/WebCore/platform/audio/cocoa/CAAudioStreamDescription.h M Source/WebCore/platform/audio/cocoa/CARingBuffer.h A Source/WebCore/platform/audio/cocoa/PlatformRawAudioDataCocoa.cpp A Source/WebCore/platform/audio/cocoa/PlatformRawAudioDataCocoa.h M Source/WebCore/platform/audio/cocoa/WebAudioBufferList.h M Source/WebCore/platform/audio/gstreamer/PlatformRawAudioDataGStreamer.cpp M Source/WebCore/platform/audio/gstreamer/PlatformRawAudioDataGStreamer.h M Source/WebCore/platform/mediastream/cocoa/AudioMediaStreamTrackRendererInternalUnit.cpp M Tools/TestWebKitAPI/Tests/WebCore/CARingBufferTest.cpp Log Message: ----------- Add WebCodec's AudioData cocoa support. https://bugs.webkit.org/show_bug.cgi?id=283901 rdar://140782143 Reviewed by Youenn Fablet. It supports conversion from and to all WebCodec's supported AudioFormat in both interleaved and planar layout. Covered by web platform tests which are no longer expected to fail. * LayoutTests/TestExpectations: * LayoutTests/http/wpt/webcodecs/audioData-serialization-expected.txt: Test is now passing. * LayoutTests/imported/w3c/web-platform-tests/mediacapture-insertable-streams/VideoTrackGenerator.worker-expected.txt: Test no longer fails as it relied on AudioData * LayoutTests/imported/w3c/web-platform-tests/webcodecs/transfering.https.any-expected.txt: Test fails due to webkit.org/b/284017 * LayoutTests/imported/w3c/web-platform-tests/webcodecs/transfering.https.any.worker-expected.txt: Test fails due to webkit.org/b/284017 * LayoutTests/platform/glib/http/wpt/webcodecs/audioData-serialization-expected.txt: Removed. * Source/WebCore/Modules/webcodecs/WebCodecsAudioDataAlgorithms.cpp: (WebCore::isAudioSampleFormatInterleaved): Don't pass enum value by const reference. (WebCore::computeBytesPerSample): Don't pass enum value by const reference. (WebCore::computeCopyElementCount): Update as per latest spec. Don't limit conversion to only float32 with cocoa implementation (WebCore::audioSampleElementFormat): (WebCore::audioElementSpan): Utility method to convert original span<uint8_t> to one matching the underlying datatype. * Source/WebCore/Modules/webcodecs/WebCodecsAudioDataAlgorithms.h: * Source/WebCore/SourcesCocoa.txt: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/platform/audio/AudioStreamDescription.h: Add support for U8 and Int24 samples. * Source/WebCore/platform/audio/PlatformRawAudioData.cpp: * Source/WebCore/platform/audio/PlatformRawAudioData.h: (WebCore::PlatformRawAudioData::isGStreamer const): Deleted. * Source/WebCore/platform/audio/cocoa/AudioSampleBufferList.cpp: (WebCore::AudioSampleBufferList::applyGain): (WebCore::mixBuffers): * Source/WebCore/platform/audio/cocoa/CAAudioStreamDescription.cpp: (WebCore::CAAudioStreamDescription::CAAudioStreamDescription): (WebCore::CAAudioStreamDescription::format const): * Source/WebCore/platform/audio/cocoa/CAAudioStreamDescription.h: * Source/WebCore/platform/audio/cocoa/CARingBuffer.h: (WebCore::CARingBuffer::fetchModeForMixing): * Source/WebCore/platform/audio/cocoa/PlatformRawAudioDataCocoa.cpp: Added. (WebCore::PlatformRawAudioData::create): (WebCore::audioSampleFormatToPCMFormat): (WebCore::interleavedFormat): (WebCore::createSampleBuffer): (WebCore::PlatformRawAudioDataCocoa::PlatformRawAudioDataCocoa): (WebCore::PlatformRawAudioDataCocoa::asbd const): (WebCore::PlatformRawAudioDataCocoa::format const): (WebCore::PlatformRawAudioDataCocoa::sampleRate const): (WebCore::PlatformRawAudioDataCocoa::numberOfChannels const): (WebCore::PlatformRawAudioDataCocoa::numberOfFrames const): (WebCore::PlatformRawAudioDataCocoa::duration const): (WebCore::PlatformRawAudioDataCocoa::timestamp const): (WebCore::PlatformRawAudioDataCocoa::memoryCost const): (WebCore::PlatformRawAudioDataCocoa::isInterleaved const): (WebCore::planesOfSamples): (WebCore::PlatformRawAudioData::copyTo): (WebCore::PlatformRawAudioDataCocoa::sampleBuffer const): * Source/WebCore/platform/audio/cocoa/PlatformRawAudioDataCocoa.h: Added. (isType): * Source/WebCore/platform/audio/cocoa/WebAudioBufferList.h: Add bufferAsSpan utility method. * Source/WebCore/platform/audio/gstreamer/PlatformRawAudioDataGStreamer.cpp: (WebCore::PlatformRawAudioData::create): (WebCore::PlatformRawAudioDataGStreamer::numberOfFrames const): * Source/WebCore/platform/audio/gstreamer/PlatformRawAudioDataGStreamer.h: (isType): * Source/WebCore/platform/mediastream/cocoa/AudioMediaStreamTrackRendererInternalUnit.cpp: (WebCore::clipAudioBufferList): * Tools/TestWebKitAPI/Tests/WebCore/CARingBufferTest.cpp: (TestWebKitAPI::CARingBufferTest::setup): Canonical link: https://commits.webkit.org/287332@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes