r6 - tarballs unstable unstable/liblivemedia unstable/liblivemedia/debian unstable/liblivemedia/debian/patches

Samuel Hocevar sho at alioth.debian.org
Wed Mar 14 14:13:18 CET 2007


Author: sho
Date: 2006-03-30 14:13:29 +0000 (Thu, 30 Mar 2006)
New Revision: 6

Added:
   tarballs/liblivemedia_2006.03.17.orig.tar.gz
   unstable/liblivemedia/
   unstable/liblivemedia/debian/
   unstable/liblivemedia/debian/README.Debian
   unstable/liblivemedia/debian/changelog
   unstable/liblivemedia/debian/compat
   unstable/liblivemedia/debian/control
   unstable/liblivemedia/debian/copyright
   unstable/liblivemedia/debian/examples
   unstable/liblivemedia/debian/liblivemedia-dev.dirs
   unstable/liblivemedia/debian/liblivemedia-dev.docs
   unstable/liblivemedia/debian/livemedia-utils.dirs
   unstable/liblivemedia/debian/livemedia-utils.doc-base
   unstable/liblivemedia/debian/livemedia-utils.docs
   unstable/liblivemedia/debian/openRTSP.html
   unstable/liblivemedia/debian/patches/
   unstable/liblivemedia/debian/patches/010_propagate_cflags.diff
   unstable/liblivemedia/debian/patches/010_proper_link_order.diff
   unstable/liblivemedia/debian/patches/010_static_link.diff
   unstable/liblivemedia/debian/patches/020_cxx_headers.diff
   unstable/liblivemedia/debian/patches/020_invalid_casts.diff
   unstable/liblivemedia/debian/patches/040_changelog.diff
   unstable/liblivemedia/debian/patches/series
   unstable/liblivemedia/debian/rules
Log:
liblivemedia (2006.03.17-2) unstable; urgency=low

  * Switched patch system to quilt.
  * debian/control:
    + Build-depend on quilt.

  * 010_propagate_cflags.diff: (new patch from old diff.gz) properly
    propagate $(CFLAGS) when entering new directories.

  * 010_proper_link_order.diff: (new patch from old diff.gz) fixed order
    of libraries in the link line.

  * 010_static_link.diff: (new patch from old diff.gz) create static
    libraries instead of a shared one.

  * 020_cxx_headers.diff: (new patch from old diff.gz) fixed inclusion of
    C headers instead of C++.

  * 020_invalid_casts.diff: (new patch from old diff.gz) fixed invalid casts
    from integer to (void *).

  * 040_changelog.diff: (new patch from old diff.gz) added upstream changelog
    to the distribution.


Added: tarballs/liblivemedia_2006.03.17.orig.tar.gz
===================================================================
(Binary files differ)


Property changes on: tarballs/liblivemedia_2006.03.17.orig.tar.gz
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream


Property changes on: unstable/liblivemedia/debian
___________________________________________________________________
Name: mergeWithUpstream
   + 1

Added: unstable/liblivemedia/debian/README.Debian
===================================================================
--- unstable/liblivemedia/debian/README.Debian	2006-03-30 08:44:19 UTC (rev 5)
+++ unstable/liblivemedia/debian/README.Debian	2006-03-30 14:13:29 UTC (rev 6)
@@ -0,0 +1,19 @@
+Using libliveMedia et al.
+
+   o  Use these flags in CPPFLAGS or CFLAGS/CXXFLAGS:
+
+        -I/usr/include/liveMedia -I/usr/include/groupsock
+        -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment
+
+   o  If you are building a binary object, use these LIBS:
+
+        -lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment
+
+   o  If you are building a PIC plug-in that uses libliveMedia, but NOT a
+      library that uses libliveMedia (in that case, link your application
+      with the above flags and use -rdynamic), use these LIBS:
+
+        -lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic
+          -lUsageEnvironment_pic
+
+ -- Sam Hocevar <sam at zoy.org>  Tue, 10 Feb 2004 15:04:07 +0100

