git: 10544847625c - main - net/liveMedia: update to 2022.04.26

From: Tobias C. Berner <tcberner_at_FreeBSD.org>
Date: Thu, 28 Apr 2022 18:21:36 UTC
The branch main has been updated by tcberner:

URL: https://cgit.FreeBSD.org/ports/commit/?id=10544847625cb01ba14089e36d98b2cc02031e01

commit 10544847625cb01ba14089e36d98b2cc02031e01
Author:     Tobias C. Berner <tcberner@FreeBSD.org>
AuthorDate: 2022-04-28 17:51:49 +0000
Commit:     Tobias C. Berner <tcberner@FreeBSD.org>
CommitDate: 2022-04-28 18:21:26 +0000

    net/liveMedia: update to 2022.04.26
    
    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:
    - 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.
    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".
      (Thanks to Yahia Benmoussa for reporting this.)
    2022.01.20:
    - More updates to the code for optional server SRTP streaming.
      (This appears to be working now, but needs further testing before being officially announced.)
    2022.01.17:
    - More updates to the code in preparation for optional server SRTP streaming.
      (SRTCP transmission and reception is now working; SRTP transmission is not working yet.)
    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 - not working yet.)
    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).
      (This is in preparation for optional server SRTP streaming - not working yet.)
    2021.12.18:
    - Fixed a bug in the way that "RTSPClient" handles its two separate TCP connections when
      it does RTSP-over-HTTP.  (Thanks to Laszlo Ast for noticing this.)
    - Updated "RTPInterface::sendDataOverTCP()" so that if it's necessary to do a blocking send(),
      we call "makeSocketNonBlocking()" immediately after the call to "send()".
      (This fixes an issue noted by Andrei Chtcherbatchenko.)
    - Performed the annual update of the copyright years near the start of each file
    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.  (Thanks to William Pfeffer for noticing this.)
    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.
    2021.11.14:
    - Updated the RTSP server implementation to (optionally) support connections via TLS.
      To enable this, call
          setTLSState(<certFileName>, <privKeyFileName>);
      on your newly-created "RTSPServer" object (before you enter the event loop to start
      handling requests) - where <certFileName> is the (string) pathname of a certificate file,
      and <privKeyFileName> is the (string) pathname of a private key file - both in PEM format.
      At present, this implementation does *not* serve SRTP (encrypted RTP/RTCP), and so does
      not accept "rtsps://" URLs.  (This will change in the future.)
    2021.11.10:
    - 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.  (This has not been completed yet.)
    2021.11.01:
    - Split the "TLSState" class into two classes: "TLSState" (an abstract base class),
      and "ClientTLSState" (a subclass).  This is in preparation for later defining a
      second subclass "ServerTLSState" that will eventually be used to implement TLS connections
      in our RTSP server.
    2021.10.31:
    - 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.
    2021.10.28:
    - 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.
    2021.10.20:
    - 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).
      (Thanks to "pany.2011" for reporting this.)
    2021.08.24:
    - The final (I hope!) update to eliminate a "depends on uninitialised value" report from 'valgrind'.
      Because "recvfrom()" can be expected to fill in the 'from' address only if it's called on a
      datagram socket, we update the implementation of "RTPInterface::handleRead()" to set the
      'from' address variable to a 'dummy' value before calling "readSocket()", in the case where
      it's reading RTP/RTCP-over-TCP.
    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'.
    2021.08.19:
    - Updated the "readSocket()" code in "GroupsockHelper.cpp" to eliminate another possible
      "depends on uninitialised value" report from 'valgrind'.  (Thanks to Dmitry Kostromin)
    2021.08.18:
    - Updated the "readSocket()" code in "GroupsockHelper.cpp" to eliminate a
      "depends on uninitialised value" report from 'valgrind'.  (Thanks to Dmitry Kostromin)
    2021.08.17:
    - Updated the 'groupsock' "setPortNum()" function to not rely upon the "ss_family" family
      field, in case it's uninitialized.
    2021.08.14:
    - Fixed a minor bug in the previous release ("delete" should have been "delete[]")
    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.  (Thanks to Ba Jinsheng for reporting this.)
    - Fixed a potential memory leak in "AC3AudioStreamFramer".  (Thanks to Ba Jinsheng for reporting this.)
    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.)
    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.)
    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.
    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.)
    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.)
    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.)
    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.)
    2021.05.22:
    - Fixed a bug that might cause a "REGISTER" or "DEREGISTER" command to be handled after
      the corresponding "RTSPClientConnection" object is deleted.
      (Thanks to Mario Takeuchi for reporting this bug and providing a patch.)
    2021.05.17:
    - If a stream has no known duration, then our "a=range:" line (in the server's SDP description)
      now says "npt=now-" rather than "npt=0-".  Although the latter appears to be valid
      (according to RFC 2326), it has been claimed that "ffmpeg" RTSP clients do not handle it.
      (Thanks to Dmitry Bely for raising this issue.)
    2021.05.03:
    - Updated the code for "getOurIPAddresses()" to check that "p->ifa_addr" is not NULL before
      we try dereferencing it.  (Thanks to Thore Mehr for noting this.)
    2021.04.06:
    - Fixed a bad #define in "liveMedia/include/MPEG2TransportStreamAccumulator.hh"
    2021.04.05:
    - Updated "groupsock/GroupsockHelper.cpp" to cast the 4th argument of various calls to
      "setsockopt()" to "(const char *)" to make MSVC happy.
      (Thanks to Josh Thorson for suggesting this.)
    2021.03.22:
    - Updated the "BasicUDPSource" class to reimplement the "maxFrameSize()" virtual function.
      This will make "StreamSource" subclasses work properly when fed from "BasicUDPSource"s,
      by telling the "StreamSource" to read as much data as possible from each incoming datagram.
      (Thanks to Josh Thorson for discovering this.)
    2021.03.17:
    - Removed extraneous code from "MPEG2TransportStreamAccumulator.hh".  (Also, include that
      header file in "liveMedia.hh".)
    2021.03.16:
    - Fixed a bug in the implementation of "OnDemandServerMediaSubsession" that could cause a
      RTSP server to crash - for certain "OnDemandServerMediaSubsession" subclasses - if it is
      accessed by a malicious RTSP client.  If you have a RTSP server that uses one or more of
      the following "OnDemandServerMediaSubsession" subclasses:
          AC3AudioFileServerMediaSubsession
          ADTSAudioFileServerMediaSubsession
          AMRAudioFileServerMediaSubsession
      then you should upgrade to this version of the code ASAP, as this is a potential security
      vulnerability.  (Note, however, that the "DynamicRTSPServer" code used by the
      "LIVE555 Media Server" is not vulnerable to this bug.)
      (Thanks to Zhao Jiaxu for reporting this bug.)
    2021.03.15:
    - Updated the various RTSP server applications in "testProgs" to use a common routine
      "announceURL()" (implemented in "announceURL.cpp") to display the IPv4 and/or IPv6 "rtsp://"
      URLs of the stream.
    - Updated the "testMP3Streamer", "testMP3Receiver", "testMPEG1or2AudioVideoStreamer",
      "testMPEG1or2VideoStreamer", and "testMPEG2TransportStreamer" demo applications to
      (optionally) stream using IPv6 multicast instead of IPv4 multicast.
      (To enable this, uncomment the line that #defines USE_IPV6_MULTICAST)
    - Removed from the "live555 Media Server" code the line that outputs a comment about
      supportng HTTP Live Streaming (on indexed Transport Stream files).
      This is no longer supported.
    2021.02.11:
    - Updated the "live555 Media Server" and "testOnDemandRTSPServer" applications to display both
      IPv4 and IPv6 RTSP URLs when starting (or just an IPv4 RTSP URL if the system is IPv4-only,
      or just an IPv6 RTSP URL if the system is IPv6-only).
    2021.02.10:
    - Fixed a bug in "GenericMediaServer" that could potentially cause infinite recursion in the
      "live555 Media Server" application.  (This had earlier been fixed in version 2019.09.30,
      but had accidentally been reintroduced into a recent revision.)
    - Before binding to IPv6 sockets, set the IPV6_V6ONLY flag set to 1, so that we can have
      an IPv4 socket and an IPv6 socket bound to the same port.
    2021.02.09:
    - Fixed a bug in "groupsock/GroupsockHelper.cpp" that could cause a compilation error on
      some systems where "sa_len" is not defined in "struct sockaddr".
    2021.02.05:
    - Updated the mechanism by which we figure out our (IPv4 and/or IPv6) address.
      Instead of the 'multicast loopback' mechanism, we use "getifaddrs()".
      (If "getifaddrs()" doesn't work, then we fall back to the
      "lookup host name"->"resolve host name" method, as we did before.)
      If "getifaddrs()" is not defined on your system (or if you don't want to use it), then
      you can disable its use by compiling with NO_GETIFADDRS defined.
    - Updated "RTSPServer::rtspURL()" (and "RTSPServer::rtspURLPrefix()") to take an optional
      parameter "useIPv6" (default value: False).  If True, the returned "rtsp://" URL (or prefix)
      uses our IPv6 address, rather than our IPv4 address.
      (We also defined shortcut functions "ipv4rtspURL(Prefix)()" and "ipv6rtspURL(Prefix)()"
       that call the above functions.)
    - Fixed a bug in the 'groupsock' "addressIsNull()" function for IPv6 addresses.
    2021.01.29:
    - Renamed the 'groupsock' function "ourIPAddress()" to "ourIPv4Address()".
      (We also define a function "ourIPv6Address()", though for now this just returns a null
       IPv6 address.)
    2021.01.28:
    - Fixed the "config.macosx-no-openssl" configuration file (it had been accidentally trying to
      link with SSL and crypto libraries).
    2021.01.21:
    - Updated the "GenericMediaServer" class (and its subclasses, including "RTSPServer" and
      "DynamicRTSPServer") to use two main server sockets: one for handling connections over IPv4;
      the other for handling connections over IPv6.  (Connections over IPv6 might not be fully
      working yet.)
    - Changed the "groupsock" "getSourcePort()" function to take an extra "domain"
      (AF_INET or AF_INET6) parameter.  (This is needed in case the function's implementation
      needs to call "bind()".)
    2021.01.20:
    - Updated the implementations of several helper functions in "groupsock/GroupsockHelper.cpp"
      to work with IPv6 (once we support it).
    2021.01.18:
    - Changed the virtual function "ServerMediaSession::sdpLines()" to take an 'address family'
      parameter.  This lets us ensure (in "OnDemandServerMediaSubsession") that generated SDP
      descriptions for unicast streams have the correct IP address family string ("IP4" or "IP6").
    - Changed the "GenericMediaServer::setUpOurSocket()" function to take a 'domain'
      (AF_INET or AF_INET6) parameter, in preparation for eventual support for IPv6.
    2021.01.17:
    - In the "groupsock" library, changed the signature of "nullAddress()" to take an optional 'address family' parameter.
    - Removed obsolete parameters "fServerAddressForSDP" and "fPortNumForSDP" (and member function "setServerAddressAndPortForSDP()") from "ServerMediaSubsession".
    2021.01.16:
    - Fixed minor bug in "RawVideoRTPSource".  (Thanks to Yahia Benmoussa.)
    2021.01.14:
    - Changed the virtual function "GenericMediaServer::lookupServerMediaSession()" to be
      asynchronous, to allow the actual lookup to be performed within the event loop, in response
      to an event.  "lookupServerMediaSession()" now takes a 'completion function' and
      'completion client data' as parameter.  Once the lookup is done, the completion function
      is called - with the 'completion client data' and looked-up "ServerMediaSession" object
      as parameter.
      (Thanks to Mit Shan for providing the use case that motivated this change.)
    2021.01.13:
    - Fixed a memory leak in the "MIKEYPayload" class.  (Thanks to Micha Kalfon for reporting this.)
    2021.01.09:
    - Updated the constructor for the 'groupsock' "NetAddressList" class to take an (optional)
      'address family' parameter.  This can be used to lookup specifically an IPv4 or IPv6 address
      for a given host name.  (In 'liveMedia', updated "MediaSession.cpp" to use this mechanism
      when parsing a SDP description.)
    - Updated the "ServerMediaSession::generateSDPDescription()" function to take an
      'address family' parameter, so we can generate proper SDP (specifying the proper IP address
      family) even for connections from IPv6 clients.  Updated the
      "RTSPServer::RTSPClientConnection" constructor accordingly, to record the address family
      of the connection, for subsequent use when calling "generateSDPDescription()".
    2021.01.01:
    - Updated the 'groupsock' "setupDatagramSocket()" and "setupStreamSocket()" to take
      an 'address family' parameter, in preparation for eventual support for IPv6.
    2020.12.23:
    - Updated the implementation of "NetAddressList()" to properly return an IPv6 address
      if the hostname being looked up is IPv6 only.  (This is in preparation for eventual
      support for IUPv6.)
    - More minor changes to the "groupsock" library in preparation for eventual support for IPv6.
      Note that the type name "netAddressBits" is no longer defined; use "ipv4AddressBits" instead.
    2020.12.13:
    - Fixed a bug accidentally introduced in the previous release (Linux distributions don't
      include the field "ss_len" in their definition of "struct sockaddr_storage").
      (Thanks to Scott Robinson for reporting this.)
    2020.12.12:
    - Updated the "groupsock" "socketJoin/LeaveGroup()" functions to take
      "struct sockaddr_storage const&" as parameter, in preparation for eventual support for IPv6.
    2020.12.11:
    - Updated the "MediaSession" "fSourceFilterAddr" field and "connectionEndpointAddress()"
      and "setDestinations()" member functions to use a "struct sockaddr_storage",
      in preparation for eventual support for IPv6.
    - More cleanup of the "groupsock" library.
    2020.12.10:
    - Updated the "Groupsock" constructors to take "struct sockaddr_storage const&"s as
      parameter, in preparation for eventual support for IPv6.
      (Ditto for the "createGroupsock()" virtual in "OnDemandServerMediaSubsession"
       and its subclasses.)
    - Updated "Groupsock::groupAddress()" and "Groupsock::sourceFilterAddress()" to return
      a "struct sockaddr_storage&", in preparation for eventual support for IPv6.
    2020.12.09:
    - Cleaned up the "groupsock" library by removing a lot of code that was used only for the
      old "UDP multicast tunneling" mechanism (which would not work for IPv6 addresses anyway).
    - Fixed a bug (accidentally introduced in the previous release) that could cause clients'
      RTCP "RR" packets to not get sent properly.
    2020.12.08:
    - Updated the "Groupsock::addDestination()" and "Groupsock::changeDestinationParameters()"
      functions to take a "struct sockaddr_storage" as parameter, in preparation for
      eventual support for IPv6.
    2020.12.07:
    - Updated the interface to the 'groupsock' "GroupEId" class to use "struct sockaddr_storage",
      in preparation for eventual support for IPv6.
    2020.12.06:
    - Allow for parsing (and generating) "IP IP6" in SDP descriptions,
      for when we later support IPv6.
    2020.12.05:
    - Changed "fServerAddress" in "RTSPClient" and "SIPClient" to use a "struct sockaddr_storage",
      in preparation for eventual support for IPv6.
    - Performed the annual update of the copyright years near the start of each file
    2020.12.04:
    - Updated "RTCPInstance::(un)setSpecificRRHandler()" to take "struct sockaddr_storage"
      as parameter, in more preparation for eventual support for IPv6.
    2020.12.03:
    - Updated "AddressPortLookupTable"s member functions to take "struct sockaddr_storage"
      as parameter, in more preparation for eventual support for IPv6.
    2020.12.02:
    - Updated the "ServerMediaSubsession" "getStreamParameters()" virtual function to
      take "struct sockadd_storage" as parameters, in preparation for eventual support for IPv6.
    2020.12.01:
    - More cleanup of the "groupsock" and "liveMedia" libraries,
      in more preparation for eventual support for IPv6.
    2020.11.30:
    - Updated "RTSPServer.cpp" again to replace another "sockaddr_in" with "sockaddr_storage",
      in more preparation for eventual support for IPv6.
    2020.11.29:
    - Updated the 'groupsock' "GroupEId" implementation (but not yet the interface) to
      use "sockaddr_storage", in preparation for eventual support for IPv6.
    2020.11.28:
    - Updated the packet output routines in the "groupsock" library to use "sockaddr_storage",
      in preparation for eventual support for IPv6
    2020.11.27:
    - Fixed some non-portable code (not buildable on some Linux versions) in
      "groupsock/GroupsockHelper.cpp" that was accidentally introduced in version 2020.11.25.
      (Thanks to Olivier Binda for reporting this.)
---
 net/liveMedia/Makefile  | 2 +-
 net/liveMedia/distinfo  | 6 +++---
 net/liveMedia/pkg-plist | 1 -
 3 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/net/liveMedia/Makefile b/net/liveMedia/Makefile
index ff74ff14d872..a487ce510ac9 100644
--- a/net/liveMedia/Makefile
+++ b/net/liveMedia/Makefile
@@ -1,7 +1,7 @@
 # Created by: nork@FreeBSD.org
 
 PORTNAME=	liveMedia
-DISTVERSION=	2020.11.26
+DISTVERSION=	2022.04.26
 PORTEPOCH=	2
 CATEGORIES=	net devel
 MASTER_SITES=	http://www.live555.com/liveMedia/public/ \
diff --git a/net/liveMedia/distinfo b/net/liveMedia/distinfo
index 11b49a9ee214..f67e7734d762 100644
--- a/net/liveMedia/distinfo
+++ b/net/liveMedia/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1606512355
-SHA256 (live.2020.11.26.tar.gz) = bcdf17932d39491b0de7b1c110d9c686f15e5e90a8d2429d463d5420c953f2f9
-SIZE (live.2020.11.26.tar.gz) = 678899
+TIMESTAMP = 1651168162
+SHA256 (live.2022.04.26.tar.gz) = 24fd24d53da1ac8f8282173039e99c9952186c18404b1fc3b1d4c0e9f49414e7
+SIZE (live.2022.04.26.tar.gz) = 701307
diff --git a/net/liveMedia/pkg-plist b/net/liveMedia/pkg-plist
index ee882ab479df..2d63153419a8 100644
--- a/net/liveMedia/pkg-plist
+++ b/net/liveMedia/pkg-plist
@@ -53,7 +53,6 @@ include/groupsock/IOHandlers.hh
 include/groupsock/NetAddress.hh
 include/groupsock/NetCommon.h
 include/groupsock/NetInterface.hh
-include/groupsock/TunnelEncaps.hh
 include/groupsock/groupsock_version.hh
 include/liveMedia/AC3AudioFileServerMediaSubsession.hh
 include/liveMedia/AC3AudioRTPSink.hh