Condividi tramite


Implementazione della classe video USB

Il usbvideo.sys driver USB Video Class (UVC) fornito da Microsoft è un minidriver AVStream incentrato sul pin. Crea una factory di filtro per ogni istanza di dispositivo conforme a USB Video Class enumerata dal sistema operativo. Il driver crea anche una pin factory 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 di topologia di streaming del kernel costituito da filtri, nodi e connessioni.

In base al numero e ai tipi di controlli supportati dal dispositivo, la classe video USB segnala dinamicamente filtri, pin e proprietà node impostando 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 dati immagine nel dispositivo, la classe video USB segnala l'elenco corrispondente degli intervalli di dati KS supportati e un gestore dell'intersezione dati nel rispettivo descrittore del pin AVStream. Il driver della classe video USB esporta le informazioni tramite il modulo Proxy di streaming kernel .

Il driver della classe video USB 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 classe video USB, i client in modalità utente chiamano interfacce DirectShow o Media Foundation. Queste interfacce sono wrapper dell'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.