AJA NTV2 SDK  17.1.3.1410
NTV2 SDK 17.1.3.1410
Widget Signal Routing

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

This section shows how to programmatically set up a device to pass through an input signal to at least one corresponding output.

TBD


Routing for Capture

This section shows how to programmatically set up a device to receive video for several commmon scenarios.

SD/HD YCbCr

TBD

SD/HD RGB

TBD

SD/HD RGB Over-the-Wire Dual-Link

TBD


Routing for Playout

This section shows how to programmatically set up a device for transmitting video for several commmon scenarios.

SD/HD YCbCr Playout From YCbCr Frame Buffer
// Example: Set up FrameStore3 for RGB playout, route to SDI 3...
theDevice.Connect (NTV2_XptSDIOut3Input, NTV2_XptFrameBuffer3YUV); // SDIOut3 <== FB3
// Or, more generically...
theDevice.SetFrameBufferFormat (chan, fbf);
theDevice.SetMode (chan, NTV2_MODE_OUTPUT);
theDevice.Connect (::GetSDIOutputInputXpt(chan), ::GetFrameBufferOutputXptFromChannel(chan, NTV2_IS_FBF_RGB(fbf))); // SDIOut3 <== FB3
SD/HD YCbCr Playout From RGB Frame Buffer
// Example: Set up FrameStore3 for RGB playout, route to SDI 3...
theDevice.Connect (NTV2_XptCSC3VidInput, NTV2_XptFrameBuffer3RGB); // CSC3 <== FB3RGB
theDevice.Connect (NTV2_XptSDIOut3Input, NTV2_XptCSC3VidRGB); // SDIOut3 <== CSC3RGB
// Or, more generically...
theDevice.SetFrameBufferFormat (chan, fbf);
theDevice.SetMode (chan, NTV2_MODE_OUTPUT);
theDevice.Connect (::GetCSCInputXptFromChannel(chan), ::GetFrameBufferOutputXptFromChannel(chan, NTV2_IS_FBF_RGB(fbf))); // CSC3 <== FB3RGB
theDevice.Connect (::GetSDIOutputInputXpt(chan), ::GetCSCOutputXptFromChannel(chan)); // SDIOut3 <== CSC3RGB
HD RGB Playout Over 2 × 1.5G Dual-Link SDI From YCbCr Frame Buffer

TBD

HD RGB Playout Over 1 × 3G Dual-Link SDI From YCbCr Frame Buffer

TBD

HD RGB Playout Over 2 × 1.5G Dual-Link SDI From RGB Frame Buffer

TBD

HD RGB Playout Over 1 × 3G Dual-Link SDI From RGB Frame Buffer
// Example: Set up FrameStore3 for RGB playout, route to SDI 3...
theDevice.Connect (NTV2_XptDualLinkOut3Input, NTV2_XptFrameBuffer3RGB); // DLOut3 <== FB3RGB
theDevice.Connect (NTV2_XptSDIOut3Input, NTV2_XptDuallinkOut3); // SDIOut3 <== DLOut3
theDevice.Connect (NTV2_XptSDIOut3InputDS2, NTV2_XptDuallinkOut3DS2); // SDIOut3DS <== DLOut3DS
// Or, more generically...
theDevice.SetFrameBufferFormat (chan, fbf);
theDevice.SetMode (chan, NTV2_MODE_OUTPUT);
theDevice.Connect (::GetDLOutInputXptFromChannel(chan), ::GetFrameBufferOutputXptFromChannel(chan, NTV2_IS_FBF_RGB(fbf))); // DLOut3 <== FB3RGB
theDevice.Connect (::GetSDIOutputInputXpt(chan, false), ::GetDLOutOutputXptFromChannel(chan, false)); // SDIOut3 <== DLOut3
theDevice.Connect (::GetSDIOutputInputXpt(chan, true), ::GetDLOutOutputXptFromChannel(chan, true)); // SDIOut3DS <== DLOut3DS
HD HFR YCbCr Playout Over 2 × 3G SDI From YCbCr Frame Buffer

TBD

HD HFR YCbCr Playout Over 2 × 3G SDI From RGB Frame Buffer

TBD

2K×1080 YCbCr Playout Over 2 × 3G SDI From YCbCr Frame Buffer

TBD

HD HFR YCbCr Playout Over 2 × 3G SDI From RGB Frame Buffer

TBD

UHD/4K 4:2:2 YCbCr Playout Over 4 × 3G SDI (“Squares”)

TBD

UHD/4K 4:2:2 YCbCr Playout Over 4 × 3G SDI (“Two-Sample Interleave”)

TBD

UHD/4K 4:2:2 YCbCr Playout Over 2 × 6G SDI (“Two-Sample Interleave”)

TBD

