Suporte a fluxo infravermelho no UVC

No Windows 10, versão 1607 e posterior, o driver UVC (Classe de Vídeo USB) da caixa de entrada dá suporte a câmeras que produzem fluxos de IR (infravermelho).

Essas câmeras capturam o valor de luma da cena e transmitem os quadros por USB como um formato descompactado ou como um formato MJPEG compactado. Essas câmeras e seus fluxos são expostos a aplicativos por meio do pipeline de captura de mídia.

Os GUIDs do tipo de formato IR a seguir são usados para especificar o descritor de formato de vídeo do fluxo para que os fluxos de IR sejam expostos corretamente aos aplicativos.

Esses GUIDs de tipo de formato IR são definidos em ksmedia.h:

GUID do tipo de formato IR Descrição
KSDATAFORMAT_SUBTYPE_L8_IR Quadros somente luma de 8 bits
KSDATAFORMAT_SUBTYPE_L16_IR Quadros somente luma de 16 bits
KSDATAFORMAT_SUBTYPE_MJPEG_IR Quadros somente luma compactados do MJPEG

Quando esses GUIDs de tipo de formato IR são especificados, o pipeline de captura marca automaticamente esses fluxos como fluxos de IR, o que ajuda os aplicativos a selecionar o fluxo correto para seus cenários.

// Example: Format descriptor for UVC 1.1 frame based uncompressed format

typedef struct _VIDEO_FORMAT_FRAME
{
    UCHAR bLength;
    UCHAR bDescriptorType;
    UCHAR bDescriptorSubtype;
    UCHAR bFormatIndex;
    UCHAR bNumFrameDescriptors;
    GUID  guidFormat;           // guidFormat must contain one of the IIR format type GUIDs from the table above
    UCHAR bBitsPerPixel;
    UCHAR bDefaultFrameIndex;
    UCHAR bAspectRatioX;
    UCHAR bAspectRatioY;
    UCHAR bmInterlaceFlags;
    UCHAR bCopyProtect;
    UCHAR bVariableSize;
} VIDEO_FORMAT_FRAME, *PVIDEO_FORMAT_FRAME;