265 Commits

Author SHA1 Message Date
tfarina
5237aaf243 Convert usage of ARRAY_SIZE to arraysize.
ARRAY_SIZE is the old version of arraysize and does not cover
all the cases in C++, arraysize is a copy of Chromium's
version and thus have wider coverage.

BUG=None
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10594}
2015-11-11 07:44:39 +00:00
noahric
23725e09c6 Remove ICU usage from jni_helpers.cc.
JNI already has jstring<->UTF8 string conversion, so using that should
save ~1mb off android binaries (ICU is *large*), probably around
300-400k after compression.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#10545}
2015-11-06 21:56:11 +00:00
Henrik Kjellander
ff761fba82 modules: more interface -> include renames
This changes the following module directories:
* webrtc/modules/audio_conference_mixer/interface
* webrtc/modules/interface
* webrtc/modules/media_file/interface
* webrtc/modules/rtp_rtcp/interface
* webrtc/modules/utility/interface

To avoid breaking downstream, I followed this recipe:
1. Copy the interface dir to a new sibling directory: include
2. Update the header guards in the include directory to match the style guide.
3. Update the header guards in the interface directory to match the ones in include. This is required to avoid getting redefinitions in the not-yet-updated downstream code.
4. Add a pragma warning in the header files in the interface dir. Example:
#pragma message("WARNING: webrtc/modules/interface is DEPRECATED; "
                "use webrtc/modules/include")
5. Search for all source references to webrtc/modules/interface and update them to webrtc/modules/include (*.c*,*.h,*.mm,*.S)
6. Update all GYP+GN files. This required manual inspection since many subdirectories of webrtc/modules referenced the interface dir using ../interface etc(*.gyp*,*.gn*)

BUG=5095
TESTED=Passing compile-trybots with --clobber flag:
git cl try --clobber --bot=win_compile_rel --bot=linux_compile_rel --bot=android_compile_rel --bot=mac_compile_rel --bot=ios_rel -m tryserver.webrtc

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

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

Cr-Commit-Position: refs/heads/master@{#10500}
2015-11-04 07:32:04 +00:00
tfarina
20a3461908 Remove deprecated IsUnresolved() method from SocketAddress API.
This patch removes IsUnresolved() method and update the clients to use
IsUnresolvedIP() instead.

BUG=None
R=perkj@webrtc.org
TBR=glaznev@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10487}
2015-11-03 00:20:28 +00:00
tfarina
a41ab9326c Switch usage of _DEBUG macro to NDEBUG.
http://stackoverflow.com/a/29253284/5237416

BUG=None
R=tommi@webrtc.org
NOPRESUBMIT=true

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

