Files
video-shader-toys/apps/LoopThroughWithOpenGLCompositing/decklink/DeckLinkSession.h
Aiden 6918306336
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
decklink separation
2026-05-06 10:31:21 +10:00

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;
};