webrtcvideoengine2.cc uses a field for parameters_, and doesn't empty out the current state in functions like SetCodec. In the case of internal_source, SetCodec only set it for external encoders, which means that in a switch from an internal-source external encoder to an internal encoder, the internal_source bit would stay set. (It's plausible that there are other places that are also unsafe and we just don't notice because codec switches are uncommon in most usage) In combination with https://codereview.webrtc.org/2574183002/, generic_encoder.cc now creates 1x1 uninitialized frames as fake frames for internal_source keyframe requests. The vp8 software encoder doesn't deal correctly with frames of resolutions that don't match the configured resolution (besides a DCHECK) and no longer throws these away (they used to be 0x0 frames), so this results in the VP8 encoder creating a keyframe of the configured send codec size by reading random memory off the end of the fake I420 frame. This could either cause crashes or encoding junk data, depending on where the allocation was. BUG=webrtc:6957 Review-Url: https://codereview.webrtc.org/2617003003 Cr-Commit-Position: refs/heads/master@{#15969}
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. This page is maintained by the Google Chrome team.
Development
See http://www.webrtc.org/native-code/development for instructions on how to get started developing with the native code.
More info
- Official web site: http://www.webrtc.org
- Master source code repo: https://chromium.googlesource.com/external/webrtc
- Samples and reference apps: https://github.com/webrtc
- Mailing list: http://groups.google.com/group/discuss-webrtc
- Continuous build: http://build.chromium.org/p/client.webrtc
Description
The idea is to make CMake build for WebRTC m130 version - for audio processing module
Languages
C++
90.3%
Java
2.9%
C
2.2%
Objective-C++
2%
Python
1.3%
Other
1%