Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package live555 for openSUSE:Factory checked 
in at 2026-08-26 19:51:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/live555 (Old)
 and      /work/SRC/openSUSE:Factory/.live555.new.1258 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "live555"

Wed Aug 26 19:51:18 2026 rev:47 rq:1373585 version:2026.08.14

Changes:
--------
--- /work/SRC/openSUSE:Factory/live555/live555.changes  2026-06-03 
20:22:18.072886614 +0200
+++ /work/SRC/openSUSE:Factory/.live555.new.1258/live555.changes        
2026-08-26 19:51:54.813906460 +0200
@@ -1,0 +2,25 @@
+Sat Aug 22 20:32:55 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 2026.08.14:
+  * Fixed a bug that could cause a problem with subclassed variants
+    of H.264 or H.265 RTP sinks.
+  * Fixed old code in "GroupsockHelper.cpp" that was using
+    hardcoded numeric error numbers
+  * Fixed a memory leak that could occur when parsing a SDP
+    description that contains two or more
+  * When adding protection against the use of 'stolen' RTSP session
+    ids we forgot to do so for every "SETUP" command.  This release
+    fixes that.
+  * Fixed a typo in "RTSPCommon.cpp": "smtpe" -> "smpte".
+  * Updated the RTSP server implementation to return a "Unsupported
+    Transport" error if a "SETUP" request does not include a
+    "Transport:" header.
+  * Added "-std=c++20" to the "CPLUSPLUS_FLAGS" line in each
+    "config.*" file, so that "std::atomic_flag::test" will compile
+    with compilers that support
+  * Made the parsing of MP3 audio files more robust to protect
+    against malformed MP3 data.
+  * Minor change to "testProgs/testRTSPClient.cpp" to make
+    compiling on Mac OS X happier.
+
+-------------------------------------------------------------------

Old:
----
  live.2026.06.01.tar.gz

New:
----
  live.2026.08.14.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ live555.spec ++++++
--- /var/tmp/diff_new_pack.bAs5HG/_old  2026-08-26 19:51:56.510966396 +0200
+++ /var/tmp/diff_new_pack.bAs5HG/_new  2026-08-26 19:51:56.517966643 +0200
@@ -17,10 +17,10 @@
 #
 
 
-%define lmdmaj 119
+%define lmdmaj 120
 
 Name:           live555
-Version:        2026.06.01
+Version:        2026.08.14
 Release:        0
 Summary:        LIVE555 Streaming Media
 License:        LGPL-2.1-only

++++++ live.2026.06.01.tar.gz -> live.2026.08.14.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/live/BasicUsageEnvironment/include/BasicUsageEnvironment_version.hh 
new/live/BasicUsageEnvironment/include/BasicUsageEnvironment_version.hh
--- old/live/BasicUsageEnvironment/include/BasicUsageEnvironment_version.hh     
2026-06-01 11:12:14.000000000 +0200
+++ new/live/BasicUsageEnvironment/include/BasicUsageEnvironment_version.hh     
2026-08-14 14:53:03.000000000 +0200
@@ -19,8 +19,8 @@
 #ifndef _BASICUSAGEENVIRONMENT_VERSION_HH
 #define _BASICUSAGEENVIRONMENT_VERSION_HH
 
-#define BASICUSAGEENVIRONMENT_LIBRARY_VERSION_STRING   "2026.06.01"
-#define BASICUSAGEENVIRONMENT_LIBRARY_VERSION_INT              1780272000
+#define BASICUSAGEENVIRONMENT_LIBRARY_VERSION_STRING   "2026.08.14"
+#define BASICUSAGEENVIRONMENT_LIBRARY_VERSION_INT              1786665600
 
 extern char const* const BasicUsageEnvironmentLibraryVersionStr;
 extern int const BasicUsageEnvironmentLibraryVersionInt;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/live/UsageEnvironment/include/UsageEnvironment_version.hh 
new/live/UsageEnvironment/include/UsageEnvironment_version.hh
--- old/live/UsageEnvironment/include/UsageEnvironment_version.hh       
2026-06-01 11:12:14.000000000 +0200
+++ new/live/UsageEnvironment/include/UsageEnvironment_version.hh       
2026-08-14 14:53:03.000000000 +0200
@@ -19,8 +19,8 @@
 #ifndef _USAGEENVIRONMENT_VERSION_HH
 #define _USAGEENVIRONMENT_VERSION_HH
 
-#define USAGEENVIRONMENT_LIBRARY_VERSION_STRING        "2026.06.01"
-#define USAGEENVIRONMENT_LIBRARY_VERSION_INT           1780272000
+#define USAGEENVIRONMENT_LIBRARY_VERSION_STRING        "2026.08.14"
+#define USAGEENVIRONMENT_LIBRARY_VERSION_INT           1786665600
 
 extern char const* const UsageEnvironmentLibraryVersionStr;
 extern int const UsageEnvironmentLibraryVersionInt;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/config.armeb-uclibc new/live/config.armeb-uclibc
--- old/live/config.armeb-uclibc        2026-06-01 11:12:24.000000000 +0200
+++ new/live/config.armeb-uclibc        2026-08-14 14:53:19.000000000 +0200
@@ -6,7 +6,7 @@
 C_FLAGS =              $(COMPILE_OPTS)
 CPP =                  cpp
 CPLUSPLUS_COMPILER =   $(CROSS_COMPILE)g++
-CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -Wall -DBSD=1
+CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -std=c++20 -Wall -DBSD=1
 OBJ =                  o
 LINK =                 $(CROSS_COMPILE)gcc -o
 LINK_OPTS =            -L.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/config.armlinux new/live/config.armlinux
--- old/live/config.armlinux    2026-06-01 11:12:24.000000000 +0200
+++ new/live/config.armlinux    2026-08-14 14:53:19.000000000 +0200
@@ -5,7 +5,7 @@
 C_FLAGS =              $(COMPILE_OPTS)
 CPP =                  cpp
 CPLUSPLUS_COMPILER =   $(CROSS_COMPILE)g++
-CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -Wall -DBSD=1
+CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -std=c++20 -Wall -DBSD=1
 OBJ =                  o
 LINK =                 $(CROSS_COMPILE)g++ -o
 LINK_OPTS =            
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/config.avr32-linux new/live/config.avr32-linux
--- old/live/config.avr32-linux 2026-06-01 11:12:24.000000000 +0200
+++ new/live/config.avr32-linux 2026-08-14 14:53:19.000000000 +0200
@@ -4,7 +4,7 @@
 C_FLAGS =        $(COMPILE_OPTS)
 CPP =            cpp
 CPLUSPLUS_COMPILER =    $(CROSS_COMPILE)c++
-CPLUSPLUS_FLAGS =    $(COMPILE_OPTS) -Wall -fuse-cxa-atexit -DBSD=1 OBJ =      
      o
+CPLUSPLUS_FLAGS =    $(COMPILE_OPTS) -std=c++20 -Wall -fuse-cxa-atexit -DBSD=1 
OBJ =            o
 LINK =            $(CROSS_COMPILE)c++ -o
 LINK_OPTS =         
 CONSOLE_LINK_OPTS =    $(LINK_OPTS)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/config.bfin-linux-uclibc 
new/live/config.bfin-linux-uclibc
--- old/live/config.bfin-linux-uclibc   2026-06-01 11:12:24.000000000 +0200
+++ new/live/config.bfin-linux-uclibc   2026-08-14 14:53:19.000000000 +0200
@@ -2,10 +2,10 @@
 COMPILE_OPTS       = $(INCLUDES) -I/usr/local/include -I. 
-DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1 -DUCLINUX -D_FILE_OFFSET_BITS=64
 C                  = c
 C_COMPILER         = $(CROSS_COMPILER)gcc
-C_FLAGS            = $(COMPILE_OPTS) -Wall
+C_FLAGS            = $(COMPILE_OPTS) -std=c++20 -Wall
 CPP                = cpp
 CPLUSPLUS_COMPILER = $(CROSS_COMPILER)g++
-CPLUSPLUS_FLAGS    = $(COMPILE_OPTS) -Wall
+CPLUSPLUS_FLAGS    = $(COMPILE_OPTS) -std=c++20 -Wall
 OBJ                = o
 LINK               = $(CROSS_COMPILER)g++ -o
 LINK_OPTS          = -L.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/config.bfin-uclinux new/live/config.bfin-uclinux
