2010-12-04  Werner Dittmann

	Added a new method to RTPPacket and modified the takeInData to fix 
	the handling of padding in case SRTP is active. SRTP encrypts the 
	full payload including the padded bytes thus at the receiving end 
	this would give the wrong number of bytes added to the payload.

2010-10-04  David Sugar <dyfet@gnutelephony.org>

	More code cleanup for new 1.7.1 release.

2008-12-12  David Sugar <dyfet@gnutelephony.org>

	General code cleanup and pedantic check for what will be release 1.7.0.

2008-08-20  David Sugar <dyfet@gnutelephony.org>

	Taking in debian gcc-4.3 cleanness patch and upstream patches...

2008-06-01  David Sugar <dyfet@gnutelephony.org>

	For release 1.6.1: Crypto context fixes and updates from Werner
	Dittmann, timestamp calculation issues as reported on list, and a gcc 
	4.3 issue I found.

2007-11-16  Federico Montesino Pouzols  <fedemp@altern.org>

	* src/ccrtp/rtcppkt.cpp: fixed switched member in
	RTCPSenderInfo::getPacketCount and RTCPSenderInfo::getOctetCount
	(patch from Mattias Seeman). Added better constructor to
	RTCPReceiverInfo and RTCPSenderInfo.

2007-10-29  Federico Montesino Pouzols  <fedemp@altern.org>

	* src/rtcppkt.cpp: (NTP2Timeval(uint32, uint32): fixed bug in
	tf_usec field computation (reported by Martin Runge).

2007-10-24  Federico Montesino Pouzols  <fedemp@altern.org>

	* src/outqueue.cpp: fixed removeDestinationFromList and
	removeDestinationFromListIPV6 (ncrement on an undefined iterator
	bug reported by Martin Mainka).

2006-12-30  David Sugar <dyfet@gnutelephony.org>

	Recent changes known: SRTP support can now be disabled cleanly in
	configure; support for sending packets to IPV6 networks (IPV6 
	receive not working yet).  This will be part of a 1.5.1 release.

2006-10-01  David Sugar <dyfet@gnutelephony.org>

	Prep for release 1.5.0 with Werner Dittman's SRTP changes merged.

2006-09-16  Federico Montesino Pouzols  <fedemp@altern.org>

	* src/ccrtp/rtp.h: (Template class TRTPSessionBase): setMcastTTL
	moved to public section so that users have a way of setting TTL
	(pointed out by Tom Anwyll). joinGroup() and leaveGroup() moved to
	the protected section.

	* src/ccrtp/channel.h: (Template classes DualRTPChannel and
	DualRTPChannelIPV6): fixed bugs in setMulticast (only recv socket
	was set) and setTimeToLive (ttl of the recv socket was changed
	instead of changing the send ttl).
	
2006-09-11  David Sugar <dyfet@gnutelephony.org>

	* configure: Updated to use pkgconfig instead of older Common C++
	macro.

2006-07-25  Federico Montesino Pouzols  <fedemp@altern.org>

	* Added 2 fixes from Yaniv Levy:

	* src/ccrtp/cqueue.h: added missing implementation of
	QueueRTCPManager::setMinRTCPInterval.

	* src/ccrtp/oqueue.h: added two new methods to class
	OutgoingDataQueue: setNextSeqNum and getCurrentSeqNum (for RTSP
	PLAY).

2006-07-03  Federico Montesino Pouzols  <fedemp@altern.org>

	* src/control.cpp: (QueueRTCPManager::packReportBlocks): fixed
	byte ordering bug in report blocks SSRC field. Reported by Yaniv
	Levy.

2006-05-16  David Sugar <dyfet@gnutelephony.org>

	* src/ccrtp/ioqueue.h: make endQueue protected.

	* src/outqueue.cpp, src/ccrtp/oqueue.h: support added to send
	immediate RTP data packet with new sendImmediate method.

	* src/ccrtp/rtp.h: endSocket validates dso/cso correctly

	* configure.in: updated for 1.4.1.

2006-05-02  David Sugar <dyfet@gnutelephony.org>

	* configure.in: updated for 1.4.0.

2006-05-16  Federico Montesino Pouzols  <fedemp@altern.org>

	* src/ccrtp/pool.h, src/pool.cpp: applied patch in Savannah
	support request #105229 (by Jorgen Terner) for session pools
	thread safety. New classes: SessionListElement and PredEquals.

	* src/ccrtp/pool.h, src/pool.cpp: applied patch in Savannah
	support request #105156 (by Jorgen Terner) for scheduling packets
	by timeout (as in single threaded RTP sessions).
	
	* src/outqueue.cpp: (OutgoingDataQueue::purgeOutgoingQueue)
	nullify sendLast (fix by Jorgen Terner)

2006-05-02  David Sugar <dyfet@gnutelephony.org>

	* configure.in: updated for 1.4.0.

2006-03-27  David Sugar <dyfet@gnutelephony.org>

	* src/queue.cpp: 64 bit friendly...

2006-03-08  David Sugar <dyfet@gnutelephony.org>

	* src/ccrtp/rtp.h, src/ccrtp/channel.h, src/pool.cpp: added
	preliminary IPV6 RTP support.

2005-12-08  David Sugar <dyfet@gnutelephony.org>

	* src/ccrtp/iqueue.h, src/ccrtp/rtppkt.h: minor header fixes for
	doxygen generated documentation.

	* configure.ac: updated for new release.

2005-12-01  Federico Montesino Pouzols  <fedemp@altern.org>

	* src/source.cpp: (RTPApplication::findCNAME) fixed to avoid
	crashes when no user name and hostname is available (fix by Michel
	de Boer).

	* src/pool.cpp: (SingleRTPSessionPool::run) fix to make it run by
	Guillaume FRAYSSE.

2005-10-10  David Sugar <dyfet@gnutelephony.org>

	* configure.ac: updated for new release

2005-10-10  Federico Montesino Pouzols  <fedemp@altern.org>

	* src/members.cpp:
	(MembershipBookkeeping::SyncSourceLink::initStats) fixed
	initialization of timestamps.

2005-09-20  Federico Montesino Pouzols  <fedemp@altern.org>

	* Fixes for jitter calculation (bug report by Greg Silverman):

	* src/ccrtp/iqueue.h, src/incqueue.cpp:
	(IncomingDataQueue::recordReception) now also records
	lastPacketTime.

	* src/ccrtp/iqueue.h, src/incqueue.cpp: (struct SyncSourceLink)
	renamed initialTime, initialTimestamp, getInitialTime,
	setInitialTime, getInitialTimestamp, setInitialTimestamp to
	initialDataTime, initialDataTimestamp and so on.
	
	* src/control.cpp: (QueueRTCPManager::takeInControlPacket): do not
	call srcLink->setInitialTime.

	* src/ccrtp/rtcppkt.h: doc. fix.

2005-08-21  David Sugar <dyfet@gnutelephony.org>

	* src/queue.cpp: needs <cstdio> for sprintf...

2005-07-29  David Sugar <dyfet@gnutelephony.org>

	* src/control.cpp: fix for pointer skip

	* configurr.ac: updated for release 1.3.4.

2005-07-27  David Sugar <dyfet@gnutelephony.org>

	* configure.ac: updated for release 1.3.3.

2005-07-27  Federico Montesino Pouzols  <fedemp@altern.org>

	* src/control.cpp: Added length checks while processing RTCP
	received packets, patch from Michel de Boer.

2005-06-13  David Sugar <dyfet@gnutelephony.org>

	* configure.ac: updated for release 1.3.2.

2005-06-11  David Sugar <dyfet@gnutelephony.org>

	* src/ccrtp/base.h, src/ccrtp/rtppkt.h, src/ccrtp/rtcpptk.h:
	use of CCXX_PACKED to control use of pack() pragma.

2005-05-03  David Sugar <dyfet@gnutelephony.org>

	* src/ccrtp/rtppkt.h: 2833 methods must be public

2005-05-01  David Sugar <dyfet@gnutelephony.org>

	* configure.ac: updated for May 1 release, 1.3.1.
	
2005-04-29  David Sugar <dyfet@gnutelephony.org>

	* src/ccrtp/rtp.h: gcc 4.0 pickyness and passing of ~0 to sleep.

2005-04-27  Federico Montesino Pouzols  <fedemp@altern.org>

	* src/control.cpp: (packReportBlocks) use correct SSRC from remote
	source, fix from Takegami takashi.
	
	* src/rtcppkt.cpp: (timevalIntervalTo65536) fixed signed/unsigned
	issue, reported by Takegami Takashi.

2005-04-19  Federico Montesino Pouzols  <fedemp@altern.org>

	* doc/ccrtp.texi: notes on padding and redundancy. Added
	clarification on linking exception.

	* src/rtcppkt.cpp: (NTP2Timeval) fixed conversion (-
	NTP_EPOCH_OFFSET instead of +), reported by Takegami Takashi.

	* fixed dlsr computation (reported by Takegami Takashi):
	
	* src/ccrtp/iqueue.h, src/members.cpp: added lastRTCPPacketTime
	and lastRTCPSRTime to SyncSourceLink

	* src/control.cpp: (QueueRTCPManager::takeInControlPacket) record
	lastRTCPPacketTime and lastRTCPSRTime. (packReportBlocks) use
	lastRTCPSRTime to compute dlsr (instead of NTP time)

2005-03-24  David Sugar <dyfet@ostel.com>

    * src/queue.cpp: some fix on digest to kill embedded class export
    and fix for compilers weak (broken) on namespace support.

2005-03-23  Federico Montesino Pouzols  <fedemp@altern.org>

	* src/ccrtp/oqueue.h, src/outqueue.cpp: destinationCounter
	eventually replaced with the size method of std::list.

	* src/rtppkt.cpp: padding calculation fixed.
	
2005-03-22  David Sugar <dyfet@ostel.com>

	* configure.ac: bumped version up for next release to 1.3.0, rather 
	than 1.2.3 since library dependencies are now different, and 
	with list changes, class abi also will be different.  Also
	happens to match commoncpp2 1.3.x release versions nicely!

	* src/ccrtp/oqueue.h, src/outqueue.cpp: added appearently
	missing "destinationCounter" to DestinationList object, init 0,
	inc on add, sub on remove.

2005-03-20  Federico Montesino Pouzols  <fedemp@altern.org>

	* src/ccrtp/rtppkt.h, src/rtppkt.cpp: added 'padsize' parameter to
	OutgoingRTPPkt and RTPPacket constructors. RTPPacket::RTPPacket
	modified for variable padding lengths.

	* src/ccrtp/oqueue.h, src/outqueue.cpp: added setPadding(uint8),
	modified OutgoingDataQueue::OutgoingDataQueue().

	* src/ccrtp/oqueue.h, src/outqueue.cpp, src/control.cpp: applied
	the patch from Dan Weber to use std::list instead of the
	handcrafted destinationList (destinationCounter also replaced with
	size()). The minimal std::list-like template is still TODO!

	* Some work to remove dependency on libccext by copying the md5
	code from Common C++ to ccRTP:
	- src/private.h: do not include <cc++/digest.h>
	- src/queue.cpp: copy (and minor tweaks) md5 parts of digest.h and md5.cpp from cc++
	- libccrtp1.pc.in: require libccgnu2 instead of libccext2
	- src/Makefile.am: added LIBS= @GNULIBS@ to avoid linking to libccext2
	- Directory w32/cape/: ccrtp1.vcproj, ccrtp1.dsp, rtphello.vcproj,
	rtphello.dsp, rtplisten.vcproj, rtplisten.dsp, rtpsend.vcproj,
	rtpsend.dsp: removed ccext2.lib
	
2005-03-02  David Sugar <dyfet@ostel.com>
	* libccrtp1.pc.in: updated for cc++ >= 1.3.0

2005-02-28  Federico Montesino Pouzols  <fedemp@altern.org>
	* configure.ac: require cc++ >= 1.3.0.

	* src/outqueue.cpp:
	(DestinationListHandler::removeDestinationFromList) fixed removal
	of destination addresses.
	
2005-02-11  David Sugar <dyfet@ostel.com>
	* configure.ac: version bumped to 1.2.2

	* w32/cape{...}: support for CAPE debug project installs

	* src/ccrtp/rtp.h, src/pool.cpp: "startRunning" is also virtual
	and requires some special handling or it will not link in vs.net
	when using debug mode options...

2005-02-10  Federico Montesino Pouzols  <fedemp@altern.org>
	* doc/ccrtp.texi: 'Clossing Sessions' extended and clarified.

	* src/ccrtp/rtp.h, src/control.cpp: doc clarifications and updates
	to RFC 3550/3551.
	
2005-02-07  David Sugar <dyfet@ostel.com>
	* configure.ac: release 1.2.1
	
2005-02-06  David Sugar <dyfet@ostel.com>
	* cape vs.net projects added.

	* src/control.cpp: some casting fixups for fixed size data types.  fractionLost is a uint8 and so does
	not need to pass through htonx stuff.

	* src/ccrtp/ioqueue.h: satisfy dominenance by asserting RTPDataQueue which inherets renewLocalSSRC
	through both iqueue and oqueue now refers explicity to the iqueue one.

	* src/ccrtp/rtp.h: inheritence issues for gcc 3.4 support in templated 
	RTP class.

	* src/ccrtp/rtppkt.h, queuebase.h: some explicit type conversions added.

	* src/ccrtp/channel.h: ccioctl now uses "SOCKET" rather than pure int type, w32 returns 0.

	* src/incqueue.cpp: explicit type casts added.  "count" seems unused in getData.

	* src/queue.cpp: should we avoid casting address to 32 bit object??

	* src/rtppkt.cpp: explicit typecasts added as needed.

2005-01-28  David Sugar <dyfet@ostel.com>
	* libccrtp1.pc.in: fix for pkgconfig dependency on libccext2.

2005-01-24  David Sugar <dyfet@ostel.com>
	* reconfig: getting to work generically and rh7 specific

	* updated headers/source files with "runtime" exception notice
	for consistency in exception language.

2005-01-20  David Sugar <dyfet@ostel.com>
	* libccrtp1.pc[.in], configure.ac: pkgconfig file generated for 
	libccrtp1

	* Makefile.am, w32/Makefile.am, doc/Makefile.am: stripped out 
	symlink stuff for w32 since "cape.exe" installer provides known
	directory location for w32 installed versions of GNU Common C++.

	* configure.ac: version bumped to 1.2.0.

	* getRawTimestamp() was not needed after all, change unmade.

	* src/ccrtp/rtppkt.h: definitions for rfc2833 telephony payloads.

2005-01-16  David Sugar <dyfet@ostel.com>
	* src/ccrtp/iqueue.h: virtual methods for packet filtering were
	hidden as private; made protected so they can be used.

	* src/ccrtp/rtppkt.h: getRawTimestamp needed for packet filtering.

2005-01-10  Federico Montesino Pouzols  <fedemp@altern.org>

	* src/control.cpp: (QueueRTCPManager::getBYE) patch from Michel de
	Boer to avoid calling onGotGoodbye with NULL as value for reason.

	* doc/ccrtp.texi: added note on threads, sockets, and sessions.
	
2004-11-28  David Sugar <dyfet@ostel.com>
    	* src/private.h: ignore config.h if pure w32 unpack from cvs
    
    	* w32/cape/...: new w32 build tree for combined CAPE Framework
    	installer.

2004-11-22  Federico Montesino Pouzols  <fedemp@altern.org>

	* src/ccrtp/rtp.h: fixed bug in error handling,
	TRTPSessionbase::leaveGroup

	* src/ccrtp/channel.h: fixed to compile with cc++ ipv6 support.

	* src/outqueue.cpp: fixed two bugs in
	DestinationListHandler::removeDestinationFromList (reported by
	Sigrid Thijs).
	
	* src/ccrtp/formats.h, src/rtppkt.cpp: fixed
	PayloadFormat::setPayloadType (reported by Sigrid Thijs) that
	failed with dynamic types.  The static range is now enforced in
	StaticPayloadFormat::StaticPayloadFormat.

2004-11-14  David Sugar <dyfet@ostel.com>
	* configure.ac: standardized autoconfiguring a bit including
	shell issues with freebsd.

2004-11-11  David Sugar <dyfet@ostel.com>
	* m4/ost_debug.m4 and debug support added.
	* configure.in moved to configure.ac.

2004-06-01  Federico Montesino Pouzols  <fedemp@altern.org>
	* src/ccrtp/queuebase.h: doc clarifications.

2004-05-19  David Sugar <dyfet@ostel.com>
	* ccrtp.spec.in: allow .la files to be included.

2004-05-09  David Sugar <dyfet@ostel.com>
	* src/ccrtp/channel.h: use UDPSocket::setPeer with cast rather
	than re-impliment to support future merged ipv4/ipv6 release.

2004-05-05  David Sugar <dyfet@ostel.com>
	* reconfig: can use $ACLOCALDIR for extra m4 path.

2004-04-21  David Sugar <dyfet@ostel.com>
	* all sources; fixed namespace ending on }; for pedonic gcc-3.4

