Common C++ RTP

Logiciel capture d'écran:
Common C++ RTP
Détails logiciels:
Version: 2.0.0
Date de transfert: 11 May 15
Développeur: David Sugar
Licence: Gratuit
Popularité: 35

Rating: nan/5 (Total Votes: 0)

GNU ccRTP est une implémentation de la RTP, le protocole de transport en temps réel de l'IETF (RFC 3550 voir, RFC 3551 et RFC 3555). ccRTP est une bibliothèque C ++ basé sur GNU Common C ++ qui fournit une haute performance, flexible et extensible conformes aux normes RTP empiler avec le plein appui RTCP. La conception et la mise en œuvre de ccRTP rendent approprié pour les serveurs de grande capacité et des passerelles ainsi que les applications clientes personnelles.
Dans la conception ccRTP, nous avons pris en compte le fait que la RTP a été défini comme un cadre de protocole de niveau d'application plutôt que d'un protocole typique de transport Internet comme TCP et UDP. Ainsi, RTP est rarement mis en œuvre comme une couche séparée de l'application.
Par conséquent, les applications RTP doivent souvent personnaliser les RTP mise en page et de traitement de paquets règles adaptables, contraintes de temps, les règles d'adhésion de la session ainsi que d'autres mécanismes RTP et RTCP. ccRTP vise à fournir un cadre pour le cadre RTP, plutôt que d'être simplement une bibliothèque de manipulation de paquets RTP.
Soutien à la fois des données audio et vidéo est également prise en compte dans la conception de ccRTP, que peut faire trame partielle divise / remontage. Unicast, multi-unicast et multicast modèles de transport sont pris en charge, ainsi que de multiples sources de synchronisation actifs, plusieurs sessions RTP (SSRC) espaces, et de multiples applications RTP (espaces CNAME). Cela permet il est utiliser pour la construction de toutes les formes de normes Internet audio et systèmes à base de conférence visuels.
GNU ccRTP est threadsafe et de haute performance. Il utilise des listes de file d'attente de paquets pour la réception et la transmission de paquets de données. Les deux inter-médias et la synchronisation intra-media est automatiquement traitées dans les files d'attente de paquets entrants et sortants. GNU ccRTP offre un support pour RTCP et beaucoup d'autres caractéristiques standard et étendus qui sont nécessaires à la fois pour les applications de streaming compatibles et avancés.
Il peut mélanger plusieurs types de charge utile dans le flux, et peut donc être utilisé pour impliment RFC 2833 applications de signalisation conformes ainsi que d'autres choses spécialisés. GNU ccRTP offre également RTP direct et le filtrage de paquets RTCP.
GNU ccRTP utilise des modèles pour isoler les dépendances de filetage et douilles liés, de sorte qu'il peut être utilisé pour le streaming en temps réel impliment avec différents modèles de thread et protocoles de transport sous-jacents, et pas seulement avec les sockets UDP IPV4. Pour une liste plus détaillée des caractéristiques de ccRTP vous pouvez jeter un oeil à le manuel des programmeurs.
Au plus haut niveau, ccRTP fournit des classes pour le transport en temps réel des données à travers des sessions RTP, ainsi que les fonctions de contrôle de RTCP.
Le concept principal dans la mise en œuvre de ccRTP des sessions RTP est l'utilisation de files d'attente de paquets pour gérer la transmission et la réception de paquets de données RTP / applications unités de données. Dans ccRTP, un bloc de données est transmis en le mettant dans la transmission (paquets sortants) file d'attente, et reçu par l'obtenir à partir de la réception (paquets entrants) file d'attente.
Il ya plusieurs niveaux d'interface (interface publique, patrimoine public ou protégé, etc) dans ccRTP. Par exemple, le programme de démonstration de rtphello distribué avec ccRTP utilise simplement l'interface publique de la classe RTPSession et ne redéfinit pas la méthode virtuelle onGotSR, donc ce que ce programme connaît rapports SR est l'information véhiculée dans le dernier rapport de l'expéditeur de toute source, qui peuvent être récupérées par la méthode getMRSenderInfo de la classe SyncSource.
Au contraire, le programme de démonstration rtplisten redéfinit onGotSR par le biais de l'héritage et pourrait faire traitement spécialisé de ces paquets RTCP. En général, les données et les paquets de contrôle ne sont pas directement accessibles par l'interface la plus externe.
Toutes ces fonctions sont assurées par plusieurs classes et types essentiels. Les plus élémentaires sont le type StaticPayloadType énuméré et le cours StaticPayloadFormat et DynamicPayloadFormat.
Les plus importants sont les classes RTPSession, SyncSource, participant et AppDataUnit, qui représentent sessions RTP, sources de synchronisation, les participants à une application RTP et l'application des unités de données véhiculées dans des paquets de données RTP, respectivement.
Lors de l'utilisation ccRTP, l'envoi et la réception de données transportés sur de sessions RTP se fait par le biais de réception et de transmission des files d'attente gérées par la pile RTP. Dans le cas le plus fréquent, un thread d'exécution distinct pour chaque session RTP gère les files d'attente. Ce cas est le modèle de thread que nous allons généralement assumer tout au long de ce document. Notez cependant que ccRTP soutient d'autres modèles de thread, en particulier ccRTP appuie l'utilisation d'un fil d'exécution unique pour servir un ensemble de sessions RTP. Il est également possible de ne pas associer tout thread séparé avec toute session RTP, appelant manuellement les principales méthodes de tout autre filet données et de services de contrôle.
L'idée de base pour la réception de paquets avec ccRTP est que l'application ne lit pas directement les paquets provenant de prises, mais les obtient à partir d'une file d'attente de réception. La pile est chargé d'insérer des paquets reçus dans la file d'attente de réception et de traitement de cette file d'attente. En général, une réception de paquet et l'insertion dans la file d'attente de réception ne se produisent pas en même temps l'application obtient à partir de la file d'attente.
A l'inverse, l'idée de base pour la transmission de paquets avec ccRTP est que les paquets ne sont pas directement écrites dans les prises mais insérés dans une file d'attente de transmission gérée par la pile. D'une manière générale, l'insertion de paquets et la transmission se produisent à des moments différents, bien qu'il soit pas nécessaire.
Pour utiliser ccRTP, vous devez inclure l'en-tête principal (#include Deux têtes supplémentaires sont fournis par ccRTP.:
#include     Classes pour les piscines de threads de service RTP.
#include
    Cours pour les extensions RTP qui ne sont pas encore mature.
