Bonjour à tous,
Je travaille sur un projet dans lequel, j'ai une caméra IP qui me transmet un flux continu de bytes quand j'envois la requete adéquate.
Je suis supposé segmenter ce flux en fonction de délimiteurs contenus dedans, afin d'extraire une suite d'images. (le délimiteur est connu).
J'ai finalisé le projet en Java, et je souhaitais en faire une version en C++ avec Qt, mais voila, avec Qt, une fois que j'envois la requete adéquate pour recevoir le flux, ce derniers est reçu et lu byte par byte par la méthode "read()" de QHttp.
En fait, j'utilise un read(c, 1) avec c: tableau de un caractere, et je boucle ainsi indéfiniment (enfin... tant qu'une condition donnée n'est pas atteinte, comme l'arret manuel de la reception avec un bouton par exemple)
Le problème est que la caméra m'envois des bytes de valeurs -1 de temps à autre à l'intérieur du flux lui meme, hors, quand read() lit un byte de valeur -1, la méthode read() retourne un 0 (valeur de retour de la méthode, c'est dire qu'elle n'a rien lu) et arrete de lire. C'est à dire que meme si apèrs un -1 envoyé par la caméra, il y a de nouveaus des bytes utiles, le read() du QHttp ne les lis plus.
Il est a noter qu'avec Java, et l'objet InputStream, quand je boucle sur un read(), ça m'affiche toutes les valeurs reçu, meme les -1, et ça contiu de lire la suite! jusqu'a ce que la condition d'arret soit vérifié!
Comment faire avec Qt et QHttp pour que la lecture du flux entrant ne s'interrompe pas si le byte reçu est -1?
Merci pour toute idée permettant de regler ce problème
Partager