none
Manque plusieurs paquets avec un revfrom!!! que faire... RRS feed

  • Question

  • Bonjour,

    J'utilise la fonction revfrom() de manière très classique (en mode bloquant) pour récupérer un flux de paquets vidéo en multicast (400kbps). Je fais du traitement vidéo assez lourd avec ces données mais sans jamais dépasser 60% de la puissance de mon CPU. Le hic c'est que même avec ce débit de données assez faible, je rate des paquets. Je suppose que je viens lire la socket trop tardivement. J'ai donc tenté une lecture par bloc de paquets en utilisant ioctlsocket(). Cela n'a rien donné car j'en rate encore plus...
    Pour info, j'ai une thread dédiée à la lecture de paquet sur le port udp, recomposes les données fragmentées (MTU 1500) avant de les passer à la tache de traitement numérique...

    Comment ne pas rater ces données multicast? ou comment avoir une lecture sous forme d'une interruption logicielle/matérielle?

    Merci...

      do
      {
        ioctlsocket(inputSockId, FIONREAD, &nOctets);
        rcvlen = recvfrom (inputSockId, inSockBuf, sizeof(inSockBuf), 0, (struct sockaddr *)&sin, &formsize);
        ....
      }
      while(....)
    vendredi 12 mars 2010 16:45

Réponses

Toutes les réponses