[Last month I told Robert Kaye about an earlier version of these changes, 
but there have been several improvements since then, and I wanted now to 
announce this to the whole mailing list.]

I have modified the recent Freeamp 2.1.1 source code release to make use of 
the "LIVE.COM Streaming Media" libraries (see <http://live.sourceforge.net/>).

The major changes in the code were to "io/obs/obsinput.{h,cpp}".  These now 
use the RTP/RTCP implementation from the LIVE.COM libraries, rather than 
the (limited) RTP implementation that was there before.  This brings many 
        - There is now full RTCP support.  (In particular, Freeamp will now send
          back RTCP Reception Reports when playing a RTP session.)
        - Freeamp now supports loss-tolerant MP3/RTP streams (as defined in
          RFC 3119), as well as traditional MP3/RTP streams as defined in RFC 2250.
        - For even greater loss tolerance, Freeamp can now also receive sessions
          that use 'layered erasure coding' - i.e., using multiple RTP streams,
          encoded at different bit rates (using a technique developed by
          Multicast Technologies, Inc.).  (For more information about this, see
         <http://www.live.com/multikit/winamp-plugin.html#mct-slap>, which
         describes how such session can be described using 'rtp://' pseudo-URLs.)
        - Freeamp now accepts "rtsp://" URLs (for those MP3/RTP sessions
          (unicast or multicast) that are served by RTSP servers.
        - As an alternative to using "rtp://" or "rtsp://" URLs to play a MP3/RTP
          session, Freeamp can also read a ".sdp" file that describes such sessions
          (using the IETF's "Session Description Protocol" - RFC 2327).  (At present
         this works only if the ".sdp" file name is given on the command line.)
        - By using the LIVE.COM libraries, Freeamp now has the potential to
          support many additional RTP payload formats - if a decoder is present.
          For example, with an appropriate decoding implementation Freeamp could
          now support PCM (u-law or a-law), GSM, QCELP, etc. etc. RTP streams.

In addition to the changes to "io/obs/obsinput.{h,cpp}", there were also 
minor changes to a handful of other files - mainly to recognize "rtsp://" 
URLs and ".sdp" files as special cases.  Plus, of course, I updated 
"Makefile.header.in" and "Makefile-plugins.in" to reference the "LIVE.COM 
Streaming Media" headers.

I have left my updated copy of the Freeamp code online as 
<http://www.live.com/mct/freeamp+live.tgz>.  There is also a patch file: 
<http://www.live.com/mct/freeamp+live.patch>, and a pre-built Linux/x86 
binary: <http://www.live.com/mct/binaries/linux-x86/freeamp>.

To build this from source, you will also need the "LIVE.COM Streaming 
Media" code (available from <http://live.sourceforge.net/>), unpacked into 
a directory "live" (with "freeamp" and "live" being siblings in the file 

It would be great if these modifications could be incorporated into the 
official Freeamp code base, as they are significant improvement over the 
original code.

        Ross Finlayson


Reply via email to