2004-04-15  David Sugar <dyfet@ostel.com>

	* src/Makefile.am: changes for unsupported autoconf AM_LDFLAGS.

2004-03-30  David Sugar <dyfet@ostel.com>

	* src/rtppkt.cpp, src/members.cpp, src/outqueue.cpp, 
	src/queue.cpp, src/rtcppkt.cpp, src/source.cpp: support source 
	build where exceptions have been disabled.

	* src/pool.cpp: header file include order changed for qnx6
	build.

2004-03-15  Federico Montesino Pouzols  <fedemp@altern.org>

	* src/source.cpp: (findusername): fixed username initialization,
	from Guillaume Glodas.

	* src/ccrtp/rtp.h: SingleThreadRTPSession::run: fixed timeout
	checks, from Guillaume Glodas.
	
2004-03-10  Federico Montesino Pouzols  <fedemp@altern.org>

	* demo/rtplisten.cpp: print payload type field.

2004-01-28  David Sugar <dyfet@ostel.com>

	* configure: use ~/.configure as means to hold default configure
	options when configure invoked without options.

2004-01-24  Federico Montesino Pouzols  <fedemp@altern.org>

	* src/ccrtp/rtp.h: (TRTPSessionBase and SingleThreadRTPSession):
	added iface optional parameter to multicast RTP session
	constructors, so that it is possible to specify which interface to
	add to multicast groups.

	* src/ccrtp/iqueue.h, src/incqueue.cpp: added
	IncomingDataQueue::getDefaultMembersSize().

	* doc/ccrtp.texi: more docs.

