Skip to content

Releases: Haivision/srt

v1.4.4

04 Oct 12:28
8b32f37
Compare
Choose a tag to compare

Release Notes

API/ABI/Integration Changes

API/ABI version: 1.4.​

  • PR #2088: Monotonic/steady clock is enabled by default.
    • On Windows: C++11 steady clock is used by default (-DENABLE_STDCXX_SYNC=ON).
    • On Linux: CLOCK_MONOTONIC is used by default if supported by the platform (-DENABLE_MONOTONIC_CLOCK=ON).
  • PR #2069: 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.

Improvements

  • PR #1997: Improved random integer retrieval, which is mainly used for initial socket ID and Initial Sequence Number (ISN) generation.
  • PR #1965: Improved clock drift compensation algorithm. RTT samples are now taken into account when estimating clock drift.
  • PR #1957: 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.
  • PR #1909: Improved 'No room to store incoming packet' warning with additional hints to identify a possible reason.
  • PR #1863: Added support for atomic types.

Experimental SRT Connection Bonding

  • PR #1857: 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.
  • PR #1989: Documented Main/Backup mode of Connection Bonding. See here.
  • PR #2026: Fixed group read-readiness update on the receiver side.
  • PR #2094: Added missing lock when checking for read-readiness of a group member and fixed the resulting crash.
  • PR #2139: 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.
  • PR #2142: 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 Issues Highlights

  • PR #2075: Fixed crash on dereferencing null CryptoControl instance in handshake reply.
  • PR #2012: Placed some of the SRT classes under the 'srt' namespace.
  • PR #1517: Fixed possible incorrect outcome of cookie contest function (rendezvous connection mode) under certain compiler optimizations.
  • PR #2073: Fixed uninitialized destination socket ID in Shutdown control message.
  • PR #2062: Set CLOEXEC for epoll on Linux.
  • PR #2060: Added missing receiver buffer lock into CUDT::receiveBuffer(..) and CUDT::recvfile(..) functions.
  • PR #2028: Added a check for null unit when passing to CRendezvousQueue::updateConnStatus(..).
  • PR #2005: Make sure TTL will not drop packets over the last block.
  • PR #2003: Fixed the value of the Last Packet Sequence Number field in Drop Request control message on TTL packet drop.
  • PR #2011: 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.
  • PR #2010: Fixed version rejection for handshake v4 caller (SRT prior to v1.3.0).
  • PR #1919: Fixed the crash when referencing a resource already freed in CRendezvousQueue class.
  • PR #1588: Fixed detection of reusable bindings and binding conflicts.

Build

  • PR #2117: Updated Windows installer for alternate platform names.
  • PR #2136: Added iOS build to GitHub Actions CI.

Docs

  • PR #2134: Updated SRTO_RETRANSMITALGO socket option description.
  • PR #2119: Improved Access Control general syntax description.

Changelog

Click to expand/collapse

Core Functionality

