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
- 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