diff options
Diffstat (limited to 'Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.h')
-rw-r--r-- | Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.h | 42 |
1 files changed, 20 insertions, 22 deletions
diff --git a/Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.h b/Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.h index 7ff95adfe..bcdcfc66f 100644 --- a/Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.h +++ b/Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.h @@ -22,8 +22,7 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef MediaStreamAudioSourceNode_h -#define MediaStreamAudioSourceNode_h +#pragma once #if ENABLE(WEB_AUDIO) && ENABLE(MEDIA_STREAM) @@ -31,50 +30,49 @@ #include "AudioSourceProvider.h" #include "AudioSourceProviderClient.h" #include "MediaStream.h" -#include <mutex> -#include <wtf/PassRefPtr.h> +#include "MultiChannelResampler.h" +#include <wtf/Lock.h> +#include <wtf/RefPtr.h> namespace WebCore { class AudioContext; +class MultiChannelResampler; class MediaStreamAudioSourceNode : public AudioNode, public AudioSourceProviderClient { public: - static PassRefPtr<MediaStreamAudioSourceNode> create(AudioContext*, MediaStream*, MediaStreamTrack*, AudioSourceProvider*); + static Ref<MediaStreamAudioSourceNode> create(AudioContext&, MediaStream&, MediaStreamTrack&); virtual ~MediaStreamAudioSourceNode(); - MediaStream* mediaStream() { return m_mediaStream.get(); } + MediaStream* mediaStream() { return &m_mediaStream.get(); } // AudioNode - virtual void process(size_t framesToProcess); - virtual void reset(); + void process(size_t framesToProcess) override; + void reset() override { } // AudioSourceProviderClient - virtual void setFormat(size_t numberOfChannels, float sampleRate); - - AudioSourceProvider* audioSourceProvider() const { return m_audioSourceProvider; } + void setFormat(size_t numberOfChannels, float sampleRate) override; private: - MediaStreamAudioSourceNode(AudioContext*, MediaStream*, MediaStreamTrack*, AudioSourceProvider*); + MediaStreamAudioSourceNode(AudioContext&, MediaStream&, MediaStreamTrack&); - virtual double tailTime() const override { return 0; } - virtual double latencyTime() const override { return 0; } + double tailTime() const override { return 0; } + double latencyTime() const override { return 0; } // As an audio source, we will never propagate silence. - virtual bool propagatesSilence() const override { return false; } + bool propagatesSilence() const override { return false; } - RefPtr<MediaStream> m_mediaStream; - RefPtr<MediaStreamTrack> m_audioTrack; - AudioSourceProvider* m_audioSourceProvider; + Ref<MediaStream> m_mediaStream; + Ref<MediaStreamTrack> m_audioTrack; + std::unique_ptr<MultiChannelResampler> m_multiChannelResampler; - std::mutex m_processMutex; + Lock m_processMutex; - unsigned m_sourceNumberOfChannels; + unsigned m_sourceNumberOfChannels { 0 }; + double m_sourceSampleRate { 0 }; }; } // namespace WebCore #endif // ENABLE(WEB_AUDIO) && ENABLE(MEDIA_STREAM) - -#endif // MediaStreamAudioSourceNode_h |