Added: unstable/liblivemedia/debian/changelog
===================================================================
--- unstable/liblivemedia/debian/changelog	2006-03-30 08:44:19 UTC (rev 5)
+++ unstable/liblivemedia/debian/changelog	2006-03-30 14:13:29 UTC (rev 6)
@@ -0,0 +1,107 @@
+liblivemedia (2006.03.17-2) unstable; urgency=low
+
+  * Switched patch system to quilt.
+  * debian/control:
+    + Build-depend on quilt.
+
+  * 010_propagate_cflags.diff: (new patch from old diff.gz) properly
+    propagate $(CFLAGS) when entering new directories.
+
+  * 010_proper_link_order.diff: (new patch from old diff.gz) fixed order
+    of libraries in the link line.
+
+  * 010_static_link.diff: (new patch from old diff.gz) create static
+    libraries instead of a shared one.
+
+  * 020_cxx_headers.diff: (new patch from old diff.gz) fixed inclusion of
+    C headers instead of C++.
+
+  * 020_invalid_casts.diff: (new patch from old diff.gz) fixed invalid casts
+    from integer to (void *).
+
+  * 040_changelog.diff: (new patch from old diff.gz) added upstream changelog
+    to the distribution.
+
+ -- Sam Hocevar (Debian packages) <sam+deb at zoy.org>  Thu, 30 Mar 2006 15:59:49 +0200
+
+liblivemedia (2006.03.17-1) unstable; urgency=low
+
+  * New upstream release.
+  * This release properly builds with gcc 4.1 (Closes: #356592).
+  * debian/control:
+    + Replaced occurrences of live.com to live555.com.
+  * debian/openRTSP.html:
+    + Included documentation from http://www.live555.com/openRTSP/ for
+      the openRTSP binary (Closes: #345510).
+
+ -- Sam Hocevar (Debian packages) <sam+deb at zoy.org>  Mon, 20 Mar 2006 10:41:50 +0100
+
+liblivemedia (2005.10.05-1) unstable; urgency=low
+
+  * New upstream release.
+  * debian/rules:
+    + Oops, fixed a bug that compiled both library versions as PIC.
+  * debian/copyright:
+    + Updated the FSF address.
+
+ -- Sam Hocevar (Debian packages) <sam+deb at zoy.org>  Thu,  6 Oct 2005 21:42:46 +0200
+
+liblivemedia (2005.07.21-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Sam Hocevar (Debian packages) <sam+deb at zoy.org>  Thu, 21 Jul 2005 16:36:47 +0200
+
+liblivemedia (2005.06.16-1) unstable; urgency=low
+
+  * New upstream snapshot.
+  * CXX transition upload.
+  * debian/control:
+    + Set policy to 3.6.2.1.
+    + New livemedia-utils package containing the compiled example tools,
+      including openRTSP (Closes: #267602, #271383). The source code for them
+      is still in liblivemedia-dev as examples.
+    + Mention "RTSP" in the short description, and tool names such as openRTSP
+      in the long description (Closes: #304255).
+  * Included upstream changelog in the package.
+
+ -- Sam Hocevar (Debian packages) <sam+deb at zoy.org>  Fri, 15 Jul 2005 14:51:34 +0300
+
+liblivemedia (2005.04.01-1) unstable; urgency=low
+
+  * New upstream snapshot (Closes: #302319).
+
+ -- Sam Hocevar (Debian packages) <sam+deb at zoy.org>  Fri,  1 Apr 2005 19:00:59 +0200
+
+liblivemedia (2004.11.11a-1) unstable; urgency=low
+
+  * New upstream snapshot.
+
+ -- Sam Hocevar (Debian packages) <sam+deb at zoy.org>  Sun, 14 Nov 2004 23:50:17 +0100
+
+liblivemedia (2004.11.02-1) unstable; urgency=low
+
+  * New upstream snapshot.
+  * debian/control:
+    + Set policy to 3.6.1.1.
+  * README.Debian:
+    + Fixed CFLAGS indications.
+
+ -- Sam Hocevar (Debian packages) <sam+deb at zoy.org>  Tue,  2 Nov 2004 14:49:03 +0100
+
+liblivemedia (2004.04.23-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Sam Hocevar (Debian packages) <sam+deb at zoy.org>  Mon, 26 Apr 2004 17:47:40 +0200
+
+liblivemedia (2004.02.09-1) unstable; urgency=low
+
+  * Initial release (Closes: #231954).
+  * liveMedia/H263plusVideoRTPSink.cpp liveMedia/MPEG1or2Demux.cpp:
+    + Removed invalid and useless int->void* casts.
+  * groupsock/Groupsock.cpp groupsock/NetInterface.cpp:
+    + Replaced <strstream.h> includes with <strstream>.
+
+ -- Sam Hocevar (Debian packages) <sam+deb at zoy.org>  Mon,  9 Feb 2004 22:31:50 +0100
+

Added: unstable/liblivemedia/debian/compat
===================================================================
--- unstable/liblivemedia/debian/compat	2006-03-30 08:44:19 UTC (rev 5)
+++ unstable/liblivemedia/debian/compat	2006-03-30 14:13:29 UTC (rev 6)
@@ -0,0 +1 @@
+4

Added: unstable/liblivemedia/debian/control
===================================================================
--- unstable/liblivemedia/debian/control	2006-03-30 08:44:19 UTC (rev 5)
+++ unstable/liblivemedia/debian/control	2006-03-30 14:13:29 UTC (rev 6)
@@ -0,0 +1,38 @@
+Source: liblivemedia
+Section: libs
+Priority: optional
+Maintainer: Sam Hocevar (Debian packages) <sam+deb at zoy.org>
+Build-Depends: debhelper (>= 4.0.0), quilt
+Standards-Version: 3.6.2
+
+Package: liblivemedia-dev
+Section: libdevel
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: multimedia RTSP streaming library
+ The live555.com streaming media code is a set of C++ libraries for multimedia
+ streaming, using open standard protocols (RTP/RTCP, RTSP, SIP). These
+ libraries can be used to build applications to stream, receive and process
+ MPEG, H.263+ or JPEG video, several audio codecs, and can easily be extended
+ to support additional codecs. They can also be used to build basic RTSP (Real
+ Time Streaming Protocol) or SIP (Session Initiation Protocol) clients and
+ servers.
+ .
+ This package contains the headers and static libraries required to build
+ applications that use live555.com.
+
+Package: livemedia-utils
+Section: net
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: multimedia RTSP streaming tools
+ The live555.com streaming media code is a set of C++ libraries for multimedia
+ streaming, using open standard protocols (RTP/RTCP, RTSP, SIP). These
+ libraries can be used to build applications to stream, receive and process
+ MPEG, H.263+ or JPEG video, several audio codecs, and can easily be extended
+ to support additional codecs. They can also be used to build basic RTSP (Real
+ Time Streaming Protocol) or SIP (Session Initiation Protocol) clients and
+ servers.
+ .
+ This package contains the live555.com example programs (openRTSP, playSIP,
+ sapWatch, vobStreamer) and a variety of test tools.

Added: unstable/liblivemedia/debian/copyright
===================================================================
--- unstable/liblivemedia/debian/copyright	2006-03-30 08:44:19 UTC (rev 5)
+++ unstable/liblivemedia/debian/copyright	2006-03-30 14:13:29 UTC (rev 6)
@@ -0,0 +1,26 @@
+This package was debianized by Sam Hocevar <sam at zoy.org> on
+Mon,  9 Feb 2004 22:31:50 +0100.
+
+It was downloaded from http://www.live.com/liveMedia/public/
+
+Upstream Authors: Live Networks, Inc. <http://www.live.com/>
+
+Copyright (c) 2001-2005 Live Networks, Inc.  All rights reserved.
+
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Lesser General Public
+  License as published by the Free Software Foundation; either
+  version 2.1 of the License, or (at your option) any later version.
+
+  This library is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+  Lesser General Public License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with this library; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+
+On Debian GNU/Linux systems, the complete text of the GNU Lesser General
+Public License can be found in `/usr/share/common-licenses/LGPL'.
+

Added: unstable/liblivemedia/debian/examples
===================================================================
--- unstable/liblivemedia/debian/examples	2006-03-30 08:44:19 UTC (rev 5)
+++ unstable/liblivemedia/debian/examples	2006-03-30 14:13:29 UTC (rev 6)
@@ -0,0 +1 @@
+testProgs/*.cpp

Added: unstable/liblivemedia/debian/liblivemedia-dev.dirs
===================================================================
--- unstable/liblivemedia/debian/liblivemedia-dev.dirs	2006-03-30 08:44:19 UTC (rev 5)
+++ unstable/liblivemedia/debian/liblivemedia-dev.dirs	2006-03-30 14:13:29 UTC (rev 6)
@@ -0,0 +1,2 @@
+usr/lib
+usr/include

Added: unstable/liblivemedia/debian/liblivemedia-dev.docs
===================================================================
--- unstable/liblivemedia/debian/liblivemedia-dev.docs	2006-03-30 08:44:19 UTC (rev 5)
+++ unstable/liblivemedia/debian/liblivemedia-dev.docs	2006-03-30 14:13:29 UTC (rev 6)
@@ -0,0 +1 @@
+README

Added: unstable/liblivemedia/debian/livemedia-utils.dirs
===================================================================
--- unstable/liblivemedia/debian/livemedia-utils.dirs	2006-03-30 08:44:19 UTC (rev 5)
+++ unstable/liblivemedia/debian/livemedia-utils.dirs	2006-03-30 14:13:29 UTC (rev 6)
@@ -0,0 +1 @@
+usr/bin

Added: unstable/liblivemedia/debian/livemedia-utils.doc-base
===================================================================
--- unstable/liblivemedia/debian/livemedia-utils.doc-base	2006-03-30 08:44:19 UTC (rev 5)
+++ unstable/liblivemedia/debian/livemedia-utils.doc-base	2006-03-30 14:13:29 UTC (rev 6)
@@ -0,0 +1,11 @@
+Document: livemedia-utils
+Title: openRTSP Documentation
+Author: Live Networks, Inc.
+Abstract: "openRTSP" is a command-line program that can be used to open,
+ stream, receive, and (optionally) record media streams that are specified
+ by an RTSP URL - i.e., an URL that begins with rtsp://
+Section: Apps/Programming
+
+Format: HTML
+Index: /usr/share/doc/livemedia-utils/openRTSP.html
+Files: /usr/share/doc/livemedia-utils/openRTSP.html

Added: unstable/liblivemedia/debian/livemedia-utils.docs
===================================================================
--- unstable/liblivemedia/debian/livemedia-utils.docs	2006-03-30 08:44:19 UTC (rev 5)
+++ unstable/liblivemedia/debian/livemedia-utils.docs	2006-03-30 14:13:29 UTC (rev 6)
@@ -0,0 +1 @@
+README

Added: unstable/liblivemedia/debian/openRTSP.html
===================================================================
--- unstable/liblivemedia/debian/openRTSP.html	2006-03-30 08:44:19 UTC (rev 5)
+++ unstable/liblivemedia/debian/openRTSP.html	2006-03-30 14:13:29 UTC (rev 6)
@@ -0,0 +1,594 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head><script>function PrivoxyWindowOpen(){return(null);}</script>
+<Title>openRTSP</Title>
+</head>
+
+<body background="../graphics/lni_background.jpg">
+
+<TABLE>
+<TR>
+<TD>
+<img src="../logos/logo.50t.gif" width="143" ALIGN=LEFT  HEIGHT="167" ALT="Live Networks logo">
+</TD>
+<TD>
+<h1>openRTSP<sup><font size=-2>TM</font></sup></h1>
+<center><h3>A command-line
+<a HREF="http://www.rtsp.org/">RTSP</a>
+client</h3></center>
+</TD>
+</TR>
+</TABLE>
+<p>
+"openRTSP" is a command-line program that can be used to open, stream,
+receive, and (optionally) record media streams that are specified by a
+<a HREF="http://www.rtsp.org/">RTSP</a>
+URL - i.e., an URL that begins with
+<em>rtsp://</em>
+<p>
+<small>(A related program
+- "<a HREF="../playSIP/">playSIP</a>"
+- can be used to play/record a
+<em>SIP</em>
+session.)</small>
+<p>
+        <ul>
+        <li><a HREF="#basic">Basic operation</a>
+        <li><a HREF="#no-receive">Playing without receiving</a>
+        <li><a HREF="#playing-time">Playing-time options</a>
+        <li><a HREF="#access-control">Streaming access-controlled sessions</a>
+        <li><a HREF="#quicktime">Outputting a ".mov", ".mp4", or ".avi"-format file</a>
+        <li><a HREF="#other-options">Other options</a>
+        <li><a HREF="#real-media">A note about RealAudio and RealVideo sessions</a>
+        <li><a HREF="#source-code">Source code</a>
+<!--
+	<li><a HREF="#binaries">Pre-built binaries</a>
+-->
+	<li><a HREF="#support">Support and customization</a>
+	<li><a HREF="#option-summary">Summary of command-line options</a>
+        </ul>
+
+<a name="basic"></a>
+<h2>Basic operation</h2>
+
+The simplest way to run this program is:
+<pre>
+        openRTSP <em>&lt;url&gt;</em>
+</pre>
+where <em>&lt;url&gt;</em> is a RTSP URL to open
+(i.e., beginning with "rtsp://").
+The program will open the given URL (using RTSP's "DESCRIBE" command),
+retrieve the session's SDP description,
+and then, for each audio/video subsession whose RTP payload format it
+understands, "SETUP" and "PLAY" the subsession.
+<p>
+The received data for each subsession is written into a separate output
+file, named according to its MIME type.
+For example, if the session contains a MPEG-1 or 2 audio subsession
+(RTP payload type 14) - e.g., MP3 - and a MPEG-1 or 2 video
+subsession (RTP payload type 32),
+then each subsession's data
+will be extracted from the incoming RTP packets and
+written to files named "audio-MPA-1" and "video-MPV-2" (respectively).
+(You will probably then need to rename these files
+- by giving them an appropriate filename extension
+(e.g., ".mp3" and ".mpg") - in order
+to be able to play them using common media player tools.)
+<p>
+You can use the
+"<strong>-F <em>&lt;fileName-prefix&gt;</em></strong>" option to
+add a prefix to the file name that is written for each subsession.
+(This can be useful if you are running "openRTSP" several times,
+in the same directory,
+to read data from different RTSP sessions.)
+<p>
+
+<h3>Extracting a single stream (to 'stdout')</h3>
+
+To record only the audio stream from a session, use the
+"<strong>-a</strong>" command-line option.
+(Similarly, to record only the video stream, use the
+"<strong>-v</strong>" option.)
+In this case, the output audio (or video) stream will
+be written to 'stdout', rather than to a file.
+
+<h3>More verbose diagnostic output</h3>
+For more verbose diagnostic output, use the
+"<strong>-V</strong>" (upper-case) option.
+With this option, the program will print out each complete
+RTSP request and response.
+This can be useful for figuring out exactly why a "SETUP"
+or "PLAY" operation failed.
+
+<p><hr><p>
+
+<a name="no-receive"></a>
+<h2>Playing without receiving</h2>
+
+If you want the program to <em>play</em> the RTSP session,
+but not actually <em>receive</em> it, you can do so by giving the
+program the
+"<strong>-r</strong>" ('don't receive') option.
+This is useful if you have a separate application (running on the same
+host) that actually receives the incoming media session(s).
+(Note that this separate receiving application should also send back
+RTCP Reception Reports, to ensure that the session doesn't time out.)
+<p>
+If you use the "-r" option to play a unicast session,
+you'll probably also want to use the
+"<strong>-p <em>&lt;startingPortNumber&gt;</em></strong>" option.
+This option tells the program which client port numbers to use in the
+RTSP "SETUP" commands - i.e., which RTP/RTCP
+ports the server should send to.
+(Without the "-r" option, the program receives the streams itself,
+and uses its own ephemeral port numbers for this.)
+<em>&lt;startingPortNumber&gt;</em> must be an even number.
+<p>
+For example, if the RTSP session consists of an audio and a video
+subsession (listed in that order in the returned SDP description), then
+"-p 6666" will cause ports 6666 and 6667 to be used for the
+audio subsession (6666 for RTP; 6667 for RTCP),
+and ports 6668 and 6669 to be used for
+the video subsession (6668 for RTP; 6669 for RTCP).
+<p>
+(If you use the "-r" option to play a <em>multicast</em> session,
+then you probably won't also need to use the
+"-p <em>&lt;startingPortNumber&gt;</em>" option, because the SDP
+description for multicast sessions usually includes a port number to use.)
+
+<p><hr><p>
+
+<a name="playing-time"></a>
+<h2>Playing-time options</h2>
+
+If the SDP description (from the RTSP server) contains a
+"a=range:npt= ..." attribute specifying an end time, then the program
+will close down the session and exit shortly after
+(by default, 5 seconds after) this time elapses.
+<p>
+You can change this end time using the
+"<strong>-e <em>&lt;endTime&gt;</em></strong>" option.
+If
+<em>&lt;endTime&gt;</em>
+is positive, it is the total number of
+seconds to delay before closing down the session and exiting.  If
+<em>&lt;endTime&gt;</em>
+is negative, then
+-<em>&lt;endTime&gt;</em>
+gives the number of extra seconds to delay after the time specified
+in the SDP "a=range" attribute.
+(As noted above, the default value for this extra time is 5 seconds.)
+<p>
+For example, if the SDP description contains
+"a=range:npt=0-25", then
+"-e 10"
+means "play the stream(s) for 10 seconds, then exit", and
+"-e -10"
+means "play the stream(s) for 35 seconds, then exit".
+<p>
+You can also use the
+"<strong>-E <em>&lt;maximum-inter-packet-gap&gt;</em></strong>" option
+to ask that the program shut down if no new incoming RTP (i.e., data)
+packets are received within a period of at least
+<em>&lt;maximum-inter-packet-gap&gt;</em>
+seconds.
+This option is useful if you are running the program automatically
+(e.g., from within a script), and wish to allow for the possibility
+of servers that die
+unexpectedly.
+(Note that "-e" and "-E" are different options, and may both be used.)
+<p>
+Note, however, that if
+the program receives a RTCP "BYE" packet from the source - for every stream
+in the session - then the program will close down the session and
+exit immediately, regardless of the use of the "-e" and/or "-E" options.
+<p>
+You can also use the
+"<strong>-c</strong>"
+option to play the media
+sessions continuously.
+I.e., after the end time has elapsed, the program starts all over again,
+by issuing another set of "PLAY" requests.
+(Note that if you're receiving data (i.e., you don't use the "-r" option),
+then this means you'll get multiple copies of the data in
+the output file(s).)
+<p>
+Note that you can combine "-c" with
+"-e <em>&lt;endTime&gt;</em>"
+and/or
+"-E <em>&lt;maximum-inter-packet-gap&gt;</em>".
+So, for example,
+"-c -e 10"
+means "play the stream(s) for 10 seconds, then go back and play
+them again for another 10 seconds, etc., etc."
+
+<p><hr><p>
+
+<a name="access-control"></a>
+<h2>Streaming access-controlled sessions</h2>
+
+Some RTSP servers require user authentication (via a name and password)
+before a session can be streamed.  To stream such a session, use the
+"<strong>-u <em>&lt;username&gt;</em> <em>&lt;password&gt;</em></strong>" option.
+(To specify an empty password, use
+<em>""</em> for <em>&lt;password&gt;</em>.)
+The program authenticates using RTSP "digest authentication"; the password
+will <em>not</em> get sent in the clear over the net.
+<p>
+Alternatively, you could try including the user name and password inside
+the URL, as:
+"rtsp://<em>&lt;username&gt;</em>:<em>&lt;password&gt;</em>@<em>&lt;hostname&gt;</em>:<em>&lt;etc.&gt;</em>".
+(In this case, though, the password <em>will</em> be sent in the clear
+over the net.  Also, not all servers will accept this type of URL.)
+
+<p><hr><p>
+
+<a name="quicktime"></a>
+<h2>Outputting a ".mov", ".mp4", or ".avi"-format file</h2>
+
+Use the
+"<strong>-q</strong>"
+option to output the received data to 'stdout' in the form of an
+Apple
+<a HREF="http://developer.apple.com/documentation/QuickTime/QuickTime.html">QuickTime '.mov'-format file</a>.
+Each received subsession will be have its own track in the output file.
+<p>
+Similarly, the
+"<strong>-4</strong>"
+option produces a '.mp4'-format (i.e., MPEG-4) file.
+<p>
+At present these options are fully supported for only a limited number of codecs.
+For those codecs that are not fully supported, the program will
+still store all of its received data into a movie track, but will
+use a dummy Media Data Atom (named '????') in the Sample Description.
+(This track will also be disabled.)
+Before you can play such a track, you will need to
+edit the file.
+<p>
+If the session contains a video subsession, you should also use the
+"<strong>-w <em>&lt;width&gt;</em></strong>",
+"<strong>-h <em>&lt;height&gt;</em></strong>"
+and
+"<strong>-f <em>&lt;frame-rate&gt;</em></strong>"
+options
+to specify the width and height (in pixels), and frame rate
+(per-second) of the corresponding
+video track.
+(If these options are omitted, then the values width=240 pixels;
+height=180 pixels; frame-rate=15 are used.)
+<p>
+<small>
+Alternatively, if the session's SDP description contains the
+media-level attribute
+"a=x-dimensions: <em>&lt;width&gt;</em>,<em>&lt;height&gt;</em>",
+then these values will be used instead (in which case you won't need
+to use the "-w" and "-h" options).
+Similarly, if the session's SDP description contains the
+media-level attribute
+"a=x-framerate: <em>&lt;frames-per-second&gt;</em>",
+then this value will be used instead (in which case you won't need
+to use the "-f" option).
+</small>
+<p>
+If the resulting QuickTime movie file contains audio and video tracks that
+are out-of-sync, then you can use the 
+"<strong>-y</strong>"
+option to try to generate synchronized audio/video tracks.
+(This option works by listening for RTCP "Sender Report" packets
+- containing time synchronization information - for each stream.
+Some initial, unsynchronized data may end up being discarded.)
+<p>
+The
+"<strong>-H</strong>"
+option will also generate a QuickTime 'hint track' for each audio or video
+track.
+This is useful if you later wish to stream the resulting ".mov" or ".mp4" file.
+<p>
+<small>
+<em>Note:</em>
+"openRTSP"s support for creating QuickTime format files is
+rather limited.
+At present, only PCM (u-law and a-law),
+MPEG-4, GSM
+and QCELP (aka. 'PureVoice') audio is supported,
+and only MPEG-4 and H.263/H.263+ video is supported.
+(Also, for creating <em>hinted</em>
+QuickTime format files, QCELP audio is not currently supported.)
+</small>
+
+<p>
+The
+"<strong>-i</strong>"
+option produces a '.avi'-format file.
+(This functionality is not fully-supported.
+MPEG-1, 2 or 4, JPEG and H.263 video is supported,
+along with raw PCM or u-law audio.
+However, MPEG and other audio codecs are not yet supported.)
+<p><hr><p>
+
+<a name="other-options"></a>
+<h2>Other options</h2>
+
+<h3>Notification of data arrival</h3>
+Use the
+"<strong>-n</strong>"
+option
+if you wish to be 'notified'
+(with a console message)
+when the first data (RTP) packets begin
+arriving.
+<p>
+
+<h3>Receiving streamed data via TCP instead of UDP</h3>
+If you're not receiving any data packets
+(you can test this using "-n"), then you may be behind a firewall
+that (stupidly) blocks UDP packets.
+If this is the case, you can use the
+"<strong>-t</strong>"
+option
+to request that the RTSP server stream RTP and RTCP data packets over
+its TCP connection, instead of using UDP packets.
+(Note that not all RTSP servers support TCP streaming, and that
+TCP cannot be used to receive multicast streams.)
+<p>
+You should use this option only if you are unable to receive UDP packets,
+or if you are recording the stream for later playback, and need to do so
+without packet loss.
+Streaming over TCP can cause incoming data to be excessively delayed,
+which is inappropriate if the data is being processed in real time.
+<p>
+Alternatively, you can use the
+"<strong>-T <em>&lt;http-port-number&gt;</em></strong>"
+option to request that the stream be sent (using TCP) over a
+"<a HREF="http://developer.apple.com/documentation/QuickTime/QTSS/Concepts/chapter_2_section_14.html">RTSP-over-HTTP tunnel</a>", using the specified HTTP port number.
+RTSP-over-HTTP tunneling can be useful if you are behind a HTTP-only firewall.
+(Note, however, that not all RTSP servers support this.)
+
+<p>
+
+<h3>Receiving unsupported RTP payload formats</h3>
+
+Note: An "RTP payload format" for a codec is a set of rules that define how
+the codec's media frames are packed within RTP packets.
+This is usually defined by an IETF RFC
+(or, for newer payload formats, an IETF Internet-Draft).
+<p>
+By default, the program will ignore any subsession whose RTP payload format
+it doesn't understand (because, if it doesn't know the RTP payload format,
+it doesn't know how to extract data from the incoming RTP stream).
+<p>
+However, if an input stream uses a RTP payload format
+that the program does not support, then you <em>may</em> still
+be able to
+receive this data, by using
+the
+"<strong>-s <em>&lt;byte-offset&gt;</em></strong>"
+option.
+This option tells the program to assume that any such unsupported stream
+uses a very 'simple' RTP payload format, in which the stream's data
+is packed contiguously into RTP packets, following the RTP header.
+(In particular, the payload format must not use interleaving.)
+<em>&lt;byte-offset&gt;</em> specifies the size (in bytes) of
+any special header that follows the standard RTP header.
+(This special header is skipped over, and is not interpreted at all.)
+<p>
+For example, if the program didn't already handle PCM u-law audio
+("audio/PCMU"; RTP payload format code 0), then you could receive it using
+the option
+"-s 0".
+If the program didn't already handle MPEG audio
+("audio/MPEG"; RTP payload format code 14), then you could receive it
+using the option
+"-s 4"
+(because the RTP payload format for MPEG audio, defined in RFC 2250,
+specifies a (basically useless) 4-byte header at the start of the RTP payload).
+
+<h3>Outputting QOS statistics</h3>
+Use the "<strong>-Q</strong>" option to output QOS
+("quality of service") statistics about the data stream
+(when the program exits).
+These statistics include the (minimum, average, maximum)
+bitrate, packet loss rate, and inter-packet gap.
+<p>
+The "-Q" option takes an optional
+<em>&lt;measurement-interval&gt;</em>
+parameter, which specifies the length of the
+time intervals - in multiples
+of 100ms - over which the "minimum, average, maximum"
+statistics are computed.
+The default value of this parameter is "10", meaning
+that these statistics are measured every 1 second
+(i.e., 10x100ms). 
+
+<h3>Outputting server options</h3>
+
+By default, the program sends an "OPTIONS" command before sending 
+"DESCRIBE".
+The purpose of the "OPTIONS" command is ask the server to respond with the
+list of commands that it supports.
+<p>
+If the "<strong>-o</strong>" option is given, then the program sends the
+"OPTIONS" command <em>only</em>.
+If the "-o" option is given, then all other command-line options
+- except "-V" (verbose output) - are ignored.
+<p>
+The "<strong>-O</strong>" option has the opposite effect: It tells the
+program to <em>not</em> send an "OPTIONS" command prior to sending
+"DESCRIBE".
+
+
+<h3>Outputting each frame into a separate file</h3>
+If the "<strong>-m</strong>" option is given, each incoming 'frame'
+will be written into a separate output file.
+(Note that 'frame' in this case is a discrete unit of data that comes
+from a 'RTPSource'.  For some RTP payload formats (such as motion-JPEG),
+each file will contain a complete image.
+For other RTP payload formats (such as MPEG video), each file will 
+contain a smaller unit of data, such as a video header structure,
+or a frame 'slice'.)
+To distinguish the output files, each 'frame's presentation time is used
+in the suffix of the corresponding output file.
+
+<h3>Changing the output file buffer size</h3>
+If you see an error message
+<em>"The total received frame size exceeds the client's buffer size"</em>,
+then this indicates that incoming RTP data formed a frame that
+was too large for this program's output file buffer.
+By default, a 20 kByte buffer is used, so this situation usually does not
+occur.
+(It occurs only for codecs - such as JPEG - that can have very large frames.)
+<p>
+If, however,
+you see this error message, you can increase the output file buffer size
+using the "<strong>-b <em>&lt;buffer-size&gt;</em></strong>" option.
+
+<h3>Changing the input network socket buffer size</h3>
+You can also use the
+"<strong>-B <em>&lt;buffer-size&gt;</em></strong>" option
+to change the size of the input buffer that the underlying
+operating system uses for network sockets.
+(You probably won't need to use this option, because the operating system's
+default buffer size is usually sufficient.)
+
+<p><hr><p>
+
+<a name="real-media"></a>
+<h2>A note about RealAudio and RealVideo sessions</h2>
+
+Note that this program <em>cannot</em> be used to receive RealAudio and/or
+RealVideo sessions - even those described by a "rtsp://" URL - because
+these sessions do not use RTP for transport.
+(Instead, these sessions use RealNetworks' proprietary
+"RDT" protocol.)
+
+<p><hr><p>
+
+<a name="source-code"></a>
+<h2>Source code</h2>
+
+This program uses the "RTSPClient", "MediaSession",
+"FileSink", "QuickTimeFileSink",
+and several "*RTPSource" modules from the "liveMedia" library,
+which is distributed as part of the
+"<a HREF="../liveMedia/">LIVE555 Streaming Media</a>"
+source code package.
+(Other RTSP clients could readily be built from this code.)
+<p>
+The source code for the program itself is also bundled with this package,
+as the files "openRTSP.cpp"
+and "playCommon.cpp",
+in the "testProgs" directory.
+See the
+<a HREF="../liveMedia/">"LIVE555 Streaming Media"
+documentation</a>
+for instructions on how to build this program from source.
+<p>
+
+<em>Note:</em>
+If you are looking for an example of how to use the
+"LIVE555 Streaming Media" code to build your own RTSP/RTP media player client,
+then the "openRTSP" source code is not the best example to use, because
+it includes lots of extra 'bells and whistles'.
+Instead, you should look at the
+RTSP/RTP client support in the
+"<a HREF="http://www.live555.com/mplayer/">MPlayer</a>"
+media player.
+(Note, in particular, the files "demux_rtp*" in the
+"libmpdemux" directory.)
+
+<p><hr><p>
+
+<!--
+<a name="binaries"></a>
+<h2>Pre-built binaries</h2>
+
+For convenience, some pre-built executable binary versions of the program
+(for Linux/x86, FreeBSD, Solaris/SPARC, and Windows)
+are also available
+<a HREF="./binaries/">here</a>.
+(These binaries are not always kept up-to-date;
+the best way to ensure you have the latest version of the program is to
+build it from the source code.)
+
+<p><hr><p>
+-->
+
+<a name="support"></a>
+<h2>Support and customization</h2>
+
+If you are interested in seeing new features added to the program
+(e.g., support for additional RTP payload formats
+or QuickTime Media Types),
+or are interested in customizing this program's functionality
+and/or embedding it within your own application,
+please email
+<em>support(at)live555.com</em>
+
+<p><hr><p>
+
+<a name="option-summary"></a>
+<h2>Summary of command-line options</h2>
+(for "openRTSP" and "<a HREF="../playSIP/">playSIP</a>")
+<p>
+<table>
+<tr><td>-4</td><td>output a '.mp4'-format file (to 'stdout')</td></tr>
+<tr><td>-a</td><td>play only the audio stream</td></tr>
+<tr><td>-A <em>&lt;codec-number&gt;</em></td><td>specify the static
+RTP payload format number of the audio codec
+to request from the server
+<em>("playSIP" only)</em>
+</td></tr>
+<tr><td>-b <em>&lt;buffer-size&gt;</em></td><td>change the output file buffer size</td></tr>
+<tr><td>-B <em>&lt;buffer-size&gt;</em></td><td>change the input network socket buffer size</td></tr>
+<tr><td>-c</td><td>play continuously</td></tr>
+<tr><td>-D <em>&lt;MIME-subtype&gt;</em></td><td>specify the MIME subtype of a dynamic RTP payload format for the audio codec
+to request from the server
+<em>("playSIP" only)</em>
+</td></tr>
+<tr><td>-e <em>&lt;endTime&gt;</em></td><td>specify an explicit end time</td></tr>
+<tr><td>-E <em>&lt;maximum-inter-packet-gap&gt;</em></td><td>specify a maximum period of inactivity to wait before exiting</td></tr>
+<tr><td>-f <em>&lt;frame-rate&gt;</em></td><td>specify the video frame rate (used only with "-q", "-4", or "-i")</td></tr>
+<tr><td>-F <em>&lt;fileName-prefix&gt;</em></td><td>specify a prefix for each output file name</td></tr>
+<tr><td>-h <em>&lt;height&gt;</em></td><td>specify the video image height (used only with "-q", "-4", or "-i")</td></tr>
+<tr><td>-H</td><td>output a QuickTime 'hint track' for each audio/video track (used only with "-q" or "-4")</td></tr>
+<tr><td>-i</td><td>output a '.avi'-format file (to 'stdout')</td></tr>
+<tr><td>-l</td><td>try to compensate for packet losses (used only with "-q", "-4", or "-i")</td></tr>
+<tr><td>-m</td><td>output each incoming frame into a separate file</td></tr>
+<tr><td>-n</td><td>be notified when RTP data packets start arriving</td></tr>
+<tr><td>-o</td><td>request the server's command options, without sending "DESCRIBE"
+<em>("openRTSP" only)</em>
+</td></tr>
+<tr><td>-O</td><td>don't request the server's command options; just send "DESCRIBE"
+<em>("openRTSP" only)</em>
+</td></tr>
+<tr><td>-p <em>&lt;startingPortNumber&gt;</em></td><td>specify the client port number(s)</td></tr>
+<tr><td>-Q</td><td>output 'QOS' statistics about the data stream (when the program exits)</td></tr>
+<tr><td>-q</td><td>output a QuickTime '.mov'-format file (to 'stdout')</td></tr>
+<tr><td>-r</td><td>play the RTP streams, but don't receive them ourself</td></tr>
+<tr><td>-s <em>&lt;byte-offset&gt;</em></td><td>assume a simple RTP payload format (skipping over a special header of the specified size)</td></tr>
+<tr><td>-t</td><td>stream RTP/RTCP data over TCP,
+rather than (the usual) UDP.
+<em>("openRTSP" only)</em>
+<tr><td>-T <em>&lt;http-port-number&gt;</em></td><td>like "-t", except using RTSP-over-HTTP tunneling.
+<em>("openRTSP" only)</em>
+</td></tr>
+<tr><td>-u <em>&lt;username&gt;</em> <em>&lt;password&gt;</em></td><td>specify a user name and password for digest authentication</td></tr>
+<tr><td>-V</td><td>print more verbose diagnostic output</td></tr>
+<tr><td>-v</td><td>play only the video stream</td></tr>
+<tr><td>-w <em>&lt;width&gt;</em></td><td>specify the video image width (used only with "-q", "-4", or "-i")</td></tr>
+<tr><td>-y</td><td>try to synchronize the audio and video tracks (used only with "-q" or "-4")</td></tr>
+</table>
+
+<p>
+<hr>
+<small>
+"LIVE555", "openRTSP", "playSIP",
+and the Live Networks logo are trademarks of
+<a HREF="../">Live Networks, Inc.</a>
+</small>
+
+<p>
+      <a href="http://validator.w3.org/check/referer"><img src="http://config.privoxy.org/send-banner?type=auto" border="\0" title="Killed-http://www.w3.org/Icons/valid-html401-by-size" width="88" height="31"></a>
+    </p>
+</body>
+<script>function PrivoxyWindowOpen(a, b, c){return(window.open(a, b, c));}</script></html>


Property changes on: unstable/liblivemedia/debian/openRTSP.html
___________________________________________________________________
Name: svn:keywords
   + Id

Added: unstable/liblivemedia/debian/patches/010_propagate_cflags.diff
===================================================================
--- unstable/liblivemedia/debian/patches/010_propagate_cflags.diff	2006-03-30 08:44:19 UTC (rev 5)
+++ unstable/liblivemedia/debian/patches/010_propagate_cflags.diff	2006-03-30 14:13:29 UTC (rev 6)
@@ -0,0 +1,31 @@
+--- liblivemedia-2006.03.17.orig/config.linux
++++ liblivemedia-2006.03.17/config.linux
+@@ -1,4 +1,4 @@
+-COMPILE_OPTS =		$(INCLUDES) -I. -O2 -DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1
++COMPILE_OPTS =		$(INCLUDES) -I. $(CFLAGS) -DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1
+ C =			c
+ C_COMPILER =		cc
+ C_FLAGS =		$(COMPILE_OPTS)
+--- liblivemedia-2006.03.17.orig/Makefile.tail
++++ liblivemedia-2006.03.17/Makefile.tail
+@@ -21,15 +21,15 @@
+ 
+ 
+ $(LIVEMEDIA_LIB):
+-	cd $(LIVEMEDIA_DIR) ; $(MAKE)
++	cd $(LIVEMEDIA_DIR) ; CFLAGS="$(CFLAGS)" $(MAKE)
+ $(GROUPSOCK_LIB):
+-	cd $(GROUPSOCK_DIR) ; $(MAKE)
++	cd $(GROUPSOCK_DIR) ; CFLAGS="$(CFLAGS)" $(MAKE)
+ $(USAGE_ENVIRONMENT_LIB):
+-	cd $(USAGE_ENVIRONMENT_DIR) ; $(MAKE)
++	cd $(USAGE_ENVIRONMENT_DIR) ; CFLAGS="$(CFLAGS)" $(MAKE)
+ $(BASIC_USAGE_ENVIRONMENT_LIB):
+-	cd $(BASIC_USAGE_ENVIRONMENT_DIR) ; $(MAKE)
++	cd $(BASIC_USAGE_ENVIRONMENT_DIR) ; CFLAGS="$(CFLAGS)" $(MAKE)
+ $(TESTPROGS_APP): $(LIVEMEDIA_LIB) $(GROUPSOCK_LIB) $(USAGE_ENVIRONMENT_LIB) $(BASIC_USAGE_ENVIRONMENT_LIB)
+-	cd $(TESTPROGS_DIR) ; $(MAKE)
++	cd $(TESTPROGS_DIR) ; CFLAGS="$(CFLAGS)" $(MAKE)
+ 
+ clean:
+ 	cd $(LIVEMEDIA_DIR) ; $(MAKE) clean

Added: unstable/liblivemedia/debian/patches/010_proper_link_order.diff
===================================================================
--- unstable/liblivemedia/debian/patches/010_proper_link_order.diff	2006-03-30 08:44:19 UTC (rev 5)
+++ unstable/liblivemedia/debian/patches/010_proper_link_order.diff	2006-03-30 14:13:29 UTC (rev 6)
@@ -0,0 +1,11 @@
+--- liblivemedia-2006.03.17.orig/testProgs/Makefile.tail
++++ liblivemedia-2006.03.17/testProgs/Makefile.tail
+@@ -57,7 +57,7 @@
+ GROUPSOCK_DIR = ../groupsock
+ GROUPSOCK_LIB = $(GROUPSOCK_DIR)/libgroupsock.$(LIB_SUFFIX)
+ LOCAL_LIBS =	$(LIVEMEDIA_LIB) $(GROUPSOCK_LIB) \
+-		$(USAGE_ENVIRONMENT_LIB) $(BASIC_USAGE_ENVIRONMENT_LIB)
++		$(BASIC_USAGE_ENVIRONMENT_LIB) $(USAGE_ENVIRONMENT_LIB)
+ LIBS =			$(LOCAL_LIBS) $(LIBS_FOR_CONSOLE_APPLICATION)
+ 
+ testMP3Streamer$(EXE):	$(MP3_STREAMER_OBJS) $(LOCAL_LIBS)

Added: unstable/liblivemedia/debian/patches/010_static_link.diff
===================================================================
--- unstable/liblivemedia/debian/patches/010_static_link.diff	2006-03-30 08:44:19 UTC (rev 5)
+++ unstable/liblivemedia/debian/patches/010_static_link.diff	2006-03-30 14:13:29 UTC (rev 6)
@@ -0,0 +1,13 @@
+--- liblivemedia-2006.03.17.orig/config.linux
++++ liblivemedia-2006.03.17/config.linux
+@@ -9,8 +9,8 @@
+ LINK =			c++ -o
+ LINK_OPTS =		-L.
+ CONSOLE_LINK_OPTS =	$(LINK_OPTS)
+-LIBRARY_LINK =		ld -o
+-LIBRARY_LINK_OPTS =	$(LINK_OPTS) -r -Bstatic
++LIBRARY_LINK =		ar rcvu 
++LIBRARY_LINK_OPTS =	
+ LIB_SUFFIX =			a
+ LIBS_FOR_CONSOLE_APPLICATION =
+ LIBS_FOR_GUI_APPLICATION =

Added: unstable/liblivemedia/debian/patches/020_cxx_headers.diff
===================================================================
--- unstable/liblivemedia/debian/patches/020_cxx_headers.diff	2006-03-30 08:44:19 UTC (rev 5)
+++ unstable/liblivemedia/debian/patches/020_cxx_headers.diff	2006-03-30 14:13:29 UTC (rev 6)
@@ -0,0 +1,22 @@
+--- liblivemedia-2006.03.17.orig/groupsock/Groupsock.cpp
++++ liblivemedia-2006.03.17/groupsock/Groupsock.cpp
+@@ -29,7 +29,7 @@
+ #if defined(__GNUC__) && (__GNUC__ > 3 || __GNUC__ == 3 && __GNUC_MINOR__ > 0)
+ #include <strstream>
+ #else
+-#include <strstream.h>
++#include <strstream>
+ #endif
+ #endif
+ #endif
+--- liblivemedia-2006.03.17.orig/groupsock/NetInterface.cpp
++++ liblivemedia-2006.03.17/groupsock/NetInterface.cpp
+@@ -28,7 +28,7 @@
+ #if defined(__GNUC__) && (__GNUC__ > 3 || __GNUC__ == 3 && __GNUC_MINOR__ > 0)
+ #include <strstream>
+ #else
+-#include <strstream.h>
++#include <strstream>
+ #endif
+ #endif
+ #endif

Added: unstable/liblivemedia/debian/patches/020_invalid_casts.diff
===================================================================
--- unstable/liblivemedia/debian/patches/020_invalid_casts.diff	2006-03-30 08:44:19 UTC (rev 5)
+++ unstable/liblivemedia/debian/patches/020_invalid_casts.diff	2006-03-30 14:13:29 UTC (rev 6)
@@ -0,0 +1,31 @@
+--- liblivemedia-2006.03.17.orig/liveMedia/MPEG1or2Demux.cpp
++++ liblivemedia-2006.03.17/liveMedia/MPEG1or2Demux.cpp
+@@ -161,7 +161,7 @@
+   // Make sure this stream is not already being read:
+   if (out.isCurrentlyAwaitingData) {
+     envir() << "MPEG1or2Demux::registerReadInterest(): attempt to read stream id "
+-	    << (void*)streamIdTag << " more than once!\n";
++	    << streamIdTag << " more than once!\n";
+     exit(1);
+   }
+     
+@@ -457,7 +457,7 @@
+     skipBytes(pack_stuffing_length);
+   } else { // unknown
+     fUsingSource->envir() << "StreamParser::parsePack() saw strange byte "
+-			  << (void*)nextByte
++			  << nextByte
+ 			  << " following pack_start_code\n";
+   }
+   
+--- liblivemedia-2006.03.17.orig/liveMedia/H263plusVideoRTPSink.cpp
++++ liblivemedia-2006.03.17/liveMedia/H263plusVideoRTPSink.cpp
+@@ -65,7 +65,7 @@
+     }
+     if (frameStart[0] != 0 || frameStart[1] != 0) {
+       envir() << "H263plusVideoRTPSink::doSpecialFrameHandling(): unexpected non-zero first two bytes: "
+-	      << (void*)(frameStart[0]) << "," << (void*)(frameStart[1]) << "\n";
++	      << (frameStart[0]) << "," << (frameStart[1]) << "\n";
+     }
+     frameStart[0] = specialHeader>>8;
+     frameStart[1] = (unsigned char)specialHeader;

Added: unstable/liblivemedia/debian/patches/040_changelog.diff
===================================================================
--- unstable/liblivemedia/debian/patches/040_changelog.diff	2006-03-30 08:44:19 UTC (rev 5)
+++ unstable/liblivemedia/debian/patches/040_changelog.diff	2006-03-30 14:13:29 UTC (rev 6)
@@ -0,0 +1,1739 @@
+--- liblivemedia-2006.03.17.orig/changelog.txt
++++ liblivemedia-2006.03.17/changelog.txt
+@@ -0,0 +1,1736 @@
++Next version, in progress:
++- Removed a minor memory leak in "PassiveServerMediaSubsession".
++
++2005.06.16:
++- Fixed a bug in the generic MPEG (1, 2 or 4) video parsing code that was causing some
++  MPEG-4 streams not to be parsed correctly.
++- Updated "MPEG4VideoStreamFramer" to better handle MPEG-4 video streams that contain
++  'B' frames.  (Now, more accurate presentation times and frame durations are computed
++  for such streams.)
++
++2005.06.07:
++- Modified the Windows-specific code in "ByteStreamFileSource.cpp" to compile properly
++  under MINGW.
++
++2005.06.04:
++- Updated "MPEG2TransportStreamFramer::doStopGettingFrames()" to clear the PID status
++  table.  This makes it possible to handle PCR discontinuities when seeking (e.g.)
++  within a stream.
++- Updated the "ByteStreamFileSource::seekToByte*()" operations to take 64-bit
++  parameters, to allow for seeking within files that are >4 GB in size.
++
++2005.05.26a:
++- Updated the 'seeking' operations in "ByteStreamFileSource" to handle files
++ that are > 2^31 bytes in size.
++
++2005.05.26:
++- Updated "RTCPInstance::setByeHandler()" to (by default) handle only "BYE"s that
++  come from active participants.  This means, for example, that a receiver of a
++  multicast stream can now quit without its RTCP "BYE" being handled by other
++  multicast receivers.  (By default, multicast receivers will now handle only
++  "BYE"s that come from the sender.)
++- "RTSPServer" now includes "rtptime" in the returned "RTPInfo:" header, because
++  the bugfix in the previous release also happened to fix the problem that this was
++  having with QuickTime Player.
++
++2005.05.24:
++- Fixed "RTPSink" so that it now resets "fTimestampBase" only on the first time
++  that a timestamp is ever computed; not on the first time after "startPlaying()"
++  is called.  (Thanks to David Bertrand for noting this.)
++
++2005.05.23:
++- Added support to "RTSPServer" for (optionally) reclaiming client connection
++  state (and stopping the stream) if no command has been received on the
++  RTSP TCP connection within a specified period of time.  This is useful for
++  use in closed systems where it is known that the RTSP client always uses
++  the "GET_PARAMETER" command as a periodic 'keep-alive'.  It stops the
++  stream from continuing indefinitely if the client suddenly dies.
++
++2005.05.12:
++- Removed some unnecessary floating point code from "MP3Internals.cpp".
++  (This was causing unnecessary slowness on some hardware without floating point.)
++
++2005.05.09:
++- Modified "MPEG2TransportStreamFramer" to give greater weight (0.5) to more recent
++  data when computing the estimate of per-transport-packet duration.  (This causes
++  it to respond more accurately to sudden changes in bitrate (i.e., in VBR streams).)
++- Added some (otherwise unnecessary) null destructors to stop gcc 4.0 from printing
++  warning messages.  (Thanks to Emiliano Parasassi for pointing this out.)
++
++2005.05.05:
++- "RTSPServer" now uses separate buffers for requests and responses.  (This fixes
++  an issue that arose in the handling of requests from a set-top box.)  
++
++2005.05.04:
++- Updated "RTSPServer" to make the parsing of "CSeq:" headers in RTSP requests
++  more robust.
++
++2005.04.26:
++- Made sure that "MultiFramedRTPSource"s properly stop receiving incoming RTP
++  packets, when they're asked to stop.  (This fixes a bug that was being triggered
++  by some streams that continued sending RTP packets after a RTCP "BYE".  Thanks to
++  Eberhardt Garner for helping track this down.)
++- Fixed a minor memory leak in "openRTSP".
++- Updated "FramedSource.hh" to no longer (by default) support the old form of
++  the 'after getting' function.
++  
++2005.04.23:
++- Added "H264VideoRTPSource", for receiving H.264/RTP streams.
++  (Thanks to Erik Hellerud for this.)
++- Made some minor modifications to "ServerMediaS(ubs)ession",
++  to support a customer's project.
++
++2005.04.22:
++- Improved "MPEG1or2VideoRTPSink" to allow more than one complete video 'slice'
++  from the same picture to be packed into an outgoing RTP packet.
++- Eliminated a bogus "IP_ADD_MEMBERSHIP" error message that Windows (for some
++  reason) sometimes triggers for no reason.
++
++2005.04.20:
++- Changed the name of the (platform-independent) "_close()" function to
++  "closeSocket()", to prevent an apparent function name conflict in Windows.
++
++2005.04.13:
++- Modified "ourSourceAddressForMulticast()" to try the
++  "gethostname()"/"gethostbyName()" method if the 'multicast loopback' method fails.
++- Made some modifications to "ServerMediaSubsession" to support "SIPServer"
++  (whose implementation is currently in progress).
++
++2005.04.07:
++- Fixed a bug in the "base64Encode()" routine in "RTSPClient.cpp".
++  (Thanks to Raphael Rigo for noticing this.)
++- Updated "MPEG1or2VideoStreamDiscreteFramer" to handle the "iFramesOnly" and
++  "vshPeriod" parameters (just as the original "MPEG1or2VideoStreamFramer"
++  already does).
++
++2005.03.31:
++- Removed some testing code that had accidentally been left in the previous
++  release.  If you use "openRTSP", then please use this release instead of the
++  previous one. 
++- Fixed a bug in "RTPServer" when handling streams without stream names.
++  (The bug had been introduced in version 2005.03.28.)
++
++2005.03.30:
++- Improved the support for seeking within RTSP/RTP-streamed MPEG-1 or 2
++  Program Stream files.  (A/V sync after a seek still isn't perfect, though.)
++
++2005.03.28:
++- The "RTSPServer" implementation now supports raw-UDP streaming, for those
++  clients that request it.  (This is usually requested only by some specialized
++  clients - such as set-top boxes - and only for data such as MPEG Transport
++  Streams where audio/video is muxed together (and no RTP timestamps are needed).)
++- Updated the calculation of MP3 sampling frequencies to allow for 'MPEG2.5'
++  (Thanks to Massimo Buffo for this fix.)
++
++2005.03.23:
++- Changed "BasicTaskScheduler::SingleStep()" to call only one read handler during
++  each iteration of the event loop.  This prevents potential problems if
++  the event loop is called reentrantly from within a read handler.
++- Added a new, alternative version of "ByteStreamFileSource::createNew()" that
++  takes an open file (FILE*) as parameter, instead of a file name.
++  (Thanks to Mike Yan for this suggestion.)
++- Updated the top-level Makefile to build the lower-level directories using
++  "$(MAKE)" rather than "make".  This allows a command other than "make"
++  (e.g., "gmake") to be used.  (Thanks to Sergio.Gelato for this fix.)
++- Minor changes to (apparently) make Sun's C++ compiler happy.
++  (Thanks to Sergio.Gelato for these.) 
++- Some changes to "RTSPServer" to make it more tolerant of some strange, non-standard
++  clients.
++- Support seeking within RTSP/RTP-streamed MPEG-1 or 2 Program Stream files.
++
++2005.03.11:
++  Updated "MPEG2TransportStreamFromPESSource" once again to better handle
++  Program Streams that include a "program_stream_map".
++
++2005.03.10:
++- Modified "BasicUDPSource" to make its OS socket receive buffer at least 50 kBytes
++  (the same as we do for "MultiFramedRTPSource").
++
++2005.03.07:
++- Updated "MPEG2TransportStreamFromPESSource" (and thus also the
++  "testMPEG1or2ProgramToTransportStream" demo application) to handle MPEG
++  Program Streams that include MPEG-4 Elementary Stream data.  (For this to work,
++  the Program Stream must include a "program_stream_map".)
++
++2005.03.05:
++- Modifying "ReceivingInterfaceAddr" now works before receiving
++  unicast streams.  (Previously, it worked only when receiving multicast
++  streams.)  Also, added a new option "-I <interface-ip-address>"
++  to "openRTSP", to allow the user to specify which interface is used.
++  (Thanks to Luca Abeni for this patch.)
++- Fixed a "delete[]" vs "delete" bug in "MPEG4VideoStreamFramer",
++
++2005.02.28:
++- Fixed a bug (that had been introduced in the 2005.01.07 version)
++  in the MP3 frame<->ADU conversion code.
++
++2005.02.25:
++- Fixed some minor memory leaks.
++- Made some more changes to prepare for RTSP server seeking within MPEG-1 or 2
++  Program Stream files.  (This is still not done yet.)
++
++2005.02.14:
++- Changed the generation of "rtptime" in "RTPInfo:" RTSP headers to use 
++  %u instead of %d.  (Thanks to Regis Feneon for noting this.)
++- Made some changes to prepare for RTSP server seeking within MPEG-1 or 2
++  Program Stream files.  (This is still not done yet.)
++
++2005.02.09:
++- Updated "MultiFramedRTPSink" to allow for frame-specific special headers to
++  appear before each frame in RTP packets.  (This in addition to the (possible)
++  special header that may appear at the start of the packet.)  This functionality
++  is added using a new virtual function "frameSpecificHeaderSize()" (that,
++  by default, returns 0.)  Thanks to Matt Romaine for this.
++- Added a new "BufferedPacket" virtual member function
++  "getNextEnclosedFrameParameters()", which will (eventually) replace the existing
++  "nextEnclosedFrameSize()" virtual member function.  This (plus a corresponding
++  change to "MultiFramedRTPSource") now makes it possible to give correct 
++  presentation times to multiple frames within incoming RTP packets.
++
++2005.02.07:
++- The "MultiFramedRTPSink::setPacketSize()" function now applies just to one
++  specific "MultiFramedRTPSink" object; not to all such objects.
++- Added a new version of "RTSPServer::removeServerMediaSession()" that takes
++  the (string) stream name - rather than the "serverMediaSession" object
++  - as argument.
++
++2005.01.29:
++- We now remove reception and transmission statistics records (from each
++  "RTPSource" and "RTPSink", respectively), whenever each RTCP SSRC membership
++  gets 'reaped'.  We also added more information to "RTPTransmissionStats".
++  (Thanks to WIS Technologies for funding this work.)
++- Some minor fixes to "JPEGVideoRTPSource".  (Thanks to Sergey Khlutchin for
++  reporting this.)
++- Made the "ServerMediaSession" constructor "protected", to allow for
++  subclassing.  (This was requested by Eric Peters.)
++- Updated "win32config.Borland" and modified some header files, so that the
++  code can be built using Borland's "C++ Builder 5.0".
++  (Thanks to David Wu for this suggestion.)
++- Added a "setPacketSize()" function to "MultiFramedRTPSink" to make it
++  possible to change the 'maximum' and 'preferred' size of outgoing
++  RTP packets.  (Thanks to Christian Gerstner for this suggestion.) 
++
++2005.01.24:
++- Some MIME-type parameters in SDP "a=fmtp:" lines are Boolean, taking only values
++  0 or 1.  Sometimes these parameters are set (to 1), without an explicit "=1"
++  being in the SDP "a=fmtp:" line.  (This is not legal, but it sometimes occurs.)
++  Our SDP parsing code (in "MediaSession.cpp") now checks for this.
++
++2005.01.23:
++- More improvements to "AVIFileSink".  MPEG-1, 2 or 4, JPEG and H.263 video is
++  now supported, along with raw PCM or u-law audio.  (However, audio is not
++  yet working perfectly, and MPEG audio is currently not supported at all.)
++  (Thanks to WIS Technologies for funding this work.)
++- Changed the (many) calls to "gettimeofday()" to pass NULL as the 'timezone'
++  parameter, because this isn't used.
++
++2005.01.13:
++- Fixed a bug in "liveMedia/OnDemandServerMediaSubsession.cpp" that was reportedly
++  causing crashes on some systems.  (Thanks to Brian Wang for finding this.)
++- Updated "MPEG1or2VideoStreamDiscreteFramer" and
++  "MPEG4VideoStreamDiscreteFramer" to set appropriate presentation
++  timestamps for B-frames.  (Unlike I and P-frames, B-frames' timestamps are
++  not monotonically increasing.)  (Thanks to WIS Technologies for funding this work.)
++
++2005.01.07:
++- Fixed a bug in "JPEGVideoRTPSink" that was causing incorrect packets to
++  be generated when streaming using non-standard JPEG quantization tables
++  (which must be included in the RTP packets).
++- Updated the handling of incoming MP3 ADUs to allow for the possibility of
++  receiving ADUs that contain 'ancillary data' at the end.  (For example,
++  ADUs for "mp3Pro" frames are like this.)  Note, however, that our
++  MP3 frame-to-ADU generating code currently doesn't include 'ancillary
++  data' at the end of the generated MP3 ADUs.  This will need to be fixed
++  in order to be able to correctly *transmit* ADUs for "mp3Pro" frames.
++- More work on "AVIFileSink".  Recording of MPEG-4 video-only files now works.
++
++2004.12.29:
++- Added a new liveMedia 'sink' class - "AVIFileSink" - for writing an AVI-format
++  file.  Note: This is not fully working yet, so don't try using it yet!
++  (Thanks to WIS Technologies for funding this work.)
++
++2004.12.23:
++- Fixed a bug in the previous release (when receiving MPEG-2 Transport RTP streams).
++
++2004.12.22:
++- Updated "MPEG4GenericBufferedPacket::nextEnclosedFrameSize() to (i) allow
++  for "generic" mode, and (ii) properly check for the absence of an
++  "AU Header section".  (Thanks to Erick van Rijk for this suggestion.)
++- When receiving a MPEG-2 Transport Stream (either RTP *or* raw-UDP), pass it
++  through a "MPEG2TransportStreamFramer", so that "durationInMicroseconds" is
++  set appropriately, based on the stream's embedded PCR values.
++  (Thanks to Dermot McGahon for this suggestion.)
++- Changed the "num_packets_lost" statistics line (printed by "openRTSP -Q")
++  to format as an int rather than as an unsigned.  This is in case this value
++  is negative (which can happen if duplicate packets are received).
++  (Thanks to Norbert Donath for noting this.)
++
++2004.12.15:
++- Changed the RTSP servers in the various test programs to use port 8554
++  instead of port 7070 for RTSP (as an alternative to the standard port
++  554).  It turns out that port 8554 is the official IANA-reserved port
++  number for RTSP (alternative).
++- Changed "RTSPClient" to include the "Scale:" header if the scale is being changed
++  to 1.0 from something else.  (Thanks to Matt Romaine for this suggestion.)
++
++2004.12.09:
++- Fixed a bug in the handling of "audio/X-MP3-DRAFT-00" RTP streams.
++  (Thanks to Dhananjay Deshpande for noticing this.)
++
++2004.12.07:
++- Updated "RTSPClient" to parse the "Scale:" header (if any) in a response to
++  a "PLAY" command, and set a corresponding field in the "MediaSession" or
++  "MediaSubsession" structure.
++
++2004.12.06:
++- Fixed a minor bug in "BasicTaskScheduler::SingleStep()" that would be triggered
++  if the (optional) "maxDelayTime" parameter were unusually large.
++- The "RTSPServer" implementation of RTP/RTC-over-TCP streaming will now work even
++  if the client's RTSP "SETUP" command doesn't include an "interleaved=" field.
++
++2004.11.30:
++- Added "RTSPServer" support for the RTSP "Scale:" header, which is used to
++  implement 'trick play': fast forward and reverse play.  The actual implementation
++  of these depends on the media type; it is currently implemented for MPEG-1 or 2
++  (including MP3) audio (forward play only), and for WAV (PCM) audio (forward or
++  reverse play).
++  (Thanks to Sony Corporation for funding this work.)
++
++2004.11.26:
++- Improved "H263plusVideoRTPSource" to better recognize which packets begin
++  a frame.  (This should improve its performance on lossy networks.)
++- Improved the parsing of MPEG-1 or 2 audio streams to ignore more bogus
++  'syncwords'.
++- We now look for the 'Xing' VBR Table of Contents, and use this (if present)
++  to implement seeking within VBR files.
++- Updated "ADUFromMP3Source" to allow the internal data buffers to be flushed
++  (e.g., if there is a discontinuity in the MP3 input data).
++- When streaming a seekable MPEG audio stream on demand, insert filters that
++  convert the input stream to ADU format, and then back to MP3.  This allows
++  us to seek within the stream without being tripped up by the MP3
++  'bit reservoir' (back-pointer). 
++
++2004.11.20:
++ - Fixed a bug in "MediaSession::initiateByMediaType()".  (It was not allowing
++   for the possibility that a subsession had already been initiated.)
++
++2004.11.19:
++- For consistency (and ease of comparison), the "MIMEtype()"
++  codec name substring for each "MediaSource" subsession is in upper case.
++
++2004.11.18:
++- Added an optional "scale" parameter to the "RTSPClient" "play...()"
++  methods, to allow a client to specify fast forward or rewind 'trick play'.
++  (Thanks to Dermot McGahon for this suggestion.)
++
++2004.11.16:
++- Fixed a bug in the way that "QuickTimeFileSink" records the duration of
++  multi-channel audio tracks in ".mov" or ".mp4"-format files.
++  (Thanks to Orban/CRL Inc. for funding this work.)
++
++2004.11.11a:
++- Another minor update to "RTSPClient".
++
++2004.11.11:
++- Updated the "RTSPServer" implementation to handle the case where a "PLAY"
++  request does not contain a "Range:" header.  (Suggestion by Brian Wang.)
++- Reinstated the "MPEG4LATMAudioRTPSource" fix from version "2004.08.24".
++  (It had accidentally gotten deleted.)
++- Included Dermot McGahon's patch to "RTSPClient" to support the bogus
++  non-standard 'Kasenna' variant of RTSP.
++
++2004.11.09a:
++- Fixed the previous revision (RTSP seeking support) to work properly with VLC.
++- Fixed a bug that was causing receivers of SSM streams to not receive RTCP packets.  (Thanks to Alessandro Gaiarin for reporting this.)
++
++2004.11.09:
++- Added support for seeking within streams.  This currently works only for
++  WAV audio file streams, and MPEG audio (include MP3) file sources.
++  (However, it doesn't yet work properly for VBR MP3 files; this will get fixed.
++  Also, it doesn't yet work properly with VLC.)
++  (Thanks to Sony Corporation for funding this work.)
++
++2004.11.06:
++- Improved the way that we specify output buffers for "RTPSink" objects.
++  We now do this using a "maxSize" static member variable (instead of 
++  using a 'number of packets' variable as we did before).  We also limit
++  the size of the output buffer used for RTCP packets, to save space.
++- When streaming a MPEG Transport Stream, don't set the RTP 'M' bit.
++- When recording a ".mov" or ".mp4" file using "QuickTimeFileSink.cpp",
++  we no longer fill in the "width" and "height" fields for audio tracks.
++
++2004.11.04:
++- When streaming MPEG audio or WAV audio files on demand, we now return the
++  correct file duration (in the RTSP "Range:" header and the SDP "a=range:"
++  attribute), so that media players will report the correct stream duration.
++  (Thanks to Sony Corporation for funding this work.)
++- In "MultiFramedRTPSink", we now wait until we receive the first data before 
++  initializing "fNextSendTime" with the current wall-clock time.
++  (Thanks to Eric Peters for suggesting this.)
++
++2004.11.02:
++- Updated the RTSP "Range:" header (in a "PLAY" response) and the SDP "a=range:"
++  attribute to support streaming from sources with finite durations.
++  (Such sources can support seeking via RTSP.)  The "ServerMediaSubsession"
++  class now has a "duration()" virtual function.  (In the future,
++  "FileServerMediaSubsession" subclasses will redefine this, so that seeking
++  within the file will work.)
++  (Thanks to Sony Corporation for funding this work.)
++
++2004.11.01:
++- Added support to "RTSPClient" for streaming RTSP/RTP over HTTP, using the technique
++  described in Apple's document: <http://developer.apple.com/documentation/QuickTime/
++QTSS/Concepts/chapter_2_section_14.html>.
++  This can be used for streaming from a Darwin Streaming Server from behind a
++  HTTP-only firewall.  (Note that our own RTSP server implementation doesn't yet
++  implement RTSP-over-HTTP, but this is on the 'to do' list.) 
++  (Thanks to Orban/CRL Inc. and WIS Technologies for funding this work.)
++
++2004.10.28a:
++- Fixed "OnDemandServerMediaSubsession" so that "PAUSE"/"PLAY" works properly on
++  unicast streaming from files.
++
++2004.10.28:
++- Removed (perhaps temporarily) the "rtptime=" parameter from the "RTP-Info:" header
++  that's returned in response to the RTSP "PLAY" command.  It appears that this may
++  be messing up A/V sync in QuickTime Player.
++
++2004.10.26:
++- Updated "JPEGVideoRTPSink" (and "JPEGVideoSource") to allow for the
++  possibility of sending custom quantiziation tables in JPEG/RTP packets.
++- Fixed some compile warnings about unused named parameters.  (Thanks to
++  Thiago Correa for these suggestions.)
++
++2004.10.22:
++- Added a new "MPEG1or2VideoStreamDiscreteFramer" class, similar to the existing
++  "MPEG4VideoStreamDiscreteFramer".
++
++2004.10.21:
++- Modified the order of SDP lines generated by a RTSP server
++  (in "ServerMediaSession.cpp") to correspond to the exact order specified by
++  the SDP RFC.  JMIF clients are supposedly anal retentive about this.
++  (Thanks to Fabrice Aeschbacher for noticing this.)
++
++2004.10.19:
++- Updated "MPEG2TransportStreamFramer" to properly handle input data that
++  doesn't begin with a 'sync' byte (0x47).
++
++2004.10.18:
++- Added a new "removeServerMediaSession()" member function to "RTSPServer".
++- Updated the implementation of the RTSPServer "RTPInfo:" header to include a
++  "rtptime=" field.
++- Improved the "WindowsAudioInputDevice" trick for making the microphone the
++  first-listed device.  (Thanks to Syncanph Xie for this suggestion.)
++
++2004.10.14:
++- Added a new argument "-4" to "openRTSP" (with corresponding updates to
++  "QuickTimeFileSink"), to generate a "MP4"-format file.  (Currently, this
++  works for MPEG-4 audio only.)
++  (Thanks to Orban/CRL Inc. for funding this work.)
++
++2004.10.13:
++- Fixed a typo that was causing the Windows version not to build.
++  (Thanks to Thiago Correa for noticing this.)
++
++2004.10.11:
++- Updates to "RTSPServer":
++  - Include a "Date:" header in each response
++  - Include a "Range:" header in each "PLAY" response.
++  - Include "RTP-Info:" header in each "PLAY" response.
++- Made "SimpleRTPSink" more idiot-proof.
++
++2004.10.07:
++- Improved the parser in "MPEG4VideoStreamFramer" to be more tolerant of
++  bad/unexpected data.
++- Moved the code for opening input files by name (which includes a special-case
++  hack for "stdin") to a single common file - "InputFile.cpp" - to get rid of
++  duplicated code.
++
++2004.10.04:
++- Fixed "UserAuthenticationDatabase::addUserRecord()" (in "RTSPServer.cpp") to
++  make a copy of the "password" string, before adding it to the hash table.
++  (The hash table already makes a copy of the "username" (key) string.)
++
++2004.10.03:
++- Added support for receiving raw UDP streams (in addition to normal RTP/UDP streams)
++  (Thanks to Derk-Jan Hartman)
++
++2004.09.30:
++- Updated the RTSP server "UserAuthenticationDatabase" to (i) allow for it to
++  be subclassed, and (ii) allow it to store passwords that are really
++  md5(<username>:<realm>:<password>)
++
++2004.09.24:
++- Added support for access control (using digest authentication) to "RTSPServer".
++  Also, added example code to the "testOnDemandRTSPServer" test program to illustrate
++  how to use this. (Thanks to Orban/CRL Inc. and WIS Technologies for
++  funding this work.)
++
++2004.09.22:
++- Moved the digest authentication support out of "RTSPClient.cpp"
++  (and "SIPClient.cpp") into a new file: "DigestAuthentication.cpp".  There's also
++  a corresponding new header file: "DigestAuthentication.hh".  This is in preparation
++  for adding digest authentication support to our RTSP server implementation also.
++
++2004.09.20:
++- More improvements to the multi-unicast streaming support (from a single input
++  source).  RTP-over-TCP streaming is now supported in this case.  Updated
++  "testOnDemandRTSPServer" to add a variable "reuseFirstSource" (default: False)
++  that can be used to implement this.
++
++2004.09.09:
++- Made a minor improvement to the multi-unicast streaming support.
++
++2004.09.08:
++- Added optional "author" and "copyright" parameters to "DarwinInjector::setDestination()".
++- Added an optional "miscSDPLines" parameter to "ServerMediaSession::createNew()",
++  to allow the caller to add extra SDP lines to the session description.
++- Fixed a minor bug in the media tables reclamation code.
++- Added still more support for multi-unicast RTSP/RTP streaming from a
++  single input source.  (Thanks to Orban/CRL, Inc. and WIS Technologies for funding
++  this work.)
++
++2004.09.05:
++- We now more gracefully handle malformed "m=" SDP lines.  (Thanks to
++  Derk-Jan Hartman for noticing this problem.)
++- In "RTSPClient", we now make the "CSeq" number a static variable, to avoid
++  potential problems if we connect to the same server with the same URL
++  more than once.  (Thanks to Keith Gurganus for the suggestion.)
++- Modified "RTSPServer" to use the destination interface IP address in
++  its "rtsp://" URL.
++
++2004.09.02:
++- Modified "GroupsockHelper.cpp" to allegedly support building for WinCE.
++
++2004.08.26:
++- Fixed a bug that could cause "AMRAudioRTPSource"s to not get reclaimed.
++  (Thanks to Chenglim Ear for reporting this.)
++- More support for multi-unicast RTSP/RTP streaming from a single input source.
++
++2004.08.24:
++- Modified "LATMAudioRTPSource" to include the initial data length field
++  in the data that's delivered to a client.  (A decoder was needing to see this.)
++- Added a new "MPEG4VideoStreamDiscreteFramer" class, as a (more efficient)
++  alternative to "MPEG4VideoStreamFramer" when the input source is a sequence of
++  discrete MPEG-4 frames, rather than a byte stream.
++- Fixed a minor bug in "Media.cpp". (Thanks to Thiago Correa.)
++- Added more support for multi-unicast RTSP/RTP streaming from a single input
++  source.  (This now working, except for TCP connections - to be completed.)
++
++2004.08.17:
++- Made the parsing of MPEG-1 or 2 video more robust, in case a Video Sequence Header
++  doesn't appear exactly where it should.
++- Added initial support for multi-unicast RTSP/RTP streaming from a single input
++  source.  (This isn't fully working yet - more support needs to be added.)
++
++2004.08.13:
++- Added a "numChannels" parameter to "MPEG4GenericRTPSink" (optional)
++  and "MPEG4LATMAudioRTPSink".
++
++2004.08.12:
++- Fixed a couple of small memory leaks (noticed by Gabriel Bouvigne).
++
++2004.07.31:
++- Added support for MPEG-4 LATM audio RTP streaming.  (MPEG-4 LATM audio RTP
++  *receiving* had already been implemented.)  (Thanks to Orban/CRL, Inc. for
++  funding this work.)
++
++2004.07.27:
++- Updated the MPEG Program-to-Transport Stream conversion mechanism to set the
++  correct stream tags depending on whether the input data is MPEG-1 or 2.
++
++2004.07.23:
++- Added a "-O" (upper-case letter 'oh') option to "openRTSP".  This tells the
++  program to not send an initial "OPTIONS" request prior to "DESCRIBE".
++- Modified "BasicTaskScheduler" to better allow subclassing.
++- Added an optional "maximum delay time" option to
++  "BasicTaskScheduler0::SingleStep()".  This allows subclasses to impose a
++  limit on how long "select()" can delay, in case it wants to also do polling.
++
++2004.07.22:
++- Fixed a serious bug that was causing some MPEG Program Stream files to be parsed
++  incorrectly - especially if they have non-MPEG header data at the front.
++- Modified the way in which "Medium" objects are reclaimed, to overcome an
++  obscure bug.
++
++2004.07.20:
++- Added a comment to "DeviceSource.cpp" to clarify the purpose of "fTo", because
++  several people have gotten this wrong.
++- Made ~BasicUsageEnvironment protected (just like ~UsageEnvironment)
++- Fixed "samplingFrequencyFromAudioSpecificConfig()" to remove a memory leak.
++
++2004.07.16:
++- Fixed a bug in "AMRAudioRTPSource", in the way that it handled input RTP packets
++  that contained more than one AMR frame.
++  (Thanks to Gabriel Bouvigne for reporting this problem.)
++- We no automatically reclaim the memory that was allocated for the "UsageEnvironment"
++  "liveMediaPriv" and "groupsockPriv" structures, once their tables become empty.
++
++2004.07.14:
++- Updated "QuickTimeFileSink's" MPEG-4 audio recording mechanism again, this time
++  to support aacPlus as well as regular AAC.
++
++2004.07.13:
++- Updated "QuickTimeFileSink" to support recording MPEG-4 audio (including
++  hint tracks).
++- Modified "MPEG4VideoStreamFramer" to allow simplified subclasses that take
++  discrete frames as input (and therefore don't need a full parser).
++
++2004.07.07:
++- Added the (rather bogus) "a=x-qt-text-nam:" and "a=x-qt-text-inf:" attributes
++  to the SDP descriptions delivered by "RTSPServer" (in response to a "DESCRIBE"
++  operation).  These attributes get the same strings as the "s=" and "i=" lines
++  (respectively).  However, QuickTime Player doesn't do anything with those lines,
++  but does recognize the "a=x-qt-*" lines.
++
++2004.07.06:
++- Modified the code so that it will build for WinCE.
++  (Thanks to Gabriel Bouvigne for these changes.)
++
++2004.07.02:
++- Fixed a bug in HashTable::RemoveNext() (noted by Greg Bothe)
++- Added partial support for recording MPEG-4 audio in "QuickTimeFileSink".
++  (Hinting is not yet working properly for this media type.)
++- Added an option to "MPEG1or2AudioStreamFramer" to allow its presentation times
++  to be resynchronized by its input source.
++
++2004.06.18:
++- Fixed a bug in "MPEG1or2AudioStreamFramer" (in the way it was checking for
++  syncwords at the start of each frame).
++- Updated the "MPEGVideoStreamFramer" (base) class to report "fNumTruncatedBytes".
++- Increased "OutPacketBuffer::numPacketsLimit" from 20 to 30.
++
++2004.06.17:
++- Another improvement to the "MPEG1or2Demux" parsing code.
++- Updated "QuickTimeFileSink" to support recording MPEG-4 video tracks into
++  ".mov" files.  (There's also basic support for recording MPEG-4 audio, but
++  this isn't quite working yet.)
++
++2004.06.14:
++- Updated "MPEG1or2Demux" to make the checking for a PACK_START_CODE more
++  robust if it's not immediately present where we expect to see it.
++- Fixed a bug in "JPEGVideoRTPSource" that could cause a problem on
++  64-bit architectures.
++  (Thanks to Andrey Filippov for noticing this.)
++
++2004.06.11:
++- Removed an error from a error message in StreamParser.
++
++2004.06.09:
++- Updated the implementation of the aggregate and non-aggregate RTSP "PLAY"
++  operations to not include a "Range:" header if the 'start' parameter is < 0.
++  (This is used when resuming from a "PAUSE", for example.)
++  Also, removed an unnecessary "Range:" header from the "PAUSE" command.
++  (Thanks to Gabriel Bouvigne for this suggestion.)
++- Reimplemented "MultiFramedRTPSource::doGetNextFrame1()" to use iteration
++  rather than recursion, in the case where a large frame is fragmented over
++  multiple incoming RTP packets.  This avoids the possibility of stack overflow
++  occurring if there are very large fragmented frames in the input data.
++
++2004.06.07:
++- Added optional "start" and "end" parameters to the aggregate "PLAY" operation
++  in "RTSPClient".  (We had already done this for the non-aggregate "PLAY" operation.)
++- Made the input banks buffers in "StreamParser" heap-allocated, rather than making
++  them member variables.  This avoids any potential compiler problems with having
++  such large structures as member variables.
++
++2004.06.03:
++- Added the new 'liveMedia' class "MPEG2TransportFileServerMediaSubsession", for
++  unicast on-demand streaming of MPEG-2 Transport Stream files.
++- Added the new test programs "testMPEG2TransportStreamer" and
++  "testMPEG1or2ProgramToTransportStream", and added support for Transport File
++  streaming to "testOnDemandRTSPServer".
++  (Thanks to DVAgroup Inc. for funding this work.)
++
++2004.06.02:
++- Fixed "MediaSession" to no longer apply the normal RTP 'M' bit rule
++  when processing incoming "video/MP2T" (or "video/MP1S" or "video/MP2P")
++  streams.  (For such streams, the 'M' bit does not mean 'end of frame'.)
++
++2004.06.01:
++- Updated "RTSPClient" to handle "Session:" headers that have a trailing
++  ";timeout=" part.  (Thanks to Gabriel Bouvigne for suggesting this.)
++
++2004.05.31:
++- We now handle SDP "m=" lines with an optional <number-or-ports> field
++  (although we don't actually do anything with this value).  Thanks to
++  Derk-Jan Hartman for this suggestion. 
++
++2004.05.29a:
++- Made a correction to the previous change.
++
++2004.05.29:
++- Added a call to "DarwinInjector" to set the TCP socket's send buffer to 100 kBytes.
++
++2004.05.28:
++- Renamed some variables in "MP3Internals.cpp" (and made them static) to
++  overcome a name conflict seen by the VLC developers.  (Thanks to
++  Derk-Jan Hartman for pointing this out.)
++
++2004.05.26:
++- Fixed a bug (apparently introduced with recent header file changes) that
++  could cause MP3 files to not be read correctly on Windows.  (In particular,
++  this could cause "testMP3Streamer" to not work correctly on Windows.)
++  Thanks to David Skiba for the bug report.
++
++2004.05.24:
++- Added a new member function "lastReceivedSSRC()" to "RTPSource".  This makes it
++  possible for a receiver to demultiplex incoming RTP data based on SSRC.
++  (Later this functionality should perhaps be added to "(MultiFramed)RTPSource"
++  instead.)
++- More updates to "DarwinInjector".
++
++2004.05.19:
++- Another update to "openRTSP" for a customer job.
++
++2004.05.17:
++- Added a new test program "testMPEG4VideoToDarwin.cpp" that is similar
++  to "testMPEG4VideoStreamer", except that instead of transmitting the
++  video RTP/RTCP packets via multicast, it transmits them - via a RTSP TCP
++  connection - to a remote Darwin Streaming Server.
++
++2004.05.12:
++- Added a new "liveMedia" class - "DarwinInjector" - that can be used to send an
++  audio and/or video RTP/RTCP stream to a remote Apple 'Darwin' (aka. QuickTime)
++  Streaming Server, for playing by (potentially multiple) RTSP clients.
++- Added a new test program "testMPEG1or2AudioVideoToDarwin.cpp" that is similar
++  to "testMPEG1or2AudioVideoStreamer", except that instead of transmitting the
++  audio/video RTP/RTCP packets via multicast, it transmits them - via a RTSP TCP
++  connection - to a remote Darwin Streaming Server.
++
++2004.05.09:
++- Removed a line of junk that had erroneously been left at the start of Makefile.tail.
++- The "testRelay" test program has been reprogrammed in the usual liveMedia
++  'source->sink' style.
++
++2004.05.07:
++- Another update to RTSPClient for a customer job.
++
++2004.05.04:
++- Added an #include to "BasicUDPSink.cpp" to prevent a compilation problem on
++  some platforms.
++
++2004.05.02:
++- Some updates to RTSPClient and openRTSP for a customer job.
++
++2004.04.27:
++- Fixed the round-trip time estimation routine in "RTPSink" to allow for
++  the possibility of the computed round-trip time being negative.  This can
++  happen if there is clock drift between the sender and receiver, and if the
++  actual round-trip time was quite small.  If this happens, the returned
++  round-trip time value is zero.
++  (Thanks to Dixon Siu for alerting us to this issue.)
++
++2004.04.23:
++- Updated some #ifdef's so that the code will compile with "mingw" on Windows.
++  (Thanks to Joey Parrish for this.)
++- Added a "BasicUDPSink" class to "liveMedia", for UDP streaming without RTP.
++- Added new 'filter' classes to "liveMedia" for
++  - converting MPEG Program Streams to Transport Streams.
++  - 'framing' MPEG Transport Streams to return the 'duration' of each Transport
++  packet (i.e., the inter-packet time gap).
++
++2004.04.09:
++- Fixed a byte-ordering bug in the code for streaming from WAV audio files
++  (used in "testWAVAudioStreamer" and "testOnDemandRTSPServer").  We were converting
++  16-bit samples from host to network order before streaming them.  That was wrong,
++  because audio samples are always stored in WAV files in little-endian order.
++  The correct thing to do was to convert from little-endian to big-endian order. 
++
++2004.03.27:
++- Fixed a minor bug in the top-level Makefile.  (Thanks to Matteo Nastasi for
++  noting this.)
++
++2004.03.27:
++- Modified "H261VideoRTPSource" so that it returns individual packet payloads to
++  the caller, rather than waiting to form complete frames.  Also, added a member
++  function "lastSpecialHeader()" that returns the 4-byte special header for the
++  most recently-read payload.
++
++2004.03.23:
++- Added support for unicast RTSP/RTP streaming from VOB files, and added an example
++  of this to "testOnDemandRTSPServer".
++
++2004.03.17:
++- Made a series of minor bug fixes and improvements suggested by Sony.
++
++2004.03.15:
++- Fixed a bug in "OnDemandServerMediaSubsession" (the RTCP instance was being
++  deleted at the wrong time).  (Thanks to Clark Taylor for noticing this.)
++- Minor modifications to the 2004.02.26 "RTPSink" changes.
++- Updated the "AMRAudioRTPSource" implementation to support 'bandwidth-efficient'
++  mode.  (Warning: This has not yet been tested.)
++
++2004.03.12:
++- Updated the "RTSPClient" class to support an aggregate "PAUSE" operation.
++
++2004.03.11:
++- Added an implementation of AMR audio RTP receiving ("AMRAudioRTPSource"), to
++  match the existing"AMRAudioRTPSink".  Also, added a new class "AMRAudioFileSink"
++  (a subclass of "FileSink") that outputs an AMR audio input stream to a file,
++  including the file 'magic number' and frame headers.  "openRTSP" was also updated
++  to output received AMR audio streams using "AMRAudioFileSink"s.
++  (Thanks to SIGOS Systemintegration GmbH for funding this work.)
++- Cleaned up the "RTPSource" changes that were made in version 2004.02.26.
++
++2004.03.05:
++- Updated the "RTSPServer" implementation to properly handle aggregate
++  operations for which the URL ends with a "/".  Some clients, such as
++  "gmp4player" do this.
++
++2004.03.03a:
++- Fixed a bug in "MultiFramedRTPSource.cpp" where we were not properly
++  skipping over "contributing source" fields, if they were present in the
++  RTP header.  (Thanks to Phillip Bruce for noticing this.)
++
++2004.03.03:
++- Fixed the "testMP3Streamer" test program to keep the RTP sink, RTCP instance,
++  Groupsocks, and RTSP server (if used) open across all iterations of the loop.
++  (Thanks to Frank Xia for noticing this problem.)
++
++2004.03.02a:
++- The previous version accidentally had the built-in RTSP server enabled in
++  "testMP3Streamer". It should be disabled by default.
++
++2004.03.02:
++- Fixed a few potential errors that were found by running "valgrind" on some of
++  the test programs (on Linux).
++
++2004.03.01:
++- Added two new options to "openRTSP" (and "playSIP"):
++  "-E <max-inter-packet-gap-time>"
++      Tells the program to close the stream if no new packets have been
++      received in at least <max-inter-packet-gap-time> seconds.
++  "-B <input-socket-buffer-size>"
++      Tells the program to set the network socket input buffer (for each
++      input stream) to <input-socket-buffer-size> bytes.  (This can be useful
++      when testing QOS for different input buffer sizes.)
++  (Thanks to SIGOS Systemintegration GmbH for funding this work.)
++
++2004.02.26:
++- Added - to "RTPSink" - a database of statistics from incoming RTCP
++  "Reception Report" (RR) packets.  (This mirrors the similar database
++  for RTCP SR packets that was already part of "RTPSource".)  (Thanks to
++  Clark Taylor for contributing this code.)
++
++2004.02.23:
++- Fixed a bug in "MP3ADUinterleaving.cpp" that was causing frame durations
++  to not be set properly when handling interleaved MP3 ADUs.
++
++2004.02.20a:
++- Corrected a typo in the previous "#ifdef"s
++
++2004.02.20:
++- Added "#ifdef"s to the two files that #include <strstream.h>, so that they
++  will compile OK with GCC v3.*.  (Thanks to Goetz Waschk for this.)
++- Changed the stream parser debugging statements to make it clear that the
++  use of C++ language exceptions by the stream parsing code is normal, and
++  is not an error. 
++
++2004.02.19:
++- Updated the "RTSPServer" implementation to support RTP-over-TCP streaming
++  (if requested by the client).
++
++2004.02.13:
++- Changed the implementation of the "BasicUsageEnvironment" "operator<<" 
++  member functions so that they use "fprintf(stderr, ..." rather than
++  "cerr << ...".  People compiling in some environments were getting
++  complaints about "cerr" being undefined (presumably because the right
++  #include files weren't being found).  However, everyone should have
++  "stdio.h".  (Thanks to Clark Taylor for this suggestion.)
++- Changed the "genMakefiles" script to complain if the user tries to
++  run it without an "<os-target"> parameter.
++
++2004.02.09:
++- Updated "RTSPServer" once again - this time to ensure that each incoming request
++  is read completely (i.e., up until the trailing <CR><LF><CR><LF>).
++  (Thanks to Regis Feneon for helping to fix this.)
++- Added a new "WAVAudioFileServerMediaSubsession" class to support on-demand
++  streaming from WAV audio files.  Also, updated the "testOnDemandRTSPServer"
++  test program to illustrate this.
++
++2004.02.05:
++- Updated the "WindowsAudioInputDevice" project to build two different versions
++  of the library: One that uses Windows' built-in mixer; another that doesn't.
++
++2004.02.04:
++- Fixed an obscure bug in "MPEG4ESVideoRTPSink" that could (very rarely)
++  cause incorrect RTP timestamps to be set for the last fragmented packet
++  of large MPEG-4 frames.  This could cause QuickTime Player's video playback
++  to freeze.
++
++2004.02.03:
++- Added new "liveMedia" classes "MPEG1or2FileServerDemux" and
++  "MPEG1or2DemuxedServerMediaSubsession" for supporting on-demand RTSP/RTP
++  streaming of MPEG-1 or 2 Program Stream files.  Also, updated the
++  "testOnDemandRTSPServer" test program to support streaming of such
++  a file.
++- We no longer set SO_REUSEPORT for stream (TCP) sockets, because it usually
++  doesn't make sense to share TCP ports.  (As a side effect, this means that it
++  will no longer be possible to run more than one RTSP server (using the same
++  TCP port) simultaneously on the same computer - something that should never have
++  been possible in the first place.)
++- Fixed a minor RTSP server bug that was causing incorrect "destination"s to be set
++  (for multicast streams) in the "SETUP" response "Transport:" header.
++
++2004.01.28:
++- Yet another bug fix to "MPEG4VideoStreamFramer", to properly handle the
++  case where MPEG-4 "GOV" headers don't occur on exact 'second' boundaries.
++  (Thanks to Michael Niedermayer (via Michael Hess) for clarifying this.)
++
++2004.01.27:
++- Fixed a bug in the previously added (but normally "#ifdef"d out)
++  debugging code in "MultiFramedRTPSource.cpp".
++- Made a fix to the (normally "#ifdef"d out) debugging code in
++  "AC3AudioStreamFramer.cpp".  (Thanks to Yigal for noticing this.)
++
++2004.01.24:
++- Changed "openRTSP" to use 20 kByte "FileSink" receive buffers by default,
++  instead of 10 kBytes.  (Some frames in MPEG-4 streams were exceeding the
++  previous limit.)
++- Added code to "MultiFramedRTPSource.cpp" to easily let the developer
++  simulate packet loss.
++
++2004.01.23:
++- Changed "RTSPServer" to include a "Content-Base:" header in "DESCRIBE"
++  responses.  This overcomes a bug in QuickTime Player, which sends incorrect
++  "SETUP" URLs otherwise.
++- Fixed a bug in "MPEG4VideoStreamFramer" that was causing some frames
++  to erroneously be given a duration of 0. 
++
++2004.01.22:
++- Made another improvement to the "RTSPServer" implementation.  It once again
++  properly handles streams without a stream name (i.e., where the "streamName"
++  parameter to "ServerMediaSession::createNew()" was NULL.
++- Updated the (little-used) "ByteStreamMultiFileSource" class to take
++  "preferredFrameSize" and "playTimePerFrame" parameters, just like
++  "ByteStreamFileSource".  Also added a member function to ask whether
++  a new file has just been read from.
++
++2004.01.21:
++- Made several improvements/bugfixes to the "RTSPServer" implementation:
++  - Worked around an apparent bug in QuickTime Player: It sometimes
++  doesn't include a proper URL in RTSP "SETUP" requests.
++  - Corrected the 'frame' (really tick) rate and frame duration that
++  are computed for 'fixed_vop_rate' MPEG-4 video streams.
++  - Compensated for some buggy MPEG-4 video streams that don't set
++  timestamp information properly.
++- MPEG-4 video end codes will now be included in the outgoing RTP stream,
++  and received properly by RTSP clients.
++- Fixed "RTSPClient" to be more tolerant of RTSP "Transport:" headers that
++  contain more than one successive ';' character.  (Darwin Streaming Server
++  sometimes does this.)
++
++2004.01.19:
++- Changed "RTSPServer" to not create per-session state when handling
++  "DESCRIBE", but instead to wait until "SETUP".  This fixes a problem
++  that was causing the "VLC" media player to fail to work with our
++  "RTSPServer" implementation, because VLC uses one RTSP TCP connection
++  to do the "DESCRIBE", and then another to do "SETUP" and "PLAY".
++  (Thanks to Emmanuel Dufour for pointing this out.)
++- Updated "MPEG4VideoStreamFramer" to include the VIDEO_SEQUENCE_END_CODE
++  in the output stream if it sees it in the input.
++
++2004.01.10:
++- Fixed the "RTSPServer" implementation to properly return a "server_port" field
++  in the RTSP "SETUP" response for unicast streams.  Also, the server ports
++  (RTP and RTCP) are now chosen separately, and will no longer be the same
++  as the client ports if the client and server are running on the same machine.
++  (That did not work on some Linux systems.)
++- Fixed a bug in "MP3ADU" that was causing frame durations to not be set properly
++  when translating between MP3 frames and ADU frames.
++
++2004.01.09:
++- Modified "RTSPClient" to handle embedded NULL characters in a SDP
++  description.  (These are not legal, but they have been seen in some cases.)
++
++2004.01.06:
++- Modified the FramedSource 'after getting' function signature to take two new
++  parameters: (1) The number of bytes (if any) that were truncated from the
++  delivered data, and (2) The duration (in microseconds) of the delivered frame.
++  For backwards compatibility with old code, the old 'after getting' function
++  signature is still supported, but will be removed in some future version of
++  the code.  (The "getPlayTime()" function was also removed.)
++
++2003.12.26:
++- Made "FramedFilter" objects implement the "stopPlaying()" function by
++  also calling "stopPlaying()" on their source object.
++- Fixed an obscure bug in "RTSPClient".
++
++2003.12.20:
++- Made the "video/H263-2000" MIME type use the same RTP payload format as
++  "video/H263-1998".  (Thanks to Norbert Doneth for suggesting this.)
++
++2003.12.19:
++- Fixed a minor bug in "RTSPServer" (some allocated memory wasn't being
++  freed properly).  (Thanks to Konstantin Lunin for finding this.)
++
++2003.12.16:
++- Added "-DSOCKLEN_T=socklen_t" to the "COMPILE_OPTS =" line in
++  the file "config.solaris", so that the code will compile
++  correctly for 64-bit Solaris systems.
++
++2003.11.25:
++- Put some error checks back into "WindowsAudioInputDevice".
++
++2003.11.21:
++- Some case-insensitive string comparisons weren't working properly in Windows; fixed.
++
++2003.11.19:
++- Added a global Boolean variable to flag when RTP I/O over a TCP connection fails.
++  This hack allows higher-level code to check for this.
++
++2003.11.16:
++- Fixed "RTPInterface" to not infinite loop when trying to read from a TCP
++  connection that has closed.
++- Modified "BasicTaskScheduler" to overcome a bug in Windows that sometimes
++  causes "select()" to fail.
++
++2003.11.13:
++- Made "WindowsAudioInputDevice" a bit more robust against broken audio drivers.
++
++2003.11.06:
++- Modified "groupsock/inet.c" to allow the system-supplied "random()" and "srandom()"
++  functions to be used instead of our own "our_..." implementation.
++  This is done if USE_SYSTEM_RANDOM is defined (e.g., in the "config.*" file).
++
++2003.11.06:
++- Modified the "MPEGVideoStreamParser" constructor, in response to a complaint
++that some compilers would choke on the old code.
++
++2003.10.30:
++- Added a warning output message to "MultiFramedRTPSink::afterGettingFrame1()"
++  whenever the input frame appears to exceed the maximum buffer size.  This
++  maximum buffer size can be increased by changing
++  "OutPacketBuffer::numPacketsLimit".
++
++2003.10.27:
++- Changed the "MultiFramedRTPSource" error message (added in 2003.10.04) to apply
++only to frame sizes > 1000, so that (e.g.) QCELP RTP sources don't trigger it.
++
++2003.10.24:
++- Fixed the RTSP server implementation to put SDP lines in the correct order
++(as defined by the SDP speecification).  Also, added "Cseq:" lines that were
++missing from "404" error responses.  (Thanks to Bill May for noting these bugs.)
++- Improved the implementation of MPEG-4 video framing and streaming.
++
++2003.10.08:
++- Fixed a bug in the previous "FileSink" update that was causing "openRTSP"
++to crash when recording a MPEG-4 video stream (using the "-m" option).
++(Thanks to Jiangzhou Scu for noticing this bug.)
++
++2003.10.07:
++- Updated the "FileSink" class to take an optional Boolean parameter
++"oneFilePerFrame".  If set, a separate file will be output for each
++incoming frame.  The frame's presentation time is used as a
++file name suffix, to distinguish the files.
++- Added a new option "-m" to "openRTSP" (and "playSIP").  This option
++causes a separate file to be written for each frame (using the
++above-mentioned new feature of "FileSink").
++
++2003.10.05:
++- Renamed the new openRTSP/playSIP "-S" option to "-b".
++
++2003.10.04:
++- Added an error message to "MultiFramedRTPSource" to report when
++the client's receive buffer is too small for an incoming frame.
++(This could happen with large JPEG frames, for example.)
++- Updated the signature to "FileSink" to take an optional 'buffer size'
++parameter as argument.  (The default value is 10000.)
++- Added a "-S <file-sink-buffer-size>" option to "openRTSP" and "playSIP". 
++
++2003.09.30:
++Improved the default implementation of
++"RTPSink::hasBeenSynchronizedUsingRTCP()" to more accurately report
++whether or not the most recently-delivered packet's presentation time
++was synchronized using RTCP SRs.  (Thanks to Luca Abeni for pointing
++out the possibility of a problem with the old implementation.)
++
++2003.09.25:
++Improved the support for unicast RTSP/RTP streaming.  Also, added a new
++test program "testOnDemandRTSPServer" that demonstrates how to use this.
++
++2003.09.19:
++- Added support for unicast streaming from a "RTSPServer".
++  (A test program that demonstrates this will be available shortly.)
++  (Thanks to TNO Fysisch en Elektronisch Laboratorium (Netherlands)
++  for funding this work.)
++- Modified the "strDup()" function to return NULL (instead of crashing)
++  if passed a NULL parameter.
++
++2003.09.11:
++- Another improvement/bugfix to the "MultiFramedRTPSink"
++  implementation.
++- Changed the implementation of "RTSPServer" and "ServerMediaSession"
++  in preparation for implementing unicast streaming from RTSP servers.
++  (This is something that's not ready yet, but close...)
++
++2003.09.05:
++Fixed the implementation of "JPEGVideoRTPSource" so that it prepends
++a proper JFIF JPEG header to the start of each incoming JPEG frame.
++This means that programs such as "openRTSP" and "MPlayer" will now
++receive/play JPEG/RTP streams correctly.
++
++2003.09.03:
++Improved the implementation of "MultiFramedRTPSink" to more efficiently
++handle the case where input frames get broken up into multiple outgoing
++RTP packets.  We now eliminate an uncessary "memmove()" for each
++fragment.  In particular, this should make MPEG-1 or 2 and motion-JPEG
++video streaming more efficient.
++
++2003.09.01:
++- Added support for reading and streaming AMR audio files (as defined in
++RFC 3267).  Also added a new test program "testAMRAudioStreamer".
++(Thanks to TNO Fysisch en Elektronisch Laboratorium (Netherlands) for
++funding this work.)
++
++2003.08.28a:
++- When "openRTSP" writes out a recorded MPEG-4 Elementary Stream video file,
++it now writes SDP 'config' information to the front of the file beforehand.
++This 'config' information contains VOL etc. headers that can be useful
++for playback. 
++
++2003.08.28:
++- Added 'framer' and RTP sink classes for MPEG-4 Elementary Stream video.
++(Thanks to TNO Fysisch en Elektronisch Laboratorium (Netherlands) for
++funding this work.)
++- Added a new test program "testMPEG4VideoStreamer".
++- Fixed a bug with RTP-over-TCP reading that could cause a crash if the
++same TCP socket number gets reused for a later stream.  Also, made this
++code more thread-safe.
++
++2003.08.21:
++Renamed all of the MPEG-1 or 2 class and program names from "MPEG*" to
++"MPEG1or2*".  This is to distinguish these from the classes and programs
++that use MPEG-4.
++
++2003.08.19:
++Made the maximum buffer size in "MediaSink.cpp" a parameter that can be 
++set (changed) at runtime.  (Reset the default back to 20* packet size)
++
++2003.08.18:
++- Fixed "JPEGVideoRTPSink" to use the standard RTP payload format code
++(26) for JPEG RTP streams.
++- Updated "MediaSink.cpp" to increase the maximum buffer size for incoming
++data.  This makes it possible to stream large JPEG frames (which are
++fragmented over multiple outgoing RTP packets).
++
++2003.08.16:
++- Added new classes "AudioRTPSink" and "VideoRTPSink" as parent classes
++of the various audio and video RTP sink classes, respectively.
++- Added a new "JPEGVideoRTPSink" class, and a "JPEGVideoSource" class
++that can be used as an abstract base class for particular JPEG sources.
++
++2003.08.07:
++Minor change to "MediaSink".
++
++2003.07.29:
++Updated "RTSPClient" to include a "tearDownMediaSession()" operation,
++in addition to "tearDownMediaSubsession().  "openRTSP" now uses just
++the "tearDownMediaSession()" operation.  (Darwin Streaming Server was
++barfing with "tearDownMediaSubsession()").  Thanks to Edward Estabrook
++for suggesting this.
++
++2003.07.27:
++Added a new "-F <fileName-prefix>" option to "openRTSP" (and "playSIP").
++This can be useful if you are running "openRTSP" several times,
++in the same directory, to play several different RTSP streams
++(e.g., from a script).  (Thanks to Norbert Donath for this suggestion.)
++
++2003.07.14:
++Updated the "WAVAudioFileSource" implementation (and the
++"testWAVAudioStreamer" test program) to better report any reason for
++a WAV file to be invalid.
++
++2003.07.13:
++- Added new filter classes for converting between 16-bit PCM and
++8-bit u-law audio, and between host and network order for 16-bit values.
++(See "liveMedia/include/uLawAudioFilter.hh" for details.)
++- Added a new class "WAVAudioFileSource" for reading/processing
++WAV audio files.
++- Added a new test program "testWAVAudioStreamer" that reads a WAV
++audio file - "test.wav" - and streams it via multicast (using a built-in
++RTSP server).
++- Updated "MediaSession" to recognize "L8" and "L16" RTP audio streams
++(to be handled by "SimpleRTPSource").
++
++2003.07.07:
++- Fixed a bug that would cause "vobStreamer" to crash if (incorrectly)
++run with no arguments.
++- Updated the "test*Streamer" test programs to print out the "rtsp://"
++URL of the built-in RTSP server (if it's enabled).
++
++2003.07.01a:
++Updated the "WindowsAudioInputDevice" subdirectory to:
++- Change the name of the library from "WindowsAudioInputDevice.lib" to
++"libWindowsAudioInputDevice.lib".
++- Added a console test program - "showAudioInputPorts" - that lists
++the audio input ports that are currently available.
++
++2003.07.01:
++Added a new subdirectory "WindowsAudioInputDevice", which is a
++Windows-specific implementation of the "AudioInputDevice" class.
++This can be used by Windows applications to read PCM audio from
++a sound card.
++
++2003.06.28:
++Added an optional parameter (default, True) to "SimpleRTPSource"
++that says whether to use the RTP "M" (marker) bit to indicate the
++last (or only) fragment of a video frame.  (Suggested by
++Cezar Plesca.)
++
++2003.06.27:
++Added a "AudioDeviceSource" class to the "liveMedia" library.
++This class is a generic audio input device (such as a microphone
++or a sound card) - to be subclassed for specific OS platforms. 
++
++2003.06.26:
++- Updated the "RTSPServer" implementation to respond to "PAUSE"
++requests.  (It doesnt actually pause the stream; just returns "OK".
++This makes QuickTime Player happier.)
++- Added a "-o" option to "openRTSP" (and modified "RTSPClient"
++accordingly).  This option causes openRTSP to send an "OPTIONS" command
++to the server, and prints out the response.
++
++2003.06.17:
++Added support for MPEG-4 generic RTP sinks.  (Currently, only the
++"AAC-hbr" audio mode is supported, and only one AAC frame is packed
++into each outgoing RTP packet.)
++
++2003.06.13:
++- Fixed a bug in "ServerMediaSubsession" that could cause a memory leak.
++(Thanks to Frederik Bonte for finding this.)
++
++2003.06.07:
++- Fixed a minor bug in "MPEGVideoRTPSink": The RTP "M" bit is now set
++only on the last fragment, if a frame is fragmented.  (Thanks to
++Tym Altman for pointing this out.)
++- Improved support for AudioRTPSinks that have more than one audio channel.
++
++2003.05.31:
++Fixed a bug in "SimpleRTPSink" that would cause it to not generate correct
++RTP timestamps on outgoing packets.
++
++2003.05.29:
++Fixed a bug in "RTSPServer" that would cause it to get into an infinite
++loop if a client's connection was terminated unexpectedly.
++
++2003.05.28:
++Fixed some typos in comments.
++
++2003.05.23:
++Some minor changes to reduce the number of bogus warning messages
++displayed when compiling using Visual C++.
++
++2003.05.22b:
++Fixed a bug in "SIPClient" (thanks to Reini Urban for helping track this
++down).
++
++2003.05.22a:
++Fixed a couple more minor bugs that were causing "valgrind" to complain.
++
++2003.05.22:
++Fixed a bug in "SIPClient" (a field was not getting initialized properly)
++
++2003.05.21:
++- Because not all platforms define 'errno' the same way, 'errno' is now
++implemented as a pure virtual function "getErrno()" in
++"UsageEnvironment".  "BasicUsageEnvironment" defines this function to
++just return "errno", but other subclasses could implement it in other
++ways.
++- Added support for setting and reading information in "RTP-Info:"
++headers in RTSP "PLAY" response. (Thanks to Romulus Grigoras for
++contributing this.)
++
++2003.05.19:
++Fixed a bug in "SIPClient" that could cause a crash.  (Thanks to
++Reini Urban for finding this.)
++
++2003.05.16:
++- Removed all calls to "fprintf(stderr, ...)" and "cerr << ..." from
++the library code.  Instead, we now use "operator<<" virtual functions
++that are defined on the "UsageEnvironment".  "BasicUsageEnvironment"
++defines these by outputting to "cerr", but other subclasses of
++"UsageEnvironment" can define them to do console output whichever
++way they wish.
++
++2003.05.15:
++- Moved the "select()" call in "readSocket()" (GroupsockHelper.cpp) into
++  a separate function, to allow it to be easily reimplemented
++  if desired.
++- More minor changes to "RTPSource" stats handling, and the "-Q" option
++  to "openRTSP"/"playSIP".
++
++2003.05.12:
++- Restructured "BasicTaskScheduler" as two hierarchical classes:
++  "BasicTaskScheduler0" (an abstract base class), and
++  "BasicTaskScheduler".
++  This makes it easier to subclass (e.g., to reimplement "SingleStep").
++  A subclass reimplementation would use "BasicTaskScheduler0".
++- Removed "our_bcopy()", and use "memmove()" instead, because everyone
++  seems to implement that.
++- Fixed a bug in "RTPSource" that could cause packet loss stats to be
++  reported incorrectly if the first RTP sequence number received was 0.
++
++2003.05.06:
++Minor changes to the "openRTSP" QOS stats reports.
++
++2003.05.05:
++Changed the "start" and "end" parameters to
++"RTSPClient::playMediaSubsession()" from int to float, for increased
++granularity.  (Suggestion by Cezar Plesca.)
++
++2003.05.03:
++- Added support for pausing/resuming to "RTSPClient".
++(Thanks to Romulus Grigoras for contributing this.)
++- Fixed a couple of bugs in "SIPClient".
++
++2003.04.28:
++- Cleaned up and improved the "DelayQueue" implementation.
++(This time it works properly, I hope.)
++
++2003.04.27:
++- Temporarily backed out the previous change to "DelayQueue", because it
++broke MPEG video streaming (causing it to play too slowly). 
++
++2003.04.26:
++- Made "DelayQueue" a little more accurate, by adjusting for the time
++that has elapsed since the last alarm, when adding a new entry to the queue.
++- Fixed a bug in "RTPSource" that could cause packet loss statistics to not
++be reported accurately (in RTCP) if incoming packets were misordered.
++- Updated "openRTSP" and "playSIP" to take a new "-Q" option, which
++prints out QOS data at the end of the session.
++
++2003.04.24:
++- Added a mechanism for registering an optional, auxilliary read handler
++with a "RTPSource" or "RTCPInstance".  Such a handler would get called
++after each new packet is read.
++- Changed "SimpleRTPSink" to (by default) set the RTP "M" bit on
++video streams iff the packet contains the last (or only) fragment of
++a frame.
++
++2003.04.23:
++- More improvements/fixes to the handling of SSM sessions.
++- Fixed a bug in RTSPServer that could cause a crash if the client
++quit suddenly.
++
++2003.04.20:
++- Updated "MediaSession" to recognize
++  a=source-filter: incl ...
++lines in SDP descriptions (for SSM sessions), and to do the appropriate
++SSM-style multicast joins in this case (and also to send back RTCP via
++unicast).
++- Updated the RTCP implementation to reflect incoming unicast RTCP packets
++back to the multicast group in the case where we're a SSM source.
++- Update "vobStreamer" and the various "test*Streamer" test programs to
++properly behave as SSM sources, when we have specified this.
++
++2003.04.18:
++- Updated the "*ServerMediaSession" classes to (optionally) output
++SSM-specific information in SDP descriptions.
++- Updated "vobStreamer" to choose a random multicast address in the SSM
++range.
++
++2003.04.12:
++- Fixed "MPEGVideoStreamFramer" to allow for the possibility of
++the GOP "time_code" field remaining unchanged in the source stream.
++- Elimination of more unnecessary global variables.
++
++2003.04.11:
++- Added support for an optional user name and password inside a RTSP
++or SIP URL.
++- The media lookup table (used in "Media.cpp") is now allocated
++dynamically, and stored in the "UsageEnvironment", rather than
++being a global variable.
++This makes it possible to have different threads, within the same
++address spaces, accessing the library code.
++(Each thread would need to have its own "UsageEnvironment" and
++"TaskScheduler", though.)
++
++2003.04.09:
++Changed "BasicTaskScheduler::SingleStep()" to execute only one delay
++queue task (along with any data input events) during each iteration.
++This prevents a possible livelock if the delay queue always has events
++outstanding.  (Thanks to Ruth Sadler for pointing this out.)
++
++2003.04.04:
++- More improvements to "vobStreamer" (which has also been renamed
++from "VOBStreamer".
++
++2003.04.02:
++- Made another change to the order that things are closed when exiting
++"openRTSP", to help avoid a potential race condition that can occur
++when using the "-t" option.  (Thanks to Romulus Grigoras for reporting
++this.)
++- Updated "MPEGDemux" to properly handle the case where someone tries
++to read from it after its input source has already closed.
++- Several improvements to "VOBStreamer".
++- Added "ByteStreamMultiFileSource" to the "liveMedia" library.
++This generalizes "ByteStreamFileSource" to allow more than one input
++file to be read, in sequence.
++
++2003.04.01:
++Fixed a bug in "openRTSP" that could cause it to crash when exiting
++(if the "-t" option was used).
++
++2003.03.31:
++Added a new test program "VOBStreamer" to "testProgs".
++This program reads a "VOB" file (e.g., from a non-encrypted DVD),
++and streams the component video (MPEG) and audio (AC3) component streams
++using RTP multicast.
++(Online documentation to follow...)
++
++2003.03.30:
++Added "AC3AudioRTPSource" and "AC3AudioRTPSink".
++
++2003.03.28:
++- Fixed a bug in "MPEGVideoStreamFramer" that would cause it to generate
++incorrect presentation times if the MPEG video stream started out with
++a non-zero 'time_code'.
++- Updated "AC3AudioStreamFramer" to allow clients to get the stream's
++sampling rate before it reads the first frame.
++
++2003.03.25:
++Began adding support for AC3 audio/RTP streaming.
++
++2003.03.22:
++Added support for receiving H.261/RTP streams
++
++2003.03.14:
++- Removed calls to "strdup()", because that's a C-library function whose
++result should not be deleted using "delete" (or "delete[]").  Instead,
++we now provide our own C++ equvalent, called "strDup()".
++- Also, changed several "delete"s to "delete[]".
++(Thanks to Bill Kain for noting the need for this fix.)
++
++2003:03;11:
++Updated SIPClient to allow it to use an arbitrary source port number.
++This makes it possible to use it on the same host on which a SIP server
++is already running.
++
++2003.03.09:
++- Made "MediaSession"s parsing of SDP descriptions more robust, to allow for
++blank lines in the SDP description.  ("Be liberal in what you accept...")
++
++2003.03.07:
++- Added an optional "MIME subtype" parameter to "SIPClient", to allow
++SIP "INVITE"s to use a dynamic RTP payload format.  Updated "playSIP"
++accordingly, to add an optional "-D <mime-subtype-name>" argument.
++- Modified "FileSink" to close the source (and stop playing) if it gets
++an EOF when writing to the output file.  (Thanks to Ruud Schramp.)
++
++2003.03.03:
++Improved the implementation of "MPEG4GenericRTPSource".
++
++2003.02.28:
++- Fixed a bug that would cause RTSP clients to not set the server port
++number (for RTCP) correctly in some situations.  (Thanks to Alex Pollard.)
++- Fixed a bug in "RTSPServer" that would cause "Transport:" headers to not
++get generated correctly.
++
++2003.02.27:
++- Improved the "MultiFramedRTPSource" implementation to more cleanly handle
++packet loss in the case where frames are split into multiple RTP packets.
++- Parsed the optional "/<num-channels>" parameter that can appear at the
++end of "a=rtpmap:" lines for audio sessions.
++
++2003.02.17:
++More work on the experimental '-R <rtsp-url>' option to "playSIP"
++(and "openRTSP") that allows it to inject the incoming stream into
++a separate RTSP server.  This code is now working, although 
++currently only for a single PCMU or GSM audio stream.  Also, RTCP
++packets are not yet relayed between the source and destination. 
++
++2003.02.16:
++Improved RTSPClient and SIPClient to check for (and discard)
++any '\r' or '\n' that appears at the start of a response message.
++(Some weirdo servers can do this.)
++
++2003.02.10:
++Began adding a new option to "playSIP" (and "openRTSP") to allow the
++incoming media stream to be injected into a separate, destination
++RTSP server.  This still needs lots of work...
++
++2003.02.08:
++Fixed the "JPEGVideoRTPSource" implementation to properly prepend a
++synthesized JPEG header to each received frame of RTP data.  This now
++makes it possible to receive and play motion-JPEG RTP streams.
++
++2003.02.06a:
++- Fixed a bug in the SDP "config" attribute parsing.  (This affected
++the use of "MPEG4LATMAudioRTPSource".
++- Cleaned up the "createNew()" routines in each of the *RTPSource classes.
++- Added two new RTPSource classes - "MPEG4ESVideoRTPSource" and
++"MPEG4GenericRTPSource", for MPEG-4.  However, these have not been
++fully implemented yet.
++
++2003.02.06:
++Fixed some code that was 64-bit-unsafe.  (Thanks to Philipp Thomas for
++noticing this.)
++
++2003.02.05:
++- Cleaned up "RTSPClient", and added a method for doing an aggregate
++"PLAY" operation (in addition to the existing method that does a
++"PLAY" on an individual subsession).
++- Modified the "openRTSP" test program so that it does a single
++aggregate "PLAY", rather than a series of non-aggregate "PLAY"s, one for
++each subsession.  (RealNetworks' server doesn't support the latter.)
++- Added a new routine for parsing "AudioSpecificConfig" strings that
++can appear in SDP descriptions.
++- Added Morgan Multimedia's implementation of "JPEGVideoRTPSource"
++to the "liveMedia" library.  (I haven't yet tested this.)
++
++2003.02.04:
++Removed "-DUSE_OUR_BZERO=1" from "config.linux", because it no longer
++seems to be necessary, and it was breaking compilation for some people.
++
++2003.02.03b:
++Added an #include to "BasicUsageEnvironment/Lock.cpp" to fix a problem
++that someone encountered with NULL not being defined.
++
++2003.02.03a:
++Created a new header file "groupsock/include/NetCommon.h" that contains
++all networking-related #includes.  This also does the correct #includes
++for Windows, allowing Windows code to use Winsock-2 rather than Winsock-1.
++Also, modified "win32config" to use a "TARGETOS" of WINNT rather than
++WIN95, to make this all work.
++
++Thanks to Doug Kosovic for figuring out the magic incantations
++needed to get this all working.
++
++2003.02.03:
++- Improved "SIPClient" (in the "liveMedia") library, so that "INVITE"
++requests are retransmitted, as necessary, for reliability.
++- Added a "-A <rtp-payload-format>" option to "playSIP".  This allows the
++user to specify which audio RTP payload format should be received.
++(At present only static payload formats can be specified, and only
++audio codecs - not video.)
++
++2003.01.28:
++- Added support (in the "liveMedia" library) for a basic SIP client
++- Added a new test program "playSIP", similar to "openRTSP".  These two
++applications are now built from the same code base.
++
++2003.01.17:
++Further improvements to the MPEG-4 audio support.  We can now read
++(from the "MediaSubsession") the StreamMuxConfig "config" stream that
++was present in the SDP description.  Also added a routine that parses
++such a string, producing binary "AudioSpecificConfig" data.
++(See "MPEG4LATMAudioRTPSource.cpp" for details.)
++
++2003.01.16:
++Improved support for receiving MPEG-4 LATM audio.  Note that currently,
++this works only for streams that do not have a StreamMuxConfig present
++in the stream.
++
++2003.01.10:
++Added basic support for MPEG-4 LATM audio.  
++
++2002.12.21:
++Fixed a bug in the previous update to "QuickTimeFileSink"
++
++2002.12.20:
++- Another change to "QuickTimeFileSink", again to change the way that track
++durations are computed for ".mov" files.  Now, each track's duration is
++set to be the maximum of (i) the sum of the sample durations listed
++in the 'stts' atom, and (ii) the the sum of the durations listed in the
++track's 'edit list' (if any).
++- Updated the MP3 file parsing code to check for a 'Xing' VBR header in
++the first frame.  ("liveCaster" can use this information to print more
++sensible information about each file that it streams.)
++
++2002.12.10:
++Yet another change to "QuickTimeFileSink", this time to make sure that
++the duration of video tracks corresponds exactly to the sum of video
++sample durations listed in the 'stts' atom.
++
++2002.11.30:
++Renamed "TaskScheduler::blockMyself()" to "doEventLoop()", to better
++describe what this member function actually does.
++
++2002.11.25:
++Another change to "QuickTimeFileSink".  Now, when synchronzed tracks
++are requested, the durations of video frame samples are adjusted so
++that they correspond to actual RTP presentation times.  (This is not
++done for audio samples, however, because having audio samples vary
++in duration might break audio codecs.)
++
++2002.11.22:
++Updated "QuickTimeFileSink" once again - this time to add more statistics
++to the 'udta'/'hinf' atom for each generated hint track.
++
++2002.11.18:
++Modified the support for creating hint tracks in "QuickTimeFileSink" so
++that it it now works properly for H.263+ video sessions.
++
++2002.11.15:
++- Made a small modification to "groupsock/GroupsockHelper.hh" to ensure that
++it compiles on all platforms.
++- Modified "MP3FileSource" so that it can handle layer I or layer II files,
++as well as layer III (MP3).  
++
++2002.11.14:
++Updated "QuickTimeFileSink" to support (optional) hint tracks in output
++QuickTime files.  Also added a "-H" option to "openRTSP" that
++(when used with "-q") will add hint tracks to the output ".mov" file.
++(Note that the hint tracks currently don't work well for H.263+ video
++tracks, and currently don't work at all for QCELP.)
++
++2002.11.04:
++Updated the expiration date in "openRTSP.cpp"
++
++2002.10.22:
++- Undid the previous change.  The top-level Unix Makefile now does
++      cd <dir> ; make
++once again.  Unfortunately "--directory" doesn't seem to work properly
++with the version of "make" that's installed with FreeBSD.
++- Changed the implementation of the "-n" option in "openRTSP".  If "-y"
++is also specified, then the user will be notified only if (i) data has
++arrived for all subsessions, and (ii) all subsessions have been
++synchronized.
++
++2002.10.21:
++Changed the top-level Unix Makefile to do
++	make --directory=<dir>
++rather than
++       cd <dir>; make
++as the latter apparently didn't work with cygwin.
++(Thanks to "Sycotic" Smith for the tip.)
++
++2002.10.20:
++- Updated "QuickTimeFileSink" once again to improve the implementation of
++synchronized audio/video tracks in output QuickTime files.
++- Added a configuration file for "cygwin".  (Thanks to "Sycotic" Smith
++for working on this.)
++
++2002.10.19:
++Updated "QuickTimeFileSink" to use QuickTime Edit Lists to synchronize
++the media tracks.  (It appears that this does not always produce playable
++QuickTime files, so this implementation may have to be changed later.)
++
++2002.10.11:
++Fixed a bug in "MultiFramedRTPSource" that could cause a RTP receiver to
++hang if it received a malformed RTP packet with no data after a special,
++media-specific header.
++
++2002.10.10:
++Fixed the "RTSPClient" implementation so that it now understands
++"Content-Length" as well as "Content-length".  (This now allows it
++to work with our own RTSP server implementation once again!)
++
++2002.10.07:
++Improved the implementation of RTP (and RTCP) reception to eliminate an
++unnecessary "memmove()" each time a packet is received.
++
++2002.10.04:
++Updated the "liveMedia" library to support optionally sending and receiving
++RTP and RTCP packets over a TCP connection (e.g., the TCP connection used
++for a RTSP session).  Also, updated the "openRTSP" test program to take
++an optional "-t" argument, meaning: stream over TCP. 
++
++2002.10.01:
++Fixed the modification to "MultiFramedRTPSource" that was made in the
++2002.08.29 release, and also made a corresponding change to
++"QuickTimeFileSink", so that it now correctly records H.263+/RTP streams
++once again.
++
++2002.09.30:
++- Removed the "Media::addNew()" member function, because it was always
++  called each time a new Media object was created.  Instead, its
++  function was just moved into the Media::Media() constructor.
++- Made another fix to "testMPEGAudioVideoStreamer".
++
++2002.09.28:
++Fixed a bug in "testMPEGAudioVideoStreamer" that could cause a crash when
++its input file was being read for the 2nd or more time.  (Also updated
++"liveMedia/FramedSource.cpp".)
++
++2002.09.27:
++Updated "QCELPAudioRTPSource" so that "hasBeenSynchronizedUsingRTCP()"
++returns True only after a full interleave cycle of RTP packets has been
++received.  This ensures that when it returns true, the receiver will
++be reading a frame that came from a synchronized RTP packet.
++
++2002.09.26:
++- Fixed QCELPAudioRTPSource so that it now returns correct presentation
++timestamps on each frame that is read from it (even if the input data
++was interleaved).
++- Updated QuickTimeFileSink to correctly write ".mov" files for half-rate
++QCELP audio tracks.
++
++2002.09.25:
++Added a new test program - "sapWatch" - that reads and prints SDP/SAP
++announcements (sent to the default SDP/SAP directory)
++
++2002.09.24:
++- Fixed a bug in "QCELPAudioRTPSource"
++- The RTCP implementation now properly recognizes incoming RTCP
++reports from other processes on the same computer.  (Previously, these
++would be rejected as being loop-back packets.)
++
++2002.09.19:
++- Updated "RTPSource"s so that an accurate "presentationTime" variable
++is now returned whenever a client reads from such a source. These times
++are kept accurate by RTCP "Sender Report" packets sent by the sender.
++
++2002.09.13:
++- Improved the "BasicHashTable" implementation so that it's
++no longer a quick-and-dirty hack.
++- Changed the parameter signature to "ByteStreamFileSource" so that the
++"playTimePerFrame" parameter is now an unsigned (microseconds) instead
++of a float.  This eliminates a round-off problem.
++
++2002.09.11:
++Modified "ByteStreamFileSource::doGetNextFrame()" so that - if the
++"playTimePerFrame" parameter was set - the presentation time gets set
++based on this, rather than the current 'wall clock' time.
++
++2002.09.06:
++Updated "win32config.Borland" based on feedback by Vesselin Kostadinov.
++(Also updated an #ifdef in "liveMedia/include/Media.hh")
++
++2002.09.05:
++Added code to ignore an "EAGAIN" error on a 'groupsock' read.
++(This can happen in Linux.)
++
++2002.09.03:
++Fixed a bug in the RTSP server implementation that could
++have caused a memory smash.
++
++2002.08.30:
++Added header files containing version strings (and corresponding integers)
++for each library.  Client code can use these to print out version
++information, or check for version compatibility.
++
++2002.08.29:
++Modified "MultiFramedRTPSource" and its subclasses to properly handle
++the case where a frame is fragmented over several successive incoming
++RTP packets.  Each subclass's implementation of "processSpecialHeader()"
++can choose between having incomplete fragments returned immediately to
++the client (the default behavior), or waiting until all of the fragments
++have arrived.  The implementation of "H263plusVideoRTPSource" was changed
++to do the latter (because the current "ffmpeg" H.263+ decoder relies upon
++getting complete frames for input).
++
++Added an optional "applicationName" parameter to "RTSPClient::createNew()",
++and updated the RTSP client implementation to add a "User-Agent:" field,
++which will contain this "applicationName" string (if present).
++
++2002.08.27:
++Added an optional Boolean parameter "iFramesOnly" to
++"MPEGVideoStreamFramer::createNew()".  If this parameter is True,
++then the framer object will return only data from "I" frames.
++(By default, this parameter is False, meaning that all frames will
++be returned.)  This parameter can be used to reduce the bandwidth
++of streamed MPEG (1 or 2) video.
++
++2002.08.06:
++Changed "groupsock/GroupsockHelper.cpp" to do a "#include <errno.h>"
++rather than "extern int errno".  The latter was apparently breaking in
++some versions of Linux.
++
++2002.08.05:
++Added support for the video/MP2P MIME type (RFC 2250 MPEG Program Streams)
++
++2002.06.25:
++Source file distribution copied from live.sourceforge.net

Added: unstable/liblivemedia/debian/patches/series
===================================================================
--- unstable/liblivemedia/debian/patches/series	2006-03-30 08:44:19 UTC (rev 5)
+++ unstable/liblivemedia/debian/patches/series	2006-03-30 14:13:29 UTC (rev 6)
@@ -0,0 +1,6 @@
+010_propagate_cflags.diff -p1
+010_proper_link_order.diff -p1
+010_static_link.diff -p1
+020_cxx_headers.diff -p1
+020_invalid_casts.diff -p1
+040_changelog.diff -p1

Added: unstable/liblivemedia/debian/rules
===================================================================
--- unstable/liblivemedia/debian/rules	2006-03-30 08:44:19 UTC (rev 5)
+++ unstable/liblivemedia/debian/rules	2006-03-30 14:13:29 UTC (rev 6)
@@ -0,0 +1,91 @@
+#!/usr/bin/make -f
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+CFLAGS = -Wall -g
+
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+	CFLAGS += -O0
+else
+	CFLAGS += -O2
+endif
+ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
+	INSTALL_PROGRAM += -s
+endif
+
+configure: configure-stamp
+configure-stamp:
+	dh_testdir
+	QUILT_PATCHES=debian/patches quilt push -a || test $$? = 2
+	./genMakefiles linux
+	touch configure-stamp
+
+build: build-stamp
+build-stamp:  configure-stamp
+	dh_testdir
+	CFLAGS="$(CFLAGS) -fPIC -DPIC" $(MAKE)
+	for f in BasicUsageEnvironment \
+	            UsageEnvironment liveMedia groupsock; do \
+	  mv "$${f}/lib$${f}.a" "$${f}/lib$${f}_pic.a"; \
+	done
+	$(MAKE) clean
+	CFLAGS="$(CFLAGS)" $(MAKE)
+	touch build-stamp
+
+clean:
+	dh_testdir
+	dh_testroot
+	rm -f build-stamp configure-stamp
+	-$(MAKE) clean
+	QUILT_PATCHES=debian/patches quilt pop -a -R || test $$? = 2
+	rm -f `find . -name '*.a'`
+	rm -f `find . -name Makefile`
+	dh_clean 
+
+install: build
+	dh_testdir
+	dh_testroot
+	dh_clean -k 
+	dh_installdirs
+	for f in BasicUsageEnvironment \
+	            UsageEnvironment liveMedia groupsock; do \
+	  dh_install -pliblivemedia-dev "$${f}/include/"*.h* "usr/include/$${f}"; \
+	  dh_install -pliblivemedia-dev "$${f}/lib$${f}.a" "usr/lib"; \
+	  dh_install -pliblivemedia-dev "$${f}/lib$${f}_pic.a" "usr/lib"; \
+	done
+	for f in openRTSP playSIP sapWatch testAMRAudioStreamer \
+	          testMP3Receiver testMP3Streamer \
+	          testMPEG1or2AudioVideoStreamer \
+	          testMPEG1or2AudioVideoToDarwin \
+	          testMPEG1or2ProgramToTransportStream \
+	          testMPEG1or2Splitter testMPEG1or2VideoReceiver \
+	          testMPEG1or2VideoStreamer testMPEG2TransportStreamer \
+	          testMPEG4VideoStreamer testMPEG4VideoToDarwin \
+	          testOnDemandRTSPServer testRelay testWAVAudioStreamer \
+	          vobStreamer; do \
+	  dh_install -plivemedia-utils "testProgs/$${f}" "usr/bin"; \
+	done
+	dh_install -plivemedia-utils debian/openRTSP.html usr/share/doc/livemedia-utils
+
+binary-indep: build install
+
+binary-arch: build install
+	dh_testdir
+	dh_testroot
+	dh_installchangelogs changelog.txt
+	dh_installdocs
+	dh_installexamples
+	dh_installman
+	dh_link
+	dh_strip
+	dh_compress
+	dh_fixperms
+	dh_installdeb
+	dh_shlibdeps
+	dh_gencontrol
+	dh_md5sums
+	dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install 


Property changes on: unstable/liblivemedia/debian/rules
___________________________________________________________________
Name: svn:executable
   + *




More information about the Pkg-multimedia-commits mailing list