選取資料流程格式
視訊擷取裝置可以擷取數種不同的格式來擷取視訊。 KSDATARANGE結構可用來傳達特定色彩空間寬度、高度、細微性、裁剪和畫面播放速率的相關資訊。 結構KS_DATARANGE_VIDEO和KS_DATARANGE_VIDEO2是 KSDATARANGE 結構的延伸,而且應該用於描述視訊擷取格式。 使用KS_DATARANGE_VIDEO僅描述視訊畫面。 使用KS_DATARANGE_VIDEO2來描述視訊欄位和視訊畫面,包含或不含 bob 或 weave 設定。
選取資料流程格式的程式稱為 執行資料交集。 Stream 類別介面會將 SRB_GET_DATA_INTERSECTION 要求傳送至 Stream 類別迷你驅動程式,以執行資料交集。 迷你驅動程式負責判斷所要求的資料範圍有效性,然後從提供的資料範圍中選取特定資料流程格式,通常使用 KS_DATAFORMAT_VIDEOINFOHEADER 或 KS_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);
.
.