decklink separation
Some checks failed
CI / Native Windows Build And Tests (push) Has been cancelled
CI / React UI Build (push) Has been cancelled
CI / Windows Release Package (push) Has been cancelled

This commit is contained in:
2026-05-06 10:31:21 +10:00
parent 8ec87685b8
commit 6918306336
7 changed files with 319 additions and 298 deletions

View File

@@ -0,0 +1,44 @@
#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;
};