2004-01-18  Federico Montesino Pouzols  <fedemp@altern.org>

	* src/ccrtp/sources.h, src/source.cpp, src/control.cpp: added
	RTPApplication::getParticipant, used in
	QueueRTCPManager::onGotSDESChunk to lookup participants by CNAME.

	* demo/ccrtptest.cpp: added the class PacketsPattern.
	
	* doc/ccrtp.texi: more explanations on headers.

	* src/ccrtp/cqueue.h, src/ccrtp/oqueue.h, src/ccrtp/rtcppkt.h,
	src/control.cpp: doc cleanup (@todos).
	
	* demo/audiorx.cpp, demo/rtplisten.cpp: small additions.
	
2004-01-17  Federico Montesino Pouzols  <fedemp@altern.org>
	
	* src/ccrtp/oqueue.h: added to OutgoingDataQueue methods for CSRC
	handling (addContributor and removeContributor).

	* src/ccrtp/queuebase.h: added to AppDataUnit methods for
	accessing CSRC (getContributorsCount and getContributorsID)

	* src/ccrtp/rtp.h, src/ccrtp/channel.h: added support for
	symmetric RTP (SymmetricRTPSession).

	* src/ccrtp/ioqueue.h, src/ccrtp/rtp.h: startStack renamed to
	enableStack to avoid confussion with startRunning.
	
	* src/control.cpp: fixed a bug in SDES items type and length
	processing (QueueRTCPManager::onGotSDESChunk). This bug could
	cause crashes when iterating through the participants list.
	
	* src/incqueue.cpp: fixed jitter computation in
	IncomingDataQueue::recordReception.

	* doc/ccrtp.texi: updated to new RFCs 355x

	* demo/ccrtptest.cpp, demo/Makefile.am, src/private.h: added a
	simple test program.
	