--- old/live/config.bfin-uclinux        2026-06-01 11:12:24.000000000 +0200
+++ new/live/config.bfin-uclinux        2026-08-14 14:53:19.000000000 +0200
@@ -2,10 +2,10 @@
 COMPILE_OPTS =        $(INCLUDES) -I/usr/local/include -I. 
-DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1 -DUCLINUX -D_FILE_OFFSET_BITS=64
 C =            c
 C_COMPILER =        $(CROSS_COMPILER)gcc
-C_FLAGS =        $(COMPILE_OPTS) -Wall
+C_FLAGS =        $(COMPILE_OPTS) -std=c++20 -Wall
 CPP =            cpp
 CPLUSPLUS_COMPILER =    $(CROSS_COMPILER)g++
-CPLUSPLUS_FLAGS =    $(COMPILE_OPTS) -Wall
+CPLUSPLUS_FLAGS =    $(COMPILE_OPTS) -std=c++20 -Wall
 OBJ =            o
 LINK =            $(CROSS_COMPILER)g++ -Wl,-elf2flt -o
 LINK_OPTS =        -L.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/config.bsplinux new/live/config.bsplinux
--- old/live/config.bsplinux    2026-06-01 11:12:24.000000000 +0200
+++ new/live/config.bsplinux    2026-08-14 14:53:19.000000000 +0200
@@ -5,7 +5,7 @@
 C_FLAGS =               $(COMPILE_OPTS)
 CPP =                   cpp
 CPLUSPLUS_COMPILER =    $(CROSS_COMPILE)e++
-CPLUSPLUS_FLAGS =       $(COMPILE_OPTS) -Wall -DBSD=1
+CPLUSPLUS_FLAGS =       $(COMPILE_OPTS) -std=c++20 -Wall -DBSD=1
 OBJ =                   o
 LINK =                  $(CROSS_COMPILE)e++ -o
 LINK_OPTS =             -L.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/config.cris-axis-linux-gnu 
new/live/config.cris-axis-linux-gnu
--- old/live/config.cris-axis-linux-gnu 2026-06-01 11:12:24.000000000 +0200
+++ new/live/config.cris-axis-linux-gnu 2026-08-14 14:53:19.000000000 +0200
@@ -3,7 +3,7 @@
 # See http://developer.axis.com/doc/software/apps/apps-howto.html
 # for more information.
 AXIS_DIR = $(AXIS_TOP_DIR)/target/cris-axis-linux-gnu
-COMPILE_OPTS = $(INCLUDES) -I. -mlinux -isystem $(AXIS_DIR)/include 
-I/usr/local/include -Wall -O2 -DSOCKLEN_T=socklen_t -DCRIS 
-D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64
+COMPILE_OPTS = $(INCLUDES) -I. -mlinux -isystem $(AXIS_DIR)/include 
-I/usr/local/include -std=c++20 -Wall -O2 -DSOCKLEN_T=socklen_t -DCRIS 
-D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64
 C =                    c
 C_COMPILER =           gcc-cris
 C_FLAGS =              $(COMPILE_OPTS)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/config.cygwin new/live/config.cygwin
--- old/live/config.cygwin      2026-06-01 11:12:24.000000000 +0200
+++ new/live/config.cygwin      2026-08-14 14:53:19.000000000 +0200
@@ -4,7 +4,7 @@
 C_FLAGS =              $(COMPILE_OPTS) -DUSE_OUR_BZERO=1 -D__CYGWIN__
 CPP =                  cpp
 CPLUSPLUS_COMPILER =   c++
-CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -Wall -DBSD=1
+CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -std=c++20 -Wall -DBSD=1
 OBJ =                  o
 LINK =                 c++ -o 
 LINK_OPTS =            -L.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/config.cygwin-for-vlc 
new/live/config.cygwin-for-vlc
--- old/live/config.cygwin-for-vlc      2026-06-01 11:12:24.000000000 +0200
+++ new/live/config.cygwin-for-vlc      2026-08-14 14:53:19.000000000 +0200
@@ -4,7 +4,7 @@
 C_FLAGS =              $(COMPILE_OPTS) -DUSE_OUR_BZERO=1 -D_WIN32 -mno-cygwin
 CPP =                  cpp
 CPLUSPLUS_COMPILER =   c++
-CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -Wall -DBSD=1 -D_WIN32 -Wno-deprecated 
-mno-cygwin
+CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -std=c++20 -Wall -DBSD=1 -D_WIN32 
-Wno-deprecated -mno-cygwin
 OBJ =                  o
 LINK =                 c++ -o
 LINK_OPTS =            -L.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/config.freebsd new/live/config.freebsd
--- old/live/config.freebsd     2026-06-01 11:12:24.000000000 +0200
+++ new/live/config.freebsd     2026-08-14 14:53:19.000000000 +0200
@@ -4,7 +4,7 @@
 C_FLAGS =              $(COMPILE_OPTS)
 CPP =                  cpp
 CPLUSPLUS_COMPILER =   c++
-CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -Wall
+CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -std=c++20 -Wall
 OBJ =                  o
 LINK =                 c++ -o
 LINK_OPTS =            -L.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/config.freebsd-no-openssl 
new/live/config.freebsd-no-openssl
--- old/live/config.freebsd-no-openssl  2026-06-01 11:12:24.000000000 +0200
+++ new/live/config.freebsd-no-openssl  2026-08-14 14:53:19.000000000 +0200
@@ -4,7 +4,7 @@
 C_FLAGS =              $(COMPILE_OPTS)
 CPP =                  cpp
 CPLUSPLUS_COMPILER =   c++
-CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -Wall
+CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -std=c++20 -Wall
 OBJ =                  o
 LINK =                 c++ -o
 LINK_OPTS =            -L.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/config.iphone-simulator 
new/live/config.iphone-simulator
--- old/live/config.iphone-simulator    2026-06-01 11:12:24.000000000 +0200
+++ new/live/config.iphone-simulator    2026-08-14 14:53:19.000000000 +0200
@@ -15,7 +15,7 @@
 C_FLAGS =               $(COMPILE_OPTS)
 CPP =                   cpp
 CPLUSPLUS_COMPILER =    /usr/bin/xcrun clang
-CPLUSPLUS_FLAGS =       $(COMPILE_OPTS) -Wall
+CPLUSPLUS_FLAGS =       $(COMPILE_OPTS) -std=c++20 -Wall
 OBJ =                   o
 LINK =                  /usr/bin/xcrun clang -o
 LINK_OPTS =             -L. -arch i386 
-miphoneos-version-min=$(MIN_IOS_VERSION) --sysroot=$(SDK) -isysroot 
-L$(SDK)/usr/lib/system -I$(SDK)/usr/lib /usr/lib/libc++.dylib
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/config.iphoneos new/live/config.iphoneos
--- old/live/config.iphoneos    2026-06-01 11:12:24.000000000 +0200
+++ new/live/config.iphoneos    2026-08-14 14:53:19.000000000 +0200
@@ -14,7 +14,7 @@
 C_FLAGS =               $(COMPILE_OPTS)
 CPP =                   cpp
 CPLUSPLUS_COMPILER =    /usr/bin/xcrun clang
-CPLUSPLUS_FLAGS =       $(COMPILE_OPTS) -Wall
+CPLUSPLUS_FLAGS =       $(COMPILE_OPTS) -std=c++20 -Wall
 OBJ =                   o
 LINK =                  /usr/bin/xcrun clang -o 
 LINK_OPTS =             -v -L. -arch armv7 --sysroot=$(SDK) 
-L$(SDK)/usr/lib/system /usr/lib/libc++.dylib
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/config.linux new/live/config.linux
--- old/live/config.linux       2026-06-01 11:12:24.000000000 +0200
+++ new/live/config.linux       2026-08-14 14:53:19.000000000 +0200
@@ -4,7 +4,7 @@
 C_FLAGS =              $(COMPILE_OPTS) $(CPPFLAGS) $(CFLAGS)
 CPP =                  cpp
 CPLUSPLUS_COMPILER =   c++
-CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -Wall -DBSD=1 $(CPPFLAGS) $(CXXFLAGS)
+CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -std=c++20 -Wall -DBSD=1 $(CPPFLAGS) 
$(CXXFLAGS)
 OBJ =                  o
 LINK =                 c++ -o
 LINK_OPTS =            -L. $(LDFLAGS)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/config.linux-64bit new/live/config.linux-64bit
