Commit Graph

426 Commits

Author SHA1 Message Date
c671139ef2 Removing M API call for now to green up downstream.
BUG=None

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

Cr-Commit-Position: refs/heads/master@{#10219}
2015-10-08 13:33:56 +00:00
9359b5b978 Disabling AudioDeviceTest.StartStopPlayout on Android.
BUG=5046
TBR=henrika@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10178}
2015-10-06 07:13:45 +00:00
95cd8ea31a Enable HW NS for N6 to fix HW AEC issue
TBR=magjed
BUG=b/24595150

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

Cr-Commit-Position: refs/heads/master@{#10167}
2015-10-05 11:59:01 +00:00
8c471e7bdf Objective-C++ style guide changes for iOS ADM
BUG=NONE

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

Cr-Commit-Position: refs/heads/master@{#10135}
2015-10-01 14:36:52 +00:00
d417523194 Minor fix for debug logging on Android
BUG=NONE

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

Cr-Commit-Position: refs/heads/master@{#10088}
2015-09-28 11:50:18 +00:00
69984f0533 Fixes logging levels in WebRtcAudioXXX.java classes
BUG=NONE
R=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10082}
2015-09-28 07:24:16 +00:00
d6d27e7340 Update isolate.gypi to support Swarming + move .isolate files
This updates the isolate.gypi copies we have to maintain in our
code repo to Chromium's revision 310ea93.
The changes about generating .isolated.gen.json files are needed
to support running with Swarming (https://www.chromium.org/developers/testing/isolated-testing)

Since isolated testing is now using a new launch script
in tools: isolate_driver.py, that's added to our links
script.

In order to use isolate_driver.py, the .isolate files must be in the
same directory as the test_name_run target is defined, which meant
I had to move around some of the isolate files and targets below
webrtc/modules.

BUG=497757
R=maruel@chromium.org
TBR=henrik.lundin@webrtc.org, mflodman@webrtc.org, niklas.enbom@webrtc.org
TESTED=Clobbered trybots:
git cl try -c --bot=linux_compile_rel --bot=mac_compile_rel --bot=win_compile_rel --bot=android_compile_rel --bot=ios_rel -m tryserver.webrtc

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

Cr-Commit-Position: refs/heads/master@{#10081}
2015-09-25 20:19:21 +00:00
a323fd66de Removes Nexus 6 from OpenSL ES blacklist.
BUG=b/1370703002
R=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10077}
2015-09-25 14:25:40 +00:00
82e20554cb Modifies invalid DCHECK in AudioRecordJni::OnCacheDirectBufferAddress()
Ensures that we can restart audio recording on Android without hitting
a DCHECK. Also adds a symmetric design for the playout side.

BUG=webrtc:5000
TEST=modules_unittests --gtest_filter=AudioDevice*

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

Cr-Commit-Position: refs/heads/master@{#10072}
2015-09-25 11:26:19 +00:00
8a88dd271e Stability improvement for audio recording on Android
BUG=NONE
R=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10056}
2015-09-24 14:45:14 +00:00
9236bb1e08 Minor fix for improving logging of supported platform effects
BUG=NONE
R=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10053}
2015-09-24 13:58:46 +00:00
c14f5ff60f Improving support for Android Audio Effects in WebRTC.
Now also supports AGC and NS effects and adds the possibility
to override default settings.

R=magjed@webrtc.org, pbos@webrtc.org, sophiechang@chromium.org
TBR=perkj
BUG=NONE

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

Cr-Commit-Position: refs/heads/master@{#10030}
2015-09-23 12:09:40 +00:00
48c46dbad2 Reduces default sample rate from 44.1kHz to 16kHz to ensure
that we can open up audio in communication mode also on older
devices that only supports it in combination with 16kHz.

BUG=webrtc:4756
R=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9971}
2015-09-17 14:00:05 +00:00
91d6edef35 Add RTC_ prefix to (D)CHECKs and related macros.
We must remove dependency on Chromium, i.e. we can't use Chromium's base/logging.h. That means we need to define these macros in WebRTC also when doing Chromium builds. And this causes redefinition.

Alternative solutions:
* Check if we already have defined e.g. CHECK, and don't define them in that case. This makes us depend on include order in Chromium, which is not acceptable.
* Don't allow using the macros in WebRTC headers. Error prone since if someone adds it there by mistake it may compile fine, but later break if a header in added or order is changed in Chromium. That will be confusing and hard to enforce.
* Ensure that headers that are included by an embedder don't include our macros. This would require some heavy refactoring to be maintainable and enforcable.
* Changes in Chromium for this is obviously not an option.

BUG=chromium:468375
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#9964}
2015-09-17 07:24:51 +00:00
7754285f7c Log to the webrtc log stream from webrtc/modules java code.
The purpose is to gather all webrtc logging in a single place and allow the app to redirect all webrtc logging to a single stream for offline debugging.

Moved Logging.java to webrtc/base to be shared by talk/ and modules/.

R=glaznev@webrtc.org, henrika@webrtc.org, magjed@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9959}
2015-09-16 23:20:48 +00:00
3c089d751e Add RTC_ prefix to contructormagic macros.
We must remove dependency on Chromium, i.e. we can't use Chromium's base/logging.h. That means we need to define these macros in WebRTC also when doing Chromium builds. And this causes redefinition.

* DISALLOW_ASSIGN -> RTC_DISALLOW_ASSIGN
* DISALLOW_COPY_AND_ASSIGN -> RTC_DISALLOW_COPY_AND_ASSIGN
* DISALLOW_IMPLICIT_CONSTRUCTORS -> RTC_DISALLOW_IMPLICIT_CONSTRUCTORS

Related CL: https://codereview.webrtc.org/1335923002/

BUG=chromium:468375
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#9953}
2015-09-16 12:37:52 +00:00
847855b865 Add a name to the ProcessThread constructor.
Helps differentiate between different instances when debugging.

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

Cr-Commit-Position: refs/heads/master@{#9927}
2015-09-11 16:52:22 +00:00
4ed3658b78 Avoids crashes in Java-based InitRecording().
This CL ensures that we return -1 in cases where InitRecording() fails. It ensures that we don't crash applications.

BUG=b/22849644
R=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9918}
2015-09-10 13:18:33 +00:00
86d907cffd Refactor the AudioDevice for iOS and improve the performance and stability
This CL contains major modifications of the audio output parts for WebRTC on iOS:
- general code cleanup
- improves thread handling (added thread checks, remove critical section, atomic ops etc.)
- reduces loopback latency of iPhone 6 from ~90ms to ~60ms ;-)
- improves selection of audio parameters on iOS
- reduces complexity by removing complex and redundant delay estimates
- now instead uses fixed delay estimates if for some reason the SW EAC must be used
- adds AudioFineBuffer to compensate for differences in native output buffer size and
  the 10ms size used by WebRTC. Same class as is used today on Android and we have unit tests for
  this class (the old code was buggy and we have several issue reports of crashes related to it)

