Commit Graph

128 Commits

Author SHA1 Message Date
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
c429b824b3 GN: Prepare to remove webrtc_base target
Keep the webrtc_base target temporarily while waiting for
Chromium to pick up this revision. Then we'll update Chromium
and remove the webrtc_base target for real.

This should have been a part of https://code.google.com/p/webrtc/source/detail?r=7140

R=pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8117 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-21 20:22:33 +00:00
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
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
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
556caffb36 GN: Fix build for Mac
BUG=4105
R=henrika@webrtc.org, pbos@webrtc.org, perkj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7961 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-19 13:28:37 +00:00
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
c8bc717905 Fix webrtc gn windows build.
R=kjellander@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7882 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-12 12:10:46 +00:00
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
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
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
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
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
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
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
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
44360200e3 Fix GN for rtc_base_approved target.
In https://webrtc-codereview.appspot.com/22649004
a new target was introduced that duplicated some
source files, breaking the bots in
http://build.chromium.org/p/chromium.webrtc.fyi/waterfall

This updates the GN config to also remove them from
the target where they were moved from in base.gyp.

BUG=3806
TESTED=Trybots + Running GN in a Chromium checkout with
src/third_party/webrtc symlinked to the WebRTC checkout
with this CL applied + passing compile step.

R=perkj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7192 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-16 11:16:12 +00:00
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
6d08ca6379 GN: Prefix WebRTC specific variables with "rtc_"
BUG=3441
TESTED=Trybots + Running GN in a Chromium checkout with
src/third_party/webrtc symlinked to the WebRTC checkout
with this CL applied, both with the default GN settings
and using: --args="os=\"android\" cpu_arch=\"arm\""

R=brettw@chromium.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7095 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-07 17:36:10 +00:00
e281f7fba3 GN: Update webrtc/base to recent GYP changes.
Update the webrtc/base/BUILD.gn file to reflect
webrtc/base/base.gyp changes between r6438 and r7011.

BUG=3441
TESTED= Trybots + compilation with a standalone WebRTC checkout:
gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default
gn gen out/Default --args="build_with_chromium=false is_debug=true" && ninja -C out/Default
gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" is_clang=false" && ninja -C out/Default
gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" arm_version=7 is_clang=false" && ninja -C out/Default

Compilation of Chromium's 'all' target with src/third_party/webrtc
symlinked to the WebRTC checkout with this CL applied, both
with the default GN settings and using
--args="is_debug=false os=\"android\" cpu_arch=\"arm\""

R=brettw@chromium.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7022 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-02 11:22:06 +00:00
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
4a25199b76 GN: Fixes for Chromium builds.
When building WebRTC from a Chromium checkout (i.e. with
https://codereview.chromium.org/321313006/ applied) GN
cannot execute successfully.

This CL fixes:
- include path for video_processing module's SSE2 target.
- NSS/SSL targets

BUG=3441
TEST=
Passing WebRTC GN trybots.
Passing build from a Chromium checkout with https://codereview.chromium.org/321313006 applied and src/third_party/webrtc symlinked to the WebRTC checkout with this CL:
gn gen out/Default --args="clang_use_chrome_plugins=false" && ninja -C out/Default
gn gen out/Default --args="os=\"android\" cpu_arch=\"arm\"  clang_use_chrome_plugins=false" && ninja -C out/Default

R=brettw@chromium.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6921 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-18 17:56:28 +00:00
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
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
62711f8227 GN: Fix build by disabling compiler warning in base.
It seems like it is not possible to disabled the -Wall
warnings that are enabled in build/config/compiler/BUILD.gn
with -Wno-all.

According to the documentation at
https://code.google.com/p/chromium/wiki/GNCookbook
the proper way is to disable the chromium_code config instead.

System wrappers also needed some minor fixes for Android.

TBR=henrike@webrtc.org
BUG=3441
TEST=Passing our GN trybots.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6561 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-29 13:37:08 +00:00
7497fa74e4 GN: Refactor base/BUILD.gn and fix dbus-glib error.
Refactor webrtc/base/BUILD.gn to not have any subtracted
source entries.

Also fix an error in webrtc/BUILD.gn that occurs when running
on Chormium trybots as a part of enabling WebRTC for GN in
https://codereview.chromium.org/321313006/
The error is that pkg-config for dbus-glib fails. Workaround
this by putting the pkg-config entry within the proper condition.

BUG=webrtc: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, henrike@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6560 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-28 18:05:22 +00:00
78f440c5e7 GN: BUILD.gn for system_wrappers
Also cleaned up some unneeded stuff from webrtc/base/BUILD.gn

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
TBR=niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6515 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-21 14:25:16 +00:00
851a09e71a Initial GN work for WebRTC
This CL makes it possible to build the 'webrtc_base'
target using GN.
The majority of our GYP stuff in webrtc/build/common.gypi has been
translated into the configs of webrtc/BUILD.gn.
The webrtc/base/base.gyp file is translated into webrtc/base/BUILD.gn.

This CL depends on https://codereview.chromium.org/322373002/ for the
jsoncpp BUILD.gn file and the ssl config.
To build inside Chromium, https://codereview.chromium.org/321313006/
needs to be landed first.

BUG=webrtc: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" && ninja -C out/Default
I also ran:
gn gen out/Default --args="build_with_chromium=false have_dbus_glib=true"
but it fails to compile: something is probably wrong with with pkg-config for that.

For Chromium, I symlinked src/third_party/webrtc to the webrtc subfolder of the
WebRTC checkout and applied the following patches:
https://codereview.chromium.org/322373002 (for jsoncpp and ssl config)
https://codereview.chromium.org/321313006 (enable building WebRTC)
Then I built successfully using:
gn gen out/Default && ninja -C out/Default webrtc_base

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6461 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-17 08:54:03 +00:00