167b8e5 Fixed group drift synchronization (#2139)
60891f3 Fixed 'atomic' linking for iOS target (#2137)
add4058 Fixed 'undef' warning with gcc and clang (#2131)
ad84c38 Fixed FileCC random decrease
b147d5e Fix Solaris build. (#2115)
e98146a Avoid using strlen in ThreadName class
2243388 Removed ThreadName(const char*). (#2113)
df95ecb Fix atomic for MacOS, FreeBSD, GCC<4.7, Clang<6 (#2104)
5e75c32 Placed ThreadName class inside srt namespace
409a40d Detect pthread_getname* availability
cbdd676 Added missing lock for isRcvDataReady()
ae11c18 CUDTSocket now owns a member CUDT class (composition).
b214122 Fixed int64_t to long type cast
f1c96d9 Check Win QPC frequency is non-zero
7728b70 Prefer the endian.h header file from glibc if available
d7dcf0c Check if socket is still open before replying to HS
252337c Moved congestion control into the srt namespace
f0aa009 Renamed congestion control event handling functions
747f288 Check if CryptoControl exists in createSrtHandshake(..). If it does not, it will lead to a crash, reported in #1979.
896cc92 Fixed uninitialized DST socket ID in SHUTDOWN ctrl message
adba7af Use ThreadName::BUFSIZE in CreateLogLinePrefix()
d6f93a1 Update srtcore/threadname.h
73cad8d Refactor ThreadName implementation
1a85c02 Annotating CUDT::m_pCryptoControl locking behavior (#2070)
8f169a9 Changed the default SRTO_RETRANSMITALGO to 1 (#2069)
158f35d Fix FTBFS on Debian kfreebsd
ea4edff Moved compiler attribute definitions
127c85c Put CSrtConfigSetter into anonymous namespace
589f103 Move CSrtConfigSetter templates to cpp file
2ca5313 Added Clang TSA attributes. (#2000)
a34aa08 Set CLOEXEC for epoll on Linux
1df29db use sizeof(uint32_t) in SRTDATA_MAXSIZE
ec24e15 Replace hacky static_assert by SRT_STATIC_ASSERT
65ae257 Added missing RCV buffer lock in CUDT::receiveBuffer(..).
96a41db CSndUList::update: reschedule if earlier time
e9c550b Refactor CSndUList: pop CUDT, not a packet
e8d890c Moved mutex from CSndQueue to CSndUList
94322d4 Fix unused-variable warning
e932e8f Fixed getTsbPdTimeBase: carryover within 2 wrapping periods (#2043)
acf38a7 Fixed skip non-empty data (#2033)
d6e8e21 Fix build error when -DSRT_DEBUG_TRACE_DRIFT=1
28a7006 use seq larger than m_RcvBaseSeqNo to update group readablity (#2026)
0f0caf9 Added atomic support and marked atomic key fields detected by thread sanitizer (#1863)
1751bab FIX: Added check for NULL unit when passing to updateConnStatus (#2028)
17fee15 make sure TTL will not drop packets over last block (#2005)
e2a00aa Detect reusable bindings and binding conflicts correctly (#1588).
22cc924 Applied clang-format on channel.h and cpp
445a60c Refax: placing SRT classes inside 'srt' namespace. CUDT, CUDTUnited, CUDTSocket, CUDTGroup, etc.
4ddb68e Applied clang-format on queue.h and cpp
117f831 Fixed DROPREQ on NAK behind SndLastDataAck (#2011)
393a6c7 Added srt::sync::genRandomInt(..) for a uniform way to get a random integer from the range. If C++11 is enabled, uniform_int_distribution and random_device are used.
d9150ea Fixed DROPREQ by TTL packet drop (#2003)
345bab7 Fixed version rejection for HSv4 caller
0921da6 Fix DriftTracer: take RTT into account
917a715 Added CRendezvousQueue::qualifyToHandle. Now TTL of a socket pending for connection is checked on every update iteration -> more precise connection timeout.
36f8995 CRendezvousQueue: added doxygen comments. Renamed m_RIDVectorLock to m_RIDListLock.
34e14ab Fix use-after-free in rendezvous queue (#1919)
2559797 Main/backup: improved switching rules (#1857)
8830943 Improved 'no room to store' log message (#1909)
514f61e Fix comments
97445fc Minor strerror_array_sizes refactoring
d9eefd8 Fixed cookie contest (#1517)
9848d68 TSBPD logic extracted from CRcvBuffer. (#1968)
782a27f Renamed m_iRTT variable to m_iSRTT (#1971)
d898f1c Improved RTT estimation (#1957)

Unit Tests

399e8bf Test FileUpload: find unused UDP port (#2086)
bc5a642 Fixed range loop construct warning
6ca1e0d Fixed possible TestIPv6 hangups if connection fails
0fca874 Fixed build warning: unused parameter
5ac27a3 Tests for socket options API (#1929)
3c1c490 Fix -Wsign-compare
e761745 Added fixes for FEC test occasional failure (#2037)
8774645 ConnectionTimeout.Nonblocking 500ms -> 300ms. Previously TTL was checked only every 250 ms, which resulted in a poor timeout precision.

Build Scripts (CMake, etc.)

cdec114 Fix build Android with NDK <17. Need to link against libatomic when compiling statically
6fda502 Added iOS build to GitHub Actions CI (#2136)
d8127a8 Fixed CMake warning about string
1d862c4 Fixed a typo 'availabe'
f9a54a0 Build but do not install test-srt
4d0fe61 Fixes build with CMake <3.0.2. (#2123)
2e09a16 Update Windows installer for alternate platform names (#2117)
e8f4057 Automatically link libatomic if needed. (#2116)
4fc0f31 Use lowercase CMAKE_SYSTEM_NAME on Android
fb09875 Fix build for Linux GLIBC-2.8 and earlier. (#2103)
da70624 Fix Build for Android. (#2100)
8b1be61 Fixed ENABLE_MONOTONIC_CLOCK=ON when target is Android
6dcbaf0 Cross-compile android from macOS host (#2071)
b4a5887 Added compile_commands.json to .gitignore (#2031)
e37f4ab Set OpenSSL vars explicitly; Support mbedTLS Android build (#2030)
44eb6ce Improved...

Read more

v1.4.4-rc.1

08 Sep 15:08
b147d5e
Compare
Choose a tag to compare
v1.4.4-rc.1 Pre-release
Pre-release

Pre-Release Notes

RC.1 mainly includes build fixes for various platforms compared to RC.0.

Changelog Since v1.4.4-rc.0

Click to expand/collapse

Core Functionality

e98146a Avoid using strlen in ThreadName class
2243388 Removed ThreadName(const char*). (#2113)
df95ecb Fix atomic for MacOS, FreeBSD, GCC<4.7, Clang<6 (#2104)
5e75c32 Placed ThreadName class inside srt namespace
409a40d Detect pthread_getname* availability

Build Scripts (CMake, etc.)

2e09a16 Update Windows installer for alternate platform names (#2117)
e8f4057 Automatically link libatomic if needed. (#2116)
4fc0f31 Use lowercase CMAKE_SYSTEM_NAME on Android
fb09875 Fix build for Linux GLIBC-2.8 and earlier. (#2103)
da70624 Fix Build for Android. (#2100)
8b1be61 Fixed ENABLE_MONOTONIC_CLOCK=ON when target is Android

Documentation

34ba951 Improved Access Control general syntax description
ab9e69b Removed a reference to YAML syntax

Experimental SRT Connection Bonding

cbdd676 Added missing lock for isRcvDataReady()

v1.4.4-rc.0

18 Aug 13:49
74aff82
Compare
Choose a tag to compare
v1.4.4-rc.0 Pre-release
Pre-release

Pre-Release Notes

API/ABI/Integration Changes

API/ABI version: 1.4.

  • PR #2088: Default C++11 steady clock on Windows. Try to use CLOCK_MONOTONIC by default on Linux.
  • PR #2069: Changed the default SRTO_RETRANSMITALGO to 1.

Improvements

  • PR #1997: Improved random integer retrieval (used for SocketID, Initial Sequence Number).
  • PR #1965: Improved clock drift tracing (taking RTT into account).
  • PR #1957: Improved RTT estimation.
  • PR #1909: Improved 'no room to store' log message.
  • PR #1863: Added support for atomic types.

Fixed Issue Highlights

  • PR #2075: Fixed crash on dereferencing null CryptoControl in HS reply.
  • PR #2073: Fixed uninitialized DST socket ID in SHUTDOWN ctrl message.
  • PR #2062: Set CLOEXEC for epoll on Linux.
  • PR #2060: Added missing RCV buffer lock into CUDT::receiveBuffer(..).
  • PR #2028: Added check for null unit when passing to updateConnStatus.
  • PR #2012: Placing SRT classes inside 'srt' namespace.
  • PR #2005: Make sure TTL will not drop packets over the last block.
  • PR #2011: Fixed DROPREQ on NAK behind SndLastDataAck.
  • PR #2003: Fixed DROPREQ by TTL packet drop.
  • PR #2010: Fixed version rejection for HSv4 caller.
  • PR #1919: Fix use-after-free in rendezvous queue.
  • PR #1588: Detect reusable bindings and binding conflicts correctly.
  • PR #1517: Fixed cookie contest.

Experimental SRT Connection Bonding

  • PR #2026: Use seq larger than m_RcvBaseSeqNo to update group readability.
  • PR #1857: Improved main/backup switching rules.
  • PR #1989: Added Main/Backup mode overview document.

v1.4.3

27 Apr 09:41
291e010
Compare
Choose a tag to compare

Release Notes

API/ABI/Integration Changes

API/ABI version: 1.4.

  • PR #1925: fixed/changed cast to bool instead of int in srt_getsockopt(..) / srt_getsockflag(..) API functions for:
  • PR #1794: Fixed ABI compatibility around SRTO_BINDTODEVICE value depending on ENABLE_EXPERIMENTAL_BONDING.
  • PR #1741: Made SRT versioned SO named with major and minor (now libsrt.so.1.4 instead of libsrt.so.1).

New Features and Enhancements

  • PR #1887: New API function srt_clock_type() to retrieve SRT internal clock type.
  • PR #1791: New SRTO_MININPUTBW socket option to control the minimum allowed value of the input bitrate estimate.
  • PR #1652: Run the accept hook (listener callback) before opening an accepted socket providing an opportunity to set some ‘PRE’ options (like SRTO_RCVBUF).

Fixed Issue Highlights

  • PR #1826: Fixed wrong check of common FEC configuration.
  • PR #1781: Added handshake data check to prevent rogue handshakes.
  • PR #1733: Fixed crash and hang up related to CSndLossList.
  • PR #1716: Fixed miscalculations on extreme loss conditions in FEC.
  • PR #1668: Data race when TLPKTDROP while checking loss for ACK candidate.
  • PR #1664: Fixed handshake IP parsing in IPv4-IPv6 connections.
  • PR #1629: Fixed race starting and joining TSBPD thread.
  • PR #1615: SRTO_RETRANSMITALGO becomes readable.
  • PR #1613: Fixed sender hang up (getFlighSpan function and retransmit bug).
  • PR #1589: Fixed BSD builds.
  • PR #1581: Fixed SRTO_MINVERSION not rejecting too old SRT version.
  • PR #1650: Fixed a bug repeating a conclusion HS with rejection (connectivity issue).

Experimental SRT Connection Bonding

  • PR #1837: Fixed group statistics initialization and sent packets metric.
  • PR #1804: Fixed group receiver out of order output (buffering of ignored packet).
  • PR #1796: Fixed bonding packets timestamping.
  • PR #1775: Runtime link stability timeout threshold for main/backup activation.
  • PRs #1761#1783#1784: Fixed packet drops in the main/backup receiving function.
  • PR #1695: Fixed order of group member state change before write ready.
  • PRs #1639#1683#1687: Fixes for synchronization issues and deadlocks.

Changelog

Click to expand/collapse

Core Functionality

291e010 New API function srt_clock_type() (#1887)
90c62af Fixed type conversion build warnings
3bf5ceb Check invalid sockopt values (#1956)
8608ad2 Removed logging in cleanup
35fb87f const SrtOptionAction (#1942)
9442870 Fixed getting SRTO_TLPKTDROP: return config value until connected.
b9d568e Added more logs around accept errors (#1883)
aa51e2d Apply PRE sockopt restriction in listening state (#1939)
f053394 SRTO_CONGESTION: Check optlen in getsockopt
8c8d6fb Fix build with mbedtls older than 428cc52a73. (#1945)
4f06c2e Fixed srt_getsockopt cast for bool options (#1925)
109f667 Minor: file scope for global var and func (#1938)
9e6c90f Minor refactoring around ACK processing (#1928)
65d5483 Use time_point in debugTraceJitter(..) (#1912)
009b7b6 Fixed SRTO_SNDDROPDELAY: use POST restriction
98649a6 Fixed SRTO_KM* options setting. (#1922)
d5f1d08 Refact: moved code to processCtrlUserDefined dedicated function
efd0c0b Refact: moved code to processCtrlShutdown dedicated function
eb6e029 Refact: moved code to processCtrlDropReq dedicated function
7a2b3a2 Refact: moved code to processCtrlHS dedicated function
bd55e29 Refact: moved code to processCtrlAckAck dedicated function
4849c3c SRTO_FC: reject values lower than 32
81d3b95 Build fix: added ParseFilterConfig declaration (#1918)
f31f1fb Applied clang-format on buffer.h.
9cbf82e Added SRT_STATIC_ASSERT macro
a499c42 SocketData moved to group_common.h (#1907)
262fe21 sendBackup: logical OR instead of bitwise
26c07c5 Made CEpoll::m_EPollLock mutable
50c8355 Fixed wrong limitation on SRTO_FC option. (#1899)
e328bec Fix typo of variable name
5a46839 Extended logs for negative or zero RTT estimate on the receiver side (#1876)
1d4338a Added SRT_SYNC_CLOCK_TYPE preprocessor definition (#1885)
93de9c8 Removed unnecessary lock that could cause a deadlock
22d5736 Added restrictions on pktseq/msgno fields in srt_sendmsg2 call (#1879)
2d41869 Use correct keyword for CEPollDesc
449d917 Fix getopt SRTO_TLPKTDROP (#1865)
b38bb7f Changed SRTO_CONNTIMEO restriction to PRE (#1864)
00e42d7 Fixed incorrect group data sync on first connected socket
2bcc219 Fixed incorrect setting streamid in internal config in HS (last 4 characters) (#1868)
3605f6f Removed condition that blocks extending group HS extension in future
18e8889 Restoring RTTVar from cached RTT after reconnection
2ef0c8d Fixed wrong type prefix for CUnit announcement (#1860)
a1bcd4a Fixed Windows build with latest pthreads
d1d351d Fixed lock around ackmessage (#1849)
db3db78 Fixed SRT_EPOLL_IN epoll event loss problem (#1843)
47e477b Unguarded access to epolldesc from group sender code (#1846)
de54e65 Fixed wrong check of common FEC configuration (#1826)
12d03fe Removed 'm_' prefix in socket config structs (#1839)
6e32509 Fixed bug: wrong size setting for StringStorage. (#1841)
0ee1b98 Fixed restrictions for options and replication in the app array
93f710f Fixed some int conversion build warnings
54e435e Fixed a missing group stats initialization
e90b332 Fixed missing pktSentUnique stats for backup
82159e4 Added SRTO_MININPUTBW socket option
030b0d4 Fixed wrong max socket ID value formula (#1816)
21058d5 Fixed post-action for socket options
1c7da11 Removed invalid max socket ID check
3754562 Created internal config storage for a socket (#1776)
bdb3191 Fixed group rcv buffering of ignored packet (#1804)
66cb7c7 Using numeric limits not only with C++11 (#1807)
f1b35cb Fix build with GCC 11. (#1806)
40943db Fixed FormatTime subseconds
94077c3 Fixed pre-initialization of the last sample time for groups
28f2021 Minor fixes: warn, formatting, trace, etc.
2872939 Workaround ABI compatibility due to ENABLE_EXPERIMENTAL_BONDING
4744283 Fix warning of undefined ENABLE_EXPERIMENTAL_BONDING
2d14df2 Fixed bonding packet timestamping
7656759 Runtime link stability timeout for main/backup (#1775)
2e9c1c7 Added group receiver drop log warning (#1761)
dcd62ca Revised pre-bind option restrictions (#1759)
c89995b FEC: Aligned NOTDONE and SUCCESS result of hanging as acceptable (#1790)
8845473 Fixed packet drop when reading from members (#1784)
5ec84d2 Fixed faulty packet drop by a group. m_RcvBaseSeqNo must be updated only when a packet is read.
7d99b80 Added handshake data check to prevent rogue handshakes (#1781)
a6a7a20 Bonding: refactoring receiving function (#1763)
481e7f7 Minor: renamed CUDT m_tsTmpActiveSince to m_tsFreshActivation (#1774)
051760d Minor refactoring of backup CheckIdleTime
74fc74a Increased FormatTime precision (#1766)
0f8623e Fixed too early closed caller socket in background. (#1750)
b2d35fc Splitting sendBackup_CheckParallelLinks(..) (#1751)
40aafa2 Added socket ID to RCV-DROP log message
b665e35 Main-backup: renaming member link arrays (#1744)
8b4c8cd Removed unused and swelling m_pAcceptSockets field + refax (#1740)
648e8b5 CSndLossList limits the maximum offset (#1733)
a5609d3 Reimplemented strerror to use static messages (#1627)
3ca4e09 Main-backup: added QualifyMemberStates function (#1739)
6e78ecb Run the accept hook before opening caller's socket
dccaf76 Fixed idle link activation by higher weight
26adb8b Refactoring backup link activation
62d5d30 fix dllexport of srt_rejectreason_str()
df25ca8 Minor warning fixes (C4267): type conversion with possible loss of data (#1710)
de57eca Fixes potential exception slipup on memory allocation error
60a66a3 Set closing state for a broken link
21ad8d1 Fixed miscalculations on extreme loss conditions in FEC (#1716)
c12e619 Refactored member pointer: now raw pointer to socket data (#1696)
ba883c3 CSync::wait_until is now mapped to CV::wait_until instead of wait_for.
88affe5 Minor refactoring of CheckRunningStability (#1713)
f964415 Minor compiler warning fixes (conversion with possible loss of data)
0add6cc Fixed formal problems detected by clang
0a61cb9 Fixed a bug repeating a conclusion HS with rejection (#1650)
82ada5d Fixed order of group member state change before write ready
b84f3d2 CheckValidSockets no longer remove sockets from group, this was causing inconsistency. (#1687)
bf6a5b3 Improved RCV-DROPPED log message (#1682)
d340f6d Fixed clearing errored group in connecting (#1683)
c42bc13 A change in setupCC to access CUnitQueue via CRcvQueue instead of CRcvBuffer (#1681)
d3ad2a4 Removed deprecated ANDROID macro (#1684).
03dafd8 Moved post-hs-update locking code out of mutex (#1677).
5bc58cd CUDTException is no longer exported in DLL
30ca93f Fix: check incoming ACK value in case of a rogue peer
c2f9316 Fixed some compiler warnings. (#1669)
b7eb2d2 Fixed data race: TLPKTDROP while checking loss list for ACK candidate (#1668)
81b6651 Fixed HS IP parsing in v4-v6 connection
d91e66f Fixed wrong reaction on failure KMREQ and unsafe construction of EventVariant (#1666)
411264f Fixed async event reporting and mutex lock ordering for groups (#1639)
b0a9d4d Use TARGET_OS_MAC instead of TARGET_OS_OSX/IOS/TV (...

Read more

v1.4.3-rc.1

19 Apr 16:09
3bf5ceb
Compare
Choose a tag to compare
v1.4.3-rc.1 Pre-release
Pre-release

Release Candidate 1.

v1.4.3-rc.0

08 Mar 14:52
53cc738
Compare
Choose a tag to compare
v1.4.3-rc.0 Pre-release
Pre-release

Changelog

Click to expand/collapse

Core Functionality

47e477b Unguarded access to epolldesc from group sender code (#1846)
de54e65 Fixed wrong check of common FEC configuration (#1826)
12d03fe Removed 'm_' prefix in socket config structs (#1839)
6e32509 Fixed bug: wrong size setting for StringStorage. (#1841)
0ee1b98 Fixed restrictions for options and replication in the app array
93f710f Fixed some int conversion build warnings
54e435e Fixed a missing group stats initialization
e90b332 Fixed missing pktSentUnique stats for backup
82159e4 Added SRTO_MININPUTBW socket option
030b0d4 Fixed wrong max socket ID value formula (#1816)
21058d5 Fixed post-action for socket options
1c7da11 Removed invalid max socket ID check
3754562 Created internal config storage for a socket (#1776)
bdb3191 Fixed group rcv buffering of ignored packet (#1804)
66cb7c7 Using numeric limits not only with C++11 (#1807)
f1b35cb Fix build with GCC 11. (#1806)
40943db Fixed FormatTime subseconds
94077c3 Fixed pre-initialization of the last sample time for groups
28f2021 Minor fixes: warn, formatting, trace, etc.
2872939 Workaround ABI compatibility due to ENABLE_EXPERIMENTAL_BONDING
4744283 Fix warning of undefined ENABLE_EXPERIMENTAL_BONDING
2d14df2 Fixed bonding packet timestamping
7656759 Runtime link stability timeout for main/backup (#1775)
2e9c1c7 Added group receiver drop log warning (#1761)
dcd62ca Revised pre-bind option restrictions (#1759)
c89995b FEC: Aligned NOTDONE and SUCCESS result of hanging as acceptable (#1790)
8845473 Fixed packet drop when reading from members (#1784)
5ec84d2 Fixed faulty packet drop by a group. m_RcvBaseSeqNo must be updated only when a packet is read. However, it could have been updated also when only checked.
7d99b80 Added handshake data check to prevent rogue handshakes (#1781)
a6a7a20 Bonding: refactoring receiving function (#1763)
481e7f7 Minor: renamed CUDT m_tsTmpActiveSince to m_tsFreshActivation (#1774)
051760d Minor refactoring of backup CheckIdleTime
74fc74a Increased FormatTime precision (#1766)
0f8623e Fixed too early closed caller socket in background. (#1750)
b2d35fc Splitting sendBackup_CheckParallelLinks(..) (#1751)
40aafa2 Added socket ID to RCV-DROP log message
b665e35 Main-backup: renaming member link arrays (#1744)
8b4c8cd Removed unused and swelling m_pAcceptSockets field + refax (#1740)
648e8b5 CSndLossList limits the maximum offset (#1733)
a5609d3 Reimplemented strerror to use static messages (#1627)
3ca4e09 Main-backup: added QualifyMemberStates function (#1739)
6e78ecb Run the accept hook before opening caller's socket
dccaf76 Fixed idle link activation by higher weight
26adb8b Refactoring backup link activation
62d5d30 fix dllexport of srt_rejectreason_str()
df25ca8 Minor warning fixes (C4267): type conversion with possible loss of data (#1710)
de57eca Fixes potential exception slipup on memory allocation error
60a66a3 Set closing state for a broken link
21ad8d1 Fixed miscalculations on extreme loss conditions in FEC (#1716)
c12e619 Refactored member pointer: now raw pointer to socket data (#1696)
ba883c3 CSync::wait_until is now mapped to CV::wait_until instead of wait_for. When C++11 sync is enabled, it will reduce the number of time conversions.
88affe5 Minor refactoring of CheckRunningStability (#1713)
f964415 Minor compiler warning fixes (conversion with possible loss of data)
0add6cc Fixed formal problems detected by clang
0a61cb9 Fixed a bug repeating a conclusion HS with rejection (#1650)
82ada5d Fixed order of group member state change before write ready
b84f3d2 CheckValidSockets no longer remove sockets from group, this was causing inconsistency. (#1687)
bf6a5b3 Improved RCV-DROPPED log message (#1682)
d340f6d Fixed clearing errored group in connecting (#1683)
c42bc13 A change in setupCC to access CUnitQueue via CRcvQueue instead of CRcvBuffer (#1681)
d3ad2a4 Removed deprecated ANDROID macro (#1684).
03dafd8 Moved post-hs-update locking code out of mutex (#1677).
5bc58cd CUDTException is no longer exported in DLL
30ca93f Fix: check incoming ACK value in case of a rogue peer
c2f9316 Fixed some compiler warnings. (#1669)
b7eb2d2 Fixed data race: TLPKTDROP while checking loss list for ACK candidate (#1668)
81b6651 Fixed HS IP parsing in v4-v6 connection
d91e66f Fixed wrong reaction on failure KMREQ and unsafe construction of EventVariant (#1666)
411264f Fixed async event reporting and mutex lock ordering for groups (#1639)
b0a9d4d Use TARGET_OS_MAC instead of TARGET_OS_OSX/IOS/TV (#1658).
bf37de1 Replaced CS with UniqueLock in CUDT::sendCtrlAck
721158c Moved ACK sending to CUDT::sendCtrlAck
a6f6663 Added m_RcvTsbPdStartupLock to protect TSBPD thread start and join. Deleted m_RecvDataLock. Fixes #1624
7997515 Fixed wrong usage of m_RecvDataLock. m_RecvDataCond must be used with m_RecvLock instead of m_RecvDataLock. m_RecvDataLock is only used to sync releaseSynch() calls.
7fc9389 Fixed CUDT::m_SrtHsSide initialization
651a3a0 Fixed getPeerSpec() left shift loosing value
6502c1c Fixed undefined zero length array in epoll
929b9fc SRTO_RETRANSMITALGO becomes readable (#1615)
bda3383 Added mutex protection and null check for removeFromGroup (#1617)
1e6e5ac Fixed getFlighSpan function and rexmit bug (#1613)
e145ca5 Fixed reports from LGTM (#1542)
724b841 Fixed BSD builds (#1589)
ca79ad9 Fixed SRTO_MINVERSION didn't reject too old version (#1581)

Unit Tests

6254c1d A basic check for initial group stats values
f7ee434 Added tests for SRTO_MININPUTBW
17db0cb Added 1 p.c. tolerance for long waiting time (#1762)
42a3bb7 Enabled some CSndLossList::insert tests
c507c5b Fixed connection timeout test to not reuse broken socket (#1712)
86327e9 Check IPv6 connection and socket address (#1670)
3bc810b Check CIPAddress::pton(..)
702153f Added tests for srt_group_connect and connect callback (disabled, fail due to SRT issues)
8903060 Added CThread::joinable() unit test

Build Scripts (CMake, etc.)

53cc738 Bump version to 1.4.3
1dced8b Fixed possibility to compile examples with C++03 standard (#1830)
df55d70 Using xenial dist in Travis with Java 11 (#1786)
0d0888a Fixed CMake CMP0048 policy restriction (#1765)
c6591d5 Fixed PowerShell script to not fail on CMake warning. CMake complaints about CMake version 2.8.8 requirement of GTest. Versions below 2.8.12 will soon become deprecated.
2856305 Made SRT versioned SO named with major and minor
adaf323 Use Java 11 in Travis
a165d45 Add ppc64le platform to CI (#1717)
fda8b7b Renamed codecov config file
6e25e48 Added codecov config. Coverage target 40%.
d4a217b Run codecov before sonar-scanner
bca6acf Added LGTM configuration to enable bonding (#1641)
2e39603 Added codecov test coverage report uploading from CI (#1640)
8af865e Enabled bonding in Travis and GitHub CI
d66d116 Enabled unit tests in VS 2015 AppVeyor CI
68f0502 Enabling building apps in AppVeyor CI. Were previously disabled in #1346 to reduce build times.
49f19fe Correction of error "'back_inserter': identifier not found"

Sample Applications

4aa9100 Added mininputbw URI query parameter
662db72 Traverse srt_options by const reference
44503cd Fixed hangup when exitting on interrupt (#1787)
64edcf6 Fix too premature stopped reading in srt-file-transmit (#1785)
524565f Added timepoint in json stats format (#1780)
85e3013 Fix virtual destructor for abstract struct SrtStatData (#1771)
3cc7c30 Refactored stats tables with universal printers (#1743)
68edf20 Created an example of a non-blocking client (#1753)
5066569 Added non-blocking option for bonding examples (#1746)
fd82e83 Show warning if UDP target is without host
8270f80 Fixed logfa handling in srt-live-transmit (#1647)
06a3c1e CSV stats timepoint follows ISO 8601 format
172d91f Test apps improvements + build break fixes with logging off (#1638)
7658591 Added missing override, removed redundant virtual

Documentation

6012fdf Added SRTO_MININPUTBW to the docs
954968a Fixed bad path to 'Contributing' md (which was moved).
4b7616a Updated outdated API info
05a803c Removed a note regarding IPv6 usage
6ff3225 Fixed formatting of API.md
6f953e3 Fixed wrong description concerning passphrase (#1701)
c065d88 Reworked API functions document
8254d43 Fixing the android build script (#1654)
8114620 Fixed Windows build instructions (SRT ver).
f6438db Markdown documentation linting (#1653)
49dd2ec Improved readme formatting (#1645)
e567939 Formatting of APISocketOptions.md (#1637)
cd4f140 Added LGTM badges
7848fcd Added lacking description for grpdata field in SRT_MSGCTRL (#1623)
f821125 Improved latency description in APISocketOptions (#1607)
f646ef8 Fix: changed INVALID_SOCKET to SRT_INVALID_SOCK (#1586)
257e022 Readme: Fixed cookbook link (#1596)
73ee1e1 Fixed URI option in srt-live-transmit.md (#1578)

v1.4.2

25 Sep 12:20
50b7af0
Compare
Choose a tag to compare

Release Notes

API/ABI Changes

  • SRT_MSGCTRL.srctime now expects SRT internal clock timestamp (as returned from srt_time_now()). In previous versions a wallclock time in microseconds since the UNIX epoch was expected.
  • Several fields were added to the CBytePerfMon structure (statistics).

New Features and Enhancements

  • FR #1103: 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.
  • PR #1367: 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.
  • PR #1362: Added an improved retransmission algorithm which reduces the retransmission overhead on a link. Set option SRTO_RETRANSMITALGO=1.
  • PR #1203: 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.
  • PR #1291: 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.
  • PR #1194: Added new rejection reason: on timeout. See SRT_REJ_TIMEOUT in API-functions.md.
  • PR #1283: Extended SRT statistics with pktSentUniqueTotal, pktRecvUniqueTotal. Statistics documentation now has a summary table for better navigation.
  • PR #1024: Added srt_getversion() API function.
  • PR #1510: Moved socket options documentation to a separate file APISocketOptions.md. It now has a summary table for better navigation.
  • PR #1536: Socket options SRTO_INPUTBW and SRTO_OHEADBW are now readable.
  • PR #1440: 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

  • PR #1500: Fixed bug: finding the listener's muxer only by port number was wrong.
  • PR #1480: Fixed wrong reject reason on async connect.
  • PR #1359: Fixed CSndLossList::insert with negative offset.
  • PR #1381: Fixed default binding for IPv6-target rendezvous.
  • PR #1417: Fixed HS TSBPD flags check.
  • PR #1431: Improved CRcvLossList protection from concurrent access.
  • PR #1388: Fixed error reporting on connect/accept.
  • PR #1355: Correctly handle IPv4 connections on IPv6 listener.
  • PR #1348: Fixed Moving Average for receiver and sender buffers. Also PR #1289.
  • PR #1335: Protecting RCV buffer access.
  • PR #1333: Fixed local storage depleted issue #486.
  • PR #1332: Fixed restrictions on pre-bind only options.
  • PR #1136: Avoid reporting packets rebuilt by FEC as lost.
  • PR #1148: Improved inserting a serial element into sender's loss list.
  • PR #1079: Fixed handling of stale loss report.
  • PR #1078: Fixed closing the crypto control.
  • PR #1067: Added CSync class as a high-level CV wrapper.
  • PR #1077: Renamed legacy UDT_EPOLL_* symbols.
  • PR #1045: Eliminated ref_t. Some more convention fixes.
  • PR #1010: 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), SRTO_TSBPDDELAY (use SRTO_LATENCY).

See PR #1364 for details.

Changelog

Click to expand/collapse

Core Functionality

c4e2106 Fixed ambiguous this_thread (#1572)
39916e0 Marked bonding experimental (#1563)
47216f3 Set default stability timeout to 80ms (#1565)
a263f89 Changed the IPE error message. epoll_remove nonexisting socket is not an IPE, as this function is used in API
77fe606 Removed SRTO_ESTINPUTBW (#1561)
6e7520b Changed priority rule to higher preferred. Set uint16_t as weight type. (#1550)
4100835 Fixed filling group data, now done by a common procedure (#1553)
eeddc4c Added UPDATE event raised when a member connection broken (#1509)
c576662 Not adding socket to group when address buffer is not set (#1544)
e756477 Added connection callback, called when the async connection succeeds or fails (#1487)
ac0cfdb Added SRTO_ESTINPUTBW option to get estimated input bitrate
bb29302 Made SRTO_INPUTBW and SRTO_OHEADBW readable
9953e9f Backup link selection to crop-active improved to find oldest active (#1473)
a95a6a4 Restored THREAD_PAUSED/THREAD_RESUMED macros for application specific thread watchdog. (#1534)
889085e Added retrieving weight setting in group data (#1529)
af33637 prevent socket fd leaks to child processes (#1465)
5469cd3 Fixed bug: if all group connection failed, E epoll event should be set on the group (#1527).
633da74 Fixed some problems in group code found during review (#1505)
6383693 Added length type wrapper in sockaddr_any for convenience. (#1492)
333d34f Fixed bug: finding listener's muxer by port is wrong (#1500)
6309f3e Moved socket group code to separate files (#1483)
de938bd Created fine-grained logging FA definitions (#1496)
3ad4518 A workaround for pthread_cancel on Android
29a8195 Fixed bug: write back actual sending time if no source time supplied (#1497)
87df928 Fixed bug: listener callback was changing SRTO_GROUPCONNECT option. (#1491)
98e86d1 High level logger FA definitions (#1440)
b631276 Fixed bug: merged update/add_usock. usock didn't regard the groups. (#1485)
cbe2503 Improved broken member link detection (#1474)
ea78da7 Fixed bug: check for IPv4 ONLY if BindToDevice is requested (#1482)
4aa6fbb Fixed wrong reject reason on async connect (#1480)
45c727d Fixed error handling in group connect (#1456)
94fb6df Added SRTO_BINDTODEVICE option (#1203).
907d1cc Removed remaining calls to SockaddrToString
c8eded9 Using sockaddr_any::str() instead of SockaddrToString(sockaddr_any&)
22dbf01 Set the remote address in the group member data for an accepted member socket (#1467)
c528488 Completed the list of per-member socket options (#1470)
7790171 Fix CSndLossList::insert with negative offset (#1359)
7e4554f Fixed fallback for memory allocation errors (#1459)
19f8b80 Minor changes to C++11 and posix sync (#1379)
06d3c75 Split-off POSIX sync version into a separate file (#1455)
931aae0 Fix the activation and stability check criteria (#1449)
c88ff88 Added proper error handling around sync resources (#1393)
cebb67e Pre-initialization of ISN for the group before connecting any socket (#1438)
f204c2c Update group member status basing on packet type (#1448)
4dcfa5d Added Drift Tracer socket option
e4ec8dc Reordered socket/eid removal on unsubscription (#1390)
b0c1520 Renamed SRTO_RETRANSMISSSION_ALGORITHM (#1439)
2f29eaa Fixed removing sockets from group members' rolled list after parallelly closed. (#1436)
72ba33e Fixed data usage in a logging instruction that contradicts the condition (#1426)
5ac3c0c Fixed default binding for IPv6-target rendezvous. (#1381)
088962b Fixed HS tbbpd flags check (#1417)
152cff9 Improved CRcvLossList protection from concurrent access (#1431)
3c334a0 Fixed error reporting on connect/accept. (#1388)
d2f0e8a Fixed wrong filling group data (#1412)
7ae4ba7 Replaced CGuard with corresponding lock (#1418):
b229e8a Fixed missing break after case
d2d8f34 Added smarter retransmission algorithm
589663f Default init duration. The default constructor does not set the value to 0.
19e5a22 Fixed duplicated variable name. Local variable len hides a parameter of the same name.
502bf3c Fixed static check warning. Result may overflow before it is converted to 64-bit integer.
89902fb Added null-check for buffer extraction procedure (#1391)
ee870de Fixed incorrect error check in fillGroupData (#1410).
18ede16 Fixed epoll edge triggered update event (#1407).
9654eb6 Fixed some typos in comments...

Read more

v1.4.1

09 Dec 09:43
Compare
Choose a tag to compare

Release Notes

This is the maintenance and bugfix release that addresses certain issues introduced in v1.4.0 as well as some long existed issues.

Improvements

PR #961: Improved periodic NAK report timing
PR #942: Use monotonic clock in CTimer::sleepto()
PR #941: Initial reorder tolerance set to maximum value (SRTO_LOSSMAXTTL)
PR #941: Added pktReorderTolerance to stats
PR #936: Use busy wait only to refine below 1 ms
PR #931: Added SRTO_LOSSMAXTTL to srt_getopt()
PR #802: Update SND loss list on lite ACK

Fixes

PR #980: Fixed catching exception from CUDTUnited::connect_complete()
PR #965: Fixed missing vertical FEC/CTL packet
PR #938: Fixed bandwidth measurement on non-monotonic or retransmitted packets
PR #931: Fixed srt_getopt(...): optlen is not set in some cases.
PR #919: Fixed EPoll update_usock
PR #913: Fixed checkTimers interval (100ms -> 10 ms)
PR #896: Fixed SRT Stats backward compatibility (CBytePerfMon fields order)
PR #892: Fixed FEC crash when a large number of dropped packets occur
PR #891: Fixed FEC crash (access item out of range)
PR #888: Fixed FileCC crash. Prevented 0 pktsInFlight to be used in the calculation for loss percentage

Changelog

Click to expand/collapse

Core Functionality

31ffa4f Minor refactor of CSndLossList::insert()
f9ac379 Renamed CSndLossList::getLostSeq() to popLostSeq()
c1a1719 Removed connect_complete. (#980)
5683c0a Fixed: moved horizontal check before vertical to avoid skipping. Some log improvements
5aaff2a Refactored checkNAKTimer
53e179b Improved periodic NAK report timing
400994e Separated CC log area
db9dc76 Fixed BW measurement. handle non-monotonic or retransmitted packets. (#938)
8614c44 Minor CTimer::sleepto improvement. Replaced two if statements with a single one.
04dde1e Added lacking IF_HEAVY_LOGGING for logging off. Removed duplicated def
96103f7 Fixed repeated use of countBytes
be1b304 Added initialization to a debug-tracing variable
acdfe8e Use monotonic clock in CTimer::sleepto()
544f76c Added pktReorderTolerance to stats
65d8e10 Deleted CPerfMon struct typedef from srt.h
a3d94af Deleted perfmon function: deprecated and unused. Missed in PR #815.
4070ff3 Init reorder tolerance with maximum value. See #901.
2b34c21 Minor renaming to m_ullSchedTime_tk from m_ullSchedTime. And names of some other variables as well.
372b078 Use busy wait only to refine below 1 ms.
aaef22a Added more logging around delivery (#320)
81f9299 Added SRTO_LOSSMAXTTL to srt_getopt()
5f79089 Fixed srt_getopt(...): set optlen.
0f8e93e Fixed buggy update_usock (#919)
ad149df Added C++11 version of the against-value-to-function-cast error. Fixed some problems reported by gcc 8
aaff9d3 prevent compile if stack unwinding when exception handling is off in MSVC
f2ffe0e Fixed epoll local variables names. Local variables 'readfds' and 'writefds' shadows outer argument
3737230 CEPollDesc::m_iID is now initialized in the constructor
52b18e2 Fixed passing a constant set by reference
3a5ead0 Fixed checkTimers interval (100ms -> 10 ms)
3d5ffe2 Fix FEC crash for access container out of range
cc36fdb Applied clang-format on srtcore/core.cpp
c873733 Applied clang-format on srtcore/queue.cpp
e5d65a5 Renamed CUDTSocket::m_TimeStamp to m_ClosureTimeStamp
501e9b7 Renamed timestamp to timestamp_us in CRcvBuffer::getTsbPdTimeBase(uint32_t timestamp_us)
8e025fc Refactored CRcvBuffer::isRcvDataReady(...)
d7da7f5 Refactored CSndQueue::worker(...) Deleted unused m_ExitCond from CSndQueue and CRcvQueue
d389ff6 move filter fields to end of CBytePerfMon to make CBytePerfMon backward compatible
82158b9 Update sender's loss list on lite ACK
7870c8a Split m_AckLock into two: m_RecvAckLock and m_RcvBufferLock
94eb4be Small refactoring of processCtrlAck() mainly to avoid confusion between ack_seqno and ackdata_seqno
3151fcc Added processCtrlAck() function
0a22eb9 Renamed CUDT::unlose(from, to) to CUDT::dropFromLossLists(from, to)
c774cbe Catch an exception by reference
737d47e Minor refactoring of CRcvBuffer::getRcvDataSize()
ef8ba13 Prevented 0 pktsInFlight to be used in calculation for loss percentage (#888)
c39b88a Fixed in FEC crash when a large number of dropped packets occur causi… (#892)
fe2858d Reducing complexity of updateConnStatus (CRendezvousQueue::updateConnStatus)

Unit Tests

65417d2 Check init reorder tolerance is set to max
cd04144 Added a test case for SRTO_LOSSMAXTTL. Checks #735.
7522131 Renamed testing application to test-srt
5cb219d Renamed strict enc tests to enforced enc

Sample Applications

da97190 Cope with systems without IP_ADD_SOURCE_MEMBERSHIP
3c16200 Removed parameter for ConfigurePre()
ffb8039 Fix broken TcpMedium of srt-tunnel in windows & prevent SIG_PIPE
4f72a51 Example live receiver (#496)
1df240e Improve examples (#890)
acb03c0 Merged collapsible "if" statements

Build scripts (CMake, etc.)

9e52606 Fix build on GNU/Hurd
b6f9618 add GNU system build matching
63d4f76 Bump version to 1.4.1
3838fbf Fixed C deprecated enum support. Added C++03 support for examples (#997)
596c7fc Fixed: old cmake wrong syntax for MATCH
53cbe73 Revert "Fixed deprecated option declarations to work in C mode"
9302dad Fixed deprecated option declarations to work in C mode
46837e0 Fix TravisCI OSX build
fd9b8ee Removed version.h direct include
9258efc Fixed env in travis
32d9fa9 Travis now has -DENABLE_LOGGING=OFF to the test cases
291bdf2 Set metadata in SRT DLL on Windows (#639)
75bd518 pthread library search for home-made ones
cf5a6b3 show USE_ENCLIB in cmake-gui. Add find mbedtls script.
0e36bf2 Add 32-bit Windows and consume Pthreads from NuGet (#614)

Documentation

943b9f7 remove duplicate description for SRTO_KMPREANNOUNCE
b905e95 Created issue templates (#949)
94e1ac6 Updated options recommendation info (#860)
325dc3f Added description for build options. (#886)
2bcc08b Add short description of access control.
b9a4d1f fix style, format and grammar/spell of build instruction for windows.
eb579df improve build instruction for Windows.
6bc7e6e Added description of SRT perf statistics (#897)
84b56ca Provide smoke test example

v1.4.0

13 Sep 19:18
Compare
Choose a tag to compare

Release Notes

New Features and Enhancements

PR #872: Updates to epoll API. Added edge-triggered epoll wait.
PR #870: srt-live-transmit default chunk size set to 1456
PR #856: Added forward error correction (FEC) packet filter
PR #854: Added Packet filter API
PR #807: File congestion control improvements

Fixed Issues

PR #875: Free addrinfo if bind fails (potential memory leak)
PR #843: Fixed SRTO_LOSSMAXTTL option on accepted socket
PR #833: Fixed blocking srt_connect call (state update)
PR #811: Fixed potential sender's sockets list overflow
PR #733: Use MONOTONIC clock in Garbage Collector thread

Changelog

Click to expand/collapse

Core functionality

140ebc5 Deleted deprecated API func srt_perfmon()
6ef6c22 Catch exceptions by lvalue reference
ae46ce2 Fixed sender list to reallocate on insert if required
c0630e8 CSndUList initial size is reduced to 512 elements
db01a08 Fixed blocking srt_connect_call. Set m_bConnecting to false on connection error.
347c433 Added assertions and error checks to CRcvBuffer
842b584 const CRcvBuffer::m_iSize
2229fc5 Fixed a typo in comments
2dcbacb Use MONOTONIC clock to set Garbage Collector pthread_cond_timedwait. (#733)
bd36417 Fixed SRTO_LOSSMAXTTL setting on accepted socket. Fixes #735.
f426e9d Removed unused CUDT variable CUDT::m_bTwoWayData
6f2c941 Fixed CRcvBuffer::countBytes() usage
980492d Slightly refactored DriftTracer
080b158 Minor fix of CRcvBuffer::readMsg If len is negative, set rs to 0.
bc52749 FileCC improvements
693e3dc srt_c_api: remove duplicate code in srt_epoll_* (#824)
42230db Fix linger socket option with SRT recommended OFF default (#851)
dfba340 Fixed uninitialized variable usage.
9b01aac {FEC} Random refactoring and small bugfixes during FEC works. (#852)
f94a4c1 {FEC} Packet filter framework and API (#854)
c5787c3 Fixed: ManagedPtr= removes any owned object first
7bdde66 {FEC} Added FEC filter (#856)
d96f15e {FEC} Application support (#857)
e59a8bd Internal changes in the epoll mechanism
808a1fe New epoll API functions (#872)
57b75b3 Free addrinfo if bind fails.
2891e1b CRendezvousQueue::updateConnStatus() may update mismatched connections
a82e0c3 Renamed SRTO_STRICTENC to ...ENFORCEDENCRYPTION. Fixed documentation (#791)
e0fbec5 Minor ACK variables clean up
24f3d6d Fixed unused vars in CChannel

Unit tests

ee19c99 Added BlockingConnectionTimeoutLoop test
92dc53c Find a free UDP port for connection tests
cddf894 Added CRcvBuffer tests
bcdb9f5 Added FEC unittests (#858)
35dc31a Added unit tests for updated epoll API
d90aef0 Unittest for cryspr methods (#864)
d7cbf97 strict encyption: debug trace torned off

Sample applications

d0a442c live-transmit default chunk size set to 1456
62ac8f1 Fixed warnings (no override, unused var, ...)

Build scripts (CMake, etc.)

ef9101c First try to find_package pthreads on Win
ab2b12d Fixed a typo in CMakeLists.txt
fdee213 Fixed -std=c++11 flag usage with HAVE_COMPILER_GNU_COMPAT
55f0572 Fix build Linux GLIBC-2.8 and earlier. (#841)
8721e68 Added gitignore
76447cd Added code coverage build option to CMake

Documentation

a8540da A note about default 120 ms latency
17890bb Add badge linking to the Debian Testing package (#863)
b5da1ef {FEC} Updated existing documents (#855)
6bd35d9 {FEC} Documentation (#859)
908e42f Fixed correct description for msgttl (#847)
7780333 {EPOLL} Updated documentation after adding new API (#873)
9614cab Fixed typo of srt_getsndbuffer in API function docs md
b060784 Updated doc with proper description (#845)

v1.3.4

20 Aug 16:04
196df3d
Compare
Choose a tag to compare

Release Notes

New Features and Enhancements

PR #720: Reason for rejected connection
PR #678: Improved sending pace accuracy
PR #796: Added a no-op for Windows in BUSY_WAITING mode

Fixed Issues

PR #808: Fixed UDP socket closure, while it is still used by another thread
PR #790: Fixed buffers average size calculation

Changelog

Click to expand/collapse

Core functionality

522d1ca Fixed invalid IN6_ADDR when setting TTL/HOPS or TOS/TCLASS
9245f81 Fix FreeBSD builds
64a197d Improving sending queue sleepto accuracy. (#678)
553b24a close Channel after stopping recv send queues (#808)
887bb6b Implemented and exposed rejection reason (#720)
04f7cce Unified strftime usage win/linux
e7d9e99 Fixed a few warnings
cf86388 remove pre-CRYSPR crypto lib wrappers
a77ec22 Only include intrin.h if not on MinGW
353c2bf Fix Windows no-op under MinGW
076bd60 Added a no-op for Windows in BUSY_WAITING mode
c929c61 Fixed buffers avg size calculation
9b7fade cryspr-gnutls: add "#include <gnutls/gnutls.h>"
03c73a1 crypspr.c: add "#include <stdlib.h>"
c79fb44 Fix issue#778: removed unnecessary openssl include in a crypto lib independent file.

Sample applications

79b898f Fix system priviledged port range, excluding port 1024 that is not reserved. (#812)
28b19dd examples: update test-c-* usage
b136458 Fixed correct symbols. Fixed also other occurrences where almost C++11 is suported
19d18f0 Updated support for gcc 4.7 in C++11 mode
c46cf08 Added full C++11 check and allowed gcc 4.7 as partial

Build scripts (CMake, etc.)

196df3d Bump version to 1.3.4
7ec45dd CMakeLists.txt: Allow building using gnustl
1d7196e travis: bump up osx_image version to 10.2
facd70c Travis MinGW: updated OpenSSL to 1.1.1

Documentation

caf9810 SRT Alliance Slack channel invitation link
408e6ec CMake install description (#828)
b564763 SRT Access Control Guidelines. Aded a Hostname key (#819)
b564763 SRT Access Control Guidelines. Aded a Hostname key (#819)