[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