1941 Commits

Author SHA1 Message Date
Danil Chapovalov
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
Karl Wiberg
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
philipel
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
Karl Wiberg
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
Sami Kalliomäki
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
henrika
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
Danil Chapovalov
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
philipel
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
Johannes Kron
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
Sami Kalliomäki
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
Danil Chapovalov
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
Johannes Kron
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
Karl Wiberg
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
Johannes Kron
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
Johannes Kron
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
Niklas Enbom
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
Sebastian Jansson
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
Karl Wiberg
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
Gustaf Ullberg
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
Johannes Kron
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
Alex Loiko
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
Jesús de Vicente Peña
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
Artem Titarenko
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
Karl Wiberg
36b37dce8f AudioCodingModuleTest.TestStereo: Delete write-only variables
Bug: webrtc:8396
Change-Id: I96c744c39ed15a2e20a45b120db9304dff486b76
Reviewed-on: https://webrtc-review.googlesource.com/101542
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24792}
2018-09-24 10:46:36 +00:00
Jonas Olsson
84df1c724e Make fewer copies when using StringBuilder.
Replace calls to .str() which copies with .Release which moves in cases where that's safe.

This CL was generated by this command:
git grep -l 'StringBuilder' |
xargs perl -i -0 -pe "s/(rtc::StringBuilder (\S+);.*?return )\\g2.str\(\)/\$1\$2.Release\(\)/sg"

Bug: webrtc:8982
Change-Id: If4dadbeb039df010aaaa9e58da81c1971a84fe8f
Reviewed-on: https://webrtc-review.googlesource.com/100307
Commit-Queue: Jonas Olsson <jonasolsson@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24790}
2018-09-24 09:39:19 +00:00
henrika
5773ad3bc8 Ensures that ADM unittest uses default audio devices for all platforms.
TBR=ossu

Bug: webrtc:9265
Change-Id: Ifc6d3f9c5c4a4e31dcedfd72ed96a2bde5d074e7
Reviewed-on: https://webrtc-review.googlesource.com/101262
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24786}
2018-09-24 08:00:59 +00:00
Yves Gerey
c411cdfbc3 Output 0 instead of NaN in perftest-output.json
Subsequent recipe step requires the json to be valid.

TBR: terelius@webrtc.org
No-Try: True
Bug: webrtc:9767
Change-Id: I1b7457a147039772e2cb4dbdbc0eab3e699492be
Reviewed-on: https://webrtc-review.googlesource.com/101260
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24782}
2018-09-21 13:19:49 +00:00
Sergey Silkin
f87bb46306 Restrict use of frame rate controller.
VP9 frame rate controller is supposed to be used in screen mode only
but it was partially enabled in normal video mode. This restricts use
of VP9 frame rate controller to screen mode.

Bug: chromium:884164
Change-Id: Ie2eaa31f3364a8abccbc4171007708cf7040fc38
Reviewed-on: https://webrtc-review.googlesource.com/100424
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24769}
2018-09-18 17:25:39 +00:00
Danil Chapovalov
55bb00e4c2 Refactor RtpPacketizerH264 tests
Add helper function to create test data,
reduce amount of unrelated details

Reduced complicated logic in tests, in particular
move most of expectation inside the tests from helpers.

Bug: None
Change-Id: I53f29a70989086c7628a0b112a45ec4567b40bf9
Reviewed-on: https://webrtc-review.googlesource.com/100380
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24760}
2018-09-18 08:57:47 +00:00
Danil Chapovalov
db1285676b Cleanup modules_common_types
Uninline RTPFragmentaion functions
fix RTPFragmentation move constructor and assign operators (was recursive for win)
replace assert with rtc::dchecked_cast
Remove unused includes and dependencies.
Fix other targets that used those includes transitively instead of directly

Bug: None
Change-Id: I647cb1eda107dc7d87d25234095545bc2842fa40
Reviewed-on: https://webrtc-review.googlesource.com/100500
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24759}
2018-09-18 08:08:33 +00:00
Danil Chapovalov
585d1aac17 Register video rtp header extensions in rtp_rtcp by uri
Remove function for converting uri into ExtensionType
This removes one of the lists of all supported extensions

