commit | 180362842aeb9df69657e063a2c2768af02fe786 | [log] [tgz] |
---|---|---|
author | Henrik Lundin <henrik.lundin@webrtc.org> | Thu Nov 02 11:09:06 2017 |
committer | Commit Bot <commit-bot@chromium.org> | Thu Nov 02 13:09:07 2017 |
tree | 5393e1be7b63af31b8f237e6e7012b1d2ff9ab5d | |
parent | f6515cd0e3a11d3893242cbc8313b0fc902aedcc [diff] |
NetEq: Fix a problem with too large delay during codec-internal DTX/CNG The length of the generated comfort noise is measured with a counter. A bug in the implementation caused the counter to be reset not only when a new packet was decoded, but also when NetEq asked the decoder for more comfort noise without giving it a new packet to decode. This means that the counter was reset once every 20 ms (in the case of Opus), and it would never match the gap in timestamps that is the exit criterion for CNG. This would have resulted in perpetual CNG, but there is a stop-gap in NetEq. If the buffer level exceeds 4 times the target level, CNG mode is exited anyway. This is what happens at the end of every silence period. With this CL, the bug should be fixed. The fix is wrapped in an experiment, to allow verifying the fix and the impact of it with real world data. Bug: webrtc:8488 Change-Id: Idfc24df780eb2c55dbf08de840e6644e8557a0af Reviewed-on: https://webrtc-review.googlesource.com/18181 Reviewed-by: Ivo Creusen <ivoc@webrtc.org> Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org> Cr-Commit-Position: refs/heads/master@{#20551}
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 http://www.webrtc.org/native-code/development for instructions on how to get started developing with the native code.