26 Commits

Author SHA1 Message Date
stefan@webrtc.org
fb609a1f57 Wire up new feedback format by introducing a FeedbackPacket type.
The new format instantiates the RemoteBitrateEstimator at the send-side and feeds back all packet arrival timestamps and sequence numbers to the sender, where inter-arrival deltas are calculated.

Next step will be to make feedback packets part of regular packets and send them over the network. This also requires bi-directional simulations.

BUG=4173
R=mflodman@webrtc.org, sprang@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/37109004

Cr-Commit-Position: refs/heads/master@{#8264}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8264 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-06 12:21:21 +00:00
pkasting@chromium.org
0b1534c52e Use int64_t for milliseconds more often, primarily for TimeUntilNextProcess.
This fixes a variety of MSVC warnings about value truncations when implicitly
storing the 64-bit values we get back from e.g. TimeTicks in 32-bit objects, and
removes the need for a number of explicit casts.

This also moves a number of constants so they're declared right where they're used, which is easier to read and maintain, and makes some of them of integral type rather than using the "enum hack".

BUG=chromium:81439
TEST=none
R=tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/33649004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7905 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-15 22:09:40 +00:00
pkasting@chromium.org
4591fbd09f Use size_t more consistently for packet/payload lengths.
See design doc at https://docs.google.com/a/chromium.org/document/d/1I6nmE9D_BmCY-IoV6MDPY2V6WYpEI-dg2apWXTfZyUI/edit?usp=sharing for more information.

This CL was reviewed and approved in pieces in the following CLs:
https://webrtc-codereview.appspot.com/24209004/
https://webrtc-codereview.appspot.com/24229004/
https://webrtc-codereview.appspot.com/24259004/
https://webrtc-codereview.appspot.com/25109004/
https://webrtc-codereview.appspot.com/26099004/
https://webrtc-codereview.appspot.com/27069004/
https://webrtc-codereview.appspot.com/27969004/
https://webrtc-codereview.appspot.com/27989004/
https://webrtc-codereview.appspot.com/29009004/
https://webrtc-codereview.appspot.com/30929004/
https://webrtc-codereview.appspot.com/30939004/
https://webrtc-codereview.appspot.com/31999004/
Committing as TBR to the original reviewers.

BUG=chromium:81439
TEST=none
TBR=pthatcher,henrik.lundin,tina.legrand,stefan,tkchin,glaznev,kjellander,perkj,mflodman,henrika,asapersson,niklas.enbom

Review URL: https://webrtc-codereview.appspot.com/23129004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7726 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-20 22:28:14 +00:00
stefan@webrtc.org
5779ca478d Fixes a potential BWE clock mismatch bug.
Since libjingle provides a packet arrival timestamp to webrtc, and the clock in remote bitrate estimator and the clock used for packet arrival timestamp can be different. This can cause the bandwidth estimator to malfunction.

This CL changes the remote bitrate estimator so that packet arrival timestamps never are compared to the time taken from the internal clock.

BUG=3527
R=mflodman@webrtc.org, pbos@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/20789004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6571 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-01 12:14:49 +00:00
wu@webrtc.org
66773a032a Move timestamp_extrapolator and rtp_to_ntp to system wrapper so that it can be shared by both audio and video engine.
BUG=3111
TEST=try bots
R=mflodman@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/13459004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6074 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-07 17:09:44 +00:00
wu@webrtc.org
cd70119a10 Calculate local/remote clock delta and capture ntp timestamp in receiver's timebase.
BUG=3111
TEST=new performance tests
R=niklas.enbom@webrtc.org, stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/11689004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5976 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-24 22:10:24 +00:00
stefan@webrtc.org
af839b28b0 Add AIMD option to BWE API.
TEST=trybots
R=mflodman@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/10319005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5755 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-24 09:42:08 +00:00
jiayl@webrtc.org
de782180b0 Change the type of propagation delta from int64 to int.
The delta value never exceeds the range of int. Changing it to int will save memory and copying cost.

BUG=2910
R=tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/8549004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5537 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-12 19:19:23 +00:00
jiayl@webrtc.org
1f64f06784 Add stats of incoming frame delays for debugging bandwidth estimation.
BUG=crbug/338380
R=stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/8119004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5519 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-10 19:12:14 +00:00
henrik.lundin@webrtc.org
e9abd591d7 Making RemoteRateControl::min_configured_bit_rate_ configurable
The minimum bitrate can now be configured from WrappingBitrateEstimator.

BUG=2698
R=stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/5699004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5279 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-13 08:42:42 +00:00
solenberg@webrtc.org
8215106371 Framework for testing bandwidth estimation.
BUG=
R=mflodman@webrtc.org, stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2317004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5008 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-21 14:23:26 +00:00
pbos@webrtc.org
d900e8bea8 Proper spacing for end-of-namespace comments.
BUG=
R=mflodman@webrtc.org, tina.legrand@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1760006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4293 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-03 15:12:26 +00:00
solenberg@webrtc.org
91811e2b04 Remove unused multi stream bandwidth estimator.
BUG=
R=mflodman@webrtc.org, stefan@webrtc.org, tina.legrand@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1712004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4264 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-25 20:36:14 +00:00
stefan@webrtc.org
de98478965 Update the remote bitrate estimator before passing the packet to the RTP module.
This solves the problem of reconstructed packets biasing the bandwidth estimate.

TEST=vie_auto_test --automated, trybots
R=mflodman@webrtc.org, solenberg@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1594005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4171 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-04 12:15:40 +00:00
solenberg@webrtc.org
a6db54d4c9 - Created RemoteBitrateEstimator wrapper for use internally in (ViE) ChannelGroup.
- Changed implementation of SetReceiveAbsoluteSendTimeStatus API so the RBE instance is changed when at least one channel in a group has the extension enabled.

BUG=
R=mflodman@webrtc.org, stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1553005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4113 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-27 16:02:56 +00:00
pbos@webrtc.org
47ce120efb Include files from webrtc/.. paths in remote_bitrate_estimator/
BUG=1662
R=stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1552004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4108 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-27 12:41:33 +00:00
solenberg@webrtc.org
561990fd73 - Changed RemoteBitrateEstimator::IncomingPacket() to include a const WebRtcRTPHeader& and remove ssrc, rtp_timestamp.
- Changed RemoteBitrateObserver::OnReceivedBitrateChanged() to use a const & instead of non-const *, to avoid unnecessary copying.
- Refactored RemoteBitrateEstimatorTest so it can be instantiated for both single and multi stream BWE (first using a parameterized test, but then as a standard test fixture and a few helper functions).
- Refactored some tests in RemoteBitrateEstimatorTest into a common function CapacityDropTestHelper().

BUG=
R=andresp@webrtc.org, mflodman@webrtc.org, stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1521004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4086 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-22 19:04:19 +00:00
andresp@webrtc.org
29b2219914 Adding a factory to remote bitrate estimator and allow it to be set via config.
Additionally:
 - clean api to set remote bitrate estimator mode.
 - clean api to set over use detector options.

R=mflodman@webrtc.org, stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1448006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4027 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-14 12:10:58 +00:00
mikhal@webrtc.org
a73d52ca52 revert r3871
TBR= solenberg@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1331004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3872 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-18 20:26:28 +00:00
solenberg@webrtc.org
9756017717 - Replace the BWE_MIN and BWE_MAX macros with std::min and std::max
- Add 'virtual' to a bunch of overridden methods of RemoteBitrateEstimatorMultiStream and RemoteBitrateEstimatorSingleStream.

BUG=

Review URL: https://webrtc-codereview.appspot.com/1324005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3871 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-18 19:12:42 +00:00
pbos@webrtc.org
ff7e1303e8 WebRtc_Word32 => int32_t remote_bitrate_estimator/
BUG=314

Review URL: https://webrtc-codereview.appspot.com/1275009

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3775 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-08 10:04:37 +00:00
fischman@webrtc.org
aea96d36e3 Rename webrtc::StatsObserver to webrtc::CallStatsObserver
to avoid ODR violations with peerconnectioninterface.h in libjingle.

Conflict introduced in
https://webrtc-codereview.appspot.com/1060005/diff/14010/webrtc/modules/interface/module_common_types.h#newcode326

TEST=none
BUG=none

Review URL: https://webrtc-codereview.appspot.com/1105011

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3540 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-19 22:09:36 +00:00
stefan@webrtc.org
b586507986 Break out RemoteBitrateEstimator from RtpRtcp module and make RemoteBitrateEstimator::Process trigger new REMB messages.
Also make sure RTT is computed independently of whether it's time to send RTCP messages or not.

BUG=1298

Review URL: https://webrtc-codereview.appspot.com/1060005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3455 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-01 14:33:42 +00:00
stefan@webrtc.org
4100b0402e Move SSRC list to RemoteBitrateEstimator.
BUG=1105

Review URL: https://webrtc-codereview.appspot.com/965027

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3130 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-11-19 10:09:20 +00:00
stefan@webrtc.org
42aa10eba7 Clarifies the bandwidth estimation interfaces.
BUG=

Review URL: https://webrtc-codereview.appspot.com/965019

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3087 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-11-13 15:02:13 +00:00
andrew@webrtc.org
14b43beb7c Move src/ -> webrtc/
TBR=niklas.enbom@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/915006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2963 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-10-22 18:19:23 +00:00