190 Commits

Author SHA1 Message Date
kwiberg@webrtc.org
67186fe00c Fix clang style warnings in webrtc/base
Mostly this consists of marking functions with override when
applicable, and moving function bodies from .h to .cc files.

Not inlining virtual functions with simple bodies such as

  { return false; }

strikes me as probably losing more in readability than we gain in
binary size and compilation time, but I guess it's just like any other
case where enabling a generally good warning forces us to write
slightly worse code in a couple of places.

BUG=163
R=kjellander@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8656}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8656 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-09 22:24:25 +00:00
kwiberg@webrtc.org
ac2d27d9ae Fix style violations in common_types.h and config.h
Mostly, it's about moving constructors and descructors to the .cc
files, so that they won't be inlined everywhere.

The reason this CL is so big is that a lot of code was using
common_types.h without declaring a dependency on webrtc_common, which
broke the build once common_types.h started to depend on
common_types.cc.

BUG=163
R=kjellander@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8516}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8516 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-26 14:01:28 +00:00
tommi@webrtc.org
4c0fd965ce Move rtc::Event to rtc_base_approved. We need an event implementation in WebRTC that allows us to specify whether it's manually reset or automatically. EventWrapper currently doesn't support it and it adds a heap allocation + vtable, so rtc::Event is the lighter of the two.
I'm also tidying rtc::Event up a bit. Removing member variable that's not needed on all platforms and moving the mutex itself up in the member list given the recent alignment scare on Mac.

R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8292}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8292 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-09 10:23:39 +00:00
pbos@webrtc.org
8cf9bdb3fa Remove USE_WEBRTC_DEV_BRANCH.
talk/ and webrtc/ are hosted in the same repository and it no longer
makes sense to support building talk/ without the corresponding webrtc/
catalog.

R=bjornv@webrtc.org, juberti@webrtc.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#8291}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8291 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-09 10:17:12 +00:00
tommi@webrtc.org
fe19699a20 Revert 8260 "Base RWLockWrapper on rtc::SharedExclusiveLock."
Unfortunately this caused channel teardown to hang.
More details in email(s).

> Base RWLockWrapper on rtc::SharedExclusiveLock.
>
> Also moves rtc::Event and rtc::SharedExclusiveLock to rtc_base_approved.
>
> R=tommi@webrtc.org
> BUG=
>
> Review URL: https://webrtc-codereview.appspot.com/38889004

TBR=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8284}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8284 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-07 22:36:19 +00:00
pbos@webrtc.org
75025434bf Base RWLockWrapper on rtc::SharedExclusiveLock.
Also moves rtc::Event and rtc::SharedExclusiveLock to rtc_base_approved.

R=tommi@webrtc.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#8260}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8260 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-06 08:33:15 +00:00
pkasting@chromium.org
e7a4a12f83 Add arraysize() macro from Chromium, and make use of it in a few places.
This not only shortens some test code, it makes it more robust against changing
the lengths of the arrays later and forgetting to update the length constants
(which bit me).

BUG=none
TEST=none
R=hta@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8191}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8191 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-28 21:37:13 +00:00
kjellander@webrtc.org
d7e34e1086 Make it easier to use external libyuv + cleanup GYP files.
It is now easier to use an external libyuv library.
Fix some GYP errors.
Remove the temporary webrtc_base target (depends on
https://codereview.chromium.org/865603002/ being landed
first).

BUG=4185
R=andresp@webrtc.org, andrew@webrtc.org, perkj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8154 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-26 19:17:26 +00:00
tommi@webrtc.org
04cd466bd5 Move ThreadChecker into rtc_base_approved.
To do this, I'm removing ThreadChecker's dependency on the 'Thread' class, so that the checker works with any thread and doesn't rely on TLS.
Also simplifying CriticalSection's implementation on Windows since a critical section on Windows already knows what thread currently owns the lock.

BUG=
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8151 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-26 15:27:29 +00:00
kwiberg@webrtc.org
2ebfac5649 Remove COMPILE_ASSERT and use static_assert everywhere
COMPILE_ASSERT is no longer needed now that we have C++11's
static_assert.

R=aluebs@webrtc.org, andrew@webrtc.org, hellner@chromium.org, henrike@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8058 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-14 10:51:54 +00:00
kwiberg@webrtc.org
af9d56f38c Unify the two copies of template_util.h
This patch basically deletes webrtc/base/template_util.h (which is the
more outdated copy, although there are only cosmetical differences)
and moves webrtc/system_wrappers/source/template_util.h to take its
place.

The reunified header uses the rtc namespace like the old
webrtc/base/template_util.h, rather than the webrtc namespace like
webrtc/system_wrappers/source/template_util.h.