Similar improvements will be done for the recording sid as well in a separate CL.
I will also add support for 48kHz in an upcoming CL since that will improve Opus performance.

BUG=webrtc:4796,webrtc:4817,webrtc:4954, webrtc:4212
TEST=AppRTC demo and iOS modules_unittests using --gtest_filter=AudioDevice*
R=pbos@webrtc.org, tkchin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9875}
2015-09-07 14:10:10 +00:00
c92c23d99a Roll chromium_revision f8d6ba9..a28d8d5 (337800:346100)
Relevant changes:
* src/buildtools: ecc8e25..565d04e
* src/testing/gmock: 2976396..0421b6f
* src/testing/gtest: 23574bf..9855a87
* src/third_party/android_tools: 21f4bcb..4238a28
* src/third_party/boringssl/src: de24aad..12fe1b2
* src/third_party/icu: c81a1a3..6b3ce81
* src/third_party/libjpeg_turbo: f4631b6..631e2dd
* src/third_party/libsrtp: 9c53f85..502e81a
* src/third_party/libvpx: aa9b5f1..a208eca
* src/third_party/libyuv: 6dde4f1..3c4f573
* src/third_party/openmax_dl: 22bb108..2eb98d8
* src/tools/grit: 1dac9ae..15d48e3
* src/tools/gyp: 5122240..6ee91ad
* src/tools/swarming_client: b39a448..2866a22
Details: f8d6ba9..a28d8d5/DEPS

Clang version changed 245402:245965
Details: f8d6ba9..a28d8d5/tools/clang/scripts/update.sh

BUG=None
R=glaznev@webrtc.org
TBR=glaznev@chromium.org, henrika@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#9818}
2015-08-31 09:30:29 +00:00
1380e266ff Convert some more things to size_t.
These changes stem from requests by Andrew on https://codereview.webrtc.org/1228823002/ to eliminate some "return -1"s and change to using asserts plus returning size_ts.  I then also converted the relevant connected bits.

This also cleans up a bunch of style issues, e.g. no spaces around operators.

BUG=chromium:81439
TEST=none
R=andrew@webrtc.org, henrik.lundin@webrtc.org, niklas.enbom@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9813}
2015-08-29 00:31:15 +00:00
41eeff49fa More iOS compile fixes.
BUG=chromium:81439
TEST=none
TBR=niklas.enbom

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

