Commit Graph

141 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
c2b63fe1f6 Adding Sony Xperia Z2 D6503 to HW AEC blacklist
BUG=b/21264352
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9218}
2015-05-19 12:07:04 +00:00
b26198972c Adding support for OpenSL ES output in native WebRTC
BUG=4573,2982,2175,3590
TEST=modules_unittests --gtest_filter=AudioDevice*, AppRTCDemo and WebRTCDemo

Summary:

- Removes dependency of the 'enable_android_opensl' compiler flag.
  Instead, OpenSL ES is always supported, and will enabled for devices that
  supports low-latency output.
- WebRTC no longer supports OpenSL ES for the input/recording side.
- Removes old code and demos using OpenSL ES for audio input.
- Improves accuracy of total delay estimates (better AEC performance).
- Reduces roundtrip audio latency; especially when OpenSL can be used.

Performance verified on: Nexus 5, 6, 7 and 9. Samsung Galaxy S4 and S6.
Android One device.

R=magjed@webrtc.org, phoglund@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9208}
2015-05-18 14:49:04 +00:00
0de7bcf06a Removes use of AudioManager.setSpeakerphoneOn in audio manager
BUG=NONE
TEST=AppRTCDemo
R=glaznev@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8996}
2015-04-14 07:19:49 +00:00
a125d7d7ad Changes default audio mode in AppRTCDemo to MODE_RINGTONE.
Also prevents that we try to restore audio mode when it has not been changed.

TBR=glaznev
BUG=NONE
TEST=AppRTCDemo and verify that volume control switches from "Ringtone to Phone" mode when call starts and switches back to Ringtone mode when call ends.

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

Cr-Commit-Position: refs/heads/master@{#8975}
2015-04-10 13:19:24 +00:00
09bf1a169b Delays changing to COMMUNICATION mode until streaming starts.
Restores stored audio mode when all streaming stops.

TBR=glaznev
BUG=NONE
TEST=AppRTCDemo

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

Cr-Commit-Position: refs/heads/master@{#8970}
2015-04-10 09:46:54 +00:00
722ef1fb59 Remove henrike@ from OWNERS
Since he has left the team.

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

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

Cr-Commit-Position: refs/heads/master@{#8913}
2015-04-01 15:08:49 +00:00
3cd9eaf5e8 Ensures that AudioManager.isVolumeFixed() is only used for Android L and above
TBR=perkj
BUG=NONE
TEST=./webrtc/build/android/test_runner.py gtest -s modules_unittests --gtest_filter=AudioDevice* --num_retries=0

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

Cr-Commit-Position: refs/heads/master@{#8909}
2015-04-01 10:00:09 +00:00
9ff73f5dbf Final minor fix in WebRtcAudioManager
TBR=perkj
BUG=NONE

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

Cr-Commit-Position: refs/heads/master@{#8878}
2015-03-27 10:37:06 +00:00
8324b525dc Adding playout volume control to WebRtcAudioTrack.java.
Also adds a framework for an AudioManager to be used by both sides (playout and recording).
This initial implementation only does very simple tasks like setting up the correct audio
mode (needed for correct volume behavior). Note that this CL is mainly about modifying
the volume. The added AudioManager is only a place holder for future work. I could have
done the same parts in the WebRtcAudioTrack class but feel that it is better to move these
parts to an AudioManager already at this stage.

The AudioManager supports Init() where actual audio changes are done (set audio mode etc.)
but it can also be used a simple "construct-and-store-audio-parameters" unit, which is the
case here. Hence, the AM now serves as the center for getting audio parameters and then inject
these into playout and recording sides. Previously, both sides acquired their own parameters
and that is more error prone.

BUG=NONE
TEST=AudioDeviceTest
R=perkj@webrtc.org, phoglund@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8875}
2015-03-27 09:56:35 +00:00
38492c5b6f Re-land 8810 "- Add a SetPriority method to ThreadWr..."
> Revert 8810 "- Add a SetPriority method to ThreadWrapper"
> Seeing if this is causing roll issues.
> 
> > - Add a SetPriority method to ThreadWrapper
> > - Remove 'priority' from CreateThread and related member variables from implementations
> > - Make supplying a name for threads, non-optional
> > 
> > BUG=
> > R=magjed@webrtc.org
> > 
> > Review URL: https://webrtc-codereview.appspot.com/44729004
> 
> TBR=tommi@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/48609004

TBR=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8819}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8819 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-22 14:42:46 +00:00
90a1cb4630 Revert 8810 "- Add a SetPriority method to ThreadWrapper"
Seeing if this is causing roll issues.

> - Add a SetPriority method to ThreadWrapper
> - Remove 'priority' from CreateThread and related member variables from implementations
> - Make supplying a name for threads, non-optional
> 
> BUG=
> R=magjed@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/44729004

TBR=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8818}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8818 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-22 14:34:46 +00:00
3200a64b3c Minor fix for MIPS Android build.
BUG=
R=andrew@webrtc.org

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

Patch from Ljubomir Papuga <lpapuga@mips.com>.

Cr-Commit-Position: refs/heads/master@{#8813}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8813 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-20 22:55:43 +00:00
b6817d793f - Add a SetPriority method to ThreadWrapper
- Remove 'priority' from CreateThread and related member variables from implementations
- Make supplying a name for threads, non-optional

BUG=
R=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8810}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8810 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-20 15:52:43 +00:00
80d9aeeda5 Adds full-duplex unit test to AudioDeviceTest on Android
BUG=NONE
R=phoglund@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8795}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8795 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-19 15:28:42 +00:00
361981faa8 Use scoped_ptr for ThreadWrapper::CreateThread.
BUG=
R=henrika@webrtc.org, pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8794}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8794 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-19 14:45:42 +00:00
86639737b8 Remove thread id from ThreadWrapper::Start().
Removes ThreadPosix::InitParams and a corresponding wait for an event.
This unblocks ThreadPosix::Start which had to wait for thread scheduling
for an event to trigger on the spawned thread, giving faster Start()
calls.