2003-12-26  David Sugar <dyfet@ostel.com>
	* configure.in, w32/Makefile.am: support for new configure
	--with-commoncpp=dir option to link Common C++ source files for
	w32 specific builds, and ability to "make dist" either with or
	without extra w32 files linked in.  One can also "disable"
	redistribution of Common C++ files in ccrtp by using either
	--without-commoncpp, or by specifying an invalid directory.

2003-12-20  David Sugar <dyfet@ostel.com>
	* Makefile.am, doc/Makefile.am, configure.in: we now regerate
	doxygen documentation automatically as part of "make" if doxygen
	is installed.  Hence, we no longer distribute pre-generated doxy
	stuff in the tarball.

2003-11-15  David Sugar <dyfet@ostel.com>
	* src/private.h, src/queue.cpp, src/source.cpp,
	src/ccrtp/base.h src/ccrtp/ext.h: re-arranged headers and
	dependencies on common C++ headers so use of includes and
	symbol exports would be correct per Common C++ 1.1.

2003-10-30  Federico Montesino Pouzols  <fedemp@altern.org>

	* src/ccrtp/iqueue.h, src/incqueue.cpp: corrected members counter
	initialization.

2003-10-21  Federico Montesino Pouzols  <fedemp@altern.org>

	* src/control.cpp: (QueueRTCPManager::computeRTCPInterval): fixed
	the RTCP interval randomization code.

