⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 284862 in webkit


Ignore:
Timestamp:
Oct 26, 2021, 2:46:47 AM (5 years ago)
Author:
youenn@apple.com
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:
Location:
trunk/Source
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r284861 r284862  
     12021-10-26  Youenn Fablet  <youenn@apple.com>
     2
     3        Only one AudioSampleDataSource::pullSamples is needed
     4        https://bugs.webkit.org/show_bug.cgi?id=232145
     5
     6        Reviewed by Eric Carlson.
     7
     8        Update CoreAudioSharedUnit::provideSpeakerData to use pullSamples taking an AudioBufferList as parameter.
     9        Remove the no longer necessary AudioSampleDataSource::pullSamples and rename pullSamplesInternal in pullSamples.
     10        Update header to forward declare more classes.
     11        This is a refactoring, no change of behavior.
     12
     13        * platform/audio/cocoa/AudioSampleDataSource.h:
     14        * platform/audio/cocoa/AudioSampleDataSource.mm:
     15        (WebCore::AudioSampleDataSource::pullSamples):
     16        (WebCore::AudioSampleDataSource::pullSamplesInternal): Deleted.
     17        * platform/mediastream/mac/CoreAudioCaptureSource.cpp:
     18        (WebCore::CoreAudioSharedUnit::provideSpeakerData):
     19
    1202021-10-26  Youenn Fablet  <youenn@apple.com>
    221
  • trunk/Source/WebCore/platform/audio/cocoa/AudioSampleDataSource.h

    r284857 r284862  
    2626#pragma once
    2727
    28 #include "AudioSampleBufferList.h"
     28#include "CARingBuffer.h"
    2929#include <CoreAudio/CoreAudioTypes.h>
    3030#include <wtf/LoggerHelper.h>
     
    3434#include <wtf/text/WTFString.h>
    3535
     36typedef struct OpaqueAudioConverter* AudioConverterRef;
    3637typedef struct opaqueCMSampleBuffer *CMSampleBufferRef;
    3738
    3839namespace WebCore {
    3940
    40 class CAAudioStreamDescription;
    41 class CARingBuffer;
     41class AudioSampleBufferList;
     42class PlatformAudioData;
    4243
    4344class AudioSampleDataSource : public ThreadSafeRefCounted<AudioSampleDataSource, WTF::DestructionThread::MainRunLoop>
     
    5859
    5960    enum PullMode { Copy, Mix };
    60     bool pullSamples(AudioSampleBufferList&, size_t, uint64_t, double, PullMode);
    6161    bool pullSamples(AudioBufferList&, size_t, uint64_t, double, PullMode);
    6262
     
    8585
    8686    OSStatus setupConverter();
    87     bool pullSamplesInternal(AudioBufferList&, size_t, uint64_t, double, PullMode);
    8887
    8988    void pushSamplesInternal(const AudioBufferList&, const MediaTime&, size_t frameCount);
  • trunk/Source/WebCore/platform/audio/cocoa/AudioSampleDataSource.mm

    r284674 r284862  
    2727#import "AudioSampleDataSource.h"
    2828
    29 #import "CAAudioStreamDescription.h"
    30 #import "CARingBuffer.h"
     29#import "AudioSampleBufferList.h"
    3130#import "Logging.h"
    3231#import "PlatformAudioData.h"
     
    211210}
    212211
    213 bool AudioSampleDataSource::pullSamplesInternal(AudioBufferList& buffer, size_t sampleCount, uint64_t timeStamp, double /*hostTime*/, PullMode mode)
     212bool AudioSampleDataSource::pullSamples(AudioBufferList& buffer, size_t sampleCount, uint64_t timeStamp, double /*hostTime*/, PullMode mode)
    214213{
    215214    size_t byteCount = sampleCount * m_outputDescription->bytesPerFrame();
     
    349348}
    350349
    351 bool AudioSampleDataSource::pullSamples(AudioBufferList& buffer, size_t sampleCount, uint64_t timeStamp, double hostTime, PullMode mode)
    352 {
    353     return pullSamplesInternal(buffer, sampleCount, timeStamp, hostTime, mode);
    354 }
    355 
    356 bool AudioSampleDataSource::pullSamples(AudioSampleBufferList& buffer, size_t sampleCount, uint64_t timeStamp, double hostTime, PullMode mode)
    357 {
    358     if (!pullSamplesInternal(buffer.bufferList(), sampleCount, timeStamp, hostTime, mode))
    359         return false;
    360 
    361     buffer.setTimes(timeStamp, hostTime);
    362     buffer.setSampleCount(sampleCount);
    363 
    364     return true;
    365 }
    366 
    367350#if !RELEASE_LOG_DISABLED
    368351void AudioSampleDataSource::setLogger(Ref<const Logger>&& logger, const void* logIdentifier)
  • trunk/Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp

    r283805 r284862  
    367367    bool firstSource = true;
    368368    for (auto& source : m_activeSources) {
    369         source->pullSamples(*m_speakerSampleBuffer.get(), inNumberFrames, adjustedHostTime, sampleTime, firstSource ? AudioSampleDataSource::Copy : AudioSampleDataSource::Mix);
     369        source->pullSamples(bufferList, inNumberFrames, adjustedHostTime, sampleTime, firstSource ? AudioSampleDataSource::Copy : AudioSampleDataSource::Mix);
    370370        firstSource = false;
    371371    }
  • trunk/Source/WebKit/ChangeLog

    r284858 r284862  
     12021-10-26  Youenn Fablet  <youenn@apple.com>
     2
     3        Only one AudioSampleDataSource::pullSamples is needed
     4        https://bugs.webkit.org/show_bug.cgi?id=232145
     5
     6        Reviewed by Eric Carlson.
     7
     8        * WebProcess/GPU/webrtc/AudioMediaStreamTrackRendererInternalUnitManager.cpp:
     9
    1102021-10-26  Adrian Perez de Castro  <aperez@igalia.com>
    211
  • trunk/Source/WebKit/WebProcess/GPU/webrtc/AudioMediaStreamTrackRendererInternalUnitManager.cpp

    r284674 r284862  
    3535#include <WebCore/AudioMediaStreamTrackRendererInternalUnit.h>
    3636#include <WebCore/AudioMediaStreamTrackRendererUnit.h>
     37#include <WebCore/AudioSampleBufferList.h>
    3738#include <WebCore/CAAudioStreamDescription.h>
    3839#include <WebCore/CARingBuffer.h>
Note: See TracChangeset for help on using the changeset viewer.