WebRTC M75 Release Notes
WebRTC M75 branch (cut at r27678)
WebRTC M75, currently available in Chrome's beta channel and as native libraries for Android and iOS, contains 3 new features and over 50 bug fixes, enhancements and stability/performance improvements. As with previous releases, we encourage all developers to run versions of Chrome on the Canary, Dev, and Beta channels frequently and quickly report any issues found. Please take a look at this page, for some pointers on how to file a good bug report. The help we have received has been invaluable!
The Chrome release schedule can be found here. Native libraries for Android and iOS are built on a weekly basis and are available on JCenter and CocoaPods; the Changelog is available here.
The WebRTC APIs for RTPsenders and RTPReceivers have been extended with attributes that give
information about the state of the underlying ICE transport and DTLS transport. These attributes are part
of the WebRTC 1.0 specification.
chrome://webrtc-internals now displays stats returned by the standardized getStats() API, which is the promise-based API in Chrome. These metrics are also saved when you “Create Dump”, but if you want to view the old non-standard stats (returned from the callback-based API) there is a drop-down menu that lets you choose. See PSA.
New standardized stats have also been implemented, particularly ones meant to be able to replace non-standard “goog” stats from the legacy getStats() API. For details, see PSA.
The negotiationneeded event informs the application that session negotiation needs to be done (i.e. a
createOffer call followed by setLocalDescription). This is not really a new feature, but prior to M75, the
event fired incorrectly. M75 fixes this issue and makes the event useful by firing it when negotiation is
actually needed, in accordance with the spec.
Support for user-info part of turn urls, i.e., the @ sign preceded by username (and optional password) in turns:nisse:sec...@example.org, has been deleted. This syntax was part of early internet-drafts, but was made obsolete by RFC 7065. Turn urls are used to specify the list of ICE servers for a PeerConnection. The work for this was tracked in issue 10422
Issue | Description | Component |
Simulcast streams will send one key frame on all spatial layers for each FIR with different SSRC | Video | |
Makes send packet information non optional for feedback reports. | BWE | |
Unify congestion window and pacing buffer pushbacks. | BWE | |
Include pacing buffer size in congestion window pushback. | BWE | |
Create FrameBufferController interface and allow its injection for VP8 | Video | |
Make AEC3 the default AEC option in WebRTC | Audio | |
H264 constrained baseline fails to be decoded | Video | |
Excessive AEC suppression | Audio | |
Pass coded_size info along in webrtc::VideoFrame | Video | |
Bandwidth toggles between two estimates in StartUpPhase. | BWE | |
PacedSender send to much padding when there are small packets sent | BWE | |
AEC3: Echo during onsets | Audio | |
RTT based backoff is not capped below. | BWE | |
Simulcast video sends SDES with CNAME items with zero length | Network>RTP, PeerConnection | |
Postpone decoding after expand causes too much delay in high packet loss scenarios | Audio | |
Add support for writing a call order file in audioproc_f | Audio | |
Fuzzing for simulcast | PeerConnection | |
Add histograms to bandwidth probing code | BWE | |
Increase default maximum jitter buffer size | Audio | |
Make keyframe generation/request intervals tuneable | Video | |
The way OpenSLEngineManager is shared between OpenSLESPlayer and OpenSLESRecorder is unsafe | Audio | |
Adopt INTER_LAYER_PRED_OFF | Video | |
Provide common interface for bitstream parsers | Video | |
[standard stats] Implement counters for retransmitted bytes | Stats | |
[standard stats] Implement totalEncodeTime | Stats | |
[standard stats] Implement lastPacketReceivedTimestamp | Stats | |
[standard stats] Implement stat for content type | Stats | |
Acknowledged bitrate estimate can get stuck at low bandwidth. | BWE | |
AEC3: missing bound checks when accessing a vector in the signal dependent erle estimator code | Audio | |
RTCP XR target bitrate could be incorrect. | Video | |
addTransceiver doesn't validate input rids | PeerConnection | |
Fix timeouts in replay fuzzers. | Blink>WebRTC>Network | |
Pass information from incoming LossNotification RTCP messages to video encoder | Video | |
Duration of video pause is not included into sum of squared frame durations | Video | |
The minimum comfort noise level in AEC3 is too high | Audio | |
Color space not parsed correctly on receiver side | Network>RTP | |
The runtime-settings in aecdumps for the pre-amplifier gain cannot be overruled in audioproc_f | Audio | |
AEC3: Linear output used in suppression gain computation in non-linear mode | Audio | |
Incoming offer for simulcast does not generate video | PeerConnection | |
Duplicate calls to OnSentPacket() breaks ALR detection | BWE | |
In simulcast mode VP9 sender doesn't write scalability structure on key frames of high spatial layers | Video | |
Potentially unnecessary scaling in LibvpxVp8Encoder::Encode() | Video | |
Add cap for video jitter buffer estimate | Video | |
Improve handling RTP (video) packets arriving before VideoReceiveStream has been setup | Video | |
Move video capture files in content/renderer/media to its own directory | Blink>GetUserMedia>Webcam | |
string change on CrOS notification for presenting | Blink>GetUserMedia>Desktop | |
get display media button ordering reversed | Blink>GetUserMedia>Desktop | |
[Video Capture] OnBufferRetired assumption in BroadcastingReceiver does no longer hold | Blink>GetUserMedia>Webcam | |
getUserMedia does not throw error is video source is unavailable | Blink>GetUserMedia>Webcam | |
Onion soup content::MediaStreamSource and content::MediaStreamTrack | Blink>GetUserMedia | |
Sensoray 2253 Video Grabber not working with MediaFoundation | Blink>GetUserMedia>Webcam | |
[Video Capture] Distinguish shared frame drop reasons by MediaStreamType | Blink>GetUserMedia>Webcam | |
[Video Capture] Distinguish logged reasons for why reserving buffer from pool failed | Blink>GetUserMedia>Webcam | |
Windows video capture using Media Foundation: consider enabling it or removing it | Blink>GetUserMedia>Webcam | |
Support device-related constraints in getUserMedia | Blink>GetUserMedia | |
Add WebRTC log messages to help narrow down common video capture issues | Blink>GetUserMedia>Webcam | |
OSX Desktop Capture/ Screenshare Picker Applications are missing | Blink>GetUserMedia>Desktop | |
Use-of-uninitialized-value in blink::UserMediaRequest::Create | Blink>GetUserMedia | |
CHECK failure: sender_track_ref in transceiver_state_surfacer.cc | Blink>WebRTC>PeerConnection | |
Timeout in congestion_controller_feedback_fuzzer | Blink>WebRTC>Network | |
Timeout in vp8_replay_fuzzer | Blink>WebRTC>Video | |
Timeout in audio_processing_fuzzer | Blink>WebRTC>Audio | |
RTCIceCandidate constructor doesn't conform to specification | Blink>WebRTC>PeerConnection | |
Merge to M75: Expand UsagePattern and private IP address definition | Blink>WebRTC>Network | |
Merge to M75: Parse color space only in last packet of key frame | Blink>WebRTC>Video | |
[WPT] New failures introduced in external/wpt/webrtc by import https://crrev.com/c/1583431 | Blink>WebRTC | |
Merge to M75: Write VP9 RTP SS on key frames of each independently coded spatial layer. | Blink>WebRTC>Video | |
Invoking getStats with an invalid second argument (such as errorCallback) is no longer equivalent to getStats(successCallback) | Blink>WebRTC | |
Hashed device ids used in communication with the audio service | Blink>WebRTC>Audio, Internals>Media>Audio | |
RTCDataChannelInit.id should be ignored when "negotiate" is false | Blink>WebRTC>PeerConnection | |
[webrtc] Merge to M74: fix for RTCP target bitrate messages for vp9 | Blink>WebRTC>Video | |
Merge to M74: Fix LibvpxVp8Encoder::FrameDropThreshold | Blink>WebRTC>Video | |
RTCDataChannel.id should be nullable, and null before negotiation | Blink>WebRTC>PeerConnection | |
Redesign RTCDtlsTransport to not use HasPendingActivity | Blink>WebRTC>PeerConnection | |
unified plan + legacy stats don't play together nicely | Blink>WebRTC>PeerConnection | |
Drop DTLS1.0, TLS 1.1 and TLS 1.0 Support From WebRTC | Blink>WebRTC>Network | |
Merge to M74: Update URI of TransportSequenceNumberV2 | Blink>WebRTC>PeerConnection | |
Merge to M74: Update TransportSequenceNumberV2 extension to support fixed size | Blink>WebRTC>Network | |
UDP Receive Buffer Causing Packet Loss | Blink>WebRTC>Video | |
Adjust constraints processing logic to accommodate for remote APM | Blink>WebRTC>Audio | |
addTransceiver('audio') + replaceTrack causes faulty audioLevel in WebRTC stats | Blink>WebRTC>PeerConnection | |
Implement RTCDtlsTransport and RTCIceTransport of webrtc-pc | Blink>WebRTC>PeerConnection | |
WebRTC video encoding init DCHECK hit: Waiting on a //base sync primitive on disallowed thread | Blink>WebRTC>Video | |
RTCPeerConnection.onnegotiationneeded can sometimes fire multiple times in a row | Blink>WebRTC>PeerConnection | |
webrtc-internals should use new GetStats data | Blink>WebRTC>Tools | |
RTCDataChannel doesn't fire bufferedamountlow event | Blink>WebRTC>PeerConnection |
WebRTC M75 Release Notes
WebRTC M75 branch (cut at r27678)
Summary
WebRTC M75, currently available in Chrome's beta channel and as native libraries for Android and iOS, contains 3 new features and over 50 bug fixes, enhancements and stability/performance improvements. As with previous releases, we encourage all developers to run versions of Chrome on the Canary, Dev, and Beta channels frequently and quickly report any issues found. Please take a look at this page, for some pointers on how to file a good bug report. The help we have received has been invaluable!
The Chrome release schedule can be found here. Native libraries for Android and iOS are built on a weekly basis and are available on JCenter and CocoaPods; the Changelog is available here.
Features
RTCIceTransport and RTCDtlsTransport APIs
The WebRTC APIs for RTPsenders and RTPReceivers have been extended with attributes that give
information about the state of the underlying ICE transport and DTLS transport. These attributes are part
of the WebRTC 1.0 specification.
--
---
You received this message because you are subscribed to the Google Groups "discuss-webrtc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrt...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/discuss-webrtc/f5f42234-cf40-4ada-97f1-9908cc002b15%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.