Skip to content

Tags: greenjava/live555

Tags

2025.09.17

Toggle 2025.09.17's commit message

Verified

This commit was signed with the committer’s verified signature.
greenjava Julien Waechter
Updated to live555 2025.09.17

2025.09.17:
- The previous release was not quite correct.  This fixes it.
2025.09.16:
- Fixed an issue in the "decodeURL()" function in "RTSPCommon.cpp" that was supposedly
  causing a crash when run in Windows.  (Thanks to Eric Beuque for the report.)
2025.07.19:
- Fixed the server handling of incoming TLS connections to close the connection if
  the call to "ServerTLSState::accept()" fails with an error (so that the server doesn't
  go into an infinite loop trying to keep handling the connection).
  (Thanks to Yahia Benmoussa for reporting this.)
2025.07.10:
- Updated the "ClientTLSState" code to allow for the possibility of performing extra checking
  (e.g. on the server certificate) during the setup of a TLS connection.
  See the "TLSState.hh" header file for details.
  (Thanks to Yahia Benmoussa and Jonatahn Brady for this suggestion.)
2025.05.24:
- Updated the "Makefile.tail" templates to fix a minor bug in dependencies if
  Makefiles are generated for the "linux-with-shared-libraries" configuration, and then
  make is run in parallel.  (Thanks to Sergei Trofimovich for the report.)
2025.05.08:
- In the "BufferedPacket" destructor (in "MultiFramedRTPSource.cpp"), explicitly replace
  tail recursion with iteration, in case the compiler isn't smart enough to do this.
  (Thanks to Eric Beuque for the report.)
2025.04.25:
- Updated the "rtcp_from_spec" code to use the same (LGPL) license as the rest of the code.
2025.01.17:
- In the "SRTPCryptographicContext" constructor, make sure that "fSendingROC" is initialized,
  to fix a potential 'reference when uninitialized' error.
  (Thanks to Christian Haas for reporting this.)
2024.11.28:
- Updated the signature of "doEventLoop()" to match that of "triggerEvent()", by using
  "std::atomic_char" as the 'watch variable' type (if NO_STD_LIB is not defined)
- Performed the annual update of the copyright years near the start of each file
2024.10.31:
- Yet another fix to the (excrutiatingly tricky) SRTP/ROC-handling code.
  (Thanks to Jean-Baptiste Renou.)
2024.10.30:
- Another fix to the code for SRTP streaming: Make sure that the RTCP instance's
  cryptographic context gets updated whenever the RTP sink's cryptographic context changes.
  (Thanks again to Jean-Claude Saget.)
2024.10.29:
- A fix to the previous release fixing code for streaming SRTP to a new client from an ongoing stream.
  (Thanks again to Jean-Claude Saget.)
2024.10.24:
- Another change to the code for streaming SRTP to a new client from an ongoing stream:
  If the ROC changes, then generate a new SDP description, but not a new stream source or
  RTP sink.  (Thanks to Jean-Claude Saget for reporting this issue.)
2024.10.11:
- Fixed another RTSP server bug in the implementation of RTP-over-TCP streaming.
  (Thanks again to Sangjun Park.)
2024.10.10:
- Fixed a stack-use-after-return bug in the RTSP server implementation.
  (Thanks to Sangjun Park for reporting this.)
2024.10.09:
- Fixed a RTSP server bug in the implementation of RTP-over-TCP streaming that could cause
  a "RTSPClientConnection" object to be accessed after it had been deleted.
  (Thanks to Sangjun Park for reporting this issue.)
2024.09.29:
- Fixed a bug in "ProxyServerMediaSession.cpp" that could cause an 'access after free' error
  if the proxy server's "-V" option were used.  (Thanks to Andrey Radchenko for reporting this.)
2024.09.25:
- Fixed another bug in SRTP streaming from a "reuseFirstSource" stream: Make sure we use
  the same keying material for each client.
2024.09.24:
- Removed an experimental version of "testOnDemandRTSPServer.cpp" (for streaming via SRTP)
  that had acceidentally been left in the previous release.
2024.09.20:
- Ensure that, when streaming SRTP, any change to the server's ROC (rollover counter)
  gets sent to the RTSP client (in the SDP description), if it joins an ongoing stream.
  (Thanks to Yahia Benmoussa for reporting this issue.)
2024.08.01:
- Updated "ServerMediaSession::generateSDPDescription()" to treat "time_t" as (long long).
  (Thanks to Godmar for reporting this.)
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.
2024.05.30:
- Fixed a mistake that caused the config file "config.raspberrypi" to not appear in
  the distribution.  (It's there now.)
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.
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.)
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").
  (This is in response to a report from Andy Hawkins.)
