bonsoir,

je suis entrain de développer sous OS X un module apportant le support des caméras compatibles IIDC dans un environnement de traitement temps réel de l'image et du son (Max/MSP).

j'utilise pour cela la bibliothèque libdc1394 et j'ai un problème : mon CPU se bloque à 150% lorsque j'appelle certaines fonctions.

je suis parti d'un example du SDK de Max et de l'example "grab_gray_image.c" de la bibliothèque libdc1394 pour développer mon module.

"grab_gray_image.c" est très simple : il initialise la caméra en récupérant les meilleurs paramètres, déclenche la capture, sauvegarde une image puis arrête la capture et nettoie la mémoire.
ce code compile très bien tout seul.

mais lorsque j'insert ce code dans mon module pour Max, l'appel de la fonction de démarrage de la transmission pousse le CPU à 150 %.
si j'arrête la transmission, le CPU redescend à 10% (correspondant à l'exécution du Runtime de Max)

voici le code de déclaration de la fonction en question :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
/**
 * Starts/stops the isochronous data transmission. In other words, use this to control the image flow.
 */
dc1394error_t dc1394_video_set_transmission(dc1394camera_t *camera, dc1394switch_t pwr);
je en sais pas du tout à quoi est dû cette surcharge anormale du CPU et je ne sais même pas où chercher le bug...

j'ai isolé le démarrage de la transmission dans une autre fonction mais à l'appel de la fonction le CPU monte également à 150%

je me suis rendu compte également qu'une deuxième provoquait le même comportement anormal :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
/**
 * Collects the available features for the camera described by node and stores them in features.
 */
dc1394error_t dc1394_feature_get_all(dc1394camera_t *camera, dc1394featureset_t *features);
le retour de ces deux fonction est contrôlé sans erreur.

quelqu'un aurait-il une idée d'où peut venir une telle surcharge ?
en espérant que j'ai été suffisamment précis pour susciter des réponses...

chianli