Releases: awslabs/amazon-kinesis-video-streams-webrtc-sdk-c
Release 1.7.2 of the Amazon Kinesis Video WebRTC C SDK
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
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/