42 Commits

Author SHA1 Message Date
kjellander@webrtc.org
f21ea918ad GN: Add common configs to all targets.
This is needed to ensure we have the same build with GN
as with GYP, since GYP includes the common.gypi on a global level.
Several fixes has been needed in the past because some code have
been built without the right defines.

BUG=3441
R=brettw@chromium.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7317 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-28 17:37:22 +00:00
pbos@webrtc.org
38344ed280 Move thread_annotations.h to webrtc/base/.
R=andresp@webrtc.org, mflodman@webrtc.org
BUG=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7283 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-24 06:05:00 +00:00
kjellander@webrtc.org
b96ea2aab5 Remove former team members from OWNERS and WATCHLISTS
Remove the following (CCed) former team members from all
OWNERS files and the WATCHLISTS file:
* fischman@
* leozwang@
* mikhal@
* pwestin@
* wu@

BUG=
R=henrike@webrtc.org, niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6973 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-26 06:12:08 +00:00
kjellander@webrtc.org
42ee5b54b5 GN: Disable Chromium clang plugins for standalone build.
Now that WebRTC has rolled the chromium_revision past
http://crrev.com/284372 in r6784, clang has become the
default compiler. Since WebRTC standalone code doesn't
yet compile the Chromium Clang plugins enabled, this CL
disables them for the parts of the code that doesn't yet pass
compilation with them enabled.

The buildbots are using Goma which is not yet switched
over to Clang by default. That's why they're not red yet.

BUG=163
TEST=Passing compile locally on Linux using:
gn gen out/Debug --args="build_with_chromium=false is_debug=true" && ninja
-C out/Debug
gn gen out/Release --args="build_with_chromium=false is_debug=false" && ninja
-C out/Release
gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" arm_version=7" && ninja -C out/Default

R=brettw@chromium.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6966 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-25 14:15:35 +00:00
stefan@webrtc.org
89fd1e8e99 Improvements to the pacer where it lost some budget due to truncation errors.
With this CL the resolution is increased to microseconds and proper rounding
is done in the Process() function. This means that we will be allowed to send
more than prior to r6664 as we previously truncated away parts of our budget.

We will also not lose budget due to inaccurate calculations in
TimeUntilNextProcess(), which was a regression in r6664.

BUG=cr/393950
TEST=out/Debug/webrtc_perf_tests --gtest_filter=RampUpTest.Simulcast
R=pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6694 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-15 16:40:38 +00:00
stefan@webrtc.org
168f23faa5 Move pacer to fully use webrtc::Clock instead of webrtc::TickTime.
This required rewriting the send-side delay stats api to be callback based, as otherwise the SuspendBelowMinBitrate test started flaking much more frequently since it had lock order inversion problems.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6664 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-11 13:44:02 +00:00
pbos@webrtc.org
03c817e405 Fix pacer to accept duplicate sequence numbers on different SSRCs.
BUG=3550
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6610 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-07 10:20:35 +00:00
stefan@webrtc.org
bee164a214 Fix test issues and a win compile error introduced with r6605.
Also changes the name of a variable which has been hijacked by windef.h (included by windows.h), which forces #define near and #define far upon us. This issue was introduced via the following inclusion chain:
bwe_test_framework_unittest.cc includes
  paced_sender.h
    tick_util.h
      windows.h
        windef.h

And causes EXPECT_NEAR(foo, bar, near); to expand to EXPECT_NEAR(foo, bar,); generating a very confusing compile error.

R=pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6606 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-04 17:00:06 +00:00
stefan@webrtc.org
875ad49dee Revert conversion from TickTime to int64_t in paced sender.
Introduced with r6600, causing flakes in SuspendBelowMinBitrate. The reason for this flake is currently unknown.

R=pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6605 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-04 15:27:55 +00:00
stefan@webrtc.org
88e0dda475 Introduces PacedVideoSender to test framework and moves the Pacer to use Clock.
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6600 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-04 09:20:42 +00:00
kjellander@webrtc.org
1227ab89a7 GN: Add BUILD.gn files + kjellander to OWNERS
This should work as a foundation for all the work that is
left to do to make the parts of WebRTC that Chromium uses
to build with GN.

