Commit Graph

59 Commits

Author SHA1 Message Date
4e199e9f08 Mark DirectTransport subclasses ctors as deprecated and switch from them
Bug: webrtc:9630
Change-Id: I6e7bf898fd95ef76758458e759d9f9aa381f89e1
Reviewed-on: https://webrtc-review.googlesource.com/94843
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24345}
2018-08-20 12:05:05 +00:00
46c4e60939 Introduce SimulatedNetworkReceiverInterface.
Introduce SimulatedNetworkReceiverInterface and switch DirectTransport
on this interface. Also switch part of related users on
DefaultNetworkSimulationConfig.

This two changes united into single CL to prevent work duplication.
Most changes were done because of stop including fake_network_pipe.h
into direct_transport.h, so splitting this into 2 CLs will require
first fix all imports of fake_network_pipe.h and then replace them
on new API imports again.

Bug: webrtc:9630
Change-Id: I87d4a6ff1bab72d04a9871a40441f4fbe028f4e6
Reviewed-on: https://webrtc-review.googlesource.com/94762
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24336}
2018-08-20 07:23:41 +00:00
264bee8bab Remove memcheck.
Since the linux_memcheck trybot is no more, this CL removes all the
code needed to make it work.

Bug: webrtc:7737, webrtc:8356, webrtc:9570
Change-Id: I09a9467b8bf895146a3384c2c915b54662721af6
Reviewed-on: https://webrtc-review.googlesource.com/90863
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24201}
2018-08-07 07:40:08 +00:00
3890262ac5 Reland "Removing unneeded dependency."
This is a reland of 06f66c72600e58438ba9caf9f523e00a519ef3c0

Original change's description:
> Removing unneeded dependency.
>
> The //audio build target does not depend on the
> builtin_audio_encoder_factory, this CL removes it from the dependency
> list in order to avoid to propagate symbols that are not supposed to
> be there.
>
> Bug: webrtc:9528
> Change-Id: Ib3868ee93f61057f61283faaa83e0633ebfdea90
> Reviewed-on: https://webrtc-review.googlesource.com/89002
> Reviewed-by: Yves Gerey <yvesg@webrtc.org>
> Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#24019}

TBR: yvesg@webrtc.org
Bug: webrtc:9528
Change-Id: I696140d5255c659de69430a2c24fcb364eed3c19
Reviewed-on: https://webrtc-review.googlesource.com/89401
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24045}
2018-07-19 18:23:49 +00:00
a61f7db9ae Revert "Removing unneeded dependency."
This reverts commit 06f66c72600e58438ba9caf9f523e00a519ef3c0.

Reason for revert: Breaks downstream project.

Original change's description:
> Removing unneeded dependency.
> 
> The //audio build target does not depend on the
> builtin_audio_encoder_factory, this CL removes it from the dependency
> list in order to avoid to propagate symbols that are not supposed to
> be there.
> 
> Bug: webrtc:9528
> Change-Id: Ib3868ee93f61057f61283faaa83e0633ebfdea90
> Reviewed-on: https://webrtc-review.googlesource.com/89002
> Reviewed-by: Yves Gerey <yvesg@webrtc.org>
> Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#24019}

TBR=mbonadei@webrtc.org,ossu@webrtc.org,yvesg@webrtc.org

Change-Id: Icf8f0ad4e7f5cce96fa1c0491a281ef2fd2e713f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9528
Reviewed-on: https://webrtc-review.googlesource.com/89400
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24023}
2018-07-18 14:42:31 +00:00
06f66c7260 Removing unneeded dependency.
The //audio build target does not depend on the
builtin_audio_encoder_factory, this CL removes it from the dependency
list in order to avoid to propagate symbols that are not supposed to
be there.

Bug: webrtc:9528
Change-Id: Ib3868ee93f61057f61283faaa83e0633ebfdea90
Reviewed-on: https://webrtc-review.googlesource.com/89002
Reviewed-by: Yves Gerey <yvesg@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24019}
2018-07-18 12:23:03 +00:00
918f50c5d1 Use absl::make_unique and absl::WrapUnique directly
Instead of going through our wrappers in ptr_util.h.

This CL was generated by the following script:

  git grep -l ptr_util | xargs perl -pi -e 's,#include "rtc_base/ptr_util.h",#include "absl/memory/memory.h",'
  git grep -l MakeUnique | xargs perl -pi -e 's,\b(rtc::)?MakeUnique\b,absl::make_unique,g'
  git grep -l WrapUnique | xargs perl -pi -e 's,\b(rtc::)?WrapUnique\b,absl::WrapUnique,g'
  git checkout -- rtc_base/ptr_util{.h,_unittest.cc}
  git cl format

