137 Commits

Author SHA1 Message Date
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
tommi@webrtc.org
0c3e12b7bf Revamp the ProcessThreadImpl implementation.
* Add a new WakeUp method that gives a module a chance to be called back right away on the worker thread.
* Wrote unit tests for the class.
* Significantly reduce the amount of locking.
  - ProcessThreadImpl itself does a lot less locking.
  - Reimplemented the way we keep track of when to make calls to Process.
    This reduces the amount of calls to TimeUntilNextProcess and since most implementations of that function grab a lock, this means less locking.
* Renamed ProcessThread::CreateProcessThread to ProcessThread::Create.
* Added thread checks for Start/Stop.  Threading model of other functions is now documented.
* We now log an error if an implementation of TimeUntilNextProcess returns a negative value (some implementations do, but the method should only return a positive nr of ms).
* Removed the DestroyProcessThread method and instead force callers to use scoped_ptr<> to maintain object lifetime.

BUG=2822
R=henrika@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8261}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8261 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-06 09:44:45 +00:00
tommi@webrtc.org
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
tommi@webrtc.org
d43bdf50c5 Rewrite ThreadPosix.
This is the same change as already made for Windows:
https://webrtc-codereview.appspot.com/37069004/

* Remove "dead" and "alive" variables.
* Remove critical section
* Remove implementation of SetNotAlive()
* Always set thread name
* Add thread checks for correct usage.

* Changed AudioDeviceMac to create/start/stop/delete thread objects for playout and recording, inside the respective start and stop method.  The reason for this is because the AudioDeviceMac instance is currently being created on one thread and the above Start/Stop methods are being called on a different thread.  So, my change makes creation, start/stop, deletion of the thread objects always happen on the same thread.

I'm making CurrentThreadId() in rtc_base_approved more visible so that it can be used  from there instead of inside webrtc. Down the line we will have more thread concepts in rtc_base_approved, so I put a TODO for myself to move this functionality to there once we do.

R=henrika@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8235}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8235 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-03 16:30:21 +00:00
tommi@webrtc.org
4161715e3f Remove ChangeUniqueID.
This fixes a two year old TODO of deleting dead code :)
In cases where the _id or id_ member variable is being used for tracing,
I changed the member to at least be const.

It doesn't look like id's are that useful anymore so maybe the next step is to get rid of them.

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

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

Cr-Commit-Position: refs/heads/master@{#8201}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8201 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-29 12:14:13 +00:00
kjellander@webrtc.org
7d2b6a9346 Enable Clang warning implicit-fallthrough and annotate the code.
BUG=4242
R=henrik.lundin@webrtc.org, stefan@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8187}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8187 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-28 18:38:13 +00:00
kjellander@webrtc.org
d7e34e1086 Make it easier to use external libyuv + cleanup GYP files.
It is now easier to use an external libyuv library.
Fix some GYP errors.
Remove the temporary webrtc_base target (depends on
https://codereview.chromium.org/865603002/ being landed
first).

BUG=4185
R=andresp@webrtc.org, andrew@webrtc.org, perkj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8154 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-26 19:17:26 +00:00
andresp@webrtc.org
86e1e487e7 Move system_wrappers.gyp files to the proper directory.
Build targets should not refer to non-subpaths as was happening before when
 source/system_wrappers.gyp refers to ../interface/ files.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8057 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-14 09:30:52 +00:00
pbos@webrtc.org
3663fb08ff Reenable dlclose() for InternalUnloadDll on TSan.
Upstream TSan bug has been fixed and dlclose() no longer needs to be
excluded.

R=henrika@webrtc.org
BUG=3895

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8016 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-07 18:02:39 +00:00
kjellander@webrtc.org
556caffb36 GN: Fix build for Mac
BUG=4105
R=henrika@webrtc.org, pbos@webrtc.org, perkj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7961 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-19 13:28:37 +00:00
pbos@webrtc.org
e728ee03ba Remove or rename typedefs with _t prefixes.
_t prefixes are reserved for additional typenames in POSIX.

R=henrik.lundin@webrtc.org, hta@webrtc.org, stefan@webrtc.org
BUG=162

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7931 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-17 13:43:55 +00:00
pkasting@chromium.org
0b1534c52e Use int64_t for milliseconds more often, primarily for TimeUntilNextProcess.
This fixes a variety of MSVC warnings about value truncations when implicitly
storing the 64-bit values we get back from e.g. TimeTicks in 32-bit objects, and
removes the need for a number of explicit casts.

