Loading...
Searching...
No Matches
DMACaptureInputNode.hpp File Reference

Shared base for professional capture-card INPUT nodes. More...

Detailed Description

Shared base for professional capture-card INPUT nodes.

Capture cards (AJA, Blackmagic DeckLink, Bluefish444, Deltacast, and Magewell on its host-staged path) all deliver frames the same way: a vendor capture thread DMAs each frame into a VideoCaptureStrategy's slot, then publishes the slot via a lock-free VideoCaptureSlotRing; the render thread samples the strategy's texture through a GPUVideoDecoder. This is fundamentally different from the camera/NDI path (CPU AVFrame upload, served by VideoNodeRenderer) and the Spout/Syphon path (a shared GPU texture handle) — so it gets its own base rather than overloading those.

DMACaptureRenderer owns all the generic machinery (mesh/UBO setup, decoder init, strategy init with CPU-staging fallback, the zero-copy texture swap, defaultPassesInit, the per-frame slot poll + acquire/release bracket, and teardown). The vendor supplies a DMACaptureBackend: open the device, report geometry + colour metadata, build the decoder for its wire format, pick the GPU-direct strategy (+ a CPU fallback), and run the capture thread that feeds the slot ring.

This is the input-side counterpart to the output-side seams (CpuStagedVideoOutput / VideoOutputStrategy / PacedFramePump). A vendor input addon shrinks to: implement DMACaptureBackend, subclass DMACaptureInputNode, return the backend from makeCaptureBackend.

Go to the source code of this file.

Classes

struct  score::gfx::DMACaptureBackend
 Vendor seam for a DMA capture card's input path. More...
 
struct  score::gfx::DMACaptureBackend::SyncMembership
 
struct  score::gfx::DMACaptureInputNode
 ProcessNode base for DMA capture-card inputs. One Image output port; its renderer is the generic DMACaptureRenderer. More...
 

Namespaces

namespace  score
 Base toolkit upon which the software is built.
 
namespace  score::gfx
 Graphics rendering pipeline for ossia score.