This CL includes the patch from oprypin@webrtc.org, which is also applied
to the MIPS code (also affected), and the protobuf for ApmTest.Process
(audio_processing_unittest.cc), which used when WEBRTC_AUDIOPROC_FIXED_PROFILE
is set.
This change has been tested on mobile platforms.
Bug: webrtc:8200
Change-Id: Ic50a5ab57c16551397756b1fb473e1067b8e7ece
Reviewed-on: https://webrtc-review.googlesource.com/10811
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20394}
The 'parametricNoise' field is never initialized in the
'WebRtcNs_InitCore' function that initializes a 'NoiseSuppressionC'
struct.
This leads to use of unititialized value, which may affect the audio
output and result of the noise suppressor.
The issue was found by the Chrome fuzzer:
https://clusterfuzz.com/v2/testcase-detail/4749034115039232
Bug: chromium:776673
Change-Id: I1c3fd80cff178f2d5917064ad07f88c7b9a29e7d
Reviewed-on: https://webrtc-review.googlesource.com/14556
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20388}
UBSan will trigger when shifting a negative value. This change avoids
that by replacing "x << 8" with "x * (1 << 8)".
Bug: chromium:666877
Change-Id: Ic89bd98e5a3feff35075df96b104b386cb4d8803
Reviewed-on: https://webrtc-review.googlesource.com/14552
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20387}
To make testing easier all of PacketQueues functions have been made virtual,
and PacketQueue2 now inherits PacketQueue. This change was made to minimize
changes in PacedSender.
Bug: webrtc:8287, webrtc:8288
Change-Id: I2593340e7cc7da617370b0a33e7b9deeb46d9487
Reviewed-on: https://webrtc-review.googlesource.com/9380
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20385}
It was used only in tests.
Bug: webrtc:8422
Change-Id: I67b58663c171202240d1c5a7c230d6cd4cd6149b
Reviewed-on: https://webrtc-review.googlesource.com/13102
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20382}
Internally in NetEq, an FEC packet looks very similar to a split packet, which caused NetEq to miscalculate the frame length of FEC packets. This incorrect framelength calculation was incorrectly handled as a framelength change by NetEq.
Bug: webrtc:8410
Change-Id: Icaea961d055e49d7726b87811881db0b9149805b
Reviewed-on: https://webrtc-review.googlesource.com/12420
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20373}
Fixes the warning below:
WebRtcAudioTrack.java:364: warning: [StaticAccessedFromInstance] Static method getMaxVolume
should not be accessed from an object instance; instead use AudioTrack.getMaxVolume
+ "max gain: " + audioTrack.getMaxVolume());
Bug: NONE
Change-Id: I6247584b65ac972a6a3739fba718387873964f9f
Reviewed-on: https://webrtc-review.googlesource.com/14180
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20371}
AddRef() now returns void, and Release() returns an enum
RefCountReleaseStatus, to indicate whether or not this Release
call implied deletion.
Bug: webrtc:8270
Change-Id: If2fb77f26118b61751b51c856af187c72112c630
Reviewed-on: https://webrtc-review.googlesource.com/3320
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20366}
For unique_ptrs assigned at construction time, declare them const, and
use RTC_PT_GUARDED_BY rather than RTC_GUARDED_BY.
Bug: None
Change-Id: I8aa83e062a1550780ee07792c1fbb195267d5524
Reviewed-on: https://webrtc-review.googlesource.com/12923
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20348}
4 new counters added to SendStatisticsProxy and reported to UMA and logs.
Bug: webrtc:8355
Change-Id: Idf9b8dfc295c92821e058a97cb3894dc6a446082
Reviewed-on: https://webrtc-review.googlesource.com/12260
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20347}
The struct containing the config for AEC3 is removed from
AudioProcessing::Config and is put in a new struct called
EchoCanceller3Config.
AEC3 should no longer be activated through
AudioProcessing::ApplyConfig. Instead an EchoCanceller3Factory
can be injected at AudioProcessing creation.
Bug: webrtc:8346
Change-Id: I27e3592e675eec3632a60c45d9e0d12514c2c567
Reviewed-on: https://webrtc-review.googlesource.com/11420
Reviewed-by: Per Åhgren <peah@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20342}
If the previous value of the histogram is unknown, no scaling should be performed. Without this check a crash would occur. This issue was introduced in https://webrtc-review.googlesource.com/c/src/+/8101, and can only be triggered if the corresponding field trial is set.
Bug: webrtc:8381
Change-Id: I6e7cd8e14f6f4cc972fc094f010ecdf5091b2017
Reviewed-on: https://webrtc-review.googlesource.com/12380
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20336}
We added a new bot to client.webrtc.fyi (https://build.chromium.org/p/client.webrtc.fyi/builders/Win%20%28more%20configs%29).
It seems it is spotting some unsafe conversions and this CL is a test to see if we can use rtc::dchecked_cast to fix them:
../../modules/audio_coding/neteq/neteq_unittest.cc(547): error C2220: warning treated as error - no 'object' file generated
../../modules/audio_coding/neteq/neteq_unittest.cc(547): warning C4267: '=': conversion from 'size_t' to 'uint16_t', possible loss of data
../../modules/audio_coding/neteq/neteq_unittest.cc(548): warning C4267: '=': conversion from 'size_t' to 'uint32_t', possible loss of data
../../modules/audio_coding/neteq/neteq_unittest.cc(977): warning C4267: '+=': conversion from 'size_t' to 'uint32_t', possible loss of data
../../modules/audio_coding/neteq/neteq_unittest.cc(979): warning C4267: '+=': conversion from 'size_t' to 'uint32_t', possible loss
Bug: chromium:759980
Change-Id: Icd0f32ccf620c7c6642fadff797dc2482918648d
No-Try: True
Reviewed-on: https://webrtc-review.googlesource.com/12921
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20335}
This reverts commit 54d1da13a5.
Reason for revert: Breaking tests
Original change's description:
> BWE allocation strategy allows controlling of bitrate allocation with WEBRTC external logic.
>
> This CL implements the main logic and IOS appRTC integration.
>
> Unit tests and Android appRTC will be in separate CL.
>
> Bug: webrtc:8243
> Change-Id: If8e5195294046a47316e9fade1b0dfec211155e1
> Reviewed-on: https://webrtc-review.googlesource.com/4860
> Commit-Queue: Alex Narest <alexnarest@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20329}
TBR=deadbeef@webrtc.org,nisse@webrtc.org,stefan@webrtc.org,alexnarest@webrtc.org
Change-Id: I5be1da78f360f72be66f9d56dd6b88c1cc13e963
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8243
Reviewed-on: https://webrtc-review.googlesource.com/12560
Reviewed-by: Lu Liu <lliuu@webrtc.org>
Commit-Queue: Lu Liu <lliuu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20330}
This CL implements the main logic and IOS appRTC integration.
Unit tests and Android appRTC will be in separate CL.
Bug: webrtc:8243
Change-Id: If8e5195294046a47316e9fade1b0dfec211155e1
Reviewed-on: https://webrtc-review.googlesource.com/4860
Commit-Queue: Alex Narest <alexnarest@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20329}
Extract and save some simple annotations for the clean speech input.
The annotations are estimated level, VAD (assuming clean speech) and speech level.
TBR=
Bug: webrtc:7494
Change-Id: Id73358e228fac721a77fc8a61a3474a5d52bdc84
Reviewed-on: https://webrtc-review.googlesource.com/12321
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20327}
We are using <math.h>, not <cmath>. While the latter defines additional
overloads for abs(), including abs(float), they are not guaranteed to be
available in <math.h>.
libc++ ships its own math.h with the additional overloads, and libstdc++ (v6
or later) has a math.h that includes <cmath>, but this is not always
expected to work: for example, GCC 5.x's libstdc++ does not have these
additional overloads and causes the build to fail.
Just use fabsf() from the C standard library directly, as it achieves the
same thing in a more portable fashion.
Bug: None
Change-Id: I805728269b35051edb54126e204eccd2706e3a92
Reviewed-on: https://webrtc-review.googlesource.com/11460
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Raphael Kubo da Costa (rakuco) <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#20325}
PacedSender::probing_send_failure_ and PacedSender::packet_counter_ should probably also be protected by the critical section.
(This isn't the cause of webrtc:8331.)
TBR=stefan@webrtc.org
Bug: webrtc:8331
Change-Id: I94ebe77341137aa511c736d18a63e3e8ec0d1bac
Reviewed-on: https://webrtc-review.googlesource.com/12220
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20324}
This CL changes the filter delay detection to rely on the largest peak
while the correctness of the filter is changed to be based on the
performance achieved by the filter.
Bug: webrtc:8397,chromium:774867
Change-Id: I70c953815192478f9a8e0da9f2b8fd9edac3f481
Reviewed-on: https://webrtc-review.googlesource.com/10803
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20321}
This CL changes the AEC3 behavior to be more transparent when there
is uncertainty about the amount of echo in the microphone signal.
Bug: webrtc:8398, chromium:774868
Change-Id: I88e681f8decd892f44397b753df371a1c4b90af0
Reviewed-on: https://webrtc-review.googlesource.com/10801
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20319}
Echo Control is enabled in capture_nonlocked_ when injected.
Renamed echo_canceller3_enabled to echo_controller_enabled.
Bug: webrtc:8346
Change-Id: Icf441f07ce64719358841544da7579feeb7cfdbb
Reviewed-on: https://webrtc-review.googlesource.com/10808
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20311}
...and at least one of our compilers (Visual Studio 64-bit) complains
about it.
BUG=none
Change-Id: I271334f4da564690ff2a16a8322e7ed4a00ae173
Reviewed-on: https://webrtc-review.googlesource.com/10809
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20309}
TBR=sprang@webrtc.org
This is a reland of af721b72cc
Original change's description:
> Remove sent framerate and bitrate calculations from MediaOptimization.
>
> Add RateTracker for sent framerate and bitrate in SendStatisticsProxy.
>
> Store sent frame info in map to solve potential issue where sent framerate statistics could be
> incorrect.
>
> Bug: webrtc:8375
> Change-Id: I4a6e3956013438a711b8c2e73a8cd90c52dd1210
> Reviewed-on: https://webrtc-review.googlesource.com/7880
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Commit-Queue: Åsa Persson <asapersson@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20225}
Bug: webrtc:8375
Change-Id: I06ea90ae8646ba11ddd8ddceb82ea82d75ae2109
Reviewed-on: https://webrtc-review.googlesource.com/11320
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20308}
Unit test now checks that ADM:Init() works before any test runs.
It means that all tests will be skipped on bots that lack Pulse
support which is as how it worked before this CL as well. But then,
we detected the lack of support by checking that the audio layer had
changed from Pulse to Alsa.
As a consequence, I also decided to inject fake/mock ADMs in more
unit tests. One was actually already injected for other reasons
(see https://codereview.webrtc.org/2997383002/) but it had accidentally
been "reverted" later in combination with other changes.
To summarize: before this change we had a set of unit tests where real
audio was tested but it was not the intention of the test or required.
In addition, some Linux bots (VM:s) did not support PulseAudio and on
them the tests relied on a fallback mechanism to ALSA to work, i.e.,
we had a rather complex dependency on hardware. This dependency has now
been removed and it should result in more stable tests.
Bug: webrtc:7306, webrtc:7806
Change-Id: Ia0485658c04a4ef3b3f2dc0d557d73738067304b
Reviewed-on: https://webrtc-review.googlesource.com/8640
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20307}
Since WEBRTC_ANDROID is defined by WebRTC while ANDROID is defined by
Chromium we should stop using ANDROID in WebRTC source code.
Bug: webrtc:8400
Change-Id: I1d59caaabd8af2423e86476b72e0e9185e6c7a3a
No-Try: True
Reviewed-on: https://webrtc-review.googlesource.com/10805
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20306}
Added EchoCanceller3Factory that implements EchoControlFactory and can
be used for injecting EchoCanceller3 into Audio Processing Module.
Renamed InitializeEchoCanceller3 to InitializeEchoController.
Bug: webrtc:8346
Change-Id: I47078da6a49aca1ee41f6a9d5b7b8e91bb5c11a3
Reviewed-on: https://webrtc-review.googlesource.com/9220
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20299}
Specifically:
ScreenCapturerTest.StartCapture
ScreenCapturerTest.Capture
WindowCapturerTest.Capture
Also adding a DCHECK for the capturer actually being created, since it
seems like that's the problem.
TBR=zijiehe@chromium.org
Bug: webrtc:7830
Change-Id: I200dc0c15f5039b95f591597bc00d3f1084ae876
Reviewed-on: https://webrtc-review.googlesource.com/9562
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20297}
The field trial effects two things: after a frame length change the IAT
histogram is scaled to prevent an immediate change in target buffer
level. Also, the peak history in the delay peak detector is cleared,
because the size of the peaks is stored in number of packets (which
will be incorrect after a frame length change).
Bug: webrtc:8381
Change-Id: I214b990f6e5959b655b6542884a7f75da181a0d8
Reviewed-on: https://webrtc-review.googlesource.com/8101
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20284}
Nothing is different from the original change.
The original change was reverted because it was thought it might
have caused an outage for the windows bots. (It didn't.)
This is a reland of 28addd03c1
Original change's description:
> Make it possible to isolate bwe_simulations_tests
>
> Add missing data dependencies and add it to gn_isolate_map.pyl
>
> Bug: chromium:749648
> Change-Id: I6b6c1bb2e4d647471a2747042788a691ce2e1e5d
> Reviewed-on: https://webrtc-review.googlesource.com/8721
> Commit-Queue: Edward Lemur <ehmaldonado@webrtc.org>
> Reviewed-by: Henrik Kjellander <kjellander@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20258}
Bug: chromium:749648
No-Try: true
Change-Id: I5531c5f8b58e0d5b8b6ceeea90acb4bd8e6e6e4f
Reviewed-on: https://webrtc-review.googlesource.com/9320
Commit-Queue: Edward Lemur <ehmaldonado@webrtc.org>
Reviewed-by: Edward Lemur <ehmaldonado@webrtc.org>
Reviewed-by: Henrik Kjellander <kjellander@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20280}