#pragma once #include "VideoIOConfig.h" #include #include #include #include class VideoIODevice; struct VideoIOBackendDescriptor { VideoIOBackendId backendId = VideoIOBackendId::DeckLink; const char* backendName = "decklink"; const char* displayName = "Blackmagic DeckLink"; const char* unavailableMessage = ""; const char* unavailableTitle = "Video I/O initialization failed"; }; using VideoIODeviceFactory = std::function()>; const VideoIOBackendDescriptor* GetVideoIOBackendDescriptor(VideoIOBackendId backendId); std::vector ListVideoIOBackendDescriptors(); std::unique_ptr CreateVideoIODevice(VideoIOBackendId backendId, std::string& error); bool IsVideoIOBackendUnavailableError(VideoIOBackendId backendId, const std::string& error);