Releases: awslabs/amazon-kinesis-video-streams-webrtc-sdk-c
Release 1.7.1 of the Amazon Kinesis Video WebRTC C SDK
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
andSessionDescription
allows 256 attributes each, and each attribute is 512 bytes).
Producer C version:
v1.2.X (unreleased at this time) - c7fce9e06021452ff3c42dc70c8360606b22ad53
Release 1.7.0 of the Amazon Kinesis Video WebRTC C SDK
Release tagged at: 22c9e3d
Whats new:
- Updated libwebsockets library to 4.2.2
- make clean command added
- Full jitter (range of jitter equal to base wait time) on exponential backoff of repeated signaling API calls
- Full jitter & exponental backoff on non-200 results at the state machine level
- Clock skew adaptations
System time is compared to server time (with timezone corrections). If a skew is detected, the delta will be saved and the API retried.
Skew per API service is tracked. - Better caching of IoT credentials. Resetting of the state machine for non-auth reasons will no longer require re-creating the signaling client.
Sample improvements:
- Showcase data channel support in WebRTC Viewer sample.
- Sample no longer destroys and recreates signaling client to reset state machine.
Bug Fixes
- issues resolved: #1174 #1225 #1249
- FD leak patched in LWS #1263
- fix pare_status.py script #1268
- Resolve LWS interface layer not appropriately reporting failures in some cases #1328
- DCEP protocol issue fixed for non-null values #1228
Producer C version:
- v1.2.X (unreleased at this time) - c7fce9e06021452ff3c42dc70c8360606b22ad53
Release 1.6.0 of the Amazon Kinesis Video WebRTC C SDK
Release tagged at: 07deb17
Whats new:
- Added Transport Wide Congestion Control (TWCC) support
- Updated libwebsockets library to 4.2.1
- Updated libsrtp and libusrsctp library to include MBedTLS support changes
- Improved jitter buffer design
Sample improvements:
- Introduced certificate pre-gen in sample that would speed up processing on low-footprint devices
- Included network interface filtering callback usage in samples
- Added IoT credential provider usage pattern
- Showcase usage pattern to set transceiver direction in samples
Build improvements:
- Fixed Mac OS newer versions build issue with libwebsockets
Producer C version:
- v1.2.0 - 99c1a8cd8cec88f99c9c4ce3944b53ae341d1491
Release 1.5.0 of the Amazon Kinesis Video WebRTC C SDK
Release tagged at:
f3a34c2
Whats’s new:
- Transport wide congestion control (TWCC) parsing
- Updates to ICE server configuration refresh functionality to simplify the logic
- Fixes for timing issues with SRFLX candidate pairing (improves P2P/TURN connection ratio)
- ICE server configuration retrieval from the Offer (optional)
- Generating pseudo-random SN for DTLS self-signed certificates to allow multiple viewers hosted on FireFox page
- Ignoring unspecified local IP addresses
- Parsing ICE candidate priority and its type from the SDP
- Multiple stability and edge case fixes
- Data race fixes in socket connection listener teardown
- Enabling profiler tools
- Build and TravisCI integration imrprovements
Sample improvements:
- Improved startup times in the samples
- Failing on existing session with the same ClientID
- Reported bug fixes
Build improvements:
- Applying srtp library patches without which gcc 10 builds fail
- Minor CMake and Travis CI improvements
- Refactoring scripts into a separate directory
Producer C Changes: (d1095356712729d0489e56d1d0e27f5ce0a29fad)
- Using release v1.1.0
- Credential provider fixes and exposing targeted status codes on failures
- Build and Travis CI run improvements, removing sub-modules
- Added startup latency measure in the samples
- MbedTLS support in common library
- Continuous retry callbacks retry recovery on errors raised also from common library
- Various stability and test fixes
- Doxygen support
- Clang format and enforcement
- Improved test coverage
Documentation: Information about the WebRTC public APIs can be found here: https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-c/
Release 1.4.0 of WebRTC C SDK
Release tagged at:
8a64e7f
Whats’s new:
- More metrics support
- Stabilization fixes in samples and the SDK
- Call diagrams added to Doxygen generated documentation
- Dynamic footprint reduction
Sample improvements:
- Logging selected ICE candidates
- Frame timestamp backwards drift issue fix
- Log level adjustment to reduce spew, more logging on errors
- Data race fixes on session teardown
- Serializing message handling in the samples to avoid race conditions
- Startup latency from offer to first frame measurements
- Dynamic footprint reduction optimization
- Reported bug fixes, including race conditions, 32 bit compatibility, etc..
Build improvements:
- Optional samples build flag
- Optional flag to disable data channels
- WebSockets and OpenSSL depndencies build flags fixes for embedded platforms.
- Removing the ldexp dependency
- Doxygen integration, callgraph generation
- Additional CI jobs to validate samples, enforce formatting, enable compiler warnings in tests, include mbedTls runs.
- IoT credentials provider linker fixes
Improvements:
- Metrics and stats support for ICE Candidate Pair, ICE Candidate, Data Channel, Inbound RTP Stats
- Additional SDP packet type support: PLI,
- Fix SDP handling with Trickle ICE selection
- Fix RTP timestamp macro causing incorrect timestamp mapping
- Fix race conditions in signaling message handling and teardown code, handling reentrancy with libWebSockets
- Transceiver direction support fixes
- usrsctp library startup and teardown fixes
- Support for Windows for the socket and error handling APIs
- Reducing static and dynamic footprint size
- Reported bug fixes
Producer C Changes: (15f124e5a5561679cf001bb36c2c758073740681)
- TimesQueue shutdown API blocking on the in-progress callbacks.
Documentation: Information about the WebRTC public APIs can be found here: https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-c/
Release 1.3.0 of WebRTC C SDK
Release tagged at:
0550dba
Whats’s new:
- ICE server stats added (API: rtcPeerConnectionGetMetrics())
- RTP outbound and remote inbound stats added (API: rtcPeerConnectionGetMetrics())
- Signaling stats available (API: signalingClientGetMetrics())
- mbedTLS (experimental) support added. Choice between OpenSSL and mbedTLS available
Improvements:
- ICE candidate priority calculation bug fixed improving the candidate nomination process (#612)
- Improved SDP conformance with RFC to work with CRLF and LF (#587)
- Fixed interruption of sending process due to momentary network unreachable errors (#618)
- Fixed CPU spike when TURN candidates are not used by cleaning up the sockets they have opened (#649)
Producer C Changes: (e7d4868d8c336cec5fa35250212fffa19135a6ba)
- Build system improvements
- README improvements on SDK versioning, development and release
- Added non-BSD strnstr implementation
- Fixed static libcurl build failure
Documentation: Information about the WebRTC public APIs can be found here: https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-c/
Release 1.2.0 of WebRTC C SDK
Release tagged at:
43ede51
Whats’s new:
- Support on Windows
- Fixed broken data channel message receive
- Added capability to handle more transceivers
- Allowing ICE username/password unto 256 bytes
- Added PRtcDataChannel to data channel callback arguments
- Added new data type to allow certain nullable types specified in RTC spec
- Provision to support trickle ICE based on Remote description
- File logging in samples
- PIC is built through producer C
- NAT behavior detection facility (cb00f8e)
- Added restartIce api.
Producer C Changes: (270c0b6612cc553d458e316e835471c693f518bd)
- Build system enhancement - navigation away from use of submodules
- Using only JSMN header
- Added file logging in samples
- New status codes for file credential provider
Improvements:
- Unit tested data channel send message after DTLS handshake
- Fix leak when ice restart fails
Known Issues:
- Incorrect transceiver direction breaks SDP exchange in Firefox and iOS
- Partial reliability does not work as expected. Need to add library level tests to validate
- Reduce memory allocations in sending audio/video packets
Documentation: Information about the WebRTC public APIs can be found here: https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-c/
Release 1.1.0 of WebRTC C SDK
Platforms tested on:
- Linux
- MacOS
- x64
- ARMv5
Web Browsers tested on:
- Chrome
- Firefox
Release tagged at:
93505e7
Whats’s new:
- Bumped up openssl version to 1.1.1g
- Using v1.0.0 of C producer SDK
- Support multiple video tracks with same codec
- Support for signaling endpoint and signaling channel ARN caching into file
- Multiple TURN server support. ICE will try to allocate for all of them and use the one thats connected first.
- Disconnect signaling channel API
- Public utility to get pending local session description (
peerConnectionGetLocalDescription()
)
Improvements:
- 2 seconds improvement in TURN candidate gathering
- User configurable option to use UDP or TCP/TLS based TURN
- Logs for candidate round trip time once connected
- Minor build system fixes
Known Issues:
- Incorrect transceiver direction breaks SDP exchange in Firefox and iOS
- Partial reliability does not work as expected. Need to add library level tests to validate
- Reduce memory allocations in sending audio/video packets
Documentation:
Information about the WebRTC public APIs can be found here:
https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-c/
Release 1.0.0 of the Amazon Kinesis Video WebRTC C SDK
Platforms tested on:
- Linux
- MacOS
- x64
- ARMv5
Web Browsers tested on:
- Chrome
- Firefox
Release tagged at:
Whats’s new:
- Starter samples of master, viewer and GStreamer master
- Cross compilation support
- Signaling Client
- Callbacks provided for Receiver end bandwidth estimation support for Congestion Control, FIR and PLI
- Network interface filtering callback provision to reduce time taken to gather TURN/ICE candidates
- STUN/TURN support
- IPv4 support
- IoT certificate authentication integration with signaling client
- Pre-generated certs support while creating DTLS session to help smaller embedded devices
Known Issues:
- Incorrect transceiver direction breaks SDP exchange in Firefox
- No IPv6 support
Documentation:
Information about the WebRTC public APIs can be found here:
https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-c/