323 Commits

Author SHA1 Message Date
Patrik Höglund
7696bef463 Remove the public_deps to fileutils from test_support.
Bug: webrtc:8946
Change-Id: Ia01d8bb1b42485e29f26792b9266228743d7fd90
No-Presubmit: true
Reviewed-on: https://webrtc-review.googlesource.com/62100
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22465}
2018-03-16 09:06:27 +00:00
Paulina Hensman
7bd79a0089 Split up audio_device build target
We currently have one build target containing everything for audio_device: the interfaces,
the "fine" audio buffer, and the actual implementations for each platform.
Since we are planning to move the Android implementation to the sdk/android folder,
we only want to depend on the interfaces and the "fine" audio buffer, not the other platform
specific implementations. This CL splits the audio_device target into three different targets:
the interfaces, the fine audio buffer, and the platform specific implementations. The default
audio_device target now points to the interfaces instead.

Bug: webrtc:7452
Change-Id: I57e849cc6f4087d950fa02d969ecc682934839cd
Reviewed-on: https://webrtc-review.googlesource.com/61321
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22452}
2018-03-15 13:47:17 +00:00
Artem Titov
f2afa57468 Cleanup after moving test/fake_audio_device.
Cleanup after moving test/fake_audio_device to
modules/audio_device/include/test_audio_device.
Hide implementation of test audio device module in the anonymous namespace.

Bug: webrtc:8946
Change-Id: I2d49c3ec5d43eeb5f155d38de95f69ed3c537805
Reviewed-on: https://webrtc-review.googlesource.com/61426
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22401}
2018-03-13 15:22:41 +00:00
Pengyu Liao
ba907f0058 Add stereo support to FakeAudioDevice.
The stereo-ness depends on the input Capturer and Renderer:
1) The stereo-ness of playout equals to Renderer;
2) The stereo-ness of recording equals to Capturer.

Bug: webrtc:8978
Change-Id: Ib41b8294c30ef6db54fdaf9d1890de0135a976d1
Reviewed-on: https://webrtc-review.googlesource.com/60100
Commit-Queue: Pengyu Liao <pengyul@google.com>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22374}
2018-03-09 18:43:24 +00:00
Artem Titov
0f03973365 Separate test/fake_audio_device on API and implementation. Step 1.
Adding ability of injecting audio in end to end tests, that are using
WebRTC. It will be done in 3 steps:
1. Test/fake_audio_device will be moved to production part of WebRTC
source code and renamed to test_audio_device_module. Old header is
replaced with alias to the new one.
2. Internal usage of FakeAudioDevice will be switch to TestAudioDevice.
3. test/fake_audio_device will be removed.

This CL implements 1st step.

Bug: webrtc:8946
Change-Id: Ia8df5155d369d83b3c2818a1129f78dd0848b01f
Reviewed-on: https://webrtc-review.googlesource.com/59740
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22325}
2018-03-07 12:46:00 +00:00
Artem Titov
6723cdc8a4 Revert "Separate test/fake_audio_device on API and implementation."
This reverts commit 8ea5f9ae5b757aa3a0e6abe46f5c9ef3aaf4b337.

Reason for revert: breaks downstream project

Original change's description:
> Separate test/fake_audio_device on API and implementation.
> 
> Adding ability of injecting audio in end to end tests, that are using
> WebRTC. For this purpose as a 1st step test/fake_audio_device will
> be moved to production part of WebRTC source code and renamed to
> test_audio_device_module. Old header is replaced with alias to the
> new one and will be deleted after a while.
> 
> Change-Id: I5284d1dd46ce9bf86cf43268e855520606fa8c5c
> 
> Bug: webrtc:8946
> Change-Id: I5284d1dd46ce9bf86cf43268e855520606fa8c5c
> Reviewed-on: https://webrtc-review.googlesource.com/58086
> Commit-Queue: Artem Titov <titovartem@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22289}

TBR=kwiberg@webrtc.org,titovartem@webrtc.org

