summaryrefslogtreecommitdiff
path: root/Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.h')
-rw-r--r--Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.h42
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