Commit Graph

4868 Commits

Author SHA1 Message Date
35fa280229 Adds allocated rate without feedback to new congestion controller.
When bitrate is allocated to streams that does not have packet feedback,
the allocated bitrate should be included in the estimate. This was
previously only implemented for the old congestion controller and not
for the new task queue based version.

To make the behavior more robust, the responsibility for tracking this
is moved to BitrateAllocator where it's handled consistently for
multiple streams without feedback.

Bug: webrtc:9586, webrtc:8243
Change-Id: I8af7fec23e1bdc08cc61cf1b4ff10461c3711fb0
Reviewed-on: https://webrtc-review.googlesource.com/102681
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24905}
2018-10-01 07:48:02 +00:00
e0d455b409 Remove runtime_enabled_feature.
This features is not needed anymore, with this CL it is also possible
to address two issues:
- The need to pick a default implementation.
- The need to use -Wno-global-constructors.

Bug: webrtc:9631, webrtc:9693
Change-Id: Id3daf34179fbc8db26969fc701ccbfa7182c6a9b
Reviewed-on: https://webrtc-review.googlesource.com/102543
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24904}
2018-10-01 07:03:25 +00:00
05a7004442 Revert "Remove APM-internal usage of EchoControlMobile"
This reverts commit 2fbb83b16b4c2c1712cbe898ca3ba42d6da3e96f.

Reason for revert: Speculative revert over failing Chromium bot:
https://ci.chromium.org/p/chromium/builders/luci.chromium.webrtc.fyi/WebRTC%20Chromium%20FYI%20Android%20Tests%20%28dbg%29%20%28M%20Nexus5X%29/117

Original change's description:
> Remove APM-internal usage of EchoControlMobile
> 
> This is a sibling CL to a similar one for EchoCancellation:
> https://webrtc-review.googlesource.com/c/src/+/97603
> 
>  - EchoControlMobileImpl will no longer inherit EchoControlMobile.
>  - Removes usage of AudioProcessing::echo_control_mobile() inside most of
>    the audio processing module and unit tests.
> 
> The CL breaks audioproc_f backwards compatibility: It can no longer
> use all recorded settings (comfort noise, routing mode), but prints an
> error message when unsupported settings are encountered.
> 
> Tested: audioproc_f with .wav and aecdump inputs.
> Bug: webrtc:9535
> Change-Id: I63c3c81bcaf44021315978e1a0f3e42173b988ce
> Reviewed-on: https://webrtc-review.googlesource.com/101621
> Reviewed-by: Alex Loiko <aleloi@webrtc.org>
> Commit-Queue: Sam Zackrisson <saza@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#24888}

TBR=saza@webrtc.org,aleloi@webrtc.org

Change-Id: I1f8a27ac291f2cdc16c8daa32e399b74d489dbb9
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9535
Reviewed-on: https://webrtc-review.googlesource.com/102642
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24895}
2018-09-28 13:39:19 +00:00
cb1b55612c Use low cut filtering whenever NS or AEC are enabled
These submodules implicitly rely on low cut filtering being enabled.

This CL clarifies a distinction:
High pass filtering is a feature that users can enable, according to the WebRTC standard.
Low cut filtering is a processing effect that is applied when any of the following is active:
- high pass filter
- noise suppression
- builtin echo cancellation

Bug: webrtc:9535
Change-Id: I9474276fb11354ea3b01e65a0699f6c29263770b
Reviewed-on: https://webrtc-review.googlesource.com/102600
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24892}
2018-09-28 13:00:19 +00:00
71a091e24e Adds simulated time scenario client.
Adds SimulatedTimeClient, a class that simulates time so congestion
controllers can be tested using the Scenario test framework without
running in real time.

This allows using simplified scenario tests as unit tests, narrowing
the gap between end to end tests and unit tests.

