50 lines
1.6 KiB
C++
50 lines
1.6 KiB
C++
#pragma once
|
|
|
|
#include <windows.h>
|
|
|
|
#include <atomic>
|
|
|
|
#include "DeckLinkAPI_h.h"
|
|
|
|
class DeckLinkSession;
|
|
|
|
////////////////////////////////////////////
|
|
// Capture Delegate Class
|
|
////////////////////////////////////////////
|
|
class CaptureDelegate : public IDeckLinkInputCallback
|
|
{
|
|
DeckLinkSession* m_pOwner;
|
|
LONG mRefCount;
|
|
|
|
public:
|
|
CaptureDelegate(DeckLinkSession* pOwner);
|
|
|
|
// IUnknown needs only a dummy implementation
|
|
virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID* ppv);
|
|
virtual ULONG STDMETHODCALLTYPE AddRef();
|
|
virtual ULONG STDMETHODCALLTYPE Release();
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived(IDeckLinkVideoInputFrame* videoFrame, IDeckLinkAudioInputPacket* audioPacket);
|
|
virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged(BMDVideoInputFormatChangedEvents notificationEvents, IDeckLinkDisplayMode* newDisplayMode, BMDDetectedVideoInputFormatFlags detectedSignalFlags);
|
|
};
|
|
|
|
////////////////////////////////////////////
|
|
// Render Delegate Class
|
|
////////////////////////////////////////////
|
|
class PlayoutDelegate : public IDeckLinkVideoOutputCallback
|
|
{
|
|
DeckLinkSession* m_pOwner;
|
|
LONG mRefCount;
|
|
|
|
public:
|
|
PlayoutDelegate(DeckLinkSession* pOwner);
|
|
|
|
// IUnknown needs only a dummy implementation
|
|
virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID* ppv);
|
|
virtual ULONG STDMETHODCALLTYPE AddRef();
|
|
virtual ULONG STDMETHODCALLTYPE Release();
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted(IDeckLinkVideoFrame* completedFrame, BMDOutputFrameCompletionResult result);
|
|
virtual HRESULT STDMETHODCALLTYPE ScheduledPlaybackHasStopped();
|
|
};
|