AJA Capture Card: No CSC available for NTV2_CHANNEL1

Hello,

I encountered an error when running the aja capture example.

For setting up our new AJA Corvid 44 I followed the instructions in the Holoscan documentation. Both, drivers as well as SDK are working fine. ntv2enumerateboards correctly shows our device and testrdma does not return faulty frames. Even ntv2capture from the aja SDK inside the container seems to correctly capture frames.

ntv2enumerateboards output:

ntv2enumerateboards 
AJA NTV2 SDK version 16.2.0 (0x10020003) build 3 built on Wed Feb 02 21:58:01 UTC 2022
Devices supported:  Corvid, KonaLHi, KonaLHiDVI, IoExpress, Corvid22, Kona3G, Corvid3G, Kona3GQuad, KonaLHe+, IoXT, Corvid24, TTap, Io4K, Io4KUfc, Kona4, Kona4Ufc, Corvid88, Corvid44, CorvidHEVC, KonaIP s2022, KonaIP s2022 2+2, KonaIP J2K 1I 1O, KonaIP J2K 2O, KonaIP s2110 1I 1O, KonaIP s2110, KonaIP s2110 RGB12, CorvidHBR, Io4KPlus, IoIP-s2022, IoIP-s2110, IoIP-s2110_RGB12, Kona1, KonaHDMI, Kona5, Kona5-8KMK, Kona5-8K, Kona5-12Bit, Kona5-3DLUT, Kona5-OE1, Kona5-OE2, Kona5-OE3, Kona5-OE4, Kona5-OE5, Kona5-OE6, Kona5-OE7, Kona5-OE8, Kona5-OE9, Kona5-OE10, Kona5-OE11, Kona5-OE12, Kona5-8K-MV-TX, Corvid44-8KMK, Corvid44-8K, Corvid44-2x4K, Corvid44-PLNR, TTapPro, IoX3, SOJI-3DLUT, SOJI-OE1, SOJI-OE2, SOJI-OE3, SOJI-OE4, SOJI-OE5, SOJI-OE6, SOJI-OE7
1 AJA device(s) found:
AJA device 0 is called 'Corvid44-8K - 0'

This device has a deviceID of 0x10832401
This device has 4 SDI Input(s)
This device has 4 SDI Output(s)
This device has 0 HDMI Input(s)
This device has 0 HDMI Output(s)
This device has 0 Analog Input(s)
This device has 0 Analog Output(s)
This device has 0 Up-Converter(s)
This device has 0 Down-Converter(s)
This device has 16 Channel(s) of Embedded Audio Input
This device has 16 Channel(s) of Embedded Audio Output

85 video format(s):  1080i50, 1080i59.94, 1080i60, 720p59.94, 720p60, 1080sf23.98, 1080sf24, 1080p29.97, 1080p30, 1080p25, 1080p23.98, 1080p24, 2Kp23.98, 2Kp24, 2Ksf23.98, 2Ksf24, 720p50, 1080p50b, 1080p59.94b, 1080p60b, 1080p50a, 1080p59.94a, 1080p60a, 2Kp25, 2Ksf25, 1080sf25, 1080sf29.97, 1080sf30, 525i59.94, 625i50, 525sf29.97, 625sf25, 2Kp60a, 2Kp59.94a, 2Kp29.97, 2Kp30, 2Kp50a, 2Kp47.95a, 2Kp48a, UHDsf23.98, UHDsf24, UHDsf25, UHDp23.98, UHDp24, UHDp25, UHDp29.97, UHDp30, UHDsf29.97, UHDsf30, UHDp50, UHDp59.94, UHDp60, 4Ksf23.98, 4Ksf24, 4Ksf25, 4Kp23.98, 4Kp24, 4Kp25, 4Kp29.97, 4Kp30, 4Ksf29.97, 4Ksf30, 4Kp47.95, 4Kp48, 4Kp50, 4Kp59.94, 4Kp60, UHD2p23.98, UHD2p24, UHD2p25, UHD2p29.97, UHD2p30, UHD2p50, UHD2p59.94, UHD2p60, 8Kp23.98, 8Kp24, 8Kp25, 8Kp29.97, 8Kp30, 8Kp47.95, 8Kp48, 8Kp50, 8Kp59.94, 8Kp60
This device can handle different signal formats on each input/output
This device can delay audio

