Skip to content

Releases: awslabs/amazon-kinesis-video-streams-webrtc-sdk-c

Release 1.10.2 of the Amazon Kinesis Video WebRTC C SDK

09 May 00:24
4f1d3ad
Compare
Choose a tag to compare

What’s new:

  • Added support for H.265 codec. More details on running the SDK with H.265 can be found in the README (#1965)

Sample improvements:

  • Added a sample TWCC callback implementation that demonstrates packet loss based bitrate change in the sample WebRTC GStreamer master pipeline. More details on TWCC can be found in the README (#1957)
  • Introduced WebRTC GStreamer viewer sample that writes media received from the master to the disk (#1963)

Tested H.265 codec support by running C SDK as master with the following viewers:

Additional Notes:

  • H265 support is limited in browsers and on Android/iOS devices. If these environments are used for testing, please first ensure that H265 support is enabled and available for them.

Release 1.10.1 of the Amazon Kinesis Video WebRTC C SDK

20 Mar 23:58
f107343
Compare
Choose a tag to compare

Bug fixes / Improvements:

  • Fixed a bug that could sometimes cause relay candidates to be not added to the list of local candidates if getIceServerConfig call takes time to resolve, causing connection establishment failure if TURN is the only viable path.

Release 1.10.0 of the Amazon Kinesis Video WebRTC C SDK

12 Mar 18:44
1eaede8
Compare
Choose a tag to compare

What’s new:

  • addConfigToServerList API required to gather TURN candidates. Check samples for usage. The usage pattern showcases with ENABLE_KVS_THREADPOOL enabled and disabled
  • Improved time-to-first-frame latency with new CMAKE flag ENABLE_KVS_THREADPOOL. This flag is Enabled by default. KVS_USE_SIGNALING_CHANNEL_THREADPOOL has been deprecated now. (#1806)
  • Added feature to send master time-to-first-frame for JS viewer timeline visualization; enable with enableSendingMetricsToViewerViaDc (#1846)
  • Optimized time taken to gather TURN servers using GetIceServerConfig by supporting an async call pattern. In case of srflx based peer connection, this is a latency improvement since the SDK does not unnecessarily wait on getting TURN server URLs during signaling setup. ENABLE_KVS_THREADPOOL required (#1854). Sample change required to gather relay candidates
  • Changed default build type from Debug to Release; use -CMAKE_BUILD_TYPE=Debug for debug mode. (#1897)

Sample bug fixes:

  • Sending key frames before other frames in Samples. Frames are now sent only after SRTP is READY (#1833)
  • Added checks for empty/null session token (#1874)

Bug fixes / Improvements:

  • Fixed trickle ICE to be a session level and media level attribute instead of it being only a media level attribute (#1813)
  • Optimized time taken for STUN DNS resolution to have STUN server address ready for srflx candidate gathering - ENABLE_KVS_THREADPOOL required (#1812)
  • Improved DTLS handshake time by moving to a state transition based approach to be more responsive to the incoming DTLS handshake messages - ENABLE_KVS_THREADPOOL required (#1824)
  • Optimized ICE and TURN state machine state transitions. They allow early state transitions if possible, instead of waiting for next timer iteration (#1825)
  • Fixed stringop-overflow build issue with MBedTLS on GCC11 (#1823)
  • Increasing timeout values on TURN allocation, create permission, and bind channel steps. This change is expected to improve connection establishment success rates in slower networks (#1896)
  • Fixed signaling cache file creation failure issue on Windows (#1935)
  • Added filtering-out of non-operation network interfaces in Windows (#1937)

Version bumps:

  • Updated LWS version from 4.2.2 to 4.3.3 (#1820)
  • Updated producer C version from 1.5.1 to 1.5.2 (v1.5.2)

Known issues:

  • MBedTLS build fails on Mac M1 with current version

Release 1.9.1 of the Amazon Kinesis Video WebRTC C SDK

08 Dec 22:36
bfa6667
Compare
Choose a tag to compare

Bug fixes

  • Fixes build error in release v1.9.0 when IOT_CORE_CREDENTIALS is enabled for samples. (Issue #1879)

Release 1.9.0 of the Amazon Kinesis Video WebRTC C SDK

07 Nov 21:35
0ae9ec6
Compare
Choose a tag to compare

What’s new:

  • New support for WebRTC Ingestion [https://docs.aws.amazon.com/kinesisvideostreams-webrtc-dg/latest/devguide/webrtc-ingestion.html]

Sample:

  • The Master samples have been updated to support WebRTC Ingestion

Bug fixes / Improvements:

  • Fixed a bug in signaling cache
  • Fix build on MacOS to no longer require setting of CPATH/LDFLAGS env vars when building with Clang
  • Bug fixes around properly isolating use of usrsctp library only when data channel is enabled

Release 1.8.1 of the Amazon Kinesis Video WebRTC C SDK

05 Sep 18:40
15e6019
Compare
Choose a tag to compare

Bug fixes:

  • Fixed timestamp precision in log lines to appropriately represent 3-digit places in millisecond portion

Release 1.8.0 of the Amazon Kinesis Video WebRTC C SDK

25 Aug 21:37
e9f3cab
Compare
Choose a tag to compare

What’s new:

  • New latency measurement metrics available to read the time taken by different steps in the WebRTC peer set up process - PeerConnectionMetrics and KvsIceAgentMetrics
  • Provision to use threadpool for thread management in signaling client to handle signaling messages. Control the size of the threadpool using SignalingClientInfo structure and enable usage by defining KVS_USE_SIGNALING_CHANNEL_THREADPOOL . Instructions are added to the README.md
  • Provision to profile code section using PROFILE_* macros
  • Added support for China (Beijing) region

Sample:

  • Fixed potential memory leak in sample tear down
  • Recreate signaling client if signaling client creation fails
  • Changed GOP size of sample video from 10s to 2s
  • Added RTSP source to gstreamer sample app
  • Multiple bug fixes in samples

Bug fixes / Improvements:

  • Fixed SDK build issues with libwebsockets on Windows
  • Fixed poll() call failure on Windows
  • Overwrite final entry in signaling cache if cache file reaches maximum entries
  • Answer’s m line is generated based on the offer’s m line in SDP to avoid m line mismatch error when running with web browsers as the peer
  • Build SCTP library only when ENABLE_DATA_CHANNEL flag is set
  • Added jitter buffer overflow check to prevent frames from getting dropped due to timestamp integer overflow
  • Fixed user agent string to be SDK and version specific
  • Fixed crash from race condition in ConnectionListener teardown
  • Improved latency in resolving TURN server URLs by directly parsing the IP from the getIceServerConfig response
  • Logging improvements

Version bumps:

  • OpenSSL updated from 1.1.1g to 1.1.1t

Release 1.7.3 of the Amazon Kinesis Video WebRTC C SDK

19 May 00:19
ced19d0
Compare
Choose a tag to compare

Release tagged at: ced19d0

Bug Fixes:

  • Fixed an issue in sample applications where LWS context would not be usable after loss of connectivity

Other

  • Added more logging for ICE and TURN both for error handling and debug cases.
  • Clang format v14.0 applied

Sample Code Changes

  • This release has changes in Common.c that apply to all samples. Particularly of note are the changes in sessionCleanupWait(). Please be sure to incorporate these changes into your applications.

Release 1.7.2 of the Amazon Kinesis Video WebRTC C SDK

21 Feb 21:19
2dff44f
Compare
Choose a tag to compare

Release tagged at : 2dff44f

Bug Fixes:

  • Fixed an issue where connected sockets were not sending pings

Details about Bug:

Between v3.x.x and v4.x.x the LWS changed the struct that managed the retry policy.
In LWS v4.2.0-.2 there is a bug in the create LWS context function. It checks only if ping is passed in, and then assigns both ping and hangup passed in values. Hangup can be undefined in this case

1045     context->default_retry.secs_since_valid_ping = 300;        //defaults
1046     context->default_retry.secs_since_valid_hangup = 310;
1047     
1048     if (info->retry_and_idle_policy &&
1049         info->retry_and_idle_policy->secs_since_valid_ping) {  //check for ping value to be non-zero.
1050         context->default_retry.secs_since_valid_ping =
1051                 info->retry_and_idle_policy->secs_since_valid_ping;
1052         context->default_retry.secs_since_valid_hangup =
1053                 info->retry_and_idle_policy->secs_since_valid_hangup;  //this is the passed in value of hangup, which could have been unassigned
1054     }

We need to pass in a hangup value greater than the ping value, or the pings will not occur.

Producer C version:

v1.2.X (unreleased at this time) - c7fce9e06021452ff3c42dc70c8360606b22ad53

Release 1.7.1 of the Amazon Kinesis Video WebRTC C SDK

09 Feb 18:38
111c253
Compare
Choose a tag to compare

Release tagged at: 111c253

Bug Fixes:

  • Increased SDP attributes limit to 256 from 128 to accommodate larger SDP sizes from Chrome v98: #1389. Note that the SessionDescription now increases in size by about 390k bytes (SdpMediaDescription and SessionDescription allows 256 attributes each, and each attribute is 512 bytes).

Producer C version:

v1.2.X (unreleased at this time) - c7fce9e06021452ff3c42dc70c8360606b22ad53