No description
Find a file
dkirovbroadsoft e851a9a763 Fixed problems in neteq when RTP and decoder timestamps increment with
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}
2017-03-14 17:00:27 +00:00
build_overrides Moving sanitizers from build/ to base/ 2017-01-25 07:04:51 +00:00
data WebRTC: Replace ProjectRootPath by ResourcePath 2016-11-22 18:43:05 +00:00
infra Infra CQ config: remove deprecated target_ref. 2017-01-26 08:43:12 +00:00
resources Sample audio files for the APM quality assessment toolbox 2017-02-23 11:24:45 +00:00
tools-webrtc Add flag to clean up temporary results after building iOS Framework or static lib 2017-03-14 10:12:35 +00:00
webrtc Fixed problems in neteq when RTP and decoder timestamps increment with 2017-03-14 17:00:27 +00:00
.clang-format Android: Update clang-format to follow Google style guide 2016-09-26 18:47:53 +00:00
.git-blame-ignore-revs Create .git-blame-ignore-revs and add Java format CL to it. 2016-10-20 09:20:39 +00:00
.gitignore Add PESQ precompiled tool for audio quality testing 2017-03-06 10:23:34 +00:00
.gn Enable GN check for webrtc/logging 2017-03-08 10:12:11 +00:00
AUTHORS Fix iOS8 crash in background mode. 2017-03-07 00:42:19 +00:00
BUILD.gn Reland of Moving webrtc.gni up one level from build/ (patchset #1 id:1 of https://codereview.webrtc.org/2657563002/ ) 2017-01-24 14:58:22 +00:00
check_root_dir.py Remove root_dir variable from DEPS + enforce rename. 2014-10-09 09:11:27 +00:00
cleanup_links.py Revert of PyLint fixes for tools-webrtc and webrtc/tools (patchset #3 id:40001 of https://codereview.webrtc.org/2736233003/ ) 2017-03-09 14:09:33 +00:00
codereview.settings Move to Chromium's Rietveld at codereview.webrtc.org 2015-06-04 07:07:42 +00:00
DEPS Roll chromium_revision bf959238eb..ea42323d26 (456678:456712) 2017-03-14 16:10:14 +00:00
LICENSE Updated license path in LICENSE and LICENSE_THIRD_PARTY. 2012-11-22 12:06:21 +00:00
license_template.txt Update template to follow chromium copyright style 2013-04-24 01:01:28 +00:00
LICENSE_THIRD_PARTY Delete talk directory, and references from build_ios_libs.sh. 2016-09-02 10:07:13 +00:00
OWNERS OWNERS: Cleanup root owners file 2017-03-09 10:04:57 +00:00
PATENTS PATENTS: fix reference 2017-01-20 20:45:07 +00:00
PRESUBMIT.py Reland of Enable cpplint and fix cpplint errors in webrtc/*audio (patchset #1 id:1 of https://codereview.webrtc.org/2739143002/ ) 2017-03-09 14:25:06 +00:00
pylintrc PRESUBMIT: Improve PyLint check and add GN format check. 2015-05-25 10:55:50 +00:00
README.md Add README.md to root directory 2015-09-11 09:04:09 +00:00
WATCHLISTS alessiob@webrtc.org added to the WATCHLIST file 2017-02-27 13:31:38 +00:00

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