 |
AJA NTV2 SDK
18.0.0.2717
NTV2 SDK 18.0.0.2717
|
NTV2 device FPGA firmware implements several types of Widgets for receiving, processing and transmitting video data. These can be classified as follows:
Most widgets typically have one or more registers associated with them for reporting status, or to control their operation. Rather than calling CNTV2Card::ReadRegister or CNTV2Card::WriteRegister, client applications should use the appropriate widget-related API calls in the CNTV2Card class to inquire about and/or control the widget of interest.
End-to-End (E-E) Routing
There are two demonstration applications that incorporate some E-E operation, but they’re not “pure” E-E applications — i.e., they both involve the Mixer/Keyer (see Mixer/Keyer Operation):
SD/HD YCbCr SDI End-to-End Pass-Through
This is very easy to do with AJA NTV2 devices and the SDK. Simply connect the primary (Data Stream 1) output crosspoint of the SDI Input widget to the primary (DS1) input crosspoint of the SDI Output widget.
For E-E mode to work, other steps may need to be taken:
- Devices that have bi-directional SDI connectors must be configured correctly. The designated input SDI connector must be configured to receive, not transmit (and vice-versa for the SDI output):
if (theDevice.
features().HasBiDirectionalSDI())
{
}
- E-E operation requires the device’s video format to match the input signal video format. (See Video Output Clocking & Synchronization for details, particulary “End-to-End” (“E-E”).)
- E-E operation requires the device’s output clock reference to be set to the SDI input. If this is not done, the output video will drift, and the video signal will look skewed. (See Video Output Clocking & Synchronization for details, particulary “End-to-End” (“E-E”).)
- To ensure embedded audio from the SDI input is also embedded into the SDI output signal:
- Be sure the SDI input’s audio de-embedder and the SDI output’s audio embedder are both tied to the same Audio System.
- Enable “loopback” on the Audio System. (See Audio System Operation for details.)
Routing for Capture
Please see the Capture Demos for examples of how to route for video input:
Routing for Playout
Please see the Playout Demos for examples of how to route for video output:
SD/HD YCbCr Playout From YCbCr Frame Buffer
SD/HD YCbCr Playout From RGB Frame Buffer
HD RGB Playout Over 1 × 3G Dual-Link SDI From RGB Frame Buffer
NTV2ReferenceSource NTV2InputSourceToReferenceSource(const NTV2InputSource inInputSource)
Converts a given NTV2InputSource to its equivalent NTV2ReferenceSource value.
NTV2InputXptID GetSDIOutputInputXpt(const NTV2Channel inSDIOutput, const bool inIsDS2=false)
NTV2InputSource NTV2ChannelToInputSource(const NTV2Channel inChannel, const NTV2IOKinds inKinds=NTV2_IOKINDS_SDI)
NTV2Channel GetNTV2ChannelForIndex(const ULWord inIndex0)
@ NTV2_FBF_ARGB
See 8-Bit ARGB, RGBA, ABGR Formats.
NTV2OutputXptID GetSDIInputOutputXptFromChannel(const NTV2Channel inSDIInput, const bool inIsDS2=false)
virtual bool SetVideoFormat(const NTV2VideoFormat inVideoFormat, const bool inIsAJARetail=(!(0)), const bool inKeepVancSettings=(0), const NTV2Channel inChannel=NTV2_CHANNEL1)
Configures the AJA device to handle a specific video format.
@ NTV2_XptSDIOut3InputDS2
NTV2Channel
These enum values are mostly used to identify a specific widget_framestore. They're also commonly use...
@ NTV2_EMBEDDED_AUDIO_INPUT_VIDEO_1
@ NTV2_XptFrameBuffer3YUV
@ NTV2_AUDIOSYSTEM_1
This identifies the first Audio System.
std::pair< NTV2InputXptID, NTV2OutputXptID > NTV2XptConnection
NTV2FrameBufferFormat
Identifies a particular video frame buffer format. See Device Frame Buffer Formats for details.
virtual bool SetAudioLoopBack(const NTV2AudioLoopBack inMode, const NTV2AudioSystem inAudioSystem=NTV2_AUDIOSYSTEM_1)
Enables or disables NTV2AudioLoopBack mode for the given NTV2AudioSystem.
@ NTV2_CHANNEL1
Specifies channel or FrameStore 1 (or the first item).
virtual bool SetFrameBufferFormat(NTV2Channel inChannel, NTV2FrameBufferFormat inNewFormat, bool inIsAJARetail=(!(0)), NTV2HDRXferChars inXferChars=NTV2_VPID_TC_SDR_TV, NTV2HDRColorimetry inColorimetry=NTV2_VPID_Color_Rec709, NTV2HDRLuminance inLuminance=NTV2_VPID_Luminance_YCbCr)
Sets the frame buffer format for the given FrameStore on the AJA device.
virtual bool SetSDITransmitEnable(const NTV2Channel inChannel, const bool inEnable)
Sets the specified bidirectional SDI connector to act as an input or an output.
@ NTV2_XptFrameBuffer3RGB
virtual bool SetAudioSystemInputSource(const NTV2AudioSystem inAudioSystem, const NTV2AudioSource inAudioSource, const NTV2EmbeddedAudioInput inEmbeddedInput)
Sets the audio source for the given NTV2AudioSystem on the device.
virtual class DeviceCapabilities & features(void)
#define NTV2_IS_FBF_RGB(__fbf__)
virtual bool SetSDIOutputAudioSystem(const NTV2Channel inSDIOutputConnector, const NTV2AudioSystem inAudioSystem)
Sets the device's NTV2AudioSystem that will provide audio for the given SDI output's audio embedder....
virtual bool SetMode(const NTV2Channel inChannel, const NTV2Mode inNewValue, const bool inIsRetail=(!(0)))
Determines if a given FrameStore on the AJA device will be used to capture or playout video.
NTV2OutputXptID GetCSCOutputXptFromChannel(const NTV2Channel inCSC, const bool inIsKey=false, const bool inIsRGB=false)
@ NTV2_CHANNEL3
Specifies channel or FrameStore 3 (or the 3rd item).
NTV2InputXptID GetCSCInputXptFromChannel(const NTV2Channel inCSC, const bool inIsKeyInput=false)
virtual NTV2VideoFormat GetInputVideoFormat(const NTV2InputSource inVideoSource=NTV2_INPUTSOURCE_SDI1, const bool inIsProgressive=(0))
Returns the video format of the signal that is present on the given input source.
virtual bool Connect(const NTV2InputCrosspointID inInputXpt, const NTV2OutputCrosspointID inOutputXpt, const bool inValidate=(0))
Connects the given widget signal input (sink) to the given widget signal output (source).
@ NTV2_FBF_10BIT_YCBCR
See 10-Bit YCbCr Format.
@ NTV2_AUDIO_LOOPBACK_ON
Embeds SDI input source audio into the data stream.
@ NTV2_XptDualLinkOut3Input
#define GetFrameBufferOutputXptFromChannel
@ NTV2_MODE_OUTPUT
Output (playout, display) mode, which reads from device SDRAM.
@ NTV2_AUDIO_EMBEDDED
Obtain audio samples from the audio that's embedded in the video HANC.
virtual bool SetReference(const NTV2ReferenceSource inRefSource, const bool inKeepFramePulseSelect=(0))
Sets the device's clock reference source. See Video Output Clocking & Synchronization for more inform...
NTV2InputXptID GetDLOutInputXptFromChannel(const NTV2Channel inDLOutWidget)
NTV2OutputXptID GetDLOutOutputXptFromChannel(const NTV2Channel inDLOutput, const bool inIsLinkB=false)
@ NTV2_XptDuallinkOut3DS2