Bug: webrtc:9510
Change-Id: I61ab388bd610f636b926675b1f14b8d85e3c1114
Reviewed-on: https://webrtc-review.googlesource.com/99801
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24890}
2018-09-28 12:30:44 +00:00
1f3206cca4 Change ReceiveStatistics to implement RtpPacketSinkInterface, part 1
Add new method OnRtpPacket, but leave
ReceiveStatisticsImpl::IncomingPacket and most of the implementation
unchanged. Deleting the old method and converting implementation from
RTPHeader to RtpPacketreceived is planned for a followup, after
downstream code is updated.

Bug: webrtc:7135, webrtc:8016
Change-Id: I697ec12804618859f8d69415622d1b957e1d0847
Reviewed-on: https://webrtc-review.googlesource.com/100104
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24889}
2018-09-28 12:00:28 +00:00
2fbb83b16b Remove APM-internal usage of EchoControlMobile
This is a sibling CL to a similar one for EchoCancellation:
https://webrtc-review.googlesource.com/c/src/+/97603

 - EchoControlMobileImpl will no longer inherit EchoControlMobile.
 - Removes usage of AudioProcessing::echo_control_mobile() inside most of
   the audio processing module and unit tests.

The CL breaks audioproc_f backwards compatibility: It can no longer
use all recorded settings (comfort noise, routing mode), but prints an
error message when unsupported settings are encountered.

Tested: audioproc_f with .wav and aecdump inputs.
Bug: webrtc:9535
Change-Id: I63c3c81bcaf44021315978e1a0f3e42173b988ce
Reviewed-on: https://webrtc-review.googlesource.com/101621
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24888}
2018-09-28 11:11:44 +00:00
07ba2b9445 Parse two-byte header extensions.
Bug: webrtc:7990
Change-Id: I967d2065b85d6a2ca938ac0e83035cb92b45a907
Reviewed-on: https://webrtc-review.googlesource.com/98160
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24881}
2018-09-28 08:32:17 +00:00
78e0ac1b39 Improves threading model in AudioDeviceTest.
These changes are based on finding when using Tsan v2. More changes are
needed before usage of the THREAD_SANITIZER build flag can be removed.
Hence, all tests are still ignored when this flag is set. The changes
are still improvements.

See https://bugs.chromium.org/p/webrtc/issues/detail?id=9778#c10
for more details.

Bug: webrtc:9778
Change-Id: I1266cec48165046dcffc16f104ec5b88b41500b2
Reviewed-on: https://webrtc-review.googlesource.com/102440
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24880}
2018-09-28 08:19:47 +00:00
17f4878419 Remove deprecated field_trial_default and metrics_default.
This CL removes some deprecated build targets (and their headers)
from system_wrappers:
- field_trial_api
- field_trial_default
- metrics_api
- metrics_default

It also refreshes all the dependencies on field_trial.h and metrics.h.

A nice side effect is that it is finally possible to remove 'nogncheck'
from the following files (when it was used with field_trial_default
and metrics_default):
- sdk/objc/api/peerconnection/RTCMetricsSampleInfo+Private.h
- sdk/android/src/jni/pc/peerconnectionfactory.cc
- sdk/objc/api/peerconnection/RTCFieldTrials.mm

Bug: webrtc:9631
Change-Id: Ib621f41ef8ad0aba4fe1c1d7e749c044afc956c3
No-Try: True
Reviewed-on: https://webrtc-review.googlesource.com/100524
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24878}
2018-09-28 07:21:07 +00:00
f4801a1909 AEC3: Remove killswitches in AecState
This CL removes killswitches for code that has been properly tested in
experiments and is to be considered to be permanent.

The changes have been tested for bitexactness.

Bug: webrtc:8671
Change-Id: I0f9db16f377390d9dd3779096da91f3abc0fb4a5
Reviewed-on: https://webrtc-review.googlesource.com/102360
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24877}
2018-09-28 07:17:57 +00:00
dc8c981dcb Makes new congestion controller work with rtp sender tests.
Bug: webrtc:9586
Change-Id: Ifa12ef5d85b19395c62fc1001a107c4151927098
Reviewed-on: https://webrtc-review.googlesource.com/102160
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24871}
2018-09-27 15:58:32 +00:00
287cfdecab Removes deprecated functions from legacy SendSideCongestionController.
Bug: webrtc:9586
Change-Id: Id1b7e8a56044d6d4fb9167f03e71310aa6b8c26a
Reviewed-on: https://webrtc-review.googlesource.com/102200
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24870}
2018-09-27 15:42:10 +00:00
068a2e380b Remove usage of runtime_enabled_features in WebRTC.
This is the first step in order to remove runtime_enabled_features
code from WebRTC.

