USB 비디오 클래스 구현

Microsoft에서 제공하는 UVC(USB 비디오 클래스) 드라이버(usbvideo.sys)는 핀 중심 AVStream 미니드라이버입니다. 운영 체제에서 열거한 각 USB Video Class?규격 디바이스 instance 필터 팩터리를 만듭니다. 또한 드라이버는 KSPIN_DESCRIPTOR 구조체DataFlow 멤버를 관련 값으로 설정하여 디바이스의 각 입력 또는 출력 터미널에 대한 핀 팩터리를 만듭니다.

USB 비디오 클래스 드라이버는 디바이스 설명자가 보고한 내부 디바이스 토폴로지를 사용하여 필터, 노드 및 연결로 구성된 KS(커널 스트리밍) 토폴로지 그래프를 생성합니다.

디바이스에서 지원하는 컨트롤의 수와 유형에 따라 USB Video Class는 AVStream 필터 및 핀 설명자의 KS 자동화 테이블을 통해 필터, 핀 및 노드 속성 집합을 동적으로 보고합니다.

USB 비디오 클래스는 디바이스의 각 비디오 또는 스틸 이미지 데이터 엔드포인트에서 지원하는 데이터 형식에 따라 지원되는 KS 데이터 범위의 해당 목록과 해당 AVStream 핀 설명자의 데이터 교차 처리기를 보고합니다. USB 비디오 클래스 드라이버는 커널 스트리밍 프록시 모듈을 통해 정보를 내보냅니다.

USB 비디오 클래스 드라이버는 오디오/비디오 스트림 동기화도 지원합니다. usbvideo.sys KS master 시계 역할을 하고 비디오 샘플에 타임스탬프를 추가할 수 있습니다. USB 비디오 클래스 사양에는 하드웨어가 클래스 드라이버에 타이밍 정보를 제공하는 방법에 대한 세부 정보가 포함되어 있습니다.

USB 비디오 클래스와 통신하기 위해 사용자 모드 클라이언트는 DirectShow 또는 Media Foundation 인터페이스를 호출합니다. 이러한 인터페이스는 커널 스트리밍 프록시가 플러그 인으로 정의한 COM 인터페이스 래퍼입니다. Media Foundation에 대한 자세한 내용은 Microsoft Windows SDK 설명서를 참조하세요.