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 newconfigureTransceiverRollingBuffer
API to fit the bitrate required by the included sample frames. (#2089)
- Updated the
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
toINFO
. (#2074) kvsWebrtcMaster.c
: Reduced the size of RTP rolling buffers, using the newconfigureTransceiverRollingBuffer
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()
, andCHK_LOG_ERR()
inPeerConnection.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
andkvsWebrtcClientViewer
withvalgrind
. (#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.