스트림 형식 선택
비디오 캡처 디바이스는 다양한 형식으로 비디오를 캡처할 수 있습니다. KSDATARANGE 구조체는 특정 색 공간에 대한 너비, 높이, 세분성, 자르기 및 프레임 속도에 대한 정보를 전달하는 데 사용됩니다. KS_DATARANGE_VIDEO 및 KS_DATARANGE_VIDEO2 구조체는 KSDATARANGE 구조체의 확장이며 비디오 캡처 형식을 설명하는 데 사용해야 합니다. KS_DATARANGE_VIDEO 사용하여 비디오 프레임만 설명합니다. KS_DATARANGE_VIDEO2 사용하여 bob 또는 직조 설정을 사용하거나 사용하지 않고 비디오 필드 및 비디오 프레임을 설명합니다.
스트림 형식을 선택하는 프로세스를 데이터 교차 수행이라고 합니다. Stream 클래스 인터페이스는 스트림 클래스 미니드라이버에 SRB_GET_DATA_INTERSECTION 요청을 전송하여 데이터 교차를 수행합니다. 미니드라이버에서는 요청된 데이터 범위의 유효성을 확인하고 제공된 데이터 범위에서 특정 스트림 형식을 선택합니다(일반적으로 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);
.
.