mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-18 08:07:56 +01:00
No description
![]() different sample rate frequency. BUG=webrtc:7327 Problems before the fix: 1. NetEqImpl::timestamp_ is inconsistent. Initially it is set to the original RTP timestamp, but later gets updated with the scaled timestamp. 2. NetEqImpl::InsertPacketInternal::main_timestamp is set with the original RTP timestamp, but later gets compared with the NetEqImpl::timestamp_ which may or may not be with the same sample rate frequency and this results in major problems. 3. IncreaseEndTimestamp(main_timestamp - timestamp_) will be incorrect when SSRC is changed and not the first packet. 4. delay_manager_->Update() may not be always invoked, since the (main_timestamp - timestamp_) >= 0 will not be true when the previous scaled timestamp_ is bigger than the main_timestamp (current RTP timestamp) even if the current RTP timestamp is bigger than the previous RTP timestamp. 5. delay_manager_->Update() parameters are main_timestamp which increments with the RTP sample rate frequency and the fs_hz_ which is the decoder sample rate frequency. When these two frequencies are different as is the case with g.722, the DelayManager::Update() will misfire and calculate incorrect packet_len_ms and inter-arrival time (IAT) as a result. This in effect will cause neteq to enter kPreemptiveExpand operation and will keep expanding the jitter buffer even if the RTP packets arrive with no jitter at all. The fix corrects all these problems by making sure the main_timestamp and the timestamp_ are always set with the scaled timestamp and increment with the decoder sample rate frequency. Review-Url: https://codereview.webrtc.org/2743063005 Cr-Commit-Position: refs/heads/master@{#17232} |
||
---|---|---|
build_overrides | ||
data | ||
infra | ||
resources | ||
tools-webrtc | ||
webrtc | ||
.clang-format | ||
.git-blame-ignore-revs | ||
.gitignore | ||
.gn | ||
AUTHORS | ||
BUILD.gn | ||
check_root_dir.py | ||
cleanup_links.py | ||
codereview.settings | ||
DEPS | ||
LICENSE | ||
license_template.txt | ||
LICENSE_THIRD_PARTY | ||
OWNERS | ||
PATENTS | ||
PRESUBMIT.py | ||
pylintrc | ||
README.md | ||
WATCHLISTS |
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