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. | |