Change-Id: I88d9c4f09cc576ed7c9182dcf0a873d25a8bab54
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8946
Reviewed-on: https://webrtc-review.googlesource.com/59720
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22291}
2018-03-05 15:36:23 +00:00
Artem Titov
8ea5f9ae5b Separate test/fake_audio_device on API and implementation.
Adding ability of injecting audio in end to end tests, that are using
WebRTC. For this purpose as a 1st step test/fake_audio_device will
be moved to production part of WebRTC source code and renamed to
test_audio_device_module. Old header is replaced with alias to the
new one and will be deleted after a while.

Change-Id: I5284d1dd46ce9bf86cf43268e855520606fa8c5c

Bug: webrtc:8946
Change-Id: I5284d1dd46ce9bf86cf43268e855520606fa8c5c
Reviewed-on: https://webrtc-review.googlesource.com/58086
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22289}
2018-03-05 14:30:42 +00:00
Tommi
2c599d663d Allow native aec to be used in peerconnection_client if available on windows.
Change-Id: Ia0e2e8b5f755602e58c6be75b7ff57ab1e0528fb
Bug: webrtc:8891
Reviewed-on: https://webrtc-review.googlesource.com/53740
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22032}
2018-02-15 12:03:24 +00:00
Alex Leung
82d0817d6c Add callback when new audio data is ready
Bug: webrtc:8864
Change-Id: I476e9430da281f6815eb1af8ffd98afd9b664a63
Reviewed-on: https://webrtc-review.googlesource.com/49981
Commit-Queue: Alex Leung <alexleung@google.com>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Alex Glaznev <glaznev@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21976}
2018-02-09 19:31:49 +00:00
henrika
cb87efd7d3 Avoids issues with start of audio when audio was not initialized on Android
Bug: b/72444507
Change-Id: I44d6e03c13a49033682f8f0bdc10256f724068d3
Reviewed-on: https://webrtc-review.googlesource.com/48020
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Alex Glaznev <glaznev@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21959}
2018-02-08 15:04:39 +00:00
Niels Möller
1e06289cdb Delete macro RTC_ACCESS_ON, replaced by RTC_GUARDED_BY.
Both macros do the same thing, as wrappers for
__attribute__((guarded_by)), and more names for the same thing doesn't
add to clarity.

Bug: none
Change-Id: Iaaf7b21dbf3345ee90fee22c39b636823d195eb0
Reviewed-on: https://webrtc-review.googlesource.com/48361
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21929}
2018-02-07 10:07:28 +00:00
Mirko Bonadei
7fc0259160 check_includes=fase on audio_device_generic & objc_codec_factory_helper.
TBR=phoglund@webrtc.org

Bug: webrtc:8850
Change-Id: Iebc55a12d3a021aafe753778069ac8c90ccf4d3a
No-Try: True
No-Presubmit: true
Reviewed-on: https://webrtc-review.googlesource.com/48621
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21914}
2018-02-06 13:28:03 +00:00
Mirko Bonadei
dbbb33cd00 Stop using public_deps in common_audio.
Bug: webrtc:8603
Change-Id: I315311977f2a75476a7028b8d3eaf3c98caf4178
Reviewed-on: https://webrtc-review.googlesource.com/47920
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21902}
2018-02-06 09:44:20 +00:00
Karl Wiberg
80ba333fc5 Move FALLTHROUGH macro to a separate header, and give it an RTC_ prefix
Bug: chromium:805946
Change-Id: Ibb5dce9af27d0e48c9aee6b0a860b6f62b3c76a0
Reviewed-on: https://webrtc-review.googlesource.com/46145
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21889}
2018-02-05 11:24:59 +00:00
henrika
fdc3863373 Fixes java.lang.NullPointerException in combination with call to onWebRtcAudioTrackInitError()
BUG=NONE

Change-Id: I5758a9f7be1dfd50cf34bf31d3aced2d744f5e58
Reviewed-on: https://webrtc-review.googlesource.com/46061
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21805}
2018-01-30 12:53:34 +00:00
Mirko Bonadei
65ce31158f Removing useless dependencies on //testing/gmock.
If a WebRTC build target requires gmock it has to include
test/gmock.h and just depend on //test:test_support.

Unfortunately //testtest_support was a leaky abstraction because it
wasn't propagating the correct -I compiler flag. To make everything
work, all the targets that use gmock started also to depend on
//testing/gmock (even if they were not including any gmock header
directly).

This CL makes //testtest_support propagate the include path up in the
dependency chain so it is possible to remove unused dependencies.