Followed by manually adding dependencies on
//third_party/abseil-cpp/absl/memory until `gn check` stopped
complaining.

Bug: webrtc:9473
Change-Id: I89ccd363f070479b8c431eb2c3d404a46eaacc1c
Reviewed-on: https://webrtc-review.googlesource.com/86600
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23850}
2018-07-05 10:59:49 +00:00
b9b146c9fe Replace rtc::Optional with absl::optional in audio, call and video
This is a no-op change because rtc::Optional is an alias to absl::optional

This CL generated by running script with parameters 'audio call video':
#!/bin/bash
find $@ -type f \( -name \*.h -o -name \*.cc \) \
-exec sed -i 's|rtc::Optional|absl::optional|g' {} \+ \
-exec sed -i 's|rtc::nullopt|absl::nullopt|g' {} \+ \
-exec sed -i 's|#include "api/optional.h"|#include "absl/types/optional.h"|' {} \+

find $@ -type f -name BUILD.gn \
-exec sed -r -i 's|"(../)*api:optional"|"//third_party/abseil-cpp/absl/types:optional"|' {} \+;

git cl format

Bug: webrtc:9078
Change-Id: I02c5db956846a88a268a300ba086703a02d62e36
Reviewed-on: https://webrtc-review.googlesource.com/83722
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23628}
2018-06-15 12:09:49 +00:00
5f83cf0c6d Replacing rtc::TimeDelta with webrtc::TimeDelta.
This removes the redundant type and replaces all usages. A slight change
in behavior is that we no longer get nanosecond resolution. This should
not matter since no current code requires nanosecond resolution.

Bug: webrtc:9155
Change-Id: I04334e08c686d95731621a6c8a7e40400d0ae3b2
Reviewed-on: https://webrtc-review.googlesource.com/71163
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23174}
2018-05-08 13:22:53 +00:00
bbf21a3fd6 Remove dependencies on modules:module_api from AudioProcessing.
- Directly include api/audio/audio_frame.h everywhere AudioFrame is used.
- This *will* remove transient dependencies on libjpeg and a bunch of other things from the e.g. APM.
- audio_frame.h still included from module_common_types.h for backwards compatibility with clients.

Bug: webrtc:9139, webrtc:7504
Change-Id: Id96f9268c01667fbcc29a01f5c1dd25a37836897
Reviewed-on: https://webrtc-review.googlesource.com/62464
Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22845}
2018-04-12 22:05:27 +00:00
abbe841721 This CL removes all usages of our custom ostream << overloads.
This prepares us for removing them altogether.

Bug: webrtc:8982
Change-Id: I66002cc8d4bf0e07925766d568d2498422f0f38e
Reviewed-on: https://webrtc-review.googlesource.com/64142
Commit-Queue: Jonas Olsson <jonasolsson@webrtc.org>
Reviewed-by: Henrik Grunell <henrikg@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22707}
2018-04-03 12:51:00 +00:00
9c1ee368e0 Fix low_bandwidth_audio_perf_test resource dependency on Android
The executable that's pushed to the device must depend on all
files that need to be on the device.

No-Try: True
TBR: phoglund@webrtc.org
Bug: chromium:755660
Change-Id: Iee041bd51e789e3ce6612fbda1582286a5cf4680
Reviewed-on: https://webrtc-review.googlesource.com/62961
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22494}
2018-03-19 15:02:51 +00:00
7b2676fee9 Fix low_bandwidth_audio_perf_test binary dependency on Windows
The split in https://webrtc-review.googlesource.com/c/src/+/62660
broke it.

No-Try: True
Bug: chromium:755660
Change-Id: I664f022cac9f8e7e0bb64a7cb59992f030543aa6
Reviewed-on: https://webrtc-review.googlesource.com/62801
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22486}
2018-03-19 10:54:11 +00:00
8cf0a87bc3 Reland "Split perf-test-specific resources in low_bandwidth_audio_test"
This is a reland of 4bbc150b18e961811991e3e524378e703b6d5b31

Now with explicitly specified `write_runtime_deps`