When running the aja capture script, however, I get the following error:

Error message:

[2023-06-05 13:16:23.673] [holoscan] [info] [aja_source.cpp:355] AJA Source: Capturing from NTV2_CHANNEL1
[2023-06-05 13:16:23.673] [holoscan] [info] [aja_source.cpp:356] AJA Source: RDMA is enabled
[2023-06-05 13:16:23.673] [holoscan] [info] [aja_source.cpp:362] AJA Source: Overlay output is disabled
[2023-06-05 13:16:23.699] [holoscan] [error] [aja_source.cpp:242] No CSC available for NTV2_CHANNEL1
terminate called after throwing an instance of 'std::runtime_error'
  what():  Failed to setup device 0
Aborted (core dumped)

@jinl suggested in another post that the hdmi output from notebooks can alter the colorspace. Could that be the reason in my case? I did, however, also test the setup with a proper camera setup (Panasonic AW-Series). For HDMI to SDI conversion I used the Blackmagic Design MC HDMI-SDI 12G.

1 Like

Hello! Could you let us know a little more about the format of the input signal (resolution and framerate)?

Hi there, we have a bit more info on this topic. The “No CSC available for NTV2_CHANNEL1” error would be due to a missing Color Space Converter unit on the board, which is used to convert from a YUV input source to the RGB that is used internally by Holoscan.

From your log above the device info saysCorvid44-8k, and from the AJA documentation it shows that the Corvid44-8K doesn’t have any CSCs.
image

The only way around not having a CSC would be to feed an RGB signal into the SDI input.

According to the docs for the converter (Blackmagic Design MC HDMI-SDI 12G), that also shows only YUV for SDI output color space. (Micro Converters – Tech Specs | Blackmagic Design)
If you have a different AJA card with CSC please try that. If you don’t have access to a different AJA card, you will need a different converter that outputs RGB.

Thank you very much for the detailed explanation. After talking to one of your colleagues, we came to the conclusion that buying a color space converter would be the easiest and fastest way for us to fix this problem.

Is there a specific reason why the AJA source operator throws an error when receiving a YUV signal instead of just forwarding the signal as is and letting the format converter do the conversion?

It’s a great solution to add the support to the AJA source to output YUV, unfortunately this feature is not planned yet as of right now, we will sync with the solutions architect team and engineering team.

Can you recommend a hardware-based color converter for the YUV to RGB conversion? The only solution I found is the Aja ColorBox which is quite expensive for the simple purpose we need it for.

Thanks in advance.

In the meantime another question came up.
We would like to replay a video using VideoStreamReplayerOp pass it to Holoviz and redirecting the rendered output to a channel of our capture card using the AJASourceOp as depicted in the graph. Is that currently possible?

Errors :

[error] [message_router.cpp:90] Connection not found for Tx video_buffer_output
[error] [entity_executor.cpp:290] [E00030] No receiver connected to transmitter of DownstreamReceptiveSchedulingTerm 35 of entity "AjaOutputCh1". The entity will never tick.
⋮
[info] [aja_source.cpp:371] AJA Source: Capturing from NTV2_CHANNEL1
[info] [aja_source.cpp:372] AJA Source: RDMA is enabled
[info] [aja_source.cpp:378] AJA Source: Overlay output is disabled
[error] [aja_source.cpp:244] No CSC available for NTV2_CHANNEL1
terminate called after throwing an instance of 'std::runtime_error'
  what():  Failed to setup device 0

Hi there, regarding the question of

Could you elaborate on the intention of such as setup? Perhaps to output the results of an application to an AJA device as an output channel perhaps via SDI? Or perhaps to feed the video replayer’s video into the AJA source as a live source (when you’re without another true live source)?

Unfortunately it is not supported. The current AJASource was meant as the source of frames within the pipeline, a stream coming into an AJA device’s input channel. The AJA overlay feature uses a hardware feature of (at least some) AJA devices to allow an overlay to be mixed with the original input signal and then passed through to an output channel for the purpose of zero-lag pass-through. This is a special case, and not meant to be used for outputting frame data to an AJA output in other cases and in general.

Hi,

AJA provided us with the firmware for the Covid44_2x4K which in fact is compatible to the Covid44_8K and supports color conversion. We can now feed a live video source into our pipeline using the AJASourceOp, so I think we can close this topic by now.

Many thanks for your help.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.