2010-11-30 5 views
2

Ich habe eine Delphi-App, die Schnappschüsse von einer Webcam in 1-Sekunden-Intervallen nimmt. Auf dem Entwicklungs-PC geht es gut, aber auf der Zielplattform (Atom-basierter Tablet-PC mit eingebettetem Windows 7 mit einer anderen Kamera) ist es extrem flockig. Nach einem Neustart und beim ersten Start der App wird normalerweise die Webcam initialisiert und es werden normale Frames angezeigt. Beim nächsten Start der App wird der Webcam-Treiber jedoch nicht gefunden. Außerdem wird ein Dialogfeld angezeigt fragt mich, um die Videoquelle zu spezifizieren, vermutlich, weil sie einen nicht finden kann.Video-Capture-Dialog taucht mit eingebetteten PC-Webcam Delphi App

Meine Frage: Ich bin sicher, dass das mit Videoaufnahme-API-Anrufen nicht in der richtigen Reihenfolge oder etwas verwandt ist, aber gibt es ein Tool (wie Wireshark), die es mir ermöglichen, die API-Aufrufe zu schnüffeln, damit ich vergleichen kann, was auf dem eingebetteten Windows 7-System mit dem XP-Entwicklungssystem geschieht, das funktioniert?

Ich verwende die folgenden Anrufe/Nachrichten:

Initialisation:

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 

auf 1 sec Timer:

WM_CAP_SET_CALLBACK_FRAME 
WM_CAP_GRAB_FRAME_NOSTOP 

Auf Rückruf:

WM_CAP_SET_CALLBACK_FRAME (nil) 

Auf Finish :

+0

Diese Frage ist unklar. Fragen Sie, wie Sie die Treiberauswahl zuverlässiger machen können oder wie Sie API-Aufrufe überwachen können? Das sind zwei völlig getrennte Probleme, und wenn Sie nach beiden fragen möchten, sollten Sie mehrere Beiträge machen. Und welche dieser Fragen löst die angenommene Antwort? –

+0

Marcos Vorschlag, eine Verzögerung (oder tatsächlich eine Verzögerung und Wiederholungen) einzuführen, hat die Treiberauswahl zuverlässiger gemacht. – rossmcm

Antwort

0

Der erste Schritt ist viel einfacher: Haben Sie absolut sichergestellt, dass Sie den gleichen Treiber haben?

Es könnte auch sein, dass die Sequenz der Erkennung - Anfangserfassung für dieses langsame System zu schnell ist. Sehen Sie, wenn ein paar Sekunden Schlaf dazwischen hilft

+0

Entwicklungssystem: Win XP SP3. Logitech-Kamera. Der Geräte-Manager listet 22 MS- und Logitech-Treiber auf. Eingebettetes System: Intel Atom Win 7 Embedded. D-Max-Kamera verwendet Syntek-Controller. Geräte-Manager listet einen Treiber usbvideo.sys – rossmcm

+0

Das ist keine Antwort :-) Sind sie die gleichen, mit dem gleichen Anbieter, Datum usw.? Verschiedene Treiber verhalten sich möglicherweise anders, insbesondere beim Vergleich eines generischen MS-Treibers mit einem spezifischen Logitech-Gerät. –

+0

Es sollte eine Antwort sein. Entschuldigung, mein Punkt war, dass die zwei Systeme völlig unterschiedlich sind, aber der eingebettete Treiber ist der MS, den wir hoffen würden, stabil zu sein. – rossmcm