R=aluebs@webrtc.org, andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8050 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-13 20:32:04 +00:00
kwiberg@webrtc.org
3df38b442f Unify the two copies of compile_assert.h
This patch basically deletes webrtc/base/compile_assert.h (which is
the more outdated copy) and moves
webrtc/system_wrappers/source/compile_assert.h to take its place.

R=aluebs@webrtc.org, andrew@webrtc.org, tommi@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8048 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-13 11:37:48 +00:00
andrew@webrtc.org
0ab42bc3f6 Make safe_conversions suitable for rtc_base_approved.
Since we want to use checked_cast in WavReader.

R=kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7937 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-17 22:56:09 +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
henrike@webrtc.org
33a0e2d7ef Only configure the SSL library in one place.
Build settings now use use_openssl in both Chromium and standalone builds. It
moves all the platform-specific SSL-related build checks to be conditioned on
this flag as appropriate.

This is to avoid colliding with Chromium's transition away from NSS.

This is a fixup of https://webrtc-codereview.appspot.com/29559004 to avoid
breaking use_legacy_ssl_defaults.

BUG=chromium:413497
R=henrike@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7537 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-27 18:13:40 +00:00
xians@webrtc.org
e46bc77e94 Reland 28629004: adding new AEC dump start interface for chrome.
This is required because we are not allow to pass CRT objects across dll boundaries, that says, when we pass a file descriptor from chrome dll to libpeerconnection dll, the file descriptor will become invalid immediate, more information can be found here:
http://msdn.microsoft.com/en-us/library/ms235460.aspx

R=andresp@webrtc.org, andrew@webrtc.org, bjornv@webrtc.org, henrike@webrtc.org, henrikg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7418 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-10 08:36:56 +00:00
pbos@webrtc.org
77d5a57e5c Revert "Only configure the SSL library in one place."
This reverts commit r7378, which broke Windows compile targets
elsewhere.

R=kjellander@webrtc.org
TBR=henrike@webrtc.org
BUG=chromium:413497

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7384 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-07 11:43:03 +00:00
henrike@webrtc.org
8234fa6f0e Only configure the SSL library in one place.
Build settings now use use_openssl in both Chromium and standalone builds. It
moves all the platform-specific SSL-related build checks to be conditioned on
this flag as appropriate.

This is to avoid colliding with Chromium's transition away from NSS.

BUG=chromium:413497
R=henrike@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7378 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-06 22:30:46 +00:00
pthatcher@webrtc.org
5d0071fb1f Build one of NSS or BoringSSL but not both.
The libraries have some common symbols. When both are linked I observed NSS
SHA1_Update called followed by BoringSSL SHA1_Final, which results in a
segfault. We should only link one of these.

Based off of https://review.webrtc.org/25689004/

BUG=3855
R=pthatcher@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7310 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-26 18:53:40 +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
andrew@webrtc.org
6ae5a6d7fe Add a target for the approved subset of rtc_base.
rtc_base drags in a bunch of unwieldly dependencies (e.g. nss and
json) not required for standalone webrtc (aka rtc/media). The root of
the problem appears to be that MessageQueue depends on a socket server.
(And since common.h -> logging.h -> thread.h -> messagequeue.h, this
dependency spreads quickly.)

This starts a new target for a "purified" subset of rtc_base. It adds
the files which are already being used, replacing the use of common.h
with checks.h. desktop_capture is a lost cause, and retains its
dependency on the full rtc_base.

The hope is that as additional components are desired they will be
cleaned and added to rtc_base_approved.

BUG=3806
R=andresp@webrtc.org, henrike@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7188 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-16 01:03:29 +00:00
henrike@webrtc.org
c3c9015bc6 linux: remove stray libcrypto dependency
Followup to CL 20049004, which looks like it added an unneeded -lcrypto
on linux.

BUG=3625
R=henrike@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7168 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-12 16:11:38 +00:00
kjellander@webrtc.org
665d861115 Restore webrtc_base target until r7140 is rolled into Chromium.
In r7140 the webrtc_base target was renamed to rtc_base. This
breaks our FYI bots for rolling WebRTC in Chromium's DEPS.
By re-adding a None target named webrtc_base, this transition
should be smoother.

TBR=henrikg@webrtc.org,
TESTED=Passed build/gyp_chromium on a Chromium checkout with src/third_party/webrtc replaced by a mount like this:
cd /path/to/chromium/src
sudo mount --bind /path/to/webrtc/trunk/webrtc third_party/webrtc

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7150 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-11 09:22:13 +00:00
tpsiaki@google.com
67eabc0938 Add schannel webrtc_base build using a new use_schannel gyp variable.
R=henrike@webrtc.org, thorcarpenter@google.com

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7141 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-10 18:06:47 +00:00
henrike@webrtc.org
b2efb6771c Put base tests in webrtc_tests.gyp
BUG=N/A
R=andrew@webrtc.org, pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7140 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-10 17:28:19 +00:00
henrike@webrtc.org
66a3582170 Create a copy of talk/sound under webrtc/sound.
BUG=3379
R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6986 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-26 22:04:04 +00:00
henrike@webrtc.org
fb1eb43377 Rename linuxwindowpicker to x11windowpicker & only use it with use_x11
These days we have Linux chromium builds that don't use X11. We don't
want webrtc to add an X11 dependency to those builds.

