Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages   Examples  

ccRTP Library Reference

Overview (README)

Copyright (c) 1999-2001 by Open Source Telecom Corporation.
Verbatim copying and distribution of this entire article is permitted
in any medium, provided this notice is preserved.

Welcome to GNU ccRTP, the RTP protocol stack of GNU Common C++ and the
GNU project.  GNU ccRTP was created as a "generic" and high performance 
RTP stack and uses queued packet lists for both sending and receiving of 
realtime data.  A single scheduler thread both schedules delivery of 
timestamped outgoing packets, and processes incoming packets into the 
receive queue.  A seperate thread or process can then feed data into the 
stack for delivery and process pending requests without interfering with 
the stack service thread itself.

By using queued packet buffers in linked lists it is possible to
achieve jitter buffering and to mix and change payload types
mid-stream without complicated buffer management.  Jitter buffering
can be achieved both by prebuffering packets before sending and by
delaying processing of packets pending on the receive queue.

This stack is being designed to support both RTP and RTCP, and is general 
purpose enough to use in audio and video conferencing, for building 
streaming media servers, and for internet telephony.  Current releases of 
GNU ccRTP now support multicast networks as well as point to point RTP, 
multiple source connections, and many other advanced features.  Any 
questions about ccrtp can be handled either in the GNU Common C++ mailing 
lists or thru ccrtp-devel@gnu.org.

David

TODO List

- URGENT!!!: Fill the SR, RR and some SDES reports 

        - NTP - Timestamp  synchronization  (for end2end delay)

- Add user interface for RTP header extensions and CSRC specification

- Kitchen: playout delay compensation

- QueueRTCPManager::TimeOutSSRCs()

- RTPQueue::newTalkSpurt() -> M

- thoroughly check multicast support

- provide faster handling of sessions with one or few senders

- Filter PT field (RTQueue::setReceivedPayloadType)

- Add good exception handling

- good suport for RTP muxing - mixers and translators

- for video, timestamp must be determined from the frame number or from
the system clock.

- QueueRTCPManager::QueueRTCPManager(..): path MTU is always assumed to be 1500

        - path MTU discovery for RTCP (Arrggg, we use UDP!)

- check robust handling of payload change

- Add support for dynamic pts (BT656, H263-1998, MP1S, MP2P, BMPEG) 

- Address the enhanced/best-effort service issue

- queue.cpp: Improve random number generation

- members.cpp: a good hashing!

- Implement encryption support?

- Test ccRTP following RFC 3158: ``RTP Testing Strategies'', 


(Experimental things, close everything up here before looking down here)

* Implement SSRC sampling algorithm

* Consider SRTP profile, currently only immature draft

Last change: 2 Sep 2001


Generated at Tue Oct 16 11:17:51 2001 for ccRTP by doxygen1.2.10 written by Dimitri van Heesch, © 1997-2001