408 Commits

Author SHA1 Message Date
kjellander
bac0412e7f GN: Add system_wrappers_unittests, tools and tools_unittests
BUG=webrtc:5949
TESTED=Built and ran the tests on Mac.
NOTRY=True

Review-Url: https://codereview.webrtc.org/2025343002
Cr-Commit-Position: refs/heads/master@{#13007}
2016-06-02 09:18:57 +00:00
henrika
521f7a8db7 Moves ownership of OpenSL engine object to Android audio manager with the goal of adding support for OpenSL ES based audio capture.
BUG=webrtc:5925

Review-Url: https://codereview.webrtc.org/2019223004
Cr-Commit-Position: refs/heads/master@{#12975}
2016-05-31 14:03:26 +00:00
kjellander
080a1e3fa6 Fix iOS GN build and cleanup system_wrappers
Compile fixes for GN on iOS that finally gets our bots green.

Changes to system_wrappers:
* Updated to only use inclusive sources for maintainability
* Add a few missing GN headers.
* Cleanup GYP hack for atomic32_mac.cc
* Renamed changes sources to avoid problems with GYP/GN file
   suffix rules:
  - atomic32_mac.cc -> atomic32_darwin.cc
  - atomic32_posix.cc -> atomic32_non_darwin_unix.cc
See https://code.google.com/p/chromium/codesearch#chromium/src/build/config/BUILDCONFIG.gn&l=325
for details on which extensions can/cannot be used.

BUG=webrtc:5586
NOTRY=True

Review-Url: https://codereview.webrtc.org/1999723002
Cr-Commit-Position: refs/heads/master@{#12897}
2016-05-25 18:37:17 +00:00
henrika
1f0ad1085d Adds support for detection of pro-audio support on Android.
A new API is added which enables detection of support of pro-audio on
Android. This is part of a larger change and the new API is not used yet.
Most likely it will only be used for logging purposes.

BUG=webrtc:5925

Review-Url: https://codereview.webrtc.org/2015483002
Cr-Commit-Position: refs/heads/master@{#12890}
2016-05-25 12:15:19 +00:00
sakal
c00687ff5d Add an option to disable built-in AEC to AppRTC Android Demo
BUG=webrtc:5923

Review-Url: https://codereview.webrtc.org/2002093002
Cr-Commit-Position: refs/heads/master@{#12885}
2016-05-25 07:09:50 +00:00
kwiberg
fd8be3468a Remove webrtc/base/scoped_ptr.h
This is a re-land of https://codereview.webrtc.org/1942823002

TBR=tommi@webrtc.org
BUG=webrtc:5520

Review-Url: https://codereview.webrtc.org/1966423002
Cr-Commit-Position: refs/heads/master@{#12750}
2016-05-15 02:44:18 +00:00
kwiberg
6ab3db249b Revert of Remove webrtc/base/scoped_ptr.h (patchset #3 id:100001 of https://codereview.webrtc.org/1942823002/ )
Reason for revert:
Breaks user code. Said code needs to stop using scoped_ptr!

Original issue's description:
> Remove webrtc/base/scoped_ptr.h
>
> BUG=webrtc:5520
>
> NOTRY=True
>
> Committed: https://crrev.com/65fc62e9dd8a8716db625aaef76ab92f542ecc5a
> Cr-Commit-Position: refs/heads/master@{#12684}

TBR=tommi@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5520

Review-Url: https://codereview.webrtc.org/1965063003
Cr-Commit-Position: refs/heads/master@{#12686}
2016-05-11 12:07:33 +00:00
kwiberg
65fc62e9dd Remove webrtc/base/scoped_ptr.h
BUG=webrtc:5520

NOTRY=True

Review-Url: https://codereview.webrtc.org/1942823002
Cr-Commit-Position: refs/heads/master@{#12684}
2016-05-11 11:29:38 +00:00
Niels Möller
d28db7fd65 Delete all use of tick_util.h.
Depends on Chrome cl https://codereview.chromium.org/1888003002/, which was landed some time ago.

BUG=webrtc:5740
R=stefan@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12674}
2016-05-10 14:31:58 +00:00
tkchin
d251196d37 Provide isAudioEnabled flag to control audio unit.
- Also removes async invoker usage in favor of thread posting

BUG=

Review-Url: https://codereview.webrtc.org/1945563003
Cr-Commit-Position: refs/heads/master@{#12651}
2016-05-07 01:54:21 +00:00
Peter Boström
4adbbcfe7a Move ADM Create() method to public interface.
ADMs were previously created by CreateAudioDeviceModule which was
removed in previous refactoring without a replacement added.

BUG=
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12613}
2016-05-03 19:51:31 +00:00
henrika
7d4a6c3208 Adds timeout for audio record thread in Java layer
BUG=b/28448866
R=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12590}
2016-05-02 09:01:02 +00:00
tkchin
9eeb6240c9 Build dynamic iOS SDK.
- Places most ObjC code into webrtc/sdk/objc instead.
- New gyp targets to build, strip and export symbols for dylib.
- Removes old script used to generate dylib.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#12524}
2016-04-27 08:54:27 +00:00
kwiberg
1c7fdd86eb Remove calls to ScopedToUnique and UniqueToScoped
They're just no-ops now, and will soon go away.

BUG=webrtc:5520

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

Cr-Commit-Position: refs/heads/master@{#12510}
2016-04-26 15:18:13 +00:00
tkchin
efdd930dc9 Fix RTCAudioSession crash in removeDelegate.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#12320}
2016-04-11 19:01:06 +00:00
Peter Boström
dda52b9c3e Add performance tracing to AudioDevice inits.
Adds tracing to AudioDeviceModuleImpl::InitRecording and
AudioDeviceModuleImpl::StartRecording to visualize that they are a
significant part of startup time in performance recordings.

BUG=webrtc:5723
R=henrika@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12315}
2016-04-11 14:04:42 +00:00
henrika
9d7e8dd44e Adds Moto G 3rd Generation to HW AEC blacklist
BUG=b/27447146

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

Cr-Commit-Position: refs/heads/master@{#12278}
2016-04-07 11:56:08 +00:00
kjellander
95177d1e71 GN: Fix some build errors for iOS.
With these changes, the only problem seem to be the missing jpeg
library. See https://codereview.chromium.org/1806503002/ for more details on that.

BUG=webrtc:5195, webrtc:5748
NOTRY=True

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

Cr-Commit-Position: refs/heads/master@{#12273}
2016-04-07 07:14:06 +00:00
henrika
ef38b564ea Improves error handling for playout initialization on Android.
We no longer crash when initialization fails.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#12241}
2016-04-05 14:20:35 +00:00
solenberg
bc37fc8418 Add mock AudioDeviceModule.
BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#12220}
2016-04-04 16:54:52 +00:00
Tze Kwang Chin
307a0922c5 Support delayed AudioUnit initialization.
Applications can choose to decide when to give up control of the
AVAudioSession to WebRTC. Otherwise, behavior should be
unchanged.

Adds a toggle to AppRTCDemo so developers can see the different
paths.

BUG=
R=haysc@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12080}
2016-03-21 20:58:01 +00:00
Peter Boström
1d1944187f Replace RefCountImpl with rtc::RefCountedObject.
Removes code duplication and use of the dangerous public destructor in
RefCountImpl.

Also making wider use of scoped_refptr and fixing various leaks in the
process.

BUG=webrtc:5229
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12075}
2016-03-21 15:44:41 +00:00
Zeke Chin
1300caa3fe Refactor AudioUnit code into its own class.
BUG=
R=haysc@webrtc.org, henrika@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12056}
2016-03-18 21:39:22 +00:00
kjellander@webrtc.org
94a23f04af Reland "Add check_deps rules in DEPS files."
Relanding https://codereview.webrtc.org/1796413002/
without the change to the openmax_dl include path
(which broke downstream code).

TBR=tommi@webrtc.org
BUG=webrtc:5623
TESTED=Passing runs using:
buildtools/checkdeps/checkdeps.py --root=. talk
buildtools/checkdeps/checkdeps.py --root=. webrtc

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

Cr-Commit-Position: refs/heads/master@{#12031}
2016-03-17 11:05:50 +00:00
kjellander
56cf60e717 Revert of Add check_deps rules in DEPS files. (patchset #2 id:60001 of https://codereview.webrtc.org/1796413002/ )
Reason for revert:
The openmax_dl include change breaks downstream projects.

Original issue's description:
> Add check_deps rules in DEPS files.
>
> Add fine-grained check_deps rules for all of WebRTC.
> This will help both maintaining sane dependencies and provides a way
> to visualize dependency graphs using the buildtools/checkdeps/graphdeps.py script.
>
> Example:
> buildtools/checkdeps/graphdeps.py --root=. --format=png \
> --out=./webrtc.png --incl='^webrtc/modules/bitrate_controller->' \
> --excl='chromium|base|external|testing|webrtc/test|\.h$|\.cc$'
>
> will produce a neat webrtc.png image showcasing the dependencies
> (according to the DEPS file) for the bitrate_controller module.
> Some dependencies are filtered out for readability.
>
> BUG=webrtc:5623
> TESTED=Passing runs using:
> buildtools/checkdeps/checkdeps.py --root=. talk
> buildtools/checkdeps/checkdeps.py --root=. webrtc
>
> R=tommi@webrtc.org
>
> Committed: https://crrev.com/086f851b7b9b4bcbd4fe507c3bf83b760bd7f4d9
> Cr-Commit-Position: refs/heads/master@{#12008}

TBR=tommi@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5623

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

Cr-Commit-Position: refs/heads/master@{#12009}
2016-03-16 00:41:04 +00:00
kjellander@webrtc.org
086f851b7b Add check_deps rules in DEPS files.
Add fine-grained check_deps rules for all of WebRTC.
This will help both maintaining sane dependencies and provides a way
to visualize dependency graphs using the buildtools/checkdeps/graphdeps.py script.

Example:
buildtools/checkdeps/graphdeps.py --root=. --format=png \
--out=./webrtc.png --incl='^webrtc/modules/bitrate_controller->' \
--excl='chromium|base|external|testing|webrtc/test|\.h$|\.cc$'

will produce a neat webrtc.png image showcasing the dependencies
(according to the DEPS file) for the bitrate_controller module.
Some dependencies are filtered out for readability.

BUG=webrtc:5623
TESTED=Passing runs using:
buildtools/checkdeps/checkdeps.py --root=. talk
buildtools/checkdeps/checkdeps.py --root=. webrtc

R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12008}
2016-03-16 00:22:53 +00:00
tkchin
e54467f73e Use RTCAudioSessionDelegateAdapter in AudioDeviceIOS.
Part 3 of refactor. Also:
- better weak pointer delegate storage + tests
- we now ignore route changes when we're interrupted
- fixed bug where preferred sample rate wasn't set if audio session
   wasn't active

BUG=

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

Cr-Commit-Position: refs/heads/master@{#12007}
2016-03-15 23:54:11 +00:00
tkchin
9f987d3200 Refactor AVAudioSession intialization code.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#11972}
2016-03-13 04:06:34 +00:00
tkchin
0ce3bf9cc4 Fix lock behavior on RTCAudioSession.
In addition:
- Introduces RTCAudioSessionTest
- iOS/Mac gtests now have an autoreleasepool
- Moves ScopedAutoreleasePool to rtc_base_approved
- Introduces route change button in AppRTCDemo

BUG=webrtc:5649

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

Cr-Commit-Position: refs/heads/master@{#11971}
2016-03-13 00:52:13 +00:00
henrika
ab12c47160 Modifies SDK and iOS detection for helper method that needs iOS 9+
BUG=NONE
R=tkchin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11861}
2016-03-03 16:00:00 +00:00
Alex Glaznev
4aee2a928f Add android specific audio mute function.
R=henrika@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11849}
2016-03-02 21:02:11 +00:00
pbos
a26ac925f7 Reland of move ignored return code from modules. (patchset #1 id:1 of https://codereview.webrtc.org/1736663004/ )
Reason for revert:
Revert breaks other uses, a fix will be rolled into Chromium instead.

Original issue's description:
> Revert of Remove ignored return code from modules. (patchset #3 id:40001 of https://codereview.webrtc.org/1703833002/ )
>
> Reason for revert:
> Breaks Chromium.
>
> Original issue's description:
> > Remove ignored return code from modules.
> >
> > ModuleProcessImpl doesn't act on return codes and having them around is
> > confusing (it's unclear what an error return code here would do even).
> >
> > BUG=
> > R=tommi@webrtc.org
> >
> > Committed: f14c47a58c
>
> TBR=tommi@webrtc.org,pbos@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=
>
> Committed: https://crrev.com/da33a8a2a22f6d19ba2a8cce963beafbdbaa8fd8
> Cr-Commit-Position: refs/heads/master@{#11761}

TBR=tommi@webrtc.org,torbjorng@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#11762}
2016-02-25 12:50:09 +00:00
torbjorng
da33a8a2a2 Revert of Remove ignored return code from modules. (patchset #3 id:40001 of https://codereview.webrtc.org/1703833002/ )
Reason for revert:
Breaks Chromium.

Original issue's description:
> Remove ignored return code from modules.
>
> ModuleProcessImpl doesn't act on return codes and having them around is
> confusing (it's unclear what an error return code here would do even).
>
> BUG=
> R=tommi@webrtc.org
>
> Committed: f14c47a58c

TBR=tommi@webrtc.org,pbos@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#11761}
2016-02-25 12:34:12 +00:00
Peter Boström
f14c47a58c Remove ignored return code from modules.
ModuleProcessImpl doesn't act on return codes and having them around is
confusing (it's unclear what an error return code here would do even).

BUG=
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11747}
2016-02-24 15:51:23 +00:00
henrika
3e60bf0ff3 Adds low complexity audio mode for single core CPUs
BUG=webrtc:5538
R=tkchin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11743}
2016-02-24 13:27:22 +00:00
kwiberg
f01633e667 Replace scoped_ptr with unique_ptr in webrtc/modules/audio_device/
BUG=webrtc:5520

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

Cr-Commit-Position: refs/heads/master@{#11740}
2016-02-24 13:00:45 +00:00
Zeke Chin
b3fb71c101 Add RTCAudioSession proxy class.
BUG=
R=haysc@webrtc.org, henrika@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11676}
2016-02-18 23:44:17 +00:00
henrika
e78765bd4b Removes Nexus 5 from AEC and NS blacklists
BUG=b/27086464
R=tina.legrand@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11605}
2016-02-12 15:33:44 +00:00
kjellander
3c85cad1d4 Roll chromium_revision 7a4fb8d..f527e86 (370025:370073)
Change log: 7a4fb8d..f527e86
Full diff: 7a4fb8d..f527e86

No dependencies changed.

Clang was updated 255169:257953.
Details: 7a4fb8d..f527e86/tools/clang/scripts/update.py

NOTRY=True
NOPRESUBMIT=True

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

Cr-Commit-Position: refs/heads/master@{#11301}
2016-01-19 12:47:24 +00:00
Peter Kasting
6955870806 Convert channel counts to size_t.
IIRC, this was originally requested by ajm during review of the other size_t conversions I did over the past year, and I agreed it made sense, but wanted to do it separately since those changes were already gargantuan.

BUG=chromium:81439
TEST=none
R=henrik.lundin@webrtc.org, henrika@webrtc.org, kjellander@webrtc.org, minyue@webrtc.org, perkj@webrtc.org, solenberg@webrtc.org, stefan@webrtc.org, tina.legrand@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11229}
2016-01-13 00:26:55 +00:00
andrew
2bc63a1dd3 clang-format audio_device/mac.
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#11212}
2016-01-11 23:59:25 +00:00
pkasting
25702cb162 Misc. small cleanups.
* Better param names
* Avoid using negative values for (bogus) placeholder channel counts (mostly in tests).  Since channels will be changing to size_t, negative values will be illegal; it's sufficient to use 0 in these cases.
* Use arraysize()
* Use size_t for counting frames, samples, blocks, buffers, and bytes -- most of these are already size_t in most places, this just fixes some stragglers
* reinterpret_cast<int64_t>(void*) is not necessarily safe; use uintptr_t instead
* Remove unnecessary code, e.g. dead code, needlessly long/repetitive code, or function overrides that exactly match the base definition
* Fix indenting
* Use uint32_t for timestamps (matching how it's already a uint32_t in most places)
* Spelling
* RTC_CHECK_EQ(expected, actual)
* Rewrap
* Use .empty()
* Be more pedantic about matching int/int32_t/
* Remove pointless consts on input parameters to functions
* Add missing sanity checks

All this was found in the course of constructing https://codereview.webrtc.org/1316523002/ , and is being landed separately first.

BUG=none
TEST=none

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

Cr-Commit-Position: refs/heads/master@{#11191}
2016-01-08 21:50:32 +00:00
andrew
ec80f03b3c Check the mic volume only periodically on Mac.
Ask the OS for the mic volume every 1 second rather than with every 10
ms chunk. The previous behavior was consuming ~2% of the CPU load of
a voice engine call, and is now negligible.

This is consistent with the webrtc Windows Core Audio implementation,
as well as the Chromium Mac implementation:
https://code.google.com/p/chromium/codesearch#chromium/src/media/audio/agc_audio_stream.h

TEST=voe_cmd_test with AGC continues to work well on Mac.

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

Cr-Commit-Position: refs/heads/master@{#11182}
2016-01-08 09:16:25 +00:00
kjellander
a2b1e03c66 Disable AudioDeviceAPITest.MicrophoneVolumeTests on Linux.
NOTRY=True
BUG=webrtc:5414
TBR=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11178}
2016-01-08 07:26:11 +00:00
A.Brauckmann
bedc17be5c Fixing integer underflow in FileAudioDevice (webrtc issue 4554)
Problem is described here:
https://code.google.com/p/webrtc/issues/detail?id=4554

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

Cr-Commit-Position: refs/heads/master@{#11174}
2016-01-07 20:38:36 +00:00
henrika
30166cb1a8 iOS stability improvement for device switching, including BT devices
BUG=webrtc:5058

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

Cr-Commit-Position: refs/heads/master@{#11168}
2016-01-07 15:23:08 +00:00
henrika
46ea3ce580 AudioDeviceTest.StartPlayoutOnTwoInstances now verifies two active playing streams
TBR=tkchin_webrtc
BUG=b/25343768

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

Cr-Commit-Position: refs/heads/master@{#11165}
2016-01-07 14:03:07 +00:00
kjellander
a46a4c92d0 Roll chromium_revision 2a70cb1..4662d4f (367468:368042)
I had to fix the audio_device BUILD.gn which was forgotten back
in https://codereview.webrtc.org/1536923003. It also contained a few
missing source files and one library.

Change log: 2a70cb1..4662d4f
Full diff: 2a70cb1..4662d4f

Changed dependencies:
* src/buildtools: 6d0c448..0f8e6e4
* src/third_party/libsrtp: 8a7662a..ebfcc9a
DEPS diff: 2a70cb1..4662d4f/DEPS

No update to Clang.

TBR=henrika@webrtc.org
NOTRY=True

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

Cr-Commit-Position: refs/heads/master@{#11162}
2016-01-07 10:54:28 +00:00
kjellander
6c6510afad audio_device: Move sources into platform-conditions.
This should solve a problem discovered when converting from GYP to
other project formats, where the source files weren't included correctly
for each platform.

Two other targets in WebRTC have similar source files, which are correctly
generated for each platform:
* video_render_module_internal_impl
* video_capture_module_internal_impl
They both list the sources as it's changed to in this CL.

NOTRY=True

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

Cr-Commit-Position: refs/heads/master@{#11083}
2015-12-18 12:33:34 +00:00
kwiberg
0eb15ed7b8 Don't call the Pass methods of rtc::Buffer, rtc::scoped_ptr, and rtc::ScopedVector
We can now use std::move instead!

This CL leaves the Pass methods in place; a follow-up CL will add deprecation annotations to them.

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

Cr-Commit-Position: refs/heads/master@{#11064}
2015-12-17 11:04:24 +00:00