Hi Naoki,
The 'Ay10' format consists of the following components:
- A - Alpha full range 0 to 1023 (0h - 3FFh)
- Y - Luma SMPTE range 64 - 940 (40h to 3ACh)
- Cb,Cr - Chroma SMPTE range 64 - 960 (40h to 3C0h)
When unpacked from the framebuffer for output, the alpha is rescaled to smpte range 64 to 940 and output of the Luma stream as Key on Channel B.
The Y',Cr,Cb components are unpacked from the frame buffer and output as Fill on Channel A. The signal is clamped with range 4-1019 to prevent illegal values being transmitted on active video as per SDI requirements.
I hope this explains the observed values. Regarding the Alpha 0x040 on every 3rd pixel, check that your call to
IDeckLinkOutput::CreateVideoFrame has been updated with BMDPixelFormat of
bmdFormat10BitYUVA.
Please also ensure that your application makes use of
IDeckLinkOutput::DoesSupportVideoMode with support flag
bmdSupportedVideoModeKeying and pixel format
bmdFormat10BitYUVA. You can also check keyer support by running DeviceList SDK sample with -c argument. As of Desktop Video 12.9, only the UltraStudio 4K Mini supports outputting frames with 'Ay10' pixel format. If not supported you will need to first convert to BGRA/ARGB formats.
Regards
Cameron