Note: all_dependent_configs should probably be used in the original
gmock target. There is an ongoing discussion about it. This CL solves
the problem on WebRTC side and it is forward compatible.

TBR=phoglund@webrtc.org

Bug: webrtc:8603
Change-Id: If08daf2ce9a6431a6e881a236743b4ec33b59ea7
Reviewed-on: https://webrtc-review.googlesource.com/44340
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21776}
2018-01-26 13:34:12 +00:00
Patrik Höglund
34924c236c Fix warning 4373.
Looks like all the current warnings were because of a MSVC bug:
https://github.com/google/googletest/blob/master/googlemock/docs/FrequentlyAskedQuestions.md

We can just disable this one for all tests and be done with it.

Bug: webrtc:261
Change-Id: I882a577f832ff71ac61936abebe0ca537088bab8
Reviewed-on: https://webrtc-review.googlesource.com/40840
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21691}
2018-01-19 10:37:44 +00:00
henrika
53e048d83a Adds usage of RTC_LOG macros in code for Android
Bug: webrtc:8710
Change-Id: Ifeedc51ef7d4998278b9583d9530f8f2bdc8f3a2
Reviewed-on: https://webrtc-review.googlesource.com/39266
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21678}
2018-01-18 16:41:48 +00:00
Fredrik Solenberg
1a50cd5894 Remove unused members from AudioDeviceBuffer
Removes current_mic_level_, new_mic_level_ and clock_drift_, together
with APIs for accessing them.

Bug: webrtc:8598
Change-Id: I8e07396fcafd2a719e204730e2c7d26797bed762
Reviewed-on: https://webrtc-review.googlesource.com/39783
Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21632}
2018-01-16 10:20:32 +00:00
Dan Minor
9c68613080 Update gn files to support Mozilla build
Bug: webrtc:8670
No-Presubmit: true
Change-Id: I085dc63daa8274b5068540cbf56b6330f40643fa
Reviewed-on: https://webrtc-review.googlesource.com/38920
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21624}
2018-01-16 07:51:23 +00:00
Oskar Sundbom
6ad9f26975 Optional: Use nullopt and implicit construction in /modules/audio_device
Changes places where we explicitly construct an Optional to instead use
nullopt or the requisite value type only.

This CL was uploaded by git cl split.

Bug: None
Change-Id: I9f581b44a43db701300e100a3ff70d90e3dd4f6e
Reviewed-on: https://webrtc-review.googlesource.com/23572
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Oskar Sundbom <ossu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21581}
2018-01-11 13:55:11 +00:00
henrika
c77b528a20 Adds usage of RTC_LOG macros in JNI audio code on Android.
Based on discussion in https://webrtc-review.googlesource.com/c/src/+/37640

Bug: webrtc:8710
Change-Id: I645b6e08b0a97aac3fe31547cf42fc4ddc25bbf6
Reviewed-on: https://webrtc-review.googlesource.com/37980
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21573}
2018-01-11 11:42:31 +00:00
Per Kjellander
a7f2d84ad1 Revert "Revert "GN rtc_* templates: Set default visibility to webrtc_root + "/*"""
This reverts commit c73e1f437889d882cbf2987f7fb3a029a6150613.

Reason for revert: 
The problem with failed deps in chrome content/renderer had already been fixed in https://webrtc-review.googlesource.com/c/src/+/38660