BUG=4413
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8709}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8709 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-13 00:07:45 +00:00
74d4792af5 Fixes issue in RunPlayoutWithFileAsSource related to uninitialized member
BUG=4408
R=phoglund@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8668}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8668 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-10 11:59:19 +00:00
474d1eb223 Adds C++/JNI/Java unit test for audio device module on Android.
This CL adds support for unittests of the AudioDeviceModule on Android using both Java and C++. The new framework uses ::testing::TesWithParam to support both Java-based audio and OpenSL ES based audio. However, given existing issues in our OpenSL ES implementation, the list of test parameters only contains Java in this first version. Open SL ES will be enabled as soon as the backend has been refactored.

It also:

- Removes the redundant JNIEnv* argument in webrtc::VoiceEngine::SetAndroidObjects().
- Modifies usage of enable_android_opensl and the WEBRTC_ANDROID_OPENSLES define.
- Adds kAndroidJavaAudio and kAndroidOpenSLESAudio to AudioLayer enumerator.
- Fixes some bugs which were discovered when running the tests.

BUG=NONE
R=phoglund@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8651}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8651 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-09 12:40:43 +00:00
00b8f6b364 Use base/scoped_ptr.h; system_wrappers/interface/scoped_ptr.h is going away
BUG=
R=andrew@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8517}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8517 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-26 14:43:50 +00:00
0a3ff7976b New AudioTrack implementation now works on pre-Lollipop devices.
The previous version used an AudioTrack.write() implementation that required API Level 21. This is now fixed.

BUG=4339
R=magjed@webrtc.org, perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8494}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8494 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-25 09:28:20 +00:00
962c62475e Refactoring WebRTC Java/JNI audio track in C++ and Java.
This CL is part II in a major refactoring effort. See https://webrtc-codereview.appspot.com/33969004 for part I.

- Removes unused code and old WEBRTC logging macros
- Now uses optimal sample rate and buffer size in Java AudioTrack (used hard-coded sample rate before)
- Makes code more inline with the implementation in Chrome
- Adds helper methods for JNI handling to improve readability
- Changes the threading model (high-prio audio thread now lives in Java-land and C++ only works as proxy)
- Simplified the delay estimate
- Adds basic thread checks
- Removes all locks in C++ land
- Removes all locks in Java
- Improves construction/destruction
- Additional cleanup

Tested using AppRTCDemo and WebRTCDemo APKs on N6, N5, N7, Samsung Galaxy S4 and
Samsung Galaxy S4 mini (which uses 44.1kHz as native sample rate).

BUG=NONE
R=magjed@webrtc.org, perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8460}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8460 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-23 11:54:41 +00:00
d5ce2e63df Remove EventWrapper::Reset().
This simplifies the event wrapper which we've recently found issues in.
Also refactoring EndToEndTest.RespectsNetworkState to not depend on it.

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

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

Cr-Commit-Position: refs/heads/master@{#8366}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8366 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-13 14:58:38 +00:00
58f6f01acc WebRTC now compiles for enable_android_opensl=1.
Default is enable_android_opensl=0 but we should build for OpenSL as well.

BUG=4293
R=perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8360}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8360 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-13 11:36:12 +00:00
a9eaeebc6a Fix problem where Android VoE can not record on multiple channels.
The issue was introduced in https://webrtc-codereview.appspot.com/33969004/
R8325

TEST=  Build libjingle_peerconnection_android_unittest and then run "CHECKOUT_SOURCE_ROOT=`pwd` build/android/test_runner.py instrumentation --test-apk=libjingle_peerconnection_android_unittest"
R=henrika@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8349}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8349 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-12 12:33:28 +00:00
62f6e75673 Refactoring WebRTC Java/JNI audio recording in C++ and Java.
This is a big refactoring of the existing C++/JNI/Java support for audio recording in native WebRTC:

- Removes unused code and old WEBRTC logging macros
- Now uses optimal sample rate and buffer size in Java AudioRecord (used hard-coded sample rate before)
- Makes code more inline with the implementation in Chrome
- Adds helper methods for JNI handling to improve readability
- Changes the threading model (high-prio audio thread now lives in Java-land and C++ only works as proxy)
- Adds basic thread checks
- Removes all locks in C++ land
- Removes all locks in Java
- Improves construction/destruction
- Additional cleanup

Tested using AppRTCDemo and WebRTCDemo APKs on N6, N5, N7, Samsung Galaxy S4 and
Samsung Galaxy S4 mini (which uses 44.1kHz as native sample rate).

BUG=NONE
R=magjed@webrtc.org, perkj@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8325}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8325 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-11 08:39:19 +00:00
875c97ed9d Remove SetNotAlive method from the thread class.
Also cleaning up methods with the same name in other classes that are derived from the above method.

R=perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8242}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8242 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-04 11:12:39 +00:00