Files
Johanness d02223224f feat: add DeckLink input and output nodes
decklink-in:
- IDeckLinkInputCallback::VideoInputFrameArrived captures V210 frames
- Frame data stored with mutex, copied to MXL grain in process thread
- Uses mxlSleepUntil for TAI-time-based grain pacing
- Configurable: device_index (int), mode (1080i50/1080p50/etc)
- Auto-detect input format via bmdVideoInputEnableFormatDetection
- 1 output port: video_out (V210)

decklink-out:
- Reads V210 grains from MXL, schedules playback via DeckLink output
- Creates IDeckLinkMutableVideoFrame, copies grain data, schedules
- Uses ScheduledFrameCompleted callback for frame completion
- Configurable: device_index (int), mode (1080i50/1080p50/etc)
- 1 input port: video_in (V210)

Both nodes:
- Use DeckLinkAPIDispatch.cpp for CreateDeckLinkIteratorInstance
- Access pixel data via IDeckLinkVideoBuffer (latest SDK API)
- Graceful device open/close on writer/reader add/remove
- Build conditionally via DMF_BUILD_DECKLINK + DECKLINK_SDK_DIR
2026-05-28 22:23:00 +03:00

22 lines
524 B
CMake

cmake_minimum_required(VERSION 3.24)
project(dmf-node-decklink-out LANGUAGES CXX)
set(DECKLINK_INCLUDE "${DECKLINK_SDK_DIR}/Linux/include")
add_executable(dmf-node-decklink-out
src/main.cpp
src/decklink_out_node.cpp
"${DECKLINK_SDK_DIR}/Linux/include/DeckLinkAPIDispatch.cpp"
)
target_include_directories(dmf-node-decklink-out PRIVATE
"${DECKLINK_INCLUDE}"
)
target_link_libraries(dmf-node-decklink-out PRIVATE
dmf-node
)
target_compile_options(dmf-node-decklink-out PRIVATE -Wno-unused-parameter)