2003-10-20  Federico Montesino Pouzols  <fedemp@altern.org>

	* src/control.cpp, src/queue.cpp: added checks for extreme control
	bandwidth values that can cause divided by zero exceptions.

2003-09-23  Federico Montesino Pouzols  <fedemp@altern.org>

	* src/source.cpp: (RTPApplication::removeParticipant): fixed a bug
	at first participant addition.
	* src/ccrtp/rtp.h, src/incqueue.cpp, src/outqueue.cpp: fixed minor
	signed/unsigned inconsistencies

2003-07-03  Federico Montesino Pouzols  <fedemp@altern.org>

	* src/ccrtp/rtp.h: (TRTPSessionBase::build, mcast version): fixed
	multicast bind/join, from Luuk van Dijk.

2003-06-20  David Sugar <dyfet@ostel.com>

	* src/Makefile.am, phone/Makefile.am, demo/Makefile.am: fix
	for current automake/autoconf systems

2003-06-09  David Sugar <dyfet@ostel.com>

	* m4/ost_endian.m4: updated for modern autoconf/automake systems
	* acconfig.h: eliminated
	* configure.in: updated based on modern autoconf issues
	* reconfig: support for macosx and multi-version autoconf
	* Release 1.0.2

2003-05-14  Federico Montesino Pouzols  <fedemp@altern.org>

	* src/ccrtp/sources.h: SyncSource::isSender made const.
	* doc/ccrtp.texi: fixes and additions.

2003-05-10  Federico Montesino Pouzols  <fedemp@altern.org>

	* configure.in, acconfig.h, src/queue.cpp: removed the
	AC_CHECK_FILE for /dev/urandom so as to allow cross-compilation.
	* demo/rtplisten.cpp: modified to recognize mcast addresses.
	* src/ccrtp/ext.h: fixed RTPDuplex::getNextDataPacketSize so that
	it compiles even though UDPReceive::getReceiver is not const,
	which will not be an issue with cc++2 versions newer than 1.0.9.

2003-04-24  David Sugar <dyfet@gnu.org>

	* Some compile checks and 1.0.1 release (corrected timeline).

2003-04-04  Federico Montesino Pouzols  <fedemp@altern.org>

	* src/ccrtp/channel.h: (RTPBaseUDPIPv4Socket::join): call
	Socket::join, instead of UDPSocket::join in order to avoid
	conflicts with the new join added to releases of common c++ later
	than 1.0.8.
	* win32/msvcpp/demo/rtphello.dsp, win32/msvcpp/demo/rtpsend.cpp,
	win32/msvcpp/demo/rtplisten.dsp: link ws2_32.lib.
	* src/source.cpp: avoid access violation in the win32 version of
	findusername, from Christian Steindl.
	
2003-04-02  Federico Montesino Pouzols  <fedemp@altern.org>

	* src/ccrtp/rtp.h: (TRTPSocketBase::endSocket): free cso and dso.

2003-03-24  David Sugar <dyfet@gnu.org>

	* What the heck, it's long overdue...1.0.0 release

2003-03-22  Federico Montesino Pouzols  <fedemp@altern.org>

	* win32/msvcpp/ccrtp1.dsp: fixed debug project linking settings.
	* src/outqueue.cpp: (OutgoingDataQueue::getSchedulingTimeout)
	avoid overflow when calculating next send time.
	
2003-02-03  Federico Montesino Pouzols  <fedemp@altern.org>

	* src/ccrtp/rtp.h: fixes for multicast methods of TRTPSessionBase.

2003-01-25  David Sugar <dyfet@gnu.org>
	* configure.in updated for new pre-release
	* ext.h fixed for older gcc compile

2003-01-12  Federico Montesino Pouzols  <fedemp@altern.org>

	* doc/fdl.texi, doc/fdlnotice.texi: updated to FDL 1.2.
	* src/ccrtp/formats.h, src/ccrtp/rtppkt.h, src/ccrtp/rtcppkt.h,
	src/ccrtp/iqueue.h, src/ccrtp/oqueue.h, src/queue.cpp: fixes for
	ANSI C++ warnings.
	* src/ccrtp/rtp.h, src/ccrtp/ext.h, src/socket.cpp,
	src/ccrtp/channel.h, src/ccrtp/socket.h: socket.h renamed to
	channel.h in order to avoid name conflict with cc++2/socket.h's
	man page.
	* src/queue.cpp: (RTPDataQueue::getCurrentTimestamp): fixed
	signed/unsigned bug, reported by Guillaume Fraysse.
	* configure.in, src/Makefile.am, demo/Makefile.am,
	phone/Makefile.am: gcc flags for ANSI C++.