Cr-Commit-Position: refs/heads/master@{#10468}
2015-10-30 23:08:54 +00:00
magjed
8c425aa8f6 Android: Replace EGL14 with EGL10
The purpose with this change is to support older API levels by replacing EGL14 (API lvl 17) with EGL10 (API lvl 1). The main purpose is to lower API lvl requirement for SurfaceViewRenderer from API lvl 17 to API lvl 15. Also, camera texture capture will work on API lvl < 17 (and texture encode/decode in MediaCodec, but we don't use MediaCodec below API lvl 18?).

GLSurfaceView/VideoRendererGui is already using EGL10.

EGL 1.1 - 1.4 added new functionality, but won't affect performance. We don't need the functionality, so there should be no reason to not use EGL 1.0.

I have profiled AppRTCDemo with Qualcomm Trepn Profiler on a Nexus 5 and Nexus 6 and couldn't see any difference.

Specifically, this CL:
 * Update EglBase to use EGL10 instead of EGL14.
 * Update imports from EGL14 to EGL10 in a lot of files (plus changing import order in some cases).
 * Update VideoCapturerAndroid to always support texture capture.

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

Cr-Commit-Position: refs/heads/master@{#10378}
2015-10-22 23:52:45 +00:00
honghaiz
023f3ef029 Create network change notifier and pass the event to NetworkManager
BUG=

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

Cr-Commit-Position: refs/heads/master@{#10325}
2015-10-19 16:39:38 +00:00
perkj
a9046d0969 Add unit test to decode to a surface texture.
Also parameterise on PeerConnectionParameters to prepare for more test variations. (capture and encode to textures)

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

Cr-Commit-Position: refs/heads/master@{#10279}
2015-10-14 19:55:25 +00:00
Alex Glaznev
fddf6e526c Use WebRTC logging in MediaCodec JNI code.
Also enable HW encoder scaling in AppRTCDemo.

R=wzh@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10205}
2015-10-07 23:51:20 +00:00
Peter Boström
0c4e06b4c6 Use suffixed {uint,int}{8,16,32,64}_t types.
Removes the use of uint8, etc. in favor of uint8_t.

BUG=webrtc:5024
R=henrik.lundin@webrtc.org, henrikg@webrtc.org, perkj@webrtc.org, solenberg@webrtc.org, stefan@webrtc.org, tina.legrand@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10196}
2015-10-07 10:23:32 +00:00
haysc
913e645e10 Loopback and audio only mode.
Adds a loopback button that will connect to itself by simulating another client connection to the web socket server.

Adds an audio only mode switch.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#10153}
2015-10-02 18:45:13 +00:00
Magnus Jedvert
67e0cf15d3 Android AppRTCDemo: Add slider for changing camera capture quality during call
This CL adds a slider that can change capture resolution and fps during a call. The camera will no be reconfigured, but the frames will be downscaled/dropped in software by cricket::VideoAdapter in the cricket::VideoCapturer. This is controlled with VideoCapturerAndroid.onOutputFormatRequest(). The slider is turned off by default and can be enabled with a checkbox under 'WebRTC Video Settings'.

R=glaznev@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10067}
2015-09-25 06:23:49 +00:00
Magnus Jedvert
7076729c57 Enable SurfaceViewRenderer for AppRTCDemo
BUG=webrtc:4742,webrtc:4910,webrtc:4909
R=glaznev@webrtc.org, perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10054}
2015-09-24 14:02:15 +00:00
perkj
35d1767cc3 Remove the video capture module on Android.
Video capture for android is now implemented in talk/app/webrtc/androidvideocapturer.h

BUG=webrtc:4475

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

Cr-Commit-Position: refs/heads/master@{#9995}
2015-09-21 08:46:37 +00:00
hjon
abd0d1a3f7 Handle all RTCICEConnectionState values in ARDVideoCallViewController
BUG=

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

Cr-Commit-Position: refs/heads/master@{#9839}
2015-09-01 22:35:42 +00:00
Alex Glaznev
4d2f4d1c69 - Make shared EGL context used for HW video decoding member
of decoder factory class.
- Add new Peer connection factory method to initialize shared
EGL context.

This provides an option to use single peer connection factory
in the application and create peer connections from the same
factory and reinitialize shared EGL context for video
decoding HW acceleration.

R=wzh@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9838}
2015-09-01 22:04:21 +00:00
glaznev
97579a4e12 Add option to enable ECDSA key for Java API.
Review URL: https://codereview.webrtc.org/1312293003

Cr-Commit-Position: refs/heads/master@{#9835}
2015-09-01 18:31:34 +00:00
Patrik Höglund
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
Magnus Jedvert
a6cba3ab5c Java VideoRenderer.Callbacks: Make renderFrame() interface asynchronous
This CL makes the Java render interface asynchronous by requiring every call to renderFrame() to be followed by an explicit renderFrameDone() call. In JNI, this is implemented with cricket::VideoFrame::Copy() before calling renderFrame(), and a corresponding call to delete in renderFrameDone(). This CL is primarily done to prepare for a new renderer implementation.

BUG=webrtc:4742, webrtc:4909
R=glaznev@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9814}
2015-08-29 13:57:56 +00:00
magjed
6813ec84fb VideoCapturerAndroid: Move to android folder and split out camera enumeration into separate file
Pure code move of:
talk/app/webrtc/java/src/org/webrtc/VideoCapturerAndroid.java
into:
talk/app/webrtc/java/android/org/webrtc/VideoCapturerAndroid.java
talk/app/webrtc/java/android/org/webrtc/CameraEnumerationAndroid.java

NOPRESUBMIT=true

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

Cr-Commit-Position: refs/heads/master@{#9809}
2015-08-28 12:22:27 +00:00
Magnus Jedvert
1c3dd38cb8 Android: Fix memory leak for remote MediaStream
BUG=webrtc:4892
R=glaznev@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9797}
2015-08-27 11:40:09 +00:00
Alex Glaznev
c47a01d647 Fix AppRTCDemo crash when room is connected after PC is destroyed.
Also move VideoRendererGui.dispose() to the section with public API.

BUG=4909
R=wzh@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9792}
2015-08-26 23:02:29 +00:00
Magnus Jedvert
7ef9d9104d Android: Remove VideoRenderer.Callbacks.canApplyRotation()
The only real implementation of VideoRenderer.Callbacks, VideoRendererGui, can always apply rotation. We don't need this in the interface.

BUG=webrtc:4145
R=glaznev@webrtc.org, guoweis@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9772}
2015-08-25 07:32:16 +00:00
Magnus Jedvert
ff020c01ca Android: Move common functions from VideoRendererGui to new RendererCommon file
This is primarily done to prepare for a new renderer implementation.

