2.4.13 Synchronized Capture/Playback¶
Multiple DeckLink devices or sub-devices can be grouped to synchronously start and stop capture or playback.
2.4.13.1 Synchronized Capture¶
All sources providing the signal to the capture devices must have their clocks synchronized. This can be achieved by providing the sources with a common reference input. However it is not required that the reference input is proved to the DeckLink capture devices. All sources should be configured with the same frame rate.
An application performing synchronized capture should perform the following steps:
For each device to synchronize for capture:
Call
IDeckLinkProfileAttributes::GetFlag()
with theBMDDeckLinkSupportsSynchronizeToCaptureGroup
flag to check that the DeckLink hardware supports grouping for synchronized capture.Call
IDeckLinkConfiguration::SetInt()
with thebmdDeckLinkConfigCaptureGroup
configuration ID, along with a common integer value for the capture group. This setting is persistent until system reboot.Obtain an
IDeckLinkInput
interface object by callingIUnknown::QueryInterface()
on theIDeckLink
object with IID_IDeckLinkInput.Enable each input in the capture group by calling
IDeckLinkInput::EnableVideoInput()
, with thebmdVideoInputSynchronizeToCaptureGroup
flag.Call
IDeckLinkStatus::GetFlag()
with thebmdDeckLinkStatusVideoInputSignalLocked
status ID to ensure that the input is locked.To start the synchronized capture call
IDeckLinkInput::StartStreams()
on any input device in the group.To stop synchronized capture, call
IDeckLinkInput::StopStreams()
on any input device in the group.
2.4.13.2 Synchronized Playback¶
Each output device in the synchronized playback group requires a common reference. The exception is the DeckLink 8K Pro, where all sub-devices can synchronize to each other without needing a common reference input. All output devices should be configured with the same frame rate.
An application performing synchronized playback should perform the following steps
For each device to synchronize for playback:
Call
IDeckLinkProfileAttributes::GetFlag()
with theBMDDeckLinkSupportsSynchronizeToPlaybackGroup
flag to check that the DeckLink hardware supports grouping for synchronized playback.Call
IDeckLinkConfiguration::SetInt()
with thebmdDeckLinkConfigPlaybackGroup
configuration ID, along with a common integer value for the playback group. This setting is persistent until system reboot.Obtain an
IDeckLinkOutput
interface object by callingIUnknown::QueryInterface()
on theIDeckLink
object with IID_IDeckLinkOutput.IDeckLinkOutput::DoesSupportVideoMode()
to check if the combination of the video mode and pixel format is supported.Enable each output in the playback group by calling
IDeckLinkOutput::EnableVideoOutput()
, with thebmdVideoOutputSynchronizeToPlaybackGroup
flag.If a common reference is required, for each output in the playback group, call
IDeckLinkStatus::GetFlag()
with thebmdDeckLinkStatusReferenceSignalLocked
status ID to ensure that the output is locked to the reference input.To start the synchronized playback call
IDeckLinkOutput::StartScheduledPlayback()
on any output in the group.To stop synchronized playback, call
IDeckLinkOutput::StopScheduledPlayback()
on any output in the group.