Common C++ RTP

Screenshot Software:
Common C++ RTP
Mga detalye ng Software:
Bersyon: 2.0.0
I-upload ang petsa: 11 May 15
Nag-develop: David Sugar
Lisensya: Libre
Katanyagan: 35

Rating: nan/5 (Total Votes: 0)

GNU ccRTP ay isang pagpapatupad ng RTP, ang real-time transport protocol mula sa IETF (tingnan RFC 3550, RFC 3551 at RFC 3555). ccRTP ay isang C ++ library batay sa GNU Common C ++ na nagbibigay ng isang mataas na pagganap, nababaluktot at extensible pamantayan-sang-ayon RTP stack na may buong RTCP support. Ang disenyo at pagpapatupad ng ccRTP gawin itong naaangkop para sa mataas na kapasidad server at gateway pati na rin ang personal na mga aplikasyon ng client.
Sa pagdisenyo ccRTP, kami ay kinuha sa account na RTP ay tinukoy bilang isang antas ng application protocol balangkas sa halip na sa isang tipikal Internet protocol transportasyon tulad ng TCP at UDP. Kaya, RTP ay hindi kadalasan ipinatupad bilang isang layer hiwalay mula sa mga application.
Bilang resulta, RTP aplikasyon madalas ay dapat i-customize ang ibagay packet layout at pagproseso patakaran RTP, tiyempo limitasyon, patakaran kasapi session pati na rin ang iba pang mga RTP at RTCP mekanismo. ccRTP naglalayong magbigay ng isang framework para sa RTP framework, sa halip na lamang ng isang RTP packet manipulasyon library.
Suporta para sa parehong mga audio at video data ay itinuturing din sa disenyo ng ccRTP, na maaaring gawin Splits partial frame / re-assembly. Unicast, multi-unicast at multicast modelo ng sasakyan ay suportado, pati na rin ang maramihang mga aktibong sources synchronization, maramihang RTP session (SSRC espasyo), at ang maramihang RTP aplikasyon (CNAME espasyo). Ito ay nagpapahintulot sa ito ay gamitin para sa mga gusali ang lahat ng porma ng mga pamantayan ng Internet base sa audio at conferencing sistema visual.
GNU ccRTP ay threadsafe at mataas na pagganap. Ito ay gumagamit ng mga listahan ng packet pila para sa pagtanggap at pagpapadala ng data sa packet. Parehong inter-media at synchronization intra-media ay awtomatikong hawakan sa loob ng mga papasok at papalabas na packet queue. GNU ccRTP ay nag-aalok ng suporta para sa RTCP at marami pang ibang standard at pinalawig na mga tampok na kinakailangan para sa parehong mga tugmang at advanced streaming application.
Maaari itong ihalo sa maramihang mga uri ng kargamento sa stream, at samakatuwid ay maaaring gamitin upang impliment RFC 2833 sang senyas aplikasyon pati na rin ang iba pang mga dalubhasang mga bagay. Nag-aalok din GNU ccRTP direct RTP at RTCP packet filtering.
GNU ccRTP gumagamit ng mga template upang ihiwalay threading at sockets kaugnayan dependencies, sa gayon ay maaari itong magamit upang impliment realtime streaming na may ibang threading modelo at pinagbabatayan protocol transportasyon, hindi lamang sa mga IPV4 UDP sockets. Para sa mas detalyadong listahan ng mga tampok ccRTP maaari kang magkaroon ng isang pagtingin sa manual programmers '.
Sa kanyang pinakamataas na antas, ccRTP nagbibigay ng mga klase para sa mga real-time na sasakyan ng data sa pamamagitan ng RTP session, pati na rin ang control function ng RTCP.
Ang pangunahing konsepto sa ccRTP pagpapatupad ng RTP session ay ang paggamit ng packet queue upang mahawakan pagpapadala at pagtanggap ng RTP packet data / application data units. Sa ccRTP, isang bloke ng data ay ipinadala sa pamamagitan ng paglagay ito sa transmission (papalabas na packet) pila, at natanggap sa pamamagitan ng pagkuha ng ito mula sa reception (papasok na packet) queue.
Mayroong ilang mga antas ng interface (pampublikong interface, public o protektado mana, atbp) sa ccRTP. Halimbawa, ang rtphello demo program na ibinahagi sa ccRTP gumagamit lamang ng mga pampublikong interface ng RTPSession klase at hindi define ulit ang virtual na paraan onGotSR, kaya kung ano ang alam ng programang ito tungkol SR ulat ay ang mga impormasyon na inihatid sa huling ulat sender mula sa anumang pinagmulan, na maaaring nakuha sa pamamagitan ng paraan ng SyncSource klase getMRSenderInfo.
Sa kabilang banda, redefines onGotSR ang rtplisten program demo sa pamamagitan ng mana at maaaring gawin espesyal na pagproseso ng mga RTCP packet. Sa pangkalahatan, ang parehong mga data at control packet ay hindi direkta mapupuntahan sa pamamagitan ng karamihan ng mga panlabas na interface.
Lahat ng mga function na ito ay ginanap sa pamamagitan ng ilang mahahalagang mga klase at uri. Ang pinaka-basic na iyan ay ang enumerated uri StaticPayloadType, at ang mga klase StaticPayloadFormat at DynamicPayloadFormat.
Ang pinaka-mahalaga sa buhay ay ang mga klase RTPSession, SyncSource, Kalahok at AppDataUnit, na kumakatawan sa RTP session, sources synchronization, kalahok sa isang RTP application, at application data units conveyed sa RTP packet data, ayon sa pagkakabanggit.
Kapag gumagamit ccRTP, parehong pagpapadala at pagtanggap ng data transported sa RTP session ay tapos na sa pamamagitan ng pagtanggap at pagpapadala queue pagdederekta sa pamamagitan ng RTP stack. Sa pinaka-karaniwang mga kaso, ang isang hiwalay na pagpapatupad thread para sa bawat RTP session humahawak sa queue. Ang kasong ito ay ang modelo threading na kami ipalagay sa pangkalahatan sa buong dokumentong ito. Tandaan gayunpaman na sumusuporta ccRTP iba ​​pang mga modelo threading, lalo na sumusuporta ccRTP ang paggamit ng isang solong pagpapatupad thread na maglingkod ng isang set ng RTP session. Ito ay posible rin na hindi iugnay ang anumang hiwalay na thread sa anumang RTP session, mano-mano ang pagtawag sa mga pangunahing data at serbisyo control pamamaraan mula sa anumang iba pang mga thread.
Ang pangunahing ideya para sa packet pagtanggap sa ccRTP ay na ang application ay hindi direkta basahin packet mula sockets ngunit makakakuha ng ito mula sa isang reception queue. Stack ay responsable para sa pagpasok natanggap na packet sa reception pila at paghawak ng mga ito queue. Sa pangkalahatan, ang isang packet reception at insertion sa reception queue ay hindi nangyari sa parehong panahon ay makakakuha ng ito mula sa pila ang application.
Sa kabaligtaran, ang pangunahing ideya para sa packet paghahatid sa ccRTP na packet ay hindi direktang nakasulat sa sockets ngunit nakapasok sa isang transmission queue pagdederekta sa pamamagitan ng stack. Sa pangkalahatan, ang packet insertion at paghahatid mangyari sa iba't ibang panahon, kahit na ito ay hindi kinakailangan.
Upang magamit ccRTP, dapat mong isama ang mga pangunahing header (#include Dalawang karagdagang mga header ay ipinagkakaloob sa pamamagitan ccRTP.:
#include     Klase para sa mga pool ng RTP thread service.
#include
    Klase para sa RTP extension na kung saan ay hindi pa mature.
Dapat mo ring link sa library, kasalukuyang ccrtp1

Features ..

  • Mga mataas extensible sa specialized stack
  • · Sumusuporta unicast, multi-unicast at multicast. Humahawak ng maramihang mga pinagmumulan (kabilang ang pag-synchronize mga pinagmumulan at nag-aambag sources) at destinasyon. Sinusuportahan din ng simetriko RTP.
  • Awtomatikong RTCP function paghawak, tulad ng mga samahan ng mga pinagmumulan ng synchronization mula sa parehong kalahok o NTP-RTP timestamp mapping.
  • genericity bilang para pinagbabatayan protocol network at transportasyon sa pamamagitan ng mga template.
  • Ito ay threadsafe at sumusuporta sa halos lahat ng anumang modelo threading.
  • Generic at extensible header bisa tseke RTP at RTCP.
  • humahawak pinagmulan ng mga estado at impormasyon pati na rin statistics record.
  • Awtomatikong humahawak SSRC collisions at gumaganap loop detection.
  • nagpapatupad timer muling pagsasaalang-alang at reverse muling pagsasaalang-alang.
  • Nagbibigay ng magandang mga random na numero, batay sa / dev / urandom o kaya naman, sa MD5.

Ano ang bago sa release na ito:

  • Code paglilinis, bugfixes para RTP info nagpadala, at pinagsasama ng patch Debian upstream.

Iba pang mga software developer ng David Sugar

GNU SIP Witch
GNU SIP Witch

17 Feb 15

Mga komento sa Common C++ RTP

Mga Komento hindi natagpuan
Magdagdag ng komento
I-sa mga imahe!