Subject: CVS commit: pkgsrc/net/liblive
From: OBATA Akio
Date: 2008-04-26 13:38:43
Message id: 20080426113843.666E0175D0@cvs.netbsd.org

Log Message:
Update liblive to 2008.04.09.
draw upon a patch to update for 2007.01.17 in PR 38038
While here, add DESTDIR support and fix permission of installed libraries.

2008.04.09:
- Corrected a type-related bug in "RTPInterface::handleRead()".  \ 
(Thanks to Brain Lai for noting this.)
- Fixed a bug in "RTSPClient" that would prevent RTCP "RR" \ 
reports from being sent to
  the correct multicast address when we are receiving a multicast stream. \ 
(Thanks to Changjin Liu for noticing this.)

2008.04.03:
- Fixed a bug that was introduced in the "2007.12.27" release.  The \ 
"timeout" parameter to the call to
  "readSocket" in "SocketDescriptor::tcpReadHandler()" in \ 
"RTPInterface.cpp" needed to be initialized
  (to zero) first.  (Thanks to Lodewijk Loos for alerting us to this problem.)
- Added a new config file "config.bfin-linux-uclibc", and renamed \ 
"config.bfin_uclinux" as "config.bfin-uclinux".
  (Thanks to Mike Frysinger.)

2008.02.08:
- Added a hack (suggested by "Romain") to \ 
"MPEG2TransportStreamFramer" to (perhaps)
  produce more accurate per-transport-packet duration estimates for wildly VBR \ 
streams.
- Updated "MPEG2TransportStreamMultiplexor" to support the addition of \ 
MPEG-4 Audio or Video Elementary Streams.
- Updated "RTSPOverHTTPServer.cpp" (a work in progress) so that it \ 
complies properly for some versions of
  Visual Studio on Windows.  (Thanks to Eric Flickner for noting this.)

2008.01.19:
- Corrected the "getNormalPlayTime()" function - introduced in the \ 
previous release - to allow for 'trick play'
  scale factors other than 1.

2008.01.18:
- Added a new member function
    float MediaSubsession::getNormalPlayTime()
  which - given a stream's current presentation time - returns the "Normal \ 
Play Time".
  This function is useful for RTSP streams.
- Added support for a "a=control:" URL specified in the SDP \ 
description at the session level.

2008.01.04:
- Changed the "RTSPClient" timeout - introduced in the previous \ 
release - from
  5s to 30s.
- Added support for setting and returning the RTSP session start time (as well \ 
as the end time).
  (This eliminates the need for the "live-starttime.patch" file that \ 
VLC was using.)
- Updated some of the system-specific configuration files, to eliminate the need \ 
for many of the patches that
  the VLC developers added to their code.

2007.12.27:
- Added a 5s timeout to the "RTSPClient" code that checks for RTSP \ 
responses.
  This mirrors a change that was already being done to VLC's copy of the code.
  (This is still a short-term fix, until the "RTSPClient" code is \ 
rewritten to
  properly use asynchronous I/O, using the event loop.)
- Added a timeout to the "readSocket()" call in \ 
"SocketDescriptor::tcpReadHandler()" in "RTPInterface.cpp",
  to handle reading RTP-over-TCP data.  This allows for the possibility of \ 
non-cooperative RTSP clients.
  (Thanks to Peter Leese for this suggestion.)  This is probably not a complete \ 
solution;
  more thought is needed...

2007.12.07:
- Fixed "H2633plusVideoFileServerMediaSubsession" to properly use a \ 
dynamic RTP payload type, rather than the
  static type 34 (which is reserved for the now-obsolete old \ 
"video/H263" RTP payload format).

2007.12.06:
- Updated "JPEGVideoRTPSource" to take optional 'default width' and \ 
'default height' parameters.
  These parameters can be set by fields in the SDP description, and can be used \ 
to specifiy unusually
  large frame widths and/or heights.  (Thanks to Andrey Filippov.)

2007.11.18:
- Fixed a couple of memory leaks in "DarwinInjector".  (Thanks to Eyal \ 
Beit-Halachmi for noting these.)
- Removed old 'backwards compatibility' stuff from "FramedSource".  \ 
(Noone should be relying upon this any more.)
- Fixed a bounds-checking error in "parseRTSPRequestString()" caused \ 
by an int vs. unsigned problem.
  (Thanks to Luigi Auriemma for noting this.)
- In "RTSPClient.cpp", fixed a couple of "unsigned" vs. \ 
"int" nits.  (Thanks for Brain Lai for noting this.)