2002-11-27 David Sugar <sugar@gnu.org>
	* modify spec file for rpm build
	* release 1.0pre1 prep work

2002-11-24 Federico Montesino Pouzols  <fedemp@altern.org>

	* src/cc++/rtp is now src/ccrtp.
	* src/queue.cpp, src/control.cpp, src/cc++/rtp/ioqueue.h: use size
	parameter for IncomingDataQueue constructor.
	* demo/rtplisten.cpp: added onNewSyncSource redefinition.
	* src/incqueue, src/controll.cpp: check that onNewSyncSource is
	called only once for any source.
	
2002-11-03 Federico Montesino Pouzols  <fedemp@altern.org>

	* src/control.cpp: (takeInControlPacket): source stats init.
	* src/cc++/rtp/rtcppkt.h, src/control.cpp: new methods for
	RTCPPacket: getLength and getSSRC.

2002-10-31 Federico Montesino Pouzols  <fedemp@altern.org>

	* src/cc++/rtp/queuebase.h, src/queue.cpp, src/outqueue.cpp,
	src/control.cpp: added localSSRCNetwork and reladed methods.
	* demo/rtplisten.cpp: added onGotGoodbye virtual redefinition.
	* src/control.cpp: (takeInControlPacket), (getOnlyBye), (getBye)
	fixed.
	
2002-10-28 Federico Montesino Pouzols  <fedemp@altern.org>

	* src/source.cpp, src/cc++/rtp/sources.h: participants
	implementation completed.
	* src/cc++/rtp/rtp.h: send BYE in session destructor.
	* src/control.cpp: fixed RTCP header init. bug in dispatchBYE.
	
2002-10-27 Federico Montesino Pouzols  <fedemp@altern.org>

	* src/cc++/rtp/iqueue.h, src/members.cpp: SR and RR info are
	stores as unsigned char* instead of void*
	* src/private.h: added tags for rtpsend and rtplisten demos.
	
2002-10-26 Federico Montesino Pouzols  <fedemp@altern.org>

	* src/cc++/queuebase.h: include only pointer.h instead of template.h.
	* src/cc++/iqueue.h, src/incqueue.h, src/control.h: store jitter
	as float.

2002-10-24 Federico Montesino Pouzols  <fedemp@altern.org>

	* src/cc++/queuebase.h: added getDefaultMaxSendSegmentSize() and
	getMaxSendSegmentSize() to OutgoingDataQueueBase.
	* src/outqueue.cpp: (OutgoingDataQueue::putData) segment data blocks
	depending on getMaxSendSegmentSize.
	* doc/ccrtp.texi: extended "Sending Data" subsection.
	* src/cc++/rtp/iqueue.h: initSequence now inits maxSeqNum and 
	badSeqNum.
	
2002-10-23 Federico Montesino Pouzols  <fedemp@altern.org>

	* src/control.cpp: BYE packets are now correctly sent with a 
	preceding RR in the compound.
	* src/cc++/cqueue.h, src/control.cpp: new method
	QueueRTCPManager::sendControlToDestinations.
	* src/cc++/iqueue.h: initialize Members::members to 1.
	
2002-10-22 Federico Montesino Pouzols  <fedemp@altern.org>

	* doc/Makefile.am, doc/srcmodel.txt, doc/srcmodel.dia,
	doc/ccrtp.texi: added initial manual.
	* doc/Doxyfile: added ../demo to EXAMPLE_PATH.
	
	* src/cc++/rtp/ioqueue.h: added getDefaultSessionBandwidth and
	getSessionBandwidth to QueueRTCPManager.
	* src/queue.cpp: added defaultSessionBw constant.
	* src/control.cpp computeRTCPInterval now takes into account the
	session total bandwith.	
	