Cr-Commit-Position: refs/heads/master@{#9770}
2015-08-24 23:24:22 +00:00
deb4875b74 Fix typos in https://codereview.webrtc.org/1230503003/ not caught by trybots.
BUG=chromium:81439
TEST=none
TBR=niklas.enbom

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

Cr-Commit-Position: refs/heads/master@{#9769}
2015-08-24 22:32:03 +00:00
dce40cf804 Update a ton of audio code to use size_t more correctly and in general reduce
use of int16_t/uint16_t.

This is the upshot of a recommendation by henrik.lundin and kwiberg on an original small change ( https://webrtc-codereview.appspot.com/42569004/#ps1 ) to stop using int16_t just because values could fit in it, and is similar in nature to a previous "mass change to use size_t more" ( https://webrtc-codereview.appspot.com/23129004/ ) which also needed to be split up for review but to land all at once, since, like adding "const", such changes tend to cause a lot of transitive effects.

This was be reviewed and approved in pieces:
https://codereview.webrtc.org/1224093003
https://codereview.webrtc.org/1224123002
https://codereview.webrtc.org/1224163002
https://codereview.webrtc.org/1225133003
https://codereview.webrtc.org/1225173002
https://codereview.webrtc.org/1227163003
https://codereview.webrtc.org/1227203003
https://codereview.webrtc.org/1227213002
https://codereview.webrtc.org/1227893002
https://codereview.webrtc.org/1228793004
https://codereview.webrtc.org/1228803003
https://codereview.webrtc.org/1228823002
https://codereview.webrtc.org/1228823003
https://codereview.webrtc.org/1228843002
https://codereview.webrtc.org/1230693002
https://codereview.webrtc.org/1231713002

The change is being landed as TBR to all the folks who reviewed the above.

BUG=chromium:81439
TEST=none
R=andrew@webrtc.org, pbos@webrtc.org
TBR=aluebs, andrew, asapersson, henrika, hlundin, jan.skoglund, kwiberg, minyue, pbos, pthatcher

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

Cr-Commit-Position: refs/heads/master@{#9768}
2015-08-24 21:52:45 +00:00
9deaa86136 Fix initialization/termination of AudioDeviceTemplate
AudioDeviceTemplate doesn't initialize `output_` and `input_` if the
initialization of `audio_manager_` succeeds. Similarly, it doesn't
terminate `input_` and `audio_manager_` if the termination of `output_`
succeeds. This CL fixes this.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#9760}
2015-08-22 01:38:55 +00:00
4de6622bcc Fix a bug in computing audio delay on ios device. Converts seconds to
milliseconds by multiplying 1000 instead of dividing 1000.

BUG=
R=tkchin@webrtc.org

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

Patch from Jiawei Ou <jiawei.ou@gmail.com>.

Cr-Commit-Position: refs/heads/master@{#9693}
2015-08-10 20:24:56 +00:00
a12ba5502c Added protection for GetCapabilities() failure.
On GetCapabilities() failure, caps.cDestinations is left uninitialized.
Without a protection the following code runs in a random loop
in the worst case up to 0xFFFFFFFF times.
        for (destId = 0; destId < caps.cDestinations; destId++)
        {
            GetDestinationLineInfo(mixId, destId, destLine);

BUG=webrtc:4882

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

Cr-Commit-Position: refs/heads/master@{#9663}
2015-07-31 03:51:39 +00:00
b297c5a01f Miscellaneous changes split from https://codereview.webrtc.org/1230503003 .
These are mostly trivial changes and are separated out just to reduce the
diff on that change to the minimum possible.

Note explanatory comments on patch set 1.

BUG=none
TEST=none

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

Cr-Commit-Position: refs/heads/master@{#9617}
2015-07-22 22:17:26 +00:00
343714eb06 Fix the problom that on Linux no external audio device can be selected since #9243.
In #9243 we added some thread_checker. But it shouldn't be added into PlayoutDevices() and RecordingDevices(), since these two will be invoked from RecThread and PlayoutThread too, other than the main thread.

BUG=webrtc:4852
TEST=voe_cmd_test
R=henrika@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9605}
2015-07-21 10:27:52 +00:00
324d9c9a86 Avoids error message about unknown selected data source for Port iPhone Microphone
TBR=tkchin
BUG=webrtc:4845
TEST=modules_unittests

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

Cr-Commit-Position: refs/heads/master@{#9602}
2015-07-20 11:09:34 +00:00
ba35d05a49 Cleanup of iOS AudioDevice implementation
TBR=tkchin
BUG=webrtc:4789
TEST=modules_unittests --gtest_filter=AudioDeviceTest* and AppRTCDemo

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

Cr-Commit-Position: refs/heads/master@{#9578}
2015-07-14 15:04:19 +00:00
1b12cb0ef7 Enabling AudioDeviceTest.StartStopPlayout on Nexus 9
BUG=webrtc:4682

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

Cr-Commit-Position: refs/heads/master@{#9497}
2015-06-24 11:27:35 +00:00
728d9037c0 Reformat existing code. There should be no functional effects.
This includes changes like:
* Attempt to break lines at better positions
* Use "override" in more places, don't use "virtual" with it
* Use {} where the body is more than one line
* Make declaration and definition arg names match
* Eliminate unused code
* EXPECT_EQ(expected, actual) (but use (actual, expected) for e.g. _GT)
* Correct #include order
* Use anonymous namespaces in preference to "static" for file-scoping
* Eliminate unnecessary casts
* Update reference code in comments of ARM assembly sources to match actual current C code
* Fix indenting to be more style-guide compliant
* Use arraysize() in more places
* Use bool instead of int for "boolean" values (0/1)
* Shorten and simplify code
* Spaces around operators
* 80 column limit
* Use const more consistently
* Space goes after '*' in type name, not before
* Remove unnecessary return values
* Use "(var == const)", not "(const == var)"
* Spelling
* Prefer true, typed constants to "enum hack" constants
* Avoid "virtual" on non-overridden functions
* ASSERT(x == y) -> ASSERT_EQ(y, x)

BUG=none
R=andrew@webrtc.org, asapersson@webrtc.org, henrika@webrtc.org, juberti@webrtc.org, kjellander@webrtc.org, kwiberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9420}
2015-06-11 21:31:48 +00:00
b7e5054414 Match existing type usage better.
This makes a variety of small changes to synchronize bits of code using different types, remove useless code or casts, and add explicit casts in some places previously doing implicit ones.  For example:

* Change a few type declarations to better match how the majority of code uses those objects.
* Eliminate "< 0" check for unsigned values.
* Replace "(float)sin(x)", where |x| is also a float, with "sinf(x)", and similar.
* Add casts to uint32_t in many places timestamps were used and the existing code stored signed values into the unsigned objects.
* Remove downcasts when the results would be passed to a larger type, e.g. calling "foo((int16_t)x)" with an int |x| when foo() takes an int instead of an int16_t.
* Similarly, add casts when passing a larger type to a function taking a smaller one.
* Add casts to int16_t when doing something like "int16_t = int16_t + int16_t" as the "+" operation would implicitly upconvert to int, and similar.
* Use "false" instead of "0" for setting a bool.
* Shift a few temp types when doing a multi-stage calculation involving typecasts, so as to put the most logical/semantically correct type possible into the temps.  For example, when doing "int foo = int + int; size_t bar = (size_t)foo + size_t;", we might change |foo| to a size_t and move the cast if it makes more sense for |foo| to be represented as a size_t.

BUG=none
R=andrew@webrtc.org, asapersson@webrtc.org, henrika@webrtc.org, juberti@webrtc.org, kwiberg@webrtc.org
TBR=andrew, asapersson, henrika

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

Cr-Commit-Position: refs/heads/master@{#9419}
2015-06-11 19:56:03 +00:00
8a8971820b Exclude Nexus 6 from OpenSL ES usage
BUG=b/21485703
R=glaznev@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9397}
2015-06-09 08:45:19 +00:00
fe55c38eff Removes automatic setting of COMM mode in WebRTC.
It is now up to the application to ensure that it is in COMM mode before any audio streaming is started.

BUG=b/21571563
R=glaznev@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9383}
2015-06-05 09:46:02 +00:00
26b08605e2 Use one scoped_refptr.
Uses webrtc/base/scoped_ref_ptr.h and removes the copy in
system_wrappers.

BUG=
R=kwiberg@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9370}
2015-06-04 13:18:28 +00:00
bf738d7130 Temporarily disabling OpenSL ES for playout.
TBR=tommi
BUG=b/21485703

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

Cr-Commit-Position: refs/heads/master@{#9329}
2015-05-29 09:42:52 +00:00
796e17237b Fixes crash in WebRtcAudioManager.setCommunicationMode
BUG=b/21360598
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9311}
2015-05-28 12:18:42 +00:00
c41fe5d5d0 Force 8 kHz sampling rate on Android emulator.
BUG=None
R=henrika@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9310}
2015-05-28 12:16:45 +00:00
9303eaf512 Don't unnecessarily set mode/category on AVAudioSession.
Doing so clears transient properties on the session back to defaults.

BUG=
R=tkchin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9297}
2015-05-27 17:24:00 +00:00
e14e5f4468 Solve TSan warning about unlocking an unlocked mutex.
In my previous cl, https://webrtc-codereview.appspot.com/52479004/, there is 'UnLock()' left when we switched to scoped lock, which will cause TSan warning sometimes.
===========================================================
WARNING: ThreadSanitizer: unlock of an unlocked mutex (or by a wrong thread) (pid=9981)
#0 pthread_mutex_unlock <null> (libjingle_peerconnection_unittest+0x00000046836f)
#1 webrtc::CriticalSectionPosix::Leave() webrtc/system_wrappers/source/critical_section_posix.cc:39:10 (libjingle_peerconnection_unittest+0x000000bc368d)
#2 ~CriticalSectionScoped webrtc/system_wrappers/interface/critical_section_wrapper.h:46:48 (libjingle_peerconnection_unittest+0x000000a61fcb)
#3 webrtc::AudioDeviceLinuxPulse::RecThreadProcess() webrtc/modules/audio_device/linux/audio_device_pulse_linux.cc:3003 (libjingle_peerconnection_unittest+0x000000a61fcb)
===========================================================

BUG=3056
TEST=bots
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9282}
2015-05-26 08:29:27 +00:00
57e5fd2e60 PRESUBMIT: Improve PyLint check and add GN format check.
Add pylintrc file based on
https://code.google.com/p/chromium/codesearch#chromium/src/tools/perf/pylintrc
bit tightened up quite a bit (the one in depot_tools is far
more relaxed).

Remove a few excluded directories from pylint check and fixed/
suppressed all warnings generated.

Add GN format check + formatted all GN files using 'gn format'.
Cleanup redundant rules in tools/PRESUBMIT.py

TESTED=Ran 'git cl presubmit -vv', fixed the PyLint violations.
Ran it again with a modification in webrtc/build/webrtc.gni, formatted
all the GN files and ran it again.

R=henrika@webrtc.org, phoglund@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9274}
2015-05-25 10:55:50 +00:00
ee369e4277 Refactoring of AudioTrackJni and AudioRecordJni using new JVM/JNI classes
BUG=NONE
TEST=./webrtc/build/android/test_runner.py gtest -s modules_unittests --gtest_filter=AudioDevice*
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9271}
2015-05-25 08:11:38 +00:00
523183b4aa Disables AudioDeviceTest.StartStopPlayout for Nexus 9 only
BUG=4682
R=henrik.lundin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9249}
2015-05-21 11:42:47 +00:00
1a07a1e825 Solve data race in Pulse audio implementation.
BUG=3056, 1320
TEST=AutoTest

Mainly add threadchecker and remove unnecessary lock.
And some more styling working.
- audio_device_pulse_linux.cc: wrap lines longer than 80 chars. And add '.' to some comments around. Not do it to all places.
- audio_mixer_manager_pulse_linux.cc: Here I adopt some chromium practice. We use to do many things to the failure of pulse operation, which causes most of the data race issue. In chromium, if we failed to call any pulse function, we just fail it w/o use the previous results. Here I did same. Please check if it's good.

R=bjornv@webrtc.org, henrika@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9243}
2015-05-21 04:42:24 +00:00
9b2b40231d Ensures that RECORD_AUDIO permission is required to start recording.
Avoids existing crash and ensures that error message is passed up to Libjingle. Will lead to the following logcat output:

E/libjingle(31404): Error(channel.cc:1514): Failed to SetSend 2 on voice channel

BUG=b/21273153
R=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9236}
2015-05-20 14:08:44 +00:00
5779d14321 Avoids crash when StartRecording conflicts with existing recording application
BUG=b/21066709
R=hbos@webrtc.org, magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9235}
2015-05-20 14:06:49 +00:00
931e6583b2 Remove unnecessary dependencies for voe when building with include_internal_audio_device==0.
In particular and practical terms, this avoids pulling in AudioDeviceModuleImpl and associated classes, in Chrome.

BUG=
R=henrika@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9229}
2015-05-20 07:44:23 +00:00
68898a2652 Remove AudioDeviceUtility.
The class doesn't do anything in almost all cases except for grabbing and releasing locks + allocate memory.  There are a couple of methods there such as WaitForKey and GetTimeInMs that are used, but those methods aren't specific to audio and we have implementations of these elsewhere.  The third method, StringCompare isn't used anywhere (and also isn't specific to audio).

BUG=
R=henrika@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9220}
2015-05-19 15:27:50 +00:00