--- old/live/config.linux-64bit 2026-06-01 11:12:24.000000000 +0200
+++ new/live/config.linux-64bit 2026-08-14 14:53:19.000000000 +0200
@@ -4,7 +4,7 @@
 C_FLAGS =              $(COMPILE_OPTS)
 CPP =                  cpp
 CPLUSPLUS_COMPILER =   c++
-CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -Wall -DBSD=1
+CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -std=c++20 -Wall -DBSD=1
 OBJ =                  o
 LINK =                 c++ -o
 LINK_OPTS =            -L.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/config.linux-gdb new/live/config.linux-gdb
--- old/live/config.linux-gdb   2026-06-01 11:12:24.000000000 +0200
+++ new/live/config.linux-gdb   2026-08-14 14:53:19.000000000 +0200
@@ -4,7 +4,7 @@
 C_FLAGS =              $(COMPILE_OPTS)
 CPP =                  cpp
 CPLUSPLUS_COMPILER =   c++
-CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -Wall -DBSD=1
+CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -std=c++20 -Wall -DBSD=1
 OBJ =                  o
 LINK =                 c++ -o
 LINK_OPTS =            -L.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/config.linux-gdb-no-std-lib 
new/live/config.linux-gdb-no-std-lib
--- old/live/config.linux-gdb-no-std-lib        2026-06-01 11:12:24.000000000 
+0200
+++ new/live/config.linux-gdb-no-std-lib        2026-08-14 14:53:19.000000000 
+0200
@@ -4,7 +4,7 @@
 C_FLAGS =              $(COMPILE_OPTS) $(CPPFLAGS) $(CFLAGS)
 CPP =                  cpp
 CPLUSPLUS_COMPILER =   c++
-CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -Wall -DBSD=1 $(CPPFLAGS) $(CXXFLAGS)
+CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -std=c++20 -Wall -DBSD=1 $(CPPFLAGS) 
$(CXXFLAGS)
 OBJ =                  o
 LINK =                 c++ -o
 LINK_OPTS =            -L. $(LDFLAGS)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/config.linux-gdb-sanitize 
new/live/config.linux-gdb-sanitize
--- old/live/config.linux-gdb-sanitize  2026-06-01 11:12:24.000000000 +0200
+++ new/live/config.linux-gdb-sanitize  2026-08-14 14:53:19.000000000 +0200
@@ -4,7 +4,7 @@
 C_FLAGS =              $(COMPILE_OPTS)
 CPP =                  cpp
 CPLUSPLUS_COMPILER =   c++
-CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -Wall -DBSD=1
+CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -std=c++20 -Wall -DBSD=1
 OBJ =                  o
 LINK =                 c++ -o
 LINK_OPTS =            -L. -lasan -lubsan
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/config.linux-no-openssl 
new/live/config.linux-no-openssl
--- old/live/config.linux-no-openssl    2026-06-01 11:12:24.000000000 +0200
+++ new/live/config.linux-no-openssl    2026-08-14 14:53:19.000000000 +0200
@@ -4,7 +4,7 @@
 C_FLAGS =              $(COMPILE_OPTS) $(CPPFLAGS) $(CFLAGS)
 CPP =                  cpp
 CPLUSPLUS_COMPILER =   c++
-CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -Wall -DBSD=1 $(CPPFLAGS) $(CXXFLAGS)
+CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -std=c++20 -Wall -DBSD=1 $(CPPFLAGS) 
$(CXXFLAGS)
 OBJ =                  o
 LINK =                 c++ -o
 LINK_OPTS =            -L. $(LDFLAGS)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/config.linux-no-std-lib 
new/live/config.linux-no-std-lib
--- old/live/config.linux-no-std-lib    2026-06-01 11:12:24.000000000 +0200
+++ new/live/config.linux-no-std-lib    2026-08-14 14:53:19.000000000 +0200
@@ -4,7 +4,7 @@
 C_FLAGS =              $(COMPILE_OPTS) $(CPPFLAGS) $(CFLAGS)
 CPP =                  cpp
 CPLUSPLUS_COMPILER =   c++
-CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -Wall -DBSD=1 $(CPPFLAGS) $(CXXFLAGS)
+CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -std=c++20 -Wall -DBSD=1 $(CPPFLAGS) 
$(CXXFLAGS)
 OBJ =                  o
 LINK =                 c++ -o
 LINK_OPTS =            -L. $(LDFLAGS)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/config.linux-with-shared-libraries 
new/live/config.linux-with-shared-libraries
--- old/live/config.linux-with-shared-libraries 2026-06-01 11:12:24.000000000 
+0200
+++ new/live/config.linux-with-shared-libraries 2026-08-14 14:53:19.000000000 
+0200
@@ -3,8 +3,8 @@
 # At least one interface changes, or is removed => CURRENT += 1; REVISION = 0; 
AGE = 0
 # One or more interfaces were added, but no existing interfaces were changed 
or removed => CURRENT += 1; REVISION = 0; AGE += 1
 
-libliveMedia_VERSION_CURRENT=119
-libliveMedia_VERSION_REVISION=2
+libliveMedia_VERSION_CURRENT=120
+libliveMedia_VERSION_REVISION=8
 libliveMedia_VERSION_AGE=0
 libliveMedia_LIB_SUFFIX=so.$(shell expr $(libliveMedia_VERSION_CURRENT) - 
$(libliveMedia_VERSION_AGE)).$(libliveMedia_VERSION_AGE).$(libliveMedia_VERSION_REVISION)
 
@@ -19,7 +19,7 @@
 libUsageEnvironment_LIB_SUFFIX=so.$(shell expr 
$(libUsageEnvironment_VERSION_CURRENT) - 
$(libUsageEnvironment_VERSION_AGE)).$(libUsageEnvironment_VERSION_AGE).$(libUsageEnvironment_VERSION_REVISION)
 
 libgroupsock_VERSION_CURRENT=33
-libgroupsock_VERSION_REVISION=0
+libgroupsock_VERSION_REVISION=1
 libgroupsock_VERSION_AGE=0
 libgroupsock_LIB_SUFFIX=so.$(shell expr $(libgroupsock_VERSION_CURRENT) - 
$(libgroupsock_VERSION_AGE)).$(libgroupsock_VERSION_AGE).$(libgroupsock_VERSION_REVISION)
 #####
@@ -30,7 +30,7 @@
 C_FLAGS =              $(COMPILE_OPTS) $(CPPFLAGS) $(CFLAGS)
 CPP =                  cpp
 CPLUSPLUS_COMPILER =   $(CXX)
-CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -Wall -DBSD=1 $(CPPFLAGS) $(CXXFLAGS)
+CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -std=c++20 -Wall -DBSD=1 $(CPPFLAGS) 
$(CXXFLAGS)
 OBJ =                  o
 LINK =                 $(CXX) -o
 LINK_OPTS =            -L. $(LDFLAGS)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/config.macosx-bigsur 
new/live/config.macosx-bigsur
--- old/live/config.macosx-bigsur       2026-06-01 11:12:24.000000000 +0200
+++ new/live/config.macosx-bigsur       2026-08-14 14:53:19.000000000 +0200
@@ -4,7 +4,7 @@
 C_FLAGS =              $(COMPILE_OPTS)
 CPP =                  cpp
 CPLUSPLUS_COMPILER =   c++
-CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -Wall
+CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -std=c++20 -Wall
 OBJ =                  o
 LINK =                 c++ -o 
 LINK_OPTS =            -L. -L/usr/local/ssl/lib
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/config.macosx-catalina 
new/live/config.macosx-catalina
--- old/live/config.macosx-catalina     2026-06-01 11:12:24.000000000 +0200
+++ new/live/config.macosx-catalina     2026-08-14 14:53:19.000000000 +0200
@@ -4,7 +4,7 @@
 C_FLAGS =              $(COMPILE_OPTS)
 CPP =                  cpp
 CPLUSPLUS_COMPILER =   c++
-CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -Wall
+CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -std=c++20 -Wall
 OBJ =                  o
 LINK =                 c++ -o 
 LINK_OPTS =            -L.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/config.macosx-no-openssl 
