45 lines
1.3 KiB
C++
45 lines
1.3 KiB
C++
#pragma once
|
|
|
|
#include "DeckLinkAPI_h.h"
|
|
#include "DeckLinkFrameTransfer.h"
|
|
|
|
#include <deque>
|
|
#include <string>
|
|
|
|
class OpenGLComposite;
|
|
|
|
class DeckLinkSession
|
|
{
|
|
public:
|
|
DeckLinkSession() = default;
|
|
~DeckLinkSession();
|
|
|
|
void ReleaseResources();
|
|
bool Start(unsigned outputFrameHeight);
|
|
bool Stop();
|
|
|
|
CaptureDelegate* captureDelegate = nullptr;
|
|
PlayoutDelegate* playoutDelegate = nullptr;
|
|
IDeckLinkInput* input = nullptr;
|
|
IDeckLinkOutput* output = nullptr;
|
|
IDeckLinkKeyer* keyer = nullptr;
|
|
std::deque<IDeckLinkMutableVideoFrame*> outputVideoFrameQueue;
|
|
PinnedMemoryAllocator* playoutAllocator = nullptr;
|
|
BMDTimeValue frameDuration = 0;
|
|
BMDTimeScale frameTimescale = 0;
|
|
unsigned totalPlayoutFrames = 0;
|
|
unsigned inputFrameWidth = 0;
|
|
unsigned inputFrameHeight = 0;
|
|
unsigned outputFrameWidth = 0;
|
|
unsigned outputFrameHeight = 0;
|
|
std::string inputDisplayModeName = "1080p59.94";
|
|
std::string outputDisplayModeName = "1080p59.94";
|
|
bool hasNoInputSource = true;
|
|
std::string outputModelName;
|
|
bool supportsInternalKeying = false;
|
|
bool supportsExternalKeying = false;
|
|
bool keyerInterfaceAvailable = false;
|
|
bool externalKeyingActive = false;
|
|
std::string statusMessage;
|
|
};
|