I implemented some the smaller modules myself in this CL.
The remaining work (TODO's in the .gn files) will be distributed
to various team members.

I'm adding myself to OWNERS files for BUILD.gn files in all the
directories where I'm adding a BUILD.gn file.

BUG=3441
TEST=
Successful compilation of WebRTC as standalone:
gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default
gn gen out/Default --args="build_with_chromium=false is_clang=true clang_use_chrome_plugins=false" && ninja -C out/Default

I built successfully from a Chromium checkout (with
https://codereview.chromium.org/321313006/ applied) using:
gn gen out/Default && ninja -C out/Default webrtc

R=brettw@chromium.org, niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6523 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-23 19:21:07 +00:00
stefan@webrtc.org
cb254aac3b Enable pacing by default and remove the option to disable it from the new API.
BUG=1672
R=mflodman@webrtc.org, pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6416 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-12 15:12:25 +00:00
fischman@webrtc.org
2c89b5cb27 Make everyone an OWNER for .gyp/.gypi add/delete purposes, non-talk/ edition.
This CL brought to you by:
$ for d in $(for f in $(git ls-files '*gyp' '*gypi'); do dirname $f; done|sort|uniq|grep -v '^\.$'); do echo -e "\n# These are for the common case of adding or renaming files. If you're doing\n# structural changes, please get a review from a reviewer in this file.\nper-file *.gyp=*\nper-file *.gypi=*" >> $d/OWNERS; done
$ for d in $(for f in $(git ls-files '*gyp' '*gypi'); do dirname $f; done|sort|uniq|grep -v '^\.$'); do git add $d/OWNERS; done

(and then removed the talk/ impact)

R=niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5903 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-14 20:08:03 +00:00
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
elham@webrtc.org
32c3247418 Fix for libtalkmobile build error
bug=b/12549061

R=andresp@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5404 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-21 16:16:58 +00:00
andresp@webrtc.org
7fb75ecbd4 Add thread_annotations for clang targets.
TESTED: As expected clang bots catched a few issues which are fixed with this CL, other bots ignore the annotations and compile fine.

R=niklas.enbom@webrtc.org, phoglund@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5328 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-20 20:20:50 +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
b627f676b3 Fixes a crash in the pacer where it fails to find a normal prio packet if there are no high prio packets, given that the queue has grown too large.
BUG=2682
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5190 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-28 14:00:09 +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
ef2d55461b Increase size of pacer window to 500 ms as that better matches the encoder.
BUG=1812
R=andresp@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5154 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-21 14:37:11 +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
pbos@webrtc.org
04b61790d1 Remove include_dirs from pacing.
BUG=1662
TEST=compile on trybots
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4856 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-26 09:23:31 +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
stefan@webrtc.org
80865fd611 Don't pace out packets or generate padding when the pacer is disabled.
TEST=trybots
R=pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4513 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-09 11:31:23 +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
pbos@webrtc.org
db6e3f8bc5 Fix root-relative includes for pacing/.
BUG=1662
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4329 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-11 09:50:05 +00:00
hclam@chromium.org
6eb53f71d6 Fix memory bot failure
Exit the method with critical setting held. This should make
the memory bot happy.

TBR=pwestin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4251 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-20 23:01:39 +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
8ccb9f9716 Fixes some pacer/padding issues found while testing.
- A bug was introduced in r4234 causing no paced packets to be sent.
- Only update the sequence number counter if a padding packet is actually going to be sent, to avoid packet loss.
- Have all packets go through the pacer if pacing is enabled to avoid reordering.
- Fix race condition on reading capture_time_ms_/timestamp_ in rtp_sender.cc.

BUG=1837
TEST=trybots and vie_auto_test --automated
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4246 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-19 14:13:42 +00:00
kjellander@webrtc.org
6c35e0b0f7 Reorganize test targets in WebRTC
This CL will lower the number of test targets in WebRTC by:

Add common_audio_unittests and merge the following targets into it (copied from http://review.webrtc.org/1584006):
* resampler_unittests
* signal_processing_unittests
* vad_unittests

Merge into modules_unittests:
* bitrate_controller_unittests
* desktop_capture_unittests
* media_file_unittests
* remote_bitrate_estimator_unittests
* rtp_rtcp_unittests
* paced_sender_unittests

Merge into test_support_unittests:
* channel_transport_unittests

channel_transport.gyp was also removed in favor for test.gyp.

I had to remove a main method from rtcp_format_remb_unittest.cc
since it caused the fileutils.h code to not be able to find the
right project root path in ordrer to provide correct paths
to test files.

Buildbot configuration update will be synced with the commit of this CL.

TEST=trybots
BUG=1843
R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4213 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-11 08:29:17 +00:00
stefan@webrtc.org
8ad3ec9722 Fix build error introduced with r4168.
TBR=mflodman@webrtc.org
BUG=1837

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4169 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-04 09:52:46 +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
0f29810288 Fix crash in pacer.
BUG=1731
R=niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3964 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-06 16:37:22 +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
pbos@webrtc.org
6e788df19e Remove vim/emacs modelines from .gypi files
BUG=1655

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3857 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-16 12:40:34 +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
wjia@webrtc.org
a3c82bf667 Remove '<(library)' in gyp files.
This will remove all usage of '<(library)' in all webrtc gyp files. 
Review URL: https://webrtc-codereview.appspot.com/1049005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3392 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-18 23:42:21 +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