81 Commits

Author SHA1 Message Date
stefan
2328a94ec7 Add average rtt to CallStatsObserver and an average rtt histogram.
TBR=mflodman@webrtc.org

BUG=webrtc:4711,webrtc:4548

Review URL: https://codereview.webrtc.org/1279543005

Cr-Commit-Position: refs/heads/master@{#9687}
2015-08-07 11:27:56 +00:00
sprang
867fb5224e Add support for transport wide sequence numbers
Also refactor packet router to use a map rather than iterate over all
rtp modules for each packet sent.

BUG=webrtc:4311

Review URL: https://codereview.webrtc.org/1247293002

Cr-Commit-Position: refs/heads/master@{#9670}
2015-08-03 11:38:48 +00:00
Cesar Magalhaes
2386a45dc7 Supporting Pause/Resume, Sending Estimate logging. Corrected plot colors
PacketSender can now log Pause/Resume events into a MetricRecorder. Solved estimate error and optimal bitrate issue for test 5.7 (multiple short TCP flows).

Added Sending Estimate logging and plotting.

Fixed plotting issue on plot_dynamics.py
Now lines with the same color (in different boxes) correspond to the same flow.

Adjusting plot_dynamics.py font size according to number of variables.

R=asapersson@webrtc.org

Review URL: https://codereview.webrtc.org/1270543002 .

Cr-Commit-Position: refs/heads/master@{#9664}
2015-07-31 08:31:44 +00:00
Cesar Magalhaes
e2cb1f12c3 Efficient Metric Recorder
Computing all metrics using constant extra memory.
PlotHistogram methods are executed in constant time.
-- Previously throughput and delay were using O(num_packets) extra memory and their associated PlotHistograms took linear time complexity.

Added MetricRecorder unittests

R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1257683006 .

Cr-Commit-Position: refs/heads/master@{#9658}
2015-07-30 09:22:15 +00:00
Cesar Magalhaes
d55ce2ddb9 BWE Simulation Framework: Standard plot logging
-- Made plot logging from MetricRecorder and from RateCounterFilter/PacketReceiver standard to fit python and shell plotting scripts likewise.

-- RateCounterFilter is initialized with algorithm name.
-- Removed spare commas and duplicated flow ids from RateCounterFilter name.
-- Added optional plot_delay and plot_loss in MetricRecorder.
-- PacketReceiver can plot directly plot delay if there is no metric_recorder_.
-- Added comments to plot scripts.

R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1253473004 .

Cr-Commit-Position: refs/heads/master@{#9636}
2015-07-25 23:45:05 +00:00
Cesar Magalhaes
59adf34d84 Evaluation test cases.
Implemented according to:
http://datatracker.ietf.org/doc/draft-ietf-rmcat-eval-test/

Added tests 5.1 - 5.8.
Added GccComparison functions.
Modified SelfFairness test.

R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1237393002 .

Cr-Commit-Position: refs/heads/master@{#9623}
2015-07-23 13:40:49 +00:00
Cesar Magalhaes
f24b2bc48c Modified histogram shell plot script, added python dynamics plot script
Supports:

- bwe_plot.sh
---- Histogram plots
---- Baseline histograms
---- Vertical error lines
---- Dashed horizontal lines
---- Different colors for different algorithms
---- Legends read as input
---- Extra horizontal space in case there are TCP flows plotted
---- Multiple windows
---- Auto vertical scale, except for latency plots which are kept constant for all plots

- plot_dynamics.py
---- Dynamic plots
---- Different colors for different flows and algorithms
---- Dashed line plot for available capacity
---- Throughput, latency and loss on separated boxes

R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1237903003 .

Cr-Commit-Position: refs/heads/master@{#9614}
2015-07-22 15:41:14 +00:00
Cesar Magalhaes
496019c596 If the array size is even, the median should be average of its two middlemost elements.
NADA unittests updated accordingly.

BUG=webrtc:4550
R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1246083006 .

Cr-Commit-Position: refs/heads/master@{#9607}
2015-07-22 09:30:36 +00:00
Cesar Magalhaes
fb19f49c14 Replaced uint32_t with standard uint16_t for sequence_number variables.
R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1232373004 .

Cr-Commit-Position: refs/heads/master@{#9588}
2015-07-15 17:52:18 +00:00
Cesar Magalhaes
bf40b42af5 Modified Simulation Framework Jitter Model.
Using a right-sided (absolute value), truncated gaussian distribution originally with zero mean.

Currently truncated at x = 3 * std_dev.

Added expected value computation.

Modified jitter unittests accordingly.

BUG=webrtc:4848
R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1237303002 .

Cr-Commit-Position: refs/heads/master@{#9587}
2015-07-15 17:47:22 +00:00
Cesar Magalhaes
9c261f2d13 Supports logging for dynamic and histogram plots on Simulation Framework.
---- Dynamic receiving rate.
---- Dynamic packet-loss.
---- Dynamic objective function.
---- Dynamic available capacity.
---- Dynamic available capacity per flow.
---- Average delay Histogram with standard deviation or 5th/95th percentiles.
---- Average bitrate Histogram with error bars.
---- Optimal average bitrate dashed line.
---- Average packet-loss Histogram.
---- Total objective function Histogram.

Added media Pause/Resume methods to Video and TcpSender.
Modified LinkedSet: computing GlobalPacketLossRatio even if packet's sequence_number overflows.
Added small randomization to frame send times, modified bwe_test_framework_unittest accordingly.
Taking offset time into account for plotting.

Added nada_unittests.
Added bwe_unittests.
Added a RateCounter to BweReceiver (replaced ReceivingRate)
Added LossAccount.

Fixed NadaBweReceiver issue: using sender_timestamp instead of creation_time.
Fixed memory leaks.
Fixed int division rounding issues.

Supporting plots on bandwidth Estimators:
Logging received packet information on on SubClassesBweReceiver::ReceivePacket
Updating RateCounter, updating packet loss account and relieving LinkedSet when necessary.

R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1202253003 .

Cr-Commit-Position: refs/heads/master@{#9585}
2015-07-15 14:31:27 +00:00
stefan
870eee4b17 Fix simulator issue where chokes didn't apply to non-congested packets.
Review URL: https://codereview.webrtc.org/1235143002

Cr-Commit-Position: refs/heads/master@{#9575}
2015-07-14 10:54:04 +00:00
stefan
45d1fdee9d Revert of Fix simulator issue where chokes didn't apply to non-congested packets. (patchset #2 id:20001 of https://codereview.webrtc.org/1233853002/)
Reason for revert:
Breaks bots.

Original issue's description:
> Fix simulator issue where chokes didn't apply to non-congested packets.
>
> R=magalhaesc@google.com
>
> Committed: 662ae00efa

TBR=magalhaesc@webrtc.org,magalhaesc@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.webrtc.org/1230383003

Cr-Commit-Position: refs/heads/master@{#9571}
2015-07-13 15:37:56 +00:00
Stefan Holmer
662ae00efa Fix simulator issue where chokes didn't apply to non-congested packets.
R=magalhaesc@google.com

Review URL: https://codereview.webrtc.org/1233853002 .

Cr-Commit-Position: refs/heads/master@{#9570}
2015-07-13 15:32:36 +00:00
pbos
bb36fdf95f Remove empty-string comparisons.
Use .empty() and !.empty() in favor of == "" or != "".

BUG=
R=tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1228913003

Cr-Commit-Position: refs/heads/master@{#9559}
2015-07-09 14:48:27 +00:00
stefan
c62642c7a6 Make the BWE threshold adaptive.
This improves self-fairness and competing for resources with TCP flows.

BUG=4711

Review URL: https://codereview.webrtc.org/1151603008

Cr-Commit-Position: refs/heads/master@{#9545}
2015-07-07 11:20:40 +00:00
Erik Språng
468e62a974 Remove MimdRateControl and factories for RemoteBitrateEstimor.
BUG=
R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1208083002.

Cr-Commit-Position: refs/heads/master@{#9541}
2015-07-06 08:51:01 +00:00
Stefan Holmer
ff4ea9310e Only use paced packets for estimating bitrate probes.
BUG=4778
R=mflodman@webrtc.org, solenberg@webrtc.org

Review URL: https://codereview.webrtc.org/1188823007.

Cr-Commit-Position: refs/heads/master@{#9463}
2015-06-18 14:01:43 +00:00
Cesar Magalhaes
61715ecf24 Fixed issue from previous commit, CL 56459004.
BUG=4550
R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1168783002

Cr-Commit-Position: refs/heads/master@{#9393}
2015-06-08 11:59:44 +00:00
Cesar Magalhaes
77cabab51a Enabling Packet-Loss plots for BweReceiver.
Packet-loss computation and plot were added to BweReceiver class.

Objective function and plot were added to PacketReceiver class.

BUG=4550
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9391}
2015-06-08 09:29:21 +00:00
Stefan Holmer
0908d0dcf2 Fix issue with RTT computations in simulator.
R=magalhaesc@google.com

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

Cr-Commit-Position: refs/heads/master@{#9343}
2015-06-01 08:20:33 +00:00
Cesar Magalhaes
f69f1fbc98 Testing and improving NADA algorithm.
A modified operation mode was added, holding:
--- Stricter conditions for AcceleratedRampUp.
--- Smoother GradualRateUpdate adjustments.
--- New AcceleratedRampDown update mode.
This mode reduces significantly the delay for bitrates around its minimum bound.

Several NADA unittests and a few simulations were added.

Fixed LinkedSet bug.
Fixed IsNewerSequenceNumber/IsNewerTimestamp bug.

BUG=4550
R=stefan@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9340}
2015-05-30 15:49:32 +00:00
Stefan Holmer
53d0dc3f06 Wire up RTT to send-side GCC and TCP.
BUG=4548
R=magalhaesc@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9151}
2015-05-07 13:04:29 +00:00
Cesar Magalhaes
c81591d63f NADA's proposal from Cisco.
The implementation of this proposal is in progress.
More unittest will be added.
Sender side is being implemented.
Some constants need to be tuned.

BUG=4550
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9146}
2015-05-06 20:29:09 +00:00
Stefan Holmer
dea11f9c43 Add per flow throughput and delay metrics.
BUG=4548
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9112}
2015-04-29 12:27:38 +00:00
Stefan Holmer
bcbcd84888 Improve TCP implementation by adding ssthresh and make it possible to start it with an offset.
Add a propagation delay to tests and make the run-time configurable for the fairness tests.

Handle losses in-between feedback messages.

BUG=4549
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9099}
2015-04-28 12:38:31 +00:00
Stefan Holmer
ac69016b0f Improve TCP by adding a real timeout to in flight packets.
Note that the timeout should depend on the smoothed RTT, but for now is hard coded to 1000 ms.

This solves issues where a full cwnd gets lost.

R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9051}
2015-04-22 11:11:28 +00:00
Stefan Holmer
95702246d7 Fix broken perf prints.
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9042}
2015-04-21 13:44:01 +00:00
Stefan Holmer
5f92051f06 Fix bug in TCP implementation (simulations).
The problem was that only ACKed packets were subtracted from in_flight_, but lost packets were never removed, which caused TCP to stop sending eventually.

R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9041}
2015-04-21 12:48:07 +00:00
Stefan Holmer
a51e8f490c Fix some simulation issues.
Don't default to an infinite queue.
Make sure the computation of missing packets is correct.

R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9028}
2015-04-17 13:48:58 +00:00
Stefan Holmer
1d19893f3a Add TCP fairness test.
BUG=4548
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9026}
2015-04-17 12:54:34 +00:00
Stefan Holmer
d4e80146e3 Fix build errors in r9022 / 09bdc1e5f5a9.
Implicit casts detected by Win64 Release.

TBR=pbos@webrtc.org

BUG=4548

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

Cr-Commit-Position: refs/heads/master@{#9023}
2015-04-16 18:35:32 +00:00
Stefan Holmer
09bdc1e5f5 Add a BWE fairness test.
Also moves the BWE perf tests to webrtc_perf_tests for tracking.

BUG=4548
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9022}
2015-04-16 18:20:26 +00:00
Stefan Holmer
3795937920 Adds a simplified Reno-type TCP sender.
BUG=4559
R=sprang@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9021}
2015-04-16 17:55:38 +00:00
Stefan Holmer
dcbd3acbef Improve BWE plotting and logging to make it possible to use multiple windows/figures.
Also adds plotting of the BWE threshold and offset.

R=solenberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8968}
2015-04-10 08:35:33 +00:00
stefan@webrtc.org
4346d92578 Use SendTimeHistory to keep track of send times in simulations.
Use SendTimeHistory to keep track of send times in simulations.
Keep piggybacking send time in PacketInfo for now but use history in
order to be more in line with what we expect to do.

Landing this for sprang@. Original CL: https://review.webrtc.org/43559004/

TBR=sprang@webrtc.org
BUG=4308

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

Cr-Commit-Position: refs/heads/master@{#8778}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8778 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-18 13:42:48 +00:00
kjellander@webrtc.org
14665ff7d4 Roll chromium_revision e144d30..6fdb142 (318658:318841) + remove OVERRIDE macro
Clang version changed 223108:230914
Details: e144d30..6fdb142/tools/clang/scripts/update.sh

Removes the OVERRIDE macro defined in:
* webrtc/base/common.h
* webrtc/typedefs.h

The majority of the source changes were done by running this in src/:
perl -0pi -e "s/virtual\s([^({;]*(\([^({;]*\)[^({;]*))(OVERRIDE|override)/\1override/sg" `find {talk,webrtc} -name "*.h"  -o -name "*.cc*" -o -name "*.mm*"`

which converted all:
virtual Foo() OVERRIDE
functions to:
Foo() override

Then I manually edited:
* talk/media/webrtc/fakewebrtccommon.h
* webrtc/test/fake_common.h

Remaining uses of OVERRIDE was fixed by search+replace.

Manual edits were done to fix virtual destructors that were
overriding inherited ones.

Finally a build error related to the pure virtual definitions of
Read, Write and Rewind in common_types.h required a bit of
refactoring in:
* webrtc/common_types.cc
* webrtc/common_types.h
* webrtc/system_wrappers/interface/file_wrapper.h
* webrtc/system_wrappers/source/file_impl.cc

This roll should make it possible for us to finally re-enable deadlock
detection for TSan on the buildbots.

BUG=4106
R=pbos@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8596}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8596 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-04 13:04:54 +00:00
stefan@webrtc.org
792f1a14e2 Break out allocation from BitrateController into a BitrateAllocator.
This also refactors some of the padding and allocation code in ViEEncoder, and
makes ChannelGroup a simple forwarder from BitrateController to
BitrateAllocator.

This CL is part of a bigger picture, see https://review.webrtc.org/35319004/ for
details.

BUG=4323
R=mflodman@webrtc.org, pbos@webrtc.org, sprang@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8595}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8595 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-04 12:25:17 +00:00
kwiberg@webrtc.org
00b8f6b364 Use base/scoped_ptr.h; system_wrappers/interface/scoped_ptr.h is going away
BUG=
R=andrew@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8517}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8517 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-26 14:43:50 +00:00
sprang@webrtc.org
db8e605c16 Break out BWE test models to separate files
BUG=
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8471}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8471 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-24 13:24:56 +00:00
stefan@webrtc.org
7663684258 Implement the Nada rmcat proposal within the simulation framework.
This first CL focuses only on the bandwidth estimation parts of NADA, and doesn't contain the rate smoothing. It is still missing slow start functionality.

https://datatracker.ietf.org/doc/draft-zhu-rmcat-nada/

BUG=
R=sprang@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8395}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8395 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-17 16:04:17 +00:00
stefan@webrtc.org
e9f0f591b5 Enable bitrate probing by default in PacedSender.
BUG=crbug:425925
R=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8379}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8379 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-16 15:48:29 +00:00
stefan@webrtc.org
14b0279416 Break out code from bloated files in the BWE simulator.
No changes to functionality.

BUG=4173
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8374}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8374 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-16 12:03:19 +00:00
stefan@webrtc.org
56cb0ea99c Add support for bi-directional simulations by having both an uplink and a downlink.
Partially make PacketReceiver a source which should be possible to hook up to the network.

Require that flow ids are set in all constructors.

BUG=4173
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8367}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8367 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-13 15:46:52 +00:00
stefan@webrtc.org
027e113209 Introduce PacketReceiver and remove configuration of simulations via the BweTestConfig.
This makes it possible to build more flexible simulations, and makes it easier to implement bi-directional simulations. This also removes support for generating baseline files and comparing against a baseline, which hasn't turned out to be particuarly useful.