Bug: webrtc:9693
Change-Id: Ic67f770c2166755ea45c782efb3e4184433ac15e
Reviewed-on: https://webrtc-review.googlesource.com/102361
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24868}
2018-09-27 14:32:20 +00:00
e0c01b9802 Fix global_constructors, exit_time_destructors in audio device pulse.
Bug: webrtc:9693
Change-Id: I05498473be8a86756d65d0b9000d626c966d4ed3
Reviewed-on: https://webrtc-review.googlesource.com/100422
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24865}
2018-09-27 13:19:11 +00:00
98b07e9180 Adds scenario test framework.
Bug: webrtc:9510
Change-Id: I387aab4211f520a1c54832f82032ee724479e89e
Reviewed-on: https://webrtc-review.googlesource.com/89342
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24864}
2018-09-27 12:31:33 +00:00
6fbeeeb872 Remove failing RTC_DCHECK in nack_module.cc.
The RTC_DCHECK is hit sometimes. This happens when there is no overlap
between the nack_list and frames in keyframes. The existing code
correctly handles this situation.

Bug: webrtc:9629
Change-Id: I7e3eed1b04781cd69974c5d3eb86e382e9587268
Reviewed-on: https://webrtc-review.googlesource.com/102340
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24860}
2018-09-27 10:55:49 +00:00
e9a7e90625 AEC3: ERLE: Allowing increases of the ERLE estimate for low render signals.
Specially for devices with high echo path gain, even low render signal can allow the linear filter of the AEC3 to converge. However, the conditions that were used for updating the ERLE avoided to update that estimation. In this commit, we allow adapting the ERLE estimator using even low render signal but the update of the ERLE is constraint in a way that decreases are not allowed.

Bug: webrtc:9776
Change-Id: Ic4331efcc47a0b05f394cdea9a88f336292de5a1
Reviewed-on: https://webrtc-review.googlesource.com/101641
Commit-Queue: Jesus de Vicente Pena <devicentepena@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24859}
2018-09-27 10:41:10 +00:00
02fed02c00 Assign spatial_idx in FrameStatistics ctor.
- Add spatial_idx to FrameStatistics ctor.
- Pass FrameStatistics object to AddFrame.

Bug: none
Change-Id: I9d6de449b45a007438f6fd3317176bf45fb23806
Reviewed-on: https://webrtc-review.googlesource.com/101781
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24856}
2018-09-27 08:35:29 +00:00
91957c1540 AudioCodingModuleTest.TwoWayCommunication: Don't let the ACM create encoders
It will soon lose the ability to do so.

Bug: webrtc:8396
Change-Id: I7d8e1549c44628fc9bdf2480468a0f1d3ae812f2
Reviewed-on: https://webrtc-review.googlesource.com/102062
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24853}
2018-09-27 00:27:26 +00:00
3a6b6bda17 AudioCodingModuleTest.TwoWayCommunication: Remove non-automatic mode
The tests only use the automatic mode, and I'd rather not maintain
(and test!) the rest.

Bug: webrtc:8396
Change-Id: I4cd1096e088d2ea8807a605b8448bd44ff9e88ed
Reviewed-on: https://webrtc-review.googlesource.com/102060
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24852}
2018-09-27 00:18:46 +00:00
c5f152daa0 Mark all low layer frames as references if inter-layer pred is enabled.
Mark all low spatial layer frames as references (not just frames of
active low spatial layers) if inter-layer prediction is enabled since
these frames are indirect references of high spatial layer, which can
later be enabled without key frame.