2024.04.14:
- Added constant strings and ints to each library that allow you to get the library version
  at runtime, rather than just at compile time.  For example, for the "liveMedia" library,
  these are:
  	extern char const* const liveMediaLibraryVersionStr;
	extern int const liveMediaLibraryVersionInt;
  (Thanks to Paul Westlund for this suggestion.)
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.
  (Thanks to Raphael Schlarb for this suggestion.)
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).  (Thanks to Lauri Nurmi for reporting the problem, and providing a patch.)
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.
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).
2023.11.30:
- In the implementation of the "MPEGVideoStreamFramer" class, gave "TimeCode::operator==()"
  the "const" qualifier, to make some compilers happy.
  (Thanks to Dmitry Bely for the report)
- Performed the annual update of the copyright years near the start of each file
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 *".  (Thanks to Andy Hawkins for prompting this.)
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.
2023.10.30:
- Fixed a bug in "deleteEventTrigger()" that had accidentally been introduced during the
  change to 'event trigger' implementation back in June.
  (Thanks to Jörg Dommaschk for reporting this.)
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.  (Thanks to Jan Rørgaard Hansen for this suggestion.)
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).
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.  (Thanks to Jan Rørgaard Hansen for reporting
  this issue.)
  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.
2023.06.14:
- Fixed a bug in the Matroska file parsing code that could sometimes cause a 'use after free'
  error.  (Thanks to Meng Ruijie, Martin Mirchev, and "jerry testing" for reporting this.)
2023.06.10:
- Minor change to "GroupsockHelper.cpp" to overcome a compilation error in XCode on Mac OS X.
2023.06.08:
- Updated the "dateHeader()" function in "RTSPCommon.cpp" to use "gmtime_r()" instead of
  the older, non-thread-safe "gmtime()".  (Thanks to Russell Greene for the patch.)
2023.05.10:
- Fixed a minor memory leak in the "RTSPServer" code.
  (Thanks to Zhudong Jie for reporting this.)
2023.03.30:
- 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.  (Thanks to Eric Beuque for reporting this.)
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.
  (From now on, if you still want to use "gethostbyname()" for Windows, edit the
  "win32config" file before running "genWindowsMakefiles".)
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).  (Thanks to Jan Rørgaard Hansen for reporting this issue.)
- Performed the annual update of the copyright years near the start of each file
2022.12.01:
- Yet another fix to the previous fix for RTSP-over-HTTP streaming.
2022.11.30:
- The previous version's fix to "RTSPClient" (for RTSP-over-HTTP streaming) was incomplete.
  This should fix it for real.
2022.11.29:
- 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.
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.
  (Thanks to Yahia Benmoussa for the patch.)
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.
2022.09.30:
- 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.  (By default, the function does nothing.)
  (Thanks to Joerg Dommaschk for this suggestion.)
2022.07.14:
- (This does not change the code at all.)  We now use SHA-1 rather than MD5 to hash the
  latest tarball of our code (as SHA-1 is considered a more secure hash than MD5).
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.
  (This does not apply to a RTSP server that streams SRTP/SRTCP.  In that case, sending
  SRTP/SRTCP over a TLS connection would add unnecessary overhead, so is not supported.)
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.
2022.04.26:
- A minor update to the previous release, to ensure that we don't call "delete[]" on an
  uninitialized pointer.
2022.04.25:
- Updated "RTSPClient" so that it can optionally include a "Require:" header in RTSP commands.
  (See the definition of "setRequireValue()" in "include/RTSPClient.hh")
  (Thanks to Gregory Chiapa from Thales Group for suggesting this.)
2022.04.15:
- Fixed a "fprintf()" argument-order-evaluation bug in the "mikeyParse" demo application.
  (Thanks to Taeho Kim for reporting this.)
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'.  (This is analogous to the existing '-a' and '-v' options, for receiving only
  audio or video.)

2022.02.07

Toggle 2022.02.07's commit message
Updated to live555 2022.02.07

2021.11.01

Toggle 2021.11.01's commit message
Updated to live555 2021.11.01

2021.08.24

Toggle 2021.08.24's commit message
Updated to live555 2021.08.24

2021.06.29

Toggle 2021.06.29's commit message
Updated to live555 2021.06.29

2020.01.11

Toggle 2020.01.11's commit message
Updated to live555 2020.01.11

2019.12.30

Toggle 2019.12.30's commit message
Updated to live555 2019.12.30

2019.12.13

Toggle 2019.12.13's commit message
Updated to live555 2019.12.13

2019.03.06

Toggle 2019.03.06's commit message
Initial commit with live555 source 2019.03.06