Original change's description:
> Split perf-test-specific resources in low_bandwidth_audio_test
>
> Bug: chromium:755660
> Change-Id: I7c60a47b26ad86892218497f28a09a04574077e6
> Reviewed-on: https://webrtc-review.googlesource.com/61961
> Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
> Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22439}

Bug: chromium:755660
TBR: phoglund@webrtc.org
Change-Id: I3d4bcc5156ee25de399ab23773ecb73cd995075c
Reviewed-on: https://webrtc-review.googlesource.com/62660
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22483}
2018-03-19 09:30:01 +00:00
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
650a826cda Revert "Reland "Split perf-test-specific resources in low_bandwidth_audio_test""
This reverts commit b3808dcc36e4dca8b3d2b68c79e20c5888397690.

Reason for revert: Still fails to generate runtime_deps

Original change's description:
> Reland "Split perf-test-specific resources in low_bandwidth_audio_test"
> 
> This is a reland of 4bbc150b18e961811991e3e524378e703b6d5b31
> 
> Now using rtc_source_set to be able to generate runtime deps
> 
> Original change's description:
> > Split perf-test-specific resources in low_bandwidth_audio_test
> >
> > Bug: chromium:755660
> > Change-Id: I7c60a47b26ad86892218497f28a09a04574077e6
> > Reviewed-on: https://webrtc-review.googlesource.com/61961
> > Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
> > Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#22439}
> 
> No-Try: True
> Bug: chromium:755660
> Change-Id: I66eda6f016c98e2a8a99f230d9e0323cc09e4976
> Reviewed-on: https://webrtc-review.googlesource.com/62020
> Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
> Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22450}

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

Change-Id: I781e3172416164e6d313574a31e4c982de8bcd9c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:755660
Reviewed-on: https://webrtc-review.googlesource.com/62120
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22454}
2018-03-15 13:52:47 +00:00
b3808dcc36 Reland "Split perf-test-specific resources in low_bandwidth_audio_test"
This is a reland of 4bbc150b18e961811991e3e524378e703b6d5b31

Now using rtc_source_set to be able to generate runtime deps

Original change's description:
> Split perf-test-specific resources in low_bandwidth_audio_test
>
> Bug: chromium:755660
> Change-Id: I7c60a47b26ad86892218497f28a09a04574077e6
> Reviewed-on: https://webrtc-review.googlesource.com/61961
> Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
> Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22439}

No-Try: True
Bug: chromium:755660
Change-Id: I66eda6f016c98e2a8a99f230d9e0323cc09e4976
Reviewed-on: https://webrtc-review.googlesource.com/62020
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22450}
2018-03-15 13:04:57 +00:00
aaa882cea5 Revert "Split perf-test-specific resources in low_bandwidth_audio_test"
This reverts commit 4bbc150b18e961811991e3e524378e703b6d5b31.

Reason for revert: Breaks on perf Mac bot
https://build.chromium.org/p/client.webrtc.perf/builders/Mac%2010.11/builds/5696

Original change's description:
> Split perf-test-specific resources in low_bandwidth_audio_test
> 
> Bug: chromium:755660
> Change-Id: I7c60a47b26ad86892218497f28a09a04574077e6
> Reviewed-on: https://webrtc-review.googlesource.com/61961
> Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
> Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22439}

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

Change-Id: I235301020417416745c1e754b4dd57726dfb27ea
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:755660
Reviewed-on: https://webrtc-review.googlesource.com/61980
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22442}
2018-03-15 10:47:47 +00:00
4bbc150b18 Split perf-test-specific resources in low_bandwidth_audio_test
Bug: chromium:755660
Change-Id: I7c60a47b26ad86892218497f28a09a04574077e6
Reviewed-on: https://webrtc-review.googlesource.com/61961
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22439}
2018-03-15 10:22:56 +00:00
3faa832247 Separate test/fake_audio_device on API and implementation. Step 2.
Switch WebRTC internal usage of FakeAudioDevice on TestAudioDeviceModule.

Bug: webrtc:8946
Change-Id: I96b8b5d3b475d2197662e9007f836bd71f8ed04d
Reviewed-on: https://webrtc-review.googlesource.com/60521
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22388}
2018-03-12 16:14:39 +00:00
12edf4ce34 Separate build target for rtc_base/numerics/safe_minmax.h
So that we can avoid dependency cycles.

Bug: none
Change-Id: I821d9f1319dff01403d6e4e310cbb2d4b2b125e8
Reviewed-on: https://webrtc-review.googlesource.com/60500
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22328}
2018-03-07 14:12:00 +00:00
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
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
fef0500aa7 Adding a new string utility class: SimpleStringBuilder.
This is a fairly minimalistic string building class that
can be used instead of stringstream, which is discouraged
but tempting to use due to its convenient interface and
familiarity for anyone using our logging macros.