new/live/config.macosx-no-openssl
--- old/live/config.macosx-no-openssl   2026-06-01 11:12:24.000000000 +0200
+++ new/live/config.macosx-no-openssl   2026-08-14 14:53:19.000000000 +0200
@@ -4,7 +4,7 @@
 C_FLAGS =              $(COMPILE_OPTS)
 CPP =                  cpp
 CPLUSPLUS_COMPILER =   c++
-CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -Wall
+CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -std=c++20 -Wall
 OBJ =                  o
 LINK =                 c++ -o 
 LINK_OPTS =            -L.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/config.mingw new/live/config.mingw
--- old/live/config.mingw       2026-06-01 11:12:24.000000000 +0200
+++ new/live/config.mingw       2026-08-14 14:53:19.000000000 +0200
@@ -4,7 +4,7 @@
 C_FLAGS =              $(COMPILE_OPTS) -DUSE_OUR_BZERO=1 -D__MINGW32__
 CPP =                  cpp
 CPLUSPLUS_COMPILER =   $(CXX)
-CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -D__MINGW32__ -Wall -Wno-deprecated
+CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -D__MINGW32__ -std=c++20 -Wall 
-Wno-deprecated
 OBJ =                  o
 LINK =                 $(CXX) -o 
 LINK_OPTS =            -L.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/config.openbsd new/live/config.openbsd
--- old/live/config.openbsd     2026-06-01 11:12:24.000000000 +0200
+++ new/live/config.openbsd     2026-08-14 14:53:19.000000000 +0200
@@ -5,7 +5,7 @@
 C_FLAGS =              $(COMPILE_OPTS)
 CPP =                  cpp
 CPLUSPLUS_COMPILER =   c++
-CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -Wall -DAIX=1
+CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -std=c++20 -Wall -DAIX=1
 OBJ =                  o
 LINK =                 c++ -o
 LINK_OPTS =            -L.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/config.raspberrypi new/live/config.raspberrypi
--- old/live/config.raspberrypi 2026-06-01 11:12:24.000000000 +0200
+++ new/live/config.raspberrypi 2026-08-14 14:53:19.000000000 +0200
@@ -4,7 +4,7 @@
 C_FLAGS =              $(COMPILE_OPTS) $(CPPFLAGS) $(CFLAGS)
 CPP =                  cpp
 CPLUSPLUS_COMPILER =   c++
-CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -Wall -DBSD=1 $(CPPFLAGS) $(CXXFLAGS)
+CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -std=c++20 -Wall -DBSD=1 $(CPPFLAGS) 
$(CXXFLAGS)
 OBJ =                  o
 LINK =                 c++ -o
 LINK_OPTS =            -L. $(LDFLAGS)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/config.solaris-32bit 
new/live/config.solaris-32bit
--- old/live/config.solaris-32bit       2026-06-01 11:12:24.000000000 +0200
+++ new/live/config.solaris-32bit       2026-08-14 14:53:19.000000000 +0200
@@ -4,7 +4,7 @@
 C_FLAGS =              $(COMPILE_OPTS)
 CPP =                  cpp
 CPLUSPLUS_COMPILER =   c++
-CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -Wall
+CPLUSPLUS_FLAGS =      $(COMPILE_OPTS) -std=c++20 -Wall
 OBJ =                  o
 LINK =                 c++ -o
 LINK_OPTS =            -L.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/config.solaris-64bit 
new/live/config.solaris-64bit
--- old/live/config.solaris-64bit       2026-06-01 11:12:24.000000000 +0200
+++ new/live/config.solaris-64bit       2026-08-14 14:53:19.000000000 +0200
@@ -4,7 +4,7 @@
 C_FLAGS =               $(COMPILE_OPTS)
 CPP =                   cpp
 CPLUSPLUS_COMPILER =    c++
-CPLUSPLUS_FLAGS =       $(COMPILE_OPTS) -Wall
+CPLUSPLUS_FLAGS =       $(COMPILE_OPTS) -std=c++20 -Wall
 OBJ =                   o
 LINK =                  c++ -m64 -o 
 LINK_OPTS =             -L.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/config.uClinux new/live/config.uClinux
--- old/live/config.uClinux     2026-06-01 11:12:24.000000000 +0200
+++ new/live/config.uClinux     2026-08-14 14:53:19.000000000 +0200
@@ -6,7 +6,7 @@
 C_FLAGS = $(CFLAGS)
 CPP =            cpp
 CPLUSPLUS_COMPILER =    $(CROSS_COMPILE)g++
