53 #ifndef OPENSHOT_DECKLINK_OUTPUT_H 54 #define OPENSHOT_DECKLINK_OUTPUT_H 64 #include "DeckLinkAPI.h" 66 #include "../include/Frame.h" 67 #include "../include/OpenMPUtilities.h" 115 virtual HRESULT STDMETHODCALLTYPE
QueryInterface (REFIID iid, LPVOID *ppv) {
return E_NOINTERFACE;}
116 virtual ULONG STDMETHODCALLTYPE
AddRef () {
return 1;}
117 virtual ULONG STDMETHODCALLTYPE
Release () {
return 1;}
119 virtual HRESULT STDMETHODCALLTYPE
ScheduledFrameCompleted (IDeckLinkVideoFrame* completedFrame, BMDOutputFrameCompletionResult result);
128 void WriteFrame(std::shared_ptr<openshot::Frame> frame);
132 pthread_mutex_t m_mutex;
virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted(IDeckLinkVideoFrame *completedFrame, BMDOutputFrameCompletionResult result)
unsigned long m_audioBufferOffset
Implementation of the Blackmagic Decklink API (used by the DecklinkWriter)
DeckLinkOutputDelegate(IDeckLinkDisplayMode *displayMode, IDeckLinkOutput *deckLinkOutput)
IDeckLinkDisplayMode * displayMode
BMDTimeValue frameRateScale
Header file for CacheMemory class.
unsigned long m_audioSampleDepth
IDeckLinkMutableVideoFrame * m_currentFrame
deque< uint8_t *> final_frames
map< int, uint8_t *> temp_cache
virtual ULONG STDMETHODCALLTYPE AddRef()
void WriteFrame(std::shared_ptr< openshot::Frame > frame)
Custom method to write new frames.
unsigned long m_totalFramesScheduled
virtual ULONG STDMETHODCALLTYPE Release()
OutputSignal m_outputSignal
deque< std::shared_ptr< openshot::Frame > > raw_video_frames
unsigned long m_audioChannelCount
IDeckLinkOutput * deckLinkOutput
unsigned long audioSamplesPerFrame
BMDAudioSampleRate m_audioSampleRate
BMDTimeValue frameRateDuration
~DeckLinkOutputDelegate()
virtual HRESULT STDMETHODCALLTYPE RenderAudioSamples(bool preroll)
virtual HRESULT STDMETHODCALLTYPE ScheduledPlaybackHasStopped()
virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv)
unsigned long m_audioBufferSampleLength
void ScheduleNextFrame(bool prerolling)
Schedule the next frame.
unsigned long m_framesPerSecond