[webkit-changes] [WebKit/WebKit] 0b3759: CAAudioStreamDescription should be held like a val...
Kimmo Kinnunen
noreply at github.com
Thu Nov 10 23:08:13 PST 2022
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 0b3759dd1cde2f99b360f48de7abddeb75c2c032
https://github.com/WebKit/WebKit/commit/0b3759dd1cde2f99b360f48de7abddeb75c2c032
Author: Kimmo Kinnunen <kkinnunen at apple.com>
Date: 2022-11-10 (Thu, 10 Nov 2022)
Changed paths:
M Source/WebCore/platform/audio/cocoa/AudioSampleBufferList.cpp
M Source/WebCore/platform/audio/cocoa/AudioSampleBufferList.h
M Source/WebCore/platform/audio/cocoa/CAAudioStreamDescription.cpp
M Source/WebCore/platform/audio/cocoa/CAAudioStreamDescription.h
M Source/WebCore/platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp
M Source/WebCore/platform/mediarecorder/MediaRecorderPrivateAVFImpl.h
M Source/WebCore/platform/mediastream/cocoa/AudioMediaStreamTrackRendererCocoa.cpp
M Source/WebCore/platform/mediastream/cocoa/AudioMediaStreamTrackRendererCocoa.h
M Source/WebCore/platform/mediastream/cocoa/AudioMediaStreamTrackRendererInternalUnit.cpp
M Source/WebCore/platform/mediastream/cocoa/AudioMediaStreamTrackRendererInternalUnit.h
M Source/WebCore/platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.cpp
M Source/WebCore/platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.h
M Source/WebCore/platform/mediastream/cocoa/IncomingAudioMediaStreamTrackRendererUnit.cpp
M Source/WebCore/platform/mediastream/cocoa/IncomingAudioMediaStreamTrackRendererUnit.h
M Source/WebCore/platform/mediastream/mac/CoreAudioSharedUnit.cpp
M Source/WebCore/platform/mediastream/mac/CoreAudioSharedUnit.h
M Source/WebCore/platform/mediastream/mac/RealtimeOutgoingAudioSourceCocoa.cpp
M Source/WebCore/platform/mediastream/mac/RealtimeOutgoingAudioSourceCocoa.h
M Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.cpp
M Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.h
M Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.messages.in
M Source/WebKit/GPUProcess/webrtc/RemoteMediaRecorder.cpp
M Source/WebKit/GPUProcess/webrtc/RemoteMediaRecorder.h
M Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp
M Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.cpp
M Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.h
M Source/WebKit/WebProcess/GPU/media/RemoteAudioSourceProviderManager.cpp
M Source/WebKit/WebProcess/GPU/media/RemoteAudioSourceProviderManager.h
M Source/WebKit/WebProcess/GPU/webrtc/AudioMediaStreamTrackRendererInternalUnitManager.cpp
M Source/WebKit/WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp
M Source/WebKit/WebProcess/GPU/webrtc/MediaRecorderPrivate.h
M Source/WebKit/WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.cpp
M Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.cpp
M Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.h
M Tools/TestWebKitAPI/Tests/WebCore/CARingBuffer.cpp
Log Message:
-----------
CAAudioStreamDescription should be held like a value type
https://bugs.webkit.org/show_bug.cgi?id=247663
rdar://problem/102128846
Reviewed by Youenn Fablet.
CAAudioStreamDescription was needlessly held in three different ways:
- as uninitialized dummy value until dynamically initialized:
CAAudioStreamDescription m_description;
- as an optional:
std::optional<CAAudioStreamDescription> m_description;
- as a reference type:
std::unique_ptr<CAAudioStreamDescription> m_description;
UniqueRef<CAAudioStreamDescription> m_description = makeUnique<..>().
The type itself should be a value type. Work towards that
and the future rename of the type to AudioStreamDescription by
following:
- Make CAAudioStreamDescription non-default constructible. All
instances are really valid data.
- Hold std::optional<> in case the instance is initialized
dynamically
* Source/WebCore/platform/audio/cocoa/AudioSampleBufferList.cpp:
(WebCore::AudioSampleBufferList::AudioSampleBufferList):
(WebCore::AudioSampleBufferList::applyGain):
(WebCore::AudioSampleBufferList::mixFrom):
(WebCore::AudioSampleBufferList::copyFrom):
(WebCore::AudioSampleBufferList::copyTo):
(WebCore::AudioSampleBufferList::zero):
* Source/WebCore/platform/audio/cocoa/AudioSampleBufferList.h:
(WebCore::AudioSampleBufferList::streamDescription const):
* Source/WebCore/platform/audio/cocoa/CAAudioStreamDescription.cpp:
* Source/WebCore/platform/audio/cocoa/CAAudioStreamDescription.h:
(WebCore::CAAudioStreamDescription::decode):
* Source/WebCore/platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp:
(WebCore::MediaRecorderPrivateAVFImpl::audioSamplesAvailable):
* Source/WebCore/platform/mediarecorder/MediaRecorderPrivateAVFImpl.h:
* Source/WebCore/platform/mediastream/cocoa/AudioMediaStreamTrackRendererCocoa.cpp:
(WebCore::AudioMediaStreamTrackRendererCocoa::start):
(WebCore::AudioMediaStreamTrackRendererCocoa::clear):
* Source/WebCore/platform/mediastream/cocoa/AudioMediaStreamTrackRendererCocoa.h:
* Source/WebCore/platform/mediastream/cocoa/AudioMediaStreamTrackRendererInternalUnit.cpp:
(WebCore::LocalAudioMediaStreamTrackRendererInternalUnit::retrieveFormatDescription):
(WebCore::LocalAudioMediaStreamTrackRendererInternalUnit::createAudioUnitIfNeeded):
* Source/WebCore/platform/mediastream/cocoa/AudioMediaStreamTrackRendererInternalUnit.h:
* Source/WebCore/platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.cpp:
(WebCore::AudioMediaStreamTrackRendererUnit::retrieveFormatDescription):
* Source/WebCore/platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.h:
* Source/WebCore/platform/mediastream/cocoa/IncomingAudioMediaStreamTrackRendererUnit.cpp:
(WebCore::IncomingAudioMediaStreamTrackRendererUnit::addSource):
(WebCore::IncomingAudioMediaStreamTrackRendererUnit::renderAudioChunk):
* Source/WebCore/platform/mediastream/cocoa/IncomingAudioMediaStreamTrackRendererUnit.h:
* Source/WebCore/platform/mediastream/mac/CoreAudioSharedUnit.cpp:
(WebCore::CoreAudioSharedUnit::provideSpeakerData):
(WebCore::CoreAudioSharedUnit::processMicrophoneSamples):
* Source/WebCore/platform/mediastream/mac/CoreAudioSharedUnit.h:
* Source/WebCore/platform/mediastream/mac/RealtimeOutgoingAudioSourceCocoa.cpp:
(WebCore::RealtimeOutgoingAudioSourceCocoa::isReachingBufferedAudioDataHighLimit):
(WebCore::RealtimeOutgoingAudioSourceCocoa::isReachingBufferedAudioDataLowLimit):
(WebCore::RealtimeOutgoingAudioSourceCocoa::hasBufferedEnoughData):
(WebCore::RealtimeOutgoingAudioSourceCocoa::audioSamplesAvailable):
(WebCore::RealtimeOutgoingAudioSourceCocoa::pullAudioData):
* Source/WebCore/platform/mediastream/mac/RealtimeOutgoingAudioSourceCocoa.h:
* Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.cpp:
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::createUnit):
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::Unit):
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::start):
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::render):
* Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.h:
* Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.messages.in:
* Source/WebKit/GPUProcess/webrtc/RemoteMediaRecorder.cpp:
(WebKit::RemoteMediaRecorder::audioSamplesStorageChanged):
(WebKit::RemoteMediaRecorder::audioSamplesAvailable):
* Source/WebKit/GPUProcess/webrtc/RemoteMediaRecorder.h:
* Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
(WebKit::UserMediaCaptureManagerProxy::SourceProxy::source):
(WebKit::UserMediaCaptureManagerProxy::SourceProxy::description): Deleted.
* Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.cpp:
(WebKit::SpeechRecognitionRemoteRealtimeMediaSource::remoteAudioSamplesAvailable):
* Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.h:
* Source/WebKit/WebProcess/GPU/media/RemoteAudioSourceProviderManager.cpp:
(WebKit::RemoteAudioSourceProviderManager::RemoteAudio::audioSamplesAvailable):
* Source/WebKit/WebProcess/GPU/media/RemoteAudioSourceProviderManager.h:
* Source/WebKit/WebProcess/GPU/webrtc/AudioMediaStreamTrackRendererInternalUnitManager.cpp:
(WebKit::AudioMediaStreamTrackRendererInternalUnitManager::Proxy::~Proxy):
(WebKit::AudioMediaStreamTrackRendererInternalUnitManager::Proxy::createRemoteUnit):
(WebKit::AudioMediaStreamTrackRendererInternalUnitManager::Proxy::initialize):
(WebKit::AudioMediaStreamTrackRendererInternalUnitManager::Proxy::retrieveFormatDescription):
* Source/WebKit/WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:
(WebKit::MediaRecorderPrivate::audioSamplesAvailable):
* Source/WebKit/WebProcess/GPU/webrtc/MediaRecorderPrivate.h:
* Source/WebKit/WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.cpp:
* Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.cpp:
(WebKit::RemoteCaptureSampleManager::RemoteAudio::startThread):
* Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.h:
* Tools/TestWebKitAPI/Tests/WebCore/CARingBuffer.cpp:
(TestWebKitAPI::CARingBufferTest::setup):
(TestWebKitAPI::CARingBufferTest::setListDataBuffer):
(TestWebKitAPI::CARingBufferTest::description const):
Canonical link: https://commits.webkit.org/256562@main
More information about the webkit-changes
mailing list