henrika@webrtc.org 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
..
2013-12-12 16:55:37 +00:00
2013-12-12 16:55:37 +00:00

This directory contains a sample app for sending and receiving video and audio
on Android. It further lets you enable and disable some call quality
enhancements such as echo cancellation, noise suppression etc.

Prerequisites:
- Make sure gclient is checking out tools necessary to target Android: your
  .gclient file should contain a line like:
  target_os = ['android']
  Make sure to re-run gclient sync after adding this to download the tools.
- Env vars need to be set up to target Android; easiest way to do this is to run
  (from the libjingle trunk directory):
  . ./build/android/envsetup.sh
  Note that this clobbers any previously-set $GYP_DEFINES so it must be done
  before the next item.
- Set up webrtc-related GYP variables:
  export GYP_DEFINES="$GYP_DEFINES java_home=</path/to/JDK>"
- Finally, run "gclient runhooks" to generate Android-targeting .ninja files.

Example of building the app:
cd <path/to/repository>/trunk
ninja -C out/Debug WebRTCDemo

It can then be installed and run on the device:
adb install -r out/Debug/WebRTCDemo-debug.apk