As a starter, I'm changing the string building code in
ReceiveStatisticsProxy and SendStatisticsProxy from using
stringstream and using SimpleStringBuilder instead.

In the case of SimpleStringBuilder, there's a single allocation,
it's done on the stack (fast), and minimal code is required for
each concatenation. The developer is responsible for ensuring
that the buffer size is adequate but the class won't overflow
the buffer.  In dcheck-enabled builds, a check will go off if
we run out of buffer space.

As part of using SimpleStringBuilder for a small part of
rtc::LogMessage, a few more changes were made:
- SimpleStringBuilder is used for formatting errors instead of ostringstream.
- A new 'noop' state has been introduced for log messages that will be dropped.
- Use a static (singleton) noop ostream object for noop logging messages
  instead of building up an actual ostringstream object that will be dropped.
- Add a LogMessageForTest class for better state inspection/testing.
- Fix benign bug in LogTest.Perf, change the test to not use File IO and
  always enable it.
- Ensure that minimal work is done for noop messages.
- Remove dependency on rtc::Thread.
- Add tests for the extra_ field, correctly parsed paths and noop handling.

Bug: webrtc:8529, webrtc:4364, webrtc:8933
Change-Id: Ifa258c135135945e4560d9e24315f7d96f784acb
Reviewed-on: https://webrtc-review.googlesource.com/55520
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Jonas Olsson <jonasolsson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22203}
2018-02-27 13:37:39 +00:00
f35c6667d6 Separate build targets for aec3 and aec3_unittests
Bug: webrtc:8844
Change-Id: Id6a98eae19aaedc87c3f402a004f58f0290d5c28
Reviewed-on: https://webrtc-review.googlesource.com/56580
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22173}
2018-02-23 13:16:16 +00:00
ef9daee934 Using mock transport controller in audio unit tests.
Using a mock of rtp transport controller send in audio send stream unit
tests. This reduces the dependencies and makes the tests more focused
on testing the functionality of audio send stream itself.

Bug: webrtc:8415
Change-Id: Ia8d9cf47d93decc74b10ca75a6771f39df658dc2
Reviewed-on: https://webrtc-review.googlesource.com/56600
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22161}
2018-02-22 17:32:25 +00:00
1896cece01 Removed dependencies from audio send stream unit test
The audio send stream unit tests did not use the mocks injected to the
fake rtp transport controller send. This CL prepares for removing the
fake controller which makes it harder to refactor the rtp transport
controller interface.

Bug: webrt:8415
Change-Id: I73f7d105e66f9beb80aeaa92f3490cd61c80c5b8
Reviewed-on: https://webrtc-review.googlesource.com/54302
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22102}
2018-02-20 15:05:57 +00:00
2ae140ae7e BUILD.gn file for api/audio.
Targets containing files in api/audio are moved from api/BUILD.gn to
api/audio/BUILD.gn.

Bug: webrtc:8844
Change-Id: Ib7ea4b7eb3c2ea38ef8261a1fc5c2b4674985981
Reviewed-on: https://webrtc-review.googlesource.com/54360
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22074}
2018-02-19 10:38:29 +00:00
e4be6dad65 Removing access to send side cc in rtp controller.
This CL removes direct access to SendSideCongestionController (SSCC) via
the RtpTransportControllerSend interface and replaces all usages with
calls on RtpTransportControllerSend which will in turn calls SSCC. This
prepares for later refactor of RtpTransportControllerSend.

