- Fixed a bug where
audioLevel,frameRate, andcaptureDimensionsWebRTC stats are returning null on certain browsers. With this release, these stats are now populated whenever they are available. (VIDEO-3600)
- Enabled support for Chrome on iOS.
getStats()now reports the following additional metrics:totalPacketSendDelaytotalEncodeTimeframesEncodedframesDecodedtotalDecodeTimeestimatedPlayoutTimestampjitterBufferDelayjitterBufferEmittedCount
- Fixed a bug where loading
@twilio/webrtcresulted in page errors on Firefox Galaxy S9 simulation mode. (VIDEO-4654)
- Fixed a bug where
getStats()returned stats for only one of the temporal layers of a VP8 simulcast MediaStreamTrack. (JSDK-2920)
- Removed references to
constin order to preserve es5 support. (JSDK-2913)
- twilio-webrtc.js will no longer support Chrome and Firefox versions that support
only the prefixed versions (
webkitandmoz) ofgetUserMediaandRTCPeerConnection. (JSDK-2832)
- Fixed a bug where
packetsLostandroundTripTimewere reported inaccurately even though they were available in Chrome. (JSDK-2755, JSDK-2787, JSDK-2787)
- twilio-webrtc.js will now export
guessBrowserVersion, which detects the major and minor versions of the browser it is running on. (JSDK-2670)
- Fixed a bug where
guessBrowserwas falsely detecting Chrome and Firefox on iOS as Safari. (JSDK-2670)
- Fixed a bug where loading
@twilio/webrtcresulted in page errors on firefox ifmedia.peerconnection.enabledwas set to false in about:config. (JSDK-2591)
- Fixed a bug where ChromeRTCPeerConnection and SafariRTCPeerConnection did not restore the rolled back tracks to SSRCs Map when setLocalDescription() is called immediately after a rollback. (JSDK-2522)
- Fixed a bug where ChromeRTCPeerConnection and SafariRTCPeerConnection did not properly update the SSRCs for MediaStreamTrack IDs in the local offer SDP after a rollback. (JSDK-2463)
- ChromeRTCPeerConnection will now support Unified Plan SDPs in Chrome 72 and above. (JSDK-2312)
- Fixed a bug where
audioLevelreturned by getStats() was not in the range [0-32767]. (JSDK-2303)
- SafariRTCPeerConnection will now support Unified Plan SDPs in Safari 12.1 and above. (JSDK-2306)
- Fixed a bug where getStats was throwing a TypeError in Electron 3.x. (JSDK-2267)
- Fixed a bug where createOffer(), when called in Safari 12.2 created "offerToReceive" RTCRtpTransceivers even though the RTCPeerConnection already had "sendrecv" or "recvonly" RTCRtpTransceivers. (JSDK-2286)
getStatson Firefox will now consume the spec-compliantRTCIceCandidateStatsavailable in versions 65 and above. (JSDK-2235)getStatsis now supported on Safari 12.1 and above. It is not supported on Safari 12.0 and below due to this Safari bug.- Added support for Unified Plan SDPs on Safari 12.1. (JSDK-2231)
- Removed workaround for this Safari bug.
getStatson Chrome now uses the WebRTC 1.0 compliant version of the RTCPeerConnection'sgetStatsAPI. (JSDK-2182)- Worked around the deprecation of the
isRemoteproperty inRTCInboundRTPStreamStatsandRTCOutboundRTPStreamStatsin Firefox. (JSDK-2222)
- Fixed a bug in SafariRTCPeerConnection where
remoteDescription, when accessed in an RTCTrackEvent listener returned pending remote description even though a new RTCSessionDescription had already been applied. (JSDK-2224)
- Removed workaround for this Chrome bug.
Now, we no longer suppress the RTCPeerConnection's native
RTCTrackEvent.
- In 2.0.0, calling
removeTrackin Firefox or Safari didn't actually remove the RTCRtpSender. We did this because we found bugs in the browsers'removeTrackbehavior; however, shielding applications from that behavior made it difficult to work around those bugs. For example,removeTrackworks fine in Safari assuming you don't add back the same MediaStreamTrack. On this principle, we updatedremoveTrackto actually callremoveTrack. (JSDK-1980)
- Worked around Firefox Bug 1480277.
- Fixed a bug in the management of SSRCs in Chrome. (JSDK-2032)
- Fixed
getStatsAPI deprecation warnings in Firefox. (JSDK-1227)
StandardizedStatsResponsehas a new property.activeIceCandidatePair, which contains the normalized active ICE candidate pair statistics.- Added support for passing Chrome-specific constraints.
- Added shims for the
RTCRtpSender/RTCRtpReceiverbased APIs. The legacyMediaStreambased API shims have been removed. (JSDK-1631)
- Previously, we were overwriting MediaStreamTrack IDs with the values signaled
in the SDP's MSID attributes in order to maintain compatibility with
pre-WebRTC 1.0 behavior. The particular method we used did not take into
account the fact that the actual MediaStreamTrack IDs would continue to show
in
getStatsresults and has been removed.
- Adds Chrome support for getting and setting
maxPacketLifeTimeon RTCDataChannels by remapping the legacy propertymaxRetransmitTimetomaxPacketLifeTime. (JSDK-1572)
- Fixed a bug where our
getStatsfunction returned StandardizedTrackStatsReports of the wrong kind in the members of StandardizedTrackStatsResponse. (JSKD-1605)
- Fixed a bug where we created too many MediaStreams in Firefox (one per call to
getLocalStreamsandgetRemoteStreams). (JSDK-1558)
- Calling
getUserMediain browsers which do not supportgetUserMedia(such as iOS 8) would hang indefinitely. Now we reject with an error.
RTCSessionDescriptionproperties are now read-only, and therefore standards-compliant. (JSDK-1503)
- Factored out the WebRTC shims from twilio-video.js 1.2.0 into its own library.