This also moves a number of constants so they're declared right where they're used, which is easier to read and maintain, and makes some of them of integral type rather than using the "enum hack".

BUG=chromium:81439
TEST=none
R=tommi@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7905 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-15 22:09:40 +00:00
tommi@webrtc.org
5c32a84620 Attempt to fix FYI bots.
The FYI bots went red after https://webrtc-codereview.appspot.com/32179004/ landed.

TBR=henrika@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7853 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-09 19:59:27 +00:00
henrika@webrtc.org
a954c07ee1 AppRTCDemo (Android): built-in AEC should be enabled if device supports it and in combination with Java-based audio layer
BUG=4034
R=andrew@webrtc.org, perkj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7849 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-09 16:22:09 +00:00
kjellander@webrtc.org
52bb521b47 Update isolate files for Android APK tests.
This should speed up test execution on Android since only
the files needed by the test will be processed (instead
of the whole data + resources directories).

A few files for modules_unittests had to be explicitly added
for Android, since they were previously a part of the
add-whole-directories entries for the resources and data
directories.

BUG=webrtc:3741
TEST=Passing android+android_rel trybots.
R=phoglund@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7694 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-13 08:35:05 +00:00
henrika@webrtc.org
dd43bbed8f Volume buttons in AppRTCDemo should affect output audio volume (part II).
See https://webrtc-codereview.appspot.com/32399004/ for part I.

BUG=3279
TEST=AppRTC demo
R=perkj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7654 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-06 15:48:05 +00:00
marpan@webrtc.org
4765ca55f9 Roll chromium_revision: 28d1981..d3db2ff
Pick up the libvpx roll: https://codereview.chromium.org/674753002

Summary of changes (28d1981..d3db2ff/DEPS):
* third_party/android_tools 36bf7ac..ea50ccc
* third_party/boringssl 7ea8481..751e889
* third_party/icu 8ac906f..d8b2a9d
* third_party/libvpx efe9712..2e5ced5
* third_party/usrsctp/usrsctplib
* tools/gyp 1990:1991
* tools/swarming_client a57d7db..bcb3bc3

Clang is not updated in this roll.

Made the change getchar() --> getc(stdin) as seems like getchar() isn't supported on android anymore.
(getchar() was causing the error: undefined reference to '__srget')

Update rate control parameter in vp9 test.

R=andrew@webrtc.org
TBR=ajm@google.com

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7598 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-03 20:10:26 +00:00
braveyao@webrtc.org
bf09976e86 Add more sanity checks to workaround the unidentified problem that CaptureThread is still running while related resouces are destroyed already.
BUG=
TEST=auto test
R=henrika@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7590 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-03 09:58:40 +00:00
kjellander@webrtc.org
78c222bfae Update all .isolate files for the new format.
R=kjellander@webrtc.org
BUG=

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

Patch from Marc-Antoine Ruel <maruel@chromium.org>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7583 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-31 18:08:09 +00:00
kjellander@webrtc.org
a9e363e721 Roll chromium_revision c264a05..fc668e2 (297113:298195)
Mainly to pick up https://codereview.chromium.org/619723006/
to fix our MSan bot.

Summary of changes (git diff c264a05..fc668e2 DEPS):
* third_party/boringssl 01fe820..c7dd5f30
* third_party/usrsctp/usrsctplib 8975bd5..d5685d4
* tools/swarming_client 79940aee..33d442a

Clang updated 216630:217949 (git diff c264a05..fc668e2 tools/clang/scripts/update.sh)
This caused TSan v2 to hit an assert in libjingle_peerconnection_unittest
and libjingle_media_unittest, which is why the dlclose call
had to be disabled for now (webrtc:3895).

BUG=3895
R=henrika@webrtc.org, pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7385 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-07 12:49:34 +00:00
kjellander@webrtc.org
f21ea918ad GN: Add common configs to all targets.
This is needed to ensure we have the same build with GN
as with GYP, since GYP includes the common.gypi on a global level.
Several fixes has been needed in the past because some code have
been built without the right defines.