Bug: webrtc:9782
Change-Id: Iffa5039fab2673a5582e7cdc9be4a36d9e8deb63
Reviewed-on: https://webrtc-review.googlesource.com/102063
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24849}
2018-09-26 12:46:56 +00:00
9eb6ce1cd0 Remove redundant member variable in RtpRtcp
Bug: None
Change-Id: Ia999bb4020c8f270c916074e5c58bab15f6c77d0
Reviewed-on: https://webrtc-review.googlesource.com/33300
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24848}
2018-09-26 11:34:35 +00:00
569397fec7 Reland "Added field trial WebRTC-GenericDescriptor for the new generic descriptor."
This reverts commit 6f68324adbf52b247e10b33a4e83a586e66cc6df.

Reason for revert: Removed full stack tests that cause timeout.

Original change's description:
> Revert "Added field trial WebRTC-GenericDescriptor for the new generic descriptor."
> 
> This reverts commit 3f4a4fad8cd661309ff5d9a631e89518f32e7c5e.
> 
> Reason for revert: Breaking internal tests
> 
> Original change's description:
> > Added field trial WebRTC-GenericDescriptor for the new generic descriptor.
> > 
> > Also parameterized tests to test the new generic descriptor and
> > added --generic_descriptor flag to loopback tests.
> > 
> > Bug: webrtc:9361
> > Change-Id: I2b76889606fe2e81249ecdebb0b7b61151682485
> > Reviewed-on: https://webrtc-review.googlesource.com/101900
> > Commit-Queue: Philip Eliasson <philipel@webrtc.org>
> > Reviewed-by: Erik Språng <sprang@webrtc.org>
> > Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> > Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#24835}
> 
> TBR=danilchap@webrtc.org,sprang@webrtc.org,stefan@webrtc.org,philipel@webrtc.org
> 
> Change-Id: I4d4714a9f4ab0e95adf0f4130bc1a932efc448fa
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:9361
> Reviewed-on: https://webrtc-review.googlesource.com/101940
> Reviewed-by: Lu Liu <lliuu@webrtc.org>
> Commit-Queue: Lu Liu <lliuu@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#24839}

TBR=danilchap@webrtc.org,sprang@webrtc.org,stefan@webrtc.org,philipel@webrtc.org,lliuu@webrtc.org

Change-Id: Ibcf0a1d3aa947b84e3b891b1975d0fc2c730f2ae
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9361
Reviewed-on: https://webrtc-review.googlesource.com/102064
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24845}
2018-09-26 10:26:43 +00:00
4a8a5e7db1 Reland "Second reland of "Optimize execution time of RTPSender::UpdateDelayStatistics""
This reverts commit 8b7bc5d7010c84ac57459518fe18309ef5fee1dd.

Reason for revert: Slow RTC_DCHECK has been removed.

Original change's description:
> Revert "Second reland of "Optimize execution time of RTPSender::UpdateDelayStatistics""
>
> This reverts commit 9def3b45ef06de9e068e8f4d1644e9d508baa913.
>
> Reason for revert: webrtc_perf_tests fails on Mac-10.12.
>
> Original change's description:
> > Second reland of "Optimize execution time of RTPSender::UpdateDelayStatistics"
> >
> > The reland has a lot of additional DCHECKS for easier debugging,
> > so in debug builds it will actually be a ~2x slowdown compared to the old code.
> > The excessive DCHECKS should be removed in a followup CL.
> >
> > Bug: webrtc:9439
> > Change-Id: I8389cd84f1ca12c29cc6993f0d2cf7e6d7dd8379
> > Reviewed-on: https://webrtc-review.googlesource.com/101761
> > Reviewed-by: Åsa Persson <asapersson@webrtc.org>
> > Reviewed-by: Björn Terelius <terelius@webrtc.org>
> > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#24821}
>
> TBR=terelius@webrtc.org,asapersson@webrtc.org,kron@webrtc.org
>
> Change-Id: I98c4c96d552858d0299d49993e9b9be6a6204dfe
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:9439
> Reviewed-on: https://webrtc-review.googlesource.com/101860
> Reviewed-by: Johannes Kron <kron@webrtc.org>
> Commit-Queue: Johannes Kron <kron@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#24825}

TBR=terelius@webrtc.org,asapersson@webrtc.org,kron@webrtc.org