2002-10-21  Federico Montesino Pouzols  <fedemp@altern.org>

	* ccRTP has been rewritten. This changelog summarizes the most
	important changes. Read it from bottom up.

	* src/cc++/rtp/cqueue.h, src/control.cpp: getSDES splitted into
	onGotSDES and a new virtual: onGotSDESChunk.
	* src/cc++/rtp.h, control.cpp: added/updated onGotSR, onGotRR,
	onGotAPP, onGotRRSRExtension and onSSRCCollision plug-in to
	QueueRTCPManager class.

	* src/cc++/rtp/oqueue.h, src/cc++/rtp/iqueue.h, src/cc++/cqueue.h:
	readData, writeData, readControl and writeControl virtuals from
	RTPQueue renamed to recvData, sendData, recvControl and
	sendControl, respectively. recvData now provided the source
	transport address. Added new getNextDataPacketSize virtual.

	* src/cc++/rtp/pool.h, src/pool.cpp: added experimental "RTP
	session pool" implementation.

	* src/cc++/rtp/rtp.h: T_RTPSocket has been replaced with
	TRTPSessionBase, which does not include any threading mechanism
	and uses the new socket classes defined in
	src/cc++/rtp/socket.h. New template class
	SingleThreadRTPSession. Its run method is implemented using the
	new QueueRTCPManager::controlReceptionService,
	QueueRTCPManager::controlTransmissionService,
	IncomingDataQueue::takeInDataPacket
	OutgoingDataQueue::dispatchDataPacket.

	* src/cc++/rtp/cqueue.h: added class AVPQueue.
	* src/cc++/rtp/socket.h: new class RTPBaseUDPIPv4Socket, and template
	class DualRTPChannel.
	* src/cc++/rtp/oqueue.h, src/outqueue.cpp: new class
	DestinationListHandler.
	* src/cc++/rtp/iqueue.h, src/incqueue.cpp: class IncomingDataQueue
	splitted from the old RTPQueue class.
	* src/cc++/rtp/iqueue.h, src/outqueue.cpp: class OutgoingDataQueue
	spllited from the old RTPQueue class.
	* src/cc++/rtp/iqueue.h: MembershipControl is now
	MembershipBookkeeping, inherits from the xxxHandler classes and
	defines nested structures IncomingRTPPktLink and SyncSourceLink,
	for packets/sources lists and hash table.	
	* src/cc++/rtp/iqueue.h: new classes SyncSourceHandler, 
	ParticipantHandler, ApplicationHandler and ConflictHandler.
	* src/cc++/rtp/queuebase.h, src/data.cpp: new class AppDataUnit
	* src/cc++/rtp/queuebase.h, src/queue.cpp: new class RTPQueueBase.
	* src/cc++/rtp/queuebase.h, src/outqueue.cpp: new class 
	OutgoingDataQueueBase.
	* src/cc++/rtp/queuebase.h, src/incqueue.cpp: new class
	IncomingDataQueueBase.

	* src/cc++/rtp/sources.h, src/source.cpp: new classes SDESItemsHolder,
	RTPApplication and Participant. RTPSource has been replaced with
	SyncSource.
	* src/cc++/rtp/rtcppkt.h, src/rtcppkt.cpp: RTCPCompoundHandler
	moved and updated. New classes RTCPReceiverInfo and
	RTCPSenderInfo.
	* src/c++/rtp/rtppkt.h, src/rtppkt.cpp: RTPPacket, IncomingRTPPkt and 
	OutgoingRTPPkt moved and updated.
	* src/cc++/rtp/formats.h, src/rtppkt.cpp: Added new PayloadType
	typedef, and classes PayloadFormat, DynamicPayloadFormat and
	StaticPayloadFormat. The old PayloadType enumeration is now called
	StaticPayloadType and has been changed.
	* src/cc++/rtp/base.h: common consts and routines.
	
	* src/incqueue.cpp, src/outqueue.cpp: splitted from queue.cpp with
	a lot of new stuff.
	* src/packet.cpp: splitted into rtppkt.cpp and rtcppkt.cpp
	* win32/msvcpp/: added GNUccRTP workspace for ccRTP, and ccRTPdemo
	workspace for demos.
	* win32/mingw32/: added mingw32 cross-compiling makefile.
	* demo/: Makefile.am and demos updated for CC++ 2 and ccRTP 1.0.
	* phone/: updated for 1.0.
	* doc/Doxyfile, doc/Doxyman: added src/cc++/rtp to INPUT.
	* doc/fdl.texi, fdlnotice.texi, doc/gpl.texi, doc/srcmodel.txt,
	doc/srcmodel.dia: added for ccRTP manual.
	* Makefile.am: added COPYING.addendum to EXTRA_DIST, and -Wall.
	* acconfig.h: HAVE_DEV_URANDOM.
	* configure.in, src/Makefile.am, src/rtp.h, src/rtpext.h:
	public headers splitted and moved to src/cc++/rtp/.
	* configure.in: REQUIRES="1.0.0", check for /dev/urandom and
	cleaned up some headers checks.

2002-07-29  David Sugar <dyfet@ostel.com> (from 0.9.1 to 0.9.2)

	* Updated build for Hammer (x86-64) support.

2002-02-18  David Sugar <dyfet@ostel.com> (from 0.7.2 to 0.7.3)

	* Solaris target compile support.

2001-12-28  David Sugar <dufet@ostel.com> (from 0.7.1 to 0.7.2)

	* src/rtp.h: header fixups for newer Common C++

	* application of Debian patch for gcc 3.0.

2001-11-28  Federico Montesino <p5087@quintero.fie.us.es> (from 0.6.2 to 0.6.3)

	* src/members.cpp: fixed a bug in RTPSource::addNewSource(uint32)
	(the collision list was wrongly modified when inserting new
	sources).

	* src/queue.cpp: fixed a serious bug (incomplete initialization)
	in RTPQueue::RTPQueue(int, uint32) and RTPQueue::initQueue.

	* UDPIPv4Socket now inherits from both UDPReceive and UDPTransmit,
	instead of only UDPSocket. Inheriting only from UDPSocket is an
	error I introduced in 0.6.0. This change is necessary to avoid
	receiving/transmitting collisions, specially when two applications
	in the same host talk to each other through the same port numbers.
	
	* src/socket.cpp: UDPIPv4Socket::Connect(const InetAddress&,
	tpport_t) removed as a result of the change listed up here.
	
	* demo/Makefile.am, demo/rtpsend.cpp and demo/rtplisten.cpp: added
	new demo apps
	
	* COPYING.addendum: added (the same as the Common C++ one)

	* src/rtp.h: rearranged Members class.

	* src/control.cpp: QueueRTCPManager::getOnlyBye() has been filled
	in.
	
	* src/rtp.h, src/control.cpp: static const data members initialization
	moved from rtp.h to control.cpp to avoid VC++ complaints.

	* src/rtp.h: T_RTPSocket::leaveGroup(const InetMcastAddress&) fixed
	(now calls to setMulticast(false), instead of setMulticast(true)).

	* src/rtp.h: Template T_RTPSocket updated from __EXPORT to 
	CCXX_CLASS_EXPORT
	
	* src/rtp.h, control.cpp and packet.cpp: RTP_VERSION is now called
	CCRTP_VERSION to avoid name conflicts with other stacks

	* src/rtp.h and src/queue.h: the "data" parameter of putPacket is
	now const.