Vous devez également lier dans la bibliothèque, actuellement ccrtp1

Caractéristiques :..

  • hautement extensible à piles spécialisées
  • · Prise en charge unicast, multi-unicast et multicast. Poignées de multiples sources (y compris les sources de synchronisation et des sources contribuant) et les destinations. Prend également en charge RTP symétrique.
  • fonctions RTCP automatique de manutention, tels que l'association des sources de synchronisation à partir du même participant ou la cartographie d'horodatage NTP-RTP.
  • Généricité que pour les protocoles de réseau et de transport sous-jacents par le biais de modèles.
  • Il est threadsafe et supporte presque tous les modèle de threading.
  • RTP et RTCP contrôles tête validité génériques et extensibles.
  • Poignées Etats Source et renseignements ainsi que l'enregistrement des statistiques.
  • gère automatiquement les collisions SSRC et effectue une détection de boucle.
  • Implémente minuterie réexamen et la révision inverse.
  • Fournit bons nombres aléatoires, basées sur / dev / urandom ou, alternativement, sur MD5.

Quoi de neuf dans cette version:

  • nettoyage de code, des corrections de bogues pour RTP informations de l'expéditeur, et la fusion de correctifs Debian amont.

D'autres logiciels de développeur David Sugar

GNU SIP Witch
GNU SIP Witch

17 Feb 15

Commentaires à Common C++ RTP

Commentaires non trouvées
Ajouter un commentaire
Tourner sur les images!