Skip to content

Latest commit

 

History

History
395 lines (334 loc) · 15.4 KB

File metadata and controls

395 lines (334 loc) · 15.4 KB

Unreleased

0.20.0

  • Update dimpl to 0.6.2 and sctp-proto to 0.9.1
  • Fix repeated rx lookup cleanup bug #965
  • Fix permissive vp8 depacketizer for invalid l=1,t=0 cases (breaking) #963
  • Add VP8 descriptor parsing and vp8_patch() to RtpWrite #963
  • write_rtp() now takes a RtpWrite builder (breaking) #963
  • Add abs-capture-time writer support and fixed receiver-side (breaking) #964
  • Add stereo to opus format params #955
  • Use Arc<[u8]> as input/output of media data (breaking) #959

is-0.9.1

  • Expose ICE candidate pair RTT in CandidatePairStats #962

0.19.0

  • Expose H265 some already referenced profile structs #948
  • Update to dimpl 0.6.1
  • Update openssl to 0.10.78

is-0.9.0

  • IceCandidate expose str0m/is-unique local property #951
  • Implement ICE role conflict resolution #950

0.18.1

  • dtls: fix to resends during handshake #943
  • Add SdpApi::stop_media() to stop an existing m-line #941
  • Update chat example to use SdpApi::stop_media() when clients are removed #941
  • Accept recycled m-line indexes when the previous m-line was stopped #941
  • Always use ActPass when sending an SDP offer (RFC 8842 Section 5.2/5.5) #893
  • Fix frame drops in Firefox due missing RTX SSRC #940
  • Drop stale depacketizer state on stream pause and restore paused timestamp repair #929
  • Reduce bounds checks in STUN encode/decode #931

0.18.0

  • Disable server cookie for all dimpl crypto impl #923
  • Implement SNAP and sctp-init #811
  • Implement wincrypto-dimpl feature #920
  • Implement openssl-dimpl feature #919
  • Update to dimpl 0.5.0 #916
  • Refactor out new crate "is" (ice agent) #912
  • Expose CSRC property in RTP Header #910
  • Fix jitter calculation in ReceiverReports #907
  • Preserve nomination on redundant pair replacement #908

0.17.0

  • Update to dimpl 0.4.3 #902
  • Update dimpl to 0.4.2 (see 902) and sctp-proto to 0.8.1 #892
  • Update dimpl to 0.3.0 (see 902) #874
  • MSRV 1.85, Edition 2024 and bump deps #891
  • Reduce allocations in AV1 packetizer/depacketizer #889
  • Workaround DCEP panics due to reuse race condition #883
  • sprop-max-don-diff SDP parameter #885
  • Reduce number of RTP header extensions sent on every packet #880
  • Add RTP-level keyframe detection for VP8, VP9, AV1, H264 and H265 #869
  • VP9 switch packetizer to non-flexible mode (F=0) #868
  • Fix H265 SDP negotiation level handling #872
  • Avoid sending VLA on every packet #866
  • Add abs-capture-time RTP header extension #864
  • Adjust IceAgent::ice_timeout to return timeout of successful pair #875
  • Fix infinite loop on in-band data channel stream conflict #873
  • Add Hash, PartialOrd and Ord traits to TransId #905
  • Fix m-line ordering when using sdp merge() #887

0.16.2

  • Fix hot timeout loop with null pacer #863
  • H265 to use is_irap() for keyframe detection #859
  • Fix probe estimator panic when probes accumulate #857
  • Improve H265 test coverage and organization #853
  • Add DirectApi::invalidate_candidate() #858

0.16.1

  • Fix two AV1 packetizer panics #854
  • Fix ICE disconnections with Chrome v144+ when not using ICE Lite #846
  • Downgrade noisy BWE logs #847
  • Fix H265 PACI depacketizer panic on short payload #849

0.16.0

  • Constant stream timeout check #845
  • H265 Packetizer/Depacketizer #822
  • Cap amount SCTP (data channels) buffer #831
  • Fix incorrectly purged ice-lite pairs #832
  • Provide start Instant in constructor (breaking) #843
  • Fix bug in dimpl resend logic (dimple 0.2.4) #842
  • Fix bug in dimpl HelloVerifyRequests (dimpl 0.2.3) #841
  • Stable RNG for tests with dimpl (dimpl 0.2.3) #841
  • BWE remove current_bitrate param (breaking) #838
  • BWE V2 (Probe clusters) #823

0.15.0

  • MediaData::is_keyframe() helper #805
  • Handle tcptype ICE candidates #797
  • New API for building ICE Candidates (breaking) #797
  • AV1 Packetizer/Depacketizer #819
  • Surface Sender Info as Event (breaking) #820
  • Improve performance on apple crypto #818 #821
  • Crypto compliance tests #817
  • Fix HMAC P_hash implementation for Apple Crypto #824
  • Update Apple Crypto crate to use CryptoKit #813

0.14.3

  • Bump dimpl 0.2.1 for SChannel compat #801
  • Reduce allocating in str0m-aws-lc-rs encrypt/decrypt #804

