diff --git a/Daemons/vmpserverd/config.plist.in b/Daemons/vmpserverd/config.plist.in index 8753392..c1930a1 100644 --- a/Daemons/vmpserverd/config.plist.in +++ b/Daemons/vmpserverd/config.plist.in @@ -171,6 +171,7 @@ - The type specifies the type of the channel. - The properties are specific to the channel type: - "v4l2": device (required) + - "decklink": deviceNumber (required), connection (required) - "pulse": device (required) - "videoTest": width (required), height (required) - "audioTest": channels (required) diff --git a/Daemons/vmpserverd/profiles/com.hugomelder.software.plist b/Daemons/vmpserverd/profiles/com.hugomelder.software.plist index 1af9038..6d9f483 100644 --- a/Daemons/vmpserverd/profiles/com.hugomelder.software.plist +++ b/Daemons/vmpserverd/profiles/com.hugomelder.software.plist @@ -66,7 +66,7 @@ v4l2 v4l2src device={V4L2DEV} ! videoconvertscale add-borders=1 ! video/x-raw, width=1920, height=1080 ! queue ! intervideosink channel={VIDEOCHANNEL.0} decklink - decklinksrc device-number={DEV} ! videoconvert ! videoscale ! videorate ! video/x-raw, width=1920, height=1080 ! intervideosink channel={VIDEOCHANNEL.0} + decklinkvideosrc device-number={DEV} connection={CON} ! videoconvert ! videoscale ! videorate ! video/x-raw, width=1920, height=1080 ! intervideosink channel={VIDEOCHANNEL.0} videoTest videotestsrc is-live=1 ! video/x-raw,width={WIDTH},height={HEIGHT},format=NV12 ! intervideosink channel={VIDEOCHANNEL.0} diff --git a/Daemons/vmpserverd/profiles/com.hugomelder.vaapi.plist b/Daemons/vmpserverd/profiles/com.hugomelder.vaapi.plist index 527daef..72f8a0a 100644 --- a/Daemons/vmpserverd/profiles/com.hugomelder.vaapi.plist +++ b/Daemons/vmpserverd/profiles/com.hugomelder.vaapi.plist @@ -98,7 +98,7 @@ --> v4l2src device={V4L2DEV} ! videoconvertscale add-borders=1 ! video/x-raw, width=1920, height=1080 ! intervideosink channel={VIDEOCHANNEL.0} decklink - decklinksrc device-number={DEV} ! videoconvert ! videoscale ! videorate ! video/x-raw, width=1920, height=1080 ! intervideosink channel={VIDEOCHANNEL.0} + decklinkvideosrc device-number={DEV} connection={CON} ! videoconvert ! videoscale ! videorate ! video/x-raw, width=1920, height=1080 ! intervideosink channel={VIDEOCHANNEL.0} videoTest videotestsrc is-live=1 ! video/x-raw,width={WIDTH},height={HEIGHT},format=NV12 ! intervideosink channel={VIDEOCHANNEL.0} diff --git a/Daemons/vmpserverd/src/VMPRTSPServer.m b/Daemons/vmpserverd/src/VMPRTSPServer.m index 7918548..49ec96c 100644 --- a/Daemons/vmpserverd/src/VMPRTSPServer.m +++ b/Daemons/vmpserverd/src/VMPRTSPServer.m @@ -367,12 +367,14 @@ - (BOOL)_startChannelPipelinesWithError:(NSError **)error { CONFIG_ERROR(error, @"decklink channel is missing 'deviceNumber' property") return NO; } + NSString *connection = properties[@"connection"]; + if (!connection) { + CONFIG_ERROR(error, @"decklink channel is missing 'connection' property"); + return NO; + } // Substitution dictionary for pipeline template - vars = @{ - @"VIDEOCHANNEL.0" : name, - @"DEV" : [device stringValue], - }; + vars = @{@"VIDEOCHANNEL.0" : name, @"DEV" : [device stringValue], @"CON" : connection}; } // Skip pipeline creation if type is unknown