BUG=webrtc:4742
R=glaznev@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9742}
2015-08-20 12:03:17 +00:00
Zeke Chin
d33258098b Add stats overlay to iOS AppRTCDemo.
BUG=
R=jiayl@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9714}
2015-08-14 18:00:11 +00:00
magjed
d5031fcf92 Android VideoRendererGui: Add dispose function
There is currently no way to dispose VideoRendererGui or VideoRendererGui.YuvImageRenderer. This CL adds functions to do so.

BUG=webrtc:4892

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

Cr-Commit-Position: refs/heads/master@{#9710}
2015-08-14 10:13:08 +00:00
magjed
e2a8be1244 Revert of AppRTCDemo: Render each video in a separate SurfaceView (patchset #4 id:120001 of https://codereview.webrtc.org/1257043004/ )
Reason for revert:
AppRTCDemo often crashes in loopback mode and incorrect layout when connection is established

BUG=webrtc:4909,webrtc:4910

Original issue's description:
> AppRTCDemo: Render each video in a separate SurfaceView
>
> This CL introduces a new org.webrtc.VideoRenderer.Callbacks implementation called SurfaceViewRenderer that renders each video stream in its own SurfaceView. AppRTCDemo is updated to use this new rendering.
>
> This CL also does the following changes:
> * Make the VideoRenderer.Callbacks interface asynchronous and require that renderFrameDone() is called for every renderFrame(). In JNI, this is implemented with cricket::VideoFrame::Copy()/delete.
> * Make public static helper functions: convertScalingTypeToVisibleFraction(), getDisplaySize(), and getTextureMatrix().
> * Introduces new helper functions surfaceWidth()/surfaceHeight() in EGlBase that allows to query the surface size.
> * Introduce PercentFrameLayout that implements the percentage layout that is used by AppRTCDemo.
>
> BUG=webrtc:4742
>
> Committed: https://crrev.com/05bfbe47ef6bcc9ca731c0fa0d5cd15a4f21e93f
> Cr-Commit-Position: refs/heads/master@{#9699}

TBR=glaznev@webrtc.org,wzh@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4742

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

Cr-Commit-Position: refs/heads/master@{#9703}
2015-08-12 06:55:04 +00:00
magjed
05bfbe47ef AppRTCDemo: Render each video in a separate SurfaceView
This CL introduces a new org.webrtc.VideoRenderer.Callbacks implementation called SurfaceViewRenderer that renders each video stream in its own SurfaceView. AppRTCDemo is updated to use this new rendering.

This CL also does the following changes:
* Make the VideoRenderer.Callbacks interface asynchronous and require that renderFrameDone() is called for every renderFrame(). In JNI, this is implemented with cricket::VideoFrame::Copy()/delete.
* Make public static helper functions: convertScalingTypeToVisibleFraction(), getDisplaySize(), and getTextureMatrix().
* Introduces new helper functions surfaceWidth()/surfaceHeight() in EGlBase that allows to query the surface size.
* Introduce PercentFrameLayout that implements the percentage layout that is used by AppRTCDemo.

BUG=webrtc:4742

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

Cr-Commit-Position: refs/heads/master@{#9699}
2015-08-11 13:50:27 +00:00
Donald E Curtis
a873644897 Move all the examples from the talk directory into the webrtc examples directory.
Significant changes:

- move the libjingle_examples.gyp file into webrtc directory.
- rename talk/examples/android to webrtc/examples/androidapp to avoid name conflicts.
- update paths in talk/libjingle_tests.gyp to point to webrtc directory for Objective-C test.

BUG=
R=pthatcher@webrtc.org, tkchin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9681}
2015-08-05 22:48:29 +00:00
Jelena Marusic
f09e09c7ee VoE: Remove unused interfaces
BUG=4690

I have removed methods in VoE interfaces that were marked to be removed. I have removed them also in fake and mock implementations. I have also updated the callers in various ways:
1. Project win_test had some calls to the removed methods, but it turned out that the project is not used anymore, so I removed it entirely.
2. There were some calls to removed methods in jni methods. I have removed couple of jni methods as now they seem to do nothing.
3. With the remaining callers I just removed the calls to removed methods.

R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9281}
2015-05-26 08:25:00 +00:00
Peter Boström
c3f4dbc40b Remove rtp_rtcp/ dump functionality.
Removes RTP dumping from VideoEngine and VoiceEngine.

BUG=1695
R=henrika@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9234}
2015-05-20 12:10:56 +00:00
henrika
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
Henrik Kjellander
9f7908e497 Roll chromium_revision ec5b768..62a5bb3 (328242:329063)
A minor code change had to be made due to
https://codereview.chromium.org/951983002

Relevant changes:
* src/buildtools: 15f5fc6..b0ede9c
Details: ec5b768..62a5bb3/DEPS

Clang version was not updated in this roll.

R=henrika@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9167}
2015-05-11 09:34:26 +00:00
Henrik Kjellander
352595459d Use short include paths for icu headers.
This makes it possible to build with icu located
in another absolute path.

BUG=4242
R=andresp@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9063}
2015-04-23 06:58:02 +00:00
Henrik Kjellander
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
henrika
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
Per
855acf72d0 Remove video from WebRTC Android example.
This is in preparation to remove the use of the old Video Api and the use of the old video capture module on Android in particular.

