PSA: WebRTC M75 Release Notes

3,364 views
Skip to first unread message

Chakri Munagala

unread,
May 16, 2019, 6:48:52 AM5/16/19
to discuss-webrtc

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.

  • chrome://webrtc-internals using standard getStats() + new stats implemented

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


  • RTCPeerConnection.onnegotiationneeded

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.


Deprecations


  • 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

Features and Bug Fixes


Issue

Description

Component

9688

Simulcast streams will send one key frame on all spatial layers for each FIR with different SSRC

Video

9934

Makes send packet information non optional for feedback reports.

BWE

10081

Unify congestion window and pacing buffer pushbacks.

BWE

10171

Include pacing buffer size in congestion window pushback.

BWE

10259

Create FrameBufferController interface and allow its injection for VP8

Video

10366

Make AEC3 the default AEC option in WebRTC

Audio

8420

H264 constrained baseline fails to be decoded

Video

8434

Excessive AEC suppression

Audio

9033

Pass coded_size info along in webrtc::VideoFrame

Video

10222

Bandwidth toggles between two estimates in StartUpPhase.

BWE

10325

PacedSender send to much padding when there are small packets sent

BWE

10341

AEC3: Echo during onsets

Audio

10368

RTT based backoff is not capped below.

BWE

10383

Simulcast video sends SDES with CNAME items with zero length

Network>RTP, PeerConnection

10392

Postpone decoding after expand causes too much delay in high packet loss scenarios

Audio

10393

Add support for writing a call order file in audioproc_f

Audio

10409

Fuzzing for simulcast

PeerConnection

10413

Add histograms to bandwidth probing code

BWE

10415

Increase default maximum jitter buffer size

Audio

10427

Make keyframe generation/request intervals tuneable

Video

10436

The way OpenSLEngineManager is shared between OpenSLESPlayer and OpenSLESRecorder is unsafe

Audio

10437

Adopt INTER_LAYER_PRED_OFF

Video

10439

Provide common interface for bitstream parsers

Video

10447

[standard stats] Implement counters for retransmitted bytes

Stats

10448

[standard stats] Implement totalEncodeTime

Stats

10449

[standard stats] Implement lastPacketReceivedTimestamp

Stats

10452

[standard stats] Implement stat for content type

Stats

10462

Acknowledged bitrate estimate can get stuck at low bandwidth.

BWE

10463

AEC3: missing bound checks when accessing a vector in the signal dependent erle estimator code

Audio

10475

RTCP XR target bitrate could be incorrect.

Video

10491

addTransceiver doesn't validate input rids

PeerConnection

10493

Fix timeouts in replay fuzzers.

Blink>WebRTC>Network

10501

Pass information from incoming LossNotification RTCP messages to video encoder

Video

10502

Duration of video pause is not included into sum of squared frame durations

Video

10533

The minimum comfort noise level in AEC3 is too high

Audio

10543

Color space not parsed correctly on receiver side

Network>RTP

10546

The runtime-settings in aecdumps for the pre-amplifier gain cannot be overruled in audioproc_f

Audio

10550

AEC3: Linear output used in suppression gain computation in non-linear mode

Audio

10551

Incoming offer for simulcast does not generate video

PeerConnection

10564

Duplicate calls to OnSentPacket() breaks ALR detection

BWE

10565

In simulcast mode VP9 sender doesn't write scalability structure on key frames of high spatial layers

Video

10571

Potentially unnecessary scaling in LibvpxVp8Encoder::Encode()

Video

10572

Add cap for video jitter buffer estimate

Video

10405

Improve handling RTP (video) packets arriving before VideoReceiveStream has been setup

Video

945159

Move video capture files in content/renderer/media to its own directory

Blink>GetUserMedia>Webcam

941028

string change on CrOS notification for presenting

Blink>GetUserMedia>Desktop

941026

get display media button ordering reversed

Blink>GetUserMedia>Desktop

939587

[Video Capture] OnBufferRetired assumption in BroadcastingReceiver does no longer hold

Blink>GetUserMedia>Webcam

922919

getUserMedia does not throw error is video source is unavailable

Blink>GetUserMedia>Webcam

921006

Onion soup content::MediaStreamSource and content::MediaStreamTrack

Blink>GetUserMedia

910044

Sensoray 2253 Video Grabber not working with MediaFoundation

Blink>GetUserMedia>Webcam

878964

[Video Capture] Distinguish shared frame drop reasons by MediaStreamType

Blink>GetUserMedia>Webcam

878943

