Condividi tramite


Configurazioni della fotocamera USBCAMD2

I minidriver per supportare le fotocamere USB possono essere client del driver di classe stream.sys sull'estremità superiore e il driver del bus USB sul lato inferiore, come illustrato nel diagramma seguente.

diagramma che illustra i modelli di minidriver della fotocamera USB.

Nella configurazione del gruppo A del diagramma, lo sviluppatore del minidriver deve interfacciarsi con il driver di classe stream.sys, la fotocamera e il bus USB. Nella configurazione del gruppo B , un minidriver scritto per usare USBCAMD2 deve contenere solo il codice specifico del dispositivo. Ciò significa che, se si usa USBCAMD2, è possibile concentrarsi sull'implementazione del supporto per formati video, set di proprietà, decompressione delle immagini e conversione dello spazio dei colori. La libreria USBCAMD2 minidriver controlla la connessione al driver di classe stream.sys e al driver del bus USB, semplificando così il processo di sviluppo di un minidriver della fotocamera.

Anche se USBCAMD2 interfacce con il driver di classe stream.sys , che è ora obsoleto, lo sviluppo di un minidriver della fotocamera con USBCAMD2 può essere più semplice rispetto alla scrittura della propria classe autonomastream.sys classe o minidriver AVStream.

Lo scopo principale di USBCAMD2 è quello di supportare le videocamere di streaming, ad esempio le webcam. Tuttavia, USBCAMD2 fornisce anche il supporto per l'uso di pipe di trasferimento bulk e interrupt USB per acquisire immagini statiche inviate dalla fotocamera. Questa funzionalità supporta fotocamere USB con funzionalità snapshot per acquisire ancora fotogrammi.

Se la fotocamera trasmette principalmente video e, facoltativamente, offre funzionalità di snapshot, è sufficiente scrivere un USBCAMD2 minidriver. I fornitori di fotocamere ibride (fotocamere che scattano principalmente foto, ma che possono anche trasmettere video) scrivono un minidriver USBCAMD2 per supportare la funzionalità di streaming e un driver di acquisizione di immagini (WIA) separato per supportare ancora l'archiviazione e la gestione delle immagini. Per ulteriori informazioni su WIA e sul supporto delle fotocamere digitali che acquisiscono immagini statiche, consulta i Driver di acquisizione di immagini Windows.

La libreria USBCAMD2 supporta le fotocamere che utilizzano una combinazione di pipe isocrone, pipe di I/O bulk e/o pipe di interrupt per trasferire i flussi di dati e le impostazioni di controllo. USBCAMD2 supporta fotocamere che implementano le configurazioni della pipe USB seguenti:

  • Una singola pipe isocrona, con informazioni di sincronizzazione, ad esempio l'inizio e la fine del video o ancora fotogrammi incorporati nel flusso di dati. Questi tipi di fotocamere possono eseguire il multiplex sia del video che dei fotogrammi fissi attraverso lo stesso canale isocrono o riutilizzare singoli fotogrammi video come fotogrammi fissi.

  • Come la configurazione precedente, con l'aggiunta di un canale di interrupt per notificare eventi di trigger esterni alle applicazioni registrate.

  • Come la prima configurazione, con l'aggiunta di due pipe di I/O bulk per controllare e acquisire fotogrammi statici dalla fotocamera.

  • Due tubi isocroni. Una pipe trasmette i dati e l'altra pipe contiene informazioni di sincronizzazione, ad esempio l'inizio e la fine del video o ancora fotogrammi. Queste fotocamere possono anche eseguire il multiplex sia dei video che dei fotogrammi fermi attraverso la stessa pipe isocrona, o riutilizzare singoli fotogrammi video come fotogrammi fermi.

  • Due pipe di I/O bulk e una pipe di interrupt facoltativa. Una pipe bulk trasmette video e l'altra pipe bulk trasferisce immagini fisse. La pipe di interrupt facoltativa segnala la notifica degli eventi di attivazione esterni alle applicazioni iscritte.

Nota USBCAMD2 supporta fotocamere con una singola interfaccia USB con più impostazioni alternative. Tutte le impostazioni alternative devono avere lo stesso tipo e il numero di pipe. Queste informazioni vengono specificate in una matrice di tipo USBCAMD_Pipe_Config_Descriptor che si passa a CamConfigureEx durante l'inizializzazione e la configurazione della fotocamera.

Mentre i dispositivi USB 1.1 possono essere connessi a un bus USB 2.0, USBCAMD2 supporta solo dispositivi fotocamera USB 1.1 ed è pertanto limitato alla velocità effettiva massima del bus USB 1.1 (ad esempio, trasferimento di dati isocroni in modalità a velocità intera). USBCAMD2 non supporta la modalità USB 2.0 ad alta velocità per il trasferimento di dati isocroni. Tuttavia, se una fotocamera implementa solo pipe bulk, potrebbe trarre vantaggio dalla connessione a un bus USB 2.0 in cui è disponibile una larghezza di banda di trasferimento in blocco più disponibile.