All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Flexible forward error correction (FEC) algorithm implemented according to https://datatracker.ietf.org/doc/html/rfc8627 The flexible mask is not implemented.
- Added goog-remb RTCP message parser
- RtpBundle logic to handle receiving of multiple RTP streams identified by SSRC under the same mid identifier
- Optimisations and refactoring of RtpBundle for faster processing
- RtpBundle can be used as well to send packets (in transfer mode)
- Improve accuracy of upload bandwidth measurement
- Bandwidth estimator for audio streams - to get a rough estimate of available bandwidth.
- reworked bandwidth estimator for video streams, to improve performance in case of video codecs that outputs small sequences of packets per frame (H265, AV-1).
- ortp memory functions (replaced by bctoolbox ones)
- most of port.c content, that is replaced by bctoolbox
- New forward error correction (FEC) algorithm implemented according to https://datatracker.ietf.org/doc/html/rfc8627 Eperimental stage, work in progress.
- Standalone compilation (out of linphone-sdk).
- Bundle mode warnings and few inconsistencies.
- small memory leak around TMMBR receiving.
- minor fixes
- RTP bundling according to https://tools.ietf.org/html/draft-ietf-mmusic-sdp-bundle-negotiation-54
- RTP extension header support
- IP_PKTINFO for outgoing packets - useful for ICE. This let specify the source IP address to use while sending a packet.
- Version number aligned with other linphone-sdk components, for simplicity.
- Random crash when network simulator is activated, while destroying an RtpSession.
- Immediate NACK handling, to handle retransmission of lost packets.
- License is now GNU GPLv3.
- new adaptive jitter buffer algorithm, with improved performance.
- License is changed from LGPLv2 to GPLv2.
- bctoolbox is added as dependency.
- DSCP handling on Windows.
- IPv6 handling for Windows and Android.
- AVPF generic NACK
- Payload type definitions for real time text and codec2.
- Various things.
- TMMBR and TMMBN handling (RFC5104).
- RTCP send algorithm as describe in RFC3550.
- RTCP XR (RFC3611).
- RTCP send algorithm for AVPF streams as described in RFC4585.
- network simulator improvements.
- updated to use ZRTPCPP>=4
- security issues.
- Network simulator improvements for simulating random lost packets.
- SRTP initialization.
- ZRTP media encryption.
- SRTP media encryption
- rtp_session_get_round_trip_propagation()
- RTCP support.
- DSCP handling on Windows.
- Accessors to struct PayloadType.
- new payload type definitions.
- update stun api to support new RFC.
- gcc warnings.
- reduce number of memory allocation: !! attention here ABI/API change !! If you are using mp=rtp_session_recvm_with_ts(), the payload data is no more pointed by mp->b_cont->b_rptr. Instead you can use the following to skip the header: rtp_get_payload(mp,mp->b_rptr);
- telephone event presence detection bug.
- new ortp_set_memory_functions() method.
- jitter buffer simplification and improvements
- Number of channels in PayloadType (interface changed !).
- srtp optional support (using libsrtp from http://srtp.sf.net)
- optimisations.
- do not recv rtcp packets from rtp_session_sendm_with_ts() when session is not send-only.
- removed gtk-doc, using doxygen instead.
- new telephone-event types.
- pluggable transport layer.
- enables use of different RtpProfile for send and recv directions.
- RTCP memory leak.
- enable 0 ms jitter buffer (implies permissive dequeuing of packets).
- enable optional connected mode: the udp socket is connect()ed so only packets coming from the connected destination are received.
- jitter buffer accuracy improved.
- statistics.
- rtp_session_set_dscp(), rtp_session_send_rtcp_APP().
- statistics.
- new RTCP parser
- new event api
- stun helper routines
- permissive algorithm for video packet enqueueing