Skip to content

Release 1.12.0 of the Amazon Kinesis Video Streams WebRTC C SDK

Latest
Compare
Choose a tag to compare
@stefankiesz stefankiesz released this 17 Dec 21:17
339f24f

Summary

Memory size reduction

  • This release focuses primarily on memory footprint improvements and additional configurability.

Key highlights include:

  • Reduced memory usage through optimized data structures and heap allocation.
  • Added a new optional API for applications to configure the outbound transceiver's rolling buffer size.
  • Made ICE stats calculations optional for improved performance.

What's New

  • Added a new optional API configureTransceiverRollingBuffer to reduce the size of each transciever's RTP packet store from the default. (#2077)
    • Updated the kvsWebrtcMaster.c sample application's rolling buffer configuration using the new configureTransceiverRollingBuffer API to fit the bitrate required by the included sample frames. (#2089)

Tip

For additional configureTransceiverRollingBuffer details, refer to Controlling RTP rolling buffer capacity in the ReadMe.

SDK Changes

  • Implemented new API configureTransceiverRollingBuffer. (#2077)
  • Moved the TWCC packet store and TWCC packets from the stack to the heap and reduced the store size. (#2075)
  • Changed the underlying TWCC packet store implementation from an array to a hashTable. (#2075)
  • Moved the remote description (SDP offer when this SDK is used as master) from the stack to the heap and shortened its lifetime between the session establishment. (#2070)
  • Reduced the size of stats-related strings. (#2079)
  • Reduced the size of hashTables holding codecs for SDP construction. (#2067)
  • Added option to disable ICE stats calculations. (#2074)
  • Moved SDK-internal ICE stat structs from the stack to the heap. (#2074)

Samples

  • Disabled ICE stats calculation by default if ENABLE_STATS_CALCULATION_CONTROL is present. (#2074)
  • Changed the log level of metrics logs from DEBUG to INFO. (#2074)
  • kvsWebrtcMaster.c: Reduced the size of RTP rolling buffers, using the new configureTransceiverRollingBuffer API, to the bitrate required by the sample frames, demonstrating the potential memory savings. (#2089)

Bug Fixes/Improvements

  • Fixed duplicate nack pli line in the SDP generation for H.264. (#2082)
  • Added missing rtcp-fb line in the SDP generation for H.265. (#2082)
  • Added missing ENTERS(), LEAVES(), and CHK_LOG_ERR() in PeerConnection.c. (#2070)

Build Changes

Added CMake flags:

  • -DENABLE_STATS_CALCULATION_CONTROL to enable the option to disable ICE stats calculation. (#2074)
  • -DKVS_STACK_SIZE to set the stack size configuration. (#2073)

Tip

Refer to the README for additional details for these build options.

Dependency Updates

  • The libkvsCommonLws version has been updated from 1.5.3 to 1.5.4. (#2073)
  • Transitive: The PIC version has been updated from 1.1.0 to 1.2.0.

Developer Enhancements

  • Revised the Git clone command in the README to avoid cloning extra branches.
    • Reduced disk space from about 700 MB to about 30 MB when cloning the SDK repository. (#2083)
  • Added a new action that runs kvsWebrtcClientMaster and kvsWebrtcClientViewer with valgrind. (#2071)

Note

The development branch containing commits between this release (v1.12.0) and v1.11.0 has been archived into the release-v1.12.0 branch.