Implementazione della classe video USB

Il driver USB Video Class (UVC) fornito da Microsoft (usbvideo.sys) è un minidriver AVStream incentrato sul pin. Crea una fabbrica di filtri per ogni istanza del dispositivo conforme alla Classe Video USB enumerata dal sistema operativo. Il driver crea anche una factory di pin per ogni terminale di input o output nel dispositivo, con il membro DataFlow della struttura KSPIN_DESCRIPTOR impostata sul valore pertinente.

Il driver della classe video USB usa la topologia interna del dispositivo segnalata dai descrittori del dispositivo per costruire un grafico della topologia di streaming del kernel (KS) costituito da filtri, nodi e connessioni.

In base al numero e ai tipi di controlli supportati dal dispositivo, la classe video USB segnala in modo dinamico i set di filtri, pin e proprietà del nodo tramite le tabelle di automazione KS nel filtro AVStream e nei descrittori di pin.

In base ai formati di dati supportati da ogni video o endpoint di dati d'immagine statica nel dispositivo, la classe video USB riporta l'elenco corrispondente degli intervalli di dati KS supportati e un gestore di intersezione dati nel rispettivo descrittore di pin AVStream. Il driver della Classe Video USB esporta le informazioni tramite il modulo Proxy di streaming kernel.

Il driver USB Video Class supporta anche la sincronizzazione del flusso audio/video; usbvideo.sys può fungere da orologio master KS e aggiungere timestamp agli esempi video. La specifica della classe video USB include informazioni dettagliate sul modo in cui l'hardware deve fornire informazioni sulla tempistica per il driver di classe.

Per comunicare con la USB Video Class, i client in modalità utente utilizzano le interfacce DirectShow o Media Foundation. Queste interfacce sono wrapper di interfaccia COM definite dal proxy di streaming del kernel come plug-in. Per altre informazioni su Media Foundation, vedere la documentazione di Microsoft Windows SDK.