2007.11.01:
- Several of the options to "openRTSP" have now been changed, with two \ 
new options added:
	  -s <initial-seek-time>
	  -z <scale>
  See the "openRTSP" documentation \ 
<http://www.live555.com/openRTSP/> for details.
- Fixed a bug in the way that "MPEG4VideoStreamDiscreteFramer" parses \ 
'config' information (for inclusion in
  the stream's SDP description).  (Thanks to Nicola Bova for helping to identify \ 
this bug.)
- Eliminated a potential memory (and socket) leak when allocating server \ 
RTP,RTCP socket pairs.
  (Thanks to David Pan for reporting this.)
- Updated "ByteStreamFileSource" to treat a 0-byte file read the same \ 
as EOF.
- Ensure that we have reasonable OS buffering for writes on non-blocking sockets.

2007.08.03a:
- Removed a debugging printf() that had been left in by mistake.  (Thanks to \ 
Massimo Zito for noticing this.)

2007.08.03:
- Updated the "RTSPServer" implementation to work better on systems \ 
with more than one IP address.
  The server will now include - in its RTSP responses - the IP address on which \ 
the corresponding incoming request
  was received.

2007.07.25:
- Added some sanity checks to various "MediaSink" subclasses, in case \ 
"fSource" is NULL.
  (Thanks to Andrey Kaminsky for noting one of these.)

2007.07.10:
- Made sure that "MPEG2TransportStreamFramer"s estimate of the average \ 
duration of each Transport Packet
  gets updated correctly after each 'seek' operation.  (Thanks to Massimo Zito \ 
for suggesting this.)
- Fixed a bug in "MPEG2TransportStreamFromESSource" that was causing \ 
presentation
  timestamps to not be generated correctly.  (Thanks to Massimo Zito for \ 
noticing this.)

2007.07.01:
- Fixed a bug in "RTSPServer" and "RTSPClient" that would \ 
cause problems when streaming
  files whose names have spaces in them.
- Fixed a bug in "OnDemandServerMediaSubsession::deleteStream".  \ 
(Thanks to Igor Bukanov.)
- Make the sockets for "RTPSource", "RTCPInstance" and \ 
"BasicUDPSource" non-blocking, even though they will be read
  from only asynchronously, when packets arrive.  The reason for this is that, \ 
in some OSs, reads on a blocking
  socket can (allegedly) sometimes block, even if the socket was previously \ 
reported (e.g., by "select()") as
  having data available.  (This can supposedly happen if the UDP checksum fails, \ 
for example.)
  (Thanks to Marc Neuberger for pointing this out.)
- Fixed a bug in "MPEG2TransportFileServerMediaSubsession.cpp" that \ 
was causing 2x
  fast-forward to fail.  (Some debugging code had been left in by mistake.)

2007.05.24:
- Modified "setupDatagramSocket()" to better handle setting \ 
"ReceivingInterfaceAddr" when creating a socket
  to be used to send/receive multicast.
- Made a couple of minor changes to overcome some compilation errors that some \ 
people were apparently seeing.

2007.05.23:
- The RTSP server now includes the "source=" parameter in the response \ 
to a RTSP "SETUP" command.
  This works around a bug in QuickTime Player that would cause it to not send \ 
RTCP "RR" packets
  (when playing a unicast stream, and running on Mac OS X).  (Thanks to Dave \ 
Singer et al at Apple for tracking
  down this problem.)
- The RTSP server implementation no longer terminates the session if it returns \ 
400 or 405 errors.

2007.04.24a:
- Fixed a problem in the new "RTSPOverHTTPServer" code that was \ 
causing some people compilation problems.

2007.04.24:
- Fixed a typo in "testOnDemandRTSPServer.cpp".  (Thanks to Nils \ 
Grundback for noticing this.)
- Modified the signature of "RTSPServer::specialClientAccessCheck()" \ 
(defined in the previous revision) to add
  a new "clientAddr" parameter (a "struct sockaddr_in"), to \ 
allow special access checking based on clients' IP
  address.
- Make sure that the locale is set to "POSIX" when calling \ 
"toupper()" or "tolower()" on human-supplied strings.
  (Thanks to Ismail Doenmez for noting this.)

2007.04.20:
- Modified "MPEG2TransportStreamMultiplexor" to set the \ 
"discontinuity_indicator" flag for the first
  "adaptation_field" in the output Transport Stream.
- Changed "AMRAudioRTPSource" to more accurately report whether/when \ 
an interleaved frame's timestamp has
  been synchronized using RTCP.
  (Thanks to David Bertrand for this patch.)
