Import live.2009.06.02.tar.gz

- Updated the MPEG Transport Stream multiplexor implementation to allow for H.264 video.  (Thanks to Massimo Zito.)
- Updated "MultiFramedRTPSink" to allow for subclasses for RTP payload formats (such as DV, coming soon) that impose
  a granularity on RTP fragment sizes.

Signed-off-by: Ray Lehtiniemi <rayl@mail.com>
Import live.2009.07.09.tar.gz

- Modified the RTSP server implementation to - for streams where there is a known duration - always include a range end time
  in the RTSP "PLAY" response, even if the client did not specify one in the "PLAY" request.  This allows VLC's client
  'trick play' to (mostly) work.
- Updated "MediaSession::initiate()" to eliminate a possible memory leak if we get an error in socket creation.
  (Thanks to Denis Charmet.)
- Made a minor change to "MultiFramedRTPSink" to make monitoring/debugging easier.  (Thanks to Guy Bonneau.)
- Begun adding support for DV video.  However, this implementation is still incomplete.  DO NOT USE IT!

Signed-off-by: Ray Lehtiniemi <rayl@mail.com>
Import live.2009.07.28.tar.gz

- Updated "QuickTimeFileSink" to add a "stss" atom for video streams, following a suggestion by Gerardo Ares.
  (At present we just 'guess' which video 'samples' (frames) are 'key frames', so this might not work properly on some
  video streams.)