Change-Id: I260c56932710d26f9d7201c07279fef8d2150bd9
Bug: webrtc:9439
Reviewed-on: https://webrtc-review.googlesource.com/102000
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Johannes Kron <kron@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24843}
2018-09-26 09:45:25 +00:00
b8bccd530a Adds srte to OWNERS in bitrate_controller and remote_bitrate_estimator.
Bug: webrtc:9718
Change-Id: Ib144d3ee1ed8bac5f0a67e30cebf297f252551e3
Reviewed-on: https://webrtc-review.googlesource.com/100303
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24842}
2018-09-26 09:24:45 +00:00
6f68324adb Revert "Added field trial WebRTC-GenericDescriptor for the new generic descriptor."
This reverts commit 3f4a4fad8cd661309ff5d9a631e89518f32e7c5e.

Reason for revert: Breaking internal tests

Original change's description:
> Added field trial WebRTC-GenericDescriptor for the new generic descriptor.
> 
> Also parameterized tests to test the new generic descriptor and
> added --generic_descriptor flag to loopback tests.
> 
> Bug: webrtc:9361
> Change-Id: I2b76889606fe2e81249ecdebb0b7b61151682485
> Reviewed-on: https://webrtc-review.googlesource.com/101900
> Commit-Queue: Philip Eliasson <philipel@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#24835}

TBR=danilchap@webrtc.org,sprang@webrtc.org,stefan@webrtc.org,philipel@webrtc.org

Change-Id: I4d4714a9f4ab0e95adf0f4130bc1a932efc448fa
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9361
Reviewed-on: https://webrtc-review.googlesource.com/101940
Reviewed-by: Lu Liu <lliuu@webrtc.org>
Commit-Queue: Lu Liu <lliuu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24839}
2018-09-25 18:49:02 +00:00
84ffb35e74 Use minimalistic vp8 descriptor when generic descriptor is in use
which saves up to 5 bytes per packet.

Bug: webrtc:9361
Change-Id: Ia4335459fb2bd6390950ddd1d487a0f9f96f743d
Reviewed-on: https://webrtc-review.googlesource.com/101840
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24838}
2018-09-25 18:05:52 +00:00
377a231c0d acm_receiver_unittest: Don't rely on the ACM to create encoders
It will soon lose the ability to do so.

Bug: webrtc:8396
Change-Id: Ifca101fce0c349dba8c402ab2b6ad614061a88f6
Reviewed-on: https://webrtc-review.googlesource.com/101281
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24836}
2018-09-25 17:16:56 +00:00
3f4a4fad8c Added field trial WebRTC-GenericDescriptor for the new generic descriptor.
Also parameterized tests to test the new generic descriptor and
added --generic_descriptor flag to loopback tests.

Bug: webrtc:9361
Change-Id: I2b76889606fe2e81249ecdebb0b7b61151682485
Reviewed-on: https://webrtc-review.googlesource.com/101900
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24835}
2018-09-25 16:55:55 +00:00
bf7a0463da AudioCodingModuleTest.TestIsac: Don't rely on the ACM to create encoders
It will soon lose the ability to do so.

Bug: webrtc:8396
Change-Id: Id413204e53afec28495dff0873f027a56caed80f
Reviewed-on: https://webrtc-review.googlesource.com/101861
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24834}
2018-09-25 16:54:36 +00:00
a3b9b27412 Also disable AudioDeviceTest constructor for TSAN.
The flaky crash is happening in the constructor.

Bug: webrtc:9778
Change-Id: I9ac9a89e033e17de690e594ef263ff83d14fcc5a
Reviewed-on: https://webrtc-review.googlesource.com/101880
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24829}
2018-09-25 14:44:00 +00:00
f1239b5405 Fixes issue where WebRTC.Audio.RecordSampleRateOffsetInPercent can report 100% (part II)
See https://webrtc-review.googlesource.com/c/src/+/100241 for part I.

It can happen that recording fail to start but playout works. If that happens, we can
log stats like this:

