Question

J'ai une application delphi qui prend des clichés d'une webcam à des intervalles de 1 sec. Sur le PC de développement, il va bien, mais sur la plate-forme cible (comprimé à base d'Atom PC fonctionnant sous Windows Embedded 7 avec un autre appareil), il est extrêmement squameuse. Après un redémarrage et la première fois que l'application est exécuté, il gère normalement pour initialiser le OK de webcam et d'obtenir des cadres réguliers de celui-ci, mais la prochaine fois que l'application est exécutée, il ne parvient pas à localiser le pilote de webcam, et apparaît également une boîte de dialogue me demandant de préciser la source vidéo, sans doute parce qu'il ne peut pas trouver un ..

Ma question: Je suis sûr que cela est lié aux appels API de capture vidéo ne pas être dans le bon ordre ou quelque chose, mais est-il un outil (comme Wireshark) qui me permettra de renifler les appels API, donc je peux comparer ce qui se passe sur le système Windows 7 intégré au système de développement de XP qui fonctionne?

J'utilise les appels / messages suivants:

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

1 sec timer:

WM_CAP_SET_CALLBACK_FRAME
WM_CAP_GRAB_FRAME_NOSTOP

Le rappel:

WM_CAP_SET_CALLBACK_FRAME (nil)

Sur la fin:

WM_CAP_ABORT
WM_CAP_STOP
WM_CAP_DRIVER_DISCONNECT
Était-ce utile?

La solution

La première étape est beaucoup plus facile: Avez-vous absolument sûr que vous avez le même pilote?

On peut aussi que la séquence de détection - démarrer l'acquisition est trop rapide pour ce système lent. Voir si l'introduction de quelques inbetween de sommeil de secondes aide

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top