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) std::deque< uint8_t *> final_frames
virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted(IDeckLinkVideoFrame *completedFrame, BMDOutputFrameCompletionResult result)
std::deque< std::shared_ptr< openshot::Frame > > raw_video_frames
Header file for DecklinkOutput class.
DeckLinkOutputDelegate(IDeckLinkDisplayMode *displayMode, IDeckLinkOutput *deckLinkOutput)
#define OPEN_MP_NUM_PROCESSORS
BMDTimeValue frameRateScale
unsigned long m_audioSampleDepth
IDeckLinkMutableVideoFrame * m_currentFrame
std::map< int, uint8_t *> temp_cache
void WriteFrame(std::shared_ptr< openshot::Frame > frame)
Custom method to write new frames.
unsigned long m_totalFramesScheduled
OutputSignal m_outputSignal
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()
unsigned long m_audioBufferSampleLength
void ScheduleNextFrame(bool prerolling)
Schedule the next frame.
unsigned long m_framesPerSecond