9-25 15:32:02.023 13903 13948 I audio_device_buffer.cc: (line 414): [REC : 10002msec, 48kHz] callbacks: 0, samples: 0, rate: 0, rate diff: 100%, level: 0
09-25 15:32:02.024 13903 13948 I audio_device_buffer.cc: (line 432): [PLAY: 10002msec, 48kHz] callbacks: 1002, samples: 480960, rate: 48086, rate diff: 0%, level: 0
09-25 15:32:12.028 13903 13948 I audio_device_buffer.cc: (line 414): [REC : 10005msec, 48kHz] callbacks: 0, samples: 0, rate: 0, rate diff: 100%, level: 0
09-25 15:32:12.028 13903 13948 I audio_device_buffer.cc: (line 432): [PLAY: 10005msec, 48kHz] callbacks: 1000, samples: 480000, rate: 47976, rate diff: 0%, level: 0

hence, we log invalid UMA stats for a rate offset of 100%. This change fixes the problem, and in the
case above, we now instead log:

09-25 15:35:56.141 14116 14161 I audio_device_buffer.cc: (line 432): [PLAY: 10011msec, 48kHz] callbacks: 1002, samples: 480960, rate: 48043, rate diff: 0%, level: 0
09-25 15:36:06.151 14116 14161 I audio_device_buffer.cc: (line 432): [PLAY: 10010msec, 48kHz] callbacks: 1002, samples: 480960, rate: 48048, rate diff: 0%, level: 0
09-25 15:36:16.162 14116 14161 I audio_device_buffer.cc: (line 432): [PLAY: 10011msec, 48kHz] callbacks: 1001, samples: 480480, rate: 47995, rate diff: 0%, level: 0
09-25 15:36:26.173 14116 14161 I audio_device_buffer.cc: (line 432): [PLAY: 10011msec, 48kHz] callbacks: 1001, samples: 480480, rate: 47995, rate diff: 0%, level: 0

Bug: b/113648245
Change-Id: Ic8cb71ca049ef24bf68963a81f95d4e5c2282518
Reviewed-on: https://webrtc-review.googlesource.com/101881
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24828}
2018-09-25 14:28:10 +00:00
f3119ef66d Add generic frame descriptor to list of supported video extensions
Update uri to include version.

Bug: webrtc:9361
Change-Id: I71164879d2a5b88c052fdab9f74202f758e85be6
Reviewed-on: https://webrtc-review.googlesource.com/101762
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24827}
2018-09-25 13:41:01 +00:00
dabfcae2d9 Use the generic descriptor information in the RtpFrameReferenceFinder.
Bug: webrtc:9361
Change-Id: I8d7e7ee1d3ca89283552c21c45950d4dba1c1927
Reviewed-on: https://webrtc-review.googlesource.com/100301
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24826}
2018-09-25 13:15:45 +00:00
8b7bc5d701 Revert "Second reland of "Optimize execution time of RTPSender::UpdateDelayStatistics""
This reverts commit 9def3b45ef06de9e068e8f4d1644e9d508baa913.

Reason for revert: webrtc_perf_tests fails on Mac-10.12.

Original change's description:
> Second reland of "Optimize execution time of RTPSender::UpdateDelayStatistics"
> 
> The reland has a lot of additional DCHECKS for easier debugging,
> so in debug builds it will actually be a ~2x slowdown compared to the old code.
> The excessive DCHECKS should be removed in a followup CL.
> 
> Bug: webrtc:9439
> Change-Id: I8389cd84f1ca12c29cc6993f0d2cf7e6d7dd8379
> Reviewed-on: https://webrtc-review.googlesource.com/101761
> Reviewed-by: Åsa Persson <asapersson@webrtc.org>
> Reviewed-by: Björn Terelius <terelius@webrtc.org>
> Commit-Queue: Johannes Kron <kron@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#24821}

TBR=terelius@webrtc.org,asapersson@webrtc.org,kron@webrtc.org

Change-Id: I98c4c96d552858d0299d49993e9b9be6a6204dfe
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9439
Reviewed-on: https://webrtc-review.googlesource.com/101860
Reviewed-by: Johannes Kron <kron@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24825}
2018-09-25 12:05:39 +00:00
defb717811 Disable AudioDeviceTest on thread sanitizer.
These tests have become flaky on thread sanitizer.

