UVC 中的红外流支持

在 Windows 10 版本 1607 及更高版本中,收件箱 USB 视频类 (UVC) 驱动程序支持用于生成 (IR) 流的相机。

这些相机捕获场景的亮度值,并将帧以未压缩格式或压缩的 MJPEG 格式通过 USB 传输。 这些相机及其流通过媒体捕获管道向应用程序公开。

以下 IR 格式类型 GUID 用于指定流的视频格式描述符,以便正确向应用程序公开 IR 流。

这些 IR 格式类型 GUID 在 ksmedia.h 中定义:

IR 格式类型 GUID 说明
KSDATAFORMAT_SUBTYPE_L8_IR 8 位仅 luma 帧
KSDATAFORMAT_SUBTYPE_L16_IR 16 位仅 luma 帧
KSDATAFORMAT_SUBTYPE_MJPEG_IR MJPEG 压缩的仅 luma 帧

指定这些 IR 格式类型 GUID 时,捕获管道会自动将这些流标记为 IR 流,帮助应用程序为方案选择正确的流。

// 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;