[SCM] liblivemedia/master: Pull latest upstream changelog.

bdrung at users.alioth.debian.org bdrung at users.alioth.debian.org
Fri Dec 30 13:18:10 UTC 2011


The following commit has been merged in the master branch:
commit 1085eec5e0a004ba15ea36ee210d6bd79fc2d5ec
Author: Benjamin Drung <bdrung at debian.org>
Date:   Fri Dec 30 14:09:06 2011 +0100

    Pull latest upstream changelog.

diff --git a/debian/upstream.changelog b/debian/upstream.changelog
index 8aa1b52..1cd3e50 100644
--- a/debian/upstream.changelog
+++ b/debian/upstream.changelog
@@ -1,3 +1,300 @@
+2011.12.23:
+- Added a new demo application "testRTSPClient" to the "testProgs" directory.  If you're developing your own RTSP client
+  application (or want to embed RTSP client functionality into a larger application), then "testRTSPClient" is a better model
+  for this than "openRTSP" (because "openRTSP" was designed to be a standalone application, and is complex, with a large number
+  of options).
+- Fixed a bug in "MultiFramedRTPSource" that could cause an incorrect count of 'truncated' bytes to get reported if the receiving
+  sink's buffer size was too large to fit a complete incoming frame.  (Even worse, this bug might also cause a frame of invalid
+  data (that should have been truncated from the previous frame) to get delivered to the sink.)
+
+2011.12.20:
+- Fixed a "RTSPServer" bug in handling commands (such as "GET_PARAMETER" or "SET_PARAMETER") that have a "Content-Length:" header,
+  specifying extra bytes at the end of the message.  (The bug usually affected only RTP-over-TCP streams, not RTP-over-UDP.)
+  (Thanks to Jer Morrill for bringing this bug to our attention.)
+- We no longer make the 'groupsock' "reuseFlag" a static variable, in case the library is being accessed by multiple threads.
+  Instead, we now make it part of the "groupsockPriv" memory that's part of each "UsageEnvironment".
+  (Thanks to Michel Promonet for noting this issue.)
+
+2011.12.19:
+- Updated the "UserAuthenticationDatabase" destructor (in "RTSPServer.cpp") to delete each of the "password" strings that we
+  had previously allocated, thereby eliminating a memory leak.  (Thanks to Michel Promonet for noting this.)
+- Fixed a bug with the "#ifdef"s in "liveMedia/include/Locale.hh" (introduced in version 2011.11.27) - to ensure that the new
+  'xlocale' functions get used on Linux by default.
+  (Thanks to Remi Denis-Courmont for alerting us to this issue.)
+- Added a public member function "url()" to "RTSPClient", to get the RTSP URL.  (This might be useful for applications that
+  create multiple "RTSPClient" objects, and want to identify each one (e.g., when debugging).)
+
+2011.12.02:
+- Updated the "H264VideoStreamFramer" implementation to avoid triggering a "StreamParser" internal error, even for extremely
+  large NAL units.
+
+2011.11.29:
+- Updated "MPEG2TransportStreamMultiplexor" to change the Program Map PID from 0x10 to 0x30.  (Thanks to Chris Richardson,
+  who noted that PIDs below 0x30 are not valid for ATSC or DVB (although they may be valid for other Transport Streams).)
+- Updated the "NetAddressList()" constructor (for resolving names->IP addresses) to use "getaddrinfo()" - if available - rather
+  than the older, deprecated "gethostbyname()" function.  Also, the "ourIPAddress()" code (in "GroupsockHelper.cpp") now uses
+  the "NetAddressList()" code (if the initial multicast loopback method fails) to look up our host name.
+
+2011.11.28:
+- Use "uintptr_t" and "intptr_t" in a few places, where appropriate, to eliminate compiler warnings when compiing for 64-bits.
+  (Thanks to the VLC developers for this suggestion.)
+- When we create each (datagram or stream) socket, set the 'close on exec' property (if we can).
+  (Thanks to the VLC developers for this suggestion.)
+
+2011.11.27:
+- Updated the definition and implementation of the "Locale" class to - if possible - use "newlocale()" rather than "setlocale()".
+  The reason for this is that - on some systems - "setlocale()" may not be thread safe.
+  (Thanks to the VLC developers for this suggestion.)
+
+  IMPORTANT NOTE: Some systems - e.g., FreeBSD - do not have the "xlocale.h" header file that defines "newlocale()".
+  This means that we had to #ifdef the code, and continue to use the old implementation (using "setlocale()"),
+  if XLOCALE_NOT_USED is defined.  We have updated the "config.freebsd" configuration file to add "-DXLOCALE_NOT_USED=1"
+  to the compile flags.  However, if there are other systems that have "locale.h" but not "xlocale.h", then their configuration
+  files will need to be updated also.  If you find such a system, then please let us know (using the "live-devel" mailing list).
+- Updated the 'IP address finding' code in "groupsock/GroupsockHelper.cpp" to use "getaddrinfo()" - if available - rather than
+  the older, deprecated "gethostbyname()" function.
+  (Thanks to the VLC developers for this suggestion.)
+- Made the "RTSPClient" member function "setBaseURL()" protected rather than private, to allow subclass constructors to,
+  if they wish, construct and set the "rtsp://" URL in the body of their constructor, rather than in the call to the parent
+  "RTSPClient" constructor.  (If they want to do this, then they should first pass "NULL" as the "rtspURL" parameter in the
+  parent constructor.)
+  (Thanks to Jeff Shanab for this suggestion.)
+
+2011.11.26:
+- We no longer use "inet_ntoa()" (or "our_inet_ntoa()"), because it's not safe if called from multiple threads.
+  Instead, we now use our own "AddressString" class (defined in "groupsock/include/NetAddress.hh").  
+  E.g., instead of calling
+      our_inet_addr(addr)
+  we now call
+      AddressString(addr).val()
+  (Thanks to the VLC developers for noting the problem with "inet_ntoa()".)
+- Updated the "WindowsAudioInputDevice" code to make it work better with Unicode.  (Thanks to Jeff Shanab.)
+
+2011.11.20:
+- Fixed "RTCP.cpp" to not call a "BYE" handler (if one's set) until the very end of the incoming RTCP report handler member
+  function.  This is to allow for the (common) possibility of the "BYE" handler causing "this" to get deleted.
+  (Thanks to Jeff Shanab for noticing this.)
+- Updated some counters used by "MPEG2TransportStreamFramer" from "unsigned long" to "u_int64_t", to better support streams
+  that last for several days.  (Thanks to Tim Shackleton for this fix.)
+- Modified the "RTSPServer" code to properly handle weird RTSP clients that ask for RAW UDP streaming, but also specify two
+  port numbers in the "client_port=" part of the "Transport:" header.
+  (Thanks to "homepuh(at)yandex.ru" for this suggestion.)
+- Made a small change to the "VP8VideoRTPSource" implementation to reflect a minor change (the addition of the "K" header flag)
+  in the most recent IETF Internet-Draft (draft-ietf-payload-vp8-02.txt)
+- Added an #ifndef to "Boolean.hh" to deal with a Windows development environment that already defines (not "#define"s)
+  "True" and "False".  (Thanks to Jeff Shanab for this suggestion.)
+
+2011.11.08:
+- Added "VorbisAudioRTPSink" and "VorbisAudioRTPSource" for sending/receiving Vorbos audio RTP streams (based on RFC 5215).
+- Added "VP8VideoRTPSink" and "VP8VideoRTPSource" for sending/receiving VP8 video RTP streams.
+- Added support for extracting and streaming Vorbis audio tracks from Matroska (including WEBM) files.
+- Added support for extracting and streaming VP8 video tracks from Matroska (including WEBM) files.
+- Updated the "testOnDemandRTSPServer" and "LIVE555MediaServer" (source-code version only) applications to support streaming
+  from ".webm' files.
+- Fixed frame durations for data extracted from Matroska tracks that don't have a 'default duration'.
+- Fixed a memory leak in "RTSPClient::sendOptionsCmd()".  (Thanks to Gregg Mattinson for reporting this.)
+  (Note, however, that "sendOptionsCmd()" - and other functions in the synchronous interface - are currently deprecated.
+  Developers should now be using the asynchronous "RTSPClient" interface instead.)
+
+2011.11.02:
+- Updated the Matroska file parsing code to be more tolerant of extremely large frames (larger than the "StreamParser"
+  "BANK_SIZE"), and bogus data - to avoid tripping into parser 'internal errors'.
+- Added an #ifndef/#endif around the "NoReuse dummy;" statement in "RTSPServer.cpp".  This allows a developer - at compile time -
+  to allow a "RTSPServer" to run even if there is already a server using the same port.  (The only time you should do this is
+  if you anticipate restarting a server immediately after it exits, when the old server is still in a TIME_WAIT state, and
+  you're sure that no other server will ever be running with the same port number.)
+  (Suggestion by Chris Richardson.)
+
+2011.10.27:
+- Added support for seeking within streams that are demultiplexed from a Matroska file.
+- Modified the signatures of the virtual functions "ServerMediaSubsession::seekStream()"
+  and "OnDemandServerMediaSubsession::seekStreamSource()" to make the "seekNPT" parameter a "double&" rather than a "double".
+  This makes it possible for subclasses to make slight changes to the specified seek position when they implement seeking.
+  (This is necessary for seeking within Matroska-demuxed streams, because 'cue points' in Matroska files can be coarse-grain.)
+- Made a slight modification to "openRTSP" so that it sets the play duration correctly if the RTSP seek position changes as
+  a result of the RTSP "PLAY" command.
+- Changed the implementation of "ReorderingPacketBuffer" in "MultiFramedRTPSource" to use a doubly-linked list rather than
+  a singly-linked list.  This makes it more efficient to add new packets to the list after a packet loss has occurred
+  (while we wait for the 'reordering threshold' to expire).  (As always, most of the "ReorderingPacketBuffer" code gets called
+  only if a packet is lost (or reordered) in the input stream; not in the common case where all packets arrive in order.)
+  (Thanks to Ralf Schroeder for this suggestion.)
+- Made the implementation of the "our_random()" function more robust in case it's called concurrently by multiple threads.
+  (Of course, as explained in the FAQ, you should calling LIVE555 code from multiple threads only if each thread uses its own
+  "UsageEnvironment" and "TaskScheduler" object.)
+  (Thanks to Michael Margold for raising this issue.)
+- Fixed the way that you can specify - in the C/C++ preprocessor - that you want to use the system-supplied "random()" and
+  "srandom()" functions, rather than our own versions.  You can do this by defining USE_SYSTEM_RANDOM (e.g., in a "config." file).
+
+2011.10.18:
+- Improved "RTSPServer" support for subdirectories in "rtsp://" URLs (handling this better for non-compliant clients
+  that try to do a "SETUP" on agrregate URLs - when there is only a single subsession in the stream).
+
+2011.10.09:
+- Updated "RTSPServer" to better support multiple "/" characters (i.e., subdirectories) in URL - i.e., improving the modification
+  that we made back in version 2011.08.13.
+- Added an #include to "RTSPCommon.hh" to overcome a compilation problem that some
+  people had when using Borland development tools on Windows.
+
+2011.10.05:
+- Added support for RTSP/RTP streaming, on demand, from a Matroska ('.mkv') file.  The video, audio, and subtitle tracks (if any)
+  within the file are demultiplexed and streamed separately, via RTP.  We currently support H.264 video, AAC, AC3 and MP3 audio,
+  and text subtitles.  Sometime in the future, we will also support WEBM ('.webm') Matroska files, with VP8 video and Vorbis audio.
+  (We don't currently support seeking within the underlying  Matroska file (to implement RTSP seeking), but hope to do so
+  in the future.)
+  We also updated the "testOnDemandRTSPServer" demo application and the "LIVE555 Media Server" (currently, just the source-code
+  version - not the prebuilt application binary versions) to support streaming from '.mkv' files.
+- Added a new "RTPSink" subclass "T140TextRTPSink" to implement the 'text conversation' RTP payload format defined
+  by RFC 4103.  (Note, however, that the optional support for 'redundancy' - as described in that RFC - is not yet supported.)
+  We had already implemented the *reception* of this RTP payload format (using "SimpleRTPSource").
+  We use this payload format to stream 'subtitle' tracks from Matroska files.
+- Added a new configuration file "config.macosx-32bit" for generating 32-bit-only binaries for Mac OS X.
+  (Thanks to Robert Wolff for contributing this.)
+- Added a mechanism for (optionally) setting a callback function on a "RTPSink" - to be called if a send of data over
+  the sink's socket fails.  (Contributed by Ralf Globisch.)
+- Made a minor change to "MultiFramedRTPSink" to ensure that the "doSpecialFrameHandling()" virtual function gets called
+  even when sending RTP packets that contain a 0-length payload.
+- Fixed a minor memory leak in "H264VideoRTPSink" (the intermediate 'fragmenter' object wasn't getting deleted properly)
+
+2011.09.19:
+- We now set RTCP "RR" handlers for "PassiveServerMediaSubsession"s.  As a result, client sessions for multicast streams
+  will no longer time out - as long as the clients send RTCP "RR" packets which the server can receive.
+- Added a new public member function "setSPSandPPS()" to "H264VideoStreamFramer".  This lets you initialize a 
+  "H264VideoStreamFramer" (or a "H264VideoStreamDiscreteFramer") with SPS and PPS NAL units, in case these do not appear
+  early (or at all) in the input stream.
+- Made some performance improvements to "H264VideoFileServerMediaSubsession" and "MPEG4VideoFileServerMediaSubsession".
+- Fixed a bug in "H264VideoRTPSink" that could cause input source processing to not get stopped properly if the sink gets deleted.
+
+2011.09.02:
+- Updated "MultiFramedRTPSource" to more cleanly handle the situation where the sender's SSRC changes.  We don't yet support
+  streams that contain multiple SSRCs, but we can handle streams where the SSRC changes occasionally - e.g., because a multicast
+  source has been restarted.  (When the SSRC changes, we don't check the RTP sequence number of the first packet.)
+  (Thanks to Dmitriy Vasil'ev for bringing this issue to our attention.)
+
+2011.08.22:
+- Updated the "RTSPServer" code to handle a rare condition whereby "handleRequestBytes()" gets called recursively.
+  (This can happen only when we handle a "DESCRIBE" by re-calling the event loop (e.g., to wait for SDP parameters to
+  become available).)  If this happens, we need to make sure that we don't delete the "RTSPClientSession" object until we leave the
+  outermost call.  (Thanks to Vadim Kosarev for identifying the problem, and proposing the solution.)
+
+2011.08.20:
+- Modified the "MediaSession" and "MediaSubsession" classes to make it possible for developers to add support for receiving
+  new RTP payload formats, without having to modify the "MediaSession" or "MediaSubsession" code itself.  To do this, developers
+  define their own subclasses of "MediaSession" and "MediaSubsession".  For more details, see the comment near the top of
+  "liveMedia/include/MediaSession.hh"
+
+2011.08.13:
+- Updated the "RTSPServer" implementation to allow multiple "/" characters in the "rtsp://" URL.  This allows the 
+  "LIVE555 Media Server" to stream from subdirectories.  (Thanks to Mike Williams for this suggestion.)
+- Updated the "RTSPClient" code to more cleanly handle our server's (empty) responses to RTSP "GET_PARAMETER" commands.
+  (Thanks to Sebastien Escudier for noting this issue.)
+- Updated the "StreamParser" code to allow parsers to test whether we've seen EOF on the input stream.  We also modified
+  the "H264VideoStreamParser" code to use this, and fix a bug which was causing it to omit the last NAL unit in the input file.
+- Updated "JPEGVideoRTPSource" to generate correct (or at least more correct) JPEG headers when the input stream contains just
+  one quantization header.
+- Added a 'cast' to the "RTSPServerSupportingHTTPStreaming" code to overcome a compilation problem that some people may
+  have been seeing.
+
+2011.07.21:
+- Changed some member variables from "private:" to "protected:", to make subclassing easier.
+  (Requested by Mojtaba Nouri and James Stafford.)
+- Added a sanity check to the "RTP-over-TCP" handling code in "RTPInterface.cpp" to alleviate a strange condition (perhaps a bug)
+  that Jeremy Noring saw.
+
+2011.07.18:
+- Added a new, optional extension to "RTSPServer" - called "RTSPServerSupportingHTTPStreaming" - that supports streaming
+  to iPhones and iPads, using Apple's "HTTP Live Streaming" mechanism.  (For this to work, the files being streamed *must* be
+  MPEG Transport Stream files with H.264 video, and must also be 'indexed' (using the same 'index file' mechanism that we use
+  for 'trick play').  (The "live555MediaServer" source code has been updated to support this, as an option.)
+- Fixed a bug in the various "*Streamer" demo applications that stream from the same input file, in a loop.  We weren't calling
+  "stopPlaying()" on the "RTPSink" object at the end of each loop.  This bug directly affected only "testH264VideoStreamFramer",
+  but was theoretically an issue for other demo applications as well.  (Thanks to Sergey Kosov for reporting this.)
+
+2011.07.15a:
+- Removed some experimental new code that had accidentally been left in the "mediaServer" directory.
+
+2011.07.15:
+- Added a new class "ByteStreamMemoryBufferSource" to encapsulate a (static) memory buffer that's used as a byte stream data source.
+- Added a new class "TCPStreamSink" to encapsulate a writable TCP socket.  Being a "MediaSink", you can call "startPlaying()"
+  on it, to stream from a "FramedSource" to a TCP socket.  This class could be used to implement a HTTP server, for example.
+- Changed the signature of "ServerMediaSubsession::seekStream()" to take an additional "numBytes" return parameter.
+  This parameter is set to the number of bytes that will be streamed (or 0 if unlimited, or unknown).
+  (This can be used to implement a HTTP server, with a "Content-Length:" response header.)
+- Added a new virtual function "getStreamSource(streamToken)" to "ServerMediaSubsession".  This provides an easy way for
+  "RTSPServer" subclasses to access the media source for each stream, if desired.
+- Removed the classes "HTTPSink" and "MPEG1or2VideoHTTPSink".  They weren't being used anymore.
+
+2011.07.08:
+- Updated the RTSP server implementation to check the "Content-Length:" header - if present - in incoming requests.  Most commands
+  don't include extra data after the <CR><LF><CR><LF>, and thus don't need a "Content-Length:" header.  However, two commands
+  - GET_PARAMETER and SET_PARAMETER - include extra data, and thus have a "Content-Length:" header.  We now check this value,
+  to make sure that we've received all of the required data for each request.
+  (Thanks to Matt Schuckmannn for reporting this issue.)
+
+2011.07.06:
+- Modified the change to "ByteStreamFileSource" that we made in version 2011.06.12.  We now call "read()" only if we know that
+  the underlying file is non-seekable.  Otherwise - if the file is seekable - we call "fread()", as we did prior to 2011.06.12.
+  (Reading from the file using "read()" doesn't work properly if we're also seeking within the file.
+  This is why Transport Stream 'trick play' got broken by 2011.06.12, but should be working again now.)
+
+2011.07.05:
+- Updated "MPEG2IndexFromTransportStream" to make "MPEG2TransportStreamIndexer" more robust when it sees PCR timestamps decreasing
+  in time (something that shouldn't happen).  (Thanks to Mojtaba Nouri for providing an example Transport Stream file that
+  illustrates this.)
+- Fixed a bug in "MPEG2IndexFromTransportStream" that could cause the "MPEG2TransportStreamIndexer" utility to hang when it
+  saw bogus data appear before a MPEG system code.  (Thanks to Julian Scheel for reporting this issue.)
+- Modified the "BasicTaskScheduler" implementation to add "dumySocket" only to "fReadSet", but not to "fWriteSet" or "fExceptionSet".
+  This should continue to work around the Windows bug (where "select()" returns an error if no sockets are present in "fReadSet"),
+  but without causing "select()" to keep returning unnecessarily (chewing up CPU).  (Thanks to Matt Schuckmann for reporting this.)
+- We now make all files in the source code distribution read-only, by default.  Developers can, of course, change the permissions
+  of any of these files to make them writeable, but having them be read-only by default helps emphasize that modifying the
+  supplied source code is discouraged.  Instead, developers should - if possible - extend the supplied source code using
+  C++ subclassing.  For more information, see the FAQ: http://www.live555.com/liveMedia/faq.html#modifying-and-extending
+  
+
+2011.06.16:
+- Updated "AC3AudioRTPSink" and "AC3AudioRTPSource" to conform to RFC 4184, which defines the RTP payload format for AC-3 audio.
+  Previously, we were using a different, incompatible payload format (that had been defined by an initial draft document, but
+  which differed from that defined in the final RFC.  Unfortunately, this means that older clients that use our code
+  - including existing binary versions of VLC and MPlayer - will no longer be able to play AC-3/RTP streams from our server
+  (until they are rebuilt using this newest version of our library).
+- Updated "AC3AudioStreamFramer" - and added a new class "AC3AudioFileServerMediaSubsession" - to support streaming from an AC-3
+  audio file.  We also added this support to the "testOnDemandRTSPServer" demo application, and to the "LIVE555 Media Server"
+  (currently just the source code; not the prebuilt binary versions).
+  (Thanks to Ashwani Kathuria for suggesting this.)
+- Moved the definition of "class StreamState" from "OnDemandServerMediaSubsession.cpp" to "OnDemandServerMediaSubsession.hh".
+  Even though "class StreamState" is used only internally, in the implementation of "OnDemandServerMediaSubsession", moving its
+  definition to the header file makes it possible for subclasses of "OnDemandServerMediaSubsession" to access it.
+
+2011.06.14a:
+- Removed some junk (debugging) files that had accidentally been left in the "testProgs/" directory.
+
+2011.06.14:
+- Fixed a race condition in "H264VideoFileServerMediaSubsession" and "MPEG4VideoFileServerMediaSubsession" that could have been
+  triggered when two separate clients tried to stream the same file concurrently.  (Thanks to Bruno Abreu for reporting this.)
+- Fixed a minor bug in "Authenticator::operator=()": we were not freeing the LHS object's memory before doing the
+  assignment.  (Thanks to Sawan Das for noting this.)
+- Updated "config.iphoneos" to change LIBRARY_LINK from "ar cr " to "libtool -s -o ", just as we did for "config.macosx" in the
+  previous release.
+
+2011.06.12:
+- Updated the RTCP implementation to (if we're a SSM source) reflect incoming RTCP packets back to the multicast group
+  *only* if the packet originated from another host.  This means that we won't reflect packets that come from other
+  processes on our own host.  The reason for this is that we can't reliably distinguish such packets from packets that were
+  actually looped back from us.  (We must not 'reflect' such packets, otherwise we risk a packet storm.)
+- Updated the "ByteStreamFileSource" code to make the underlying socket non-blocking.  We also read data using "read()"
+  rather than "fread()", to eliminate blocking (if READ_FROM_FILES_SYNCHRONOUSLY is not defined).  (This change should
+  affect only reading from pipes, not regular files.)  (Thanks to Tyson Wiser for noting this issue.) 
+- Updated the "DelayQueue" destructor to make sure that any remaining delay queue entries are destroyed.
+  (Thanks to "Mr. Xiao" and Luke Kucalaba for (independently) reporting this issue.)
+- Updated "config.macosx" to change LIBRARY_LINK from "ar cr " to "libtool -s -o ", because someone reported that "ar"
+  didn't work for them.
+- Added support for receiving the "audio/EAC3" RTP payload format (which is handled the same way as "audio/AC3").
+  (Thanks to Gregory McGarry for the patch.)
+
+2011.05.25:
+- Fixed a bug in "RTSPClient" which was causing clients to crash if servers returned a 401 error code, but without a
+  "WWW-Authenticate:" header.  (Thanks to Sebastien Escudier for reporting this.)
+
 2011.03.14:
 - Updated the "MPEG2TransportFileServerMediaSubsession" to use the "streamDuration" parameter (if >0.0) to limit
   the number of Transport Packets that are streamed from the source file.  (This happens only if the file is indexed.)

-- 
liblivemedia packaging



More information about the pkg-multimedia-commits mailing list