Domanda

Ho un'applicazione Delphi che prende istantanee da una webcam ad intervalli di 1 sec. Sul PC di sviluppo va bene, ma sulla piattaforma di destinazione (PC tablet Atom-based in esecuzione integrata di Windows 7 con una fotocamera diversa) è estremamente traballante. Dopo un riavvio e la prima volta l'applicazione viene eseguita, normalmente riesce a inizializzare il webcam OK e ottenere cornici regolari da esso, ma la prossima volta che l'applicazione è in esecuzione, non riesce a individuare il driver della webcam, e anche apre una finestra di dialogo mi chiede di specificare la sorgente video, presumibilmente perché non riesce a trovare uno ..

La mia domanda: Sono sicuro che questo è legato alle chiamate API di acquisizione video non essere nel giusto ordine o qualcosa del genere, ma c'è uno strumento (come Wireshark) che mi permetterà di fiutare le chiamate API, in modo da poter confrontare ciò che sta accadendo sul sistema Windows 7 incorporato per il sistema di sviluppo XP che le opere?

Sto usando le seguenti chiamate / messaggi:

inizializzazione:

capCreateCaptureWindow
WM_CAP_DRIVER_CONNECT
WM_CAP_SET_PREVIEW (false)
WM_CAP_SET_VIDEOFORMAT (as camera after boot is in format I can't handle)
WM_CAP_GET_VIDEOFORMAT

Timer on 1 sec:

WM_CAP_SET_CALLBACK_FRAME
WM_CAP_GRAB_FRAME_NOSTOP

Il callback:

WM_CAP_SET_CALLBACK_FRAME (nil)

In arrivo:

WM_CAP_ABORT
WM_CAP_STOP
WM_CAP_DRIVER_DISCONNECT
È stato utile?

Soluzione

Il primo passo è molto più facile: Hai fatto assolutamente sicuri di avere lo stesso driver?

Potrebbe anche essere che la sequenza di rilevare - avviare acquisizione è troppo veloce per questo sistema lento. Vedere se l'introduzione di pochi secondi inbetween sonno aiuta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top