BUG=3441
R=brettw@chromium.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7317 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-28 17:37:22 +00:00
pbos@webrtc.org
f520ea5eed Skip dlclose() on AddressSanitizer.
AddressSanitizer can't symbolize parts of the stack that contains
dlclose()d modules. This makes some LSan suppressions not kick in and
blocks launching the LSan bot for WebRTC.
This "fix" excludes dlclose() in
webrtc/modules/audio_device/linux/latebindingsymboltable_linux.cc which
resolves this on the bot.

R=xians@webrtc.org
BUG=3402,chromium:375154

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7157 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-11 17:29:11 +00:00
kjellander@webrtc.org
6d08ca6379 GN: Prefix WebRTC specific variables with "rtc_"
BUG=3441
TESTED=Trybots + Running GN in a Chromium checkout with
src/third_party/webrtc symlinked to the WebRTC checkout
with this CL applied, both with the default GN settings
and using: --args="os=\"android\" cpu_arch=\"arm\""

R=brettw@chromium.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7095 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-07 17:36:10 +00:00
kjellander@webrtc.org
c4870bb221 GN: Audio device module
The GN files are based upon the GYP files as of r7009.

BUG=3441
TESTED=Passing builds with:
gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default
gn gen out/Default --args="build_with_chromium=false is_debug=true" && ninja -C out/Default
gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" is_clang=false" && ninja -C out/Default
gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" arm_version=7 is_clang=false" && ninja -C out/Default

Compilation of Chromium's 'all' target with src/third_party/webrtc
symlinked to the WebRTC checkout with this CL applied, both
with the default GN settings and using
--args="is_debug=false os=\"android\" cpu_arch=\"arm\""

R=brettw@chromium.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7013 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-01 04:24:11 +00:00
pbos@webrtc.org
047a46f8b4 Remove Android.mk build files.
These files are generally not maintained and break, some contain files
that don't exist anymore and do not build anymore. If we need to add
some of these back we should really set up a bot for them.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6974 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-26 08:48:51 +00:00
kjellander@webrtc.org
b96ea2aab5 Remove former team members from OWNERS and WATCHLISTS
Remove the following (CCed) former team members from all
OWNERS files and the WATCHLISTS file:
* fischman@
* leozwang@
* mikhal@
* pwestin@
* wu@

BUG=
R=henrike@webrtc.org, niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6973 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-26 06:12:08 +00:00
braveyao@webrtc.org
8a2c84f59d Log the Android Audio API choice correctly.
BUG=3699
TEST=Manual Test
R=henrike@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6915 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-18 03:02:42 +00:00
phoglund@webrtc.org
40995c7fd0 Fixing uninitialized variable in file_audio_device.cc.
R=henrika@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6872 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-12 11:09:12 +00:00
henrike@webrtc.org
6ac22e6b47 Remove more dependencies on openssl, add dependency on boringssl. Continues on r6798
R=andrew@webrtc.org, fbarchard@chromium.org, kjellander@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6867 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-11 21:06:30 +00:00
tkchin@webrtc.org
9343cf67a9 Fix crash in AudioDeviceUtilityIOS::~AudioDeviceUtilityIOS.
BUG=3581
R=glaznev@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6732 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-18 17:13:28 +00:00
tkchin@webrtc.org
122caa51b1 After an audio interruption the audio unit no longer invokes its render callback, which results in a loss of audio. Restarting the audio unit post interruption fixes the issue.
CL also replaces deprecated AudioSession calls with equivalent AVAudioSession ones.

BUG=3487
R=glaznev@webrtc.org, noahric@chromium.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6697 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-15 20:20:47 +00:00
tommi@webrtc.org
d212ffcfc6 Remove unnecessary build message.
R=henrika@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6660 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-11 11:15:35 +00:00
phoglund@webrtc.org
241a9b0b65 Fixing compile error.
Made a mistake in https://webrtc-codereview.appspot.com/13849004/,
fixing that here.

TBR=henrika@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6622 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-08 11:48:37 +00:00
phoglund@webrtc.org
22292df53b Adding explicit check for using dummy file devices.
Calling into the file device factory without being compiled with file
devices makes no sense and would cause hard-to-debug errors. Therefore
I'm adding an explicit check so this isn't allowed.

