Common C++ RTP

Screenshot Λογισμικό:
Common C++ RTP
Στοιχεία Λογισμικού:
Εκδοχή: 2.0.0
Ανεβάστε ημερομηνία: 11 May 15
Προγραμματιστής: David Sugar
Άδεια: Δωρεάν
Δημοτικότητα: 35

Rating: nan/5 (Total Votes: 0)

GNU ccRTP είναι μια υλοποίηση της RTP, το πρωτόκολλο πραγματικού χρόνου μεταφοράς από την IETF (βλέπε RFC 3550, RFC 3551 και RFC 3555). ccRTP είναι μια βιβλιοθήκη C ++ που βασίζεται στο GNU Κοινή C ++ το οποίο παρέχει υψηλή απόδοση, ευέλικτη και επεκτάσιμη συμβατός με τα πρότυπα RTP στοίβα με την πλήρη υποστήριξη RTCP. Ο σχεδιασμός και η υλοποίηση των ccRTP το καθιστούν κατάλληλο για την υψηλή servers ικανότητα και πύλες, καθώς και προσωπικές εφαρμογές πελάτη.
Κατά το σχεδιασμό ccRTP, έχουμε λάβει υπόψη ότι η RTP έχει οριστεί ως ένα πλαίσιο πρωτόκολλο επιπέδου εφαρμογής και όχι ένα τυπικό πρωτόκολλο μεταφοράς του Διαδικτύου, όπως το TCP και UDP. Έτσι, η RTP είναι σχεδόν ποτέ υλοποιηθεί ως ένα στρώμα διαχωρίζεται από την εφαρμογή.
Κατά συνέπεια, οι αιτήσεις RTP συχνά πρέπει να προσαρμόσετε τις προσαρμόσιμες RTP διάταξη και την επεξεργασία πακέτων κανόνες, χρονικούς περιορισμούς, κανόνες ένταξης συνεδρίασης, καθώς και άλλοι μηχανισμοί RTP και RTCP. ccRTP έχει ως στόχο να παρέχει ένα πλαίσιο για το πλαίσιο της RTP, αντί να είναι απλώς ένα RTP βιβλιοθήκη χειραγώγησης πακέτο.
Υποστήριξη τόσο για δεδομένα ήχου και βίντεο, επίσης, υπόψη κατά τον σχεδιασμό των ccRTP, που μπορεί να κάνει μερική πλαίσιο χωρίζει / επανασυναρμολόγηση. Unicast, multi-unicast και multicast μοντέλα μεταφοράς υποστηρίζονται, καθώς και πολλαπλές ενεργές πηγές συγχρονισμού, πολλαπλές συνεδρίες RTP (χώροι SSRC), και πολλαπλές εφαρμογές RTP (χώροι CNAME). Αυτό επιτρέπει είναι η χρήση για την κατασκευή όλων των μορφών προτύπων που βασίζονται στο Διαδίκτυο οπτικά συστήματα ήχου conferencing και.
GNU ccRTP είναι threadsafe και υψηλή απόδοση. Χρησιμοποιεί καταλόγους ουρά πακέτων για την υποδοχή και την μετάδοση των πακέτων δεδομένων. Τόσο μεταξύ των μέσων ενημέρωσης και συγχρονισμού ενδο-media γίνεται αυτόματα εντός των εισερχόμενων και εξερχόμενων ουρές πακέτων. GNU ccRTP προσφέρει υποστήριξη για RTCP και πολλά άλλα τυποποιημένα και να επεκταθούν τα χαρακτηριστικά που απαιτούνται για τόσο συμβατά και προηγμένες εφαρμογές streaming.
Μπορεί να αναμειγνύεται πολλαπλούς τύπους φορτίου στη ροή, και ως εκ τούτου μπορεί να χρησιμοποιηθεί για impliment RFC 2833 συμβατές εφαρμογές σηματοδότηση καθώς και άλλα εξειδικευμένα πράγματα. GNU ccRTP προσφέρει επίσης άμεση RTP και το φιλτράρισμα πακέτων RTCP.
GNU ccRTP χρησιμοποιεί πρότυπα για να απομονώσουν σπείρωμα και πρίζες που σχετίζονται με τις εξαρτήσεις, έτσι ώστε να μπορεί να χρησιμοποιηθεί για να impliment πραγματικό χρόνο συνεχούς ροής με διαφορετικά μοντέλα σπείρωμα και υποκείμενα πρωτόκολλα μεταφοράς, όχι μόνο με υποδοχές IPV4 UDP. Για μια πιο λεπτομερή λίστα των χαρακτηριστικών ccRTP μπορείτε να ρίξετε μια ματιά στο εγχειρίδιο των προγραμματιστών.
Στο υψηλότερο επίπεδο, ccRTP παρέχει μαθήματα για τη σε πραγματικό χρόνο μεταφορά δεδομένων μέσω του RTP συνεδρίες, καθώς και των λειτουργιών ελέγχου RTCP.
Η βασική ιδέα στην υλοποίηση ccRTP της RTP συνεδρίες είναι η χρήση του πακέτου ουρές για να χειριστεί τη μετάδοση και λήψη πακέτων δεδομένων RTP / μονάδες δεδομένων εφαρμογών. Σε ccRTP, ένα μπλοκ δεδομένων που διαβιβάζονται από τη θέση της σε μετάδοση (εξερχόμενων πακέτων) ουρά, και έλαβε από το να πάρει το από την υποδοχή (εισερχόμενα πακέτα) ουρά.
Υπάρχουν διάφορα επίπεδα της διεπαφής (interface δημόσια, δημόσια ή προστατευμένη κληρονομιά, κλπ) σε ccRTP. Για παράδειγμα, το πρόγραμμα rtphello demo διανέμεται με ccRTP χρησιμοποιεί μόνο τη δημόσια διεπαφή της κλάσης RTPSession και δεν επαναπροσδιορίσει την εικονική μέθοδος onGotSR, έτσι τι είναι αυτό το πρόγραμμα γνωρίζει σχετικά με το SR εκθέσεις είναι οι πληροφορίες που μεταβιβάζονται στην τελευταία έκθεση του αποστολέα από οποιαδήποτε πηγή, η οποία μπορούν να ανακτηθούν μέσω της μεθόδου getMRSenderInfo της κατηγορίας SyncSource.
Αντίθετα, η rtplisten πρόγραμμα επίδειξης επαναπροσδιορίζει onGotSR μέσω της κληρονομιάς και θα μπορούσε να κάνει εξειδικευμένη επεξεργασία αυτών των πακέτων RTCP. Σε γενικές γραμμές, τα δεδομένα και τα πακέτα ελέγχου δεν είναι άμεσα προσβάσιμα μέσω του πιο εξωτερικό περιβάλλον.
Οι Όλα αυτά λειτουργίες που εκτελούνται μέσα από ένα μερικά βασικά μαθήματα και τα είδη. Οι πιο βασικές από αυτές είναι η enumerated StaticPayloadType τύπος, και η StaticPayloadFormat τάξεις και DynamicPayloadFormat.
Οι πιο σημαντικές από αυτές είναι οι κλάσεις RTPSession, SyncSource, Συμμετέχων και AppDataUnit, που αντιπροσωπεύουν RTP συνεδρίες, πηγές συγχρονισμού, οι συμμετέχοντες σε μια εφαρμογή RTP, και οι μονάδες δεδομένων εφαρμογών μεταφέρονται σε πακέτα δεδομένων RTP, αντίστοιχα.
Όταν χρησιμοποιείτε ccRTP, αποστολή και λήψη των δεδομένων που μεταφέρονται σε RTP συνεδρίες γίνεται μέσω της λήψης και διαβίβασης ουρές γίνεται από τη στοίβα RTP. Στην πιο συνηθισμένη περίπτωση, ένα ξεχωριστό νήμα εκτέλεσης για κάθε συνεδρία RTP χειρίζεται τις ουρές. Η υπόθεση αυτή είναι το μοντέλο νημάτων που θα αναλάβει γενικά όλο το παρόν έγγραφο. Σημειώστε, ωστόσο, ότι ccRTP υποστηρίζει άλλα μοντέλα threading, ιδιαίτερα ccRTP υποστηρίζει τη χρήση ενός μόνο νήμα εκτέλεσης να εξυπηρετήσει μια σειρά από συνεδρίες RTP. Είναι επίσης δυνατό να μην συνδέσει κάθε ξεχωριστό νήμα με κάθε συνεδρία RTP, το χέρι καλώντας τις κύριες μεθόδους των δεδομένων και των υπηρεσιών ελέγχου από οποιαδήποτε άλλο νήμα.
Η βασική ιδέα για τη λήψη πακέτου με ccRTP είναι ότι η εφαρμογή δεν διαβάζει άμεσα τα πακέτα από τις πρίζες, αλλά τους ανθρώπους από μια ουρά υποδοχής. Η στοίβα είναι υπεύθυνη για την εισαγωγή λάβει τα πακέτα στην ουρά παραλαβής και διακίνησης αυτήν την ουρά. Σε γενικές γραμμές, μια υποδοχή πακέτων και εισαγωγή στην ουρά υποδοχή δεν εμφανίζεται κατά την ίδια στιγμή η εφαρμογή παίρνει από την ουρά.
Αντιστρόφως, η βασική ιδέα για μετάδοση πακέτων με ccRTP είναι ότι τα πακέτα δεν είναι γραμμένα απευθείας σε υποδοχές, αλλά εισάγεται σε μια ουρά μετάδοση χειρίζεται από τη στοίβα. Σε γενικές γραμμές, πακέτο εισαγωγή και μετάδοση εμφανίζονται σε διαφορετικούς χρόνους, αν και αυτό δεν είναι απαραίτητο.
Για να χρησιμοποιήσετε ccRTP, θα πρέπει να περιλαμβάνει την κύρια κεφαλίδα (#include Δύο επιπλέον κεφαλίδες που παρέχονται από ccRTP.:
#include     Μαθήματα για πισίνες νημάτων υπηρεσίας από την RTP.
#include
    Μαθήματα για τις επεκτάσεις της RTP που δεν έχουν ωριμάσει ακόμη.
Θα πρέπει επίσης να συνδέσετε στη βιβλιοθήκη, σήμερα ccrtp1

Χαρακτηριστικά :..

  • Εξαιρετικά επεκτάσιμο σε εξειδικευμένες στοίβες
  • · Υποστηρίζει unicast, multi-unicast και multicast. Χειρίζεται πολλαπλές πηγές (συμπεριλαμβανομένων πηγών συγχρονισμό και τη συμβολή των πηγών) και προορισμούς. Επίσης, υποστηρίζει συμμετρική RTP.
  • Αυτόματη RTCP λειτουργίες χειρισμού, όπως η σύνδεση των πηγών συγχρονισμό από τον ίδιο συμμετέχοντα ή ΝΤΡ-RTP χαρτογράφηση χρονοσήμανση.
  • γενίκευσης και για υποκείμενου δικτύου και τη μεταφορά πρωτοκόλλων μέσω των προτύπων.
  • Είναι threadsafe και υποστηρίζει σχεδόν κάθε μοντέλο νημάτων.
  • Generic και επεκτάσιμη RTP και RTCP ελέγχους εγκυρότητας μπάλα.
  • Λαβές πηγή δηλώνει και πληροφοριών, καθώς και στατιστικά στοιχεία εγγραφής.
  • χειρίζεται αυτόματα SSRC συγκρούσεις και εκτελεί ανίχνευση βρόχου.
  • Εφαρμόζει επανεξέταση χρονόμετρο και την αντίστροφη επανεξέταση.
  • Παρέχει καλή τυχαίων αριθμών, με βάση την / dev / urandom ή, εναλλακτικά, σε MD5.

Τι είναι καινούργιο σε αυτή την έκδοση:

  • Κωδικός καθαρισμού, διορθώσεις για το RTP πληροφορίες αποστολέα, και η συγχώνευση των μπαλώματα Debian ανάντη.

Άλλο λογισμικό του προγραμματιστή David Sugar

GNU SIP Witch
GNU SIP Witch

17 Feb 15

Σχόλια για Common C++ RTP

Τα σχόλια δεν βρέθηκε
προσθήκη σχολίου
Ενεργοποιήστε τις εικόνες!