Bug: webrtc:9778
Change-Id: Ife7004acf11ef1b3cb9d5720da25d4efb2395faf
Reviewed-on: https://webrtc-review.googlesource.com/101841
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Artem Titarenko <artit@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24824}
2018-09-25 11:45:39 +00:00
e7e156d7a6 Support first packet reduction in H264 packetizer
Bug: webrtc:9680
Change-Id: I73c9a5acecdf8dd82347be602bbfd7412c9610c5
Reviewed-on: https://webrtc-review.googlesource.com/99804
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24823}
2018-09-25 11:43:29 +00:00
9def3b45ef Second reland of "Optimize execution time of RTPSender::UpdateDelayStatistics"
The reland has a lot of additional DCHECKS for easier debugging,
so in debug builds it will actually be a ~2x slowdown compared to the old code.
The excessive DCHECKS should be removed in a followup CL.

Bug: webrtc:9439
Change-Id: I8389cd84f1ca12c29cc6993f0d2cf7e6d7dd8379
Reviewed-on: https://webrtc-review.googlesource.com/101761
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24821}
2018-09-25 10:20:21 +00:00
9a60e9a5b0 Remove the delay_test binary
It hasn't been changed in any meaningful way since 2013, the same year
it was created.

Bug: webrtc:8396
Change-Id: I5633188134f71f24311fbd3098d046632fc4ee3a
Reviewed-on: https://webrtc-review.googlesource.com/101563
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24816}
2018-09-25 08:25:56 +00:00
6ea771933d Potential bug in RTP packet.
A potential bug was introduced in "Refactor to remove direct memory
dependency on kMaxId" due to a memory restructuring,
commit c5744b8b21b627213286f1b6f2c65da5df9ce8d0

Bug: webrtc:7990
Change-Id: I0dcaf47e1c1e361d65220c278a2326d6f2686af7
Reviewed-on: https://webrtc-review.googlesource.com/101642
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24814}
2018-09-24 23:21:25 +00:00
965e7942a3 Add sanity checks to UpdateDelayStatistics and patch unit tests.
RtpPacket::UpdateDelayStatistics was previously optimized with several
sanity checks added. These sanity checks caused many of the unit tests
in peerconnection_integration_unittests to fail and the CL was therefore
reverted. This CL contains the sanity checks along with patches so that
the unit tests pass.

Bug: webrtc:9439
Change-Id: Ia5f5e8b125e5f3f4b79d433e2282901143530a25
Reviewed-on: https://webrtc-review.googlesource.com/99802
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24813}
2018-09-24 23:13:02 +00:00
8bd3ae04a6 Revert "Bug in histogram metric reporting."
This reverts commit 3a9731ff2f871bcc798ce9760fa51d81cfd5e755.

Reason for revert: Seems to cause crashes in Chrome browser tests, see for example https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket.appspot.com/8934487169011818016/+/steps/browser_tests__retry_with_patch_/0/logs/WebRtcBrowserTest.RunsAudioVideoWebRTCCallInTwoTabsOfferEcdsaAnswerEcdsa/0 

Original change's description:
> Bug in histogram metric reporting.
> 
> A (actually several weeks) while ago, we noticed an error with the
> WebRTC.Audio.Agc2.EstimatedNoiseLevel histogram. It always reported
> the value 0. Here is why:
> 
> The histogram bins go from 0 to 100. But the value logged is dBFS. It is
> always less than or equal to 0. This CL changes the bins.
> 
> Bug: webrtc:7494
> Change-Id: I45fd122e98f9396f9871bc965a708987bd1815f6
> Reviewed-on: https://webrtc-review.googlesource.com/101340
> Commit-Queue: Alex Loiko <aleloi@webrtc.org>
> Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#24800}

TBR=saza@webrtc.org,aleloi@webrtc.org

