2.4.15 SMPTE 2110 IP Flows¶
SMPTE 2110 is supported by DeckLink IP cards, such as the DeckLink IP/SDI HD. The DeckLink SDK provides interfaces and methods for configuring and activating the 2110 IP Flows. For an example of configuring the sender and receiver IP flows, please refer to the DeckLinkIPExample sample in the DeckLink SDK.
Note
The same functionality can be achieved with an off-the-shelf NMOS controller connected to a network visible to the DeckLink IP card.
2.4.15.1 IP Sender¶
An application can read the SDP content for the sender video, audio and ancillary flows. Prior to performing these steps, the application should first enable playback with the IDeckLinkOutput
interface to ensure that the SDPs accurately represent the output.
Obtain an
IDeckLinkIPExtensions
interface object for the DeckLink IP sender by callingIUnknown::QueryInterface()
on theIDeckLink
object with IID_IDeckLinkIPExtensions.Obtain an
IDeckLinkIPFlowIterator
by callingIDeckLinkIPExtensions::GetDeckLinkIPFlowIterator()
and enumerate the supported IP flows for the device by callingIDeckLinkIPFlowIterator::Next()
.
For each returned IDeckLinkIPFlow
interface object:
Obtain an
IDeckLinkIPFlowAttributes
interface object by callingIUnknown::QueryInterface()
with IID_IDeckLinkIPFlowAttributes.Call
IDeckLinkIPFlowAttributes::GetInt()
with identifierbmdDeckLinkIPFlowDirection
to obtain the IP flow’s direction. An application can filter the sender IP flows by testing for directionbmdDeckLinkIPFlowDirectionOutput
.Call
IDeckLinkIPFlowAttributes::GetInt()
with identifierbmdDeckLinkIPFlowType
to obtain the IP flow’s type.
To obtain the SDP for a specific IDeckLinkIPFlow
interface object:
Obtain an
IDeckLinkIPFlowStatus
interface object by callingIUnknown::QueryInterface()
with IID_IDeckLinkIPFlowStatus.Call
IDeckLinkIPFlowStatus::GetString()
with identifierbmdDeckLinkIPFlowSDP
.
To activate the sender IP flow:
2.4.15.2 IP Receiver¶
An application can write the SDP content to the receiver video, audio and ancillary flows. These steps should be performed prior to enabling capture with the IDeckLinkInput
interface.
Obtain an
IDeckLinkIPExtensions
interface object for the DeckLink IP receiver by callingIUnknown::QueryInterface()
on theIDeckLink
object with IID_IDeckLinkIPExtensions.Obtain an
IDeckLinkIPFlowIterator
by callingIDeckLinkIPExtensions::GetDeckLinkIPFlowIterator()
and enumerate the supported IP flows for the device by callingIDeckLinkIPFlowIterator::Next()
.
For each returned IDeckLinkIPFlow
interface object:
Obtain an
IDeckLinkIPFlowAttributes
interface object by callingIUnknown::QueryInterface()
with IID_IDeckLinkIPFlowAttributes.Call
IDeckLinkIPFlowAttributes::GetInt()
with identifierbmdDeckLinkIPFlowDirection
to obtain the IP flow’s direction. An application can filter the receiver IP flows by testing for directionbmdDeckLinkIPFlowDirectionInput
.Call
IDeckLinkIPFlowAttributes::GetInt()
with identifierbmdDeckLinkIPFlowType
to obtain the IP flow’s type.
To write the peer SDP for a specific IDeckLinkIPFlow
interface object:
Obtain an
IDeckLinkIPFlowSetting
interface object by callingIUnknown::QueryInterface()
with IID_IDeckLinkIPFlowSetting.Call
IDeckLinkIPFlowSetting::SetString()
with identifierbmdDeckLinkIPFlowPeerSDP
.
To activate the receiver IP flow: