Download Common C++ RTP 2.0.0

Antivirus information.

We did not scan Common C++ RTP 2.0.0 for viruses, adware, spyware or other type of malware. For your own protection it's recommended to have an updated antivirus installed on your computer when downloading and installing programs from freesoftware0.

freesoftware0 lists downloads from various software publishers, so if you have a question regarding a particular software contact the publisher directly. The download links for Common C++ RTP 2.0.0 are provided to you by freesoftware0 without any warranties, representations or gurantees of any kind, so download at your own risk.


GNU ccRTP is an implementation of RTP, the real-time transport protocol from the IETF (see RFC 3550, RFC 3551 and RFC 3555). ccRTP is a C++ library based on GNU Common C++ which provides a high performance, flexible and extensible standards-compliant RTP stack with full RTCP support. The design and implementation of ccRTP make it suitable for high capacity servers and gateways as well as personal client applications.

In designing ccRTP, we have taken into account that RTP has been defined as an application level protocol framework rather than a typical Internet transport protocol such as TCP and UDP. Thus, RTP is hardly ever implemented as a layer separated from the application.

Consequently, RTP applications often must customize the adaptable RTP packet layout and processing rules, timing constraints, session membership rules as well as other RTP and RTCP mechanisms. ccRTP aims to provide a framework for the RTP framework, rather than being just an RTP packet manipulation library.

Support for both audio and video data is also considered in the design of ccRTP, that can do partial frame splits/re-assembly. Unicast, multi-unicast and multicast transport models are supported, as well as multiple active synchronization sources, multiple RTP sessions (SSRC spaces), and multiple RTP applications (CNAME spaces). This allows it's use for building all forms of Internet standards based audio and visual conferencing systems.

GNU ccRTP is threadsafe and high performance. It uses packet queue lists for the reception and transmission of data packets. Both inter-media and intra-media synchronization is automatically handled within the incoming and outgoing packet queues. GNU ccRTP offers support for RTCP and many other standard and extended features that are needed for both compatible and advanced streaming applications.

It can mix multiple payload types in stream, and hence can be used to impliment RFC 2833 compliant signaling applications as well as other specialized things. GNU ccRTP also offers direct RTP and RTCP packet filtering.

GNU ccRTP uses templates to isolate threading and sockets related dependencies, so that it can be used to impliment realtime streaming with different threading models and underlying transport protocols, not just with IPV4 UDP sockets. For a more detailed list of ccRTP features you can have a look at the programmers' manual.

At its highest level, ccRTP provides classes for the real-time transport of data through RTP sessions, as well as the control functions of RTCP.

The main concept in the ccRTP implementation of RTP sessions is the use of packet queues to handle transmission and reception of RTP data packets/application data units. In ccRTP, a data block is transmitted by putting it into the transmission (outgoing packets) queue, and received by getting it from the reception (incoming packets) queue.

There are several levels of interface (public interface, public or protected inheritance, etc) in ccRTP. For instance, the rtphello demo program distributed with ccRTP just uses the public interface of the RTPSession class and does not redefine the virtual method onGotSR, thus what this program knows about SR reports is the information conveyed in the last sender report from any source, which can be retrieved via the getMRSenderInfo method of the SyncSource class.

On the contrary, the rtplisten demo program redefines onGotSR by means of inheritance and could do specialized processing of these RTCP packets. Generally, both data and control packets are not directly accessible through the most external interface.

All this functions are performed through a few essential classes and types. The most basic ones are the enumerated type StaticPayloadType, and the classes StaticPayloadFormat and DynamicPayloadFormat.

The most important ones are the classes RTPSession, SyncSource, Participant and AppDataUnit, that represent RTP sessions, synchronization sources, participants in an RTP application, and application data units conveyed in RTP data packets, respectively.

When using ccRTP, both sending and receiving of data transported over RTP sessions is done through reception and transmission queues handled by the RTP stack. In the most common case, a separate execution thread for each RTP session handles the queues. This case is the threading model that we will generally assume throughout this document. Note however that ccRTP supports other threading models, particularly ccRTP supports the use of a single execution thread to serve a set of RTP sessions. It is also possible to not associate any separate thread with any RTP session, manually calling the main data and control service methods from whatever other thread.

The basic idea for packet reception with ccRTP is that the application does not directly read packets from sockets but gets them from a reception queue. The stack is responsible for inserting received packets in the reception queue and handling this queue. In general, a packet reception and insertion in the reception queue does not occur at the same time the application gets it from the queue.

Conversely, the basic idea for packet transmission with ccRTP is that packets are not directly written to sockets but inserted in a transmission queue handled by the stack. In general, packet insertion and transmission occur at different times, though it is not necessary.

In order to use ccRTP, you must include the main header (#include < ccrtp/rtp.h >. Two additional headers are provided by ccRTP:

#include < ccrtp/rtppool.h
Classes for pools of RTP service threads.
#include < ccrtp/rtpext.h >
Classes for RTP extensions which are not mature yet.

You must also link in the library, currently ccrtp1.

Product's homepage

Here are some key features of "Common C++ RTP":

· Highly extensible to specialized stacks.
· · Supports unicast, multi-unicast and multicast. Handles multiple sources (including synchronization sources and contributing sources) and destinations. Also supports symmetric RTP.
· Automatic RTCP functions handling, such as association of synchronization sources from the same participant or NTP-RTP timestamp mapping.
· Genericity as for underlying network and transport protocols through templates.
· It is threadsafe and supports almost any threading model.
· Generic and extensible RTP and RTCP header validity checks.
· Handles source states and information as well as statistics recording.
· Automatically handles SSRC collisions and performs loop detection.
· Implements timer reconsideration and reverse reconsideration.
· Provides good random numbers, based on /dev/urandom or, alternatively, on MD5.

What's New in This Release: [ read full changelog ]

· Code cleanup, bugfixes for RTP sender info, and merging of Debian patches upstream.

Related programsOur Recommendations

Cornice 0.8

Cornice provides a Service class you can use to define web services in Pyramid.Each instance of a


Guake 0.5.2

A drop-down terminal emulator designed to work with multiple desktop environments


Golf Putt Champion 1

Are you a golf putt champion? Will the crowd roar in delight or moan in disappointment as you judge


smoothPageScroll 0.20

smoothPageScroll is a Vim plugin that offers smooth page scroll.Developer commentsI found scrolling


MyJSQLView 3.47

MyJSQLView is an open source application that allows you to delete, add, edit or view entries in a


ACL2 3.5

ACL2 is a programming language in which you can model computer systems and a tool to help you prove



DB Visual ARCHITECT (DB-VA) offers software developers an excellent solution for database


Falling Sand 2.2.1

The popular falling sand online game.About Google ChromeGoogle Chrome is a browser that combines a


World Wildlife Fund 1.0

World Wildlife Fund theme for Google Chrome browser that fits most resolutions.About Google


Config::Layered 0.000003

Config::Layered is a Python module that aims to make it easy for programmers, operations teams and


Thumbnail of Common C++ RTP 2.0.0


4 stars

Price: FREE

Publisher/Developer: David Sugar

Release Date: Jul 3, 2012

View Program Details

Top Downloadslast week