Bug: webrtc:8415
Change-Id: I68363a3ab0203b95579f747402a1e7f58a5eeeb5
Reviewed-on: https://webrtc-review.googlesource.com/53860
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22044}
2018-02-16 10:40:48 +00:00
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
970b088878 Reland "Break up rtc_event_log_api to solve circular dependencies."
This is a reland of 001546da953275c7a39eb220592b440c9b47d756
Original change's description:
> Break up rtc_event_log_api to solve circular dependencies.
>
> The original rtc_event_log_api is refactored to a pure API target plus
> multiple targets coupled with WebRTC implementations.
>
> Bug: None
> Change-Id: Iab9eee3f7bf4228c52d94a5f26fc39bb99b5033f
> Reviewed-on: https://webrtc-review.googlesource.com/43247
> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> Reviewed-by: Björn Terelius <terelius@webrtc.org>
> Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> Commit-Queue: Qingsi Wang <qingsi@google.com>
> Cr-Commit-Position: refs/heads/master@{#21811}

TBR=pthatcher@webrtc.org,deadbeef@webrtc.org,terelius@webrtc.org,stefan@webrtc.org

Bug: None
Change-Id: I3e7213733741cbfd5dd0076f32209e6bc42a0647
Reviewed-on: https://webrtc-review.googlesource.com/46900
Commit-Queue: Qingsi Wang <qingsi@google.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21862}
2018-02-01 22:47:52 +00:00
75df7282eb Revert "Break up rtc_event_log_api to solve circular dependencies."
This reverts commit 001546da953275c7a39eb220592b440c9b47d756.

Reason for revert: breaks downstream projects.

Original change's description:
> Break up rtc_event_log_api to solve circular dependencies.
> 
> The original rtc_event_log_api is refactored to a pure API target plus
> multiple targets coupled with WebRTC implementations.
> 
> Bug: None
> Change-Id: Iab9eee3f7bf4228c52d94a5f26fc39bb99b5033f
> Reviewed-on: https://webrtc-review.googlesource.com/43247
> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> Reviewed-by: Björn Terelius <terelius@webrtc.org>
> Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> Commit-Queue: Qingsi Wang <qingsi@google.com>
> Cr-Commit-Position: refs/heads/master@{#21811}

TBR=phoglund@webrtc.org,deadbeef@webrtc.org,terelius@webrtc.org,stefan@webrtc.org,pthatcher@google.com,pthatcher@webrtc.org,qingsi@google.com

Change-Id: I82540eac176c4abfb7e50dc51671585b32a1bace
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/46581
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21823}
2018-01-31 09:39:44 +00:00
001546da95 Break up rtc_event_log_api to solve circular dependencies.
The original rtc_event_log_api is refactored to a pure API target plus
multiple targets coupled with WebRTC implementations.

Bug: None
Change-Id: Iab9eee3f7bf4228c52d94a5f26fc39bb99b5033f
Reviewed-on: https://webrtc-review.googlesource.com/43247
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Qingsi Wang <qingsi@google.com>
Cr-Commit-Position: refs/heads/master@{#21811}
2018-01-30 17:54:06 +00:00
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
a8b7c7f4c6 Move remaining traces of VoiceEngine
- Move files from voice_engine/ to audio/.
- Rename voice_engine/utility.* to remix_resample.* since there are no other
  utilities in those files.
- Move test/mock_voe_channel_proxy.h to audio/.
- Removed voe_channel_id from Audio[Receive|Send]Stream::Config.
- Remove VoiceEngine* from AudioState::Config.
- Fix a few cpplint complaints which showed when moving files.

NOPRESUBMIT=true

Bug: webrtc:4690
Change-Id: Id266c822d956625c358fa5e193e6f4837164aef8
Reviewed-on: https://webrtc-review.googlesource.com/39268
Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21657}
2018-01-17 13:27:47 +00:00
98d4036f5a Make it possible to run low_bandwidth_audio_test on Android swarming.
R=phoglund@webrtc.org, solenberg@webrtc.org

Bug: chromium:755660
Change-Id: I8755a9c9df92fe8157c870cc7519130291441b25
Reviewed-on: https://webrtc-review.googlesource.com/39780
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Edward Lemur <ehmaldonado@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21634}
2018-01-16 11:42:17 +00:00
8f5787a919 Move ownership of voe::Channel into Audio[Receive|Send]Stream.
* VoEBase contains only stub methods (until downstream code is
  updated).

* voe::Channel and ChannelProxy classes remain, but are now created
  internally to the streams. As a result,
  internal::Audio[Receive|Send]Stream can have a ChannelProxy injected
  for testing.

* Stream classes share Call::module_process_thread_ for their RtpRtcp
  modules, rather than using a separate thread shared only among audio
  streams.

* voe::Channel instances use Call::worker_queue_ for encoding packets,
  rather than having a separate queue for audio (send) streams.