R=henrika@webrtc.org, mflodman@webrtc.org, pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8856}
2015-03-25 13:32:30 +00:00
braveyao@webrtc.org
5506a93efd Expose ViECaptureImpl::DisconnectCaptureDevice() to JNI of WebRTCDemo and call it before releasing camera to deregister the corresponding framecallback. Also stop camera after stop remote rendering as the correct termination order.
BUG=4448
TEST=Manual Test
R=glaznev@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8785}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8785 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-19 00:12:40 +00:00
kjellander@webrtc.org
eed2fcaa76 Roll chromium_revision 00e438c..8d51d96 (320241:320682)
Relevant changes:
* src/third_party/android_tools: fd5a8ec..98a4345
Details: 00e438c..8d51d96/DEPS

This required updating our Android projects to API level 22,
as third_party/android_tools dropped support for API level 21.

Command used:
perl -pi -e "s/android-21/android-22/g" `find . -name project.properties`
Using 'android update project' would also work but that changes the
ANDROID_SDK_ROOT -> ANDROID_HOME, which the Chromium build toolchain
doesn't set properly when build/android/envsetup.sh is sourced.

Clang version was not updated in this roll.

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

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

Cr-Commit-Position: refs/heads/master@{#8728}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8728 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-16 09:00:41 +00:00
henrika@webrtc.org
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
kwiberg@webrtc.org
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
henrika@webrtc.org
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
guoweis@webrtc.org
5a7dc39277 This is a code clean up. No functional change intended.
Consolidate the enum for capturer/frame rotation we use through out the code base.

BUG=4145
R=mflodman@webrtc.org, perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8365}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8365 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-13 14:32:13 +00:00
henrika@webrtc.org
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
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
pkasting@chromium.org
e7a4a12f83 Add arraysize() macro from Chromium, and make use of it in a few places.
This not only shortens some test code, it makes it more robust against changing
the lengths of the arrays later and forgetting to update the length constants
(which bit me).