-CPLUSPLUS_FLAGS =    $(COMPILE_OPTS) -Wall -DBSD=1
+CPLUSPLUS_FLAGS =    $(COMPILE_OPTS) -std=c++20 -Wall -DBSD=1
 CPLUSPLUS_FLAGS += $(CPPFLAGS) -fexceptions
 OBJ =            o
 LINK =            $(CROSS_COMPILE)g++ -o
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/groupsock/GroupsockHelper.cpp 
new/live/groupsock/GroupsockHelper.cpp
--- old/live/groupsock/GroupsockHelper.cpp      2026-06-01 11:12:14.000000000 
+0200
+++ new/live/groupsock/GroupsockHelper.cpp      2026-08-14 14:53:03.000000000 
+0200
@@ -420,7 +420,7 @@
   if (bytesRead < 0) {
     //##### HACK to work around bugs in Linux and Windows:
     int err = env.getErrno();
-    if (err == 111 /*ECONNREFUSED (Linux)*/
+    if (err == ECONNREFUSED /*(Linux)*/
 #if defined(__WIN32__) || defined(_WIN32)
        // What a piece of crap Windows is.  Sometimes
        // recvfrom() returns -1, but with an 'errno' of 0.
@@ -432,7 +432,7 @@
 #else
        || err == EAGAIN
 #endif
-       || err == 113 /*EHOSTUNREACH (Linux)*/) { // Why does Linux return this 
for datagram sock?
+       || err == EHOSTUNREACH /*(Linux)*/) { // Why does Linux return this for 
datagram sock?
       return 0;
     }
     //##### END HACK
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/groupsock/include/groupsock_version.hh 
new/live/groupsock/include/groupsock_version.hh
--- old/live/groupsock/include/groupsock_version.hh     2026-06-01 
11:12:14.000000000 +0200
+++ new/live/groupsock/include/groupsock_version.hh     2026-08-14 
14:53:03.000000000 +0200
@@ -19,8 +19,8 @@
 #ifndef _GROUPSOCK_VERSION_HH
 #define _GROUPSOCK_VERSION_HH
 
-#define GROUPSOCK_LIBRARY_VERSION_STRING       "2026.06.01"
-#define GROUPSOCK_LIBRARY_VERSION_INT          1780272000
+#define GROUPSOCK_LIBRARY_VERSION_STRING       "2026.08.14"
+#define GROUPSOCK_LIBRARY_VERSION_INT          1786665600
 
 extern char const* const groupsockLibraryVersionStr;
 extern int const groupsockLibraryVersionInt;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/liveMedia/H264or5VideoRTPSink.cpp 
new/live/liveMedia/H264or5VideoRTPSink.cpp
--- old/live/liveMedia/H264or5VideoRTPSink.cpp  2026-06-01 11:12:14.000000000 
+0200
+++ new/live/liveMedia/H264or5VideoRTPSink.cpp  2026-08-14 14:53:03.000000000 
+0200
@@ -116,8 +116,9 @@
   // First, check whether we have a 'fragmenter' class set up yet.
   // If not, create it now:
   if (fOurFragmenter == NULL) {
-    fOurFragmenter = new H264or5Fragmenter(fHNumber, envir(), fSource, 
OutPacketBuffer::maxSize,
-                                          ourMaxPacketSize() - 12/*RTP hdr 
size*/);
+    fOurFragmenter
+      = new H264or5Fragmenter(fHNumber, envir(), fSource, 
OutPacketBuffer::maxSize,
+                             ourMaxPacketSize() - 12/*RTP hdr size*/ - 
specialHeaderSize());
   } else {
     fOurFragmenter->reassignInputSource(fSource);
   }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/liveMedia/MP3Internals.cpp 
new/live/liveMedia/MP3Internals.cpp
--- old/live/liveMedia/MP3Internals.cpp 2026-06-01 11:12:14.000000000 +0200
+++ new/live/liveMedia/MP3Internals.cpp 2026-08-14 14:53:03.000000000 +0200
@@ -48,7 +48,7 @@
   int shortDiff[13];
 };
 
-static struct bandInfoStruct const bandInfo[7] = {
+static struct bandInfoStruct const bandInfo[10] = {
 /* MPEG 1.0 */
  { {0,4,8,12,16,20,24,30,36,44,52,62,74, 
90,110,134,162,196,238,288,342,418,576},
    {4,4,4,4,4,4,6,6,8, 8,10,12,16,20,24,28,34,42,50,54, 76,158},
@@ -85,6 +85,21 @@
  { 
{0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576},
    {6,6,6,6,6,6,8,10,12,14,16,20,24,28,32,38,46,52,60,68,58,54 } ,
    {0,4*3,8*3,12*3,18*3,24*3,32*3,42*3,56*3,74*3,100*3,132*3,174*3,192*3} ,
+   {4,4,4,6,6,8,10,14,18,26,32,42,18 } } ,
+
+ { 
{0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576},
+   {6,6,6,6,6,6,8,10,12,14,16,20,24,28,32,38,46,52,60,68,58,54 } ,
+   {0,4*3,8*3,12*3,18*3,24*3,32*3,42*3,56*3,74*3,100*3,132*3,174*3,192*3} ,
+   {4,4,4,6,6,8,10,14,18,26,32,42,18 } } ,
+
+ { 
{0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576},
+   {6,6,6,6,6,6,8,10,12,14,16,20,24,28,32,38,46,52,60,68,58,54 } ,
+   {0,4*3,8*3,12*3,18*3,24*3,32*3,42*3,56*3,74*3,100*3,132*3,174*3,192*3} ,
+   {4,4,4,6,6,8,10,14,18,26,32,42,18 } } ,
+
+ { 
{0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576},
+   {6,6,6,6,6,6,8,10,12,14,16,20,24,28,32,38,46,52,60,68,58,54 } ,
+   {0,4*3,8*3,12*3,18*3,24*3,32*3,42*3,56*3,74*3,100*3,132*3,174*3,192*3} ,
    {4,4,4,6,6,8,10,14,18,26,32,42,18 } } ,
 };
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/liveMedia/MatroskaFileParser.cpp 
new/live/liveMedia/MatroskaFileParser.cpp
--- old/live/liveMedia/MatroskaFileParser.cpp   2026-06-01 11:12:14.000000000 
+0200
+++ new/live/liveMedia/MatroskaFileParser.cpp   2026-08-14 14:53:03.000000000 
+0200
@@ -340,7 +340,8 @@
 #ifdef DEBUG
          fprintf(stderr, "\tTrack Number %d\n", trackNumber);
 #endif
-         if (track != NULL && trackNumber != 0) {
+         if (track != NULL && trackNumber != 0
+             && track->trackNumber == 0 /* this track doesn't already have a 
number */) {
            track->trackNumber = trackNumber;
            fOurFile.addTrack(track, trackNumber);
          }
@@ -489,12 +490,11 @@
       }
       case MATROSKA_ID_CODEC_PRIVATE: {
        u_int8_t* codecPrivate;
-       unsigned codecPrivateSize;
-       if (parseEBMLVal_binary(size, codecPrivate)) {
-         codecPrivateSize = (unsigned)size.val();
+       u_int32_t codecPrivateSize;
+       if (parseEBMLVal_binary_constrainSize(size, codecPrivateSize, 
codecPrivate)) {
 #ifdef DEBUG
          fprintf(stderr, "\tCodec Private: ");
-         for (unsigned i = 0; i < codecPrivateSize; ++i) fprintf(stderr, 
"%02x:", codecPrivate[i]);
+         for (u_int32_t i = 0; i < codecPrivateSize; ++i) fprintf(stderr, 
"%02x:", codecPrivate[i]);
          fprintf(stderr, "\n");
 #endif
          if (track != NULL) {
@@ -654,12 +654,11 @@
       }
       case MATROSKA_ID_CONTENT_COMP_SETTINGS: {
        u_int8_t* headerStrippedBytes;
-       unsigned headerStrippedBytesSize;
-       if (parseEBMLVal_binary(size, headerStrippedBytes)) {
-         headerStrippedBytesSize = (unsigned)size.val();
+       u_int32_t headerStrippedBytesSize;
+       if (parseEBMLVal_binary_constrainSize(size, headerStrippedBytesSize, 
headerStrippedBytes)) {
 #ifdef DEBUG
          fprintf(stderr, "\tHeader Stripped Bytes: ");
-         for (unsigned i = 0; i < headerStrippedBytesSize; ++i) 
fprintf(stderr, "%02x:", headerStrippedBytes[i]);
+         for (u_int32_t i = 0; i < headerStrippedBytesSize; ++i) 
fprintf(stderr, "%02x:", headerStrippedBytes[i]);
          fprintf(stderr, "\n");
 #endif
          if (track != NULL) {
@@ -678,9 +677,8 @@
       }
       case MATROSKA_ID_COLOR_SPACE: {
        u_int8_t* colourSpace;
-       unsigned colourSpaceSize;
-       if (parseEBMLVal_binary(size, colourSpace)) {
-         colourSpaceSize = (unsigned)size.val();
+       u_int32_t colourSpaceSize;
+       if (parseEBMLVal_binary_constrainSize(size, colourSpaceSize, 
colourSpace)) {
 #ifdef DEBUG
          fprintf(stderr, "\tColor space : %02x %02x %02x %02x\n", 
colourSpace[0], colourSpace[1], colourSpace[2], colourSpace[3]);
 #endif
@@ -1354,7 +1352,7 @@
   return parseEBMLNumber(id) && parseEBMLNumber(size);
 }
 
-Boolean MatroskaFileParser::parseEBMLVal_unsigned64(EBMLDataSize& size, 
u_int64_t& result) {
+Boolean MatroskaFileParser::parseEBMLVal_unsigned64(EBMLDataSize const& size, 
u_int64_t& result) {
   u_int64_t sv = size.val();
   if (sv > 8) return False; // size too large
 
@@ -1371,7 +1369,7 @@
   return True;
 }
 
-Boolean MatroskaFileParser::parseEBMLVal_unsigned(EBMLDataSize& size, 
unsigned& result) {
+Boolean MatroskaFileParser::parseEBMLVal_unsigned(EBMLDataSize const& size, 
unsigned& result) {
   if (size.val() > 4) return False; // size too large
 
   u_int64_t result64;
@@ -1382,7 +1380,7 @@
   return True;
 }
 
-Boolean MatroskaFileParser::parseEBMLVal_float(EBMLDataSize& size, float& 
result) {
+Boolean MatroskaFileParser::parseEBMLVal_float(EBMLDataSize const& size, 
float& result) {
   if (size.val() == 4) {
     // Normal case.  Read the value as if it were a 4-byte integer, then copy 
it to the 'float' result:
     unsigned resultAsUnsigned;
@@ -1408,13 +1406,13 @@
   }
 }
 
-Boolean MatroskaFileParser::parseEBMLVal_string(EBMLDataSize& size, char*& 
result) {
-  unsigned resultLength = (unsigned)size.val();
+Boolean MatroskaFileParser::parseEBMLVal_string(EBMLDataSize const& size, 
char*& result) {
+  u_int64_t resultLength = size.val();
   result = new char[resultLength + 1]; // allow for the trailing '\0'
   if (result == NULL) return False;
 
   char* p = result;
-  unsigned i;
+  u_int64_t i;
   for (i = 0; i < resultLength; ++i) {
     if (fLimitOffsetInFile > 0 && fCurOffsetInFile > fLimitOffsetInFile) 
break; // We've hit our pre-set limit
 
@@ -1433,13 +1431,13 @@
   return True;
 }
 
-Boolean MatroskaFileParser::parseEBMLVal_binary(EBMLDataSize& size, u_int8_t*& 
result) {
-  unsigned resultLength = (unsigned)size.val();
+Boolean MatroskaFileParser::parseEBMLVal_binary(EBMLDataSize const& size, 
u_int8_t*& result) {
+  u_int64_t resultLength = size.val();
   result = new u_int8_t[resultLength];
   if (result == NULL) return False;
 
   u_int8_t* p = result;
-  unsigned i;
+  u_int64_t i;
   for (i = 0; i < resultLength; ++i) {
     if (fLimitOffsetInFile > 0 && fCurOffsetInFile > fLimitOffsetInFile) 
break; // We've hit our pre-set limit
 
@@ -1449,11 +1447,28 @@
     *p++ = c;
   }
   if (i < resultLength) { // an error occurred
-    delete[] result;
-    result = NULL;
+    delete[] result; result = NULL;
+    return False;
+  }
+
+  return True;
+}
+
+Boolean MatroskaFileParser
+::parseEBMLVal_binary_constrainSize(EBMLDataSize const& size, u_int32_t& 
length, u_int8_t*& result) {
+  if (!parseEBMLVal_binary(size, result)) {
+    length = 0;
+    return False;
+  }
+
+  if (size.val() > (u_int64_t)0xFFFFFFFF) {
+    // size would not fit into 32 bits => reject this
+    delete[] result; result = NULL;
+    length = 0;
     return False;
   }
 
+  length = (u_int32_t)size.val();
   return True;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/liveMedia/MatroskaFileParser.hh 
new/live/liveMedia/MatroskaFileParser.hh
--- old/live/liveMedia/MatroskaFileParser.hh    2026-06-01 11:12:14.000000000 
+0200
+++ new/live/liveMedia/MatroskaFileParser.hh    2026-08-14 14:53:03.000000000 
+0200
@@ -78,12 +78,16 @@
 
   Boolean parseEBMLNumber(EBMLNumber& num);
   Boolean parseEBMLIdAndSize(EBMLId& id, EBMLDataSize& size);
-  Boolean parseEBMLVal_unsigned64(EBMLDataSize& size, u_int64_t& result);
-  Boolean parseEBMLVal_unsigned(EBMLDataSize& size, unsigned& result);
-  Boolean parseEBMLVal_float(EBMLDataSize& size, float& result);
-  Boolean parseEBMLVal_string(EBMLDataSize& size, char*& result);
+  Boolean parseEBMLVal_unsigned64(EBMLDataSize const& size, u_int64_t& result);
+  Boolean parseEBMLVal_unsigned(EBMLDataSize const& size, unsigned& result);
+  Boolean parseEBMLVal_float(EBMLDataSize const& size, float& result);
+  Boolean parseEBMLVal_string(EBMLDataSize const& size, char*& result);
     // Note: "result" is dynamically allocated; the caller must delete[] it 
later
-  Boolean parseEBMLVal_binary(EBMLDataSize& size, u_int8_t*& result);
+  Boolean parseEBMLVal_binary(EBMLDataSize const& size, u_int8_t*& result);
+    // Note: "result" is dynamically allocated; the caller must delete[] it 
later
+  Boolean parseEBMLVal_binary_constrainSize(EBMLDataSize const& size, 
u_int32_t& length, u_int8_t*& result);
+    // A version of "parseEBMLVal_binary()" where the result size is 
constrained to fit
+    // into a "u_int32_t".
     // Note: "result" is dynamically allocated; the caller must delete[] it 
later
   void skipHeader(EBMLDataSize const& size);
   void skipRemainingHeaderBytes(Boolean isContinuation);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/liveMedia/MediaSession.cpp 
new/live/liveMedia/MediaSession.cpp
--- old/live/liveMedia/MediaSession.cpp 2026-06-01 11:12:14.000000000 +0200
+++ new/live/liveMedia/MediaSession.cpp 2026-08-14 14:53:03.000000000 +0200
@@ -390,10 +390,10 @@
   char* ae = new char[len];
   int sscanfResult = sscanf(sdpLine, "a=range: clock = %[^-\r\n]-%[^\r\n]", 
as, ae);
   if (sscanfResult == 2) {
-    absStartTime = as;
-    absEndTime = ae;
+    delete[] absStartTime; absStartTime = as;
+    delete[] absEndTime; absEndTime = ae;
   } else if (sscanfResult == 1) {
-    absStartTime = as;
+    delete[] absStartTime; absStartTime = as;
     delete[] ae;
   } else {
     delete[] as; delete[] ae;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/liveMedia/OggFileParser.cpp 
new/live/liveMedia/OggFileParser.cpp
--- old/live/liveMedia/OggFileParser.cpp        2026-06-01 11:12:14.000000000 
+0200
+++ new/live/liveMedia/OggFileParser.cpp        2026-08-14 14:53:03.000000000 
+0200
@@ -132,7 +132,9 @@
   OggTrack* track;
   if ((header_type_flag&0x02) != 0) { // BOS
     char const* mimeType = NULL; // if unknown
-    if (fPacketSizeTable != NULL && fPacketSizeTable->size[0] >= 8) { // 
sanity check
+    if (fPacketSizeTable != NULL
+       && fPacketSizeTable->numCompletedPackets > 0
+       && fPacketSizeTable->size[0] >= 8) { // sanity check
       char buf[8];
       testBytes((u_int8_t*)buf, 8);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/liveMedia/RTSPCommon.cpp 
new/live/liveMedia/RTSPCommon.cpp
--- old/live/liveMedia/RTSPCommon.cpp   2026-06-01 11:12:14.000000000 +0200
+++ new/live/liveMedia/RTSPCommon.cpp   2026-08-14 14:53:03.000000000 +0200
@@ -272,8 +272,8 @@
       delete[] as; delete[] ae;
       return False;
     }
-  } else if (sscanf(paramStr, "smtpe = %n", &numCharsMatched4) == 0 && 
numCharsMatched4 > 0) {
-    // We accept "smtpe=" parameters, but currently do not interpret them.
+  } else if (sscanf(paramStr, "smpte = %n", &numCharsMatched4) == 0 && 
numCharsMatched4 > 0) {
+    // We accept "smpte=" parameters, but currently do not interpret them.
   } else {
     return False; // The header is malformed
   }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/liveMedia/RTSPServer.cpp 
new/live/liveMedia/RTSPServer.cpp
--- old/live/liveMedia/RTSPServer.cpp   2026-06-01 11:12:14.000000000 +0200
+++ new/live/liveMedia/RTSPServer.cpp   2026-08-14 14:53:03.000000000 +0200
@@ -628,6 +628,9 @@
   // can find us:
   if (fOurRTSPServer.fClientConnectionsForHTTPTunneling == NULL) {
     fOurRTSPServer.fClientConnectionsForHTTPTunneling = 
HashTable::create(STRING_HASH_KEYS);
+  } else if (fOurSessionCookie != NULL) {
+    // This connection can have only one 'session cookie' in use at one time:
+    
fOurRTSPServer.fClientConnectionsForHTTPTunneling->Remove(fOurSessionCookie);
   }
   delete[] fOurSessionCookie; fOurSessionCookie = strDup(sessionCookie);
   fOurRTSPServer.fClientConnectionsForHTTPTunneling->Add(sessionCookie, 
(void*)this);
@@ -886,36 +889,33 @@
       } else if (strcmp(cmdName, "DESCRIBE") == 0) {
        handleCmd_DESCRIBE(urlPreSuffix, urlSuffix, (char 
const*)fRequestBuffer);
       } else if (strcmp(cmdName, "SETUP") == 0) {
-       Boolean areAuthenticated = True;
+       // First, make sure that we're authenticated to perform this command:
+       char urlTotalSuffix[2*RTSP_PARAM_STRING_MAX];
+           // enough space for urlPreSuffix/urlSuffix'\0'
+       urlTotalSuffix[0] = '\0';
+       if (urlPreSuffix[0] != '\0') {
+         strcat(urlTotalSuffix, urlPreSuffix);
+         strcat(urlTotalSuffix, "/");
+       }
+       strcat(urlTotalSuffix, urlSuffix);
 
-       if (!requestIncludedSessionId) {
-         // No session id was present in the request.
-         // So create a new "RTSPClientSession" object for this request.
-
-         // But first, make sure that we're authenticated to perform this 
command:
-         char urlTotalSuffix[2*RTSP_PARAM_STRING_MAX];
-             // enough space for urlPreSuffix/urlSuffix'\0'
-         urlTotalSuffix[0] = '\0';
-         if (urlPreSuffix[0] != '\0') {
-           strcat(urlTotalSuffix, urlPreSuffix);
-           strcat(urlTotalSuffix, "/");
-         }
-         strcat(urlTotalSuffix, urlSuffix);
-         if (authenticationOK("SETUP", urlTotalSuffix, (char 
const*)fRequestBuffer)) {
+       if (authenticationOK("SETUP", urlTotalSuffix, (char 
const*)fRequestBuffer)) {
+         if (!requestIncludedSessionId) {
+           // No session id was present in the request.
+           // So create a new "RTSPClientSession" object for this request.
            clientSession
              = 
(RTSPServer::RTSPClientSession*)fOurRTSPServer.createNewClientSessionWithId();
-         } else {
-           areAuthenticated = False;
          }
-       }
-       if (clientSession != NULL) {
-         clientSession->handleCmd_SETUP(this, urlPreSuffix, urlSuffix, (char 
const*)fRequestBuffer);
-         playAfterSetup = clientSession->fStreamAfterSETUP;
-       } else if (areAuthenticated) {
+
+         if (clientSession != NULL) {
+           clientSession->handleCmd_SETUP(this, urlPreSuffix, urlSuffix, (char 
const*)fRequestBuffer);
+           playAfterSetup = clientSession->fStreamAfterSETUP;
+         } else {
 #ifdef DEBUG
-         fprintf(stderr, "Calling handleCmd_sessionNotFound() (case 2)\n");
+           fprintf(stderr, "Calling handleCmd_sessionNotFound() (case 2)\n");
 #endif
-         handleCmd_sessionNotFound();
+           handleCmd_sessionNotFound();
+         }
        }
       } else if (strcmp(cmdName, "TEARDOWN") == 0
                 || strcmp(cmdName, "PLAY") == 0
@@ -1312,37 +1312,37 @@
 }
 
 typedef enum StreamingMode {
+  UNKNOWN,
   RTP_UDP,
   RTP_TCP,
   RAW_UDP
 } StreamingMode;
 
-static void parseTransportHeader(char const* buf,
-                                StreamingMode& streamingMode,
-                                char*& streamingModeString,
-                                char*& destinationAddressStr,
-                                u_int8_t& destinationTTL,
-                                portNumBits& clientRTPPortNum, // if UDP
-                                portNumBits& clientRTCPPortNum, // if UDP
-                                unsigned char& rtpChannelId, // if TCP
-                                unsigned char& rtcpChannelId // if TCP
-                                ) {
+static Boolean parseTransportHeader(char const* buf,
+                                   StreamingMode& streamingMode,
+                                   char*& streamingModeString,
+                                   char*& destinationAddressStr,
+                                   u_int8_t& destinationTTL,
+                                   portNumBits& clientRTPPortNum, // if UDP
+                                   portNumBits& clientRTCPPortNum, // if UDP
+                                   u_int8_t& rtpChannelId, // if TCP
+                                   u_int8_t& rtcpChannelId // if TCP
+                                   ) {
   // Initialize the result parameters to default values:
-  streamingMode = RTP_UDP;
+  streamingMode = UNKNOWN;
   streamingModeString = NULL;
   destinationAddressStr = NULL;
-  destinationTTL = 255;
+  destinationTTL = 0xFF;
   clientRTPPortNum = 0;
   clientRTCPPortNum = 1;
   rtpChannelId = rtcpChannelId = 0xFF;
   
-  portNumBits p1, p2;
-  unsigned ttl, rtpCid, rtcpCid;
+  unsigned p1, p2, ttl, rtpCid, rtcpCid;
   
   // First, find "Transport:"
   while (1) {
-    if (*buf == '\0') return; // not found
-    if (*buf == '\r' && *(buf+1) == '\n' && *(buf+2) == '\r') return; // end 
of the headers => not found
+    if (*buf == '\0') return False; // not found
+    if (*buf == '\r' && *(buf+1) == '\n' && *(buf+2) == '\r') return False; // 
end of the headers => not found
     if (_strncasecmp(buf, "Transport:", 10) == 0) break;
     ++buf;
   }
@@ -1350,35 +1350,69 @@
   // Then, run through each of the fields, looking for ones we handle:
   char const* fields = buf + 10;
   while (*fields == ' ') ++fields;
+
+  Boolean badFieldSeen = True; // until we learn otherwise
+  Boolean ttlSeen = False; Boolean clientPortSeen = False; Boolean 
interleavedSeen = False;
   char* field = strDupSize(fields);
   while (sscanf(fields, "%[^;\r\n]", field) == 1) {
+    badFieldSeen = True; // until we learn otherwise
     if (strcmp(field, "RTP/AVP/TCP") == 0) {
+      if (streamingMode != UNKNOWN) break; // more than one 'streaming mode' 
is not allowed
+
       streamingMode = RTP_TCP;
-    } else if (strcmp(field, "RAW/RAW/UDP") == 0 ||
-              strcmp(field, "MP2T/H2221/UDP") == 0) {
+    } else if (strcmp(field, "RTP/AVP") == 0 || strcmp(field, "RTP/AVP/SAVP") 
== 0) {
+      if (streamingMode != UNKNOWN) break; // more than one 'streaming mode' 
is not allowed
+
+      streamingMode = RTP_UDP;
+    } else if (strcmp(field, "RAW/RAW/UDP") == 0 || strcmp(field, 
"MP2T/H2221/UDP") == 0) {
+      if (streamingMode != UNKNOWN) break; // more than one 'streaming mode' 
is not allowed
+
       streamingMode = RAW_UDP;
       streamingModeString = strDup(field);
     } else if (_strncasecmp(field, "destination=", 12) == 0) {
-      delete[] destinationAddressStr;
+      if (destinationAddressStr != NULL) { // more than one "destination=" is 
not allowed
+       delete[] destinationAddressStr; destinationAddressStr = NULL;
+       break;
+      }
+
       destinationAddressStr = strDup(field+12);
-    } else if (sscanf(field, "ttl%u", &ttl) == 1) {
+    } else if (sscanf(field, "ttl=%u", &ttl) == 1) {
+      if (ttlSeen) break; ttlSeen = True;
+      if (ttl > 0xFF) break;
+
       destinationTTL = (u_int8_t)ttl;
-    } else if (sscanf(field, "client_port=%hu-%hu", &p1, &p2) == 2) {
-      clientRTPPortNum = p1;
-      clientRTCPPortNum = streamingMode == RAW_UDP ? 0 : p2; // ignore the 
second port number if the client asked for raw UDP
-    } else if (sscanf(field, "client_port=%hu", &p1) == 1) {
-      clientRTPPortNum = p1;
-      clientRTCPPortNum = streamingMode == RAW_UDP ? 0 : p1 + 1;
+    } else if (sscanf(field, "client_port=%u-%u", &p1, &p2) == 2) {
+      if (clientPortSeen) break; clientPortSeen = True;
+      if (p1 > 0xFFFF || p2 > 0xFFFF) break;
+
+      clientRTPPortNum = (portNumBits)p1;
+      clientRTCPPortNum = streamingMode == RAW_UDP ? 0 : (portNumBits)p2;
+          // ignore the second port number if the client asked for raw UDP
+    } else if (sscanf(field, "client_port=%u", &p1) == 1) {
+      if (clientPortSeen) break; clientPortSeen = True;
+      if (p1 > 0xFFFF || (p1 == 0xFFFF && streamingMode != RAW_UDP)) break;
+
+      clientRTPPortNum = (portNumBits)p1;
+      clientRTCPPortNum = streamingMode == RAW_UDP ? 0 : (portNumBits)(p1+1);
     } else if (sscanf(field, "interleaved=%u-%u", &rtpCid, &rtcpCid) == 2) {
-      rtpChannelId = (unsigned char)rtpCid;
-      rtcpChannelId = (unsigned char)rtcpCid;
+      if (interleavedSeen) break; interleavedSeen = True;
+      if (rtpCid > 0xFF || rtcpCid > 0xFF) break;
+
+      rtpChannelId = (u_int8_t)rtpCid;
+      rtcpChannelId = (u_int8_t)rtcpCid;
     }
+    badFieldSeen = False;
     
     fields += strlen(field);
     while (*fields == ';' || *fields == ' ' || *fields == '\t') ++fields; // 
skip over separating ';' chars or whitespace
     if (*fields == '\0' || *fields == '\r' || *fields == '\n') break;
   }
   delete[] field;
+
+  if (badFieldSeen) return False;
+  if (streamingMode == UNKNOWN) return False; // no 'streaming mode' was 
specified
+
+  return True;
 }
 
 static Boolean parsePlayNowHeader(char const* buf) {
@@ -1579,15 +1613,6 @@
     }
     // ASSERT: subsession != NULL
     
-    void*& token = fStreamStates[trackNum].streamToken; // alias
-    if (token != NULL) {
-      // We already handled a "SETUP" for this track (to the same client),
-      // so stop any existing streaming of it, before we set it up again:
-      subsession->pauseStream(fOurSessionId, token);
-      
fOurRTSPServer.unnoteTCPStreamingOnSocket(fStreamStates[trackNum].tcpSocketNum, 
this, trackNum);
-      subsession->deleteStream(fOurSessionId, token);
-    }
-
     // Look for a "Transport:" header in the request string, to extract client 
parameters:
     StreamingMode streamingMode;
     char* streamingModeString = NULL; // set when RAW_UDP streaming is 
specified
@@ -1595,13 +1620,16 @@
     u_int8_t clientsDestinationTTL;
     portNumBits clientRTPPortNum, clientRTCPPortNum;
     unsigned char rtpChannelId, rtcpChannelId;
-    parseTransportHeader(fFullRequestStr, streamingMode, streamingModeString,
-                        clientsDestinationAddressStr, clientsDestinationTTL,
-                        clientRTPPortNum, clientRTCPPortNum,
-                        rtpChannelId, rtcpChannelId);
+    if (!parseTransportHeader(fFullRequestStr, streamingMode, 
streamingModeString,
+                             clientsDestinationAddressStr, 
clientsDestinationTTL,
+                             clientRTPPortNum, clientRTCPPortNum,
+                             rtpChannelId, rtcpChannelId)) {
+      ourClientConnection->handleCmd_unsupportedTransport();
+      break;
+    }
     if ((streamingMode == RTP_TCP && rtpChannelId == 0xFF) ||
        (streamingMode != RTP_TCP && ourClientConnection->fClientOutputSocket 
!= ourClientConnection->fClientInputSocket)) {
-      // An anomolous situation, caused by a buggy client.  Either:
+      // An anomalous situation, caused by a buggy client.  Either:
       //     1/ TCP streaming was requested, but with no "interleaving=" 
fields.  (QuickTime Player sometimes does this.), or
       //     2/ TCP streaming was not requested, but we're doing 
RTSP-over-HTTP tunneling (which implies TCP streaming).
       // In either case, we assume TCP streaming, and set the RTP and RTCP 
channel ids to proper values:
@@ -1610,9 +1638,6 @@
     }
     if (streamingMode == RTP_TCP) fTCPStreamIdCount += 2;
     
-    Port clientRTPPort(clientRTPPortNum);
-    Port clientRTCPPort(clientRTCPPortNum);
-    
     // Next, check whether a "Range:" or "x-playNow:" header is present in the 
request.
     // This isn't legal, but some clients do this to combine "SETUP" and 
"PLAY":
     double rangeStart = 0.0, rangeEnd = 0.0;
@@ -1627,6 +1652,15 @@
       fStreamAfterSETUP = False;
     }
     
+    void*& token = fStreamStates[trackNum].streamToken; // alias
+    if (token != NULL) {
+      // We already handled a "SETUP" for this track (to the same client),
+      // so stop any existing streaming of it, before we set it up again:
+      subsession->pauseStream(fOurSessionId, token);
+      
fOurRTSPServer.unnoteTCPStreamingOnSocket(fStreamStates[trackNum].tcpSocketNum, 
this, trackNum);
+      subsession->deleteStream(fOurSessionId, token);
+    }
+
     // Then, get server parameters from the 'subsession':
     if (streamingMode == RTP_TCP) {
       // Note that we'll be streaming over the RTSP TCP connection:
@@ -1659,6 +1693,9 @@
     struct sockaddr_storage sourceAddr; SOCKLEN_T namelen = sizeof sourceAddr;
     getsockname(ourClientConnection->fClientInputSocket, (struct 
sockaddr*)&sourceAddr, &namelen);
     
+    Port clientRTPPort(clientRTPPortNum);
+    Port clientRTCPPort(clientRTCPPortNum);
+    
     subsession->getStreamParameters(fOurSessionId, 
ourClientConnection->fClientAddr,
                                    clientRTPPort, clientRTCPPort,
                                    streamingMode == RTP_TCP
@@ -1679,6 +1716,10 @@
     }
     if (fIsMulticast) {
       switch (streamingMode) {
+          case UNKNOWN: { // shouldn't happen
+           ourClientConnection->handleCmd_unsupportedTransport();
+           break;
+         }
           case RTP_UDP: {
            snprintf((char*)ourClientConnection->fResponseBuffer, sizeof 
ourClientConnection->fResponseBuffer,
                     "RTSP/1.0 200 OK\r\n"
@@ -1714,6 +1755,10 @@
       }
     } else {
       switch (streamingMode) {
+          case UNKNOWN: { // shouldn't happen
+           ourClientConnection->handleCmd_unsupportedTransport();
+           break;
+         }
           case RTP_UDP: {
            snprintf((char*)ourClientConnection->fResponseBuffer, sizeof 
ourClientConnection->fResponseBuffer,
                     "RTSP/1.0 200 OK\r\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/liveMedia/include/MatroskaFile.hh 
new/live/liveMedia/include/MatroskaFile.hh
--- old/live/liveMedia/include/MatroskaFile.hh  2026-06-01 11:12:14.000000000 
+0200
+++ new/live/liveMedia/include/MatroskaFile.hh  2026-08-14 14:53:03.000000000 
+0200
@@ -154,11 +154,11 @@
   unsigned samplingFrequency;
   unsigned numChannels;
   char const* mimeType;
-  unsigned codecPrivateSize;
+  u_int32_t codecPrivateSize;
   u_int8_t* codecPrivate;
   Boolean codecPrivateUsesH264FormatForH265; // a hack specifically for H.265 
video tracks
   Boolean codecIsOpus; // a hack for Opus audio
-  unsigned headerStrippedBytesSize;
+  u_int32_t headerStrippedBytesSize;
   u_int8_t* headerStrippedBytes;
   char const* colorSampling;
   char const* colorimetry;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/liveMedia/include/liveMedia_version.hh 
new/live/liveMedia/include/liveMedia_version.hh
--- old/live/liveMedia/include/liveMedia_version.hh     2026-06-01 
11:12:14.000000000 +0200
+++ new/live/liveMedia/include/liveMedia_version.hh     2026-08-14 
14:53:03.000000000 +0200
@@ -19,8 +19,8 @@
 #ifndef _LIVEMEDIA_VERSION_HH
 #define _LIVEMEDIA_VERSION_HH
 
-#define LIVEMEDIA_LIBRARY_VERSION_STRING       "2026.06.01"
-#define LIVEMEDIA_LIBRARY_VERSION_INT          1780272000
+#define LIVEMEDIA_LIBRARY_VERSION_STRING       "2026.08.14"
+#define LIVEMEDIA_LIBRARY_VERSION_INT          1786665600
 
 extern char const* const liveMediaLibraryVersionStr;
 extern int const liveMediaLibraryVersionInt;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/mediaServer/version.hh 
new/live/mediaServer/version.hh
--- old/live/mediaServer/version.hh     2026-06-01 11:12:14.000000000 +0200
+++ new/live/mediaServer/version.hh     2026-08-14 14:53:03.000000000 +0200
@@ -20,6 +20,6 @@
 #ifndef _MEDIA_SERVER_VERSION_HH
 #define _MEDIA_SERVER_VERSION_HH
 
-#define MEDIA_SERVER_VERSION_STRING "1.13"
+#define MEDIA_SERVER_VERSION_STRING "1.15"
 
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/live/testProgs/testRTSPClient.cpp 
new/live/testProgs/testRTSPClient.cpp
--- old/live/testProgs/testRTSPClient.cpp       2026-06-01 11:12:14.000000000 
+0200
+++ new/live/testProgs/testRTSPClient.cpp       2026-08-14 14:53:03.000000000 
+0200
@@ -61,7 +61,7 @@
   env << "\t(where each <rtsp-url-i> is a \"rtsp://\" URL)\n";
 }
 
-EventLoopWatchVariable eventLoopWatchVariable = 0;
+EventLoopWatchVariable eventLoopWatchVariable(0);
 
 int main(int argc, char** argv) {
   // Begin by setting up our usage environment:

Reply via email to