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
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
cmake_minimum_required(VERSION 3.24)
|
||||
|
||||
project(dmf-node-decklink-in LANGUAGES CXX)
|
||||
|
||||
set(DECKLINK_INCLUDE "${DECKLINK_SDK_DIR}/Linux/include")
|
||||
|
||||
add_executable(dmf-node-decklink-in
|
||||
src/main.cpp
|
||||
src/decklink_in_node.cpp
|
||||
"${DECKLINK_SDK_DIR}/Linux/include/DeckLinkAPIDispatch.cpp"
|
||||
)
|
||||
|
||||
target_include_directories(dmf-node-decklink-in PRIVATE
|
||||
"${DECKLINK_INCLUDE}"
|
||||
)
|
||||
|
||||
target_link_libraries(dmf-node-decklink-in PRIVATE
|
||||
dmf-node
|
||||
)
|
||||
|
||||
target_compile_options(dmf-node-decklink-in PRIVATE -Wno-unused-parameter)
|
||||
Reference in New Issue
Block a user