From 126b1bc9677360218f8fccab383c4db4c31730a632d5f3faff6792f54dfa3332 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Lie?= Date: Fri, 27 Dec 2024 18:08:25 +0000 Subject: [PATCH] =?UTF-8?q?-=20version=20update=20to=201.5.4=20=20=20*=20A?= =?UTF-8?q?PI/ABI:=20=20=20=20=20-=20PR=20#2967:=20SRTO=5FVERSION=20socket?= =?UTF-8?q?=20option=20is=20read-only.=20Removed=20the=20ability=20to=20?= =?UTF-8?q?=20=20=20=20=20=20set=20a=20value=20(srt=5Fsetopt(..)).=20=20?= =?UTF-8?q?=20=20=20-=20PR=20#2849:=20Removed=20the=20possibility=20to=20u?= =?UTF-8?q?se=20optlen=3D-1=20in=20srt=5Fsetsockopt.=20=20=20=20=20-=20PR?= =?UTF-8?q?=20#2683:=E2=9D=97Changed=20conditions=20for=20setting=20caller?= =?UTF-8?q?=20and=20listen=20callbacks.=20=20=20=20=20-=20PR=20#2804:=20Fi?= =?UTF-8?q?xed=20NULL=20characters=20handling=20inside=20of=20strings.=20?= =?UTF-8?q?=20=20=20=20-=20PRs=20#2887,=20#2918,=20#2912:=20Fixed=20gettin?= =?UTF-8?q?g=20some=20socket=20options=20from=20a=20group.=20=20=20*=20Kno?= =?UTF-8?q?wn=20Issues=20=20=20=20=20-=20#3072:=20Getting=20SRTO=5FSTREAMI?= =?UTF-8?q?D=20on=20an=20accepted=20group=20connection=20does=20not=20=20?= =?UTF-8?q?=20=20=20=20=20return=20a=20value=20(listener=20side).=20=20=20?= =?UTF-8?q?*=20New=20Features=20and=20Improvements=20=20=20=20=20-=20PR=20?= =?UTF-8?q?#2700:=20Added=20support=20for=20Botan=20cryptography=20library?= =?UTF-8?q?.=20=20=20=20=20-=20PR=20#2940:=20Added=20support=20for=20build?= =?UTF-8?q?ing=20SRT=20on=20visionOS.=20=20=20*=20Thread=20Safety=20fixes:?= =?UTF-8?q?=20=20=20=20=20-=20PR=20#3047:=20Fixed=20static=20variable=20us?= =?UTF-8?q?age=20in=20the=20crypto=20module.=20=20=20=20=20-=20PR=20#3038:?= =?UTF-8?q?=20Improved=20mutex=20protection=20of=20the=20TSBPD.=20=20=20?= =?UTF-8?q?=20=20-=20PR=20#2998:=20Fixed=20a=20data=20race=20on=20the=20li?= =?UTF-8?q?stener's=20config.=20=20=20=20=20-=20PR=20#2990:=20Fixed=20a=20?= =?UTF-8?q?potential=20data=20race=20around=20m=5FbGCStatus=20variable.=20?= =?UTF-8?q?=20=20=20=20-=20PR=20#2972:=20Fixed=20TSBPD=20thread=20create/j?= =?UTF-8?q?oin=20protection.=20=20=20=20=20-=20PR=20#2893:=20Fixed=20data?= =?UTF-8?q?=20races=20and=20multithreading=20issues.=20=20=20=20=20-=20PR?= =?UTF-8?q?=20#2723:=20Fixed=20lacking=20mutex=20protection=20of=20some=20?= =?UTF-8?q?ACK-related=20fields.=20=20=20=20=20-=20PR=20#1884:=20Fixed=20a?= =?UTF-8?q?=20possible=20socket=20leak=20in=20srt=5Faccept=20failure.=20?= =?UTF-8?q?=20=20=20=20-=20PR=20#1824:=20Fixed=20some=20lock-order-inversi?= =?UTF-8?q?on=20and=20data=20race=20problems.=20=20=20*=20Logging=20improv?= =?UTF-8?q?ements=20=20=20*=20Encryption=20=20=20=20=20-=20PR=20#2962:=20I?= =?UTF-8?q?mproved=20AES=20GCM=20encryption,=20changed=20GCM=20IV=20length?= =?UTF-8?q?=20to=2012=20bytes.=20=20=20=20=20-=20PR=20#2921:=20Drop=20unen?= =?UTF-8?q?crypted=20packets=20if=20the=20receiving=20KM=20state=20is=20"s?= =?UTF-8?q?ecured".=20=20=20=20=20-=20PR=20#2905:=20Fixed=20HaiCrypt=5FClo?= =?UTF-8?q?ne()=20by=20properly=20setting=20up=20the=20RX=20crypto=20conte?= =?UTF-8?q?xt.=20=20=20=20=20-=20PR=20#2880:=20Fixed=20the=20PacketFilter?= =?UTF-8?q?=20(FEC)=20configuration=20not=20counting=20the?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/srt?expand=0&rev=38 --- .gitattributes | 23 ++ .gitignore | 1 + baselibs.conf | 1 + srt-1.5.3.tar.gz | 3 + srt-1.5.4.tar.gz | 3 + srt.changes | 632 +++++++++++++++++++++++++++++++++++++++++++++++ srt.spec | 101 ++++++++ 7 files changed, 764 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 baselibs.conf create mode 100644 srt-1.5.3.tar.gz create mode 100644 srt-1.5.4.tar.gz create mode 100644 srt.changes create mode 100644 srt.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/baselibs.conf b/baselibs.conf new file mode 100644 index 0000000..64fa83d --- /dev/null +++ b/baselibs.conf @@ -0,0 +1 @@ +libsrt1_5 diff --git a/srt-1.5.3.tar.gz b/srt-1.5.3.tar.gz new file mode 100644 index 0000000..e2f8911 --- /dev/null +++ b/srt-1.5.3.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:befaeb16f628c46387b898df02bc6fba84868e86a6f6d8294755375b9932d777 +size 1706632 diff --git a/srt-1.5.4.tar.gz b/srt-1.5.4.tar.gz new file mode 100644 index 0000000..7b12651 --- /dev/null +++ b/srt-1.5.4.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0a8b600fe1b4eaaf6277530e3cfc8f15b8ce4035f16af4a5eb5d4b123640cdd +size 1743040 diff --git a/srt.changes b/srt.changes new file mode 100644 index 0000000..d45815d --- /dev/null +++ b/srt.changes @@ -0,0 +1,632 @@ +------------------------------------------------------------------- +Fri Dec 20 14:30:42 UTC 2024 - Andrea Manzini + +- version update to 1.5.4 + * API/ABI: + - PR #2967: SRTO_VERSION socket option is read-only. Removed the ability to + set a value (srt_setopt(..)). + - PR #2849: Removed the possibility to use optlen=-1 in srt_setsockopt. + - PR #2683:❗Changed conditions for setting caller and listen callbacks. + - PR #2804: Fixed NULL characters handling inside of strings. + - PRs #2887, #2918, #2912: Fixed getting some socket options from a group. + * Known Issues + - #3072: Getting SRTO_STREAMID on an accepted group connection does not + return a value (listener side). + * New Features and Improvements + - PR #2700: Added support for Botan cryptography library. + - PR #2940: Added support for building SRT on visionOS. + * Thread Safety fixes: + - PR #3047: Fixed static variable usage in the crypto module. + - PR #3038: Improved mutex protection of the TSBPD. + - PR #2998: Fixed a data race on the listener's config. + - PR #2990: Fixed a potential data race around m_bGCStatus variable. + - PR #2972: Fixed TSBPD thread create/join protection. + - PR #2893: Fixed data races and multithreading issues. + - PR #2723: Fixed lacking mutex protection of some ACK-related fields. + - PR #1884: Fixed a possible socket leak in srt_accept failure. + - PR #1824: Fixed some lock-order-inversion and data race problems. + * Logging improvements + * Encryption + - PR #2962: Improved AES GCM encryption, changed GCM IV length to 12 bytes. + - PR #2921: Drop unencrypted packets if the receiving KM state is "secured". + - PR #2905: Fixed HaiCrypt_Clone() by properly setting up the RX crypto context. + - PR #2880: Fixed the PacketFilter (FEC) configuration not counting the + AEAD AUTH tag length. + * Fixes related to SRT Socket groups. + * Statistics fixes + * Sample Applications fixes + - PR #3002: Fixed verbose log linkage difference. + - PR #2848: Added simplified support for RTP input in srt-live-transmit. + - PR #2015, #3041: Added URL percent decoding to the URL query string keys and + values. + * Documentation + - PR #2762: Added Rejection Reasons document. + - PR #2921: Update the SRT_KM_S_SECURED description. + Updated pktRcvUndecrypted description. + - PR #2875: Updated the documentation about latency and transmission type. + - PR #2820: More explicit description of grpdata_size updates. + +------------------------------------------------------------------- +Mon Oct 2 08:10:49 UTC 2023 - pgajdos@suse.com + +- version update to 1.5.3 + * New Features + - PR #2714: Added maximum BW limit for retransmissions. See SRTO_MAXREXMITBW. + * Important Bug Fixes + - PR #2632: Use overlapped WSASendTo to avoid UDP sending losses. + - PR #2766: Fixed spurious group read-ready epoll events. + - PR #2772: Fixed RCV buffer initialization in Rendezvous. ⚠️ + - PR #2757: Fix memory leak on queuing connection initialization packets. + - PR #2745: Fix hang up on not enough space in the RCV buffer. + - PR #2740: Fix possible tsbpd() deadlock with processCtrlShutdown(). + - PR #2692: Rejection not undertaken in rendezvous after KMX failure. + - PR #2774: Fix rendezvous connection mode when processing resulted in ACCEPT it was still sending rejection. + - PR #2778: Drop unencrypted packets in AES-GCM mode. + * Build + - PR #2779, #2780: Fix the build for targets without IP_ADD_SOURCE_MEMBERSHIP. + - PR #2784: Added missing public header files in Windows binary installer. + * Unit Tests + - PR #2681: Added custom main with transparent parameters. + * Documentation + - PR #2765: Updated the explicit information for binding to IPv6 wildcard. + - PR #2785: Fixed API doc: SRT_INVALID_SOCK + * https://github.com/Haivision/srt/releases/tag/v1.5.3 + +------------------------------------------------------------------- +Wed Aug 2 10:29:08 UTC 2023 - Valentin Lefebvre + +- Update to 1.5.2: + * API + - 41c4b1f Fixed #ifdef ENABLE_AEAD_API_PREVIEW (#2603). + - b3a21e1 SRT version raised to 1.5.2. + - c0d9fcd Restored resetlogfa(..) in udt.h. Reverting #2558, although udt.h is not the official SRT API. + - 87de405 Added ENABLE_AEAD_API_PREVIEW build option to enable AEAD API. + - 60d1237 Crypto mode 'auto' implemented for listener (#2574). + - 27e7d8d Socket Options: do not allow AES GCM if TSBPD is disabled. + - 3e4561e Add GCM to the SRT API. + * Core Functionality + - 3cefede Correct remaining endianness issues + - 30e7ccd Minor fix of variable shadowing. + - 6fcff6d Fixed various compiler warnings on various platforms (#2679). + - 59cde53 Fixed FEC Emergency resize crash (#2717). + - 2fcd3d4 Fix crypto mode auto for listener sender (#2711). + - b010763 Fixed typos in MBedTLS where it referred to GnuTLS (#2699). + - a991767 Fix peer filter config being rejected because of endianness + - 1cffd2f Added rejection handshake sent to the peer in rendezvous mode (#2667). + - f57ba89 Added missing thread watchdog ticks in 3 thread loop (#2669). + - e8d0533 Fixed old ENABLE_AEAD_PREVIEW. + - 599c1fb Reworked the CRcvBuffer::dropMessage(..) function (#2661). + - 7948772 Removed duplicate lines (#2660). + - 3ffc93f Fixed CRcvBuffer::dropMessage (#2657). + - e9a3955 Fixed guard for rcv-rexmit fields (#1859). + - 22e97f8 Fixed warnings and removed redundant includes (#2658). + - c83c31b Reduce frequency of the decryption failure log (#2602). + - 21b55a2 Disabled warnings various platforms and fixed C++20 Windows build (#2411). + - 65bef37 Set CLOSING state when closing a socket (#2643). + - 02cba9e Drop undecrypted packet based on sequence number (#2654). + - 6d774dd Fixed invalid ASSERT checking outdated object in haicrypt (#2652). + - 8db35de Refaxed and fixed multiplexer reusage (#2608). + - 6c92a13 Fix crash when enable heavy log and socket id less than 10 (#2619). + - 64dedef CodeQL: operation requires 22 bytes. + - 0c583f8 CodeQL warning: checking NULL after new. + - b8962b4 Fixed PKTINFO case that was failing for IPv4+IPv6 bound sockets (#2630). + - a42a39f Fixed wrong null-safety condition check in haicrypt (#2616). + - 30f6f6b Removed extra redundant condition checks (#2615). + - 5f02310 Fix negative id when wrap around + - f533716 Fixed reject reason by a caller if connection is UNSECURE (#2622). + - 04e8dbc Fixed default reject reason for a listener callback (#2605). + - 0b9d583 AEAD: don't break a connection on decrypt failure. + - 6db28dc RCV Buffer Refax: added some utils and simplifications (#2522). + - 5889a2c AES-GCM payload length check (#2591). + - 45232ad Allow fileCC in group mode + - 98b1b00 Added extraction of IP_PKTINFO when reading (#456). + - de9fc45 Fix CRcvBuffer last position in getTimespan_ms (#2579). + - 38b4211 Remove use variable length array (#2279). + - 78dd987 Fixed missing DROPREQ for LOSSREPORT that partially predates ACK (#2498). + - 4090b25 Reject caller to caller connection (#2562). + - 0a835ea Refax: moved removal of one seq from fresh loss list to a separate function (#2521). + - 19af5d1 Obtain ConnectionLock while sending crypto keys. + - 3d517cf Fixed a warning: member referenced before initialized (#2433). + - fc82eac Refax: remove usage of LOGF/HLOGF (#2566). + - 637d439 Refax: removed m_iRcvLastSkipAck and its dependencies (#2546). + - 6c52f2d Pass std::string by const ref where possible. + - 6d62096 Applied clang-format on md5.cpp and md5.h. + - 2c48cba MD5: Removed null pointer subtraction (may have undefined behavior). + - ae39052 Fixed rendezvous connection in the Non Blocking Mode (#2548). + - 0138898 Fixed cloning the RX crypto context (AEAD) + - be1ccf5 Moved KM refresh in packUniqueData() (#2541). + - f864cec Fixed TARGET_OS_MAC not defined. Wrong include order. + - 432f2d8 fix CSndBuffer parameter incorrect in AES GCM mode + - cbfa812 Refax/postfix: further fixes after last refax changes (#2528) + - e082f30 Fixed validation of input parameters in srt_connect (#2520). + - 932e5bd Cleanup of bonding conditionals and unused code (#2525). + - f477b51 Fixed connected peer address recording (#2526) + - b76c8b2 Fixed CRcvBuffer::getAvailSize() may jump around. (#2490) + - 71c3e40 Refax: safety improvements for RCV loss list and closing state (#2517) + - 491e6e8 Extract RCV buffer insertion handling to a separate function (#2500). + - 258a858 Refax: added size cache to the group container (#2510). + - 2fd1363 Refax: improve logging and code readability around specific logging (#2511). + - f7a024a Refax: removed the synconmsg property and its handling in the group (#2509) + - 53735e1 Don't consider tool old ACK as IPE, it' may caused by network. + - d26bbf7 Fixed a false alarm: ACK ERROR...(diff -1) + - 0f6e7c7 Fixed the inconsistency between getFirstLostSeq() and ackDataUpTo() (#2488) + - ea86302 Reduced calls to steady_clock::now() from two to one. + - 8e9958a Reject if SRT_MAGIC_CODE is not set in the HS induction response. + - 8e67aa7 Tune logs of group members adding and removing. + - c01c646 Fixed AES-GCM support check. +------------------------------------------------------------------- +Sun Jan 8 10:30:37 UTC 2023 - ecsos + +- Update to 1.5.1: + * API/ABI + - 453b276 SRT version raised to 1.5.1. + - ec52c45 Export functions in mingw-w64 when building as a DLL (#2451). + - daf838e Renamed macro MN to SRT_EMN, MJ to SRT_EMJ. + * Core Functionality + - 646bf2c Remove MSG_TRUNC logging + - 293a677 Removed unused struct HaveState + - 96d0c12 Fixed missing reject reason types (logging). (#2436) + - 8941831 Changed cond notification naming. Added and used new sync utilities. (#2429) + - eae2749 Update TSBPD base time and clock drift on an idle connection. (#2408) + - e50ccde Applied clang-format on CPacket. + - 666ee63 Fixed outlen_p value in EVP_AES_EcbCipher (crysprOpenSSL_EVP_AES_EcbCipher). + - f0b2003 Minor CSndBuffer edits. (#2430) + - fe98265 CCryptoControl: Partially removed dependency on CUDT. (#2424) + - 5ae3b00 Removed unused struct FByOldestActive. + - 7f12138 Initialize CRYSPR in startup() (#2425) + - 1b30573 Remove unused variable + - e48f43d Fixed SRT_ASSERT definition for non-MSVC compilers (#2423). + - ee398a3 Small refactor of the crysprFallback_MsEncrypt + - 618db39 Fixed byteRcvLoss stats + - 088e27d Create MbedTLS ctx in PBKDF (#2413) + - ced76c7 Increased CUnitQueue block allocation speed. Allocates 128 additional + units at the start and every time 90% of units are taken. + Previously was allocating only 32 units. + - a51ec39 Protect CUnit::m_iFlag from data race using an atomic. + Refactored common allocation code CUnitQueue::allocateEntry(..). + - b5055db Minor clean-up fix rethrowing an exception. + - c3fed9c CRcvQueue tracks IP version instead of CUnitQueue + - 830c599 CUnitQueue::increase(): Do not adjust taken units. + The adjustment was intended to patch issues around m_iCount. + Those are not present anymore. + - cdafca5 Fix sendBroadcast() message length (#2391). + - c5f613e Added OpenSSL EVP API support to HaiCrypt (#2333). + - 5070037 Cookie contest log msg downgraded to Debug + - bb6c493 Rethrow an exception without copying it. + - c9e48bd Made CRcvQueue::m_counter atomic to avoid data race. + Used for setting the RcvQueue:: worker thread name for logging. + - 6a489e1 Fixed suspicious (HCRYPT_CTX_F_ENCRYPT & ctx->flags ? ..). + - 2de9e6e Explicitly compare with an enum type. Fixes #2374. + - 61170ad Fixed local variable 'i' hiding previous local declaration. Fixes #2371. + - 88aab43 Fixed 'false' value implicitly casting to an integer. + Handle handling failure of fillHsExtKMRSP(..). + Fixed some other minor conversion warnings. Fixes #2372. + * Sample Applications and Scripts + - 0bc3b03 List contributors using the changelog generation script (#2456) + * Unit Tests + - 3ed8bfa Fixed a typo: cypto -> crypto. + - 086dfe9 Fixed TestIPv6.v6_calls_v4 + - 0153f69 Minor fix for Bonding.CloseGroupAndSocket (#2406). + - 04407e6 SyncRandom.GenRandomInt: Increase tolerance (#2385) + * Build Scripts (CMake, etc.) + - 95d82c4 Only install headers if CMAKE_INSTALL_INCLUDEDIR is available + - 91a4373 Only install pkg-config files if CMAKE_INSTALL_LIBDIR is available + - 3709471 Use the default TARGETS installation folder when possible + - 286b43e Don't force RUNTIME targets in CMAKE_INSTALL_BINDIR + - 3170590 Install scripts/srt-ffplay in the bin directory + - ea84103 Always use GNUInstallDirs + - bb6fede Add variable telling if DESTINATION is needed with install() + - 6b70452 Add 'ENABLE BONDING' option to Windows PowerShell build script (#2398). + * Documentation + - 90d2f07 Fixed the version to 1.5.1 and did some minor changes to build options summary table. + - 82f742b Added Packet Managers section to Build Instructions. + - 286b3aa Updated the Debian badge in ReadMe + - 89e11eb Fixed Time Access link in API-functions. + - 5812e1f Fixed a typo in srt_epoll_uwait +- Update to 1.5.0: + * API + - 64d7f69 SRT version raised to 1.5.0. + - c6b95f5 Removed unused srt_group_configure API function. + - f82b131 Dummy bonding API version if ENABLE_BONDING is disabled. + - 78b4d65 Drop EXPERIMENTAL from ENABLE_EXPERIMENTAL_BONDING + - 042df34 Removed balancing and multicast group types (#2323) + - 94ff168 Removed unused srt_include(..) and srt_exclude(..) API functions for unimplemented externally managed groups. + - 1c6e1ce Deprecated srt_rejectreason_msg[]. (#2312) + - 2fb3c9a Use the SOCKET type for any WIN32 environment (#2152) + * Core Functionality + - 990b75a Moved bonding API to the end of srt.h + - 8901838 Moved CWindow inside the srt namespace. + - 9761063 Moved sockaddr_any inside the srt namespace. + - 909c8fb Moved CCache inside the srt namespace. + - 3fbb917 Placed CHandshake inside the srt namespace. + - 9ba7e64 Moved CEpoll, CUDTException, etc. into the srt namespace + - 681b363 Placed CSndLossList and CRcvLossList inside the srt namespace. + - e926653 Fixed minor compiler warnings in RCV buffer + - 9b3e3c1 Fixed ENABLE_HAICRYPT_LOGGING (#2315). + - 477530f Drop packets in the new RCV buffer by group RCV base (#2207) + - 69284ce Fixed updating new RCV buffer on ISN change. (#2309) + - c76f43d fix CRcvBufferNew::m_iStartSeqNo was not sync in group + - 48d1364 Added explicit to the Scoped and UniqueLock constructors + - 992d816 Check if CryptoControl exists in craftKmResponse. Fixes crash #2231. + - 591e320 Clean up the CUDT processConnectRequest(..) function. + Update listener write-ready only after the new connection. + Was changed in #1650, but must not be done at all (see #1831). + - 911de75 Fix name conflict with md5 functions (#2301) + - c0da44e FixedArray: use a function to throw an exception. + - 29d56be Define an iterator for the srt::FixedArray. + - 1cd39b9 Show RCV buffer timespan instead of TSBPD ready span. + - cc62e98 Fixed CRcvBufferNew::strFullnessState(..). + Possible null pointer object call after if (m_entries[iLastPos].pUnit). + Show the first valid packet instead of the very first position in the buffer. + - 6c8f0f1 fix volatile in group.h + - 1f8c1e9 prefer to use std::atomic if available + - fec9a40 fix m_iLastSchedSeqNo + - 8f22c96 CSndUList use notify_one() instead of notify_all() + - af6ff16 Downgrade ACKACK reorder log to Note + - 1dacc2a Remove declaration srt_logger_config again + - 4c08c3d Move srt_rejectreason_str implementation to srt_c_api + - a68683a haicrypt_log.cpp include its header file + - f1ec270 Remove duplicated includes + - 5bf0cc1 Remove redundant ';' after '}' + - 8d1a722 Applied clang-format on api.h and api.cpp. + - ebbac9a fix CRcvBufferNew::m_bPeerRexmitFlag. + - 024e9c0 Fix extraction seq with scheduling seq in group. (#2258) + - 3975428 fix unrecoverable initial packets lose in group message mode + - fe5debb Source rate estimate: ignore old samples + - 589d36e Backup group: derive source rate estimate from an active link on idle member activation + - daf94c4 Moved source rate estimation logic to CRateEstimator from CSndBuffer + - a60d98a Protect RCV buffer access from socket stats + - 4b70a63 Group option SRTO_GROUPMINSTABLETIMEO (#2081) + - f15d300 Fix build for FreeBSD kernel (#2255) + - 7d77d41 SND Drop Request: ignore if TLPktDrop and TSBPD are enabled to reduce + false drops when a packet can still arrive later. It will be dropped anyway as too late. + - 5adc2db RCV don't drop packets on SND drop request if they already exist + in the buffer and can be read (full message is available). + - 81a31da Fix RCV drop count when dropping on SND DROP REQ. Extended RCVBUF trace logging. + - 0c5bf7a Decreased SND drop request log level to Debug + - c885ed1 Group::updateReadState() support out-of-order messages + - 650dbe6 Fixed rcvDropTooLateUpTo calls. Broken after merging #2218 + - 8f68f61 refactor Group::recv() base on new rcv buffer to support message mode + - ac854f2 Fixed setting the peer rexmit flag on the RCV buffer + - 409d363 Improved the condition for smoothed_rtt recalculation, bidirectional transmission + - 08e6482 SND prioritize original packets in live configuration + - ef11d26 SND pacing: amendment on probing packets + - 912463b Fix MaxBW limitation. Don't reschedule sending (keep pacing) on - SND drop, + - NAK received - retransmission timeout. + - 308cd30 Added missing lock to CSndBuffer::readData + - 5773901 Use SND buffer delay for TL Packet Drop instead of the timespan + between the first and the last packet in the buffer. + - a31e618 Refactoring: added packUniqueData(..) func + - 8518558 fixed missing m_RcvBufferLock in processCtrlDropReq() + - 8c05c70 Fix CRcvBufferNew::dropMessage() (#2222) + - 24bf666 CRcvBufferNew::dropUpTo() able to drop non-empty units (#2221) + - 31de8aa Add CRcvBufferNew::dropUnitInPos(..) (#2226) + - 8afcdbe fix m_iMaxPosInc was not updated in releaseNextFillerEntries() + - 258167d replace ++ with incPos() in getTimespan_ms() + - 3d26644 Fixed build with the old RCV buffer + - 1111cbd Fixed RCV TL drop of packets dropped by SND (#2214) + - 5f7bc23 Refactored the core stats structure (#2212). + - 3558cd0 Fix GC stop handling (#1950) + - 26678fe Fixed the issue with RTT in case of bidirectional transmission + introduced when adding atomic types + - ae787bf Fix rtt estimate in bidirectional mode + - c8cb38f Fix m_GroupOf->updateReadState() in message mode (#2204) + - 1d808c1 fix recv_WaitForReadReady() return empty + - c9a8db7 Fix consistency of packet seqno in CRcvLossList (#2195) + - 244d2f4 Fix deadlock introduced by CUDTGroup::setOpt() + - 8b68157 fix CRcvLossList::m_iTail not reset to -1 + - e5a1179 Fix UDP RCVBUF and SNDBUF on Solaris (#2162). + - 6ae42c6 Drop msg by TTL even if hasn't ever been sent (#2068) + - b99e41c SND buffer: operate either origin or source time, not both. + - 33c8e49 checkNeedDrop returns the congestion state + - 5f3cd06 Fixed std::runtime_error usage (use C++03 version instead of C++11) (#2184) + - e4a1d2b Fixed read-ready epoll event in stream (file) mode. Only the new RCV buffer (PR #1964) is affected. + - ec571a0 Fixed new RCV buffer in stream mode (reading fractional packets) + - 3c3824f Removed unused SRT_DEBUG_TSBPD_DRIFT + - f11b026 fix listener's cookie check (#2176). + - 276a841 New receiver buffer implementation + - 3f2945c Reduced nesting of checkBrokenSockets() + - c1fdb61 Changed lock order in bstats (#2168) + - 489c5fc Use Mersenne Twister engine with C++11 instead of the std::random_device. + Fixed max value probability for the default (C++03) rand(). + - 86d1eb2 Added CUDT::isRcvReady() with mutex lock. + Added CUDT::getAvailRcvBufferSize() function with and without mutex lock. + - 2031b2c Do not set peerA... + +------------------------------------------------------------------- +Sun Mar 27 19:40:15 UTC 2022 - Dirk Müller + +- update to 1.4.4: + * Monotonic/steady clock is enabled by default. + * Changed the default value of SRTO_RETRANSMITALGO socket option to 1. This + activates the efficient retransmission algorithm on the sender side which + optimizes the bandwidth usage by producing fewer retransmissions per lost + packet. The algorithm is available since v1.4.2. Intensive retransmission + algorithm (the former default) can be activated by setting + SRTO_RETRANSMITALGO=0. + * Improved random integer retrieval, which is mainly used for initial socket + ID and Initial Sequence Number (ISN) generation. + * Improved clock drift compensation algorithm. RTT samples are now taken into + account when estimating clock drift. + * Improved round-trip time (RTT) estimation. + On the receiver side, smoothed RTT (SRTT) is set to the first RTT + measurement obtained from the first ACK/ACKACK pair. When a subsequent RTT + measurement is made, an exponentially weighted moving average (EWMA) is used to + update smoothed RTT. Before the very first RTT sample is available, SRTT is + initialized as 100 ms or taken from the cache if one exists. + * On the sender side, in the case of unidirectional transmission, the values of + smoothed RTT and RTT variance are now extracted from ACK packets. In the case + of bidirectional transmission, an EWMA is still applied to be consistent with + the previous behavior. + * Improved 'No room to store incoming packet' warning with additional hints + to identify a possible reason. + * Added support for atomic types. + * Improved the logic of switching between main and backup links, extended the + list of member link states as well as defined events resulting in state + transition for Main/Backup mode of Connection Bonding. + * Documented Main/Backup mode of Connection Bonding. See here. + * Fixed group read-readiness update on the receiver side. + * Added missing lock when checking for read-readiness of a group member and + fixed the resulting crash. + * Fixed base time and drift synchronization in a group, which caused + insufficient packet loss recovery and end-to-end latency maintenance by a + group receiver. + * Fixed validation of the packet sequence number when reading from a group + member, which was causing an incorrect decision to break a member + connection. + * Fixed crash on dereferencing null CryptoControl instance in handshake reply. + * Placed some of the SRT classes under the 'srt' namespace. + * Fixed possible incorrect outcome of cookie contest function (rendezvous + connection mode) under certain compiler optimizations. + * Fixed uninitialized destination socket ID in Shutdown control message. + * Set CLOEXEC for epoll on Linux. + * Added missing receiver buffer lock into CUDT::receiveBuffer(..) and + CUDT::recvfile(..) functions. + * Make sure TTL will not drop packets over the last block. + * Fixed the value of the Last Packet Sequence Number field in Drop Request + control message on TTL packet drop. + * Fixed the content of the Drop Request control message. If a loss of packets + already missing in the sender buffer was reported, the very first packet + present in the sender buffer was incorrectly included in the range of + packets to be dropped. + * Fixed version rejection for handshake v4 caller (SRT prior to v1.3.0). + * Fixed the crash when referencing a resource already freed in CRendezvousQueue class. + * Fixed detection of reusable bindings and binding conflicts. + * Updated SRTO_RETRANSMITALGO socket option description. + +------------------------------------------------------------------- +Tue May 11 23:55:15 UTC 2021 - Ferdinand Thiessen + +- Update to version 1.4.3 + * API/ABI/Integration Changes + * fixed/changed cast to bool instead of int in srt_getsockopt and + srt_getsockflag API functions + * Fixed ABI compatibility around SRTO_BINDTODEVICE value + depending on ENABLE_EXPERIMENTAL_BONDING. + * Made SRT versioned SO named with major and minor + * New Features and Enhancements + * New API function srt_clock_type() to retrieve SRT internal + clock type. + * New SRTO_MININPUTBW socket option to control the minimum + allowed value of the input bitrate estimate. + * Run the accept hook (listener callback) before opening an + accepted socket providing an opportunity to set some ‘PRE’ + options (like SRTO_RCVBUF). + * Fixed wrong check of common FEC configuration. + * Added handshake data check to prevent rogue handshakes. + * Fixed crash and hang up related to CSndLossList. + * Fixed miscalculations on extreme loss conditions in FEC. + * Fixed Data race when TLPKTDROP while checking loss for ACK + candidate. + * Fixed handshake IP parsing in IPv4-IPv6 connections. + * Fixed race starting and joining TSBPD thread. + * SRTO_RETRANSMITALGO becomes readable. + * Fixed sender hang up + * Fixed SRTO_MINVERSION not rejecting too old SRT version. + * Fixed a bug repeating a conclusion HS with rejection +- Drop upstream merged 0001-Fix-build-with-GCC-11.patch + * https://github.com/Haivision/srt/pull/1806 + +------------------------------------------------------------------- +Wed Feb 10 10:29:12 UTC 2021 - Christophe Giboudeaux + +- Add patch to fix build with GCC 11 (boo#1181883) + * 0001-Fix-build-with-GCC-11.patch + +------------------------------------------------------------------- +Wed Oct 7 09:01:37 UTC 2020 - Luigi Baldoni + +- Update to version 1.4.2 + New Features and Enhancements + * Added support for C++11. Reworked timing and + synchronization objects. Three sources of timing are now + available (selected via a build option): + + POSIX gettimeofday() - default build mode (affected by + discontinuous jumps in the system time); + + POSIX CLOCK_MONOTONIC. CMake build option: + -DENABLE_MONOTONIC_CLOCK=ON. See --enable-monotonic-clock + in BuildOptions.md; + + C++11 std::chrono::steady_clock, std::thread, + std::mutex, etc. CMake build option: + -DENABLE_STDCXX_SYNC=ON. See --enable-stdcxx-sync in + BuildOptions.md. + * Added SRT Source Time API support. It allows setting a + source timestamp on a packet that corresponds to a packet + creation/reception time. See the Time Access section of + the API docs. + * Added an improved retransmission algorithm which reduces + the retransmission overhead on a link. Set option + SRTO_RETRANSMITALGO=1. + * Added SRTO_BINDTODEVICE option to bind a socket to a + specified NIC. SRTO_BINDTODEVICE option reflects the + system option SO_BINDTODEVICE for an SRT socket. + * Customizable rejection reason code. SRT library now lets + the application provide a code with rejection reason (in a + listener callback) if connection request has been rejected + by the application. See Rejection Codes in the Access + Control guide. + * Added new rejection reason: on timeout. See + SRT_REJ_TIMEOUT in API-functions.md. + * Extended SRT statistics with pktSentUniqueTotal, + pktRecvUniqueTotal. Statistics documentation now has a + summary table for better navigation. + * Added srt_getversion() API function. + * Moved socket options documentation to a separate file + APISocketOptions.md. It now has a summary table for better + navigation. + * Socket options SRTO_INPUTBW and SRTO_OHEADBW are now + readable. + * The logging functionality has been improved by means of + defining new and more fine-grained Functional Areas (FA) + to which log messages are assigned. This is done to prevent + too many debug log messages from the library influencing + performance with the debug logging turned on. + Fixed Issues + * Fixed bug: finding the listener's muxer only by port + number was wrong. + * Fixed wrong reject reason on async connect. + * Fixed CSndLossList::insert with negative offset. + * Fixed default binding for IPv6-target rendezvous. + * Fixed HS TSBPD flags check. + * Improved CRcvLossList protection from concurrent access. + * Fixed error reporting on connect/accept. + * Correctly handle IPv4 connections on IPv6 listener. + * Fixed Moving Average for receiver and sender buffers. + * Protecting RCV buffer access. + * Fixed local storage depleted issue #486. + * Fixed restrictions on pre-bind only options. + * Avoid reporting packets rebuilt by FEC as lost. + * Improved inserting a serial element into sender's loss + list. + * Fixed handling of stale loss report. + * Fixed closing the crypto control. + * Added CSync class as a high-level CV wrapper. + * Renamed legacy UDT_EPOLL_* symbols. + * Eliminated ref_t. Some more convention fixes. + * Crypto: Reset the passphrase in memory on close for + security reasons. + Deprecated or Renamed + * Removed deprecated socket options: SRTO_TWOWAYDATA, + SRTO_TSBPDMAXLAG, SRTO_CC, SRTO_MAXMSG, SRTO_MSGTTL, + SRTO_SNDPBKEYLEN, SRTO_RCVPBKEYLEN. + * Removed deprecated option names: SRTO_SMOOTHER (use + SRTO_CONGESTION), SRTO_STRICTENC (use + SRTO_ENFORCEDENCRYPTION). + version 1.4.1: + Improvements + * Improved periodic NAK report timing + * Use monotonic clock in CTimer::sleepto() + * Initial reorder tolerance set to maximum value + (SRTO_LOSSMAXTTL) + * Added pktReorderTolerance to stats + * Use busy wait only to refine below 1 ms + * Added SRTO_LOSSMAXTTL to srt_getopt() + * Update SND loss list on lite ACK + Fixes + * Fixed catching exception from + CUDTUnited::connect_complete() + * Fixed missing vertical FEC/CTL packet + * Fixed bandwidth measurement on non-monotonic or + retransmitted packets + * Fixed srt_getopt(...): optlen is not set in some cases. + * Fixed EPoll update_usock + * Fixed checkTimers interval (100ms -> 10 ms) + * Fixed SRT Stats backward compatibility (CBytePerfMon + fields order) + * Fixed FEC crash when a large number of dropped packets + occur + * Fixed FEC crash (access item out of range) + * Fixed FileCC crash. Prevented 0 pktsInFlight to be used in + the calculation for loss percentage + version 1.4.0: + New Features and Enhancements + * Updates to epoll API. Added edge-triggered epoll wait. + * srt-live-transmit default chunk size set to 1456 + * Added forward error correction (FEC) packet filter + * Added Packet filter API + * File congestion control improvements + Fixed Issues + * Free addrinfo if bind fails (potential memory leak) + * Fixed SRTO_LOSSMAXTTL option on accepted socket + * Fixed blocking srt_connect call (state update) + * Fixed potential sender's sockets list overflow + * Use MONOTONIC clock in Garbage Collector thread +- Drop CVE-2019-15784.patch (fixed upstream) + +------------------------------------------------------------------- +Fri Dec 13 15:23:23 UTC 2019 - Dominique Leuenberger + +- Drop pkgconfig(zlib) BuildRequires: this is only needed on + win32/mingw (and even there it rather seems like working around a + bug in some other package, as there is no explicit call to zlib + functions). + +------------------------------------------------------------------- +Fri Aug 30 12:47:57 UTC 2019 - Alexandros Toptsoglou + +- Backported commit 47e5890 and 64875fa to fix CVE-2019-15784 + (boo#1148844) and avoid a potential array overflow. + * Added CVE-2019-15784.patch + +------------------------------------------------------------------- +Thu Aug 29 16:02:56 UTC 2019 - Alexandros Toptsoglou + +- Update to version 1.3.4: + + Various bugfixes and feature enhancments. + +------------------------------------------------------------------- +Mon Aug 19 19:06:58 UTC 2019 - Bjørn Lie + +- Update to version 1.3.3: + + Various bugfixes and feature enhancments. +- Update to version 1.3.2: + + Various bugfixes, feature enhancments, build fixes and + documentation updates. +- Drop srt-no-rpath.patch: Fixed upstream. + +------------------------------------------------------------------- +Tue Nov 13 12:54:11 UTC 2018 - Antonio Larrosa + +- Fix install prefix in cmake so the pkgconfig file has correct + information on where to find srt's libraries and include files. + +------------------------------------------------------------------- +Mon Oct 29 09:10:45 UTC 2018 - Dominique Leuenberger + +- Add pkgconfig(zlib) BuildRequires: until openssl 1.1.1, zlib was + pulled in into our buildroot, avoiding srt having to care for it + explicitly. Since this is changed now, we have to worry for our + dependency on our own. The dep comes from: + CMakeLists.txt:set (SSL_REQUIRED_MODULES "openssl libcrypto zlib") + +------------------------------------------------------------------- +Wed Aug 8 16:56:55 UTC 2018 - jengelh@inai.de + +- Trim marketing from description. + +------------------------------------------------------------------- +Fri Jul 13 08:25:47 UTC 2018 - bjorn.lie@gmail.com + +- Update to version 1.3.1: + + Various bugfixes. + +------------------------------------------------------------------- +Thu Jul 12 20:31:52 UTC 2018 - jengelh@inai.de + +- Update summaries. + +------------------------------------------------------------------- +Fri Jun 29 16:06:41 UTC 2018 - bjorn.lie@gmail.com + +- Add baselibs.conf: build 32bit support libs. + +------------------------------------------------------------------- +Thu May 31 09:17:36 UTC 2018 - bjorn.lie@gmail.com + +- Update Summary and Descriptions fields. + +------------------------------------------------------------------- +Mon May 21 11:47:59 UTC 2018 - bjorn.lie@gmail.com + +- Inital packaging. + diff --git a/srt.spec b/srt.spec new file mode 100644 index 0000000..3241e37 --- /dev/null +++ b/srt.spec @@ -0,0 +1,101 @@ +# +# spec file for package srt +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%define sover 1_5 + +Name: srt +Version: 1.5.4 +Release: 0 +Summary: Secure Reliable Transport (SRT) +License: MPL-2.0 +Group: Development/Libraries/C and C++ +URL: https://www.srtalliance.org +Source0: https://github.com/Haivision/%{name}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz +Source99: baselibs.conf +BuildRequires: cmake +BuildRequires: fdupes +BuildRequires: gcc-c++ +BuildRequires: pkgconfig +BuildRequires: tcl +BuildRequires: pkgconfig(openssl) + +%description +SRT is a video transport protocol and technology stack +that optimizes streaming performance across unpredictable networks +with secure streams and firewall traversal. + +%package -n libsrt%{sover} +Summary: Secure Reliable Transport (SRT) library +Group: System/Libraries + +%description -n libsrt%{sover} +This package contains a shared system library for Secure Reliable +Transport (SRT). + +%package devel +Summary: Development files for the Secure Reliable Transport (SRT) library +Group: Development/Libraries/C and C++ +Requires: %{name} = %{version} +Requires: libsrt%{sover} = %{version} + +%description devel +This package contains all necessary include files and libraries +needed to develop applications with Secure Reliable Transport +(SRT) support. + +%prep +%autosetup -p1 + +%build +%cmake \ + -DCMAKE_INSTALL_PREFIX=%{_prefix} \ + -DCMAKE_INSTALL_BINDIR=%{_bindir} \ + -DCMAKE_INSTALL_LIBDIR=%{_libdir} \ + -DCMAKE_INSTALL_INCLUDEDIR=%{_includedir} \ + -DENABLE_CXX11=ON \ + -DENABLE_SHARED=ON \ + -DENABLE_MONOTONIC_CLOCK=ON \ + -DENABLE_STATIC=OFF \ + %{nil} +%cmake_build + +%install +%cmake_install +%fdupes %{buildroot}%{_prefix} + +%post -n libsrt%{sover} -p /sbin/ldconfig +%postun -n libsrt%{sover} -p /sbin/ldconfig + +%files +%doc CONTRIBUTING.md README.md +%{_bindir}/%{name}-ffplay +%{_bindir}/%{name}-file-transmit +%{_bindir}/%{name}-live-transmit +%{_bindir}/%{name}-tunnel + +%files -n libsrt%{sover} +%license LICENSE +%{_libdir}/libsrt.so.* + +%files devel +%{_includedir}/%{name}/ +%{_libdir}/libsrt.so +%{_libdir}/pkgconfig/haisrt.pc +%{_libdir}/pkgconfig/srt.pc + +%changelog