Title: [284862] trunk/Source
Revision
284862
Author
[email protected]
Date
2021-10-26 02:46:47 -0700 (Tue, 26 Oct 2021)

Log Message

Only one AudioSampleDataSource::pullSamples is needed
https://bugs.webkit.org/show_bug.cgi?id=232145

Reviewed by Eric Carlson.

Source/WebCore:

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):

Source/WebKit:

* WebProcess/GPU/webrtc/AudioMediaStreamTrackRendererInternalUnitManager.cpp:

Modified Paths

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>
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to