Diff
Modified: trunk/Source/WebCore/ChangeLog (284861 => 284862)
--- trunk/Source/WebCore/ChangeLog 2021-10-26 09:46:30 UTC (rev 284861)
+++ trunk/Source/WebCore/ChangeLog 2021-10-26 09:46:47 UTC (rev 284862)
@@ -1,5 +1,24 @@
2021-10-26 Youenn Fablet <[email protected]>
+ Only one AudioSampleDataSource::pullSamples is needed
+ https://bugs.webkit.org/show_bug.cgi?id=232145
+
+ Reviewed by Eric Carlson.
+
+ Update CoreAudioSharedUnit::provideSpeakerData to use pullSamples taking an AudioBufferList as parameter.
+ Remove the no longer necessary AudioSampleDataSource::pullSamples and rename pullSamplesInternal in pullSamples.
+ Update header to forward declare more classes.
+ This is a refactoring, no change of behavior.
+
+ * platform/audio/cocoa/AudioSampleDataSource.h:
+ * platform/audio/cocoa/AudioSampleDataSource.mm:
+ (WebCore::AudioSampleDataSource::pullSamples):
+ (WebCore::AudioSampleDataSource::pullSamplesInternal): Deleted.
+ * platform/mediastream/mac/CoreAudioCaptureSource.cpp:
+ (WebCore::CoreAudioSharedUnit::provideSpeakerData):
+
+2021-10-26 Youenn Fablet <[email protected]>
+
Beef up worker termination handling in ReadableStream routines
https://bugs.webkit.org/show_bug.cgi?id=231500
<rdar://83687915>
Modified: trunk/Source/WebCore/platform/audio/cocoa/AudioSampleDataSource.h (284861 => 284862)
--- trunk/Source/WebCore/platform/audio/cocoa/AudioSampleDataSource.h 2021-10-26 09:46:30 UTC (rev 284861)
+++ trunk/Source/WebCore/platform/audio/cocoa/AudioSampleDataSource.h 2021-10-26 09:46:47 UTC (rev 284862)
@@ -25,7 +25,7 @@
#pragma once
-#include "AudioSampleBufferList.h"
+#include "CARingBuffer.h"
#include <CoreAudio/CoreAudioTypes.h>
#include <wtf/LoggerHelper.h>
#include <wtf/MediaTime.h>
@@ -33,12 +33,13 @@
#include <wtf/ThreadSafeRefCounted.h>
#include <wtf/text/WTFString.h>
+typedef struct OpaqueAudioConverter* AudioConverterRef;
typedef struct opaqueCMSampleBuffer *CMSampleBufferRef;
namespace WebCore {
-class CAAudioStreamDescription;
-class CARingBuffer;
+class AudioSampleBufferList;
+class PlatformAudioData;
class AudioSampleDataSource : public ThreadSafeRefCounted<AudioSampleDataSource, WTF::DestructionThread::MainRunLoop>
#if !RELEASE_LOG_DISABLED
@@ -57,7 +58,6 @@
void pushSamples(const AudioStreamBasicDescription&, CMSampleBufferRef);
enum PullMode { Copy, Mix };
- bool pullSamples(AudioSampleBufferList&, size_t, uint64_t, double, PullMode);
bool pullSamples(AudioBufferList&, size_t, uint64_t, double, PullMode);
bool pullAvailableSamplesAsChunks(AudioBufferList&, size_t frameCount, uint64_t timeStamp, Function<void()>&&);
@@ -84,7 +84,6 @@
AudioSampleDataSource(size_t, LoggerHelper&, size_t waitToStartForPushCount);
OSStatus setupConverter();
- bool pullSamplesInternal(AudioBufferList&, size_t, uint64_t, double, PullMode);
void pushSamplesInternal(const AudioBufferList&, const MediaTime&, size_t frameCount);
Modified: trunk/Source/WebCore/platform/audio/cocoa/AudioSampleDataSource.mm (284861 => 284862)
--- trunk/Source/WebCore/platform/audio/cocoa/AudioSampleDataSource.mm 2021-10-26 09:46:30 UTC (rev 284861)
+++ trunk/Source/WebCore/platform/audio/cocoa/AudioSampleDataSource.mm 2021-10-26 09:46:47 UTC (rev 284862)
@@ -26,8 +26,7 @@
#import "config.h"
#import "AudioSampleDataSource.h"
-#import "CAAudioStreamDescription.h"
-#import "CARingBuffer.h"
+#import "AudioSampleBufferList.h"
#import "Logging.h"
#import "PlatformAudioData.h"
#import <AudioToolbox/AudioConverter.h>
@@ -210,7 +209,7 @@
return 0;
}
-bool AudioSampleDataSource::pullSamplesInternal(AudioBufferList& buffer, size_t sampleCount, uint64_t timeStamp, double /*hostTime*/, PullMode mode)
+bool AudioSampleDataSource::pullSamples(AudioBufferList& buffer, size_t sampleCount, uint64_t timeStamp, double /*hostTime*/, PullMode mode)
{
size_t byteCount = sampleCount * m_outputDescription->bytesPerFrame();
@@ -348,22 +347,6 @@
return true;
}
-bool AudioSampleDataSource::pullSamples(AudioBufferList& buffer, size_t sampleCount, uint64_t timeStamp, double hostTime, PullMode mode)
-{
- return pullSamplesInternal(buffer, sampleCount, timeStamp, hostTime, mode);
-}
-
-bool AudioSampleDataSource::pullSamples(AudioSampleBufferList& buffer, size_t sampleCount, uint64_t timeStamp, double hostTime, PullMode mode)
-{
- if (!pullSamplesInternal(buffer.bufferList(), sampleCount, timeStamp, hostTime, mode))
- return false;
-
- buffer.setTimes(timeStamp, hostTime);
- buffer.setSampleCount(sampleCount);
-
- return true;
-}
-
#if !RELEASE_LOG_DISABLED
void AudioSampleDataSource::setLogger(Ref<const Logger>&& logger, const void* logIdentifier)
{
Modified: trunk/Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp (284861 => 284862)
--- trunk/Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp 2021-10-26 09:46:30 UTC (rev 284861)
+++ trunk/Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp 2021-10-26 09:46:47 UTC (rev 284862)
@@ -366,7 +366,7 @@
bool firstSource = true;
for (auto& source : m_activeSources) {
- source->pullSamples(*m_speakerSampleBuffer.get(), inNumberFrames, adjustedHostTime, sampleTime, firstSource ? AudioSampleDataSource::Copy : AudioSampleDataSource::Mix);
+ source->pullSamples(bufferList, inNumberFrames, adjustedHostTime, sampleTime, firstSource ? AudioSampleDataSource::Copy : AudioSampleDataSource::Mix);
firstSource = false;
}
Modified: trunk/Source/WebKit/ChangeLog (284861 => 284862)
--- trunk/Source/WebKit/ChangeLog 2021-10-26 09:46:30 UTC (rev 284861)
+++ trunk/Source/WebKit/ChangeLog 2021-10-26 09:46:47 UTC (rev 284862)
@@ -1,3 +1,12 @@
+2021-10-26 Youenn Fablet <[email protected]>
+
+ Only one AudioSampleDataSource::pullSamples is needed
+ https://bugs.webkit.org/show_bug.cgi?id=232145
+
+ Reviewed by Eric Carlson.
+
+ * WebProcess/GPU/webrtc/AudioMediaStreamTrackRendererInternalUnitManager.cpp:
+
2021-10-26 Adrian Perez de Castro <[email protected]>
Multiple build issues with ENABLE_VIDEO=OFF
Modified: trunk/Source/WebKit/WebProcess/GPU/webrtc/AudioMediaStreamTrackRendererInternalUnitManager.cpp (284861 => 284862)
--- trunk/Source/WebKit/WebProcess/GPU/webrtc/AudioMediaStreamTrackRendererInternalUnitManager.cpp 2021-10-26 09:46:30 UTC (rev 284861)
+++ trunk/Source/WebKit/WebProcess/GPU/webrtc/AudioMediaStreamTrackRendererInternalUnitManager.cpp 2021-10-26 09:46:47 UTC (rev 284862)
@@ -34,6 +34,7 @@
#include "SharedMemory.h"
#include <WebCore/AudioMediaStreamTrackRendererInternalUnit.h>
#include <WebCore/AudioMediaStreamTrackRendererUnit.h>
+#include <WebCore/AudioSampleBufferList.h>
#include <WebCore/CAAudioStreamDescription.h>
#include <WebCore/CARingBuffer.h>
#include <WebCore/WebAudioBufferList.h>