选择流格式

视频捕获设备可以捕获多种不同格式的视频。 KSDATARANGE 结构用于传达有关特定颜色空间的宽度、高度、粒度、裁剪和帧速率的信息。 KS_DATARANGE_VIDEOKS_DATARANGE_VIDEO2的结构是 KSDATARANGE 结构的扩展,应用于描述视频捕获格式。 仅使用 KS_DATARANGE_VIDEO 描述视频帧。 使用KS_DATARANGE_VIDEO2描述视频字段和视频帧,无论是否具有 bob 或 weave 设置。

选择流格式的过程称为 执行数据交集。 Stream 类接口将 SRB_GET_DATA_INTERSECTION 请求发送到 Stream 类微型驱动程序以执行数据交集。 微型驱动程序负责确定所请求的数据范围的有效性,然后从提供的数据范围中选择特定的流格式,通常使用 KS_DATAFORMAT_VIDEOINFOHEADERKS_DATAFORMAT_VIDEOINFOHEADER2 结构。

最后,微型驱动程序必须设置结果格式的某些成员,如下所示:

.
.
.
// Calculate biSizeImage for this request, and put the result in both
// the biSizeImage field of the bmiHeader AND in the SampleSize field
// of the DataFormat.
//
// Note that for compressed sizes, this calculation will probably not
// be just width * height * bitdepth
 
DataFormatVideoInfoHeaderOut->VideoInfoHeader.bmiHeader.biSizeImage =
DataFormatVideoInfoHeaderOut->DataFormat.SampleSize = 
KS_DIBSIZE(DataFormatVideoInfoHeaderOut->VideoInfoHeader.bmiHeader);
.
.