Skip to content

Release 1.11.0 of the Amazon Kinesis Video WebRTC C SDK

Latest
Compare
Choose a tag to compare
@sirknightj sirknightj released this 04 Oct 00:32
30f52d1

Summary

Important

With this release, the previously reported issue (#2038) concerning TURN connections has not been observed.

Time to First Frame (TTFF) Improvements

  • This release has been tested for TTFF across a diverse range of platforms, including System-on-Chips (SoCs), operating systems, and network topologies (STUN/TURN). Our SDK sample applications, including camera, web browsers, and mobile viewers, were used for these tests. We observed an average improvement of 15-30% in TTFF without impacting other performance indicators, such as connection success rate.

Note

The performance metrics provided are based on testing in controlled environments. It is important to note that the actual performance, specifically the time between sending the offer and rendering the first frame, may vary based on factors such as bandwidth availability, latency, packet loss, and the crypto libraries used (MbedTLS or OpenSSL).

Added Support for H.265 Codec

  • More details on running the SDK with H.265 can be found in the README.

What's New

Note

These features include changes from 1.10.0, 1.10.1 and 1.10.2.

SDK Changes

  • TTFF enhancements:
    • With threadpool:
      • STUN ICE server DNS resolution is performed asynchronously. (#1812)
      • With OpenSSL, DTLS handshake doesn't use the timer queue interval. (#1824)
    • Performed DTLS handshake after ICE nomination. (#1824)
    • Added further transition checks for the ICE and TURN state machines. (#1825)
  • H.265 media transmission support. (#1965)
  • Added new error codes. (#1824, #1829, #1854, #1896)
  • Added new state machines: DTLS (for OpenSSL path) (#1824) and TURN (#1825)
  • Added profiling and modified timeouts on ICE/TURN states to increase the connection success rate in constrained network conditions. (#1824, #1896)
  • Windows:
    • Added filtering on non-operation network interfaces. (#1937)

Samples

  • Added option to use H.265 codec for video. (#1965)
  • Added new sample (kvsWebrtcClientViewerGstSample) that writes media received from the master to the disk. (#1963)
  • Master samples:
    • Send data channel message for the TTFF JS viewer timeline visualization, See Readme for details. (#1846)
  • kvsWebRTCClientMasterGstSample:
    • Added simple implementation of adaptive bitrate based on the detected packet loss percentage. (#1957)

Bug Fixes/Improvements

  • Fixed trickle ICE to be session- and media-level instead of only a media-level attribute. (#1813)
  • Windows:
    • Fixed signaling cache file creation. (#1935)
  • Master samples:
    • Fixed sending frames too early before SRTP is ready. (#1833)

Build Changes

  • Fixed static build issues for libkvsCommonLws and kvsWebRtcThreadpool libraries. (commit)
  • Added support for the Release/Debug build option for both MbedTLS and usrsctp dependencies. (#1897)
  • Fixed linking to the kvsWebRtcThreadpool library when the kvsWebRtcThreadpool option is enabled during the build process. (commit)
  • Added CMake option (-DIOT_CORE_ENABLE_CREDENTIALS) to build the samples using IoT credentials mode, with Readme instructions on how to use IoT Credentials in the KVS WebRTC SDK. (#2056)
  • Added CMake option (-DKVS_CA_CERT_PATH) to specify the path to the CA certificate. (commit1, commit2)

Dependency Updates

  • The libwebsockets version has been updated from 4.2.2 to 4.3.3. (#1820)
    • Build changes have been added for libwebsockets on MIPS32 with old compilers (needed for GCC 5.4 cross-toolchain with uclibc). (commit)
  • The libkvsCommonLws version has been updated from 1.5.1 to 1.5.3. (#2018)
    • To resolve issue #1804.
  • The MbedTLS version has been updated from 2.25.0 to 2.28.8. (commit)
    • Build changes have been added for compiler errors with MbedTLS on Mac computers with Apple silicon chips. (commit)

Known Issues

  • Compiler warnings during build regarding pointer casting across different platforms.