UHD/4K 4:2:2 YCbCr Playout Over 1 × 12G SDI

TBD


End-to-End (E-E) Routing

This section shows how to programmatically set up a device for transmitting input video with a variety of latencies.

SD/HD YCbCr E-E (Sub-Frame Latency)

TBD

SD/HD YCbCr Frame Synchronizer (One-Frame Latency)

TBD

HD E-E Mix RGBA Graphic Over Live Video

with sub-frame latency TBD

HD HFR YCbCr E-E Over 2 × 1.5G Dual-Link SDI

TBD

HD HFR YCbCr E-E Over 1 × 3G Dual-Link SDI

TBD

E-E Over 2 × 3G SDI

TBD

E-E Over 1 × 6G SDI

TBD

GetSDIOutputInputXpt
NTV2InputXptID GetSDIOutputInputXpt(const NTV2Channel inSDIOutput, const bool inIsDS2=false)
Definition: ntv2signalrouter.cpp:942
NTV2_FBF_ARGB
@ NTV2_FBF_ARGB
See 8-Bit ARGB, RGBA, ABGR Formats.
Definition: ntv2enums.h:212
NTV2_XptSDIOut3InputDS2
@ NTV2_XptSDIOut3InputDS2
Definition: ntv2enums.h:2742
NTV2Channel
NTV2Channel
These enum values are mostly used to identify a specific widget_framestore. They're also commonly use...
Definition: ntv2enums.h:1305
NTV2_XptFrameBuffer3YUV
@ NTV2_XptFrameBuffer3YUV
Definition: ntv2enums.h:2519
NTV2FrameBufferFormat
NTV2FrameBufferFormat
Identifies a particular video frame buffer format. See Device Frame Buffer Formats for details.
Definition: ntv2enums.h:207
CNTV2Card::SetFrameBufferFormat
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.
Definition: ntv2register.cpp:1812
NTV2_XptFrameBuffer3RGB
@ NTV2_XptFrameBuffer3RGB
Definition: ntv2enums.h:2520
NTV2_XptCSC3VidRGB
@ NTV2_XptCSC3VidRGB
Definition: ntv2enums.h:2539
NTV2_IS_FBF_RGB
#define NTV2_IS_FBF_RGB(__fbf__)
Definition: ntv2enums.h:271
NTV2_XptDuallinkOut3
@ NTV2_XptDuallinkOut3
Definition: ntv2enums.h:2534
CNTV2Card::SetMode
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.
Definition: ntv2register.cpp:1607
GetCSCOutputXptFromChannel
NTV2OutputXptID GetCSCOutputXptFromChannel(const NTV2Channel inCSC, const bool inIsKey=false, const bool inIsRGB=false)
Definition: ntv2signalrouter.cpp:819
NTV2_CHANNEL3
@ NTV2_CHANNEL3
Specifies channel or Frame Store 3 (or the 3rd item).
Definition: ntv2enums.h:1309
NTV2_XptCSC3VidInput
@ NTV2_XptCSC3VidInput
Definition: ntv2enums.h:2713
GetCSCInputXptFromChannel
NTV2InputXptID GetCSCInputXptFromChannel(const NTV2Channel inCSC, const bool inIsKeyInput=false)
Definition: ntv2signalrouter.cpp:775
CNTV2Card::Connect
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).
Definition: ntv2regroute.cpp:87
NTV2_FBF_10BIT_YCBCR
@ NTV2_FBF_10BIT_YCBCR
See 10-Bit YCbCr Format.
Definition: ntv2enums.h:210
GetFrameBufferOutputXptFromChannel
NTV2OutputXptID GetFrameBufferOutputXptFromChannel(const NTV2Channel inFrameStore, const bool inIsRGB=false, const bool inIs425=false)
Definition: ntv2signalrouter.cpp:845
NTV2_XptDualLinkOut3Input
@ NTV2_XptDualLinkOut3Input
Definition: ntv2enums.h:2771
NTV2_MODE_OUTPUT
@ NTV2_MODE_OUTPUT
Output (playout, display) mode, which reads from device SDRAM.
Definition: ntv2enums.h:1201
GetDLOutInputXptFromChannel
NTV2InputXptID GetDLOutInputXptFromChannel(const NTV2Channel inDLOutWidget)
Definition: ntv2signalrouter.cpp:808
NTV2_XptSDIOut3Input
@ NTV2_XptSDIOut3Input
Definition: ntv2enums.h:2741
GetDLOutOutputXptFromChannel
NTV2OutputXptID GetDLOutOutputXptFromChannel(const NTV2Channel inDLOutput, const bool inIsLinkB=false)
Definition: ntv2signalrouter.cpp:905
NTV2_XptDuallinkOut3DS2
@ NTV2_XptDuallinkOut3DS2
Definition: ntv2enums.h:2535