15 Commits

Author SHA1 Message Date
pbos@webrtc.org
709e29742e Simplify pacer interface.
New interface uses two bitrates (max/min). The pace multiplier is also
removed from the interface and instead utilized outside. Min bitrate
will be filled with padding if there's not enough media to transmit.

Also fixes a bug in minimum transmission bitrate that made it ignore
REMBs. A regression test has been added to catch it.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5723 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-19 10:59:52 +00:00
jiayl@webrtc.org
9fd8d87ff5 Adds APIs for reporting pacer queuing delay.
BUG=2775
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5621 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-27 22:32:40 +00:00
stefan@webrtc.org
dd393e7b9d Measure pacer queue size based on when packets are inserted rather than captured.
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5291 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-13 22:03:27 +00:00
stefan@webrtc.org
19a40ff05b Ensure that no packet stays in the pacer queue for longer than 2 seconds.
BUG=2682
TEST=trybots
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5182 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-27 14:16:20 +00:00
stefan@webrtc.org
9b82f5a6ed Fix for RTX in combination with pacing.
Retransmissions didn't get sent over RTX when pacing was enabled since
the pacer didn't keep track of whether a packet was a retransmit or not.

BUG=1811
TEST=trybots
R=pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5117 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-13 15:29:21 +00:00
stefan@webrtc.org
b2c8a952a7 Improving padding rules and breaking out bw allocation to ViEEncoder.
BUG=1837
TESTS=vie_auto_test --automated, trybots
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4693 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-06 13:58:01 +00:00
pbos@webrtc.org
0193158634 Fix some chromium-style warnings in webrtc/modules/pacing/
BUG=163
R=pwestin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4445 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-31 15:18:19 +00:00
hclam@chromium.org
2e402ce873 Enqueue packet in pacer if sending fails
If a packet cannot be sent while pacer is in use it should be
queued. This avoid packet loss due to congestion.

BUG=1930
R=pwestin@webrtc.org, wu@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4250 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-20 20:18:31 +00:00
stefan@webrtc.org
c3cc375499 Add support for padding in pacer.
This improves pacer-based padding by making sure it limits padding according to:
- Never pad more than 800 kbps.
- Padding + media should not go above a given target bitrate.

Also adds appropriate unittests to make sure we reach the given targets.

BUG=1837
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4168 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-04 09:36:56 +00:00
pwestin@webrtc.org
52b4e8871a Adding trace and changing pacing constants
BUG=1721,1722
R=mikhal@webrtc.org, niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3940 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-02 19:02:17 +00:00
pwestin@webrtc.org
b0061f94b2 Enable Nack pacing.
Review URL: https://webrtc-codereview.appspot.com/1357004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3912 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-27 00:41:08 +00:00
pwestin@webrtc.org
52aa019e98 Avoid adding duplicates in pacer lists.
Review URL: https://webrtc-codereview.appspot.com/1329007

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3899 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-25 17:35:56 +00:00
stefan@webrtc.org
bfacda60be Add interface to signal a network down event.
- In real-time mode encoding will be paused until the network is back up.
- In buffering mode the encoder will keep encoding, and packets will be
  buffered at the sender. When the buffer grows above the target delay
  encoding will be paused.
- Fixes a couple of issues related to pacing which was found with the new test.
- Introduces different max bitrates for pacing and for encoding. This allows
  the pacer to faster get rid of the queue after a network down event.

(Work based on issue 1237004)

BUG=1524
TESTS=trybots,vie_auto_test

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3730 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-03-27 16:36:01 +00:00
pwestin@webrtc.org
db4185664c Introduced pause and resume to the pacer
Review URL: https://webrtc-codereview.appspot.com/1217007

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3717 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-03-22 23:39:29 +00:00
pwestin@webrtc.org
b518017e71 Adding pacing module, will replace the transmission_bucket in the RTP module.
TESTED=unittest
Review URL: https://webrtc-codereview.appspot.com/930015

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3073 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-11-09 20:56:23 +00:00