Bug: webrtc:4690
Change-Id: I8059ef224ad13aa0a6ded2cafc52599c7f64d68d
Reviewed-on: https://webrtc-review.googlesource.com/34640
Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21578}
2018-01-11 12:58:31 +00:00
731082ce7e Reland: Add mock_rtc_event_log.h.
Bug: webrtc:7642
Change-Id: I3f97a8b603e34819e1563b335c1eeb51f89b11ac
Reviewed-on: https://webrtc-review.googlesource.com/37081
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21480}
2018-01-03 08:37:12 +00:00
5a25ab298d Revert "Add mock_rtc_event_log.h."
This reverts commit 63aea46a6e424c35f7df1ec6e702c5eeb704996a.

Reason for revert: 
Breaks Chromium build:
https://logs.chromium.org/v/?s=chromium%2Fbb%2Fchromium.webrtc.fyi%2Fios-simulator%2F6721%2F%2B%2Frecipes%2Fsteps%2Fgenerate_build_files__mb_%2F0%2Fstdout

ERROR at //third_party/webrtc/logging/BUILD.gn:295:5: Can't load input file.
    "../../test:test_support",
    ^------------------------
Unable to load:
  /b/build/slave/mac64/build/src/third_party/test/BUILD.gn
I also checked in the secondary tree for:
  /b/build/slave/mac64/build/src/build/secondary/third_party/test/BUILD.gn

Maybe this should be guarded by an "if (!build_with_chromium)"?

Original change's description:
> Add mock_rtc_event_log.h.
> 
> Bug: webrtc:7642
> Change-Id: Id3aa84d79e5e1a0520a968117cee550c9dd33c16
> Reviewed-on: https://webrtc-review.googlesource.com/37040
> Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#21475}

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

Change-Id: Ib49c7812261c46226ec0b7b3c99af2c3a8b78add
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:7642
Reviewed-on: https://webrtc-review.googlesource.com/36981
Reviewed-by: Edward Lemur <ehmaldonado@webrtc.org>
Commit-Queue: Edward Lemur <ehmaldonado@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21477}
2018-01-02 18:26:52 +00:00
63aea46a6e Add mock_rtc_event_log.h.
Bug: webrtc:7642
Change-Id: Id3aa84d79e5e1a0520a968117cee550c9dd33c16
Reviewed-on: https://webrtc-review.googlesource.com/37040
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21475}
2018-01-02 18:11:10 +00:00
94dc17710f Add mock_bitrate_controller.h.
Bug: webrtc:7622
Change-Id: I346dca091406ec7ef7c65fae9fe89c4dc2a94514
Reviewed-on: https://webrtc-review.googlesource.com/37020
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21472}
2018-01-02 15:25:10 +00:00
6213929de5 Add missing files to audio_processing.
Bug: webrtc:7621
Change-Id: I2cab764232fc4e084ed8a489f4cf3a3ac562c894
Reviewed-on: https://webrtc-review.googlesource.com/34658
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21461}
2017-12-31 12:18:38 +00:00
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
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
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
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
cedd351e73 Do not add audio bitrate observer if TWCC sending is not supported
Bug: webrtc:8243
Change-Id: Ida076dca72a6894053bdd0884f818ab3eaf5128a
Reviewed-on: https://webrtc-review.googlesource.com/30840
Commit-Queue: Alex Narest <alexnarest@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21149}
2017-12-07 20:46:38 +00:00
b5728d9b0f Stop using public_deps in modules/rtp_rtcp.
TBR=phoglund@webrtc.org

Bug: webrtc:8603
Change-Id: I86830df23db3f33a1a26098e639596bd3b86485a
No-Try: True
Reviewed-on: https://webrtc-review.googlesource.com/29780
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@{#21108}
2017-12-06 07:37:52 +00:00
56d460902e Use the new AudioProcessing statistics everywhere.
The new interface uses optionals instead of default values, and only values that are actually used are included. To make it easy to add/remove stats in the future, the struct itself is copied around on all layers, instead of copying the values one by one. This CL also fixes a bug which caused several APM statistics to get stuck at a fixed level when there are no more receive streams (after some period where there were receive streams). Since APM doesn't know this happens, an argument was added to the GetStats call to pass this information down to APM.

Bug: webrtc:8563, b/67926135
Change-Id: I96cc008353355bb520c4523f5c5379860f73ee24
Reviewed-on: https://webrtc-review.googlesource.com/25621
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20877}
2017-11-24 18:17:39 +00:00
c0e680463a Fix deps of audio:audio_tests.
Bug: webrtc:6828
Change-Id: Iae9020fda37fe40221d9a9def38c3afcc387d359
Reviewed-on: https://webrtc-review.googlesource.com/22683
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20666}
2017-11-14 08:20:47 +00:00