Bug: webrtc:7472
Change-Id: I0c27239d91ef14ca4a3aa0c00588fa2b9cf10e0c
Reviewed-on: https://webrtc-review.googlesource.com/100523
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24752}
2018-09-17 10:02:30 +00:00
Sam Zackrisson
cdf0e6d4c5 Reland "Remove APM internal usage of EchoCancellation"
Original CL:
https://webrtc-review.googlesource.com/c/src/+/97603
 - Changes EchoCancellationImpl to inherit privately from
   EchoCancellation.
 - Removes usage of AudioProcessing::echo_cancellation() inside most of
   the audio processing module and unit tests.
 - Default-enables metrics collection in AEC2.

The CL breaks audioproc_f backwards compatibility: It can no longer
use all recorded settings (drift compensation, suppression level), but
prints an error message when such settings are encountered.

Revert CL:
https://webrtc-review.googlesource.com/c/src/+/100305

Bug: webrtc:9535
TBR: gustaf@webrtc.org
Change-Id: I9248046b3a6a82df6221e502481836948643a991
Reviewed-on: https://webrtc-review.googlesource.com/100461
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24749}
2018-09-17 09:51:08 +00:00
Erik Språng
3064f31ce4 Add hysteresis to enabling of simulcast streams.
If the bandwidth is just on the edge of being able to enable a new
stream, the keyframe generated when it is enabled might be large enough
to trigger an overuse and force the stream off again.

To avoid toggling, this CL adds hysteresis so that the available
bandwidth needs to be above X% to start bitrate in order to enable the
stream. It will be shut down once available bitrate falls below the
original enabling bitrate.

For screen content, X defaults to 35.
For realtime content, X defaults to 0.

Both can be individually modified via field trials.

Bug: webrtc:9734
Change-Id: I941332d7be7f2a801d13d9202b2076d330e7df32
Reviewed-on: https://webrtc-review.googlesource.com/100308
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24745}
2018-09-14 15:59:46 +00:00
Sebastian Jansson
60570dc8c4 Removes legacy PacketQueue implementation.
Also cleans up usage of the new RoundRobinPacketQueue to reduce code
bloat.

Bug: webrtc:8288
Change-Id: I90f17a4422b32c1d4e2d7d5065573157346d6a0b
Reviewed-on: https://webrtc-review.googlesource.com/100306
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24744}
2018-09-14 14:57:15 +00:00
henrika
c7d935899a Adds multi-channel support to new ADM2 on Windows.
Now checks the preferred channel configuration and requests implicit channel
upmixing (audio engine extends from 2 to N channels internally) if the
preferred number of channels is larger than two; i.e., initialize the
stream in stereo even if the preferred configuration is multi-channel.

To summarize: with this CL, it is now possible to use e.g. a 7.1 headset
with a native WebRTC client. All internal processing in WebRTC will be in
stereo, and the audio device will be opened up in stereo as well to match
WebRTC. Before this change, we would open up the audio device using 8
channels but that was not supported by WebRTC.

Bug: webrtc:9265
Change-Id: I1530fee28c4b8b5cda29ab6baf8d65fd391d935d
Reviewed-on: https://webrtc-review.googlesource.com/98421
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24743}
2018-09-14 14:16:27 +00:00
Per Åhgren
56b5a6c4b2 audioproc_f: Modified and added further logging of used aec3 parameters
This CL:
-Adds the option to log the aec3 parameters used for a simulation.
-Cleans up the logging of the custom setting of aec3 parameters to
 instead rely on the newly added logging.

Bug: webrtc:8671
Change-Id: If73a73d08e5a5077416033ded598a83fb1ade3e0
Reviewed-on: https://webrtc-review.googlesource.com/100381
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24742}
2018-09-14 13:56:52 +00:00
Sam Zackrisson
af6c139eb6 Drop legacy AEC metrics interface from ApmTest.Process
The test is refitted to use the AudioProcessingStats struct to get
reference data.

The old metrics do not map entirely injectively to the new ones, so the
reference protobuf and files are updated as well.

Bug: webrtc:9535
Change-Id: I546dca2979380e03895af0077bfc77ffd24abe36
Reviewed-on: https://webrtc-review.googlesource.com/100100
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24740}
2018-09-14 08:16:43 +00:00
Max Morin
221ee3c3ca Revert "Reland Profile 2 to default profiles"
This reverts commit f682624062b36c285d909d6153bdf9165f6b4c63.

