Skip to content

v1.4.3

Compare
Choose a tag to compare
@maxsharabayko maxsharabayko released this 27 Apr 09:41
· 653 commits to master since this release
291e010

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 (#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.
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

66f2390 Removed "" _S function. On some platforms _S is defined as a macro.
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.)

a95e5ae Added -Werror to Travis CI Linux and MacOS jobs
6a77c04 Fix cmake warning on FindMbedTLS (#1935)
7809e20 Updated Travis OSX to 11.1
e63edad Fix pc file generation when use mbedtls
2c25412 Fixed CMP0057 build break with unit tests enabled (#1867)
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.
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

672f0cb Fixed virtual call from destructor. Virtual functions should not be invoked from a constructor or destructor of the same class.
07320ab Option utility fix: handle properly single dash as option value
0f4c32e Changed the default log level to Warn (#1934)
c3864aa Fix android build NDK r16b and earlier. (#1923)
60ae6e5 Added CSV and JSON stats
631a976 Fixed wrong handling of no transmission in the test apps (#1881)
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

5dbceb2 Update srt-live-transmit.md (#1967)
43b78eb API-functions: pass optlen in srt_getsockopt (#1941)
97efa1b Fixed restrictionf for SRTO_MSS and SRTO_LOSSMAXTTL (#1954)
f1f2dd4 Reorganized and cleaned up the docs folder (#1911)
8bf8c55 Improved SRTO_FC description
b16b68a Fix SRTO_MINVERSION: readable, default 1.0.0
d545890 Fixed typos in LowLevelInfo (#1914)
b4288ce Removed misleading information about connect callback (#1882)
0e7185e Moved API docs in a separate folder, improved API documentation (#1893)
36fc361 Updated and fixed blocking and error information (#1856)
4b6dba2 Updated the link to the RFC
8209e5a Moved SRTO_MININPUTBW in alphabetic order
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)