Decklink in #4
Reference in New Issue
Block a user
Delete Branch "decklink-in"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
DeckLinkReceiver: - Make InputCallback a private nested class — no longer exposed publicly - DeckLinkReceiver owns all shared state (mutex, CVs, frame buffer) - Replace get_input_callback() with clean wait_for_frame() API - Fix device list leak: enumerate_devices stores raw IDeckLink* in raw_devices; destructor releases all of them + selected_device's AddRef - Remove dead members: device_config, device_status, deckLink_notification - Remove dead SourceInfo::stride field; rename SourceInfo → VideoInfo - Remove dead video_source_info public member - Remove printf; use no logging in receiver (caller logs) - Remove commented-out notification code - Fix dead return false after throw in enumerate_devices - Fix dead null check after new InputCallback - Replace IDeckLinkVideoBuffer QueryInterface with simpler GetBytes() - Replace plain bool frame_ready/format_detected with consistent usage under mutex (no longer mixing atomic + CV pattern) - Call StopStreams/DisableVideoInput in destructor - Consistent snake_case naming throughout decklinkin main.cpp: - Rename NodeDeckLinkIn → DeckLinkInNode - Get device_index from config().value("device_index", 0u) - Remove unused includes: <time.h>, <algorithm>, <cstdio>, <DeckLinkAPI.h> - Use clean receiver.wait_for_frame() instead of reaching into callback - Use mxlGetCurrentIndex resync after sleep (consistent with other nodes) - Fix return node.execute() (was node.execute(); return 0) - Fix main() spacing Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>