[Video Capture] Distinguish logged reasons for why reserving buffer from pool failed

Blink>GetUserMedia>Webcam

735576

Windows video capture using Media Foundation: consider enabling it or removing it

Blink>GetUserMedia>Webcam

731170

Support device-related constraints in getUserMedia

Blink>GetUserMedia

717772

Add WebRTC log messages to help narrow down common video capture issues

Blink>GetUserMedia>Webcam

516230

OSX Desktop Capture/ Screenshare Picker Applications are missing

Blink>GetUserMedia>Desktop

952340

Use-of-uninitialized-value in blink::UserMediaRequest::Create

Blink>GetUserMedia

950280

CHECK failure: sender_track_ref in transceiver_state_surfacer.cc

Blink>WebRTC>PeerConnection

949020

Timeout in congestion_controller_feedback_fuzzer

Blink>WebRTC>Network

943218

Timeout in vp8_replay_fuzzer

Blink>WebRTC>Video

940209

Timeout in audio_processing_fuzzer

Blink>WebRTC>Audio

819977

RTCIceCandidate constructor doesn't conform to specification

Blink>WebRTC>PeerConnection

956634

Merge to M75: Expand UsagePattern and private IP address definition

Blink>WebRTC>Network

956525

Merge to M75: Parse color space only in last packet of key frame

Blink>WebRTC>Video

956447

[WPT] New failures introduced in external/wpt/webrtc by import https://crrev.com/c/1583431

Blink>WebRTC

955416

Merge to M75: Write VP9 RTP SS on key frames of each independently coded spatial layer.

Blink>WebRTC>Video

953512

Invoking getStats with an invalid second argument (such as errorCallback) is no longer equivalent to getStats(successCallback)

Blink>WebRTC

950457

Hashed device ids used in communication with the audio service

Blink>WebRTC>Audio, Internals>Media>Audio

948055

RTCDataChannelInit.id should be ignored when "negotiate" is false

Blink>WebRTC>PeerConnection

947441

[webrtc] Merge to M74: fix for RTCP target bitrate messages for vp9

Blink>WebRTC>Video

947041

Merge to M74: Fix LibvpxVp8Encoder::FrameDropThreshold

Blink>WebRTC>Video

945274

RTCDataChannel.id should be nullable, and null before negotiation

Blink>WebRTC>PeerConnection

943973

Redesign RTCDtlsTransport to not use HasPendingActivity

Blink>WebRTC>PeerConnection

943493

unified plan + legacy stats don't play together nicely

Blink>WebRTC>PeerConnection

941275

Drop DTLS1.0, TLS 1.1 and TLS 1.0 Support From WebRTC

Blink>WebRTC>Network

940920

Merge to M74: Update URI of TransportSequenceNumberV2

Blink>WebRTC>PeerConnection

940918

Merge to M74: Update TransportSequenceNumberV2 extension to support fixed size

Blink>WebRTC>Network

939340

UDP Receive Buffer Causing Packet Loss

Blink>WebRTC>Video

937294

Adjust constraints processing logic to accommodate for remote APM

Blink>WebRTC>Audio

920630

addTransceiver('audio') + replaceTrack causes faulty audioLevel in WebRTC stats

Blink>WebRTC>PeerConnection

907849

Implement RTCDtlsTransport and RTCIceTransport of webrtc-pc

Blink>WebRTC>PeerConnection

850909

WebRTC video encoding init DCHECK hit: Waiting on a //base sync primitive on disallowed thread

Blink>WebRTC>Video

740501

RTCPeerConnection.onnegotiationneeded can sometimes fire multiple times in a row

Blink>WebRTC>PeerConnection

803014

webrtc-internals should use new GetStats data

Blink>WebRTC>Tools

878682

RTCDataChannel doesn't fire bufferedamountlow event

Blink>WebRTC>PeerConnection


Philipp Hancke

unread,
May 16, 2019, 1:33:52 PM5/16/19
to discuss...@googlegroups.com, Harald Alvestrand
Am Do., 16. Mai 2019 um 12:49 Uhr schrieb Chakri Munagala <chakr...@webrtc.org>:

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.


I do not see either issue 953694 nor issue 944036 mentioned here or below. A change that is tagged as associated with these issues is still causing issues in M75 with iceConnectionState(change) not behaving properly.

Harald: can you (or anyone) explain how the release notes are relevant if they do not mention this?
They are a great place to repeat a "we changed things, please test and let us know if it breaks" (which should have been sent out earlier as a PSA).

--

---
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.
Reply all
Reply to author
Forward
0 new messages