Common C++ RTP

Software screenshot:
Common C++ RTP
Software informatie:
Versie: 2.0.0
Upload datum: 11 May 15
Ontwikkelaar: David Sugar
Licentie: Gratis
Populariteit: 35

Rating: nan/5 (Total Votes: 0)

GNU ccRTP is een implementatie van RTP, de real-time transport protocol van de IETF (zie RFC 3550, RFC 3551 en RFC 3555). ccRTP is een C ++ bibliotheek gebaseerd op GNU Common C ++ die een hoge prestaties, flexibele en uitbreidbare standards-compliant RTP stack met volledige RTCP ondersteuning biedt. Het ontwerp en de implementatie van ccRTP maken het geschikt voor hoge capaciteit servers en gateways evenals persoonlijke client applicaties.
Bij het ontwerpen van ccRTP, hebben we rekening mee gehouden dat RTP is gedefinieerd als een applicatie-niveau protocol kader in plaats van een typische Internet transport protocol, zoals TCP en UDP. Aldus wordt RTP zelden toegepast als een laag gescheiden van de toepassing.
Bijgevolg RTP applicaties vaak moet de aanpasbare RTP pakket layout en verwerking regels aan te passen, de timing beperkingen, regels sessie lidmaatschap evenals andere RTP en RTCP mechanismen. ccRTP bedoeld om een ​​kader te bieden voor de RTP-kader, in plaats van alleen maar een RTP pakket manipulatie bibliotheek.
Ondersteuning voor zowel audio en videogegevens wordt eveneens overwogen in het ontwerp van ccRTP, kan dat gedeeltelijke kader splitst / hermontage. Unicast, multi-unicast en multicast vervoermodellen worden ondersteund, alsmede meerdere actieve synchronisatiebronnen, verschillende RTP sessies (SSRC plaatsen), en meerdere RTP-toepassingen (CNAME spaties). Dit laat het is te gebruiken voor het bouwen van alle vormen van internet standaarden gebaseerde audio en visuele conferencing systemen.
GNU ccRTP is threadsafe en hoge prestaties. Het maakt gebruik van packet wachtrij lijsten voor de ontvangst en verzending van datapakketten. Beide inter-media en intra-media synchronisatie wordt automatisch binnen de inkomende en uitgaande packet wachtrijen behandeld. GNU ccRTP biedt ondersteuning voor RTCP en vele andere standaard en uitgebreide functies die nodig zijn voor zowel compatibel en geavanceerde streaming toepassingen.
Het kan meerdere types payload mengen in stroom en kan daarom worden gebruikt om RFC 2833 compliant signalering toepassingen en andere gespecialiseerde dingen impliment. GNU ccRTP biedt ook directe RTP en RTCP packet filtering.
GNU ccRTP gebruikt templates te isoleren threading en stopcontacten verwante afhankelijkheden, zodat het kan worden gebruikt om realtime streaming met verschillende threading modellen en onderliggende transportprotocollen, niet alleen met IPv4 UDP sockets impliment. Voor een meer gedetailleerde lijst van ccRTP functies die u kunt een kijkje nemen op de handleiding van de programmeurs 'te hebben.
Op het hoogste niveau ccRTP voorziet klassen voor de real-time transport van gegevens via RTP zittingen, evenals de besturingsfuncties van RTCP.
Het belangrijkste concept van de ccRTP uitvoering van RTP sessies pakketgeschakelde wachtrijen voor verzending en ontvangst van RTP data packets / toepassingsgegevens eenheden verwerken. In ccRTP, wordt een data blok verzonden door het in de transmissie (uitgaande pakketten) wachtrij, en door het verkrijgen van het van de receptie (inkomende pakketten) wachtrij ontvangen.
Er zijn verschillende niveaus van de interface (openbare interface, openbare of beschermde erfenis, etc) in ccRTP. Bijvoorbeeld, de rtphello demo programma gedistribueerd met ccRTP gebruikt alleen de openbare interface van de klasse RTPSession en niet de virtuele methode onGotSR herdefiniëren, dus wat dit programma weet over SR rapporten is het overgebracht in de laatste afzender rapport informatie uit elke bron, die kan worden opgehaald via de getMRSenderInfo werkwijze volgens de SyncSource klasse.
Integendeel, het rtplisten demoprogramma herdefinieert onGotSR via overerving en kunnen gespecialiseerde verwerking daarvan RTCP pakketten doen. In het algemeen, zowel data en controle pakketten zijn niet direct toegankelijk via de meeste externe interface.
Al deze functies worden uitgevoerd door middel van een paar essentiële klassen en types. De meest fundamentele daarvan zijn de opgesomde soort StaticPayloadType, en de klassen StaticPayloadFormat en DynamicPayloadFormat.
De belangrijkste zijn de klassen RTPSession, SyncSource, Deelnemer en AppDataUnit, dat RTP sessies synchronisatie bronnen, deelnemers aan een RTP toepassing en applicatie data-eenheden overgebracht in RTP-datapakketten respectievelijk vertegenwoordigen.
Bij het gebruik van ccRTP, zowel verzenden en ontvangen van meer dan RTP sessies vervoerd gegevens wordt gedaan door de ontvangst en verzending wachtrijen behandeld door de RTP stack. In de meest voorkomende geval is een aparte uitvoering thread voor elke RTP sessie behandelt de wachtrijen. Deze zaak is de threading model dat we in het algemeen zullen aannemen in dit document. Merk echter op dat ccRTP ondersteunt andere threading-modellen, in het bijzonder ccRTP ondersteunt het gebruik van een enkele thread uitvoering om een ​​set van RTP sessies dienen. Het is ook mogelijk om niet te associëren geen aparte thread met enige RTP sessie handmatig aanroepen van de belangrijkste gegevens en controledienst methoden uit welke andere thread.
Het basisidee voor packet ontvangst met ccRTP is dat de aanvraag niet direct gelezen pakketten van sockets, maar krijgt ze van een receptie wachtrij. De stack is verantwoordelijk voor het invoegen van ontvangen pakketten in de receptie wachtrij en hanteren deze wachtrij. In het algemeen is een pakket ontvangen en integratie in ontvangst wachtrij niet gelijktijdig optreden wanneer het programma wordt vanuit de wachtrij.
Omgekeerd is de basisidee voor packet transmissie met ccRTP is dat pakketten worden niet direct geschreven om sockets, maar geplaatst in een transmissie wachtrij behandeld door de stapel. Over het algemeen packet insertie en transmissie op verschillende tijdstippen optreden, maar het is niet noodzakelijk.
. Om ccRTP gebruiken, moet u de belangrijkste header (#include Twee extra headers worden geleverd door ccRTP zijn:
#include     Klassen voor zwembaden van RTP dienst draden.
#include
    Klassen voor RTP extensies die nog niet zijn rijpen.
Je moet ook een koppeling in de bibliotheek, momenteel ccrtp1

Eigenschappen :..

  • Zeer uitbreidbaar tot gespecialiseerde stapels
  • · Ondersteunt unicast, multi-unicast en multicast. Verwerkt meerdere bronnen (inclusief synchronisatie bronnen en bijdragen bronnen) en bestemmingen. Ondersteunt symmetrische RTP ook.
  • Automatische RTCP functies hanteren, zoals de vereniging van de synchronisatie bronnen van dezelfde deelnemer of NTP-RTP timestamp mapping.
  • Genericiteit als voor onderliggende netwerk en transport protocollen door middel van templates.
  • Het is multi-threaded en ondersteunt bijna alle threading model.
  • Algemeen en uitbreidbare RTP en RTCP geldigheid header controles.
  • Handles bron staten en informatie, alsmede statistieken opnemen.
  • Automatisch handvatten SSRC botsingen en voert lusdetectie.
  • Implementeert timer heroverweging en reverse heroverweging.
  • Biedt goede willekeurige getallen, gebaseerd op / dev / urandom of, als alternatief, op MD5.

Wat is nieuw in deze release:

  • Code opruimen, bugfixes voor RTP afzender info en samenvoeging van Debian plekken stroomopwaarts.

Andere software van ontwikkelaar David Sugar

GNU SIP Witch
GNU SIP Witch

17 Feb 15

Reacties op Common C++ RTP

Reacties niet gevonden
Commentaar toe te voegen
Zet op de beelden!