Page 1 of 1

decoding Ancillary Data over SDI stream

PostPosted: Sat Feb 18, 2017 12:33 am
by DanielAden
How do I detect and decode the ancillary data on the SDI stream?

I'm using a black magic ursa mini 4k connected to a deck link PCIE capture card and I'm interested in any metadata produced by the camera in the ancillary data, but specifically, I'm hoping to extract the current camera recording status, the lens focal length, the current focus and zoom settings, white balance, exposure, etc. Is this data available in the SDI stream?

I read this standards of IDs and status: https://smpte-ra.org/smpte-ancillary-data-smpte-st-291

I started looking at the binary data in the buffer returned by GetBufferForVerticalBlankingLine from the stream and diffing frames of ancillary data I can see the data changing. I searched for 0x3ff which I believe is part of the start header but I didn't find it in the ancillary data.

I also looked at the ClosedCaptions sample in the SDK and while the DID and SDID makes sense, I didn't understand how you know that ClosedCaptions should be on line 15:
from blackmagic/Linux/Samples/ClosedCaptions/main.cpp:57-58
// Define VANC line for CEA-708 captions
const uint32_t kCaptionDistributionPacketLine = 15;

Does anyone know the best way to get the information I'm looking for? Is Ancillary data the right answer? What is the best reference for understanding what is in the ancillary data and how to decode it?

Re: decoding Ancillary Data over SDI stream

PostPosted: Thu Dec 02, 2021 4:25 pm
by asperi
Also looking for a solution, did you ever find a way to get captions to show out SDI?

Re: decoding Ancillary Data over SDI stream

PostPosted: Fri Dec 10, 2021 4:01 pm
by petrno
@Daniel

I think the GetBufferForVerticalBlankingLine API is now deprecated. I am using the current API (but the old one is still present and works) and I am able both to extract the VANC data and insert it.

If you describe in more details what exactly you are trying to achieve, perhaps I can help you.

Petr