Reason for revert: WebRtcVideoQualityBrowserTests/WebRtcVideoQualityBrowserTest.MANUAL_TestVideoQualityVp9/0 and /1 failing on Linux, Mac, and Windows. E.g. https://ci.chromium.org/buildbot/chromium.webrtc/Mac%20Tester/83189.

Original change's description:
> Reland Profile 2 to default profiles
> 
> This is a reland after chrome browser tests are updated.
> 
> Bug: webrtc:9376
> Change-Id: I1c32ddcd2478e5a92fd3950876c7c19d35c1d79b
> TBR: niklas.enbom@webrtc.org
> Reviewed-on: https://webrtc-review.googlesource.com/88583
> Commit-Queue: Emircan Uysaler <emircan@webrtc.org>
> Reviewed-by: Emircan Uysaler <emircan@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#24736}

TBR=emircan@webrtc.org

Change-Id: Ibd072ce01506b481e6300b11e7f7ef85f79daf95
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9376
Reviewed-on: https://webrtc-review.googlesource.com/100421
Reviewed-by: Max Morin <maxmorin@webrtc.org>
Commit-Queue: Max Morin <maxmorin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24739}
2018-09-14 07:50:13 +00:00
Henrik Lundin
00eb12a20c Let NetEq use the PLC output from a decoder
This change enables NetEq to use the packet concealment audio (aka
PLC) produced by a decoder. The change also includes a new API to the
AudioDecoder interface, which lets the decoder implementation generate
and deliver concealment audio.

Bug: webrtc:9180
Change-Id: Icaacebccf645d4694b0d2d6310f6f2c7132881c4
Reviewed-on: https://webrtc-review.googlesource.com/96340
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24738}
2018-09-14 07:05:20 +00:00
Emircan Uysaler
f682624062 Reland Profile 2 to default profiles
This is a reland after chrome browser tests are updated.

Bug: webrtc:9376
Change-Id: I1c32ddcd2478e5a92fd3950876c7c19d35c1d79b
TBR: niklas.enbom@webrtc.org
Reviewed-on: https://webrtc-review.googlesource.com/88583
Commit-Queue: Emircan Uysaler <emircan@webrtc.org>
Reviewed-by: Emircan Uysaler <emircan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24736}
2018-09-14 00:25:39 +00:00
henrika
c5fe166dbc Fixes issue where WebRTC.Audio.RecordSampleRateOffsetInPercent can report 100%
Bug: b/113648245
Change-Id: I5fe22b553177cf7f53095b691077b3efd7c6bb59
Reviewed-on: https://webrtc-review.googlesource.com/100241
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24733}
2018-09-13 16:04:31 +00:00
Sebastian Jansson
c0af56b9fb Cleanup in congestion controller.
This CL removes some indirection and moves some constants. This
is done to simplify understanding and debugging of the code.

Bug: webrtc:9718
Change-Id: Ibe2b1da0163b4c97ffd1a5bc157f6aa59582d697
Reviewed-on: https://webrtc-review.googlesource.com/98240
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24732}
2018-09-13 15:46:37 +00:00
Sebastian Jansson
12e7bc396d Cleanup in rate controller.
This CL removes some indirection This is done to simplify
understanding and debugging of the code.

Bug: webrtc:9718
Change-Id: I48974d161213b9ef8fc5912bd3dc3f9d85ddfa66
Reviewed-on: https://webrtc-review.googlesource.com/100302
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24730}
2018-09-13 15:10:04 +00:00
Sergey Silkin
271812a893 Revert "Remove APM internal usage of EchoCancellation"
This reverts commit 1a03960e632a04e2ff866f2048cc36146af83e41.

Reason for revert: breaks downstream projects.

Original change's description:
> Remove APM internal usage of EchoCancellation
> 
> This CL:
>  - Changes EchoCancellationImpl to inherit privately from
>    EchoCancellation.
>  - Removes usage of AudioProcessing::echo_cancellation() inside most of
>    the audio processing module and unit tests.
>  - Default-enables metrics collection in AEC2.
> 
> This CL breaks audioproc_f backwards compatibility: It can no longer
> use all recorded settings (drift compensation, suppression level), but
> prints an error message when such settings are encountered.
> 
> Some code in audio_processing_unittest.cc still uses the old interface.
> I'll handle that in a separate change, as it is not as straightforward
> to preserve coverage.
> 
> Bug: webrtc:9535
> Change-Id: Ia4d4b8d117ccbe516e5345c15d37298418590686
> Reviewed-on: https://webrtc-review.googlesource.com/97603
> Commit-Queue: Sam Zackrisson <saza@webrtc.org>
> Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#24724}

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

