Diff
Modified: trunk/Source/WebCore/ChangeLog (279365 => 279366)
--- trunk/Source/WebCore/ChangeLog 2021-06-29 07:19:27 UTC (rev 279365)
+++ trunk/Source/WebCore/ChangeLog 2021-06-29 07:25:11 UTC (rev 279366)
@@ -1,3 +1,15 @@
+2021-06-29 Youenn Fablet <[email protected]>
+
+ Remove RemoteAudioMediaStreamTrackRenderer and RemoteAudioMediaStreamTrackRendererManager
+ https://bugs.webkit.org/show_bug.cgi?id=227438
+
+ Reviewed by Eric Carlson.
+
+ * platform/mediastream/cocoa/AudioMediaStreamTrackRendererInternalUnit.cpp:
+ (WebCore::LocalAudioMediaStreamTrackRendererInternalUnit::start):
+ (WebCore::LocalAudioMediaStreamTrackRendererInternalUnit::stop):
+ Add some logging.
+
2021-06-29 Antti Koivisto <[email protected]>
Enable Probabilistic Guard Malloc for RuleData and RuleFeature vectors
Modified: trunk/Source/WebCore/platform/mediastream/cocoa/AudioMediaStreamTrackRendererInternalUnit.cpp (279365 => 279366)
--- trunk/Source/WebCore/platform/mediastream/cocoa/AudioMediaStreamTrackRendererInternalUnit.cpp 2021-06-29 07:19:27 UTC (rev 279365)
+++ trunk/Source/WebCore/platform/mediastream/cocoa/AudioMediaStreamTrackRendererInternalUnit.cpp 2021-06-29 07:25:11 UTC (rev 279366)
@@ -117,6 +117,7 @@
void LocalAudioMediaStreamTrackRendererInternalUnit::start()
{
+ RELEASE_LOG_INFO(WebRTC, "LocalAudioMediaStreamTrackRendererInternalUnit::start");
if (m_isStarted)
return;
@@ -136,6 +137,7 @@
void LocalAudioMediaStreamTrackRendererInternalUnit::stop()
{
+ RELEASE_LOG_INFO(WebRTC, "LocalAudioMediaStreamTrackRendererInternalUnit::stop");
if (!m_remoteIOUnit)
return;
Modified: trunk/Source/WebKit/CMakeLists.txt (279365 => 279366)
--- trunk/Source/WebKit/CMakeLists.txt 2021-06-29 07:19:27 UTC (rev 279365)
+++ trunk/Source/WebKit/CMakeLists.txt 2021-06-29 07:25:11 UTC (rev 279366)
@@ -143,9 +143,7 @@
GPUProcess/media/RemoteSourceBufferProxy
GPUProcess/webrtc/LibWebRTCCodecsProxy
- GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer
GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager
- GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager
GPUProcess/webrtc/RemoteMediaRecorder
GPUProcess/webrtc/RemoteMediaRecorderManager
GPUProcess/webrtc/RemoteSampleBufferDisplayLayer
Modified: trunk/Source/WebKit/ChangeLog (279365 => 279366)
--- trunk/Source/WebKit/ChangeLog 2021-06-29 07:19:27 UTC (rev 279365)
+++ trunk/Source/WebKit/ChangeLog 2021-06-29 07:25:11 UTC (rev 279366)
@@ -1,3 +1,45 @@
+2021-06-29 Youenn Fablet <[email protected]>
+
+ Remove RemoteAudioMediaStreamTrackRenderer and RemoteAudioMediaStreamTrackRendererManager
+ https://bugs.webkit.org/show_bug.cgi?id=227438
+
+ Reviewed by Eric Carlson.
+
+ Remove code no longer enabled.
+ This code was obsoleted by RemoteAudioMediaStreamTrackRendererInternalUnitManager and friends.
+ Update GPUProcess to not exit if RemoteAudioMediaStreamTrackRendererInternalUnitManager has some units,
+ like was done by RemoteAudioMediaStreamTrackRendererManager.
+
+ * DerivedSources.make:
+ * GPUProcess/GPUConnectionToWebProcess.cpp:
+ (WebKit::GPUConnectionToWebProcess::GPUConnectionToWebProcess):
+ (WebKit::GPUConnectionToWebProcess::~GPUConnectionToWebProcess):
+ (WebKit::GPUConnectionToWebProcess::allowsExitUnderMemoryPressure const):
+ * GPUProcess/GPUConnectionToWebProcess.h:
+ * GPUProcess/GPUProcess.cpp:
+ (WebKit::GPUProcess::audioMediaStreamTrackRendererQueue): Deleted.
+ * GPUProcess/GPUProcess.h:
+ * GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.cpp: Removed.
+ * GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.h: Removed.
+ * GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.messages.in: Removed.
+ * GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.cpp:
+ (WebKit::renderCallback):
+ (WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::Unit):
+ (WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::start):
+ * GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.h:
+ (WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::hasUnits):
+ * GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.cpp: Removed.
+ * GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.h: Removed.
+ * GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.messages.in: Removed.
+ * Scripts/webkit/messages.py:
+ (types_that_cannot_be_forward_declared):
+ * Sources.txt:
+ * SourcesCocoa.txt:
+ * WebKit.xcodeproj/project.pbxproj:
+ * WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.cpp: Removed.
+ * WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.h: Removed.
+ * WebProcess/GPU/webrtc/AudioMediaStreamTrackRendererIdentifier.h: Removed.
+
2021-06-28 Wenson Hsieh <[email protected]>
REGRESSION (r279310): Occasional crash when focusing login fields on iPad with a software keyboard
Modified: trunk/Source/WebKit/DerivedSources.make (279365 => 279366)
--- trunk/Source/WebKit/DerivedSources.make 2021-06-29 07:19:27 UTC (rev 279365)
+++ trunk/Source/WebKit/DerivedSources.make 2021-06-29 07:25:11 UTC (rev 279366)
@@ -247,11 +247,9 @@
GPUProcess/graphics/RemoteGraphicsContextGL \
GPUProcess/webrtc/LibWebRTCCodecsProxy \
GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager \
- GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager \
GPUProcess/webrtc/RemoteMediaRecorderManager \
GPUProcess/webrtc/RemoteSampleBufferDisplayLayer \
GPUProcess/webrtc/RemoteMediaRecorder \
- GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer \
GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager \
GPUProcess/GPUProcess \
GPUProcess/media/RemoteImageDecoderAVFProxy \
Modified: trunk/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp (279365 => 279366)
--- trunk/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp 2021-06-29 07:19:27 UTC (rev 279365)
+++ trunk/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp 2021-06-29 07:25:11 UTC (rev 279366)
@@ -43,7 +43,6 @@
#include "RemoteAudioHardwareListenerProxy.h"
#include "RemoteAudioMediaStreamTrackRendererInternalUnitManager.h"
#include "RemoteAudioMediaStreamTrackRendererInternalUnitManagerMessages.h"
-#include "RemoteAudioMediaStreamTrackRendererManager.h"
#include "RemoteGraphicsContextGLMessages.h"
#include "RemoteMediaPlayerManagerProxy.h"
#include "RemoteMediaPlayerManagerProxyMessages.h"
@@ -202,7 +201,6 @@
, m_libWebRTCCodecsProxy(LibWebRTCCodecsProxy::create(*this))
#endif
#if PLATFORM(COCOA) && ENABLE(MEDIA_STREAM)
- , m_audioTrackRendererManager(RemoteAudioMediaStreamTrackRendererManager::create(*this))
, m_sampleBufferDisplayLayerManager(RemoteSampleBufferDisplayLayerManager::create(*this))
#endif
#if ENABLE(ROUTING_ARBITRATION) && HAVE(AVAUDIO_ROUTING_ARBITER)
@@ -232,7 +230,6 @@
m_connection->invalidate();
#if PLATFORM(COCOA) && ENABLE(MEDIA_STREAM)
- m_audioTrackRendererManager->close();
m_sampleBufferDisplayLayerManager->close();
#endif
#if PLATFORM(COCOA) && USE(LIBWEBRTC)
@@ -325,7 +322,7 @@
#if PLATFORM(COCOA) && ENABLE(MEDIA_STREAM)
if (m_userMediaCaptureManagerProxy && m_userMediaCaptureManagerProxy->hasSourceProxies())
return false;
- if (!m_audioTrackRendererManager->allowsExitUnderMemoryPressure())
+ if (m_audioMediaStreamTrackRendererInternalUnitManager && m_audioMediaStreamTrackRendererInternalUnitManager->hasUnits())
return false;
if (!m_sampleBufferDisplayLayerManager->allowsExitUnderMemoryPressure())
return false;
Modified: trunk/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h (279365 => 279366)
--- trunk/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h 2021-06-29 07:19:27 UTC (rev 279365)
+++ trunk/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h 2021-06-29 07:25:11 UTC (rev 279366)
@@ -60,7 +60,6 @@
class LocalAudioSessionRoutingArbitrator;
class RemoteAudioDestinationManager;
class RemoteAudioHardwareListenerProxy;
-class RemoteAudioMediaStreamTrackRendererManager;
class RemoteAudioMediaStreamTrackRendererInternalUnitManager;
class RemoteAudioSessionProxy;
class RemoteAudioSessionProxyManager;
@@ -243,7 +242,6 @@
#if PLATFORM(COCOA) && ENABLE(MEDIA_STREAM)
std::unique_ptr<UserMediaCaptureManagerProxy> m_userMediaCaptureManagerProxy;
std::unique_ptr<RemoteAudioMediaStreamTrackRendererInternalUnitManager> m_audioMediaStreamTrackRendererInternalUnitManager;
- Ref<RemoteAudioMediaStreamTrackRendererManager> m_audioTrackRendererManager;
Ref<RemoteSampleBufferDisplayLayerManager> m_sampleBufferDisplayLayerManager;
#endif
#if PLATFORM(COCOA) && ENABLE(MEDIA_STREAM) && HAVE(AVASSETWRITERDELEGATE)
Modified: trunk/Source/WebKit/GPUProcess/GPUProcess.cpp (279365 => 279366)
--- trunk/Source/WebKit/GPUProcess/GPUProcess.cpp 2021-06-29 07:19:27 UTC (rev 279365)
+++ trunk/Source/WebKit/GPUProcess/GPUProcess.cpp 2021-06-29 07:25:11 UTC (rev 279366)
@@ -400,12 +400,6 @@
#endif
#if ENABLE(MEDIA_STREAM) && PLATFORM(COCOA)
-WorkQueue& GPUProcess::audioMediaStreamTrackRendererQueue()
-{
- if (!m_audioMediaStreamTrackRendererQueue)
- m_audioMediaStreamTrackRendererQueue = WorkQueue::create("RemoteAudioMediaStreamTrackRenderer", WorkQueue::Type::Serial, WorkQueue::QOS::UserInteractive);
- return *m_audioMediaStreamTrackRendererQueue;
-}
WorkQueue& GPUProcess::videoMediaStreamTrackRendererQueue()
{
if (!m_videoMediaStreamTrackRendererQueue)
Modified: trunk/Source/WebKit/GPUProcess/GPUProcess.h (279365 => 279366)
--- trunk/Source/WebKit/GPUProcess/GPUProcess.h 2021-06-29 07:19:27 UTC (rev 279365)
+++ trunk/Source/WebKit/GPUProcess/GPUProcess.h 2021-06-29 07:25:11 UTC (rev 279366)
@@ -84,7 +84,6 @@
WebCore::NowPlayingManager& nowPlayingManager();
#if ENABLE(MEDIA_STREAM) && PLATFORM(COCOA)
- WorkQueue& audioMediaStreamTrackRendererQueue();
WorkQueue& videoMediaStreamTrackRendererQueue();
#endif
#if USE(LIBWEBRTC) && PLATFORM(COCOA)
@@ -164,7 +163,6 @@
};
HashMap<WebCore::ProcessIdentifier, MediaCaptureAccess> m_mediaCaptureAccessMap;
#if ENABLE(MEDIA_STREAM) && PLATFORM(COCOA)
- RefPtr<WorkQueue> m_audioMediaStreamTrackRendererQueue;
RefPtr<WorkQueue> m_videoMediaStreamTrackRendererQueue;
#endif
uint64_t m_orientation { 0 };
Deleted: trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.cpp (279365 => 279366)
--- trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.cpp 2021-06-29 07:19:27 UTC (rev 279365)
+++ trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.cpp 2021-06-29 07:25:11 UTC (rev 279366)
@@ -1,122 +0,0 @@
-/*
- * Copyright (C) 2020 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "RemoteAudioMediaStreamTrackRenderer.h"
-
-#if PLATFORM(COCOA) && ENABLE(GPU_PROCESS) && ENABLE(MEDIA_STREAM)
-
-#include "Connection.h"
-#include "RemoteAudioMediaStreamTrackRendererManager.h"
-#include "SharedRingBufferStorage.h"
-#include <WebCore/AudioMediaStreamTrackRenderer.h>
-#include <WebCore/CARingBuffer.h>
-#include <WebCore/WebAudioBufferList.h>
-
-#define MESSAGE_CHECK(assertion) MESSAGE_CHECK_BASE(assertion, (&m_manager.connection()))
-
-namespace WebKit {
-using namespace WebCore;
-
-#if !RELEASE_LOG_DISABLED
-static const void* nextLogIdentifier()
-{
- static uint64_t logIdentifier = cryptographicallyRandomNumber();
- return reinterpret_cast<const void*>(++logIdentifier);
-}
-
-static RefPtr<Logger>& nullLogger()
-{
- static NeverDestroyed<RefPtr<Logger>> logger;
- return logger;
-}
-#endif
-
-RemoteAudioMediaStreamTrackRenderer::RemoteAudioMediaStreamTrackRenderer(RemoteAudioMediaStreamTrackRendererManager& manager)
- : m_manager(manager)
- , m_renderer(WebCore::AudioMediaStreamTrackRenderer::create())
- , m_ringBuffer(makeUniqueRef<CARingBuffer>())
-{
- ASSERT(m_renderer);
-
-#if !RELEASE_LOG_DISABLED
- if (!nullLogger().get()) {
- nullLogger() = Logger::create(this);
- nullLogger()->setEnabled(this, false);
- }
- m_renderer->setLogger(*nullLogger(), nextLogIdentifier());
-#endif
-}
-
-RemoteAudioMediaStreamTrackRenderer::~RemoteAudioMediaStreamTrackRenderer()
-{
- m_renderer->clear();
-}
-
-void RemoteAudioMediaStreamTrackRenderer::start()
-{
- m_renderer->start([] { });
-}
-
-void RemoteAudioMediaStreamTrackRenderer::stop()
-{
- m_renderer->stop();
-}
-
-void RemoteAudioMediaStreamTrackRenderer::clear()
-{
- m_renderer->clear();
-}
-
-void RemoteAudioMediaStreamTrackRenderer::setVolume(float value)
-{
- m_renderer->setVolume(value);
-}
-
-void RemoteAudioMediaStreamTrackRenderer::audioSamplesStorageChanged(const SharedMemory::IPCHandle& ipcHandle, const WebCore::CAAudioStreamDescription& description, uint64_t numberOfFrames)
-{
- MESSAGE_CHECK(WebAudioBufferList::isSupportedDescription(description, numberOfFrames));
- m_description = description;
-
- m_ringBuffer = CARingBuffer::adoptStorage(makeUniqueRef<ReadOnlySharedRingBufferStorage>(ipcHandle.handle), description, numberOfFrames);
- m_audioBufferList = makeUnique<WebAudioBufferList>(m_description);
-}
-
-void RemoteAudioMediaStreamTrackRenderer::audioSamplesAvailable(MediaTime time, uint64_t numberOfFrames)
-{
- MESSAGE_CHECK(m_audioBufferList);
- MESSAGE_CHECK(WebAudioBufferList::isSupportedDescription(m_description, numberOfFrames));
-
- m_audioBufferList->setSampleCount(numberOfFrames);
- m_ringBuffer->fetch(m_audioBufferList->list(), numberOfFrames, time.timeValue());
-
- m_renderer->pushSamples(time, *m_audioBufferList, m_description, numberOfFrames);
-}
-
-}
-
-#undef MESSAGE_CHECK
-
-#endif // PLATFORM(COCOA) && ENABLE(GPU_PROCESS) && ENABLE(MEDIA_STREAM)
Deleted: trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.h (279365 => 279366)
--- trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.h 2021-06-29 07:19:27 UTC (rev 279365)
+++ trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.h 2021-06-29 07:25:11 UTC (rev 279366)
@@ -1,73 +0,0 @@
-/*
- * Copyright (C) 2020 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-#if PLATFORM(COCOA) && ENABLE(GPU_PROCESS) && ENABLE(MEDIA_STREAM)
-
-#include "MessageReceiver.h"
-#include "SharedMemory.h"
-#include <WebCore/CAAudioStreamDescription.h>
-#include <wtf/MediaTime.h>
-#include <wtf/UniqueRef.h>
-
-namespace WebCore {
-class AudioMediaStreamTrackRenderer;
-class CARingBuffer;
-class WebAudioBufferList;
-}
-
-namespace WebKit {
-
-class RemoteAudioMediaStreamTrackRendererManager;
-class SharedRingBufferStorage;
-
-class RemoteAudioMediaStreamTrackRenderer {
- WTF_MAKE_FAST_ALLOCATED;
-public:
- explicit RemoteAudioMediaStreamTrackRenderer(RemoteAudioMediaStreamTrackRendererManager&);
- ~RemoteAudioMediaStreamTrackRenderer();
-
- void didReceiveMessage(IPC::Connection&, IPC::Decoder&);
-
-private:
- // IPC::MessageReceiver
- void start();
- void stop();
- void clear();
- void setVolume(float);
- void audioSamplesStorageChanged(const SharedMemory::IPCHandle&, const WebCore::CAAudioStreamDescription&, uint64_t numberOfFrames);
- void audioSamplesAvailable(MediaTime, uint64_t numberOfFrames);
-
- RemoteAudioMediaStreamTrackRendererManager& m_manager;
- std::unique_ptr<WebCore::AudioMediaStreamTrackRenderer> m_renderer;
- WebCore::CAAudioStreamDescription m_description;
- UniqueRef<WebCore::CARingBuffer> m_ringBuffer;
- std::unique_ptr<WebCore::WebAudioBufferList> m_audioBufferList;
-};
-
-}
-
-#endif // PLATFORM(COCOA) && ENABLE(GPU_PROCESS) && ENABLE(MEDIA_STREAM)
Deleted: trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.messages.in (279365 => 279366)
--- trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.messages.in 2021-06-29 07:19:27 UTC (rev 279365)
+++ trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.messages.in 2021-06-29 07:25:11 UTC (rev 279366)
@@ -1,37 +0,0 @@
-# Copyright (C) 2019 Apple Inc. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
-# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-# THE POSSIBILITY OF SUCH DAMAGE.
-
-#if PLATFORM(COCOA) && ENABLE(GPU_PROCESS) && ENABLE(MEDIA_STREAM)
-
-messages -> RemoteAudioMediaStreamTrackRenderer NotRefCounted {
- Start()
- Stop()
- Clear()
-
- SetVolume(float value)
-
- AudioSamplesStorageChanged(WebKit::SharedMemory::IPCHandle storageHandle, WebCore::CAAudioStreamDescription description, uint64_t numberOfFrames)
- AudioSamplesAvailable(MediaTime time, uint64_t numberOfFrames)
-}
-
-#endif
Modified: trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.cpp (279365 => 279366)
--- trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.cpp 2021-06-29 07:19:27 UTC (rev 279365)
+++ trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.cpp 2021-06-29 07:25:11 UTC (rev 279366)
@@ -32,6 +32,7 @@
#include "GPUProcess.h"
#include "GPUProcessConnectionMessages.h"
#include "IPCSemaphore.h"
+#include "Logging.h"
#include <WebCore/AudioMediaStreamTrackRendererInternalUnit.h>
#include <WebCore/AudioSession.h>
#include <WebCore/AudioUtilities.h>
@@ -114,7 +115,7 @@
unit->setAudioOutputDevice(deviceId);
}
-static AudioMediaStreamTrackRendererInternalUnit::RenderCallback renderCallback(RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit& unit)
+static WebCore::AudioMediaStreamTrackRendererInternalUnit::RenderCallback renderCallback(RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit& unit)
{
return [&unit](auto sampleCount, auto& list, auto sampleTime, auto hostTime, auto& flags) {
return unit.render(sampleCount, list, sampleTime, hostTime, flags);
@@ -128,10 +129,11 @@
{
m_localUnit->retrieveFormatDescription([weakThis = makeWeakPtr(this), this, callback = WTFMove(callback)](auto&& description) mutable {
if (!weakThis || !description) {
+ RELEASE_LOG_IF(!description, WebRTC, "RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit unable to get format description");
callback({ }, 0);
return;
}
- m_frameChunkSize = std::max(WebCore::AudioUtilities::renderQuantumSize, AudioSession::sharedSession().preferredBufferSize());
+ m_frameChunkSize = std::max(WebCore::AudioUtilities::renderQuantumSize, WebCore::AudioSession::sharedSession().preferredBufferSize());
callback(*description, m_frameChunkSize);
});
}
@@ -148,7 +150,7 @@
m_readOffset = 0;
m_isPlaying = true;
- m_ringBuffer = CARingBuffer::adoptStorage(makeUniqueRef<ReadOnlySharedRingBufferStorage>(handle), description, numberOfFrames).moveToUniquePtr();
+ m_ringBuffer = WebCore::CARingBuffer::adoptStorage(makeUniqueRef<ReadOnlySharedRingBufferStorage>(handle), description, numberOfFrames).moveToUniquePtr();
m_renderSemaphore = WTFMove(semaphore);
m_localUnit->start();
}
Modified: trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.h (279365 => 279366)
--- trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.h 2021-06-29 07:19:27 UTC (rev 279365)
+++ trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.h 2021-06-29 07:25:11 UTC (rev 279366)
@@ -57,6 +57,7 @@
void didReceiveMessage(IPC::Connection&, IPC::Decoder&);
+ bool hasUnits() { return !m_units.isEmpty(); }
class Unit;
private:
Deleted: trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.cpp (279365 => 279366)
--- trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.cpp 2021-06-29 07:19:27 UTC (rev 279365)
+++ trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.cpp 2021-06-29 07:25:11 UTC (rev 279366)
@@ -1,98 +0,0 @@
-/*
- * Copyright (C) 2020 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "RemoteAudioMediaStreamTrackRendererManager.h"
-
-#if PLATFORM(COCOA) && ENABLE(GPU_PROCESS) && ENABLE(MEDIA_STREAM)
-
-#include "Decoder.h"
-#include "GPUProcess.h"
-#include "RemoteAudioMediaStreamTrackRenderer.h"
-#include "RemoteAudioMediaStreamTrackRendererManagerMessages.h"
-#include "RemoteAudioMediaStreamTrackRendererMessages.h"
-
-namespace WebKit {
-
-
-RemoteAudioMediaStreamTrackRendererManager::RemoteAudioMediaStreamTrackRendererManager(GPUConnectionToWebProcess& connectionToWebProcess)
- : m_connectionToWebProcess(connectionToWebProcess)
- , m_queue(connectionToWebProcess.gpuProcess().audioMediaStreamTrackRendererQueue())
-{
-}
-
-void RemoteAudioMediaStreamTrackRendererManager::startListeningForIPC()
-{
- m_connectionToWebProcess.connection().addThreadMessageReceiver(Messages::RemoteAudioMediaStreamTrackRenderer::messageReceiverName(), this);
- m_connectionToWebProcess.connection().addThreadMessageReceiver(Messages::RemoteAudioMediaStreamTrackRendererManager::messageReceiverName(), this);
-}
-
-RemoteAudioMediaStreamTrackRendererManager::~RemoteAudioMediaStreamTrackRendererManager() = default;
-
-void RemoteAudioMediaStreamTrackRendererManager::close()
-{
- m_connectionToWebProcess.connection().removeThreadMessageReceiver(Messages::RemoteAudioMediaStreamTrackRenderer::messageReceiverName());
- m_connectionToWebProcess.connection().removeThreadMessageReceiver(Messages::RemoteAudioMediaStreamTrackRendererManager::messageReceiverName());
- dispatchToThread([this, protectedThis = makeRef(*this)] {
- m_renderers.clear();
- });
-}
-
-void RemoteAudioMediaStreamTrackRendererManager::dispatchToThread(Function<void()>&& callback)
-{
- m_queue->dispatch(WTFMove(callback));
-}
-
-bool RemoteAudioMediaStreamTrackRendererManager::dispatchMessage(IPC::Connection& connection, IPC::Decoder& decoder)
-{
- if (!decoder.destinationID())
- return false;
-
- auto identifier = makeObjectIdentifier<AudioMediaStreamTrackRendererIdentifierType>(decoder.destinationID());
- if (auto* renderer = m_renderers.get(identifier))
- renderer->didReceiveMessage(connection, decoder);
- return true;
-}
-
-void RemoteAudioMediaStreamTrackRendererManager::createRenderer(AudioMediaStreamTrackRendererIdentifier identifier)
-{
- ASSERT(!m_renderers.contains(identifier));
- m_renderers.add(identifier, makeUnique<RemoteAudioMediaStreamTrackRenderer>(*this));
-}
-
-void RemoteAudioMediaStreamTrackRendererManager::releaseRenderer(AudioMediaStreamTrackRendererIdentifier identifier)
-{
- ASSERT(m_renderers.contains(identifier));
- m_renderers.remove(identifier);
-}
-
-bool RemoteAudioMediaStreamTrackRendererManager::allowsExitUnderMemoryPressure() const
-{
- return m_renderers.isEmpty();
-}
-
-}
-
-#endif // PLATFORM(COCOA) && ENABLE(GPU_PROCESS) && ENABLE(MEDIA_STREAM)
Deleted: trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.h (279365 => 279366)
--- trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.h 2021-06-29 07:19:27 UTC (rev 279365)
+++ trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.h 2021-06-29 07:25:11 UTC (rev 279366)
@@ -1,85 +0,0 @@
-/*
- * Copyright (C) 2020 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-#if PLATFORM(COCOA) && ENABLE(GPU_PROCESS) && ENABLE(MEDIA_STREAM)
-
-#include "AudioMediaStreamTrackRendererIdentifier.h"
-#include "Connection.h"
-#include "GPUConnectionToWebProcess.h"
-#include <wtf/Forward.h>
-#include <wtf/HashMap.h>
-
-namespace IPC {
-class Connection;
-class Decoder;
-}
-
-namespace WebKit {
-
-class RemoteAudioMediaStreamTrackRenderer;
-
-class RemoteAudioMediaStreamTrackRendererManager final : public IPC::Connection::ThreadMessageReceiverRefCounted {
- WTF_MAKE_FAST_ALLOCATED;
-public:
- static Ref<RemoteAudioMediaStreamTrackRendererManager> create(GPUConnectionToWebProcess& process)
- {
- auto instance = adoptRef(*new RemoteAudioMediaStreamTrackRendererManager(process));
- instance->startListeningForIPC();
- return instance;
- }
- ~RemoteAudioMediaStreamTrackRendererManager();
-
- void didReceiveRendererMessage(IPC::Connection&, IPC::Decoder&);
- void didReceiveMessageFromWebProcess(IPC::Connection& connection, IPC::Decoder& decoder) { didReceiveMessage(connection, decoder); }
-
- IPC::Connection& connection() const { return m_connectionToWebProcess.connection(); }
-
- void close();
-
- bool allowsExitUnderMemoryPressure() const;
-
-private:
- explicit RemoteAudioMediaStreamTrackRendererManager(GPUConnectionToWebProcess&);
- void startListeningForIPC();
-
- // IPC::Connection::ThreadMessageReceiver
- void dispatchToThread(Function<void()>&&) final;
-
- // IPC::MessageReceiver
- void didReceiveMessage(IPC::Connection&, IPC::Decoder&) final;
- bool dispatchMessage(IPC::Connection&, IPC::Decoder&);
- void createRenderer(AudioMediaStreamTrackRendererIdentifier);
- void releaseRenderer(AudioMediaStreamTrackRendererIdentifier);
-
- GPUConnectionToWebProcess& m_connectionToWebProcess;
- Ref<WorkQueue> m_queue;
- HashMap<AudioMediaStreamTrackRendererIdentifier, std::unique_ptr<RemoteAudioMediaStreamTrackRenderer>> m_renderers;
-};
-
-}
-
-#endif // PLATFORM(COCOA) && ENABLE(GPU_PROCESS) && ENABLE(MEDIA_STREAM)
Deleted: trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.messages.in (279365 => 279366)
--- trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.messages.in 2021-06-29 07:19:27 UTC (rev 279365)
+++ trunk/Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.messages.in 2021-06-29 07:25:11 UTC (rev 279366)
@@ -1,31 +0,0 @@
-# Copyright (C) 2019 Apple Inc. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
-# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-# THE POSSIBILITY OF SUCH DAMAGE.
-
-#if PLATFORM(COCOA) && ENABLE(GPU_PROCESS) && ENABLE(MEDIA_STREAM)
-
-messages -> RemoteAudioMediaStreamTrackRendererManager WantsAsyncDispatchMessage {
- CreateRenderer(WebKit::AudioMediaStreamTrackRendererIdentifier id)
- ReleaseRenderer(WebKit::AudioMediaStreamTrackRendererIdentifier id)
-}
-
-#endif
Modified: trunk/Source/WebKit/Scripts/webkit/messages.py (279365 => 279366)
--- trunk/Source/WebKit/Scripts/webkit/messages.py 2021-06-29 07:19:27 UTC (rev 279365)
+++ trunk/Source/WebKit/Scripts/webkit/messages.py 2021-06-29 07:25:11 UTC (rev 279366)
@@ -307,7 +307,6 @@
'WebCore::SWServerConnectionIdentifier',
'WebCore::WebSocketIdentifier',
'WebKit::ActivityStateChangeID',
- 'WebKit::AudioMediaStreamTrackRendererIdentifier',
'WebKit::AudioMediaStreamTrackRendererInternalUnitIdentifier',
'WebKit::ContentWorldIdentifier',
'WebKit::DisplayLinkObserverID',
Modified: trunk/Source/WebKit/Sources.txt (279365 => 279366)
--- trunk/Source/WebKit/Sources.txt 2021-06-29 07:19:27 UTC (rev 279365)
+++ trunk/Source/WebKit/Sources.txt 2021-06-29 07:25:11 UTC (rev 279366)
@@ -52,8 +52,6 @@
GPUProcess/media/RemoteSourceBufferProxy.cpp
GPUProcess/media/RemoteTextTrackProxy.cpp
GPUProcess/media/RemoteVideoTrackProxy.cpp
-GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.cpp
-GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.cpp
GPUProcess/webrtc/RemoteMediaRecorder.cpp
GPUProcess/webrtc/RemoteMediaRecorderManager.cpp
GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp
@@ -613,7 +611,6 @@
WebProcess/GPU/media/TextTrackPrivateRemote.cpp
WebProcess/GPU/media/VideoTrackPrivateRemote.cpp
WebProcess/GPU/media/WebMediaStrategy.cpp
-WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.cpp
WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp
WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp
WebProcess/GPU/webrtc/MediaRecorderProvider.cpp
Modified: trunk/Source/WebKit/SourcesCocoa.txt (279365 => 279366)
--- trunk/Source/WebKit/SourcesCocoa.txt 2021-06-29 07:19:27 UTC (rev 279365)
+++ trunk/Source/WebKit/SourcesCocoa.txt 2021-06-29 07:25:11 UTC (rev 279366)
@@ -719,8 +719,6 @@
RemoteAudioHardwareListenerMessageReceiver.cpp
RemoteAudioSessionMessageReceiver.cpp
RemoteAudioSessionProxyMessageReceiver.cpp
-RemoteAudioMediaStreamTrackRendererManagerMessageReceiver.cpp
-RemoteAudioMediaStreamTrackRendererMessageReceiver.cpp
RemoteAudioSourceProviderManagerMessageReceiver.cpp
RemoteImageDecoderAVFProxyMessageReceiver.cpp
RemoteImageDecoderAVFManagerMessageReceiver.cpp
Modified: trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj (279365 => 279366)
--- trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj 2021-06-29 07:19:27 UTC (rev 279365)
+++ trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj 2021-06-29 07:25:11 UTC (rev 279366)
@@ -3833,12 +3833,6 @@
41D129D91F3D101400D15E47 /* WebCacheStorageProvider.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebCacheStorageProvider.h; sourceTree = "<group>"; };
41D5C6D8238EB20D00B9B3CB /* ServiceWorkerSoftUpdateLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServiceWorkerSoftUpdateLoader.h; sourceTree = "<group>"; };
41D5C6D9238EB20E00B9B3CB /* ServiceWorkerSoftUpdateLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ServiceWorkerSoftUpdateLoader.cpp; sourceTree = "<group>"; };
- 41D6455223CCB92100486E0E /* RemoteAudioMediaStreamTrackRenderer.messages.in */ = {isa = PBXFileReference; lastKnownFileType = text; name = RemoteAudioMediaStreamTrackRenderer.messages.in; path = GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.messages.in; sourceTree = SOURCE_ROOT; };
- 41D6455323CCB92100486E0E /* RemoteAudioMediaStreamTrackRenderer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RemoteAudioMediaStreamTrackRenderer.h; path = GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.h; sourceTree = SOURCE_ROOT; };
- 41D6455423CCB92200486E0E /* RemoteAudioMediaStreamTrackRenderer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = RemoteAudioMediaStreamTrackRenderer.cpp; path = GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.cpp; sourceTree = SOURCE_ROOT; };
- 41D6455523CCB96900486E0E /* RemoteAudioMediaStreamTrackRendererManager.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = RemoteAudioMediaStreamTrackRendererManager.messages.in; sourceTree = "<group>"; };
- 41D6455623CCB96900486E0E /* RemoteAudioMediaStreamTrackRendererManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RemoteAudioMediaStreamTrackRendererManager.cpp; sourceTree = "<group>"; };
- 41D6455723CCB96900486E0E /* RemoteAudioMediaStreamTrackRendererManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RemoteAudioMediaStreamTrackRendererManager.h; sourceTree = "<group>"; };
41DC45941E3D6E1E00B11F51 /* NetworkRTCProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkRTCProvider.h; sourceTree = "<group>"; };
41DC45951E3D6E1E00B11F51 /* NetworkRTCProvider.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetworkRTCProvider.cpp; sourceTree = "<group>"; };
41DC45981E3D6ED600B11F51 /* NetworkRTCProvider.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = NetworkRTCProvider.messages.in; sourceTree = "<group>"; };
@@ -3860,9 +3854,6 @@
41FBE822206DA79C000F0741 /* NetworkContentRuleListManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkContentRuleListManager.h; sourceTree = "<group>"; };
41FBE823206DA79C000F0741 /* NetworkContentRuleListManager.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = NetworkContentRuleListManager.messages.in; sourceTree = "<group>"; };
41FBE824206DA79C000F0741 /* NetworkContentRuleListManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetworkContentRuleListManager.cpp; sourceTree = "<group>"; };
- 41FCD6AD23CCC26000C62567 /* AudioMediaStreamTrackRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioMediaStreamTrackRenderer.h; sourceTree = "<group>"; };
- 41FCD6AE23CCC26100C62567 /* AudioMediaStreamTrackRenderer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AudioMediaStreamTrackRenderer.cpp; sourceTree = "<group>"; };
- 41FCD6AF23CCC26100C62567 /* AudioMediaStreamTrackRendererIdentifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioMediaStreamTrackRendererIdentifier.h; sourceTree = "<group>"; };
41FCD6B323CDC60400C62567 /* SampleBufferDisplayLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SampleBufferDisplayLayer.h; sourceTree = "<group>"; };
41FCD6B423CDCAC200C62567 /* RemoteSampleBufferDisplayLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RemoteSampleBufferDisplayLayer.h; sourceTree = "<group>"; };
41FCD6B523CDE1C600C62567 /* RemoteSampleBufferDisplayLayer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = RemoteSampleBufferDisplayLayer.cpp; sourceTree = "<group>"; };
@@ -8459,9 +8450,6 @@
4172198823B6126100AE5686 /* webrtc */ = {
isa = PBXGroup;
children = (
- 41FCD6AE23CCC26100C62567 /* AudioMediaStreamTrackRenderer.cpp */,
- 41FCD6AD23CCC26000C62567 /* AudioMediaStreamTrackRenderer.h */,
- 41FCD6AF23CCC26100C62567 /* AudioMediaStreamTrackRendererIdentifier.h */,
41C3B88726444AD3004ED4DE /* AudioMediaStreamTrackRendererInternalUnitIdentifier.h */,
41C3B88626444AAC004ED4DE /* AudioMediaStreamTrackRendererInternalUnitManager.cpp */,
41C3B88526444AAB004ED4DE /* AudioMediaStreamTrackRendererInternalUnitManager.h */,
@@ -8493,15 +8481,9 @@
41E0A7C623B6397800561060 /* LibWebRTCCodecsProxy.h */,
41E0A7C723B6397900561060 /* LibWebRTCCodecsProxy.messages.in */,
41E0A7C823B6397900561060 /* LibWebRTCCodecsProxy.mm */,
- 41D6455423CCB92200486E0E /* RemoteAudioMediaStreamTrackRenderer.cpp */,
- 41D6455323CCB92100486E0E /* RemoteAudioMediaStreamTrackRenderer.h */,
- 41D6455223CCB92100486E0E /* RemoteAudioMediaStreamTrackRenderer.messages.in */,
41C3B89126493B7B004ED4DE /* RemoteAudioMediaStreamTrackRendererInternalUnitManager.cpp */,
41C3B89026493B7B004ED4DE /* RemoteAudioMediaStreamTrackRendererInternalUnitManager.h */,
41C3B89426493B7C004ED4DE /* RemoteAudioMediaStreamTrackRendererInternalUnitManager.messages.in */,
- 41D6455623CCB96900486E0E /* RemoteAudioMediaStreamTrackRendererManager.cpp */,
- 41D6455723CCB96900486E0E /* RemoteAudioMediaStreamTrackRendererManager.h */,
- 41D6455523CCB96900486E0E /* RemoteAudioMediaStreamTrackRendererManager.messages.in */,
4176E89D23C376D5003E83FE /* RemoteMediaRecorder.cpp */,
4176E89823C36677003E83FE /* RemoteMediaRecorder.h */,
4176E89C23C37479003E83FE /* RemoteMediaRecorder.messages.in */,
Deleted: trunk/Source/WebKit/WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.cpp (279365 => 279366)
--- trunk/Source/WebKit/WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.cpp 2021-06-29 07:19:27 UTC (rev 279365)
+++ trunk/Source/WebKit/WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.cpp 2021-06-29 07:25:11 UTC (rev 279366)
@@ -1,136 +0,0 @@
-/*
- * Copyright (C) 2020 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "AudioMediaStreamTrackRenderer.h"
-
-#if PLATFORM(COCOA) && ENABLE(GPU_PROCESS) && ENABLE(MEDIA_STREAM)
-
-#include "GPUProcessConnection.h"
-#include "RemoteAudioMediaStreamTrackRendererManagerMessages.h"
-#include "RemoteAudioMediaStreamTrackRendererMessages.h"
-#include "WebProcess.h"
-#include <WebCore/AudioMediaStreamTrackRenderer.h>
-#include <WebCore/CARingBuffer.h>
-#include <WebCore/WebAudioBufferList.h>
-
-namespace WebKit {
-
-std::unique_ptr<WebCore::AudioMediaStreamTrackRenderer> AudioMediaStreamTrackRenderer::create()
-{
- return std::unique_ptr<AudioMediaStreamTrackRenderer>(new AudioMediaStreamTrackRenderer { WebProcess::singleton().ensureGPUProcessConnection().connection() });
-}
-
-AudioMediaStreamTrackRenderer::AudioMediaStreamTrackRenderer(Ref<IPC::Connection>&& connection)
- : m_connection(WTFMove(connection))
- , m_identifier(AudioMediaStreamTrackRendererIdentifier::generate())
- , m_ringBuffer(makeUnique<WebCore::CARingBuffer>(makeUniqueRef<SharedRingBufferStorage>(std::bind(&AudioMediaStreamTrackRenderer::storageChanged, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3))))
-{
- initialize();
-}
-
-AudioMediaStreamTrackRenderer::~AudioMediaStreamTrackRenderer()
-{
- if (auto* connection = WebProcess::singleton().existingGPUProcessConnection())
- connection->removeClient(*this);
- m_connection->send(Messages::RemoteAudioMediaStreamTrackRendererManager::ReleaseRenderer { m_identifier }, 0);
-}
-
-void AudioMediaStreamTrackRenderer::initialize()
-{
- WebProcess::singleton().ensureGPUProcessConnection().addClient(*this);
- m_connection->send(Messages::RemoteAudioMediaStreamTrackRendererManager::CreateRenderer { m_identifier }, 0);
-}
-
-void AudioMediaStreamTrackRenderer::start(CompletionHandler<void()>&& callback)
-{
- m_isPlaying = true;
- m_connection->send(Messages::RemoteAudioMediaStreamTrackRenderer::Start { }, m_identifier);
- callback();
-}
-
-void AudioMediaStreamTrackRenderer::stop()
-{
- m_isPlaying = false;
- m_connection->send(Messages::RemoteAudioMediaStreamTrackRenderer::Stop { }, m_identifier);
-}
-
-void AudioMediaStreamTrackRenderer::clear()
-{
- m_connection->send(Messages::RemoteAudioMediaStreamTrackRenderer::Clear { }, m_identifier);
-}
-
-void AudioMediaStreamTrackRenderer::setVolume(float value)
-{
- WebCore::AudioMediaStreamTrackRenderer::setVolume(value);
- m_connection->send(Messages::RemoteAudioMediaStreamTrackRenderer::SetVolume { value }, m_identifier);
-}
-
-void AudioMediaStreamTrackRenderer::pushSamples(const MediaTime& time, const WebCore::PlatformAudioData& audioData, const WebCore::AudioStreamDescription& description, size_t numberOfFrames)
-{
- if (!m_isPlaying)
- return;
-
- if (m_description != description) {
- DisableMallocRestrictionsForCurrentThreadScope scope;
- ASSERT(description.platformDescription().type == WebCore::PlatformDescription::CAAudioStreamBasicType);
- m_description = *WTF::get<const AudioStreamBasicDescription*>(description.platformDescription().description);
-
- // Allocate a ring buffer large enough to contain 2 seconds of audio.
- m_numberOfFrames = m_description.sampleRate() * 2;
- m_ringBuffer->allocate(m_description, m_numberOfFrames);
- }
-
- ASSERT(is<WebCore::WebAudioBufferList>(audioData));
- m_ringBuffer->store(downcast<WebCore::WebAudioBufferList>(audioData).list(), numberOfFrames, time.timeValue());
-
- DisableMallocRestrictionsForCurrentThreadScope scope;
- m_connection->send(Messages::RemoteAudioMediaStreamTrackRenderer::AudioSamplesAvailable { time, numberOfFrames }, m_identifier);
-}
-
-void AudioMediaStreamTrackRenderer::storageChanged(SharedMemory* storage, const WebCore::CAAudioStreamDescription& format, size_t frameCount)
-{
- SharedMemory::Handle handle;
- if (storage)
- storage->createHandle(handle, SharedMemory::Protection::ReadOnly);
-
- // FIXME: Send the actual data size with IPCHandle.
-#if OS(DARWIN) || OS(WINDOWS)
- uint64_t dataSize = handle.size();
-#else
- uint64_t dataSize = 0;
-#endif
- DisableMallocRestrictionsForCurrentThreadScope scope;
- m_connection->send(Messages::RemoteAudioMediaStreamTrackRenderer::AudioSamplesStorageChanged { SharedMemory::IPCHandle { WTFMove(handle), dataSize }, format, frameCount }, m_identifier);
-}
-
-void AudioMediaStreamTrackRenderer::gpuProcessConnectionDidClose(GPUProcessConnection&)
-{
- crashed();
-}
-
-}
-
-#endif // PLATFORM(COCOA) && ENABLE(GPU_PROCESS) && ENABLE(MEDIA_STREAM)
Deleted: trunk/Source/WebKit/WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.h (279365 => 279366)
--- trunk/Source/WebKit/WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.h 2021-06-29 07:19:27 UTC (rev 279365)
+++ trunk/Source/WebKit/WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.h 2021-06-29 07:25:11 UTC (rev 279366)
@@ -1,77 +0,0 @@
-/*
- * Copyright (C) 2020 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-#if PLATFORM(COCOA) && ENABLE(GPU_PROCESS) && ENABLE(MEDIA_STREAM)
-
-#include "AudioMediaStreamTrackRendererIdentifier.h"
-#include "GPUProcessConnection.h"
-#include "SharedRingBufferStorage.h"
-#include <WebCore/AudioMediaStreamTrackRenderer.h>
-#include <wtf/MediaTime.h>
-
-namespace IPC {
-class Connection;
-}
-
-namespace WebKit {
-
-class AudioMediaStreamTrackRenderer final : public WebCore::AudioMediaStreamTrackRenderer, public GPUProcessConnection::Client {
- WTF_MAKE_FAST_ALLOCATED;
-public:
- static std::unique_ptr<WebCore::AudioMediaStreamTrackRenderer> create();
- ~AudioMediaStreamTrackRenderer();
-
- AudioMediaStreamTrackRendererIdentifier identifier() const { return m_identifier; }
-
-private:
- explicit AudioMediaStreamTrackRenderer(Ref<IPC::Connection>&&);
-
- void initialize();
- void storageChanged(SharedMemory*, const WebCore::CAAudioStreamDescription& format, size_t frameCount);
-
- // WebCore::AudioMediaStreamTrackRenderer
- void start(CompletionHandler<void()>&&) final;
- void stop() final;
- void clear() final;
- void setVolume(float) final;
- void pushSamples(const MediaTime&, const WebCore::PlatformAudioData&, const WebCore::AudioStreamDescription&, size_t) final;
-
- // GPUProcessConnection::Client
- void gpuProcessConnectionDidClose(GPUProcessConnection&) final;
-
- Ref<IPC::Connection> m_connection;
- AudioMediaStreamTrackRendererIdentifier m_identifier;
-
- std::unique_ptr<WebCore::CARingBuffer> m_ringBuffer;
- WebCore::CAAudioStreamDescription m_description { };
- int64_t m_numberOfFrames { 0 };
- bool m_isPlaying { false };
-};
-
-}
-
-#endif // PLATFORM(COCOA) && ENABLE(GPU_PROCESS) && ENABLE(MEDIA_STREAM)
Deleted: trunk/Source/WebKit/WebProcess/GPU/webrtc/AudioMediaStreamTrackRendererIdentifier.h (279365 => 279366)
--- trunk/Source/WebKit/WebProcess/GPU/webrtc/AudioMediaStreamTrackRendererIdentifier.h 2021-06-29 07:19:27 UTC (rev 279365)
+++ trunk/Source/WebKit/WebProcess/GPU/webrtc/AudioMediaStreamTrackRendererIdentifier.h 2021-06-29 07:25:11 UTC (rev 279366)
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2019 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice , this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-#include <wtf/ObjectIdentifier.h>
-
-namespace WebKit {
-
-enum AudioMediaStreamTrackRendererIdentifierType { };
-using AudioMediaStreamTrackRendererIdentifier = ObjectIdentifier<AudioMediaStreamTrackRendererIdentifierType>;
-
-} // namespace WebKit