Skip to content

Releases: Haivision/srt

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)

v1.3.3

26 Jul 19:51
5781e76
Compare
Choose a tag to compare

Release Notes

New Features and Enhancements

PR #760: Default max bandwidth limitation increased to 1 Gbps
PR #750: Added listener notification callback.
PR #748: Added support for mbedTLS encryption library.
PR #742: Added CRYpto Service PRovider for SRT.
PR #719: Added option to configure connection response timeout (SRTO_RSPTIMEO).
PR #711: Added USE_BUSY_WAITING build option
PR #648: Renamed Smoother to Congestion Control
PR #608: Added SRTO_IPV6ONLY option.

Fixed Issues

PR #763: Fixed input rate calculation for automatic bandwidth limit mode.
PR #745: Fixed SRT timers update on connection established.
PR #741: Fixed LATEREXMIT: use LastACK timer instead of connection expiration timer.
PR #690: Fixed packet retransmission in case of acknowledged packets in the loss list.
PR #644: Fixed StreamID and Smoother name swapping for big endian machines.
PR #623: Notify epoll the data is available to be read (reading thread speed up)
PR #618: Fixed periodic NAK report mode detection.
PR #613: Fixed a timestamp of ACKACK control packet, that was leading to occasional disconnections.
PR #471: Fix a problem when a connection is rejected when the last handshake was missed

Changelog

Click to expand/collapse

Core functionality