Change-Id: I84883f73710b7e13aa90ee29b140acfc417f109f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:7494
Reviewed-on: https://webrtc-review.googlesource.com/101701
Reviewed-by: Niklas Enbom <niklas.enbom@webrtc.org>
Commit-Queue: Niklas Enbom <niklas.enbom@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24809}
2018-09-24 18:50:52 +00:00
d5fe67f958 Don't reset initial constraints in congestion controller.
This avoids crashing if an application resets the starting bitrate
before adding streams to the call.

Bug: webrtc:9586
Change-Id: I8d31aba1f4fee40c67c8930f5a32d17700ccadc3
Reviewed-on: https://webrtc-review.googlesource.com/101680
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24808}
2018-09-24 18:32:06 +00:00
d363db1907 TestStereo: Don't rely on the ACM to create encoders
It will soon lose the ability to do so.

Also, the ACM no longer creates comfort noise encoders for us, so
don't bother testing that.

Bug: webrtc:8396
Change-Id: I24a12e26bef142f9f8e7532b764f28572e0c6ace
Reviewed-on: https://webrtc-review.googlesource.com/101640
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24803}
2018-09-24 15:11:05 +00:00
3f6077d22f AEC3: Delay estimator adapts even when estimated echo saturates
Speeds up adaptation of the matched filter of the delay estimator by
allowing the estimated echo and the error signal (microphone minus
estimated echo) to be saturated. Only microphone saturation pauses
the filter adaptation.

Bug: webrtc:9773
Change-Id: I8b8400539fde3ee821f36a95818bece02ddd626b
Reviewed-on: https://webrtc-review.googlesource.com/101341
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24802}
2018-09-24 13:44:21 +00:00
c5744b8b21 Refactor to remove direct memory dependency on kMaxId
When two-byte header extensions are enabled, kMaxId will change from 15
to 255. This CL is a refactor to remove the direct dependency between
memory allocation and kMaxId.

Bug: webrtc:7990
Change-Id: I38974a9c705eb6a0fdba9038a7d909861587d98d
Reviewed-on: https://webrtc-review.googlesource.com/101580
Commit-Queue: Johannes Kron <kron@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24801}
2018-09-24 13:26:46 +00:00
3a9731ff2f Bug in histogram metric reporting.
A (actually several weeks) while ago, we noticed an error with the
WebRTC.Audio.Agc2.EstimatedNoiseLevel histogram. It always reported
the value 0. Here is why:

The histogram bins go from 0 to 100. But the value logged is dBFS. It is
always less than or equal to 0. This CL changes the bins.

Bug: webrtc:7494
Change-Id: I45fd122e98f9396f9871bc965a708987bd1815f6
Reviewed-on: https://webrtc-review.googlesource.com/101340
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24800}
2018-09-24 12:29:30 +00:00
0faf082f9a AEC3: Bounding the nearend spectrum used as input for the suppressor gain computation
Right after a volume decrease, the echo path estimate is overestimated and, as a side effect, the nearend signal is also overestimated. Due to that, the suppression gains are kept high avoiding the suppression of echoes. In this CL the neared power spectrum estimation is limited to a level given by the power spectrum or the microphone input signal. Additionally, the minimum gain that is computed inside the suppressor is also modified. Instead of using the nearend power spectrum that is now bounded, the power spectrum of the signal after the linear echo canceler is used.

Bug: webrtc:9762
Change-Id: Ia24cd2ce248f2c2ba124711b75acff3b8c5cfa9f
Reviewed-on: https://webrtc-review.googlesource.com/100720
Commit-Queue: Jesus de Vicente Pena <devicentepena@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24796}
2018-09-24 11:15:52 +00:00
03c592a1e9 Disabled TestPacketBuffer.SeqNumWrapOneFrame test due to clang update
Until further investigation.
Clang update: chromium:880827

Bug: chromium:887464
Change-Id: Id1fe85a013920e6ae8c6ac69efb0a0502b9dd6fe
Reviewed-on: https://webrtc-review.googlesource.com/101561
Commit-Queue: Artem Titarenko <artit@webrtc.org>
Reviewed-by: Artem Titarenko <artit@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24795}
2018-09-24 11:12:37 +00:00