- Fixed a bug where
audioLevel
,frameRate
, andcaptureDimensions
WebRTC 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:totalPacketSendDelay
totalEncodeTime
framesEncoded
framesDecoded
totalDecodeTime
estimatedPlayoutTimestamp
jitterBufferDelay
jitterBufferEmittedCount
- Fixed a bug where loading
@twilio/webrtc
resulted 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
const
in order to preserve es5 support. (JSDK-2913)
- twilio-webrtc.js will no longer support Chrome and Firefox versions that support
only the prefixed versions (
webkit
andmoz
) ofgetUserMedia
andRTCPeerConnection
. (JSDK-2832)
- Fixed a bug where
packetsLost
androundTripTime
were 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
guessBrowser
was falsely detecting Chrome and Firefox on iOS as Safari. (JSDK-2670)
- Fixed a bug where loading
@twilio/webrtc
resulted in page errors on firefox ifmedia.peerconnection.enabled
was 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
audioLevel
returned 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)
getStats
on Firefox will now consume the spec-compliantRTCIceCandidateStats
available in versions 65 and above. (JSDK-2235)getStats
is 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.
getStats
on Chrome now uses the WebRTC 1.0 compliant version of the RTCPeerConnection'sgetStats
API. (JSDK-2182)- Worked around the deprecation of the
isRemote
property inRTCInboundRTPStreamStats
andRTCOutboundRTPStreamStats
in 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
removeTrack
in Firefox or Safari didn't actually remove the RTCRtpSender. We did this because we found bugs in the browsers'removeTrack
behavior; however, shielding applications from that behavior made it difficult to work around those bugs. For example,removeTrack
works fine in Safari assuming you don't add back the same MediaStreamTrack. On this principle, we updatedremoveTrack
to actually callremoveTrack
. (JSDK-1980)
- Worked around Firefox Bug 1480277.
- Fixed a bug in the management of SSRCs in Chrome. (JSDK-2032)
- Fixed
getStats
API deprecation warnings in Firefox. (JSDK-1227)
StandardizedStatsResponse
has 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/RTCRtpReceiver
based APIs. The legacyMediaStream
based 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
getStats
results and has been removed.
- Adds Chrome support for getting and setting
maxPacketLifeTime
on RTCDataChannels by remapping the legacy propertymaxRetransmitTime
tomaxPacketLifeTime
. (JSDK-1572)
- Fixed a bug where our
getStats
function 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
getLocalStreams
andgetRemoteStreams
). (JSDK-1558)
- Calling
getUserMedia
in browsers which do not supportgetUserMedia
(such as iOS 8) would hang indefinitely. Now we reject with an error.
RTCSessionDescription
properties 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.