commit | c99753ac8f051e379ae68e281aaef04b0a5ca8f2 | [log] [tgz] |
---|---|---|
author | Henrik Boström <hbos@webrtc.org> | Mon Mar 27 18:23:30 2023 |
committer | WebRTC LUCI CQ <webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue Mar 28 08:28:41 2023 |
tree | 69c75ebcadb3d610e37bbb307789f62066accbb7 | |
parent | 56548988e9abe9903dc0a618050a4e9d216eb191 [diff] |
Fix VP9 {active,inactive,inactive} bitrate issue causing spatial drop. The EncoderStreamFactory triggers different code paths depending on `number_of_streams`: one for simulcast and one for non-simulcast. The non-simulcast path is desired for both normal streams and SVC streams. The simulcast path gives sensible max bitrates for 4:2:1 scenarios, but when encodings like {active,inactive,inactive} is specified in order to do standard SVC, the max bps of the first encoding is so low that an SVC stream will never send more than its first spatial layer (even when scaleResolutionDownBy is 1). Because of this, standard SVC is broken. This CL fixes this problem by using the CreateDefaultVideoStreams() code path instead, which is the same one that legacy SVC uses. With this fix, legacy and standard SVC produce the same behavior regarding bitrate. An added benefit of this is that numberOfSimulcastStreams == 1 in the standard SVC path as well. {active,inactive,inactive} tests are updated to verify the full resolution is achieved after ramp-up. I've also confirmed that this fixes the bug in Canary, see https://crbug.com/1428098#c2. Bug: chromium:1428098, webrtc:15041, webrtc:15034 Change-Id: Ia1eb4ff59c4e2a56af833f7ac907a66bca8ea054 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/299147 Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org> Commit-Queue: Henrik Boström <hbos@webrtc.org> Cr-Commit-Position: refs/heads/main@{#39697}
WebRTC is a free, open software project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components have been optimized to best serve this purpose.
Our mission: To enable rich, high-quality RTC applications to be developed for the browser, mobile platforms, and IoT devices, and allow them all to communicate via a common set of protocols.
The WebRTC initiative is a project supported by Google, Mozilla and Opera, amongst others.
See here for instructions on how to get started developing with the native code.
Authoritative list of directories that contain the native API header files.