str0m 0.6.3

WebRTC library in Sans-IO style
Documentation
# Unreleased

# 0.6.3

  * Add warning log when exceeding max number of pairs #587
  * Add fuzz to Nightly CI #585
  * Add new loss based BWE controlled #579 #582 #583
  * Add new `vendored` feature flag affecting openssl #580
  * Make use of sha1 crate an optional feature #577
  * Dedupe remote ICE candidates #576 #578
  * Correctly handle per m-line Absolute Send Time #575
  * Correctly handle per m-line TWCC #573
  * Configure RTX ratio cap via `StreamTx::set_rtx_cache` #570
  * Match remote candidate of stun request by priority #569
  * Improve timeouts during DTLS handshake #565
  * Do not decrypt already received packets #554
  * Test for SRTP replay attack #555
  * refactor(ice): always use latest timing config #568
  * Fix RTX stops working after packet loss spike #566
  * Add Sub trait impl (back) to MediaTime #560
  * Make start of talkspurt information available for sample api #559
  * Do not disconnect whilst we still check new candidates #489
  * Ensure lexical ordering of SDP-formatted candidates follows priority #557

# 0.6.2

  * Fix edge case breaking DTLS #531
  * Bump sctp-proto to be compatible with libdatachannel #558
  * Ensure not risk of ROC on initial sequence number #553
  * API for getting stream_id/track_id from a=msid #550
  * Use a=extmap-allow-mixed SDP attribute #551
  * Change the unix_time function to return libc::time_t (32-bit compat) #533
  * Fix bug using unreliable channels by default #548
  * New add_channel_with_config() for configured data channels #548

# 0.6.1
  * Force openssl to be >=0.10.66 #545
  * Fix bug when replacing redundant ice candidates #544
  * Add playout_delay builder function #543

# 0.6.0

  * Doc updates
  * IceAgent make timeout values configurable #537
  * Log more details when failing to decrypt SRTP #536
  * Remember max SeqNo per SSRC for reuse ROC #535
  * Only update NACK/TWCC registers after succesful SRTP decrypt #528
  * Fix bug when changing StreamRx SSRC #522
  * Simplify StreamRx lookup state cache #522
  * Fix bug in TWCC time delta #524
  * Make MediaTime nominator unsigned (breaking) #521
  * Provide reason for timeout #520
  * Reject ice-lite - ice-lite scenario #519
  * Fix bug in ice agent roles for ice-lite #519
  * DLTS cert serial number as random instead of sequential #518
  * IceAgent make timing advance (TA) configurable #515
  * Use sha1 crate instead of the deprecated sha-1 #512
  * Bump sctp-proto to 0.2.2 #511
  * Adjust logging levels to be less noisy #510
  * Fix crash when using VLA (or other) optional RTP exts with SDP #509
  * Re-add manually invalidated IceAgent candidates #508
  * New API to reset BWE state #506
  * Change parameter in BWE algo to match libwebrtc #506

# 0.5.1

  * Expose STUN packet split_username() fn #505
  * IceAgent fix to not invalidate unrelated remote candidates #504
  * Expose ice credentials as configuration option #502
  * Bug fix in lazy NACK handling #501
  * Net structs Transmit/Receive serde Serializable #500
  * Payload matching for VP9 #499
  * IceAgent allow invalidating remote candidates #498
  * Avoid panic on too early DTLS traffic #495
  * `IceAgent::handle_packet` return false if packet not accepted #493
  * Don't panic on STUN requests for unknown NICs #493
  * Improve IceAgent `accepts_message` to avoid panic in some situations #488

# 0.5.0
  * Opus DTX support #492
  * RtcConfig does not generate the ICE creds #491
  * Accept all good remote address candidates, not just the nominated #487
  * Improve performance by only calling `init_time` once #479
  * Fix SCTP channel ID allocation bug when reusing channels #470
  * Fix bug causing nomination of ICE candidate pair that isn't better #463
  * Lower STUN_TIMEOUT for quicker connection checking #462
  * Fix bug making SCTP fail under packet loss #482
  * Add `base` parameter to `Candidate::server_reflexive` (breaking) #455
  * Refactor all OpenSSL (and other crypto code) to mod crypto #449
  * Fix bugs in RTX PT selection for BWE padding #454
  * Don't enable NACK timers unless there are stream to nack
  * Fix bug in BWE trendline estimator
  * Fix (unlikely) nack overflow error
  * Speed up twcc register updates using max_seq()
  * Parse `StunMessage` without allocations (and huge STUN parsing cleanup)
  * Introduce top-level `ice` module having `ice::IceAgent` for standalone usage
  * Remove `StunError::Other` because it was unused
  * Optional parser for VLA (Video Layers Allocation) RTP header extension
  * Chat example send PLI on RTC sequence interruption
  * VP9 contiguity checks in depacketizer
  * Improved VP9 support with parsing layer metadata
  * Fix race in chat example on client disconnect
  * MediaTime improve safety with Frequency newtype (breaking)
  * Header extension abs_send_time is now an Instant
  * Handle more optional a=candidate parameters
  * Support REMB (receiver estimated maximum bitrate) feedback packets (breaking)

# 0.4.1
  * Generated DTLS certificates set issuer/subject for compat with OBS/libdatachannel

# 0.4.0
  * Allow SDP RID with `~` prefix (to indicate paused state)
  * Fix problem with using RTX for audio
  * Make IceCandidate serializable to SDP form (to/from_sdp_string)
  * UserExtensionValues set_arc/get_arc to avoid cloning
  * Provide correct Rid for repaired RTP headers
  * Support 2-byte header extensions
  * Remove a statistics performance bottleneck
  * New ICE Candidate types `server_reflexive` and `relayed`

# 0.3.0
  * Fix bad bug causing SCTP packets to not send
  * Improve performance by reducing Event enum size
  * SdpPendingOffer mergable into new OFFER
  * Improved VP8 temporal layer handling
  * Fix bug in discovering RTX channels due to NACK not being enabled
  * Improve NACK sending with multiple fixes to receive register
  * Fix bug where RTX channel would be allocated for audio m-lines
  * Delay creation of DtlsCert to avoid unnecessary start-up time
  * Writer take Into<Vec<u8>> to make it possible to avoid extra allocation (breaking)
  * Refactor internal time handling (unix epoch translation)
  * Fix bug in signaling media discontinuity
  * User RTP header extensions

# 0.2.0
  * Possible to disable DTLS fingerprint verification
  * Manually set local ice credentials
  * enable_raw_packets for debugging RTP/RTCP
  * ICE restart
  * SRTP: Implement AEAD_AES_128_GCM and use it by default
  * Better FMTP matching of VP8 and H264
  * Fix incorrect handling of header extensions
  * Fix incorrect handling of PT-codec assignment
  * Dynamic SSRC via MID-only RTP headers
  * Fix various undeflow and padding bugs
  * VP8: parse out metata
  * Clean separation of RtxCache from PacketizingBuffer.
  * Major refactor of Media/Stream handling (we call it "kaboom")
  * RTP Mode (directly using RTP packets)
  * Bandwidth Estimation (BWE)
  * Direct API for SDP-free control
  * SDP Api to formalize SDP handling

# 0.1.0
  * First published version