BUG=none
TEST=none
R=hta@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8191}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8191 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-28 21:37:13 +00:00
pkasting@chromium.org
16825b1a82 Use int64_t more consistently for times, in particular for RTT values.
Existing code was inconsistent about whether to use uint16_t, int, unsigned int,
or uint32_t, and sometimes silently truncated one to another, or truncated
int64_t.  Because most core time-handling functions use int64_t, being
consistent about using int64_t unless otherwise necessary minimizes the number
of explicit or implicit casts.

BUG=chromium:81439
TEST=none
R=henrik.lundin@webrtc.org, holmer@google.com, tommi@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8045 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-12 21:51:21 +00:00
kjellander@webrtc.org
5072e0f6cd Update Android projects to API level 21.
The update in https://webrtc-codereview.appspot.com/23309004
was not enough, so this updates to 21 instead.

This is required in order to roll chromium_revision to
keep up with Chrome, as third_party/android_tools have now
dropped support for API level 20.

Commands used:
third_party/android_tools/sdk/tools/android update project --name OpenSlDemo --target android-21 --path webrtc/examples/android/opensl_loopback
third_party/android_tools/sdk/tools/android update project --name WebRTCDemo --target android-21 --path webrtc/examples/android/media_demo/
third_party/android_tools/sdk/tools/android update project --name AppRTCDemo --target android-21 --path talk/examples/android/
Then I restored the changes of the ANDROID_SDK_ROOT -> ANDROID_HOME since it seems the Chromium build toolchain doesn't set it properly when
build/android/envsetup.sh is sourced.

BUG=
R=glaznev@webrtc.org, henrike@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7587 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-31 23:26:10 +00:00
kjellander@webrtc.org
8a130c1084 Update Android projects to API level 20.
This is required in order to roll chromium_revision to
keep up with Chrome, as third_party/android_tools have now
dropped support for API level 19.

Commands used:
third_party/android_tools/sdk/tools/android update project --name OpenSlDemo --target android-20 --path webrtc/examples/android/opensl_loopback
third_party/android_tools/sdk/tools/android update project --name WebRTCDemo --target android-20 --path webrtc/examples/android/media_demo/
third_party/android_tools/sdk/tools/android update project --name AppRTCDemo --target android-20 --path talk/examples/android/
Then I restored the changes of the ANDROID_SDK_ROOT -> ANDROID_HOME since it seems the Chromium build toolchain doesn't set it properly when
build/android/envsetup.sh is sourced.

BUG=
R=glaznev@webrtc.org, henrike@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7582 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-31 17:13:37 +00:00
andresp@webrtc.org
85ef770d92 Split video engine android initialization into each internal module initialization.
This is to later on allow targets to pick at link time if to include the external or internal implementation. In order to do that the video_engine cannot compile different based on which option is picked later on.

BUG=3768,3770
R=glaznev@webrtc.org, stefan@webrtc.org
TBR=henrike@webrtc.org, mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7208 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-17 11:44:51 +00:00