Original change's description:
> Revert "GN rtc_* templates: Set default visibility to webrtc_root + "/*""
> 
> This reverts commit 588c548657b3ddf76e7b3f241263eef7f5799f16.
> 
> Reason for revert: 
> 
> Breaks Chrome FYI:
> 
> /b/c/b/Linux_Builder/src/buildtools/linux64/gn gen //out/Release --check
>   -> returned 1
> ERROR at //build/split_static_library.gni:12:5: Dependency not allowed.
>     static_library(target_name) {
>     ^----------------------------
> The item //content/renderer:renderer
> can not depend on //third_party/webrtc/media:rtc_internal_video_codecs
> because it is not in //third_party/webrtc/media:rtc_internal_video_codecs's visibility list: [
>   //third_party/webrtc/*
>   //third_party/webrtc_overrides/*
> ]
> 
>  https://logs.chromium.org/v/?s=chromium%2Fbb%2Fchromium.webrtc.fyi%2FLinux_Builder%2F23560%2F%2B%2Frecipes%2Fsteps%2Fgenerate_build_files%2F0%2Fstdout
> 
> Original change's description:
> > GN rtc_* templates: Set default visibility to webrtc_root + "/*"
> > 
> > This means that by default, targets are visible to everything under
> > the WebRTC root, but not visible to anything else.
> > 
> > API targets are manually tagged with visibility "*", so that targets
> > outside the WebRTC tree can see them.
> > 
> > BUG=webrtc:8254
> > 
> > Change-Id: Icdbee6e0d22d93240ff2fb530c8f9dc48e351509
> > Reviewed-on: https://webrtc-review.googlesource.com/24140
> > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> > Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#21548}
> 
> TBR=mbonadei@webrtc.org,kwiberg@webrtc.org
> 
> Change-Id: I06620ce3d6f67482935c22efa231dd6cab91625a
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:8254
> Reviewed-on: https://webrtc-review.googlesource.com/38760
> Reviewed-by: Per Kjellander <perkj@webrtc.org>
> Commit-Queue: Per Kjellander <perkj@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#21555}

TBR=mbonadei@webrtc.org,kwiberg@webrtc.org,perkj@webrtc.org

Change-Id: I6f720078ce21bd172e0a6471bae8c4c011e4a657
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8254
Reviewed-on: https://webrtc-review.googlesource.com/38860
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21558}
2018-01-10 15:55:04 +00:00
Per Kjellander
c73e1f4378 Revert "GN rtc_* templates: Set default visibility to webrtc_root + "/*""
This reverts commit 588c548657b3ddf76e7b3f241263eef7f5799f16.

Reason for revert: 

Breaks Chrome FYI:

/b/c/b/Linux_Builder/src/buildtools/linux64/gn gen //out/Release --check
  -> returned 1
ERROR at //build/split_static_library.gni:12:5: Dependency not allowed.
    static_library(target_name) {
    ^----------------------------
The item //content/renderer:renderer
can not depend on //third_party/webrtc/media:rtc_internal_video_codecs
because it is not in //third_party/webrtc/media:rtc_internal_video_codecs's visibility list: [
  //third_party/webrtc/*
  //third_party/webrtc_overrides/*
]

 https://logs.chromium.org/v/?s=chromium%2Fbb%2Fchromium.webrtc.fyi%2FLinux_Builder%2F23560%2F%2B%2Frecipes%2Fsteps%2Fgenerate_build_files%2F0%2Fstdout

Original change's description:
> GN rtc_* templates: Set default visibility to webrtc_root + "/*"
> 
> This means that by default, targets are visible to everything under
> the WebRTC root, but not visible to anything else.
> 
> API targets are manually tagged with visibility "*", so that targets
> outside the WebRTC tree can see them.
> 
> BUG=webrtc:8254
> 
> Change-Id: Icdbee6e0d22d93240ff2fb530c8f9dc48e351509
> Reviewed-on: https://webrtc-review.googlesource.com/24140
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#21548}

TBR=mbonadei@webrtc.org,kwiberg@webrtc.org

Change-Id: I06620ce3d6f67482935c22efa231dd6cab91625a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8254
Reviewed-on: https://webrtc-review.googlesource.com/38760
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21555}
2018-01-10 15:14:54 +00:00
Karl Wiberg
588c548657 GN rtc_* templates: Set default visibility to webrtc_root + "/*"
This means that by default, targets are visible to everything under
the WebRTC root, but not visible to anything else.

API targets are manually tagged with visibility "*", so that targets
outside the WebRTC tree can see them.

BUG=webrtc:8254

Change-Id: Icdbee6e0d22d93240ff2fb530c8f9dc48e351509
Reviewed-on: https://webrtc-review.googlesource.com/24140
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21548}
2018-01-10 13:08:11 +00:00
henrika
e6aca637ce Avoids audio crash in combination with invalid audio session on iOS.
Bug: b/70899226
Change-Id: Ie4f92bb1477a29d6b18647e7667f760837a8f1c0
Reviewed-on: https://webrtc-review.googlesource.com/37201
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21522}
2018-01-08 16:29:52 +00:00
Mirko Bonadei
f641687a80 Forward fixing WebRTC to compile with Android NDK r16.
Starting from Chromium Roll [1], WebRTC should start to use NDK r16
for Android builds. The roll cannot be completed because of three
compilation errors:

../../sdk/android/src/jni/pc/androidnetworkmonitor.cc:15:9: error: 'RTLD_NOLOAD' macro redefined [-Werror,-Wmacro-redefined]
        ^
../../third_party/android_tools/ndk/sysroot/usr/include/dlfcn.h:62:9: note: previous definition is here

../../modules/audio_device/android/audio_record_jni.cc:251:41: error: format specifies type 'long long' but the argument has type 'jlong' (aka 'long') [-Werror,-Wformat]
  ALOGD("direct buffer capacity: %lld", capacity);

../../modules/audio_device/android/audio_track_jni.cc:229:41: error: format specifies type 'long long' but the argument has type 'jlong' (aka 'long') [-Werror,-Wformat]
  ALOGD("direct buffer capacity: %lld", capacity);

This CL forward fixes these errors in order to fix the Chromium Roll
into WebRTC.

[1] - https://webrtc-review.googlesource.com/c/src/+/37540

Bug: webrtc:8710
Change-Id: I5bc64e73919eee7c9e965a442a386b5e1897b56a
Reviewed-on: https://webrtc-review.googlesource.com/37640
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21510}
2018-01-08 07:27:32 +00:00
Patrik Höglund
6d3ed718fb Add missing audio_device files.
Bug: webrtc:7650
Change-Id: Id1235fe4390415daa87e3a06663ac7da90c2ddc4
Reviewed-on: https://webrtc-review.googlesource.com/37680
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21500}
2018-01-05 13:06:09 +00:00
henrika
085bb64c85 Adds WebRTC.Audio.XXXRecordingDurationMs UMA stat on Android.
WebRTC.Audio.InitRecordingDurationMs and
WebRTC.Audio.StartRecordingDurationMs UMA stats are added on Android
to measure the time consumed on these two methods where the main part
of the work is done in Java.

Bug: b/67854242
Change-Id: I2d5487511402db18009d66a39c66d3f10d98cdd6
Reviewed-on: https://webrtc-review.googlesource.com/37420
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21494}
2018-01-04 13:03:39 +00:00
henrika
3b116ad3d8 Check keepAlive before calling nativeDataIsRecording (reland)
Restores work done in https://chromium-review.googlesource.com/c/external/webrtc/+/613501
which was accidently removed.

TBR=glaznev

Bug: b/64174142
Change-Id: I518a5b10d0ece5fd93bae02811789edaf1d70456
Reviewed-on: https://webrtc-review.googlesource.com/37083
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21490}
2018-01-04 10:05:58 +00:00
Patrik Höglund
d420903185 Add missing audio_device .h files.
Bug: webrtc:7650
Change-Id: Ifbfcac49da9f761f666c6ff22b934e3a3ab783fd
Reviewed-on: https://webrtc-review.googlesource.com/37003
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21482}
2018-01-03 13:59:06 +00:00
Magnus Jedvert
9185bde7ee Android: Remove GetThreadInfo()
This CL is part of merging the helper functions for audio and non-audio JNI code.
The GetThreadInfo() function is unrelated to JNI and I would prefer not to keep
it in a JNI helper file. Also, GetThreadInfo() is a very small function and inlining
it makes it simpler and more transparent IMO, as well as removing a lot of unnecessary
std::string creations.

Bug: webrtc:8689
Change-Id: I7d238fee826d310c0f5343d18b92d0dff864fd6a
Reviewed-on: https://webrtc-review.googlesource.com/36302
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21466}
2018-01-02 10:32:21 +00:00
Joachim Bauch
75f18fca8e Make building with X11 libraries optional.
Desktop capturing on Linux will be disabled in this case, but everything
can be built without any X11 development libraries installed.

BUG=webrtc:5716,webrtc:8319

Change-Id: I01bd6a4b02816b407be19476e22ff073d264b496
Reviewed-on: https://webrtc-review.googlesource.com/32360
Reviewed-by: Henrik Andreassson (OOO until Jan 2) <henrika@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Joachim Bauch <jbauch@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21462}
2017-12-31 14:31:08 +00:00
Alex Glaznev
9e17217736 Revert "Now uses AudioRecord.Builder on Android again."
This reverts commit e7a5567954e43d1560e07770155c6ed66c6b9df2.

Reason for revert: Causes crashes when no permissions are granted - b/71056584

TBR=henrika@webrtc.org

Original change's description:
> Now uses AudioRecord.Builder on Android again.
>
> I tried to land the same change by reverting https://webrtc-review.googlesource.com/c/src/+/34443
> but the revert failed and I therefore land it manually here instead.
>
> TBR=glaznev@webrtc.org
>
> Bug: b/32742417
> Change-Id: Ied8ed3e7c7d67c51f781e39cbea952a2303278d9
> Reviewed-on: https://webrtc-review.googlesource.com/34442
> Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
> Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#21351}

TBR=henrika@webrtc.org,glaznev@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: b/32742417
Change-Id: I8fd27d4b8c7d5a04f24477fc0ddffae89f01d566
Reviewed-on: https://webrtc-review.googlesource.com/36463
Commit-Queue: Alex Glaznev <glaznev@webrtc.org>
Reviewed-by: Alex Glaznev <glaznev@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21456}
2017-12-28 00:37:00 +00:00
henrika
b4834b3696 Removes deprecated AGC APIs from the AMD interface.
Usage of these APIs are now removed in Chrome as well.

TBR=solenberg

Bug: webrtc:7306
Change-Id: Id20e67bb2ba4e0bad1dd152030e4085631939d6a
Reviewed-on: https://webrtc-review.googlesource.com/36080
Reviewed-by: Henrik Andreassson (OOO until Jan 2) <henrika@webrtc.org>
Commit-Queue: Henrik Andreassson (OOO until Jan 2) <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21424}
2017-12-22 11:36:23 +00:00
Joachim Bauch
5d2bb36b95 Fix linker error when building without internal audio device.
Bug: webrtc:8678
Change-Id: I30f0d1aa7bec6931edb9e5ba00a6813dea1536ff
Reviewed-on: https://webrtc-review.googlesource.com/35480
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21408}
2017-12-21 09:50:00 +00:00
henrika
a5b34df778 Adds log to track when audio recording is released on Android.
Trivial change. Adding Alex as TBR. Same log exists for playout already.
This change makes is easier to compare logs.

NOTRY=TRUE
TBR=glaznev

Bug: NONE
Change-Id: I5dd23a4435d7816d8c171a0769132ac9d2f7f5aa
Reviewed-on: https://webrtc-review.googlesource.com/34654
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21361}
2017-12-19 14:15:20 +00:00
henrika
e7a5567954 Now uses AudioRecord.Builder on Android again.
I tried to land the same change by reverting https://webrtc-review.googlesource.com/c/src/+/34443
but the revert failed and I therefore land it manually here instead.

TBR=glaznev@webrtc.org

Bug: b/32742417
Change-Id: Ied8ed3e7c7d67c51f781e39cbea952a2303278d9
Reviewed-on: https://webrtc-review.googlesource.com/34442
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21351}
2017-12-19 09:43:10 +00:00
Fredrik Solenberg
2a8779763a Remove voe::TransmitMixer
TransmitMixer's functionality is moved into the AudioTransportProxy
owned by AudioState. This removes the need for an AudioTransport
implementation in VoEBaseImpl, which means that the proxy is no longer
a proxy, hence AudioTransportProxy is renamed to AudioTransportImpl.

In the short term, AudioState needs to know which AudioDeviceModule is
used, so it is added in AudioState::Config. AudioTransportImpl needs
to know which AudioSendStream:s are currently enabled to send, so
AudioState maintains a map of them, which is reduced into a simple
vector for AudioTransportImpl.

To encode and transmit audio,
AudioSendStream::OnAudioData(std::unique_ptr<AudioFrame> audio_frame)
is introduced, which is used in both the Chromium and standalone use
cases. This removes the need for two different instances of
voe::Channel::ProcessAndEncodeAudio(), so there is now only one,
taking an AudioFrame as argument. Callers need to allocate their own
AudioFrame:s, which is wasteful but not a regression since this was
already happening in the voe::Channel functions.

Most of the logic changed resides in
AudioTransportImpl::RecordedDataIsAvailable(), where two strange
things were found:

  1. The clock drift parameter was ineffective since
     apm->echo_cancellation()->enable_drift_compensation(false) is
     called during initialization.

  2. The output parameter 'new_mic_volume' was never set - instead it
     was returned as a result, causing the ADM to never update the
     analog mic gain
     (https://cs.chromium.org/chromium/src/third_party/webrtc/voice_engine/voe_base_impl.cc?q=voe_base_impl.cc&dr&l=100).

Besides this, tests are updated, and some dead code is removed which
was found in the process.

Bug: webrtc:4690, webrtc:8591
Change-Id: I789d5296bf5efb7299a5ee05a4f3ce6abf9124b2
Reviewed-on: https://webrtc-review.googlesource.com/26681
Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21301}
2017-12-15 16:48:57 +00:00
Patrik Höglund
3e113438b1 Fix circular dependencies in webrtc_common.
One reason for the circular deps is that common_types.h is a
historical dumping ground for various structs and defines that
are believed to be generally useful. I tried moving things out
that did not appear to be used downstream (StreamCounters,
RtpCounters etc) and moved the things that seemed used
(RtpHeader + supporting structs) to a new file api/rtp_headers.h.
This makes their place in the api more clear while moving out
the things that don't belong in the API in the first place.

I had to extract out typedefs.h from webrtc_common to resolve
another circular dependency. I believe checks includes typedefs,
but common depends on checks.

Bug: webrtc:7745
Change-Id: I725d49616b1ec0cdc8b74be7c078f7a4d46f084b
Reviewed-on: https://webrtc-review.googlesource.com/33001
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21295}
2017-12-15 14:33:26 +00:00
Patrik Höglund
a8005cfd8b Fix circular dependencies between optional, array_view, and rtc_base.
This splits things out of rtc_base and makes dependencies explicit.

Bug: webrtc:6828
Change-Id: Id521896c3c43595349021c857bec216e429a0c8d
Reviewed-on: https://webrtc-review.googlesource.com/32780
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21264}
2017-12-14 06:49:11 +00:00
henrika
e26456a4ed Removes usage of AGC APIs in the ADM.
Bug: webrtc:8598
Change-Id: I5ebc2e3549eba039797e40d2f8aea48341f3fe46
Reviewed-on: https://webrtc-review.googlesource.com/31520
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21254}
2017-12-13 16:32:21 +00:00
Patrik Höglund
d37709b659 Revert "Fix circular dependencies between optional, array_view, and rtc_base."
This reverts commit a9e0924fa7688c4e4558e179c6608ce1093e15f8.

Reason for revert: Breaks because of RTC_LAST_SYSTEM_ERROR

Original change's description:
> Fix circular dependencies between optional, array_view, and rtc_base.
> 
> This splits things out of rtc_base and makes dependencies explicit.
> 
> Bug: webrtc:6828
> Change-Id: Ib813c7bd9e4de7ab015acb917bc09ee7204ba7bd
> Reviewed-on: https://webrtc-review.googlesource.com/31940
> Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#21245}

TBR=phoglund@webrtc.org,kwiberg@webrtc.org

Change-Id: I1a5dcf2223f00ae7c46f9f2a12b990ab3a84397d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:6828
Reviewed-on: https://webrtc-review.googlesource.com/32760
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21251}
2017-12-13 14:56:33 +00:00
Patrik Höglund
a9e0924fa7 Fix circular dependencies between optional, array_view, and rtc_base.
This splits things out of rtc_base and makes dependencies explicit.

Bug: webrtc:6828
Change-Id: Ib813c7bd9e4de7ab015acb917bc09ee7204ba7bd
Reviewed-on: https://webrtc-review.googlesource.com/31940
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21245}
2017-12-13 13:44:21 +00:00
henrika
6c255cfe8c Clears direct_buffer_address_ when init recording fails on Android.
Avoids hitting a DCHECK in AudioRecordJni::OnCacheDirectBufferAddress()
when first init attempt has failed and we try again.

Bug: b/69434512
Change-Id: I4396ba22981d9258d6d72188bad66104255f19cf
Reviewed-on: https://webrtc-review.googlesource.com/31842
Reviewed-by: Alex Glaznev <glaznev@webrtc.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21218}
2017-12-12 08:25:57 +00:00
Mirko Bonadei
a498ae83ac Stop using public_deps in system_wrappers.
TBR=phoglund@webrtc.org

Bug: webrtc:8603
Change-Id: I5e515f0e4dc955a01460d69ba4e21bdfdf152d20
Reviewed-on: https://webrtc-review.googlesource.com/29104
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Edward Lemur <ehmaldonado@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21112}
2017-12-06 08:56:52 +00:00
henrika
f1978e5d1a Removes deprecated ADM APIs (reland)
Usage should now be removed and this change can be relanded.
It was reverted here: https://webrtc-review.googlesource.com/c/src/+/27200

NOTRY=TRUE
TBR=solenberg

Bug: webrtc:7306
Change-Id: I5191263e6cfd48952b59ff8f9af2e59c3e9eadef
Reviewed-on: https://webrtc-review.googlesource.com/29682
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21080}
2017-12-05 12:03:32 +00:00
Kári Tristan Helgason
86f8047cb7 Remove all code for iOS 8 and below.
Bug: webrtc:8455
Change-Id: I59ae663cea3d734090baa21843e84b8e0ad04c59
Reviewed-on: https://webrtc-review.googlesource.com/16080
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Daniela Jovanoska Petrenko <denicija@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20977}
2017-12-01 14:25:46 +00:00
Edward Lemur
1b7f988144 Roll Chromium + Fix Android lint suppressions
* Roll chromium_revision 5bd5874cbf..840e0f7269 (519731:520123)
* Suppress NewApi lint warnings from Chromium.
* Suppress NewApi lint warnings for WebRTCAudio{Track,Utils}.java
* Suppress deprecation warnings for
  FLAG_SHOW_WHEN_LOCKED and FLAG_TURN_SCREEN_ON in LayoutParams
  in examples/androidapp/src/org/appspot/apprtc/CallActivity.java

Change log: 5bd5874cbf..840e0f7269
Full diff: 5bd5874cbf..840e0f7269

Changed dependencies:
* src/base: fc034c4143..5dfdb70192
* src/build: f0766940d5..b1a63aeccd
* src/ios: 49bd74cee7..597d6a0451
* src/testing: 373652d16f..119295dad5
* src/third_party: 34c5bb433a..38215cc4ef
* src/third_party/android_tools: https://chromium.googlesource.com/android_tools.git/+log/9914c57047..a2e9bc7c1b
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/230a61040f..b0b1ce2c6e
* src/third_party/depot_tools: 1b30125fbc..9e51906ffb
* src/third_party/ffmpeg: 9cb03e5705..18c815f814
* src/tools: 8d915c324e..d5795c8019
DEPS diff: 5bd5874cbf..840e0f7269/DEPS

No update to Clang.

Bug: webrtc:8580
Change-Id: I6b78fd2d10c1f790a7606c19982f00c6a3dde968
Reviewed-on: https://webrtc-review.googlesource.com/26640
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Henrik Grunell <henrikg@webrtc.org>
Commit-Queue: Edward Lemur <ehmaldonado@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20958}
2017-11-30 16:59:50 +00:00
Lu Liu
f1f5654365 Revert "Removes deprecated ADM APIs (reland)."
This reverts commit 94f39301067b9fbf820100cbd4018aad3a32cc52.

Reason for revert: Broke internal builds

Original change's description:
> Removes deprecated ADM APIs (reland).
> 
> Usage should now be removed and this change can be relanded.
> It was reverted here: https://webrtc-review.googlesource.com/c/src/+/25320
> 
> TBR=solenberg
> 
> Bug: webrtc:7306
> Change-Id: I1afea773eff51bf5ec80711f0d7753ac0b7be77b
> Reviewed-on: https://webrtc-review.googlesource.com/27000
> Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
> Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20936}

TBR=henrika@webrtc.org

Change-Id: If91ff815fa69f7c36b0531e295f553a8c4a95590
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:7306
Reviewed-on: https://webrtc-review.googlesource.com/27221
Reviewed-by: Lu Liu <lliuu@webrtc.org>
Commit-Queue: Lu Liu <lliuu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20944}
2017-11-29 22:10:40 +00:00