- Modified the "config.uClinux" configuration file, following a suggestion by Chetan Raj.
- Changed "RTSPClient"s implementation of the RTSP "TEARDOWN" command to always act as if the command succeeded, regardless of
  the actual response from the server (because, from the client's point of view, the session has ended).
  (This overcomes a potential memory leak, pointer out by Stuart Rawling.)

Signed-off-by: Ray Lehtiniemi <rayl@mail.com>
Import live.2009.09.04.tar.gz

- Fixed "BasicTaskScheduler"s workaround to a Windows bug (thanks to Vityusha Vinokurov).
- Fixed "DelayQueue::synchronize()" to allow for the possibility of the system clock being reset back in time.
  (Thanks to Sebastien Escudier for pointing out this issue.)
- Made "H264VideoRTPSink::auxSDPLine()" "protected:" rather than "private:" (following a request from Stuart Rawling)

Signed-off-by: Ray Lehtiniemi <rayl@mail.com>
Import live.2009.09.21.tar.gz

- Added patches proposed by Ben Hutchings to (i) improve the top-level Makefile; (ii) build better static libraries (on
  Linux, FreeBSD, and Mac OS X); (iii) have RTSP servers set "b=AS:" lines in their SDP (and set an appropriate socket send buffer
  size), and (iv) have RTSP (and other SDP) clients interpret the "b=AS:" line (if present) to set the socket receive buffer.
- Changed two source files in the "groupsock" project to use the (current standard) <sstream> #include file.
- Increased RTSP_PARAM_STRING_MAX to 200 (request by Stuart Rawling)

Signed-off-by: Ray Lehtiniemi <rayl@mail.com>
Import live.2009.09.28.tar.gz

- Added an optional "timeout" parameter to "DarwinInjector::setDestination()".  (Suggested by Jeremy Noring.)
- Added support for receiving the "text/T140" RTP payload format.  (Suggested by Pierre Ynard.)

Signed-off-by: Ray Lehtiniemi <rayl@mail.com>
Import live.2009.11.12.tar.gz

- Made "BasicTaskScheduler::DelayQueue.cpp" more robust against an apparent compiler error on some platforms (e.g., Mac OS X)
  that was leading to "select() fails: Invalid argument" errors.
- Added a new compilation configuration file: "config.avr32-linux".  (Thanks to Jorge Munoz Castiner.)
- Made some minor changes to "groupsock/GroupsockHelper.cpp", "liveMedia/InputFile.cpp" and "liveMedia/OutputFile.cpp"
  to make these files compile (or compile better) for WinCE.  (Thanks to Pierre Ynard for these fixes.)

Signed-off-by: Ray Lehtiniemi <rayl@mail.com>
Import live.2009.11.27.tar.gz

- Temporarily hacked the RTSP server code to not include "GET_PARAMETER" as an available option in the response to the "OPTIONS"
  command.  This will stop VLC from using "GET_PARAMETER" as a client 'liveness' indicator.  This is something that we don't
  need, because we already use clients' RTCP "RR" packets as a 'liveness' indicator, and because sending "GET_PARAMETER" over a
  RTP-over-TCP session causes problems with our current implementation.  (This hack will be removed when we fix the problem with
  RTP-over-TCP.)

Signed-off-by: Ray Lehtiniemi <rayl@mail.com>
Import live.2010.01.07.tar.gz

- Fixed a bug in "parseGeneralConfigStr()" (it was mistakenly returning an extra byte).
- A few places in the code we called "exit()" if we encountered an unexpected error.  By request, these have now been changed to
  "abort()".
- Made the "fSDPLines" member variable (in both "OnDemandServerMediaSubsession" and "PassiveServerMediaSubsession") "protected"
  rather than "private".  This allows subclasses to - if they wish - delete and NULL "fSDPLines" each time a client connects, in
  case the stream's SDP parameters have changed.

Signed-off-by: Ray Lehtiniemi <rayl@mail.com>
Import live.2010.01.09.tar.gz

- In the various demo applications (in "testProgs/"), we changed the calls to "abort()" back to "exit(1)", because we want
  "abort()" to be used only for serious (unexpected) errors; not things like bad command-line arguments.
- Updated the RTSP server implementation to make session ids random (and 8 (hex) digits long), to conform to the RTSP specification.
  (Thanks to Guy Bonneau for this suggestion.)

Signed-off-by: Ray Lehtiniemi <rayl@mail.com>
Import live.2010.01.11.tar.gz

- Increased the default "FileSink" buffer size in "openRTSP" from 20000 to 100000, because the previous limit was being bumped into
  too many times.
- Added #include "GroupsockHelper.hh" to "DVVideoStreamFramer.cpp", because it defines "gettimeofday()".

Signed-off-by: Ray Lehtiniemi <rayl@mail.com>
Import live.2010.01.13.tar.gz

- Added support for streaming/receiving DV video via RTP (using the RTP payload format defined in RFC 3189.
  (Thanks to Ben Hutchings for his help.)

Signed-off-by: Ray Lehtiniemi <rayl@mail.com>
Import live.2010.01.16.tar.gz

2010.01.15
- Changed the implementation of "Socket::changePort()" to call "bind()" directly, rather than closing the socket and reopening a
  new one.  That old implementation sometimes caused the socket number to change, which messed up our event loop.
  (Thanks to Rob Krakora for noticing this.)
- Improved the implementation of DV video streaming (introduced in the previous release) - in particular,
  to implement "DVVideoRTPSource".

2010.01.16
- Added ""#include <stdio.h>" to "groupsock/NetInterface.cpp".  This was tripping up some people.
  (Thanks to Ben Hutchings for noticing this.)

Signed-off-by: Ray Lehtiniemi <rayl@mail.com>
Import live.2010.01.22.tar.gz

- Changed the implementation of "Socket::changePort()" once again, beause it was reported that the change made in version
  2010.01.15 didn't work.  Note, however, that this change also introduces a new function
	     virtual void moveSocketHandling(int oldSocketNum, int newSocketNum) = 0;
  to the "TaskScheduler" API.  We have implemented this for "BasicTaskScheduler".  If you implement your own subclass of
  "TaskScheduler", then you will need to implement this new function as well.

Signed-off-by: Ray Lehtiniemi <rayl@mail.com>
Import live.2010.02.10.tar.gz

2010.02.09
- Fixed the way that "RTSPClient" operations handle the "timeout" parameter.
  We now make the socket blocking afterwards (having made it non-blocking beforehand).
  (Thanks to Jeremy Noring for this patch.)

2010.02.10
- Fixed a possible 1-byte overflow in "RTSPClient::setupMediaSubsession()".  (Thanks to Martin Bonnin for reporting this.)
- Make "parseCLine()" a bit more robust against certain technically illegal, but still parseable SDP "c=" lines.
  (Thanks to Aurelien Nephtali for this suggestion.)

Signed-off-by: Ray Lehtiniemi <rayl@mail.com>
Import live.2010.03.08.tar.gz

- Fixed a rare bug that could sometimes cause RTSP clients to reuse the same (ephemeral) port number.
  (Thanks to Andro Debevere for reporting this.)
- Made changes to "config.armlinux", suggested by Rafael Carre.
- Removed a "|| defined(__CYGWIN32__)" test from "groupsock/GroupsockHelper.cpp", because it's no longer needed.
  (Cygwin has apparently now fixed the bug that made that necessary.)
  (Thanks to Tatterdemalian Anzulovic for reporting this.)

Signed-off-by: Ray Lehtiniemi <rayl@mail.com>
Import live.2010.03.15.tar.gz

2010.03.14
- Fixed the RTSP server implementation so that - when streaming via RTP-over-TCP - it can now handle RTSP commands after the
  first "PLAY".  (This fixes a long-standing bug.)
- Updated "QuickTimeFileSink" to support writing files larger than 2GB.  Also fixed a bug involving "esds" atoms for MPEG-4.
  (Thanks to Wolfgang Breyha for this patch.)
- Fixed a bug in the way that RTCP "SDES" items are constructed.  (Thanks to Jeremy Norling for bringing this to our attention.)
- Added a sanity check to the string version of "BasicUsageEnvironment::operator<<()", to check for a NULL string input.
  (Thanks to Paulo Rogerio Panhoto for this suggestion.)

2010.03.15
- Fixed a bug in the Transport Stream file indexing mechanism that was preventing index files from properly being generated
  for some Transport Stream files.  (We sometimes weren't analyzing Program Association Tables correctly.)
- Removed the hack that we introduced in version 2009.11.27, because we have now fixed the bug that made that necessary.
- Removed the "RTPOverTCP_OK" hack from "RTPInterface.cpp", because it's no longer needed.

Signed-off-by: Ray Lehtiniemi <rayl@mail.com>
Import live.2010.03.16.tar.gz

- Made more improvements to "QuickTimeFileSink".  (Thanks to Wolfgang Breyha.)

Signed-off-by: Ray Lehtiniemi <rayl@mail.com>
Import live.2010.04.01.tar.gz

- Fixed the "openRTSP" code so that it no longer restricts the play time duration (using the "-d" option), because there is no
  no longer any practical limit on the duration that gets passed to "TaskScheduler::scheduleDelayedTask()"
  (because it is microseconds in 64 bits).
  (Thanks to Brad Thomas for this suggestion.)
- Removed some obsolete (and unused) code from the "RTSPClient" implementation, in preparation for a major reworking of this code.

Signed-off-by: Ray Lehtiniemi <rayl@mail.com>
Import live.2010.04.09.tar.gz

- Fixed a bug in the way that "AMRAudioRTPSource" reimplements "hasBeenSynchronizedUsingRTCP()".
  (Thanks to Ralf Globisch for reporting this bug.)
- Increased "SegmentQueueSize" in "MP3ADU.cpp" from 10 to 20, to allow for some unusually-VBR MP3 files that neeed this.
  (Thanks to Dirk Raffel for reporting this problem.)
- Changed the implementation of "parseRangeHeader()" in "RTSPCommon.cpp", in preparation for upcoming changes to "RTSPClient".

Signed-off-by: Ray Lehtiniemi <rayl@mail.com>