forked from pool/live555
* Updated "ServerMediaSession::generateSDPDescription()" to treat "time_t" as (long long). OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/live555?expand=0&rev=81
1613 lines
79 KiB
Plaintext
1613 lines
79 KiB
Plaintext
-------------------------------------------------------------------
|
|
Sat Aug 31 16:01:02 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
|
|
|
- update to 2024-08-01:
|
|
* Updated "ServerMediaSession::generateSDPDescription()" to
|
|
treat "time_t" as (long long).
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Jul 18 14:19:57 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
|
|
|
- update to 2024-06-26:
|
|
* Updated the "OnDemandServerMediaSubsession" implementation to
|
|
output an error message if the "sink->startPlaying()" call failed
|
|
(e.g., due to its source not being compatible with the sink).
|
|
This makes some common errors (e.g, a proper 'framer' not
|
|
being used) easier to detect.
|
|
- update to 2024-05-30:
|
|
* Fixed a mistake that caused the config file
|
|
"config.raspberrypi" to not appear in the distribution.
|
|
- update to 2024-05-15:
|
|
* Added a new config file "config.raspberrypi" that is known to
|
|
work for building the code on/for a Raspberry Pi 5.
|
|
- update to 2024-05-05:
|
|
* Updated "QuickTimeFileSink" to add support for recording H.265
|
|
video streams. (This is not fully working yet; it appears to
|
|
have some bugs.)
|
|
- update to 2024-04-19:
|
|
* Updated "MPEG2TransportStreamFramer" to ignore big jumps (2x or
|
|
more) in the estimate for the duration of each Transport
|
|
packet.
|
|
This is likely caused by an unexpected jump in the PCR (not
|
|
indicated by "discontinuity_indicator").
|
|
- update to 2024-03-08:
|
|
* Changed "ServerTLSState::setup()" (in "TLSState.cpp") to call
|
|
"SSL_CTX_use_certificate_chain_file()" instead of
|
|
"SSL_CTX_use_certificate_file()", to allow the server operator to
|
|
specify a chain of certificates, rather than just one.
|
|
- update to 2024.02.28:
|
|
* Updated the code for "dateHeader()" (in "RTSPCommon.cpp") to
|
|
avoid using "strftime()", because that can produce a localized
|
|
date string that violates the RTSP specification
|
|
(which uses section 3.3.1 of RFC 2068 (the HTTP/1.1
|
|
specification) to define the "Date:" header).
|
|
- update to 2024.02.23:
|
|
* Updated the code for "dateHeader()" (in "RTSPCommon.cpp") to use
|
|
"NULL" instead of "nullptr"; the latter was causing compilation
|
|
problems for someone.
|
|
- update to 2024.02.15:
|
|
* Updated the RTCP implementation so that reception stats for a
|
|
SSRC are no longer deleted, even if a SSRC is reaped due to RTCP
|
|
inactivity (no RTCP "SR" reports received recently).
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Jul 18 14:17:02 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
|
|
|
- update to 2024.
|
|
|
|
-------------------------------------------------------------------
|
|
Fri Mar 1 10:52:02 UTC 2024 - pgajdos@suse.com
|
|
|
|
- Use %autosetup macro. Allows to eliminate the usage of deprecated
|
|
%patchN
|
|
|
|
-------------------------------------------------------------------
|
|
Sun Jan 14 10:08:15 UTC 2024 - Takashi Iwai <tiwai@suse.com>
|
|
|
|
- update up to 2023.11.30:
|
|
* In the implementation of the "MPEGVideoStreamFramer" class, gave
|
|
"TimeCode::operator==()" the "const" qualifier, to make some
|
|
compilers happy.
|
|
* Performed the annual update of the copyright years near the start
|
|
of each file
|
|
- update to 2023.11.08:
|
|
* Changed the signature to the virtual function
|
|
"getRTPSinkandRTCP()" (in "ServerMediaSubession", and its subclasses
|
|
"OnDemandServerMediaSession" and "PassiveServerMediaSubsession")
|
|
to make its 'result' arguments "rtpSink" and "rtcp" no longer "const *".
|
|
There was no real reason to make those "const *".
|
|
- update to 2023.11.07:
|
|
* In the class "GenericMediaServer", made the variables
|
|
"fServerMediaSessions",
|
|
"fClientConnections", and "fClientSessions" 'protected' rather
|
|
than 'private', to allow subclasses to access them if desired.
|
|
- update to 2023.10.30:
|
|
* Fixed a bug in "deleteEventTrigger()" that had accidentally been
|
|
introduced during the change to 'event trigger' implementation
|
|
back in June.
|
|
- update to 2023.07.24:
|
|
* Updated the event trigger implementation once again, to allow for
|
|
the possibility of developers redefining MAX_NUM_EVENT_TRIGGERS
|
|
(it must always be <= the number of bits in an "EventTriggerId",
|
|
though.
|
|
- update to 2023.06.20:
|
|
* Updated the event trigger implementation again - in the case where
|
|
"NO_STD_LIB" is defined. In this case,
|
|
"fTriggersAwaitingHandling" is implemented as an array of "Boolean
|
|
volatile"s, rather than as a 32-bit bitmap. This should make
|
|
'race conditions' less likely even if "NO_STD_LIB" is defined
|
|
(though you should use the preferred, default implementation -
|
|
that uses an array of "std::atomic_flag"s - if possible).
|
|
- update to 2023.06.16:
|
|
* Changed the (default) implementation of 'event triggers' in
|
|
"BasicTaskScheduler" to implement "fTriggersAwaitingHandling"
|
|
using "std:atomic_flag"s, rather than as a bitmap.
|
|
This should overcome 'race conditions' that some users experienced
|
|
when calling "triggerEvent()" from a non-LIVE555 thread.
|
|
* Note that this is the first time the LIVE555 code has required the
|
|
C++ standard library.
|
|
(If you cannot use the C++ standard library, then you can compile
|
|
the code - but getting the old behavior - by defining "NO_STD_LIB".)
|
|
* Minor change to "RTSPCommon.cpp" to overcome a compilation error
|
|
in XCode on Mac OS X.
|
|
- update to 2023.06.14:
|
|
* Fixed a bug in the Matroska file parsing code that could sometimes
|
|
cause a 'use after free' error. (bsc#1218758, CVE-2023-20573)
|
|
- update to 2023.06.10:
|
|
* Minor change to "GroupsockHelper.cpp" to overcome a compilation
|
|
error in XCode on Mac OS X.
|
|
- update to 2023.06.08:
|
|
* Updated the "dateHeader()" function in "RTSPCommon.cpp" to use
|
|
"gmtime_r()" instead of the older, non-thread-safe "gmtime()".
|
|
- Applied workarounds for the build error with atomic_flag test
|
|
|
|
-------------------------------------------------------------------
|
|
Mon May 29 19:32:44 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
|
|
|
- update to 2023.5.10:
|
|
* Fixed a minor memory leak in the "RTSPServer" code.
|
|
* Calls to "send()" and "sendto()" now explicitly take
|
|
"MSG_NOSIGNAL" rather than 0 as the 'flags' parameter.
|
|
In most systems, 0 seems to work, but apparently not in
|
|
Debian Linux.
|
|
|
|
-------------------------------------------------------------------
|
|
Sat Jan 21 12:18:32 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
|
|
|
- update to 2023.01.19:
|
|
- By default, we no longer compile "groupsock/NetAddress.cpp" for Windows to use
|
|
"gethostbyname()", because of a report that this breaks IPv6 name resolution.
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Jan 16 07:38:03 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
|
|
|
- update to 2023.01.11:
|
|
* Updated the "BasicTaskScheduler"/"DelayQueue" implementation to make the 'token counter'
|
|
a field of the task scheduler object, rather than having it be a static variable.
|
|
This avoids potential problems if an application uses more than one thread (with each thread
|
|
having its own task scheduler).
|
|
|
|
-------------------------------------------------------------------
|
|
Fri Dec 2 21:59:44 UTC 2022 - Dirk Müller <dmueller@suse.com>
|
|
|
|
- update to 2022.12.01:
|
|
- Yet another fix to the previous fix for RTSP-over-HTTP streaming.
|
|
- The previous version's fix to "RTSPClient" (for RTSP-over-HTTP streaming) was incomplete.
|
|
This should fix it for real.
|
|
- Fixed a bug in "RTSPClient" that would cause RTSP-over-HTTP streaming over TLS to
|
|
sometimes fail. (Thanks to Johannes Gajdosik for reporting this.)
|
|
- Fixed a bug that would cause a RTSP server to use an incorrect URL if it accepted connections
|
|
via TLS, but *without* streaming SRTP.
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Nov 22 20:26:02 UTC 2022 - Dirk Müller <dmueller@suse.com>
|
|
|
|
- update to 2022.11.19:
|
|
- Added a new global variable "ReceivingInterfaceAddr6" (analogous to the existing
|
|
variable "ReceivingInterfaceAddr" for IPv4) to allow applications to optionally
|
|
change the default receiving address for IPv6.
|
|
|
|
-------------------------------------------------------------------
|
|
Sun Oct 2 12:37:44 UTC 2022 - Dirk Müller <dmueller@suse.com>
|
|
|
|
- update to 2022.10.01:
|
|
- Updated the previous revision so that the virtual function "specialHandlingOfAuthenticationFailure()"
|
|
is now called only if there is an actual authentication failure - not on the first time that
|
|
we send back a "401 Unauthorized" response.
|
|
- Added a new virtual function "specialHandlingOfAuthenticationFailure()" to "RTSPServer" to
|
|
allow a subclassed "RTSPServer" to take special action (e.g., statistics logging)
|
|
whenever an authentication failure occurs.
|
|
|
|
-------------------------------------------------------------------
|
|
Fri Jul 22 22:01:20 UTC 2022 - Dirk Müller <dmueller@suse.com>
|
|
|
|
- update to 2022.07.14:
|
|
* use SHA-1 rather than MD5 to hash the latest tarball of our code
|
|
|
|
-------------------------------------------------------------------
|
|
Fri Jun 24 12:15:38 UTC 2022 - Dominique Leuenberger <dimstar@opensuse.org>
|
|
|
|
- Update to version 2022.06.16:
|
|
+ Both our RTSP client and RTSP server implementations now
|
|
support (optional) RTSP-over-HTTPS streaming, when
|
|
RTSP-over-TLS would otherwise be available.
|
|
- Changes from version 2022.06.14:
|
|
+ Added optional support (via #ifdefs) to the
|
|
"testOnDemandRTSPServer" demo application for streaming via
|
|
RTSPS (RTSP-over-TLS) and optionally SRTP (encrypted RTP/RTCP).
|
|
To use this, you would need to define SERVER_USE_TLS, and
|
|
PATHNAME_TO_CERTIFICATE_FILE and PATHNAME_TO_PRIVATE_KEY_FILE.
|
|
|
|
-------------------------------------------------------------------
|
|
Wed May 4 20:28:27 UTC 2022 - Christophe Giboudeaux <christophe@krop.fr>
|
|
|
|
- Update to 2022.04.26:
|
|
* Ensure that we don't call "delete[]" on an uninitialized
|
|
pointer.
|
|
- Changes from version 2022.04.15:
|
|
* Fixed a "fprintf()" argument-order-evaluation bug in the
|
|
"mikeyParse" demo application.
|
|
- Changes from version 2022.04.12:
|
|
* Updated the "openRTSP" application (RTSP command-line client)
|
|
to add an option '-L', meaning: receive only an "application"
|
|
(e.g., 'metadata') track, if present, outputting the data to
|
|
'stdout'.
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Feb 15 15:50:24 UTC 2022 - Dominique Leuenberger <dimstar@opensuse.org>
|
|
|
|
- Update to version 2022.02.07:
|
|
+ Updated the SRTP packet sending code in "MultiFramedRTPSink.cp"
|
|
to not allocate a variable-sized buffer on the stack, because
|
|
some compilers can't handle this.
|
|
+ Ensure that RTSP servers that serve SRTP do not also support
|
|
streaming over the TCP connection, because that would add extra
|
|
overhead for no benefit.
|
|
- Changes from version 2022.01.21:
|
|
+ Fixed a bug in the "groupsock" library that could cause
|
|
outgoing RTP packets to get duplicated when a RTSP "PLAY"
|
|
command is sent after a "PAUSE".
|
|
- Changes from version 2022.01.20:
|
|
+ More updates to the code for optional server SRTP streaming.
|
|
- Changes from version 2022.01.17:
|
|
+ More updates to the code in preparation for optional server
|
|
SRTP streaming.
|
|
- Changes from version 2022.01.11:
|
|
+ Fixed a minor memory leak in "RTSPClient" when receiving a SRTP
|
|
stream.
|
|
+ Updates to "RTPSink" in preparation for optional server SRTP
|
|
streaming.
|
|
- Changes from version 2022.01.06:
|
|
+ Made "GenericMediaServer::addServerMediaSubsession()" a virtual
|
|
function, and redefine it in the subclass "RTSPServer" to call
|
|
the base function, then set the "ServerMediaSubsession"s
|
|
"streamingIsEncrypted" flag (if the RTSP server is streaming
|
|
SRTP).
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Dec 20 12:50:52 UTC 2021 - Dominique Leuenberger <dimstar@opensuse.org>
|
|
|
|
- Update to version 2021.12.18:
|
|
+ Fixed a bug in the way that "RTSPClient" handles its two
|
|
separate TCP connections when it does RTSP-over-HTTP.
|
|
+ Updated "RTPInterface::sendDataOverTCP()" so that if it's
|
|
necessary to do a blocking send(), we call
|
|
"makeSocketNonBlocking()" immediately after the call to
|
|
"send()".
|
|
+ Performed the annual update of the copyright years near the
|
|
start of each file.
|
|
|
|
-------------------------------------------------------------------
|
|
Sat Dec 18 19:18:26 UTC 2021 - Dirk Müller <dmueller@suse.com>
|
|
|
|
- update to 2021.12.07:
|
|
- Added #ifndef NO_OPENSSL/#endif around "#include <openssl/err.h>" in
|
|
"liveMedia/TLSState.cpp", so that the code will compile if you're compiling
|
|
with no OpenSSL headers, and NO_OPENSSL
|
|
defined.
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Dec 6 09:04:32 UTC 2021 - Dirk Müller <dmueller@suse.com>
|
|
|
|
- update to 2021.11.23:
|
|
* Updated the "RTSPServer::setTLSState()" function to take an optional
|
|
parameter "weServeSRTP". For now, the default value of this parameter is
|
|
False, but it will get changed to True later, when we implement server-side
|
|
SRTP.
|
|
* Updated the RTSP server implementation to (optionally) support connections via TLS.
|
|
* Updated the "TLSState" interface and implementation to (1) reduce the
|
|
amount of stuff that the compiler gets to see if you're compiling with
|
|
NO_OPENSSL defined, and (2) add a new subclass "ServerTLSState" that
|
|
will eventually be used to implement optional TLS connections to our RTSP server.
|
|
* Split the "TLSState" class into two classes: "TLSState" (an abstract base
|
|
class), and "ClientTLSState" (a subclass). This is in preparation for later defining
|
|
second subclass "ServerTLSState" that will eventually be used to implement TLS connections
|
|
in our RTSP server.
|
|
* Updated the implementation of AES encryption/decryption (used by our client SRTP
|
|
implementation) to use the new OpenSSL EVP interface. This makes it possible to
|
|
use hardware acceleration (e.g., AES-NI), when it is available.
|
|
* Updated the "RTSPClient"s implementation of receiving RTP/RTCP-over-TCP so
|
|
that it will also work over a RTSP-over-TLS (including RTSPS) connection.
|
|
* Fixed a bug in "MatroskaFileParser" that could cause delivery of data to a downstream object
|
|
that wasn't expecting it (potentially causing an invalid memory access).
|
|
* The final (I hope!) update to eliminate a "depends on uninitialised value"
|
|
report from 'valgrind'.
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Aug 23 14:46:03 UTC 2021 - Fusion Future <qydwhotmail@gmail.com>
|
|
|
|
- Update to 2021.08.23:
|
|
* Updated the "readSocket()" code in "GroupsockHelper.cpp" yet
|
|
again to try to eliminate another (alleged) "depends on
|
|
uninitialised value" report from 'valgrind'.
|
|
(If, after this, you still see this, then your implementation
|
|
of "recvfrom()" is broken.)
|
|
- Changes in 2021.08.19:
|
|
* Updated the "readSocket()" code in "GroupsockHelper.cpp" to
|
|
eliminate another possible "depends on uninitialised value"
|
|
report from 'valgrind'.
|
|
- Changes in 2021.08.18:
|
|
* Updated the "readSocket()" code in "GroupsockHelper.cpp" to
|
|
eliminate a "depends on uninitialised value" report from
|
|
'valgrind'.
|
|
- Changes in 2021.08.17:
|
|
* Updated the 'groupsock' "setPortNum()" function to not rely
|
|
upon the "ss_family" family field, in case it's uninitialized.
|
|
- Changes in 2021.08.14:
|
|
* Fixed a minor bug in the previous release ("delete" should have
|
|
been "delete[]")
|
|
- Changes in 2021.08.13:
|
|
* Fixed a bug in "MPEG1or2Demux" that could cause a 'reading
|
|
twice at the same time" abort when streaming from a MPEG
|
|
Program Stream file. (boo#1189726, CVE-2021-39283)
|
|
* Fixed a potential memory leak in "AC3AudioStreamFramer".
|
|
(boo#1189725, CVE-2021-39282)
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Aug 12 00:38:24 UTC 2021 - Fusion Future <qydwhotmail@gmail.com>
|
|
|
|
- Update to 2021.08.09:
|
|
- Fixed a bug in the MPEG-1 or 2 file server demultiplexors that
|
|
could cause a RTSP server to crash if it received successive
|
|
RTSP "SETUP" commands for the same track. (Thanks to Ba
|
|
Jinsheng for reporting this.)(boo#1189352, CVE-2021-38381)
|
|
- Update to 2021.08.06:
|
|
- Fixed a bug in the Matroska and Ogg file server demultiplexors
|
|
that could cause a RTSP server to crash if it received
|
|
successive RTSP "SETUP" commands for the same track. (Thanks
|
|
to Ba Jinsheng for reporting this.)(boo#1189353, CVE-2021-38382)
|
|
- Update to 2021.08.04:
|
|
- In the "MP3FileSource" implementation, we no longer do a
|
|
recursive call to "doEventLoop()" when attempting to
|
|
synchronously read from a MP3 file. This avoids a possible
|
|
stack overflow in the RTSP server if multiple concurrent
|
|
requests are made. (Thanks to Ba Jinsheng for reporting this.)
|
|
The server still does some synchronous reads, when
|
|
initializing, and when parsing MP3 frame headers. This should
|
|
be fixed sometime in the future. (boo#1189351, CVE-2021-38380)
|
|
- Update to 2021.07.20:
|
|
- If a "RTSPClient" receives a response to a RTSP "PLAY" that
|
|
changes the 'scale()' or 'speed()' of the whole session, then
|
|
those parameters also need to be changed in each subsession (as
|
|
that inheritance doesn't happen automatically). (Thanks to a
|
|
developer in China for reporting this.)
|
|
- Update to 2021.07.10:
|
|
- Updated "H264or5VideoStreamFramer.cpp" once again to set the
|
|
default value of "DeltaTfiDivisor" to 2.0 for H.265, and 1.0
|
|
for everything else. (This fixes the frame rate for another
|
|
stream supplied by Paul Westlund.)
|
|
- Update to 2021.06.29:
|
|
- In the proxy server implementation, if a client closes one
|
|
substream, but there are still other clients receiving other
|
|
substream(s), then we no send a single-track RTSP "PAUSE"
|
|
command downstream, because some back-end servers might handle
|
|
that by pausing all tracks of the stream. So now, in this
|
|
case, we don't send a RTSP "PAUSE" command at all. (Thanks to
|
|
Jose Maria Infanzon for noting this issue.)
|
|
- Update to 2021.06.25:
|
|
- Updated "H264or5VideoStreamFramer.cpp" to set the default value
|
|
of "DeltaTfiDivisor" to 1.0 (rather than 2.0), and to assume a
|
|
frame rate of 30 fps (rather than 25 fps) if there is no VPS or
|
|
SPS NAL unit that specifies a different frame rate. This seems
|
|
to work the best for most raw H.264 and H.265 video streams.
|
|
(Thanks to Paul Westlund for supplying an example file to
|
|
motivate this.)
|
|
- Change the so version of libliveMedia to 97
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Jun 17 15:19:36 CEST 2021 - tiwai@suse.de
|
|
|
|
- Update to 2021.05.22:
|
|
lots of fixes and updates, including the security fix for
|
|
CVE-2021-28899 boo#1185874
|
|
See the list in http://live555.com/liveMedia/public/changelog.txt
|
|
- Change the so version of libliveMedia to 94, libgroupsock to 30
|
|
|
|
-------------------------------------------------------------------
|
|
Sun Oct 18 17:54:57 UTC 2020 - Dirk Mueller <dmueller@suse.com>
|
|
|
|
- update to 2020.10.16:
|
|
- Changed "TLSState::read()" to treat any "SSL_read()" result of <=0 as if the
|
|
TLS connection has closed (unless the error was SSL_ERROR_WANT_READ).
|
|
This fixes a problem that could cause 100% CPU usage in RTSP client applications.
|
|
(Thanks to Larry Wu for reporting this.)
|
|
- Updated "TLSState::setup()" to use "TLS_client_method()" instead of the (deprecated)
|
|
"SSLv23_client_method()".
|
|
|
|
-------------------------------------------------------------------
|
|
Sat Oct 3 15:07:23 UTC 2020 - Dirk Mueller <dmueller@suse.com>
|
|
|
|
- update to 2020.08.19:
|
|
- Fixed a bug in "QuickTimeFileSink" that could cause malformed "esds" atoms to be
|
|
generated. (Thanks to Chris Paucar for reporting this issue.)
|
|
- In "MPEG2TransportStreamFromESSource.cpp", changed the name of the constant LOW_WATER_MARK
|
|
to TS_FROM_ES_LOW_WATER_MARK, and "#ifndef"d it, so that, if you wish, you can redefine it
|
|
at compile time.
|
|
- Fixed a bug in the handling of pausing, when streaming from (multi-track) Matroska files.
|
|
- Fixed another bug in the handling of seeking within Matroska files.
|
|
- Fixed a bug in the handling of seeking within Matroska files.
|
|
(Thanks to Jim Ham for reporting this problem.)
|
|
- Changed the parameter signature of the "RawVideoRTPSink" constructor and "createNew()"
|
|
functions so that the "width" parameter comes before the "height" parameter. This order
|
|
- "width", "height" - is more common, and is the order used when these parameters are
|
|
defined in RFC 4175.
|
|
IMPORTANT NOTE: Because the types of these two parameters are the same, existing application
|
|
code that uses "RawVideoRTPSink" will compile without error; however, it will not work
|
|
properly unless the order of the parameters in the call to "RawVideoRTPSink::createNew()"
|
|
is changed.
|
|
- More cleanup of the implementation of "RawVideoRTPSink".
|
|
- Cleaned up the implementation of "RawVideoRTPSink".
|
|
- Updated the "RawVideoRTPSource" implementation to not set "fCurrentPacketCompletesFrame"
|
|
until we are processing the last line in the packet.
|
|
(Thanks to Andrey Lisovoy for reporting this issue.)
|
|
- Fixed a potential buffer overflow bug in the server handling of a RTSP "PLAY" command,
|
|
when the command specifies seeking by absolute time.
|
|
(Thank to Xiaobo Xiang for reporting this.)
|
|
- Fixed a memory leak in the "sha1()" function (a "EVP_MD_CTX" object was not being deleted).
|
|
(Thanks to Amir Perlman for reporting this.)
|
|
- Moved all definitions of PREFIX from "Makefile.tail" files to "Makefile.head" (so that
|
|
it can be redefined by a "config.*" file, if desired.
|
|
Also changed the definition of EXE in "config.mingw" to be ".exe".
|
|
(Thanks to Eric Beuque for this suggestion.)
|
|
- Fixed a typo in the previous release that could cause a compilation problem for some
|
|
developers. (Thanks to Eric Beuque for reporting this.)
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Jun 4 14:33:03 UTC 2020 - Dominique Leuenberger <dimstar@opensuse.org>
|
|
|
|
- Update to version 2020.05.15:
|
|
+ Added a new filter class "ADTSAudioStreamDiscreteFramer" that
|
|
prepends ADTS headers to incoming AAC audio frames. This makes
|
|
the AAC audio playable (by media players).
|
|
+ Updated "openRTSP" to use a "ADTSAudioStreamDiscreteFramer"
|
|
when outputting a AAC audio stream.
|
|
+ Updated the "LIVE555 HLS Proxy" to support AAC audio tracks
|
|
(as well as H.264/5 video).
|
|
- Changes from version 2020.05.14:
|
|
+ Updated "H264or5VideoStreamDiscreteFramer" to add VPS,SPS,PPS
|
|
NAL units (if known) to the output stream, each time an
|
|
"access_unit_delimiter" NAL unit is added. This makes it more
|
|
likely that the Transport Stream segments produced by the
|
|
"LIVE555 HLS Proxy" will be understandable by a client browser.
|
|
+ Added support for H.265 video streams to the "LIVE555 HLS Proxy".
|
|
- Changes from version 2020.05.13:
|
|
+ Made the "MPEG2TransportStreamMultiplexor" segmentation mechanism
|
|
(used by "HLSSegmenter") more robust in case the Transport
|
|
Stream PTS is not monotonic non-decreasing.
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Apr 28 16:01:13 UTC 2020 - Dominique Leuenberger <dimstar@opensuse.org>
|
|
|
|
- Update to version 2020.04.24:
|
|
+ Fixed an apparent bug in "RTSPClient" that was causing it to
|
|
not always send an "Authorization:" header when sending a RTSP
|
|
"OPTIONS" command.
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Apr 23 05:12:15 UTC 2020 - munix9@googlemail.com
|
|
|
|
- Added pkgconfig(openssl) as a requirement for the devel package:
|
|
iveMedia/TLSState.hh #includes openssl/ssl.h.
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Apr 14 13:41:31 UTC 2020 - munix9@googlemail.com
|
|
|
|
- Update to version 2020.04.12:
|
|
+ Updated "config.linux-with-shared-libraries"
|
|
(and "liveMedia/Makefile.tail") to ensure that "libssl" and
|
|
"libcrypto" are linked when "libliveMedia" is built.
|
|
(Thanks to Felix Kaechele for reporting this.)
|
|
- Changes from version 2020.04.06:
|
|
+ Removed support for the classes "RTSPServerSupportingHTTPStreaming"
|
|
and "TCPStreamSink".
|
|
These were being used (in the "LIVE555 Media Server") for
|
|
streaming using "HTTP Live Streaming" (HLS). This was always
|
|
a hack; it is better to use a dedicated HTTP server to serve
|
|
HLS segments, rather than trying to implement a HTTP server
|
|
(serving 'virtual HLS segments) within our own (primarily RTSP)
|
|
server.
|
|
|
|
If you are looking for HLS support, note that we provide a
|
|
source-code demo application "testH264VideoToHLSSegments" that
|
|
converts a (static) H.264 Elementary Stream file to HLS
|
|
segments, and the "LIVE555 HLS Proxy", which proxies a live
|
|
RTSP/RTP stream to HLS segments.
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Apr 2 09:55:11 UTC 2020 - Dominique Leuenberger <dimstar@opensuse.org>
|
|
|
|
- Update to version 2020.03.06 (boo#1146283, CVE-2019-15232):
|
|
+ Fixed a problem in "H264or5VideoStreamFramer.cpp" that was
|
|
allegedly causing problems compiling for Windows.
|
|
- Changes from version 2020.02.25:
|
|
+ Added full support for the "LIVE555 HLS Proxy"
|
|
- Changes from version 2020.02.24:
|
|
+ Commented out a line of code that was preventing
|
|
"RTSPClientConnection" objects from being closed when a RTSP
|
|
server handles a "TEARDOWN" command (on a RTP-over-TCP stream).
|
|
- Changes from version 2020.02.23:
|
|
+ Updated our (unicast) RTSP server implementation to handle
|
|
"PAUSE" commands by calling "stopGettingFrames()" on the input
|
|
source.
|
|
+ Fixed a bug in "H264or5VideoStreamFramer" that was causing it
|
|
to not update its presentation times properly following a pause.
|
|
+ Updated "openRTSP" to improve the handling of the "-R <port-num>"
|
|
option.
|
|
- Changes from version 2020.02.11:
|
|
+ Added support for receiving SRTP (encrypted) RTSP streams.
|
|
- For changes between 2019.06.28 and 2020.02.10, please see the
|
|
http://www.live555.com/liveMedia/public/changelog.txt.
|
|
- Rebase live555-fpic.patch.
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Jul 15 12:00:42 UTC 2019 - Dave Plater <davejplater@gmail.com>
|
|
|
|
- Update to version 2019.06.28, fixes boo#1127341 VUL-1:
|
|
CVE-2019-9215: live555: malformed headers lead to invalid memory
|
|
access in the parseAuthorizationHeader function.
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Jun 24 10:27:09 UTC 2019 - Dominique Leuenberger <dimstar@opensuse.org>
|
|
|
|
- Convert to dynamic libraries (boo#1121995):
|
|
+ Use make ilinux-with-shared-libraries: build the dynamic libs
|
|
instead of the static one.
|
|
+ Use make install instead of a manual file copy script: this
|
|
also reveals that we missed quite a bit of code to be installed
|
|
before.
|
|
+ Split out shared library packages according the SLPP.
|
|
|
|
-------------------------------------------------------------------
|
|
Thu May 16 12:38:46 UTC 2019 - Martin Liška <mliska@suse.cz>
|
|
|
|
- Use FAT LTO objects in order to provide proper static library.
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Feb 4 12:59:58 UTC 2019 - atoptsoglou@suse.com
|
|
|
|
- update to 2019.02.03:
|
|
* CVE-2019-7314:A use-after-free error causes the RTSP server to
|
|
crash (boo#1124159)
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Jan 15 11:04:08 UTC 2019 - astieger@suse.com
|
|
|
|
- update to 2018.12.14:
|
|
* Add support for sending (and handling) RTCP "BYE" packets that
|
|
contain a 'reason' string (breaking api change)
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Jan 15 10:58:12 UTC 2019 - astieger@suse.com
|
|
|
|
- update to 2018.11.26:
|
|
* CVE-2019-6256: DoS vulnerability in the server implementation
|
|
of RTSP-over-HTTP (boo#1121892)
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Nov 6 09:53:16 UTC 2018 - Mathias Homann <Mathias.Homann@opensuse.org>
|
|
|
|
- Update to 2018.10.17
|
|
* CVE-2018-4013: remote code execution vulnerability (boo#1114779)
|
|
* changes: see http://www.live555.com/liveMedia/public/changelog.txt
|
|
* removed xlocale.patch - xlocale.h is now conditionally included, only when
|
|
required. Upstream fix.
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Nov 1 12:27:27 UTC 2017 - Mathias.Homann@opensuse.org
|
|
|
|
- Update to 2017.10.28
|
|
2017.10.28:
|
|
- Fixed the handling of the LIVE555 Proxy Server's "-u <username> <password>" command-line option if
|
|
the "REGISTER" command is also implemented (i.e., with "-R"). Now, when we handle "REGISTER",
|
|
the <username> and <password> are used to access the REGISTER'ed back-end stream, if necessary.
|
|
- Changed the server handling of the RTSP "REGISTER" command to (if "reuseConnection" is True) delay
|
|
a short period of time (100ms) between replying to the "REGISTER" command, and actually
|
|
handling it. This is intended to reduce/avoid the possibility of a subsequent "DESCRIBE" command
|
|
ending up in the client ("REGISTER" sender)'s buffer, before the socket gets reused for handling
|
|
incoming RTSP commands. (Thanks to Durgesh Tanuku for noting this issue.)
|
|
- Made a change to "SIPClient" to better handle Asterisk SIP servers with authentication.
|
|
(Thanks to Rus.)
|
|
|
|
2017.09.12:
|
|
- Made some improvements/bug fixes to AVI indexes in "AVIFileSink".
|
|
(Thanks to Victor V. Vinokurov.)
|
|
- Updated the handling of the "writeTimeoutInMilliseconds" parameter in the "makeSocketBlocking()"
|
|
function to work correctly on Windows. (Thanks to Jeff Shanab for noting this issue.)
|
|
- Added support for adding Opus audio to MPEG Transport Streams. This is done by setting the
|
|
"mpegVersion" parameter to 3 in "MPEG2TransportStreamFromESSource::addNewAudioSource()" or
|
|
"MPEG2TransportStreamMultiplexor::handleNewBuffer()".
|
|
(Thanks to Praveen Mathad for suggesting this.)
|
|
|
|
2017.07.18:
|
|
- Updated "BitVector" to support a signed version of "get_expGolomb()", and fixed our H.264/265
|
|
parsing code to use the signed version where appropriate.
|
|
(Thanks to Toson Huang and Long Zhang for reporting this.)
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Aug 7 12:43:41 UTC 2017 - schwab@suse.de
|
|
|
|
- xlocale.patch: don't use obsolete <xlocale.h>
|
|
|
|
-------------------------------------------------------------------
|
|
Sat Jul 8 20:15:00 UTC 2017 - jengelh@inai.de
|
|
|
|
- Replace silly -exec rm ; by -delete.
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Jul 3 09:39:00 UTC 2017 - ramaxlo@gmail.com
|
|
|
|
- Update to version 2017.06.04
|
|
2017.06.04:
|
|
* Fixed a bug in "RTPInterface::removeStreamSocket()" that could
|
|
cause not all 'TCP stream' records for a given socket number
|
|
to be removed if a TCP socket I/O error occurred (during
|
|
RTP/RTCP-over-TCP streaming). (Thanks to Gerald Hansink et al
|
|
for reporting this.)
|
|
2017.05.24:
|
|
* In "RTSPClient.cpp", moved the call to "clearServerRequestAlternativeByteHandler()"
|
|
from the "RTSPClient" destructor to the "resetTCPSockets()"
|
|
function (which is called more often). This should eliminate
|
|
a 'pointer to a deleted object' error. (Thanks to Gerald Hansink
|
|
et al for reporting this.)
|
|
2017.04.26:
|
|
* Added a new public member function "numClientSessions()"
|
|
to "GenericMediaServer" (and therefore to "RTSPServer", which
|
|
inherits from this). This allows a server to - at any time -
|
|
check how many clients are currently accessing the server.
|
|
* Updated the diagnostic output in "RTSPClient" to distinguish
|
|
between opening a new TCP socket and connect()ing on a TCP
|
|
socket. (The distinction is important for "REGISTER", which can
|
|
reuse an existing TCP socket.)
|
|
2017.04.10:
|
|
* Fixed a bug in "base64Decode()" that could be triggered
|
|
if (1) your RTSP server is streaming RTP/RTCP-over-HTTP, and (2)
|
|
the remote client sends bad Base64 data (containing an embedded '\0'
|
|
character). (Thanks to Arkady Bernov for reporting this.)
|
|
2017.01.26:
|
|
* Updated "ProxyServerMediaSession.cpp" to change all 'reset()'
|
|
operations so that they are now run as a 'scheduled task' from
|
|
the event loop - avoiding the possibility of bugs caused by
|
|
'reset()' being called while another operation is in progress.
|
|
(Thanks to Erik Montnemery for reporting this issue, and proposing a fix.)
|
|
2016.11.28:
|
|
* Our "RTSPClient" code now ignores "Connection: close" lines in
|
|
the responses to HTTP "GET" requests (that are used to set up
|
|
RTSP-over-HTTP tunneling). Because this tunneling requires that
|
|
the (separate) input and output TCP connections remain intact,
|
|
we assume that the server - if it includes such a line in the
|
|
response to a HTTP "GET" - doesn't really mean it.
|
|
(Thanks to Nguyen Viet Hung for reporting a server that does this.)
|
|
2016.11.17:
|
|
* Fixed a bug in the handling of 'APP' RTCP subpackets. (Thanks to
|
|
Frederik de Ruyck for reporting this.)
|
|
* Fixed a bug in the "StreamReplicator" code. (Thanks to Bruno Abreu
|
|
for reporting this.)
|
|
2016.11.06:
|
|
* Increase the RTSP client's socket receive buffer when we'll be
|
|
receiving RTP/RTCP-over-TCP, and increase the RTSP server's
|
|
client connection socket send buffer when it's used to
|
|
"REGISTER" a stream.
|
|
2016.11.03:
|
|
* Fixed a bug (in the sending/ handling of the "REGISTER"/"DEREGISTER"
|
|
commands) that had been accidentally introduced in version
|
|
2016.09.19. (Thanks to Ralf Globisch for noting this.)
|
|
2016.10.29:
|
|
* Performed the annual update of the copyright years and license
|
|
near the start of each file
|
|
2016.10.21:
|
|
* Changed the "RTCPInstance error" message in "RTCP.cpp" to make
|
|
it clear that the problem is caused by the remote endpoint using
|
|
a buggy version of RTP/RTCP-over-TCP streaming.
|
|
* Updated "QuickTimeFileSink" to make the various creation/modification
|
|
times relative to January 1st 1904 in UTC (as Apple recommends),
|
|
rather than in US Pacific Time.
|
|
|
|
-------------------------------------------------------------------
|
|
Sun Oct 16 12:05:45 UTC 2016 - aloisio@gmx.com
|
|
|
|
- Update to version 2016.10.11
|
|
2016.10.11:
|
|
* After building the source code, we now display a message
|
|
reminding the developer about our FAQ.
|
|
2016.09.22:
|
|
* Added a new "liveMedia" class
|
|
"MPEG2TransportStreamAccumulator" - a filter that can
|
|
be used to combine several (by default, 7) MPEG Transport
|
|
Stream 188-byte 'packets' into a larger chunk of data,
|
|
more appropriate for streaming via RTP (or raw UDP).
|
|
2016.09.19:
|
|
* Added support for an experimental RTSP "DEREGISTER"
|
|
command, which undoes the effect of a "REGISTER" command.
|
|
* Moved the REGISTER/DEREGISTER-specific functionality of
|
|
"RTSPServer.cpp" into a new file "RTSPServerRegister.cpp",
|
|
to make the base RTSP server code (in "RTSPServer.cpp")
|
|
easier to comprehend.
|
|
2016.09.12:
|
|
* Fixed "GenericMediaServer::createNewClientSessionWithId()"
|
|
to make sure that the new 'client session' object (returned
|
|
by a call to "createNewClientSession()") is not NULL
|
|
before it tries to add it to the 'fClientSessions' table.
|
|
(Thanks to Helmut Grohne for discovering this issue.)
|
|
2016.09.08:
|
|
* Updated "RTSPClient::reset()" to reset each of the 'request
|
|
queues' as well.
|
|
(Thanks to Erik Montnemery for noting a problem (with the
|
|
"LIVE555 Proxy Server") that this caused.)
|
|
* Updated "GenericMediaServer::ClientConnection::closeSockets()"
|
|
so that it doesn't try to call "closeSocket()" (=="close()")
|
|
on socket numbers <0.
|
|
2016.09.05:
|
|
* Fixed a problem whereby a 'delayed task' for a
|
|
"MPEG2TransportStreamMultiplexor" object might have gotten run
|
|
after such an object was deleted.
|
|
(Thanks to Bruno Basilio for providing debugging output to
|
|
help track this down.)
|
|
* Updated "Socket::reset()" (in "groupsock/NetInterface.cpp") so
|
|
that it doesn't try to call "closeSocket()" (=="close()") on
|
|
socket numbers <0.
|
|
* Added a comment to "UsageEnvironment/include/UsageEnvironment.hh"
|
|
to note that "triggerEvent()" should not be called with the
|
|
same 'event trigger id' from different threads.
|
|
(This was already noted in a comment in
|
|
"liveMedia/DeviceSource.cpp", but not in
|
|
"UsageEnvironment/include/UsageEnvironment.hh", which is
|
|
where "triggerEvent()" is defined.)
|
|
2016.08.27:
|
|
* Fixed a problem whereby a "Medium" object's "nextTask()"
|
|
(i.e., "fNextTask") could hold an invalid value after a
|
|
'scheduled task' has occurred (but before the next similar
|
|
task is scheduled) - which causes problems should the
|
|
"Medium" object be deleted during that window of time.
|
|
(Thanks to Helmut Grohne for noting this problem.)
|
|
* Added comments to "UsageEnvironment/include/UsageEnvironment.hh"
|
|
to make it clear that "unscheduleDelayedTask()" (or
|
|
"rescheduleDelayedTask()") must not be called on a
|
|
'scheduled task' after it has already occurred.
|
|
(Thanks to Helmut Grohne for motivating this.)
|
|
2016.08.07:
|
|
* Fixed a bug in the handling of the non-standard
|
|
"com.ses.streamID:" header (used by 'SAT>IP' servers)
|
|
that we had introduced in version 2016.01.12.
|
|
(Thanks to Yaobing Deng for noting this.)
|
|
2016.07.19:
|
|
* Fixed a bug in "RTSPServer" that could cause a crash if a
|
|
"RTSPServer" object is deleted after having been used
|
|
for RTSP-over-HTTP streaming. (Thanks to Pavel Aronov.)
|
|
* Updated "RTSPClient" to recognize a "Connection: Close"
|
|
header in a server's response. It handles this header by
|
|
closing the RTSP TCP connection (because the server is
|
|
assumed to not be using it again), so that we open a new
|
|
TCP connection for any subsequent commands.
|
|
(Thanks to Nathan (at MediaPortal) for this suggestion.)
|
|
* Made a small optimization to "RTSPServer"s handling of the
|
|
first "SETUP" command from each client. (Thanks to Maxim
|
|
Dementiev for the suggestion.)
|
|
2016.06.26:
|
|
* Added a new (public) function "canDeliverNewFrameImmediately()"
|
|
to "MPEG2TransportStreamMultiplexor".
|
|
This function may be used by a downstream reader to test
|
|
whether the next call to "doGetNextFrame()" will deliver
|
|
data immediately. It can be useful if you want to decide
|
|
whether or not to keep accumulating multiple Transport Stream
|
|
'packets' into an outgoing RTP packet.
|
|
(Thanks to Gilles Chanteperdrix for suggesting this.)
|
|
* Made a minor syntactic change to "MediaTranscodingTable.hh"
|
|
to eliminate compiler warnings.
|
|
2016.06.23:
|
|
* Changed the constant "MAX_INPUT_ES_FRAME_SIZE" to a static
|
|
member variable
|
|
"MPEG2TransportStreamFromESSource::maxInputESFrameSize"
|
|
that can, if desired, be increased at run time (before a
|
|
"MPEG2TransportStreamFromESSource" object is created).
|
|
(Thanks to Gilles Chanteperdrix for motivating this.)
|
|
2016.06.22:
|
|
* Changed "~ProxyServerMediaSession()" so that it no longer
|
|
deletes the "MediaTranscodingTable" object that it had
|
|
been passed in its constructor. (The reason for this is
|
|
that the same "MediaTranscodingTable" can be used by more
|
|
than one "ProxyServerMediaSession".)
|
|
* Made the "parseTransportHeaderForREGISTER()" function
|
|
(that's used in the "RTSPServer" implementation) non-static,
|
|
so that it can be used in other, non-RTSP server
|
|
implementations that want to handle the "REGISTER" command.
|
|
* Made the "RTPSink::SSRC()" function "public:" rather than
|
|
"protected:".
|
|
(Thanks to Jean-Luc Bonnet for this suggestion.)
|
|
2016.05.20:
|
|
* Added a new virtual function "noteLiveness()" to the
|
|
"ServerMediaSession" class. This function is called
|
|
(by a "GenericMediaServer") whenever there's 'liveness'
|
|
on a "ClientSession". The default implementation of this
|
|
function is a 'noop', but subclasses can redefine it - e.g.,
|
|
if you want to remove long-unused "ServerMediaSession"s
|
|
from the server.
|
|
* Fixed a bug in the options handling for the command
|
|
"live555ProxyServer" that could erroneously produce a
|
|
"usage" error if the '-R' option is used, but no
|
|
back-end "rtsp://" URL is given.
|
|
2016.05.18:
|
|
* Backed out the change to "MultiFramedRTPSink" that was
|
|
made in 2016.05.17; the 2016.05.16 version turned out
|
|
to be correct.
|
|
* Rearranged "#include"s to avoid an 'excessive #include
|
|
nesting' error with some old compilers.
|
|
2016.05.17:
|
|
* Made a (mostly inconsequential) fix to the previous bugfix
|
|
for "MultiFramedRTPSink".
|
|
2016.05.16:
|
|
* Fixed a bug in "MultiFramedRTPSink" that affected
|
|
subclasses that redefine "frameSpecificHeaderSize()"
|
|
(for frame-specific headers that precede multiple frames
|
|
in a RTP packet). (Currently, the only subclass that
|
|
this affected was "VorbisAudioRTPSink".)
|
|
(Thanks to Gilles Chanteperdrix for reporting this bug.)
|
|
* Made a minor update to the "ProxyServerMediaSession" code
|
|
to better support optional media transcoding.
|
|
2016.04.21:
|
|
* Made it easier to set the MTU for all outgoing RTP
|
|
packets, instead of having to call "setPacketSizes()"
|
|
after each "MultiFramedRTPSink" is created. If you wish,
|
|
you can define the compile-time constants (macros)
|
|
RTP_PAYLOAD_MAX_SIZE and (optionally) RTP_PAYLOAD_PREFERRED_SIZE
|
|
when compiling "MultiFramedRTPSink.cpp". (These constants
|
|
have default values of 1456 and 1000 respectively, just as
|
|
before.)
|
|
* Updated "GroupsockHelper.{hh,cpp}" to (supposedly) support
|
|
'MinGW' better
|
|
2016.04.01:
|
|
* Fixed a bug the "ProxyServerMediaSubsession" code that
|
|
could cause an infinite loop if the 'back-end' server was
|
|
slow to respond to "SETUP" requests.
|
|
(Thanks to Erik Montnemery for helping to debug this.)
|
|
* Added support for parsing/streaming Matroska files that
|
|
contain PCM audio tracks.
|
|
(Thanks to Michel Promonet.)
|
|
2016.03.16:
|
|
* Added some more debugging fprintf()s to the
|
|
"ProxyServerMediaSubsession" code to try to track down a
|
|
bug.
|
|
* Simplified the "genMakefiles" script (moving duplicate
|
|
code into a 'for' loop).
|
|
2016.03.14:
|
|
* Updated the proxy server implementation to better handle
|
|
'front-end' clients that have asked to stream only some
|
|
of the substreams of a multi-stream session. Now, if a
|
|
substream is closed (because all 'front-end' clients have
|
|
stopped requesting it), but other front-end clients are
|
|
still streaming other substreams, then we will send - to
|
|
the 'back-end' server - only a substream-specific "PAUSE"
|
|
command; not a "PAUSE" command for the entire stream.
|
|
(Thanks to Lakshmi Narayanan for noting this issue.)
|
|
* Added an optional "-p <RTSP-port-number>" option to the
|
|
"LIVE555 Proxy Server", to allow the user to specify a
|
|
RTSP server port number other than the standard port
|
|
numbers: 554 and 8554. (These standard port numbers are
|
|
still tried if the specified port number can't be used.)
|
|
(Thanks to Denis Genestier for this suggestion.)
|
|
2016.02.22:
|
|
* Updated the "ProxyServerMediaSession" to add a Boolean
|
|
virtual function "allowProxyingForSubsession()".
|
|
By default, this always returns True. However,
|
|
subclasses can redefine this if they wish to restrict
|
|
which subsessions of a stream get proxied - e.g., if
|
|
you want to proxy only video tracks.
|
|
* Improved the "WAVAudioFileSource" code (for parsing
|
|
WAV-format audio files) to make it more tolerant of
|
|
unusual formats.
|
|
* Made it possible to build a version of the "liveMedia"
|
|
library that doesn't contain any RTSP server code;
|
|
e.g., if you are developing only a RTSP client, and
|
|
want to save space. To do this, omit any files that
|
|
contain "Server" or "RTPSink" in their name, and define
|
|
OMIT_REGISTER_HANDLING when compiling "RTSPClient.cpp".
|
|
(Thanks to Jeff Shanab for this suggestion.)
|
|
2016.02.09:
|
|
* Added an option "-E <absolute-seek-end-time>" to
|
|
"openRTSP".
|
|
(Thanks to Hans Maes for suggesting this.)
|
|
2016.02.08:
|
|
* Fixed a bug that was causing "playSIP" to crash.
|
|
(Thanks to Vilaysak Thipavong for reporting this.)
|
|
2016.01.29:
|
|
* Updated "QuickTimeFileSink" to make it usable with non-RTP
|
|
input sources. It still needs to have a "MediaSession"
|
|
that describes the input source; however, this input source
|
|
no longer needs to be RTP; it can, instead, be a UDP or
|
|
other type of source. (Of course, audio/video synchronization
|
|
and hint tracks can't be done in this case.)
|
|
* Changed the name of a variable in the "Makefile.tail" file
|
|
for the "BasicUsageEnvironment" project, in response to
|
|
a complaint that the old name clashed with something in
|
|
some Windows development environment
|
|
2016.01.24:
|
|
* Updated "ProxyServerMediaSession.cpp" to add some
|
|
'internal error' debugging fprintf()s to try to catch a
|
|
possible bug that was reported recently.
|
|
2016.01.20:
|
|
* When a server calls "startStream()" to start a RTSP stream
|
|
for a client, we now no longer make a slight adjustment to
|
|
the RTP timestamp sequence (using the "presetNextTimestamp()"
|
|
call) if there is already another ongoing stream using the
|
|
same "RTPSink". The effect of this is only minor, but it
|
|
ensures that the addition of an addition 'destination' to
|
|
an ongoing RTSP/RTP stream does not cause any change to the
|
|
contents of the RTP/RTCP packets.
|
|
(Thanks to Erik Montnemery for noting this issue.)
|
|
2016.01.16:
|
|
* This release has no source-code changes from the previous
|
|
release. However, a test file was mistakenly left in the
|
|
previous version; this produced an excessively-large tar file.
|
|
This has now been removed.
|
|
2016.01.12:
|
|
* Added a hack to "RTSPClient" to handle the non-standard
|
|
"com.ses.streamID:" header - used by 'SAT>IP' servers -
|
|
by using its value in the 'base URL' for subsequent requests.
|
|
(Thanks to Julian Scheel for proposing this.)
|
|
2015.12.22:
|
|
* Updated "QuickTimeFileSink" to add a sanity check to try
|
|
to prevent an occasional problem with H.264 video tracks
|
|
that contain 'sync frames'.
|
|
* Updated the "config.linux-with-shared-libraries"
|
|
configuration file to use the $(CC) and $(CXX)
|
|
macros, to allow for cross-compiling. (Thanks to Michel
|
|
Promonet.)
|
|
* Updated the years in the copyright notice on each file.
|
|
2015.11.09:
|
|
* Changed the "ProxyServerMediaSession" code once again. We
|
|
backed out the changes in the previous two releases,
|
|
and now respond to failures of the back-end "SETUP"
|
|
or "PLAY" commands by doing a full reset - which involves
|
|
deleting the "ProxyServerMediaSubsession" object, and
|
|
doing another "DESCRIBE" to create a new one. However, we
|
|
can't do this immediately - because the "SETUP" and "PLAY"
|
|
commands can be sent from within
|
|
"ProxyServerMediaSubsession::createNewStreamSource()".
|
|
Instead, we wait until the next 'liveness' command, which
|
|
will get sent immediately when we return to the event loop.
|
|
* Our proxy server code no longer converts the "mode" string
|
|
to lower case before passing it to
|
|
"MPEG4GenericRTPSink::createNew()". (This turned out to
|
|
be unnecessary, and was breaking some clients that weren't
|
|
treating this string as case-insensitive when they saw it
|
|
in the stream's SDP descriptor.) (Thanks to Craig Matsuura
|
|
for noting this issue.)
|
|
2015.10.29:
|
|
* Updated the fix in the previous revision to apply to the
|
|
back-end "PLAY" command as well as the back-end "SETUP"
|
|
command, because both of these back-end commands can get
|
|
sent from within
|
|
"ProxyServerMediaSubsession::createNewStreamSource()", so
|
|
we can't allow the "ProxyServerMediaSubsession" object
|
|
to get deleted in either case.
|
|
|
|
-------------------------------------------------------------------
|
|
Fri Oct 16 20:24:23 UTC 2015 - aloisio@gmx.com
|
|
|
|
- Update to version 2015.10.12:
|
|
* The change that we made to the "ProxyServerMediaSession" code
|
|
in version 2015.07.31 (to reset the proxy server's state if
|
|
a back-end "SETUP" command fails) was too aggressive; it was
|
|
deleting the "ProxyServerMediaSubsession" object. This was
|
|
a problem, because "SETUP" commands can be called from within
|
|
"ProxyServerMediaSubsession::createNewStreamSource()".
|
|
Instead, we now deal with a failed back-end "SETUP" command
|
|
simply by resetting the 'back-end' connection. (Thanks to
|
|
Hardik Sangani for reporting this issue.)
|
|
- 2015.09.24:
|
|
* Fixed a bug in "RTSPClient" that could cause a crash if the
|
|
TCP connection was lost while resending a RTSP command.
|
|
(Thanks to ChaSeop Im for reporting this.)
|
|
* Moved some more generic 'media server' functionality from
|
|
"RTSPServer" to its parent class "GenericMediaServer".
|
|
* Added a new pure virtual function "getRTPSinkandRTCP()"
|
|
to "ServerMediaSubsession" to allow callers to get ('const')
|
|
access to a stream's "RTPSink" and/or "RTCPInstance" (and
|
|
thus their corresponding "Groupsock" objects) after the
|
|
stream has been created (using "getStreamParameters()".
|
|
* Updated "Groupsock" to allow for the possibility of there
|
|
being more than one 'destRecord' for each sessionId.
|
|
(This is something that doesn't happen in the normal case;
|
|
it's only a special case for WebRTC.)
|
|
- 2015.08.07:
|
|
* If a "RTCPInstance" happens to have both a source and a sink
|
|
(an unusual situation), we now include both "SR" and "RR"
|
|
reports in each outgoing RTCP report packet.
|
|
* When a "RTPSink" is being closed, we no longer turn off
|
|
background reading on its 'groupsock' (because, being a
|
|
"RTPSink", we never turned it on), just in case the
|
|
'groupsock' is also being shared with something else
|
|
(e.g., a "RTPSource") that does background read handling).
|
|
- 2015.08.06:
|
|
* Fixed a bug that would cause the destruction of a
|
|
"RTCPInstance" that was sharing a 'groupsock'
|
|
with a "RTPSource" (i.e., for multiplexed RTP and RTCP) to
|
|
stop the "RTPSource" from continuing to receive incoming RTP
|
|
packets. This normally wasn't a major problem, because the
|
|
destruction of the "RTCPInstance" was usually followed
|
|
immediately by the destruction of the "RTPSource".
|
|
However, it's also possible for the "RTPSource" to stay alive
|
|
long after the "RTCPInstance" is deleted; in this case things
|
|
will now work correctly.
|
|
- 2015.07.31:
|
|
* Fixed a minor memory leak in the "ProxyServerMediaSession"
|
|
code ("PresentationTimeSessionNormalizer"s and
|
|
"PresentationTimeSubsessionNormalizer"s weren't being deleted
|
|
properly). (Thanks to Dnyanesh Gate for reporting this.)
|
|
* Made the "ProxyServerMediaSession" code a bit more
|
|
bullet-proof, by resetting the 'back-end' connection if a
|
|
"SETUP" command fails. (Thanks to Craig Matsuura for providing
|
|
a real-world example of "SETUP" failing.)
|
|
* Fixed the 'estimated bitrate' values in
|
|
"testMPEG1or2VideoReceiver.cpp" and
|
|
"testMPEG2TransportReceiver.cpp" to match those in the
|
|
corresponding "test*Streamer.cpp" files.
|
|
(Thanks to Alex Anderson for reporting this.)
|
|
- 2015.07.23:
|
|
* Fixed a potential buffer overflow bug in "RTSPServer".
|
|
(Thanks to "an anonymous researcher working with Beyond
|
|
Security's SecuriTeam Secure Disclosure" for discovering this.)
|
|
- 2015.07.19:
|
|
* Fixed a bug in "RTPInterface::sendDataOverTCP()"; it was
|
|
disabling transmission on its socket if the "send()" call
|
|
failed. We now do this only if the error was not "EAGAIN".
|
|
(Thanks to Erik Oomen for bringing this to our attention.)
|
|
* Changed "QuickTimeFileSink" to try to work around an issue with
|
|
QuickTime sometimes complaining about the frame number in the
|
|
last 'sync frame' being 'out of range'.
|
|
* Changed the parameter signature for
|
|
"ProxyServerMediaSession::createNew()" (and the
|
|
"ProxyServerMediaSession" constructor) to take a
|
|
"GenericMediaServer*" rather than a "RTSPServer" as parameter.
|
|
This makes it possible to create proxy servers that use protocols
|
|
other than RTSP at the 'front-end'. (The 'back-end' protocol will
|
|
still be RTSP, however.)
|
|
* Defined a new class "MediaTranscodingTable" that can be used to
|
|
generate "FramedFilter" (subclass) objects that perform media
|
|
transcoding. Added a parameter of this type (with default value
|
|
NULL) to the "ProxyServerMediaSession" constructor and
|
|
"createNew()" function. This makes it possible to - if you wish
|
|
- add transcoding functionality to a proxy server. (This feature
|
|
is still experimental, and might be changed in the future.)
|
|
* Added optional "initialPortNum" and "multiplexRTCPWithRTP"
|
|
parameters to the "ProxyServerMediaSession" constructor - to be
|
|
passed to the "ProxyServerMediaSubsession" objects that it creates.
|
|
This allows subclasses to change these parameters if they wish.
|
|
* Updated "ProxyServerMediaSession" to make it possible for
|
|
subclasses to create subclasses of "Groupsock" and/or
|
|
"RTCPInstance", if they wish.
|
|
- 2015.06.25:
|
|
* Changed the definition of the "doEventLoop()" "watchVariable" to
|
|
make it 'volatile'. (Ditto for the "fTriggersAwaitingHandling"
|
|
field in the "BasicTaskScheduler" implementation.) This is to
|
|
alleviate a concern about aggressive optimizing compilers
|
|
possibly generating incorrect code. (Thanks to Remi
|
|
Denis-Courmont for bringing this issue to our attention.)
|
|
- 2015.06.24:
|
|
* Updated the implementation of "GenericMediaServer" to move the
|
|
code that removes and deletes all "ClientConnection",
|
|
"ClientSession", and "ServerMediaS(ubs)ession" objects from the
|
|
"GenericMediaServer" destructor to a member function "cleanup()".
|
|
This member function MUST be called from the destructor of any
|
|
subclass of "GenericMediaServer". (Putting this code in the
|
|
destructor of "GenericMediaServer" itself was a bug, because the
|
|
"ClientConnection", "ClientSession", and
|
|
"ServerMediaS(ubs)ession" objects may themselves have been
|
|
subclassed, and there may be a problem deleting them after the
|
|
"GenericMediaServer" subclass destructor has already been called.
|
|
(Thanks to Christopher Benne for noting this.)
|
|
* Fixed the way that "RTSPClient" handles responses to
|
|
"GET_PARAMETER" to properly allow for possible additional
|
|
pipelined responses appearing afterwards.
|
|
(Thanks to Paul Clark for identifying this problem.)
|
|
* Moved the "ClientSession" liveness checking/timeout mechanism
|
|
from "RTSPServer" to its new abstract base class
|
|
"GenericMediaServer". (The API and functionality of the
|
|
"RTSPServer" class remains unchanged.)
|
|
* Updated the "OnDemandServerMediaSubsession" code to make it
|
|
possible for subclasses to create and use subclasses of
|
|
"RTCPInstance".
|
|
* Undid the change that we made to "RTSPClient.hh" in the
|
|
previous version. There is no longer a demonstrated need to
|
|
make "RTSPClient::connectToServer()" virtual.
|
|
* Made a syntactic change to "MatroskaFile.cpp" to eliminate
|
|
some compiler warnings.
|
|
- 2015.06.21:
|
|
* Updated "RTSPClient" to put "port=" rather than "client_port="
|
|
in "Transport:" headers when requesting a multicast stream,
|
|
in accordance with RFC 2326.
|
|
(Thanks to Julian Scheel for noting this.)
|
|
* Updated "MultiFramedRTPSource" so that it doesn't deliver
|
|
0-length frames to the downstream object - in case the
|
|
downstream object interprets this as being an error.
|
|
(Thanks to Julian Scheel for the suggestion.)
|
|
* Made the member function "RTSPClient::connectToServer()"
|
|
virtual, in response to a request from a developer who wanted
|
|
to reimplement this in their "RTSPClient" subclass.
|
|
* Changed the "Groupsock::output()" function to no longer
|
|
take a 'TTL' parameter. (Instead, we now use the TTL (usually
|
|
255) that was provided when the "Groupsock" object was
|
|
created.)
|
|
* Cleaned up the "GroupEId" class that's used by "Groupsock".
|
|
(Previously, that class had some extra, experimental
|
|
functionality that turned out not to be useful.)
|
|
* Cleaned up the "destRecord" structure that's used in
|
|
"Groupsock" to represent the (possibly multiple) destinations
|
|
for each "Groupsock" object.
|
|
* Updated the "groupsock" library and
|
|
"OnDemandServerMediaSubsession" to better support (in some
|
|
future release) sockets whose destination endpoints are set
|
|
via STUN packet exchanges.
|
|
- 2015.06.11:
|
|
* Fixed a bug in "RTSPClient" that had accidentally been
|
|
introduced in version - 2015.06.04 that prevented "Session:"
|
|
headers from being included in some requests.
|
|
- 2015.06.10:
|
|
* Fixed the return type of the "createNewClientConnection()"
|
|
virtual function, redefined in
|
|
"RTSPServerSupportingHTTPStreaming".
|
|
* More changes to satisfy anal-retentive compilers.
|
|
* Removed the "DarwinInjector" code; that functionality has
|
|
not been supported for some time.
|
|
- 2015.06.09a:
|
|
* More changes to supposedly satisfy anal-retentive compilers.
|
|
- 2015.06.09:
|
|
* Added some "friend" declarations to "GenericMediaServer.hh"
|
|
and "RTSPServer.hh" in an attempt to placate an anal-retentive
|
|
Windows compiler. (Issue reported by Deanna Earley.)
|
|
- 2015.06.07:
|
|
* Restructured the "RTSPServer" class into an abstract base
|
|
class "GenericMediaServer" and a subclass "RTSPServer".
|
|
This makes it possible to develop other kinds of media server
|
|
that use the same "ServerMediaSession"/"ServerMediaSubsession"
|
|
objects to represent the stream(s) that they serve, but using
|
|
protocols other than RTSP.
|
|
* Added a new virtual function "createGroupsock" to
|
|
"OnDemandServerMediaSubsession". This makes it possible for
|
|
subclasses of "OnDemandServerMediaSubsession" to automatically
|
|
use subclasses of "Groupsock" (e.g., those that implement
|
|
STUN/DTLS).
|
|
* Moved the "ignoreSigPipeOnSocket()" function from
|
|
"RTSPCommon.hh" ("liveMedia" library) to "GroupsockHelper.hh"
|
|
("groupsock" library), because the function is not specific to
|
|
RTSP.
|
|
- 2015.06.04:
|
|
* Added optional support for including the RTSP "Speed:" header
|
|
in "PLAY" requests. (Thanks to Sarma Kolavasi.)
|
|
* Updated the implementation of "setResultErrMsg()" in
|
|
"BasicUsageEnvironment" to work properly in Windows.
|
|
(Thanks to Stas Tsymbalov.)
|
|
- 2015.05.31:
|
|
* Updated the "ProxyServerMediaSession" code to recover better
|
|
if a back-end RTSP "PLAY" command fails (for whatever reason).
|
|
Should this happen, we now reset the connection to the
|
|
'back-end' server. (This will cause the initial 'front-end'
|
|
client connection (that caused the "PLAY" command to be sent)
|
|
to fail, but subsequent 'front-end' client requests will now
|
|
have a better chance of succeeding.)
|
|
- 2015.05.28:
|
|
* Fixed a bug in error reporting in the "groupsock" library.
|
|
In a couple of places, we were using the result of
|
|
"getResultMsg()" directly in a call to "setResultMsg()", but
|
|
unfortunately those functions are implemented (at least in
|
|
"BasicUsageEnvironment") using the same buffer.
|
|
(Thanks to Stas Tsymbalov for reporting this.)
|
|
* Updated the "MPEGVideoStreamFramer" class (and thereby its
|
|
subclasses, including "H264VideoStreamFramer" to implement
|
|
the "doStopGettingFrames()" virtual function by calling
|
|
"flushInput()". This should fix a potential problem whereby
|
|
these classes might not work correctly if the downstream
|
|
reader calls "stopPlaying()", and then resumes reading.
|
|
(Thanks to Stas Tsymbalov for bringing this issue to our
|
|
attention.)
|
|
- 2015.05.25:
|
|
* Fixed a bug in "StreamReplicator::removeStreamReplica()":
|
|
It should have been calling "deactivateStreamReplica()"
|
|
*before* possibly deleting the "StreamReplicator" object
|
|
(if this was the last replica, and
|
|
"fDeleteWhenLastReplicaDies" was True).
|
|
(Thanks to Stas Tsymbalov for reporting this.)
|
|
* Fixed some potential problems with "StreamReplica"
|
|
deactivation. (Thanks to Stas Tsymbalov.)
|
|
* Updated the "RTSPServer" implementation to call
|
|
"ignoreSigPipeOnSocket()" on 'client connection' sockets,
|
|
rather than just on the main server socket. This is to
|
|
ensure that the server doesn't get killed if a client -
|
|
running on the same host - gets killed. (Note that, because
|
|
of this fix, it should never be necessarily to set the
|
|
"MSG_NOSIGNAL" flag on any of our calls to "send()".)
|
|
- 2015.05.12:
|
|
* Updated the previous revision to change the order in which
|
|
fields are deleted in the "RTSPServer" destructor, to avoid
|
|
a possible crash if "RTSPServer" objects are deleted.
|
|
(Thanks to ChaSeop Im for noting the problem.)
|
|
- 2015.05.03:
|
|
* Updated the "RTSPServer" implementation to fix a bug in
|
|
RTP/RTCP-over-TCP streaming. Before, if the
|
|
"RTSPClientConnection" object closed before the
|
|
"RTSPClientSession" object, and the TCP connection was also
|
|
being used for RTP/RTCP-over-TCP streaming, then the streaming
|
|
state (in the "RTSPClientSession") would stay alive, even
|
|
though the TCP socket had closed (and the socket number
|
|
possibly reused for a subsequent connection). This could cause
|
|
a problem when the "RTSPClientSession" was later reclaimed
|
|
(due to inactivity). Now, whenever a "RTSPClientConnection"
|
|
object is closed (due to the RTSP TCP connection closing), we
|
|
make sure that we also close any stream that had been using
|
|
the same TCP connection for RTP/RTCP-over-TCP streaming.
|
|
(Thanks to Kirill Zhegulev for noting this issue.)
|
|
* Removed extraneous comments near the top of
|
|
"testProgs/registerRTSPStream".
|
|
- 2015.04.22:
|
|
* Updated "config.iphone" and "config.iphone-simulator" to work
|
|
with the latest Xcode. (Thanks to Braden Ackerman.)
|
|
* Fixed a rare memory leak in "MultiFramedRTPSource" that might
|
|
occur if it's reading an incoming packet over TCP - requiring
|
|
>1 read for the packet - and the "MultiFramedRTPSource" gets
|
|
closed or paused while this is happening.
|
|
(Thanks to Kirill Zhegulev for noting this.)
|
|
- 2015.04.16:
|
|
* Added the "f" (force symbolic link) flag to the "ln" command
|
|
in the "make install" Makefile rules, in case you're
|
|
reinstalling the same version of a library.
|
|
(Thanks to Luca Ceresoli for noting the need for this.)
|
|
- 2015.04.15:
|
|
* Removed the previous (20 kByte) hard-wired limitation in the
|
|
size of incoming packets for "MultiFramedRTPSource". (Now,
|
|
any size packet up to the maximum size of 65535 can be
|
|
handled.)
|
|
* Added a (u_int16_t) field "desiredMaxIncomingPacketSize" to
|
|
"RTSPClient". If set to a value >0, then a "Blocksize:"
|
|
header with this value (minus an allowance for IP, UDP, and
|
|
RTP headers) will be sent with each "SETUP" request.
|
|
(Thanks to Deanna Earley for noting the optional RTSP
|
|
"Blocksize" header.)
|
|
- 2015.04.01:
|
|
* By default, "H264or5VideoStreamDiscreteFramer" sets
|
|
"fPictureEndMarker" (and thus the RTP 'M' bit) if the NAL
|
|
unit is VCL. Because this isn't always the right thing to do
|
|
(e.g., if we're delivering multiple 'slice' NAL units per
|
|
'access unit' (picture)), we now move this test into a virtual
|
|
function
|
|
"H264or5VideoStreamDiscreteFramer::nalUnitEndsAccessUnit()".
|
|
If desired, you can implement a subclass that redefines this
|
|
virtual function. (Thanks to Chris Richardson for bringing
|
|
this issue to our attention.)
|
|
* Made a minor syntactic change to
|
|
"ProxyServerMediaSubsession.cpp" to ensure that it compiles
|
|
with some old versions of VC++.
|
|
- 2015.03.19:
|
|
* Updated the "RTSPClient" code for handling a
|
|
"WWW-Authenticate:" header in a "401 Unauthorized" response.
|
|
We now check for the "stale=TRUE" parameter. If it's set,
|
|
then we resend the command, even if we already handled an
|
|
earlier "WWW-Authenticate:" header. (Thanks to Deanna Earley
|
|
for noting the need to handle "stale=TRUE".)
|
|
- 2015.03.16:
|
|
* Made a small change to the "BasicTaskScheduler"
|
|
implementation to reduce the likelihood of a race condition
|
|
with external thread(s) calling "triggerEvent()".
|
|
- 2015.03.06a:
|
|
* Oops - forgot to add '\0'-termination to the previous fix.
|
|
- 2015.03.06:
|
|
* Updated "RTSPClient" to decode %-encoded characters, should
|
|
they appear in the <username> and/or <password> fields in a
|
|
"rtsp://" URL. (Thanks to Deanna Earley for suggesting this.)
|
|
- 2015.03.01:
|
|
* Updated the "H264or5VideoRTPSink" implementation to make sure
|
|
that any stale fragmented data is flushed (discarded) if a
|
|
server's stream is paused. This ensures that - after we
|
|
resume from the pause - that we never stream data with old
|
|
presentation times. (Thanks to Gilles Chanteperdrix for
|
|
discovering and reporting this issue.)
|
|
- 2015.02.26:
|
|
* Fixed a bug in "ProxyServerMediaSubsession" that could cause a
|
|
crash if the parent "ProxyServerMediaSession" object is
|
|
removed from the RTSP server and deleted. (Thanks to Sergio ?
|
|
for first reporting this problem. Thanks to Chiung Ikhwan
|
|
for discovering the source of the bug.)
|
|
- 2015.02.23:
|
|
* Fixed a bug in
|
|
"OnDemandServerMediaSubsession::getCurrentNPT()".
|
|
(Thanks to Gilles Chanteperdrix for noting this.)
|
|
- 2015.02.17:
|
|
* Latest version of the "LIVE555 Streaming Media" code
|
|
(reinstalled due to a server crash).
|
|
- 2015.02.13:
|
|
* Oops - removed the "#define DEBUG" that had inadvertently
|
|
been left in "RTCP.cpp" in the previous version.
|
|
- 2015.02.12:
|
|
* Updated the previous release of "RTCP.cpp" to ensure that it
|
|
will compile for Windows.
|
|
- 2015.02.10:
|
|
* Added experimental support for sending RTCP "APP" packets,
|
|
and handling incoming RTCP "APP" packets. (Thanks to Nick
|
|
Ogden for suggesting this, and providing an example
|
|
implementation.)
|
|
- 2015.02.05:
|
|
* Made the "ProxyServerMediaSession" code a bit more
|
|
'bulletproof'.
|
|
- 2015.02.04:
|
|
* Fixed a bug in "DigestAuthentication" that could cause the
|
|
proxy server code to crash if it was given a username and
|
|
password for its 'back end' server.
|
|
(Thanks to Sergio Andrade for reporting this.)
|
|
* Fixed a minor bug in "MatroskaFileParser".
|
|
* Did some syntactic cleanup on a few files to avoid compiler
|
|
warnings with the newest version of "gcc".
|
|
|
|
-------------------------------------------------------------------
|
|
Sat Jan 31 13:00:25 UTC 2015 - aloisio@gmx.com
|
|
|
|
- fixed paths in live555.pc
|
|
- update to version 2015.01.27:
|
|
* Fixed a bug in "MPEG2TransportStreamFromESSource" that could
|
|
sometimes cause an abort if more than one Elementary Stream
|
|
Source were multiplexed into a single Transport Stream.
|
|
(Thanks to Marc Palau for reporting this issue.)
|
|
- version 2015.01.19:
|
|
* Fixed an obscure bug in "RTSPClient" that might conceivably
|
|
have caused a crash if it received a completely empty RTSP
|
|
response.
|
|
- version 2015.01.04:
|
|
* Updated "config.iphone-simulator" to work with the latest Xcode.
|
|
(Thanks to Braden Ackerman.)
|
|
* In the "BasicUsageEnvironment" implementation, renamed
|
|
"EventTime" to "_EventTime" to avoid a reported naming conflict.
|
|
- version 2014.12.17:
|
|
* Updated "RTSPServerSupportingHTTPStreaming" to make sure that
|
|
the data stream source gets closed when it's no longer needed.
|
|
- version 2014.12.16:
|
|
* Changed the FD_SETSIZE check (introduced in version 2014.12.11)
|
|
so that it's not done in Windows (because in Windows,
|
|
FD_SETSIZE has different semantics).
|
|
(Thanks to Deanna Earley for reporting this.)
|
|
- version 2014.12.13:
|
|
* Updated the H.264/H.265 parsing code in "H264or5VideoStreamFramer"
|
|
to be a little smarter about how it computes a file's frame rate
|
|
(when streaming a 'raw' H.264 or H.265 file).
|
|
(Thanks to Michel Promonet for inspiring this.)
|
|
* Updated "config.iphoneos" to work with the latest Xcode.
|
|
(Thanks to Braden Ackerman.)
|
|
- version 2014.12.11:
|
|
* Changed our implementation of "setBackgroundHandling()" and
|
|
"moveBackgroundHandling()" in "BasicTaskScheduler" to check for
|
|
(and disallow) socket numbers >= FD_SETSIZE, because <sys/select.h>
|
|
has a bug (at least, in most systems) that causes buffer overflow
|
|
in this case. (Thanks to Michel Promonet for pointing this out.)
|
|
- version 2014.12.09:
|
|
* Needed to make the "QuickTimeFileSink" constructor and destructor
|
|
protected: to allow subclassing.
|
|
- version 2014.12.08:
|
|
* Fixed a bug in parsing 'absolute' RTSP "Range:" headers with no end
|
|
time. (Thanks to Ken Chow for reporting this.)
|
|
* Added a new option "-K" to "openRTSP, to tell the client to
|
|
periodically send "OPTIONS" requests as 'keep-alives' for buggy
|
|
servers that don't use incoming RTCP "RR" packets to indicate client
|
|
liveness. (Thanks to Peter Schlaile for this suggestion.)
|
|
* Added a new 'protected' virtual member function "noteRecordedFrame()"
|
|
to "QuickTimeFileSink". This function is called whenever a frame is
|
|
recorded to the output file. The default implementation of this
|
|
virtual function does nothing, but subclasses can redefine it if
|
|
they wish.
|
|
- version 2014.11.28:
|
|
* When "RTSPClient" parses a RTSP response, we first skip over any
|
|
blank lines that may be at the start of the response. This can
|
|
happen if the previous response (e.g., to a "DESCRIBE") contained
|
|
extra whitespace. (Thanks to ilwoo Nam for giving an example of
|
|
a server that exhibited this behavior.)
|
|
- version 2014.11.12:
|
|
* We had forgotten to initialize the "RTSPClient" member variable
|
|
"fAllowBasicAuthentication" that we introduced in the previous
|
|
version.
|
|
- version 2014.11.07:
|
|
* Added a new "RTSPClient" member function "disallowBasicAuthentication()"
|
|
that you can call if you don't want a RTSP client to perform 'basic'
|
|
authentication (whcih involves sending the username and password over
|
|
the network), even if the server asks for this.
|
|
(Thanks to Tomasz Pala for this suggestion.)
|
|
* Updated the debugging printout code in "RTCP.cpp" to identify all
|
|
known RTCP payload types, even if we don't currently handle them.
|
|
We also - when doing debugging printout - parse and print out
|
|
the contents of SDES RTCP packets.
|
|
- version 2014.11.01:
|
|
* Updated "RTSPClient" so that it reuses "fCurrentAuthenticator"
|
|
if we previously updated it with data from a "WWW-Authenticate:"
|
|
response, even if a non_NULL "authenticator" parameter was
|
|
passed as a parameter to the command. This reduces the number
|
|
of authetication exchanges that take place if the server asks
|
|
for authentication on more than one command in a RTSP session.
|
|
(Thanks to Tomasz Pala for this suggestion.)
|
|
* Updated "DigestAuthenticator" to allow for the possibility of
|
|
"username" or "password" being NULL.
|
|
* Updated the "RTSPServer" implementation to add an access check
|
|
before the first "SETUP" (the one that doesn't include a
|
|
session id), because it's possible, in principle, for a client
|
|
to send such a "SETUP" without first sending a "DESCRIBE".
|
|
Therefore, we need to perform access checks on both commands.
|
|
- version 2014.10.28:
|
|
* Added support for the VP9 video RTP payload format (sending and
|
|
receiving), including the demultiplexing and streaming of a VP9
|
|
video track from a Matroska-format file.
|
|
* Made "VP8VideoRTPSource" more robust against a bad first-byte
|
|
header field in the payload.
|
|
- version 2014.10.21:
|
|
* Increased the max output packet size for "MultiFramedRTPSink"
|
|
and "RTCPInstance" from 1448 to 1456, because we had a report
|
|
of problems when proxying incoming JPEG/RTP packets of this
|
|
size (and because 1456 bytes still gives a packet size of no
|
|
more than 1500 bytes when we add
|
|
in IP, UDP, and UMTP headers).
|
|
- version 2014.10.20:
|
|
* Increased the RTSP request and response buffer sizes from 10000
|
|
to 20000 bytes, because we saw a RTSP stream (VP8 video) that
|
|
had an extremely large "configuration=" string that was hiting
|
|
the previous limit.
|
|
- version 2014.10.16:
|
|
* Fixed the "RTSPServer" implementation to handle a rare race
|
|
condition that could cause a "ServerMediaSession" object to
|
|
be deleted while it was being used to implement "DESCRIBE".
|
|
(Thanks to Michel Promonet for reporting this.)
|
|
- version 2014.10.07:
|
|
* Fixed a bug in the "MultiFramedRTPSource" implementation where
|
|
we weren't properly checking the size of incoming RTP packets
|
|
that have the "CC" field (i.e., number of "CSRC" fields) non-zero.
|
|
* Updated "Groupsock::output()" to be a virtual function.
|
|
(This makes it possible to implement "Groupsock" subclasses that
|
|
implement 'bump-in-the-stack' protocols (such as SRT(C)P) below
|
|
RTP/RTCP.)
|
|
- version 2014.10.03:
|
|
* Fixed a problem in the "timestampString()" routine that occurs
|
|
if "time_t" is 64 bits, but we're on a 32-bit machine.
|
|
(Thanks to Deanna Earley for reporting this.)
|
|
* Updated the debugging output code in "RTCP.cpp" to make it
|
|
clearer that SDES and APP packets are not invalid; just not
|
|
(yet) handled by us.
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Oct 29 22:16:12 UTC 2014 - olaf@aepfle.de
|
|
|
|
- BuildRequire pkg-config to get rpm Provides/Requires pkgconfig(live555)
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Oct 6 13:25:05 UTC 2014 - aloisio@gmx.com
|
|
|
|
- Added support for pkg-config by creating the relevant .pc file
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Oct 2 10:45:02 UTC 2014 - dimstar@opensuse.org
|
|
|
|
- Update to 2014.09.22:
|
|
+ Changed the way in which the "RTSPServer" code handles incoming
|
|
"OPTIONS" commands that contain a "Session:" header. If the
|
|
"Session:" header contains a session id that does not exist,
|
|
then we now return a "Session Not Found" error (even though the
|
|
handling of the "OPTIONS" command is not session-specific).
|
|
This new behavior will help proxy servers (that use our
|
|
"RTSPServer" implementation as a 'back-end' server) better
|
|
detect when the back-end server has restarted while streaming.
|
|
+ For all other changes since 2013.04.30, please see
|
|
http://www.live555.com/liveMedia/public/changelog.txt.
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Mar 4 17:44:39 UTC 2013 - dimstar@opensuse.org
|
|
|
|
- Update to version 2013.04.30:
|
|
+ One year worth of updates... see changelog.
|
|
|
|
-------------------------------------------------------------------
|
|
Sun Feb 5 20:31:55 UTC 2012 - dimstar@opensuse.org
|
|
|
|
- Update to version 2012.02.04:
|
|
+ Updated "WAVAudioFileSource" to read from its input file
|
|
asynchronously, if possible, rather than doing a synchronous
|
|
(blocking) read.
|
|
- Changes from version 2012.02.03:
|
|
+ Updated "RTSPClient" to - after receiving a "SETUP" response
|
|
for a UDP stream - send a couple of short 'dummy' UDP packets
|
|
to the server. This will make it more likely that the
|
|
incoming RTP/UDP packets will successfully traverse a NAT box
|
|
(if the client is behind a NAT). (Note that we don't do this
|
|
for RTCP, because the client's regular RTCP "RR" packets will
|
|
have the same effect.)
|
|
+ Changed the way that the "sessionId" member field in
|
|
"MediaSubsession" is managed. Its memory is now managed by
|
|
"MediaSubsession" itself, rather than by "RTSPClient" (as it
|
|
was previously). With the previous behavior, "valgrind"
|
|
(incorrectly) reported a possible memory leak. The new behavior
|
|
should make 'valgrinerds' happy.
|
|
- Drop patches that were required by VideoLAN: fixed upstream:
|
|
+ live-getaddrinfo.patch
|
|
+ live-inet_ntop.patch
|
|
+ live-uselocale.patch
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Jan 31 15:46:12 UTC 2012 - dimstar@opensuse.org
|
|
|
|
- Update to version 2012.01.26.
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Nov 16 21:52:18 UTC 2011 - dominique-vlc.suse@leuenberger.net
|
|
|
|
- Rewrite part of the .spec file.., Cleaner installation.
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Nov 16 20:08:59 UTC 2011 - dominique-vlc.suse@leuenberger.net
|
|
|
|
- Add VideoLAN required patches for proper funtioning of live555:
|
|
+ live-getaddrinfo.patch
|
|
+ live-inet_ntop.patch
|
|
+ live-uselocale.patch
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Nov 16 15:42:05 UTC 2011 - dominique-vlc.suse@leuenberger.net
|
|
|
|
- Update to version 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()".
|
|
|
|
-------------------------------------------------------------------
|
|
Sat Oct 22 20:17:49 UTC 2011 - dominique-vlc.suse@leuenberger.net
|
|
|
|
- Update to version 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).
|
|
- Add a -devel subpackage, obsolete the now empty subpackage by it.
|
|
- Drop rpmlintrc file, as the devel files are now in a devel
|
|
package.
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Jun 30 07:20:37 UTC 2011 - dominique-vlc.suse@leuenberger.net
|
|
|
|
- Update to version 2011.06.16
|
|
|
|
-------------------------------------------------------------------
|
|
Sat Oct 2 15:33:18 UTC 2010 - dominique-vlc.suse@leuenberger.net
|
|
|
|
- Update to 2010.09.25
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Sep 1 00:20:22 CEST 2009 - dominique-vlc.suse@leuenberger.net
|
|
|
|
2009.07.28:
|
|
- Updated "QuickTimeFileSink" to add a "stss" atom for video streams, following a suggestion by Gerardo Ares.
|
|
(At present we just 'guess' which video 'samples' (frames) are 'key frames', so this might not work properly on some
|
|
video streams.)
|
|
- Modified the "config.uClinux" configuration file, following a suggestion by Chetan Raj.
|
|
- Changed "RTSPClient"s implementation of the RTSP "TEARDOWN" command to always act as if the command succeeded, regardless of
|
|
the actual response from the server (because, from the client's point of view, the session has ended).
|
|
(This overcomes a potential memory leak, pointer out by Stuart Rawling.)
|
|
|
|
2009.07.09:
|
|
- Modified the RTSP server implementation to - for streams where there is a known duration - always include a range end time
|
|
in the RTSP "PLAY" response, even if the client did not specify one in the "PLAY" request. This allows VLC's client
|
|
'trick play' to (mostly) work.
|
|
- Updated "MediaSession::initiate()" to eliminate a possible memory leak if we get an error in socket creation.
|
|
(Thanks to Denis Charmet.)
|
|
- Made a minor change to "MultiFramedRTPSink" to make monitoring/debugging easier. (Thanks to Guy Bonneau.)
|
|
- Begun adding support for DV video. However, this implementation is still incomplete. DO NOT USE IT!
|
|
|
|
2009.06.02:
|
|
- Updated the MPEG Transport Stream multiplexor implementation to allow for H.264 video. (Thanks to Massimo Zito.)
|
|
- Updated "MultiFramedRTPSink" to allow for subclasses for RTP payload formats (such as DV, coming soon) that impose
|
|
a granularity on RTP fragment sizes.
|
|
|
|
-------------------------------------------------------------------
|
|
Sun Apr 26 23:16:23 CEST 2009 - dominique-suse.vlc@leuenberger.net
|
|
|
|
2009.04.20:
|
|
- Fixed "BasicUsageEnvironment::getErrno()" to always (under Windows) return
|
|
"WSAGetLastError()" (and to just ignore the "errno" variable>.
|
|
Also fixed a few places in the code where we were still using "errno"
|
|
instead of calling "getErrno()"
|
|
|
|
2009.04.07:
|
|
- Changed many "char*" variables to "char const*" to eliminate possible compiler warnings.
|
|
(Thanks to Sebastien Escudier for pointing out this issue.)
|
|
|
|
2009.04.06:
|
|
- Modified our Windows-only version of "gettimeofday()" so that it now returns times based on the proper epoch.
|
|
(Thanks to Patrick White for this suggestion.)
|
|
- Created a new config file for 64-bit Solaris, and renamed the old "config.solaris" file to make it
|
|
clear that it's for 32-bit Solaris only. (Thanks to ichael Skaastrup.)
|
|
- Modified "config.mingw" to add "-DLOCALE_NOT_USED" to the "COMPILE_OPTS =" line. (The VLC folks seem to want
|
|
this.)
|
|
- Made a minor change to some win32-specific code in "RTSPClient.cpp" that the VLC folks seem to like.
|
|
(However, "RTSPClient" is about to undergo a major overhaul (for asynchronous I/O) anyway...)
|
|
- Made a small change to "mediaServer/DynamicRTSPServer.cpp" to eliminate compiler warnings on some platforms.
|
|
|
|
|