Change-Id: Ifdc4235f9c5ee8a8a5d32cc8e1dda0853b941693
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9535
Reviewed-on: https://webrtc-review.googlesource.com/100305
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24729}
2018-09-13 14:55:30 +00:00
Ivo Creusen
d1c2f78bfe Implement new stats interface on NetEq to monitor the operations and internal state.
Currently we use the NetworkStatistics to monitor these metrics, but because these get reset on every call, this makes it impossible to use them for other purposes.

Bug: webrtc:9667
Change-Id: If648085f04d2d58aae263cff5b9491bcad373a96
Reviewed-on: https://webrtc-review.googlesource.com/99740
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24727}
2018-09-13 14:03:47 +00:00
Mirko Bonadei
bfb72ad4f4 Fix no_{global_constructors,exit_time_destructors} in audio device alsa.
Bug: webrtc:9693
Change-Id: Id37ef7e8c33830b494165202323ea65286052aae
Reviewed-on: https://webrtc-review.googlesource.com/100103
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24725}
2018-09-13 13:47:06 +00:00
Sam Zackrisson
1a03960e63 Remove APM internal usage of EchoCancellation
This CL:
 - Changes EchoCancellationImpl to inherit privately from
   EchoCancellation.
 - Removes usage of AudioProcessing::echo_cancellation() inside most of
   the audio processing module and unit tests.
 - Default-enables metrics collection in AEC2.

This CL breaks audioproc_f backwards compatibility: It can no longer
use all recorded settings (drift compensation, suppression level), but
prints an error message when such settings are encountered.

Some code in audio_processing_unittest.cc still uses the old interface.
I'll handle that in a separate change, as it is not as straightforward
to preserve coverage.

Bug: webrtc:9535
Change-Id: Ia4d4b8d117ccbe516e5345c15d37298418590686
Reviewed-on: https://webrtc-review.googlesource.com/97603
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24724}
2018-09-13 12:05:20 +00:00
henrika
36b3179312 Removes flaky thread checker in AudioDeviceBuffer.
This CL removes a set of DCHECKs in AudioDeviceBuffer (ADB) where the goal has been
to ensure that some methods are called on one and the same native I/O thread.
The implementation of the ADB is platform independent but the underlying (driving)
audio components differ between platforms. This combination has shown to generate complex
corner cases such as:

- OS dependent I/O-thread(s) changes while audio is active
- OS dependent audio device changes and it leads to restart of native I/O threads
- Start/Stop of audio has different timing depending on platform and possibly also usage of
JNI and/or emulators.

To summarize: the gain of maintaining the current strict thread checking (in Debug mode)
is not worth all the efforts trying to resolve complex dynamic cases where the native
I/O threads changes ID.

TBR=glaznev

Bug: b/115385789
Change-Id: I681c89adec497a18b97d2a40421c04ea218fd919
Reviewed-on: https://webrtc-review.googlesource.com/100200
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24723}
2018-09-13 11:41:52 +00:00
philipel
ef615ea7a3 Added is_last_packet_in_frame to match is_first_packet_in_frame.
Today we use |is_first_packet_in_frame| to know when a frame begins and the
|markerBit| to know when it ends, but the markerbit does not actually mark the
end of a frame, it marks the end of a picture.

Bug: webrtc:9361
Change-Id: Icc70e6075590cdc31e875a4eb9d489868adbb67c
Reviewed-on: https://webrtc-review.googlesource.com/100160
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@{#24722}
2018-09-13 11:07:10 +00:00
philipel
b3e42a4948 Write and parse the generic video descriptor.
Bug: webrtc:9361
Change-Id: Id129a6ab7a86641c6e80827458ef0c40c5640855
Reviewed-on: https://webrtc-review.googlesource.com/99542
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24718}
2018-09-13 09:00:50 +00:00