0.14.2

  • Fix order of DTLS pending packet poll #796
  • Defer panic on missing crypto provider until Rtc init #792

0.14.1

  • Configure sctp to not give up INIT/data retransmissions #791
  • update sctp-proto to 0.6.0 #791
  • wincrypto: queue data until handshake completes #787
  • openssl: queue data until handshake completes #787

0.14.0

  • RTT as Duration #756
  • Revise Simulcast layer API #784
  • Fix max-bundle bug introduced in 0.13 #786
  • Reduce reallocation when depacketizing #782
  • Network emulation for tests #774
  • Handle SSRC 0 BWE probe #769
  • Apple Crypto backend #763
  • Move all crypto backends out of main crate #768
  • h264 profile/level matching comply with RFC 6184 #758
  • Constant time HMAC equality #753

0.13.0

  • Simulcast send attributes RFC 8851 #780
  • Handle rejected m-lines (set port 0 etc) #772
  • Expose Opus packetizer #770
  • Handle incoming SSRC 0 BWE probe #769
  • New CryptoProvider API #760
  • Update H.264 profile and level matching logic #758
  • Use constant time equality in some key places #753
  • Fix off-by-one nack reports #748

0.12.0

  • Bump str0m-wincrypto to 0.2.1
  • str0m-wincrypto crate: fix double-free #751
  • Represent NTP as SystemTime in SenderReports #735
  • Fix bug in PT remapping to unlocked PTs #734
  • Fix PT conflict when using Firefox #730
  • Rename Sample level API -> Frame level API #732
  • Add new non-openssl DTLS under dimpl feature #708
  • Expose packetizers under unversioned feature #718
  • Fix bug when TWCC sequence starts above 32768 #717

0.11.1

  • stun: stricter string parsing #712
  • Tweak DirectAPI fingerprint() calls (breaking) #711
  • Restore disabling RtcConfig.fingerprint_verification #711
  • Fix panic width incorrect STUN packet #709

0.11.0

  • Bump str0m-wincrypto to 0.2.0
  • Remove str0m/wincrypto use of thiserror #704 #706
  • Channel::config() to get data channel config #702
  • fix Vp9Depacketizer failing on high scalability modes #701
  • srtp: support (and prefer) AES_256_GCM #697
  • bwe: fix panic on history monotonicity assert in TrendlineEstimator #700
  • ice: fix panic on STUN Binding Indication #690

0.10.0

  • Channel::buffered_amount/set_buffered_amount #688
  • Support PCMu/PCMa #685
  • Make STUN timers configurable on RtcConfig #674
  • ice: stricter srflx candidate checks #672
  • ice: Dont report Disconnected when no local candidates #670
  • ice: expose remote ICE credentials #675
  • ice: transition from Disconnected -> Checking on new candidates #676
  • Make ICE agent local preference pluggable #668
  • Simplified serde of SDP #664
  • SR/RR stats in Ingress/EgressStats #661 #662

0.9.0

  • Wincrypto fail on drop #660
  • All logging on DEBUG and lower #658
  • Redact PII (ip addresses) in logs #656
  • Document behavior of MediaAdded #655
  • Fix growing feedback bug before ICE #654
  • Fix vp8 depacketize for small packets #653
  • Bust cache on config change #649
  • RTT in PeerStats #648
  • Fix off-by-one SDES size calculation #647
  • Increase ufrag size to 16 #646
  • add_local_candidate return candidate on success #650

0.8.0

  • Add start of talkspurt for sample writer #645
  • Avoid overwriting acked SCTP association #643
  • Fix bug misparsing SDES #641
  • Prefer relayed candidates with matching IP versions #640
  • Add stats for the selected candidate pair #638
  • Optional integrity on STUN messages #632
  • Support for most of TURN's messages in STUN #631
  • Reset cached nack flag #629
  • Only reset deplayloader if SSRC did change #628
  • SSRC changes reset StreamRx state #627
  • Direct API reset_stream_tx() call #626
  • Handle very long media pauses #625

0.7.0

  • Spoof raddr in srflx relay candidate #621
  • Support AV1-specific media format parameters #619
  • Support negative time deltas in BWE #615
  • Remove restriction on EC to use on ECDH exchange #616
  • Don't retain Receiver Report loss info when stats are disabled #614
  • Fix RIDs bug on updating non-simulcast media #612
  • Support writing VLA #603
  • Ensure BWE calculation exactly follows libWebRTC #608
  • Add EC-DSA custom certificate common names #607
  • Fix multiple bugs in TWCC #605 #606 #601
  • Support sending simulcast (breaking) #603
  • Wincrypto support #589

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 frame api #559
  • Do not disconnect whilst we still check new candidates #489
  • Ensure lexical ordering of SDP-formatted candidates follows priority #557
  • Limit TWCC iteration with packet status count #606
  • Dedupe acked packets from TwccSendRegister::apply_report() #601, #605
  • Align BWE ArrivalGroup calculation with libwebrtc implementation #608, #615
  • Support AV1-specific media format parameters #619

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> 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