- Made to a small fix to the previous revision's support for multicast streaming \ 
of raw UDP (nonstandard)
- Added a virtual function to "OnDemandServerMediaSubsession" for \ 
closing the stream source.
  Subclasses can redefine this, if they wish, to do something smarter.  (Thanks \ 
to Igor Bukanov for this patch.)
- Added support to "RTSPServer" for optionally performing special \ 
per-client access control, beyond the
  standard Digest Authentication method.  (Thanks to Igor Bukanov for this patch.)
- Made a minor optimization to "Groupsock.cpp".  (Thanks to Maxim \ 
Petrov for this suggestion.)
- Added an initial implementation of RTSP-over-HTTP at the server level (it was \ 
already supported at the client level).
  (Note: This code has not yet been completed, and doesn't yet work, so don't \ 
try to use it.)

2007.02.20:
- Updated "RTSPServer" to support multicast streaming of raw UDP \ 
streams (nonstandard).
  (Thanks to Aesmund Grammeltvedt for this modification.)
- Made "RTSPClient" a little more robust in case the TCP connection fails.
- Made "RTPSink::rtpmapLine()" virtual (as requested by Andrew Voznytsa).
- Removed an archaic (no longer used) declaration in \ 
"groupsock/include/Groupsock.hh".
- Added an optional "allowKasennaProtocol" parameter to \ 
"RTSPClient::describeWithPassword()"
  (similar to "RTSPClient::describeURL()").  (Thanks to Igor Bukanov \ 
for this suggestion.)s

2007.01.17:
- Fixed a bug that would cause the "MPEG2TransportStreamIndexer" \ 
application to fail when run on a big-endian
  architecture.
- Added a new class "H264VideoFileSink", that prepends each incoming \ 
H.264 NAL unit with the prefix 0x000001,
  before writing it to the file.  Also updated the "openRTSP" code to \ 
use this, when receiving H.264/RTP streams.
  (Thanks to Chris Kuiper for contributing this.)
- Added a temporary #ifdef to "GroupsockHelper.cpp" to work around a \ 
compliation problem when building
  for Cygwin.

2007.01.11:
- Improved the "MPEG2IndexFromTransportStream" class to recogize \ 
Transport Stream
  PAT and PMT (tables).  This in turn makes the \ 
"MPEG2TransportStreamIndexer"
  utility more robust.
- Fixed a minor bug in "MPEG2TransportStreamFromESSource".

2007.01.09:
- Added RTSP server support for 'trick play' operations on MPEG-2 Transport Stream
  files.  This requires the presence of a ".tsx" index file for each \ 
".ts" file.
  (This functionality will shortly be documented on the LIVE555 web site,
  and announced on the "live-devel" mailing list.)
- Improved the performance of asynchronous file reading in \ 
"ByteStreamFileSource".
  (Thanks to Aesmund Grammeltvedt for this suggestion.)
- Added "-D_FILE_OFFSET_BITS=64" to the "COMPILE_OPTS" line \ 
for each of the Linux config files, in order to
  alleviate possible problems with I/O on large files.

2006.12.31:
- We now implement "ByteStreamFileSource" on Windows using synchronous \ 
file reads,
  by default.  I had thought that Windows XP had fixed the problem - present in
  earlier versions of Windows - whereby open files are not treated as select()able
  sockets.  But apparently the problem is still there.
- Added code that will - probably in the next release, very soon - support server
  'trick mode' operations on MPEG-2 Transport Stream files.  At present, we have two
  new applications - in the "testProgs" directory - that help support this:
  "MPEG2TransportStreamIndexer" (to create a special index file for a \ 
Transport Stream
  file), and "testMPEG2TransportStreamTrickPlay" (to generate a new \ 
Transport Stream
  file that simulates a 'trick play' operation performed on the original Transport
  Stream file).  See my forthcoming post to the "live-devel" mailing \ 
list for more
  details.
- Fixed a bug in the Base64 encoding routine.  (Thanks to Sebastian Gracias for \ 
reporting this.)

2006.12.08:
- Made sure that each TCP socket used by a "RTSPserver" is \ 
non-blocking, so that a slow or hanging client
  cannot hang a server.  (Thanks to "jers (at) inwind.it" for this \ 
suggestion.)

Files:
RevisionActionfile
1.15modifypkgsrc/net/liblive/Makefile
1.4modifypkgsrc/net/liblive/PLIST
1.6modifypkgsrc/net/liblive/distinfo