Wed Dec 17, 2014 3:05 am
There are 3 10-bit RGB pixel formats available in the SDK which are
bmdFormat10BitRGB
bmdFormat10BitRGBX
bmdFormat10BitRGBXLE (little endian version of bmdFormat10BitRGBX)
Unfortunately none of these match exactly the
windows DirectX surface/texture formats: D3DFMT_A2R10G10B10 and D3DFMT_A2B10G10R10
In particular, the location of the 2 bits of alpha does not match the 2 unused bits in the black magic 10bit rgb formats.
And some amount of bit bashing/byte reversing is required, to get the pixel data into the correct format.
You can use SSE3 instructions to do the byte reversal faster, but this becomes more time consuming for higher resolutions and frame rates (4K/60fps), which should be unnecessary, if a matching pixel format was available.
IMHO a little-endian version of bmdFormat10BitRGB is required, which would match DirectX D3DFMT_A2R10G10B10
Am I missing something ? Advice and suggestions welcome.
David "Digby" Richards
FairlightAu Pty. Ltd.