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

Reply via email to