R=henrika@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6621 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-08 11:39:19 +00:00
tkchin@webrtc.org
74bf7a6523 Add tkchin@ to OWNERS.
Adding myself to OWNERS of subdirectories containing iOS bits.  Added niklas.enbom@ for audio_device and wu@ for everything else.

R=niklas.enbom@webrtc.org, wu@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6578 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-01 18:38:28 +00:00
kjellander@webrtc.org
1227ab89a7 GN: Add BUILD.gn files + kjellander to OWNERS
This should work as a foundation for all the work that is
left to do to make the parts of WebRTC that Chromium uses
to build with GN.

I implemented some the smaller modules myself in this CL.
The remaining work (TODO's in the .gn files) will be distributed
to various team members.

I'm adding myself to OWNERS files for BUILD.gn files in all the
directories where I'm adding a BUILD.gn file.

BUG=3441
TEST=
Successful compilation of WebRTC as standalone:
gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default
gn gen out/Default --args="build_with_chromium=false is_clang=true clang_use_chrome_plugins=false" && ninja -C out/Default

I built successfully from a Chromium checkout (with
https://codereview.chromium.org/321313006/ applied) using:
gn gen out/Default && ninja -C out/Default webrtc

R=brettw@chromium.org, niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6523 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-23 19:21:07 +00:00
kjellander@webrtc.org
a1bfc50a72 Pass GYP DEPTH variable to isolate.
Similar change to https://codereview.chromium.org/322403003/
This will make it possible to handle different
directory levels for special builds of WebRTC, without
breaking GYP when the .isolate files are processed and
their contents is verified.

Also update all our .isolate files to use the <(DEPTH)
variable.

BUG=343106
TEST=Successful compile+test on Linux using:
ninja -C out/Release
tools/swarming_client/isolate.py run -s out/Release/tools_unittests.isolated
Also trybots passing all tests.

R=pbos@webrtc.org
TBR=tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6427 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-13 09:02:15 +00:00
phoglund@webrtc.org
8454ad1b3e Reland: Making WebRTC able to play and record audio to files for tests.
By specifying the define WEBRTC_DUMMY_FILE_DEVICES (which is similar to
WEBRTC_DUMMY_AUDIO_BUILD) an application will be able to tell WebRTC to
play out audio to a file and feed audio in from a file. We want to do
so we can better test WebRTC-using applications by recording what the
audio stack outputs and feeding known audio in for quality tests.

R=henrika@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6403 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-11 14:12:04 +00:00
minyue@webrtc.org
e08a11c4a1 Revert 6395 "Making WebRTC able to play and record audio to file..."
> Making WebRTC able to play and record audio to files for tests.
> 
> By specifying the define WEBRTC_DUMMY_FILE_DEVICES (which is similar to
> WEBRTC_DUMMY_AUDIO_BUILD) an application will be able to tell WebRTC to
> play out audio to a file and feed audio in from a file. We want to do
> so we can better test WebRTC-using applications by recording what the
> audio stack outputs and feeding known audio in for quality tests.
> 
> R=henrika@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/20609004

TBR=phoglund@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6396 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-11 10:40:30 +00:00
phoglund@webrtc.org
fa042ca15d Making WebRTC able to play and record audio to files for tests.
By specifying the define WEBRTC_DUMMY_FILE_DEVICES (which is similar to
WEBRTC_DUMMY_AUDIO_BUILD) an application will be able to tell WebRTC to
play out audio to a file and feed audio in from a file. We want to do
so we can better test WebRTC-using applications by recording what the
audio stack outputs and feeding known audio in for quality tests.

R=henrika@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6395 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-11 09:57:23 +00:00
kjellander@webrtc.org
7b82c18979 Add kjellander@webrtc.org as OWNER for *.isolate
This should make project-wide changes for isolate files
easier and make it more obvious who's a suitable reviewer
for them.

BUG=
R=niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6379 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-10 05:42:53 +00:00
wu@webrtc.org
94454b71ad Fix the chain that propagates the audio frame's rtp and ntp timestamp including:
* In AudioCodingModuleImpl::PlayoutData10Ms, don't reset the timestamp got from GetAudio.
* When there're more than one participant, set AudioFrame's RTP timestamp to 0.
* Copy ntp_time_ms_ in AudioFrame::CopyFrom method.
* In RemixAndResample, pass src frame's timestamp_ and ntp_time_ms_ to the dst frame.
* Fix how |elapsed_time_ms| is computed in channel.cc by adding GetPlayoutFrequency.

Tweaks on ntp_time_ms_:
* Init ntp_time_ms_ to -1 in AudioFrame ctor.
* When there're more than one participant, set AudioFrame's ntp_time_ms_ to an invalid value. I.e. we don't support ntp_time_ms_ in multiple participants case before the mixing is moved to chrome.

Added elapsed_time_ms to AudioFrame and pass it to chrome, where we don't have the information about the rtp timestmp's sample rate, i.e. can't convert rtp timestamp to ms.

BUG=3111
R=henrik.lundin@webrtc.org, turaj@webrtc.org, xians@webrtc.org
TBR=andrew
andrew to take another look on audio_conference_mixer_impl.cc

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6346 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-05 20:34:08 +00:00
solenberg@webrtc.org
c6db88b0cf Make it possible to build webrtc for arm64.
- Bump revision of protobuf lib
- Remove -Wextra for arm64 gcc targets (warnings in stlport)
- Add MemoryBarrier implementation in single_rw_fifo.cc.
- [pending 15619004]: Bump revision of /deps/tools/android to get md5sum_bin for arm64.

BUG=chromium:354405,chromium:354539
R=andrew@webrtc.org, fischman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6330 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-04 17:15:42 +00:00
henrike@webrtc.org
88fbb2d86b Switch to using base/constructormagic.h and remove system_wrappers/interface/constructor_magic.h.
Same as https://webrtc-codereview.appspot.com/19519004. The issue in
http://chromegw.corp.google.com/i/internal.chromium.webrtc.fyi/builders/Linux...
is solved by this change
http://src.chromium.org/viewvc/chrome/trunk/src/third_party/libjingle/libjing...
(tested locally).

BUG=3380
R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6218 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-21 21:18:46 +00:00
mcasas@webrtc.org
2fa7f79094 Revert 6202 "Switch to using base/constructormagic.h and remove ..."
> Switch to using base/constructormagic.h and remove system_wrappers/interface/constructor_magic.h.
> 
> BUG=N/A
> R=andrew@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/19519004

TBR=henrike@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6210 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-21 11:07:29 +00:00
henrike@webrtc.org
125ffd709d Switch to using base/constructormagic.h and remove system_wrappers/interface/constructor_magic.h.
BUG=N/A
R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6202 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-20 15:20:44 +00:00
wu@webrtc.org
cb711f77d2 Add interface to propagate audio capture timestamp to the renderer.
BUG=3111
R=andrew@webrtc.org, turaj@webrtc.org, xians@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6189 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-19 17:39:11 +00:00
henrike@webrtc.org
14abcc7322 libvpx's UNUSED macro conflicts with webrtc/base's. Added missing include of assert.h. Globally defined function "Unused" in talk/base and its copy (webrtc/base) is causing a conflict.
libvpx macro (UNUSED) can be found here:
http://src.chromium.org/viewvc/chrome/trunk/deps/third_party/libvpx/source/libvpx/vpx/vpx_codec.h

BUG=N/A
R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6185 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-16 16:54:44 +00:00
andrew@webrtc.org
8f69330310 Replace scoped_array<T> with scoped_ptr<T[]>.
scoped_array is deprecated. This was done using a Chromium clang tool:
http://src.chromium.org/viewvc/chrome/trunk/src/tools/clang/rewrite_scoped_ar...

except for the few not-built-on-Linux files which were updated manually.

TESTED=trybots
BUG=2515
R=niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5985 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-25 23:10:28 +00:00
andrew@webrtc.org
d59359af4d Remove 44.1 kHz workaround from the iOS AudioDevice.
Long, long ago, webrtc didn't support audio at 44.1 kHz. As a result we
treated 44.1 kHz audio as 44 kHz. We now have an arbitrary rate
resampler and have no trouble supporting 44.1 (see 1395 for all the
details). I must have missed updating iOS at the time.

This shouldn't result in a visible change as 16 kHz is selected as the
preferred hardware rate.

BUG=1395
R=fischman@webrtc.org, henrikg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5957 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-22 18:07:49 +00:00