This documentation is automatically generated from the openFrameworks source code using doxygen and refers to the most recent release, version 0.12.0.
ofMediaFoundationSoundPlayer.h
Go to the documentation of this file.
84class ofMediaFoundationSoundPlayer : public ofBaseSoundPlayer, public of::MFSourceReaderNotifyCallback {
202 // https://github.com/walbourn/directx-sdk-samples/blob/main/XAudio2/XAudio2MFStream/XAudio2MFStream.cpp
250 STDMETHOD(OnReadSample)(_In_ HRESULT hrStatus, _In_ DWORD dwStreamIndex, _In_ DWORD dwStreamFlags, _In_ LONGLONG llTimestamp, _In_opt_ IMFSample* pSample) override {
Definition ofSoundBaseTypes.h:161
Definition ofEvents.h:119
Definition ofMediaFoundationSoundPlayer.h:232
STDMETHOD_(ULONG, Release)() override
Definition ofMediaFoundationSoundPlayer.h:248
STDMETHOD() OnFlush(_In_ DWORD) override
Definition ofMediaFoundationSoundPlayer.h:259
virtual ~SourceReaderCallback()
Definition ofMediaFoundationSoundPlayer.h:268
SourceReaderCallback()
Definition ofMediaFoundationSoundPlayer.h:267
STDMETHOD() QueryInterface(REFIID iid, _COM_Outptr_ void **ppv) override
Definition ofMediaFoundationSoundPlayer.h:234
of::MFSourceReaderNotifyCallback * mCB
Definition ofMediaFoundationSoundPlayer.h:266
STDMETHOD_(ULONG, AddRef)() override
Definition ofMediaFoundationSoundPlayer.h:247
void setCB(of::MFSourceReaderNotifyCallback *acb)
Definition ofMediaFoundationSoundPlayer.h:262
HRESULT status
Definition ofMediaFoundationSoundPlayer.h:265
STDMETHOD() OnReadSample(_In_ HRESULT hrStatus, _In_ DWORD dwStreamIndex, _In_ DWORD dwStreamFlags, _In_ LONGLONG llTimestamp, _In_opt_ IMFSample *pSample) override
Definition ofMediaFoundationSoundPlayer.h:250
STDMETHOD() OnEvent(_In_ DWORD, _In_ IMFMediaEvent *) override
Definition ofMediaFoundationSoundPlayer.h:260
Definition ofMediaFoundationSoundPlayer.h:84
std::vector< BYTE > mBuffer
Definition ofMediaFoundationSoundPlayer.h:165
Microsoft::WRL::ComPtr< IMFSourceReader > mSrcReader
Definition ofMediaFoundationSoundPlayer.h:168
float getPan() const override
Definition ofMediaFoundationSoundPlayer.cpp:808
bool mBIsPlaying
Definition ofMediaFoundationSoundPlayer.h:177
bool _readToBuffer(IMFSourceReader *areader)
Definition ofMediaFoundationSoundPlayer.cpp:1003
void setSpeed(float spd) override
Definition ofMediaFoundationSoundPlayer.cpp:679
bool mBRequestNewReaderSample
Definition ofMediaFoundationSoundPlayer.h:275
void OnSourceReaderEvent(HRESULT hrStatus, DWORD dwStreamIndex, DWORD dwStreamFlags, LONGLONG llTimestamp, IMFSample *pSample) override
Definition ofMediaFoundationSoundPlayer.cpp:823
size_t mBufferIndex
Definition ofMediaFoundationSoundPlayer.h:193
bool mBEndOfStream
Definition ofMediaFoundationSoundPlayer.h:228
std::shared_ptr< StreamingVoiceContext > mVoiceContext
Definition ofMediaFoundationSoundPlayer.h:227
uint32_t getDurationMS()
Definition ofMediaFoundationSoundPlayer.h:116
bool load(const of::filesystem::path &fileName, bool stream=false) override
Definition ofMediaFoundationSoundPlayer.cpp:189
void _clearExtraVoices()
Definition ofMediaFoundationSoundPlayer.cpp:933
uint64_t mTotalNumFrames
Definition ofMediaFoundationSoundPlayer.h:192
unsigned int MAX_BUFFER_COUNT
Definition ofMediaFoundationSoundPlayer.h:197
void play() override
Definition ofMediaFoundationSoundPlayer.cpp:527
unsigned short mNumChannels
Definition ofMediaFoundationSoundPlayer.h:163
void unload() override
Definition ofMediaFoundationSoundPlayer.cpp:382
std::mutex mSrcReaderMutex
Definition ofMediaFoundationSoundPlayer.h:274
void setPan(float apan) override
Definition ofMediaFoundationSoundPlayer.cpp:662
float getPosition() const override
Definition ofMediaFoundationSoundPlayer.cpp:788
void setVolume(float vol) override
Definition ofMediaFoundationSoundPlayer.cpp:648
bool mBAddedUpdateEvent
Definition ofMediaFoundationSoundPlayer.h:123
bool mBStreaming
Definition ofMediaFoundationSoundPlayer.h:162
static void sCloseAudioSystems()
Definition ofMediaFoundationSoundPlayer.cpp:166
ofMediaFoundationSoundPlayer()
Definition ofMediaFoundationSoundPlayer.cpp:178
CRITICAL_SECTION m_critSec
Definition ofMediaFoundationSoundPlayer.h:230
int currentStreamBuffer
Definition ofMediaFoundationSoundPlayer.h:199
void setPositionMS(int ms) override
Definition ofMediaFoundationSoundPlayer.cpp:783
static bool sInitXAudio2()
Definition ofMediaFoundationSoundPlayer.cpp:111
float getSpeed() const override
Definition ofMediaFoundationSoundPlayer.cpp:803
static Microsoft::WRL::ComPtr< IXAudio2 > sXAudio2
Definition ofMediaFoundationSoundPlayer.h:169
~ofMediaFoundationSoundPlayer()
Definition ofMediaFoundationSoundPlayer.cpp:182
int getPositionMS() const override
Definition ofMediaFoundationSoundPlayer.cpp:793
std::vector< std::vector< BYTE > > mStreamBuffers
Definition ofMediaFoundationSoundPlayer.h:198
double mDurationSeconds
Definition ofMediaFoundationSoundPlayer.h:186
uint32_t mDurationMS
Definition ofMediaFoundationSoundPlayer.h:187
void _setPan(IXAudio2SourceVoice *avoice, float apan)
Definition ofMediaFoundationSoundPlayer.cpp:945
unsigned long mSampleRate
Definition ofMediaFoundationSoundPlayer.h:164
std::list< std::pair< unsigned int, IXAudio2SourceVoice * > > mExtraVoices
Definition ofMediaFoundationSoundPlayer.h:174
WAVEFORMATEX mWaveFormatEx
Definition ofMediaFoundationSoundPlayer.h:166
static bool sCloseXAudio2()
Definition ofMediaFoundationSoundPlayer.cpp:137
static bool sInitAudioSystems()
Definition ofMediaFoundationSoundPlayer.cpp:156
static std::shared_ptr< IXAudio2MasteringVoice > sXAudioMasteringVoice
Definition ofMediaFoundationSoundPlayer.h:170
void setLoop(bool bLp) override
Definition ofMediaFoundationSoundPlayer.cpp:712
float getDurationSeconds()
Definition ofMediaFoundationSoundPlayer.h:115
void setMultiPlay(bool bMp) override
Definition ofMediaFoundationSoundPlayer.cpp:721
static int sNumInstances
Definition ofMediaFoundationSoundPlayer.h:154
float getVolume() const override
Definition ofMediaFoundationSoundPlayer.cpp:818
void setPosition(float pct) override
Definition ofMediaFoundationSoundPlayer.cpp:734
void addUpdateListener()
Definition ofMediaFoundationSoundPlayer.cpp:917
void setPaused(bool bP) override
Definition ofMediaFoundationSoundPlayer.cpp:687
bool isLoaded() const override
Definition ofMediaFoundationSoundPlayer.cpp:813
void update(ofEventArgs &args)
Definition ofMediaFoundationSoundPlayer.cpp:438
bool mBMultiPlay
Definition ofMediaFoundationSoundPlayer.h:182
uint64_t mNumSamplesAlreadyPlayed
Definition ofMediaFoundationSoundPlayer.h:194
uint64_t mNumSamplesStored
Definition ofMediaFoundationSoundPlayer.h:195
void removeUpdateListener()
Definition ofMediaFoundationSoundPlayer.cpp:925
unsigned char mBytesPerSample
Definition ofMediaFoundationSoundPlayer.h:191
std::unique_ptr< IXAudio2SourceVoice, MyVoiceDeleterFunctor > UniqueVoice
Definition ofMediaFoundationSoundPlayer.h:148
std::shared_ptr< SourceReaderCallback > mSrcReaderCallback
Definition ofMediaFoundationSoundPlayer.h:273
bool isPlaying() const override
Definition ofMediaFoundationSoundPlayer.cpp:798
void stop() override
Definition ofMediaFoundationSoundPlayer.cpp:624
static void SetMasterVolume(float apct)
Definition ofMediaFoundationSoundPlayer.cpp:102
Definition ofMediaFoundationSoundPlayer.h:30
ULONG m_refCount
Definition ofMediaFoundationSoundPlayer.h:74
ULONG STDMETHODCALLTYPE AddRef()
Definition ofMediaFoundationSoundPlayer.h:59
virtual ~AsyncCallback()=default
IFACEMETHODIMP GetParameters(_Out_ DWORD *flags, _Out_ DWORD *queue)
Definition ofMediaFoundationSoundPlayer.h:37
ULONG STDMETHODCALLTYPE Release()
Definition ofMediaFoundationSoundPlayer.h:64
std::function< void()> mCallBack
Definition ofMediaFoundationSoundPlayer.h:73
AsyncCallback(std::function< void()> aCallBack)
Definition ofMediaFoundationSoundPlayer.h:32
STDMETHODIMP Invoke(IMFAsyncResult *pResult)
Definition ofMediaFoundationSoundPlayer.h:43
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, LPVOID *ppvObj)
Definition ofMediaFoundationSoundPlayer.h:48
Definition ofMediaFoundationSoundPlayer.h:24
static int sNumMFInstances
Definition ofMediaFoundationSoundPlayer.h:81
static bool CloseMediaFoundation()
Definition ofMediaFoundationSoundPlayer.cpp:51
static int GetNumInstances()
Definition ofMediaFoundationSoundPlayer.cpp:67
static bool InitMediaFoundation()
Definition ofMediaFoundationSoundPlayer.cpp:35
static void CallAsyncBlocking(std::function< void()> aCallBack)
Definition ofMediaFoundationSoundPlayer.cpp:72
Definition ofEvents.cpp:625
Definition ofMediaFoundationSoundPlayer.h:17
virtual void OnSourceReaderEvent(HRESULT hrStatus, DWORD dwStreamIndex, DWORD dwStreamFlags, LONGLONG llTimestamp, IMFSample *pSample)=0
Definition ofMediaFoundationSoundPlayer.h:128
void operator()(T *p)
Definition ofMediaFoundationSoundPlayer.h:130
Definition ofMediaFoundationSoundPlayer.h:137
void operator()(IXAudio2SourceVoice *p)
Definition ofMediaFoundationSoundPlayer.h:138
Definition ofMediaFoundationSoundPlayer.h:203
STDMETHOD_(void, OnLoopEnd)(void *) override
Definition ofMediaFoundationSoundPlayer.h:211
STDMETHOD_(void, OnStreamEnd)() override
Definition ofMediaFoundationSoundPlayer.h:206
StreamingVoiceContext()
Definition ofMediaFoundationSoundPlayer.h:214
STDMETHOD_(void, OnBufferEnd)(void *) override
Definition ofMediaFoundationSoundPlayer.h:208
STDMETHOD_(void, OnBufferStart)(void *) override
Definition ofMediaFoundationSoundPlayer.h:207
virtual ~StreamingVoiceContext()
Definition ofMediaFoundationSoundPlayer.h:221
STDMETHOD_(void, OnVoiceProcessingPassEnd)() override
Definition ofMediaFoundationSoundPlayer.h:205
STDMETHOD_(void, OnVoiceProcessingPassStart)(UINT32) override
Definition ofMediaFoundationSoundPlayer.h:204