WebRTC M68 Release Notes
WebRTC M68 branch (cut at r23360)
WebRTC M68, currently available in Chrome's beta channel and as native libraries for Android and iOS, contains over 20 new features and over 40 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.
As announced earlier, Chrome will transition from Plan B SDP format to Unified Plan. Web developers can experiment with the new format by specifying {sdpSemantics: "unified-plan"} in the RTCPeerConnection constructor. Note that certain corresponding API’s are not completely implemented yet. More details about the transition plan can be found on webrtc.org.
The WebRTC ObjC SDK is now built without SW video codecs by default. The purpose is to save binary size for clients that don't need SW video codecs. Link to PSA.
Any developer with an app that has simulcast configured, uses screenshare, and has the x-google-flag:conference flag set, might be affected by a new mode where two video streams with the same resolution but different bitrates and potentially different frame rates are sent. If you are running an SFU/MCU type service, make sure you can reliably distinguish between the high and low quality encodings, as just looking at resolution will no longer be enough. More details can be found in the original PSA.
Once signed for the Origin Trial, application developers can evaluate using system-specific echo canceller implementations on macOS and Windows. These will be exposed though a new, experimental getUserMedia constraint named echoCancellationType. More information will be available on the Google Developer Blog once the Origin Trial is launched. You can also try it locally by starting Chrome with the command line argument --enable-blink-features=ExperimentalHardwareEchoCancellation.
In order to be consistent and spec compliant, we have updated the media stream’s usage of “label” to “ID” (see bug 8977). The Android MediaStream has been updated from label() to getId() for accessing this field. Please update accordingly. This was communicated earlier in a separate PSA.
Webrtc's public video decoder api is defined by the interface webrtc::VideoDecoder, declared in api/video_codecs/video_decoder.h. The Decode method of this interface, and the corresponding objc api, used to have an argument of type RTPFragmentationHeader*. Since the RTPFragmentationHeader is not useful for video decoding, we have deleted those arguments. This affects applications injecting their own codecs. See details in the original PSA.
Issue | Description | Component |
Remove dependency on openmax_dl | Audio | |
Remove WebRtcVideoSendStream2::VideoSink inheritance. | Video | |
Remove internal factories from FakeWebRtcVideoCodecFactories | Video | |
Move AudioFrame to webrtc/api | Audio |
Type | Issue | Description | Component |
Feature | Add UMA histograms for NetEq's expand rates | Audio | |
Feature | Move aecdump file IO from real-time audio thread to low-prio task queue | Audio | |
Feature | Improvements on transparency for AEC3 under stationary noises at the farend side | Audio | |
Feature | unpack_aecdump should unpack render/capture call order | Audio | |
Feature | Add echo canceller type constraint | Blink>WebRTC>Audio | |
Feature | Support Windows native echo canceller | Blink>WebRTC>Audio | |
Feature | Optimize WebRTC log calls to use fewer bytes in the binary | Internals | |
Feature | Support VPN adapter type in WebRTC | Network>ICE | |
Feature | Handle Receiver Reference Time Report from multiple receivers | Network>RTP | |
Feature | Update Media Stream naming of label to id | PeerConnection | |
Feature | Minimum bit rate thresholds too low for 720p in VP9 SVC | Video | |
Feature | Mitigate RTP pic ID errors in VP9 SVC non-flexible mode (for VP9 SVC enablement). | Video | |
Feature | Limit inter-layer prediction to key pictures (for VP9 KSVC enablement). | Video | |
Feature | Fill drops with last decoded frame (for VP9 SVC enablement). | Video | |
Feature | Decode base reference frame if current layer was dropped (for VP9 SVC enablement). | Video | |
Feature | Add control for inter-layer prediction mode (for VP9 KSVC enablement). | Video | |
Feature | Fix calculation of target bitrate of VP9 spatial layer (for VP9 SVC enablement). | Video | |
Feature | Add field trial for configuring default number of temporal layers in a vp8 simulcast call | Video | |
Feature | Reduce FEC table size and generate some FEC masks at runtime | BWE | |
Feature | Revise examples/peerconnection to work with Unified Plan | PeerConnection | |
Feature | WebRTC: Add UMA counters for Unified Plan | Blink>WebRTC>PeerConnection | |
Bug | The AEC3 echo removal is too aggressive for low-level echoes during nearend-speech | Audio | |
Bug | AEC3 echo leakage for closed headsets with non-negligible echo | Audio | |
Bug | The AEC3 transparent mode is too aggressive | Audio | |
Bug | The computation of the spectra for the render signal in AEC3 has an unintended side-effect | Audio | |
Bug | The AEC3 initial alignment may sometimes be off, causing short periods of echo leakage initially. | Audio | |
Bug | The AEC3 API call skew tolerance limit is set too tight | Audio | |
Bug | The leakage behavior in some AEC3 FFT estimates do not match | Audio | |
Bug | Incorrect usage of the echo path gain in the AEC3 nonlinear mode | Audio | |
Bug | [desktopCapture OSX] screen capture stops internally on some MBP | Blink>GetUserMedia>Desktop | |
Bug | The AEC3 transparent mode is too aggressive | Blink>WebRTC>Audio | |
Bug | AEC3: Suppressor too aggressive during double talk | Blink>WebRTC>Audio | |
Bug | The AEC3 echo removal is too aggressive for low-level echoes during nearend-speech | Blink>WebRTC>Audio | |
Bug | The leakage behavior in some AEC3 FFT estimates do not match | Blink>WebRTC>Audio | |
Bug | AEC3 echo leakage for closed headsets with non-negligible echo | Blink>WebRTC>Audio | |
Bug | Call::OnTargetTransferRate sometimes tries to use deleted task queue member from another thread. | BWE | |
Bug | RtpCodecParameters should expose channels and parameters. | Audio, Stats, Video | |
Bug | AEC3: Attenuation of narrow banded peaks is too aggressive | Audio | |
Bug | AEC3: Suppressor too aggressive during double talk | Audio | |
Bug | AEC3: External delay is not applied correctly | Audio | |
Bug | Clean codes relate to Speex | Audio | |
Bug | The AEC3 handling of saturated echoes is overly conservative | Audio | |
Bug | Stream delay reporting is enforced when the AEC3 echo cancellation solution is used | Audio | |
Bug | AudioFrame::empty_data() adds 7KB of zeros to the binary size | Audio | |
Bug | Sharing virtual desktop applications may not be captured | Blink>GetUserMedia>Desktop | |
Bug | Add UMA for screenshare track ended | Blink>GetUserMedia>Desktop | |
Bug | SetLocalDescription returns wrong error when called in wrong state | Blink>WebRTC>PeerConnection | |
Bug | [desktopCapture OSX] cursor is wrongly composed in even if cursor is out of the captured screen/window | DesktopCapture | |
Bug | Use the given IOSurface to reach higher capture framerate | DesktopCapture | |
Bug | rtc::Event on top of pthreads should use monotonic clock | Internals | |
Bug | Memory contention by threads in PeerConnection when invoking methods of PortAllocator | Network, PeerConnection | |
Bug | Implement RTP/RTCP extensions for mid value transport | Network | |
Bug | GetAdapterTypeFromName maps "eth" to ADAPTER_TYPE_UNKNOWN | Network>ICE | |
Bug | RtpSenderInterface::SetParameters should fail with RTCError, not bool | PeerConnection | |
Bug | Wrong payload size set to NetEq simulator in rtc_event_log visualizer. | Tools | |
Bug | Receiver can't decode VP9 stream with partially enabled SVC | Video | |
Bug | VP9 SVC: extra reference in GOF | Video | |
Bug | SVC bitrate limits are used when encoding in single layer | Video | |
Bug | VP9 SVC: encoder uses base layer for temporal prediction | Video | |
Bug | AEC3: External delay is not applied correctly | Blink>WebRTC>Audio | |
Bug | AEC3: Attenuation of narrow banded peaks is too aggressive | Blink>WebRTC>Audio | |
Bug | SDP s= line (session name) must admit a single space as value | Blink>WebRTC>PeerConnection | |
Bug | chrome://webrtc-logs doesn't refresh; must be restarted to refresh | Blink>WebRTC>Tools |