BUG=3625
R=henrike@webrtc.org, tnakamura@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6909 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-15 14:44:13 +00:00
henrike@webrtc.org
6ac22e6b47 Remove more dependencies on openssl, add dependency on boringssl. Continues on r6798
R=andrew@webrtc.org, fbarchard@chromium.org, kjellander@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6867 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-11 21:06:30 +00:00
henrike@webrtc.org
3763b9bda0 webrtc/base: removes linkage of crypto
BUG=
R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6853 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-07 21:26:18 +00:00
minyue@webrtc.org
74aaf29a0f Raw packet loss rate reported by RTP_RTCP module may vary too drastically over time. This CL is to add a filter to the value in VoE before lending it to audio coding module.
The filter is an exponential filter borrowed from video coding module.

The method is written in a new class called PacketLossProtector (not sure if the name is nice), which can be used in the future for more sophisticated logic.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6709 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-16 21:28:26 +00:00
henrike@webrtc.org
5f2c81c17f webrtc/base: Fixes miss in base.gyp for windows. See https://code.google.com/p/webrtc/source/browse/trunk/talk/libjingle.gyp?r=6503#764 for the corresponding condition.
BUG=3379
R=wu@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6615 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-07 17:42:45 +00:00
henrike@webrtc.org
4ddcc40d32 pkg-config-wrapper should not be run when build_nss is disabled (=0).
BUG=b/15411893
R=wu@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6538 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-25 20:14:13 +00:00
henrike@webrtc.org
a685c9df62 base: Renaming + conforming: post commit review changes for https://webrtc-codereview.appspot.com/17699005/
BUG=N/A
R=niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6467 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-17 14:48:44 +00:00
henrike@webrtc.org
9f36c087f1 Makes it possible to prevent some third party libraries (jsoncpp and openssl) from being linked. This makes it possible to link webrtc with external implementations of those libraries in case the project depending on webrtc requires another version of those libraries.
BUG=3379
R=wu@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6455 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-16 21:35:20 +00:00
henrik.lundin@webrtc.org
1e3c5c248a Importing ThreadChecker class from Chromium
The ThreadChecker class is imported/re-implemented from Chromium.
The implementation is changed to depend on WebRTC primitives.

R=andrew@webrtc.org, henrike@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6446 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-16 11:34:44 +00:00
kjellander@webrtc.org
2bae3211b1 Add missing sources to webrtc/base/base.gyp
During my work on setting up a GN build for
WebRTC, I discovered that the base.gyp is trying
to remove source files (for the Chromium build)
that are not added in the initial set.
I assume these files should be listed and that
GYP just doesn't complain when it's trying to
remove a file that is not present in the sources
list.

natserver_main.cc is also removed, since it's not used anywhere.

There are also a couple of other header files that are
used in other code that probably also should be listed in
base.gyp (please do this in another CL):
* compile_assert.h
* dscp.h
* move.h
* template_util.h

BUG=None
TEST=Trybots passing clobber compile step.
R=henrike@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6438 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-16 07:11:19 +00:00
tkchin@webrtc.org
7ca1edb31d Remove IOKit linkage from iOS builds.
IOKit has been removed in iOS7, so link fails. iOS build succeeds after removing this setting and the corresponding one in talk/libjingle.gyp. Presubmit script tells me that CLs aren't allowed to touch both talk/ and webrtc/ at the same time so doing this separately.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6191 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-19 21:05:10 +00:00
henrike@webrtc.org
f048872e91 Adds a modified copy of talk/base to webrtc/base. It is the first step in
migrating talk/base to webrtc/base.

BUG=N/A
R=niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6129 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-13 18:00:26 +00:00
perkj@webrtc.org
e9a604accd Revert 6107 "Adds a modified copy of talk/base to webrtc/base. I..."
This breaks Chromium FYI builds and prevent roll of webrtc/libjingle to Chrome.

http://chromegw.corp.google.com/i/chromium.webrtc.fyi/builders/Win%20Builder/builds/457


> Adds a modified copy of talk/base to webrtc/base. It is the first step in migrating talk/base to webrtc/base.
> 
> BUG=N/A
> R=andrew@webrtc.org, wu@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/12199004

TBR=henrike@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6116 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-13 08:15:48 +00:00
henrike@webrtc.org
2c7d1b39b9 Adds a modified copy of talk/base to webrtc/base. It is the first step in migrating talk/base to webrtc/base.
BUG=N/A
R=andrew@webrtc.org, wu@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6107 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-12 18:03:09 +00:00