56 #include "../include/DecklinkOutput.h"
61 : m_refCount(0), displayMode(displayMode), width(0), height(0)
86 pthread_mutex_init(&m_mutex, NULL);
91 cout <<
"DESTRUCTOR!!!" << endl;
92 pthread_mutex_destroy(&m_mutex);
152 #pragma omp critical (blackmagic_output_queue)
174 cout <<
"failed to create video frame" << endl;
179 void *frameBytesDest;
181 memcpy(frameBytesDest, castBytes,
width *
height * 4);
204 #pragma omp critical (blackmagic_output_queue)
214 omp_set_nested(
true);
232 #pragma omp task firstprivate(frame, copy_frameCount)
236 void *audioFrameBytes;
238 width = frame->GetWidth();
239 height = frame->GetHeight();
242 int numBytes = frame->GetHeight() * frame->GetWidth() * 4;
243 uint8_t *castBytes =
new uint8_t[numBytes];
262 #pragma omp critical (blackmagic_output_queue)
281 #pragma omp critical (blackmagic_output_queue)
295 cout <<
"Prerolling!" << endl;
300 cout <<
"Starting scheduled playback!" << endl;
308 #pragma omp critical (blackmagic_output_queue)
#define OPEN_MP_NUM_PROCESSORS
unsigned long m_audioBufferSampleLength
void WriteFrame(std::shared_ptr< openshot::Frame > frame)
Custom method to write new frames.
unsigned long m_totalFramesScheduled
virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted(IDeckLinkVideoFrame *completedFrame, BMDOutputFrameCompletionResult result)
IDeckLinkMutableVideoFrame * m_currentFrame
IDeckLinkDisplayMode * displayMode
virtual HRESULT STDMETHODCALLTYPE RenderAudioSamples(bool preroll)
IDeckLinkOutput * deckLinkOutput
std::deque< uint8_t * > final_frames
unsigned long m_audioSampleDepth
BMDAudioSampleRate m_audioSampleRate
void ScheduleNextFrame(bool prerolling)
Schedule the next frame.
DeckLinkOutputDelegate(IDeckLinkDisplayMode *displayMode, IDeckLinkOutput *deckLinkOutput)
virtual HRESULT STDMETHODCALLTYPE ScheduledPlaybackHasStopped()
unsigned long audioSamplesPerFrame
BMDTimeValue frameRateScale
std::deque< std::shared_ptr< openshot::Frame > > raw_video_frames
std::map< int, uint8_t * > temp_cache
unsigned long m_audioChannelCount
unsigned long m_framesPerSecond
OutputSignal m_outputSignal
~DeckLinkOutputDelegate()
BMDTimeValue frameRateDuration