2001-11-27  David Sugar <dyfet@ostel.com> (from 0.7.0 to 0.7.1)
	* fixed memory leaks in sdes and bye string builds.
	* added functional virtuals for session control start and stop.
	* created start of "phone" user agent.

2001-11-02  David Sugar <dyfet@ostel.com> (from 0.6.2 to 0.7.0)
	* addition of namespace support and changes for Common C++ 1.9.0.

2001-10-15  David Sugar <dyfet@ostel.com> (from 0.6.1 to 0.6.2)
        * fixed include files in demo apps.

2001-10-14  E. Stuart Hicks <eshicks@hotmail.com> (from 0.6.1 to 0.6.2)
	* minor patch to compile on older gcc releases.

2001-10-07  David Sugar <dyfet@ostel.com> (from 0.6.0 to 0.6.1)
	* ccRTP becomes a GNU package.

2001-09-20  David Sugar <dyfet@ostel.com> (from 0.6.0 to 0.6.1)
	* new virtuals to trap and filter packet queue expiration.
	
2001-09-02  Federico Montesino <p5087@quintero.fie.us.es> (from 0.5.1 to 0.6.0)

	* configure.in: added check for nana support
	(configure --with-nana, for testing), stdlib.h and sys/utsname.h

	* src/Makefile.am: updated to make the following:

	* src/rtpext.h: new public header containing the declarations
	needed to make low level packet filtering and stack extensions.

	* rtp.h: many new methods and changes in the class hierarchy (to
	add MembershipControl, QueueRTCPManager and the template
	T_RTPSocket)

	* New files src/members.cpp, src/data.cpp and src/source.cpp with
	the implementation of MembershipControl, RTPData and RTPSource
	classes, respectively

	* src/control.cpp: now includes the implementation of
	QueueRTCPManager.

	* src/socket.cpp: now includes the implementation of UDPIPv4Socket
	and could include the implementation of other kind of socket
	classes used to instantiate T_RTPSocket.

	* Rearranged the doxygen tags and configuration (and changes in
	src/private.h) so that the introductory README, the TODO list and
	the examples under demo/ are included in the documentation. Added
	some comments both for API and implementation.

2001-08-22  David Sugar <dyfet@ostel.com> (from 0.5.0 to 0.5.1)

	* expose private packet structures externally.
	
2001-06-21  David Sugar <dyfet@ostel.com> (from 0.4.1 to 0.5.0)

	* added const for address handlers.
	* added queue Purge function.
	* extended queue i/o services and support for sequence and 
	  timestamp initialization/signatures.
	* added millisecond timeclock for stack time synhronization.
	* added RTCP event messages as virtuals.

2001-04-23  David Sugar <dyfet@ostel.com> (from 0.4.0 to 0.4.1)

	* added virtual handler for timer tick driven code.
	* added	patches and demo apps from Federico.
	
from 0.3.2 to 0.4.0  David Sugar <dyfet@ostel.com>

	* fixed version test.
	* added virtual handler to process packet "events".

from 0.3.1 to 0.3.2  David Sugar <dyfet@ostel.com>

	* some win32 things.
	* new common c++ version check.

from 0.3.0 to 0.3.1  David Sugar <dyfet@ostel.com>

	* some header fixups.

from 0.2.2 to 0.3.0  David Sugar <dyfet@ostel.com>

	* merged with Common C++ updates and new Common C++ UDP classes.

from 0.2.1 to 0.2.2  David Sugar <dyfet@ostel.com>

	* use of sequence and marker checks to allow application to
	determine if assembled multi-sequence packets are "complete" or
	missing data.

	* reorganized class structure to allow more malleable assembly of
	different kinds of RTP session classes.

from 0.2.0 to 0.2.1  David Sugar <dyfet@ostel.com>

	* add support to strip "padding" on receiver side.
	* add packet reassembly of multi-segment packets.
	* add getPayloadSize capability.
	* add setPartial to update a pending (multi-channel) frame.
	* RTPSocket "broken" constructor fixed.

from 0.1.0 to 0.2.0  David Sugar <dyfet@ostel.com>

	* set SO_REUSEADDR for rtcp socket.
	* added RTCP scheduling points to service thread.
	* added expiration of outgoing packets which have been "delayed"
	or "blocked".
	* handling of sending to blocked or conjested outbound socket
	queues.
	* RTPSocket uses non-blocking send for conjuestion test.

from 0.0.1 to 0.1.0  David Sugar <dyfet@ostel.com>

	* restructured class hierarchy to add new RTPQueue so that we have
	a generic base for creating different RTP socket types.
	* RTPDuplex added.
