56#ifndef OPENSHOT_DECKLINK_OUTPUT_H
57#define OPENSHOT_DECKLINK_OUTPUT_H
67#include "DeckLinkAPI.h"
118 virtual HRESULT STDMETHODCALLTYPE
QueryInterface (REFIID iid, LPVOID *ppv) {
return E_NOINTERFACE;}
119 virtual ULONG STDMETHODCALLTYPE
AddRef () {
return 1;}
120 virtual ULONG STDMETHODCALLTYPE
Release () {
return 1;}
122 virtual HRESULT STDMETHODCALLTYPE
ScheduledFrameCompleted (IDeckLinkVideoFrame* completedFrame, BMDOutputFrameCompletionResult result);
131 void WriteFrame(std::shared_ptr<openshot::Frame> frame);
135 pthread_mutex_t m_mutex;
Header file for CacheMemory class.
Header file for Frame class.
Header file for OpenMPUtilities (set some common macros)
Implementation of the Blackmagic Decklink API (used by the DecklinkWriter)
virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv)
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
unsigned long m_audioBufferOffset
BMDAudioSampleRate m_audioSampleRate
void ScheduleNextFrame(bool prerolling)
Schedule the next frame.
DeckLinkOutputDelegate(IDeckLinkDisplayMode *displayMode, IDeckLinkOutput *deckLinkOutput)
virtual HRESULT STDMETHODCALLTYPE ScheduledPlaybackHasStopped()
unsigned long audioSamplesPerFrame
virtual ULONG STDMETHODCALLTYPE AddRef()
BMDTimeValue frameRateScale
virtual ULONG STDMETHODCALLTYPE Release()
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