2010-11-30 76 views
2

J'ai une application Delphi qui prend des instantanés à partir d'une webcam à intervalles d'une seconde. Sur le PC de développement ça se passe bien, mais sur la plate-forme cible (tablette PC basée sur Atom fonctionnant sous Windows 7 avec une caméra différente), elle est extrêmement floconneuse. Après un redémarrage et la première exécution de l'application, il réussit normalement à initialiser correctement la webcam et à obtenir des images régulières, mais la prochaine fois que l'application est exécutée, elle ne parvient pas à localiser le pilote de la webcam. me demandant de spécifier la source vidéo, sans doute parce qu'il ne peut pas trouver un ..La boîte de dialogue de capture vidéo continue à apparaître avec l'application delphi webcam PC intégrée

Ma question: Je suis sûr que cela est lié à des appels d'API de capture vidéo ne sont pas dans le bon ordre ou quelque chose, mais y at-il un outil (comme wireshark) qui va me permettre de renifler les appels API, donc je peux comparer ce qui se passe sur le système Windows 7 embarqué au système de développement XP qui fonctionne?

J'utilise les appels/messages suivants:

Initialiser:

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 

Sur minuterie 1 sec:

WM_CAP_SET_CALLBACK_FRAME 
WM_CAP_GRAB_FRAME_NOSTOP 

Sur rappel:

WM_CAP_SET_CALLBACK_FRAME (nil) 

sur la finition :

WM_CAP_ABORT 
WM_CAP_STOP 
WM_CAP_DRIVER_DISCONNECT 
+0

Cette question n'est pas claire. Demandez-vous comment rendre la sélection du pilote plus fiable ou demandez-vous comment surveiller les appels d'API? Ce sont deux questions complètement distinctes, et si vous voulez poser des questions sur les deux, alors vous devriez faire plusieurs messages. Et laquelle de ces questions la réponse acceptée résout-elle? –

+0

La suggestion de Marco d'introduire un délai (ou en fait, un délai et des tentatives) a rendu la sélection du pilote plus fiable. – rossmcm

Répondre

0

La première étape est beaucoup plus facile: vous êtes-vous assuré que vous avez le même pilote?

Il se peut aussi que la séquence d'acquisition de détection-démarrage soit trop rapide pour ce système lent. Voir si l'introduction de quelques secondes de sommeil entre les aides

+0

Système de développement: Win XP SP3. Logitech caméra. Le gestionnaire de périphériques répertorie 22 pilotes MS et logitech. Système embarqué: Intel Atom Win 7 Embedded. La caméra D-Max utilise le contrôleur Syntek. Gestionnaire de périphériques répertorie un pilote usbvideo.sys – rossmcm

+0

Ce n'est pas une réponse :-) Sont-ils les mêmes, avec le même fournisseur, date etc? Différents pilotes peuvent se comporter différemment, en particulier lorsque vous comparez un pilote MS générique à un pilote spécifique à un périphérique logitech. –

+0

C'était censé être une réponse. Désolé, mon point était que les deux systèmes sont complètement différents, mais le conducteur incorporé est le MS, que nous espérons être stable. – rossmcm