BUG=4173
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8311}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8311 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-10 09:49:00 +00:00
stefan@webrtc.org
d6e25a5b27 Revert r8297 "Introduce PacketReceiver and remove configuration of simulations via the BweTestConfig."
BUG=4173
R=andresp@webrtc.org
TBR=andresp@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8298}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8298 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-09 15:06:42 +00:00
stefan@webrtc.org
03c1c103e4 Introduce PacketReceiver and remove configuration of simulations via the BweTestConfig.
This makes it possible to build more flexible simulations, and makes it easier to implement bi-directional simulations. This also removes support for generating baseline files and comparing against a baseline, which hasn't turned out to be particuarly useful.

BUG=4173
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8297}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8297 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-09 14:47:15 +00:00
stefan@webrtc.org
10a9e924eb Fix delete of stack allocated object causing test crashes.
Introduced in r8264.

BUG=4173
R=bjornv@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8266}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8266 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-06 13:00:26 +00:00
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
stefan@webrtc.org
946ad76f7e Switched lists of packets to lists of packet pointers. Allows Packet polymorphism.
This allows for different packet types in a follow-up CL, so that feedback can be passed through the network instead being fed directly into senders. It also made the whole simulator faster.

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

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

Cr-Commit-Position: refs/heads/master@{#8227}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8227 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-02 14:51:45 +00:00