5781e76 Bump version to 1.3.3
80ea6ed Fixed HS response timestamp
a10b721 MAXBW infinite value updated to 1 Gbps. Previous value was 30 Mbps.
c852e18 Deprecated SRTO_TSBPDDELAY
10386ce Improved input rate calculation. SRTO_MAXBW=0; SRTO_INPUTBW=0;
759ae8d checkRexmitTimer refactoring
549024e checkRexmitTimer changes in logic
5609361 checkTimers split into several functions
8081c4e New feature: Listener notification callback (#750)
c99bec5 Introduced USE_BUSY_WAITING
d967441 MSC C++11 attributes support. noexcept, constexpr, override, final
9e34fe5 Minor code cleanup in processData() (#749)
cf2aeae Added mbedtls encryption library choice for haicrypt (#748)
96819d0 CRYSPR/4SRT: CRYpto Service PRovider for SRT (#742)
1fe378c Remove all references to CSndBuffer.m_iAvgPayloadSz that is not used anywhere.
08dd7be Fix possible FPE (Zero Divide)
2ecd6b1 Update timers on connection established.
5dde88a Synchronize pthread_join on TspPd
36d0714 Fixed after renaming logging to srt_logging
204352b Fix a problem when a connection is rejected when the last handshake was missed (#471)
439f653 FileCC minor code improvements
bd62214 Add option for configuring connection response timeout (#719)
6f6b76b Replaced Smoother name in the whole sources (#648)
ed67060 Introduced ENABLE_ENCRYPTION flag, ON by default. (#670)
ee311d6 Set IPv4 TOS and TTL when setting IPv6 TCLASS and HOPS
25d1dce Fixed packet retransmission. Do not break sending if a packet in the loss list was acknowledged.
9cbe541 Heavy log: fixed elapsed time calculation.
1079d13 Silencing the queues before closing the UDP socket (#662)
7c19251 Fixed StreamID and Smoother name swapping for big endian machines (#644)
d1ad82c Add SRTO_IPV6ONLY option (#608)
a892ad6 Not locking m_stats.startTime
2bdebef Fixed crash found with non-blocking linger in srt-live-transmit (#627)
686f72d Move ASSERT to guard possibly null pointer access
fc78683 Fixed compilation errors when SRT is configured with --disable-logging option (#616) (#632)
7a60510 Removed locking m_RecvLock from bstats
6ac5f0e Fixed sndDuration time source
6eaa7cb renamed internal stats variables
9b51ce1 Added core statistics access mutex
137adc5 Notify epoll the data is available to be read.
cac926f Added NAKREPORT SRTHS flag as per m_bRcvNakreport field (#618)
98404d5 Fixed a timestamp of ACKACK control packet. Issue #606
6e84a19 Fixes #601, if it didn't have a connection, it would never sleep. Causing 100% cpu.
fe6edbf fix empty condition in CEPoll::wait
3982719 Formatting srt.h. Extern keyword deleted (default).
04ade2e CUnitQueue access via functions.
2884047 Fixed wrong usage of seqcmp

Unit tests

8081c4e Listener notification callback unit test
3154fc3 Added SleeptoAccuracy (disabled)
7a85138 Improved epoll connection break test
c3e8d7f Fixed strict encryption check for accept in non-blocking mode
959ae55 Added test case for PR #605
7f9d5e6 Some basic CEPoll tests
bcd9b97 Added tests for CSeqNo
0c7d994 Added epoll NotifyConnectionBreak test

Sample applications

88a4c73 Added tsbpd URI query option
b269468 Refactor stats config to allow applications to write custom stats (#756)
92af4e1 UriParser improvements (#743)
4572752 Fixed timeout mode cancel when target connected
832b52d Added linger URI socket option
35ef083 Changed srt-multiplex to a testing application (#718)
31d6021 GetSysSocket() was not properly overridden due to differing function prototypes
2e6037e Fixed bug: colon and next arg both eat ARG_ONE argument
11feba2 Fixing build warnings
d199277 Fixed unused variable
c86c0c6 Fixing ProcessOptions
39ea526 Created TCP/SRT tunnel (#504)
f5f52c0 Fixed srt-file-transit (issue #645) (#658)
3ff0865 UriParser const identifiers added
9e48f03 Added CSV stats logging and file output (#598)
1e5fc1e Fixed stats clearing condition
c732d8d Fixed epoll connection issue. After PR #597.
a872e49 C examples update (#276)
08e7a36 srt-live-transmit: add option to cancel timeout (#570)
a0391c3 Receive the connection event on the client (caller) socket (#597)
deac356 Removed repeating new lines in verbose. Verb() prints new line itself.
1a97a3d Handle invalid options values properly.
c27d821 Minor fixes of the sample applications.

Build scripts (CMake, etc.)

27b1301 Fix strict enc build warnings
c05ca7d Fixed CMAKE_BUILD_TYPE=Debug processing
c4d94fc Fix static linking error for apps
6961a38 Deleted duplicating filelist.maf
faf9a10 Fix OSX Builds SDK pre 10.8. (#607)
f865119 Fix BSD Builds. Builds and the SRT library on FreeBSD-11, TrueOS-12, … (#588)
46d4887 Android build scripts for NDK r19
6398508 Removed stransmit symlink

Documentation

9773b1c Updated status badges in README
cdeb471 Add link to SRT Protocol Technical Overview (#736)
9432b48 Added description of 4 lacking options (#722)
ac21d5e Remove legacy references to stransmit (#725)
3d159f0 Added and updated handshake description (#351)
f78d598 Documentation Corrections (#635)
009ce24 Update stransmit.md
ba6fd19 Update README.md
f97cdc7 Added documentation for srt-multiplex
a2d900e Formatting fixes for API.md

v1.3.2

21 Feb 09:44
89cb478
Compare
Choose a tag to compare

Changelog

Core functionality

a306d36 Fixing noncompliant longlong (#400)
96d126a Added new option: SRTO_SNDDROPDELAY (#375)
9de61aa Fix IP options (TTL and ToS) on IPv6 sockets (#423)
1a975a4 api: Don't use inet_ntop
2f894b4 Refactored displaying of handshake HS flags. Added more logs (#367)
8faf6fe Fix potential crash in CCache::update (#434)
ba0a090 Fix bad usage of std::copy (#434)
e416a74 Removed unlicensed and unnecessary stdint.h. Fixed some warnings
71e10a7 do not treat WSAECONNRESET as a fatal error (#468)
c4c53b6 do not treat ECONNREFUSED as a fatal error (#468)
8f9ec9c Made WinSock non-blocking #383
fc0adbd Update logging.h for flushing log stream (#493)
78e063d Applied changes for strict encryption (#495)
bcbbe0f Introduced a platform-dependent IOVector class
2f96c39 Send UMSG_SHUTDOWN when caller closes the connection after reject on HS conclusion.
7621df9 Fixed memory issues.
de77c1d Fixes high CPU load on Windows with non-blocking sockets (after PR #483).
b538090 Don't search for uninitialized muxer ID on removeSocket The fatal error was showing if a socket was created, but nothing was done with it due to trying to find the unitialized muxer.
b71ea00 Don't use CTimer in CUDTUnited's constructor. s_UDTUnited is a static instance of * CUDTUnited with dynamic initialization (calling this constructor), while CTimer has a static * member s_ullCPUFrequency with dynamic initialization. The order of initialization is not * guaranteed.
6404396 Fixed TTL status handling by getStatus() funcion
c431177 Replaced ENABLE_LOGGING with ENABLE_HEAVY_LOGGING
5949796 Deleted unimplemented dCRcvBuffer::isReadyToPlay(...)
b884b13 Performance stats fixes (#575)
446fc1d Putting global objects with short names under a namespace (#576)
89cb478 Bump version to 1.3.2.

Unit tests

ff9e916 Added Unit tests, including ConnectionTimeout test from issue #468
56233ac ConnectionTimeout test improved. Avoid hang up on srt_epoll_wait().
4f7f2be Added unit tests for strict encryption
e116ec8 Strict encryption tests for blocking mode (#532)
785e2ca Added +/-30 ms confidence interval for connection timeout check
79e6153 ConnectionTimeout test. Epoll wait confidence interval increased to +/-50 ms
7da43a9 GCC unused warning suppressed

Sample applications

a9de399 Flushing the output in case of buffered stream and no EOL requested
f2e4c7e Set binary mode for stdin and stdout on Windows
08ef829 Ported srt-file-transmit on Windows
1c4ed3e Ported srt-test-file on Windows
48f2ef2 test app: transtype socket option should be set first
fa25247 Fixed memory leak in stransmit
53b87df Fixed catching polymorphic type by value

Build scripts (CMake, etc.)

1d4ed1a Fixed a 64-bit installation problem for library path (#421)
96c97d6 Make MAF files dependencies of CMakeLists (#387)
8d1ed9a win32: Only include inttypes.h with MSVC
aaa7631 cmake: Only install Windows headers in win subdir
72dd424 Build fixes for Windows / MingW
9711665 cmake: Try winpthread before pthreadGC2 (#429)
b80940e cmake: Prefer -lpthread for now because clang++ and VLC
cc8cd55 cmake: Don't confuse libs and requires (#433)
ce24643 Enable support for BoringSSL. (#448)
8891c53 Fix MingW build
03a3dfa Add MingW build to TravisCI
df15f35 Remove unnecessary custom win/inttypes.h
1736459 CMakeLists: more MinGW fixes
2a12191 Change every #ifdef WIN32 to check for _WIN32
ff9e4ad Rework OpenSSL find routine to use pkg-config method by default
61e0151 Fix SRT Private libraries allow for the applications to be linked against the correct C++ runtime library used by the toolchain.
69279a6 Fix redefinition of inet_pton with mingw-w64
8c60631 Support for CMake Object Library in XCode build.
4c3dccb Disable unit tests by default (Issue #489)
838eda0 Don't use pkg_check_modules for ios build.
d783f2e Don't use OPENSSL_ROOT_DIR
ee41d82 Fix mingw build.
209ff54 Added option to enable defining relative library path for applications. Fixes #499
e8a86d7 Additional CMakeLists adjustments. Added ENABLE_STATIC or ENABLE_SHARED check. Tabs used instead of spaces. If static linking is used, then rpath is ignored.
3b9cf5f CMakeLists.txt: Respect DESTDIR when creating stransmit symlink
7185a6a cmake: use system googletest if available Calling find_package() Fixes #500
2ef4ef0 Fix install_name in macOS using MACOS_RPATH
170663f Fix build with MinGW v6.0.0

Documentation

93660dd Fixed API Options table format in API.md (#419)
beb42c9 ReadMe.md: Deleted SRT slack channel link (for SRT alliance members only).
09a3b0c Incorrect wording
103be33 Spelling error corrected in README.md
239f8c9 Fixed incorrect declaration of return type
0f88cf2 Fixed wrong name of SRTO_SNDKMSTATE flag. Fixed some weird characters in formatting
795efd2 Added an example of using SRT with GStreamer
4e59464 Added information about maximum payload size (#459)
e46f114 Created a detailed documentation for SRT API functions (#540)

v1.3.1

15 Jun 19:52
Compare
Choose a tag to compare

Changelog

v1.3.1 (15/06/2018)

d6499ca Bump version to 1.3.1
192c5b3 Fixed handling of 'mode' parameter when listener in SrtModel (#415)
e9e0611 Fixed handling of BADSECRET/NOSECRET states in case of periodic HS (#414)
7dac65e Fixed problems in handshake handling (#361)
2b97b6e Fixed SRT handshake serialization (#360)
497cd98 Recorded HS SIDE if just resolved (#394)
901e748 Removed in-process decrypt failure logging. #404)
6999a27 Fixed setting target socket ID when accepted socket responds to the caller (#385)
febe51f Applied fixes for crypto in RX-to-TX cloning (#365)
1fa5736 Fixed internal problems in Rendezvous HSv5 FSM (#362)
f9c9e3c Fixed bug when crafting HS response after received waveahand version 4 (#354)
64184c3 Updated receiver bandwidth print to respect pf:json (#402)
739f91d Fixed typo in API docs. (#403)
38f7bba Fixed definitions of HLOG* macros, they were causing build break on Windows (#398)
2d0e6f7 Added instruction for problem reporting (#397)
acc0ae8 Adding a logging system for haicrypt (#359)
d3f0ae7 Added -pf option with values json and default (#345) (#356)
def12d5 Fixed TARGET_OS_IOS and TARGET_OS_TV usage (#380)
39536c4 Fixed long times constant error (#386)
6f99327 Added support for -v:2 for verbose to stdout (#366)
f4eb18c Added the source paramter to allow for igmpv3 ssm (#374)
5cc31f0 Added --with-extralibs build parameter (#376)
cce679c Timedwait fix (#379)
b851180 Added socket options to tweak KM refresh parameters, fixed uninitialized var (#350)
09212be Added removeConnector to exe path where connection is no longer to be processed. (#349)
1b6aa2b Added a bidirectional transmission testing application. (#348)
d9aa9e7 Fixed API Options table format (#346)
24a625d Do not expose internals unneeded by the external API (#340)
c6b0cdf like CYGWIN, MINGW does the right thing with static library name.
7bf7021 Fixed windows build when only building the static library.
5772dea Useed the correct printf format macros for WIN32/MINGW for size_t.
5d12019 Fixed code violating C++ Standards.

v1.3.0

09 Apr 22:09
5276995
Compare
Choose a tag to compare

Changelog

v1.3.0 (09/04/2018)

2499cfe Fix SRT file transmit app to work in non-blocking mode (#334)
dd57405 Ensure stdout silence in console pipe out mode plus a few minor fixups (#275)
85cd96d Merged dev. Added thread changes in cmake as commented-out, to be checked later.
22d8d32 Replaced hardcoded installdirs with GNUInstallDirs. Fixed some status messages. (#323)
236c23c Breaking connection when recv buffer inflation caused sequence discrepancy (#300)
1a28026 Fixed problems with encryption decision and status report on encryption failure. (#318)
ff98b0d Fixed invalid symbol names in doc (#311)
0344f0d Dev add version to winpackages (#328)
a34e761 Android build for dev (#326)
89f261f Change License to MPLv2.0 (#327)
5dff5d8 Used constants for input rate. Fixed after-start rate sampling period to 1s (#315)
692f331 Made SockaddrToString use only numeric string by default (#312)
ba4da73 Ported change in #307 PR to dev
b47cf11 Fixed SockaddrToString to format as 4dotIP if unknown (#299)
98e86ac Build with debug information for lldb on iOS platform (#302)
dade14d Fix for sudden stop sending data on macOS/iOS (#303)
84d5e5e Fix broken build when testing apps enabled (#296)
0006128 Removed all code introduced for CBR (#293)
1476472 Added API to get instantaneous stats instead of moving averages for a… (#288)
8b9e0cc Added toolchain file and build instruction for iOS (#286)
5e0f2f8 Fix windows build (#290)
7ddab84 Add compiling instructions for android (#278)
a6a5853 Removed haicrypt compiled separately. Improved MafRead to add prefix internally. (#279)
436ee5a Fixed potential problem with non-NUL-termination of error message string. (#285)
fcb5c70 Fixes in configure options (#273)
e404ffc Reshaped source files and applications. Preparations for splitting off tests. (#270)
c432178 Added a fix for pthread finding when crosscompiling
8626b9e Correct usage of legacy defines
43d5450 srt-live-transmit stability fixes and improvements
9e8c640 Stransmit new stats (#264)
cfd08bc apps: improve command line parameters
3314544 app: refactor name transmit_total_stats
e4b567f apps: fix stats clearing in each loop and add option for full counters
7a3617a core: fix reset of other stat values
6219009 core: fix perf->pktRcvRetrans use
35a0976 Changed direct & to walk around user-defined operator
5627c0a Updated lost docs with fixes
fb7ec1e Added more logs
5b648ab stransmit cleanup stats and print sender
b699950 Added some more error logs for errors in reception
dc2a555 Fix interop with SRT 1.1.x peer: removed call to handshakeDone in postConnect preventing HSv4 to proceed. Symptoms: Latency=0 and PeerSrtVersion=0 when connected. Lost packet recovery impossible. (#250)
f374655 Added also const and explicit getter for sockaddr (#248)
b3b14f1 Added lacking which caused errors only on some compilers (#246)
61629ab Added . and ../lib64 to rpath in SRT apps (#244)
2a5bf34 Made common source shared and static libraries. (#240)
127bdd6 Removed compat code for clock_gettime. This function wasn't used in SRT. (#236)
e0013dd Added extra option --enable-heavy-logging. Enabled default only in debug mode. The --enable-logging option does not enable it. All debug logs are under HLOG and won't appear without this enabled. Added extra info for configure. (#234)
1b8a4c2 Fixed broken crosscompiler support (#228)
fc599c7 Fixed ThreadName constructor to restore old thread name in destructor. Added CMake options to map THREADHCHECK macros to application's functions. Synched THREADCHECK and prctl thread names.
de28dbf Added more logs around rejection (#198)
a4bf533 Maintenance: merge master 1.2.2 (#215)
1d020c2 Blocked updateCC after altering MAXBW/OHEADBW/INPUTBW flags. Called only on connected socket.
a173fad Fixed bug in checking stoptime option
5fd1320 Added some comment fixes
f43b018 Fix compile error with gcc version 4.4.1
80eabe7 Changed FA selection imp to std::bitset. (#194)
f91623f Added more logging around listener errors
09f886a Changed stransmit form to symlink on platforms where supported. Otherwise cmake 3.0.2 required.
1136cbf Added -stoptime option. Improved exit predictability.
2ee1d30 Put creation under execption catch. This prevents crash-dump when interrupted.
34cc6f8 Fixed lacking include for getnameinfo
f2cb544 Added build improvements from 'master' branch.
89a8d8c Improved logging API for performance (#182)
9b16757 Restored dep check for all cases. Add path autodetection and prefix suppying in configure.
7638ced Fixes for embedded compiling (#178)
7c8873c Restored old behavior when parties declare encryption differently. (#175)
2f1f813 restored --with-compiler-prefix option
4a28039 Fix typo in srtcore/udt.h
e105138 Refactored the use of ref_t. Also fixes a crash. (#146)
0ce9663 Changed tm init for C++ to avoid warning for skipped initializers (#144)
1217bdf Remove UDTSTATUS enum in favor of pre-processor redefines
eebe82f Minor fixes for backward compatibility with legacy applications
4ff74e1 Create an autogenerated version.h providing SRT_VERSION_VALUE and SRT_VERSION_STRING preprocessor macros so that API users can query the libray version at compile time.
eeabeae Use CMAKE_CURRENT_SOURCE_DIR instead of CMAKE_SOURCE_DIR when referencing files in the CMake Project so that SRT can be built as a subproject using add_subdirectory() in a larger project and not only has a standalone project.
4678446 Fix static builds on linux against static OpenSSL. OpenSSL uses dlopen and friends, but the find_package(OpenSSL) does not pick up on the fact that libdl is required when building both the SRT library statically and linking statically to OpenSSL.
7fd7c0f Fixed passing the chunk size by transmit to SRTO_PAYLOADSIZE option
84a4202 Workaround for a hangup during cleanup (proper fix required) (#128)
13df2de Fixed incorrectly interpreted error from WSARecvFrom on Windows (#124)
a097e67 Fixed not working logging mechanism on Windows (#123)
4b897ba Applied changes in the API to make it universal (#121)
f9ccaa0 Perform brew update in Travis CI to fix #125
ef4fedb Fixed correctly flushing send buffers on closing a socket. (#119)
b3ef89a Removed srt_compat from app sources (#111)
6ba76b1 Refactor: extracting packet's sequence number only (#117)
eae5256 Made locking in drift tracing done inside the function and only if needed. To prevent deadlock when sending in buffer mode. (#114)
9c42b34 A bunch of refactoring before changes in the API (#110)
4a575c2 Changed global variables to static
394f119 Updated options for handling disabled flushing before closing
397ba4d Added REUSEADDR option to not lock the port when reading
c3d0344 Merge branch 'dev-fix-multicast-windows' of github.com:ethouris/srt into dev-fix-multicast-windows
d04eb32 Fixed incorrect family when using INADDR_ANY for multicast
0acc534 Fixed indent
a9b3e85 Fixed lacking include for localtime_s on Windows
53bdbbf Fixed problem with compiling a C file with -std=c++11 flag
291f1c7 Fixed bind problem with multicast on Windows. Added more sensible error reporting for UDP
bd9c778 Replaced std::pair with struct {first; second;} to avoid constructor syntax in initialization
0f8b808 Changed smoother name association imp to a static-initialized array
458f6d5 Changed backward-name copying to use generator expr
534dc70 Forced CMP0026 policy on cmake. To ignore the use of LOCATION.
dddbd28 Some fixes for Windows. Correctly extracted path to executable. Fixed invalid haicrypt dep.
baaaa5a Renamed apps to more appropriate names. Preserving 'stransmit' name for BW compat. Enforced relative rpath on all apps.
bc28ca4 Fixed a bug in file transmission app. Regards that srt_send may send only a fragment of buffer.
31c1b82 Fixed according to code review and compile errors
9748eef Restored old names as deprecated
b676b5e Blocked sf from compiling on Windows. Portability issue of using stat must be fixed.
7d6c883 Blocked setsockopt/ioctl imp on Windows.
4cb5242 Created a Smoother framework for configurable congestion control. Moved all CC-related parts of SRT to LiveSmoother. Restored abandoned UDT parts to be usable with FileSmoother.
9c7c2fe Refactoring changes as a preparation for file transfer support (congestion control)
c91d5f7 The integrated handshake feature (aka HSv5) with some refactoring (#76)

v1.2.3

v1.2.2

20 Nov 21:01
Compare
Choose a tag to compare