Commit Graph

4868 Commits

Author SHA1 Message Date
c421f3ef15 Makes sprang@ owner in modules/pacing
Bug: None
Change-Id: I4eca1d7f3af2fe949b368924e84b7f3d040d22ac
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160405
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29899}
2019-11-25 12:32:18 +00:00
80b2806250 Fixing a buffer overflow in Merge::Downsample
In the unlikely event that the decoded audio is really short, the
downsampling would read outside of the decoded audio vector. This CL
fixes that, and adds a unit test that verifies the fix (when running
with ASan).

Bug: chromium:1016506
Change-Id: Ifb8071ce0550111cd66e7f7c1bed7f17b33f93c5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160304
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29898}
2019-11-25 12:16:30 +00:00
77dc19905d Changed the digital AGC1 gain to properly support multichannel
Beyond making the digital AGC1 code properly support
multichannel, this CL also
-Removes deprecated debug logging code.
-Converts the gain application to be fully in floating point
 which
--Is less computationally complex.
--Does not quantize the samples to 16 bit before applying the
  gains.

Bug: webrtc:10859
Change-Id: I6020ba8ae7e311dfc93a72783a2bb68d935f90c5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159861
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29886}
2019-11-23 08:42:59 +00:00
e35b32c29f AGC: Removing unnneccessary copying and changing to using const
The changes have been shown to be bitexact on a large dataset.

Bug: webrtc:10859
Change-Id: Iedc0e9e944ebfabb717dd7fb4d2682c695da883e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159694
Reviewed-by: Benjamin Wright <benwright@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29883}
2019-11-22 20:14:16 +00:00
9cb06610d2 Add multi-channel support to AECM
AECM only supports up to two capture channels, this CL extends it to arbitrary channel counts.

Bug: webrtc:10859
Change-Id: Id56ca633cd9de706fa1254bfa8153de88de0ef70
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160340
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29880}
2019-11-22 17:16:53 +00:00
3daedb6c88 Making the Analog AGC properly support multi-channel
This CL adds proper multi-channel support to the analog AGC.

Beyond that, it prepares adding multi-channel support to the digital
AGC by removing the tight dependency between the analog and digital
AGC codes.

Bug: webrtc:10859
Change-Id: I4414ccbc3db5dbb5ae069fdf426cbd038375ca7b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159480
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29878}
2019-11-22 15:32:55 +00:00
af070d0299 Improves device enumeration in ADM2 for Windows.
Summary of changes/improvements and fixes:

Changes container for list of devices from std::vector to std:deque to
allow fast insertion and deletion at both its beginning and its end. This
approach makes it easier to first build a list of all available devices
and then check the size of the list. If size > 0 => two more devices are
added at the front (Default and Default Communication). The old solution
contained a risk of adding invalid Default and Default Communication
devices in cases where not physical device could be found.

Adds usage of |device_index_| in CoreAudioBase to ensure that the selected
device is unique. The previous version used only an ID but that ID is not
unique when e.g. only one device exists since it can have up to three
different roles.

Improves logging and comments.

No-Try: True
Tbr: thaloun@chromium.org
Bug: webrtc:11107
Change-Id: I9a09f7716ed8d8858dcc6a5354b038fc06496166
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160050
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29874}
2019-11-22 14:27:10 +00:00
9281436650 Add field trial to cap trendline slope in delay-based BWE.
Bug: webrtc:10932
Change-Id: I34a36a8cad16d65143eff9c675ee98bdbf176ace
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160014
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29872}
2019-11-22 13:14:53 +00:00
efbda8d90a Don't perform DataCallback if the input object has been stopped.
Fix signed/unsigned mismatch.


Protect against NumberOfEnumeratedDevices and Get[In|Out]putDeviceNames returning inconsistent results.

It's possible for an device to be counted but getting its name fails, in which case the utility function returns true but would continue from its loop filling the AudioDeviceNames vector, leading to a smaller output than the later code expects.

Bug: b/144382120
Change-Id: Iab008c28f03023c830011d229b1f1c7e3e7bb5ee
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160226
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29871}
2019-11-22 10:18:39 +00:00
4995f872ca Cleans up the round robin packet queue.
Usage of this class has now been simplified so that we can do some
cleanup:

* Removes dead code: Push() with 9 args, CancelPop()
* Replaces BeginPop()/CancelPop() with a single Pop() method
* Makes QueuePacket a private class
* Replaces rtp_packets_ with direct ownership from QueuePacket

Bug: webrtc:10809
Change-Id: Iea131ee87d5d920360c71fb180b2af0ea4fc6c7f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160007
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29869}
2019-11-22 08:07:15 +00:00
0174ffe700 Can list UWP applications
Before the CL [1] https://webrtc-review.googlesource.com/c/src/+/144960
the UWP applications could not be captured so they were filtered out.

Another reason of this previous filter was because otherwise some
'ghost windows' are listed too. These 'ghost windows' are prelaunched
UWP apps whose windows are created in a hidden/cloaked state to improve
perceived performance of launching these apps later, see:
[2] https://docs.microsoft.com/en-us/windows/uwp/launch-resume/handle-app-prelaunch

They can be filtered out using the new API merged recently
'webrtc::WindowCaptureHelperWin::IsWindowCloaked, see:
[3] https://webrtc-review.googlesource.com/c/src/+/143980

This patch allows non-cloaked UWP apps to be listed by taking advantage
of CL [3]. So that user can select them with the app window picker and can
then share them thanks to [1].

Bug: chromium:700037
Change-Id: I4b41bb764ebbd6e2f164f036a63a4b1cd06c3f2f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160021
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Commit-Queue: Julien Isorce <julien.isorce@chromium.org>
Cr-Commit-Position: refs/heads/master@{#29868}
2019-11-21 23:35:09 +00:00
b0df593e56 Reland "Prepares PacingController for simplified packet queue."
This is a reland of acdc22d7845c5dde7c23366110e54e5d26127c85

Original change's description:
> Prepares PacingController for simplified packet queue.
>
> This CL removes references to RoundRobinPacketQueue::QueuedPacket,
> other than the method to release an RtpPacketToSend. It also moves
> both the BeginPop() and FinalizePop() to within a single helper
> method.
>
> A follow-up cleanup of the packet queue will stop exposing the
> QueuedPacket struct and replaces the the pop-methods with a single
> new one that just returns an RtpPacketToSend.
>
> Bug: webrtc:10809
> Change-Id: I5208a93e12e6b56714d483cc12d2a37225ea8e5e
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159889
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Philip Eliasson <philipel@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29820}

TBR=philipel@webrtc.org

Bug: webrtc:10809
Change-Id: Id8196d9348d7fa69a5e410367b8a88e6039ef1b8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160205
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29867}
2019-11-21 17:19:10 +00:00
58a3210823 Add config to reduce weight on small samples in BitrateEstimator.
Change #159711 adds the option to filter out small packets on the
input to the delay-based BWE. This change adds similar functionality
to BitrateEstimator by reducing the weight of small observations.

Bug: webrtc:10932
Change-Id: I0a673a067f7ef86769cabd30443e60e9de70053c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160009
Commit-Queue: Christoffer Rodbro <crodbro@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29865}
2019-11-21 15:52:25 +00:00
038fd99780 Add RtpDepacketizerAv1::AssembleFrame function
Bug: webrtc:11042
Change-Id: I677fc6a9affacf3b7c80adc2c3493c16806db1f6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160003
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29862}
2019-11-21 14:50:41 +00:00
e835fc01b1 Add UMA counter for audio interruptions
The metric is added to Chromium histograms in
https://chromium-review.googlesource.com/c/chromium/src/+/1925066.

Bug: webrtc:10549
Change-Id: I2bf98f469547aa8621832fc4f8bd29c4805ac0b8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160045
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29854}
2019-11-21 11:40:21 +00:00
d51cc7bd71 Add absolute capture time property to rtp sources.
This part of the effort to implement A/V sync metric.

Bug: webrtc:10739
Change-Id: I4adba1b99b37b31868168e37d9aa8e03f8ea6d4e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159886
Commit-Queue: Ruslan Burakov <kuddai@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Ruslan Burakov <kuddai@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29849}
2019-11-20 18:50:45 +00:00
bb55e0bc72 Clarifies identification of default communication device in ADM2
ADM2 for Windows is based on the CoreAudioUtil class in Chrome.
CoreAudioUtil in Chrome does not use a special string to identify
the Default Communication device but instead a combination of a
string (Default) and a role parameter [1].

When CoreAudioUtil was ported to WebRTC, I accidentally added an
invalid usage of a unique string to identify the default comm device
and it can lead to errors since there are then two different ways to
identify this device. It will also complicate life when we want to
merge changes from Chrome into WebRTC.

This CL removes usage of AudioDeviceName::kDefaultCommunicationsDeviceId
in WebRTC to reduce the risk of errors.

[1] https://cs.chromium.org/chromium/src/media/audio/win/core_audio_util_win.cc?q=core_audio_ut&sq=package:chromium&g=0&l=464

Excluding flaky bot win_x86_msvc_dbg and using Tbr.

Tbr: thaloun@chromium.org
No-Try: True
Bug: webrtc:11107
Change-Id: Ie6687adbe9c3940a217456e4025967f71d86214c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160047
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29848}
2019-11-20 15:02:06 +00:00
dca14499be Makes RoundRobinPacketQueue use same field trials as PacingController.
A bug currently causes the packet queue to not get any trials enabled
unless an injected key value map is used.

Bug: None
Change-Id: I5c21aa296e8a202a63e81a57c5d13297ad7333bd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160012
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29845}
2019-11-20 13:36:46 +00:00
5831ddad65 Introduce IVF file reader
Bug: webrtc:10138
Change-Id: I97d332942f4e645527330159efefb1cb1d8034a0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160008
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29844}
2019-11-20 13:20:56 +00:00
3b1a8bb00c Account for rounding errors in dyanmic pacing mode.
Keeps behavior for old periodic processing.
Rounding sleep time reduced chance for small bursts of busy-looping when
time approaches 0.
Also fixes a DCHECK which may trigger if there are rounding errors in
the timing.

Bug: webrtc:10809
Change-Id: Iba8450f906fd6ab3b1da97e04507b16ac6bbde3f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160000
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29841}
2019-11-20 11:23:43 +00:00
83b286202b Protect against NumberOfEnumeratedDevices and Get[In|Out]putDeviceNames returning inconsistent results.
It's possible for an device to be counted but getting its name fails, in which case the utility function returns true but would continue from its loop filling the AudioDeviceNames vector, leading to a smaller output than the later code expects.

No-Try: True
Bug: b/144729866
Change-Id: If902cada4ef2911bc24fbec0f169da75ff6e6a83
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160020
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29840}
2019-11-20 08:51:27 +00:00
4dd56a3830 ACM: Adding unittests for the remixing functionality
On top of adding unittests for the remixing, the CL
moves the code tested to a separate file in order
to allow it to be tested.

Bug: webrtc:11007
Change-Id: I531736517bbcc715b3c1bf3a4256c42208c5b778
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/155740
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29839}
2019-11-20 06:20:22 +00:00
0e3198e434 Refactoring of the analog AGC functionality to add multichannel support
This CL refactors the analog AGC functionality. In particular it:
-Breaks then tight dependency between the analog AGC and the digital
AGC implementation.
-Removes the complicated callback interface for reporting the analog
level and replaces it with an int.

Bug: webrtc:10859
Change-Id: I3572d60ab98edebbcffa25af64cc74c66f9868fc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159039
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29838}
2019-11-19 23:39:07 +00:00
f3fcde36c2 Store delay measurements as struct instead of std::pair
Bug: None
Change-Id: I60f375cda4f910550a86d2238acf39d429e2a17b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160004
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29837}
2019-11-19 17:44:11 +00:00
fa7a8ca21c Revert "Prepares PacingController for simplified packet queue."
This reverts commit acdc22d7845c5dde7c23366110e54e5d26127c85.

Reason for revert: Field trials are not enabled in the same way, will reland after that is fixed.

Original change's description:
> Prepares PacingController for simplified packet queue.
> 
> This CL removes references to RoundRobinPacketQueue::QueuedPacket,
> other than the method to release an RtpPacketToSend. It also moves
> both the BeginPop() and FinalizePop() to within a single helper
> method.
> 
> A follow-up cleanup of the packet queue will stop exposing the
> QueuedPacket struct and replaces the the pop-methods with a single
> new one that just returns an RtpPacketToSend.
> 
> Bug: webrtc:10809
> Change-Id: I5208a93e12e6b56714d483cc12d2a37225ea8e5e
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159889
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Philip Eliasson <philipel@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29820}

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

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

Bug: webrtc:10809
Change-Id: I02fccbfbba6b9670b0ce2008e067df3aa9d3c5f2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160010
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29836}
2019-11-19 16:54:32 +00:00
332274dfef Adding GetInDtx to WebRTC Opus Interface.
Bug: webrtc:11085
Change-Id: Ie9152cbe3f3c70f6febafb877852d68a831bcae9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159708
Commit-Queue: Minyue Li <minyue@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29834}
2019-11-19 14:14:06 +00:00
063c7d18c0 In dependency descriptor remove extended fields indicator
to follow PR64 spec change
https://github.com/AOMediaCodec/av1-rtp-spec/pull/64

Bug: webrtc:10342
Change-Id: Ic082d5e551b5f38427d5a43be987b0d35f6ea155
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160001
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29832}
2019-11-19 13:12:10 +00:00
fe047757d6 Fix a bug in interruption metrics
The reported audio interruption metrics are too high. If GetAudio
calls start before the first packets are arriving, and the sample rate
of the encoded audio is different from the one used to initialize
NetEq (default 16 kHz), the initial silent period of GetAudio calls
will be reported as an interruption.

Modifying a unit test to trigger the bug, and make sure it won't come
back.

Bug: webrtc:11094, b/144567257
Change-Id: Id540422cb7f35d3bef68b9e7c03c6e7c8bdb8d97
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159980
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29831}
2019-11-19 12:58:50 +00:00
351173c88c Tests that all available audio devices can be selected and used by the ADM.
New tests are:

- AudioDeviceTest.StartStopPlayoutWithRealDevice
- AudioDeviceTest.StartStopRecordingWithRealDevice

(the comments below only affects ADM2 on Windows):

When adding these tests it was found that we could hit the same known issue
as in https://bugs.chromium.org/p/chromium/issues/detail?id=803056 and the
same solution as in Chrome was therefore ported from Chrome to WebRTC.

Hence, this change also adds support for core_audio_utility::WaveFormatWrapper
to support devices that can return a format where only the WAVEFORMATEX parts is
initialized. The old version would only DCHECK for these devices and that could
lead to an unpredictable behavior.

Tbr: minyue
Bug: webrtc:11093
Change-Id: Icb238c5475100f251ce4e55e39a03653da04dbda
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159982
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29824}
2019-11-18 17:47:31 +00:00
8ae70f6a30 Enable WebRTC-Bwe-MaxRttLimit by default.
Some of the field trial default values are changed as well.

Now available bitrate estimation will be decreasing when RTT is more than 3 seconds.
Unless different parameters for the field trial are specified.

Bug: None
Change-Id: Icd1923fc2e2e7766a7f645016c5432a52537145f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158840
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Konrad Hofbauer <hofbauer@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Commit-Queue: Nikita Zetilov <zetilovn@google.com>
Cr-Commit-Position: refs/heads/master@{#29823}
2019-11-18 16:53:11 +00:00
aa3f5da8dc Fork VCMPacket for PacketBuffer into own struct
it is easier to reduce and eliminate it when it is not bound to legacy video code

Bug: webrtc:10979
Change-Id: I517e298501b3358a914a23ddce40fcb3075d672d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159707
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29821}
2019-11-18 15:48:07 +00:00
acdc22d784 Prepares PacingController for simplified packet queue.
This CL removes references to RoundRobinPacketQueue::QueuedPacket,
other than the method to release an RtpPacketToSend. It also moves
both the BeginPop() and FinalizePop() to within a single helper
method.

A follow-up cleanup of the packet queue will stop exposing the
QueuedPacket struct and replaces the the pop-methods with a single
new one that just returns an RtpPacketToSend.

Bug: webrtc:10809
Change-Id: I5208a93e12e6b56714d483cc12d2a37225ea8e5e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159889
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29820}
2019-11-18 15:37:58 +00:00
ccf12c6e97 Reland "Add AV1 RtpDepacketizer class"
This is a reland of 49470c2ac460ed8cce250942e8525c5f14e32778
Tentative reland to rule-out bot flakiness.

Original change's description:
> Add AV1 RtpDepacketizer class
>
> Implement Parse function that extracts is_first_packet_in_frame,
> is_last_packet_in_frame, and frame_type fields.
>
> Bug: webrtc:11042
> Change-Id: I9360ea52ef274281b5c5e4c31955100b92155bfe
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159180
> Reviewed-by: Philip Eliasson <philipel@webrtc.org>
> Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29814}

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

Bug: webrtc:11042
Change-Id: Ibd672ce685bcab86960500740465539ed70fcdf4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159941
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29819}
2019-11-18 15:23:08 +00:00
9f99175710 Revert "Add AV1 RtpDepacketizer class"
This reverts commit 49470c2ac460ed8cce250942e8525c5f14e32778.

Reason for revert: Seems to trigger linker error on iOS64. See:
https://ci.chromium.org/p/webrtc/builders/ci/iOS64%20Debug/17733

Original change's description:
> Add AV1 RtpDepacketizer class
> 
> Implement Parse function that extracts is_first_packet_in_frame,
> is_last_packet_in_frame, and frame_type fields.
> 
> Bug: webrtc:11042
> Change-Id: I9360ea52ef274281b5c5e4c31955100b92155bfe
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159180
> Reviewed-by: Philip Eliasson <philipel@webrtc.org>
> Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29814}

TBR=danilchap@webrtc.org,saza@webrtc.org,philipel@webrtc.org

Change-Id: I2eb5994d8e31e12d6cb6e9f792b691ed10d9df81
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:11042
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159940
Reviewed-by: Yves Gerey <yvesg@google.com>
Commit-Queue: Yves Gerey <yvesg@google.com>
Cr-Commit-Position: refs/heads/master@{#29815}
2019-11-18 12:14:56 +00:00
49470c2ac4 Add AV1 RtpDepacketizer class
Implement Parse function that extracts is_first_packet_in_frame,
is_last_packet_in_frame, and frame_type fields.

Bug: webrtc:11042
Change-Id: I9360ea52ef274281b5c5e4c31955100b92155bfe
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159180
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29814}
2019-11-18 09:39:34 +00:00
39bab5afb5 Add missing assert.h for win no-test build
Add some missing `#include <assert.h>` for Windows build when compiling
without RTC tests (rtc_include_tests = false) with the MSVC compiler
(is_clang=false, use_lld=false).

Bug: None
Change-Id: Ie9861100efeae87f4c4e29303d62293ad541125a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158533
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29811}
2019-11-17 07:52:32 +00:00
ef6fe0cf2b Use GetDefaultAudioEndpoint for the default communications device as well as the vanilla default device
Bug: b/144524502
Change-Id: I3349010a2f2d67cde29a61740496c38712f0f391
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159900
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29808}
2019-11-15 23:26:07 +00:00
bb55c5e2ec Correct the upmixing of mono to stereo in ACM2
This CL is a correction to the former CL that changed the remixing for
surround. A bug in that CL caused the upmixing from mono to stereo to
place zeros in the right channel.

The unittest CL is present in https://webrtc-review.googlesource.com/c/src/+/155740

Bug: b/144458371
Change-Id: I192e587a1b083a7bb55dcac2343f8b6d3942b9ed
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159864
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29805}
2019-11-15 16:07:30 +00:00
fd0e32a87a Fix filtering of small packets in delay-based BWE
crodbro@ found that the previous field trial, which filtered the deltas
in the trendline estimator, can increase the noise caused by varying
packet sizes. Moving the filtering to the DelayBasedBwe class fixes the
issue.

To avoid confusion, we've updated the field trial name, so e.g.
WebRTC-BweIgnoreSmallPacketsFix/small:200bytes,large:200bytes,
                                fraction_large:0.25,smoothing:0.1/
should be used to enable the feature.

Bug: webrtc:10932
Change-Id: If77e83043c37fff909038405f634e541ce41abb8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159711
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29804}
2019-11-15 14:53:59 +00:00
74f35e48d5 Add support for dynamic processing mode in PacedSender.
Behind a default-disabled field trial.

Bug: webrtc:10809
Change-Id: If5d9b69721bd67e59e68b1026e3797e9a1b0a760
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159783
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29802}
2019-11-15 08:56:00 +00:00
eb48799ec5 Prepares PacingController for scheduled send tasks.
This CL is in preparation for a dynamic (possible TaskQueue-driven)
pacer that instead of processing blindly every 5ms, posts delayed
tasks to be executed when it is actually time to send packs.

This means we need the pacing controller to be able to figure out when
those execution times shall be, and be able to correctly update budget
levels as IntervalBudget only works correctly with periodic processing.

Bug: webrtc:10809
Change-Id: Idd12acaabfb24cc2e6bcc589aac206cd04beb6e4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158790
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29800}
2019-11-14 13:53:56 +00:00
3527a4fe55 In PacketBuffer split logic for detecting frame boundaries and assembling frame.
Bug: webrtc:11042
Change-Id: If1695067054b332569f4839aa6762af33173b769
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159283
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29799}
2019-11-14 13:32:06 +00:00
048b10a9ec Correcting the ACM upmixing from mono/stereo to surround
This CL corrects the upmixing from mono/stereo to surround in the audio
coding module.


Bug: webrtc:11083
Change-Id: Ic529107d59ff54a8e48b0424cbdf2b49b7a65c12
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159705
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29792}
2019-11-13 15:23:19 +00:00
c20a19cc4b Allow extracting the linear AEC output
This CL enables extracting the linear AEC output,
allowing for more straightforward
testing/development.

Bug: b/140823178
Change-Id: I14f7934008d87066b35500466cb6e6d96f811688
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/153672
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29789}
2019-11-13 11:33:53 +00:00
d4002a733d RTC_EXPORT missing symbols for Chromium's component build.
This CL adds a dependecy on rtc_base/system:rtc_export to rtc_event but
only when built as part of Chromium (since rtc::Event should not be
used outside of WebRTC).

It also adds other missing RTC_EXPORTS.

Bug: webrtc:9419
Change-Id: Ib338004a5404a6b3c7929e146c29ad42572632cc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159692
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29781}
2019-11-12 21:50:01 +00:00
86b33e0b7e Don't ask for the friendly name of a default device if we failed to enumerate it.
Bug: b/144233691
Change-Id: I5f80c63858ec851ab14bcc3c1ca51ca2e9507834
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159582
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Tim Haloun <thaloun@chromium.org>
Cr-Commit-Position: refs/heads/master@{#29778}
2019-11-12 18:41:24 +00:00
059daa48a9 Don't leak device moniker when BindToStorage fails.
Bug: b/143372501
Change-Id: Ib60efc830de057c7edafa81b77b696b785fb78e7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159661
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29774}
2019-11-12 15:37:41 +00:00
251b0dcc4f Simplified throughput estimator
Add interface for AcknowledgedBitrateEstimator
Add simplified throughput estimator, implementing the same interface.
The choice of estimator implementation can be controlled by a field trial.

Bug: webrtc:10274
Change-Id: I6bef090a8a6a1783f3f5750a2ee56189f562a9c8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158892
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29761}
2019-11-11 21:21:10 +00:00
3a65f392a3 Expose NetEqDecodingTest for re-use in chromium tests.
This CL allows to trigger related tests when rolling opus
(at chromium side). Namely:
* TestOpusBitExactness
* TestOpusDtxBitExactness

This CL also prevents name clash for OpusTest:
* modules/audio_coding/test/opus_test.h: Helper class.
* modules/audio_coding/neteq/opus_unittest.cc: Local test fixture.

Bug: chromium:1002973
Change-Id: If8470b5f64fbdb1f7a84b838bde62d8c90390f2c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159033
Commit-Queue: Yves Gerey <yvesg@google.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29759}
2019-11-11 17:45:46 +00:00
7587de476b APM runtime setting: fix kPlayoutVolumeChange not dispatched
Bug: webrtc:10608
Change-Id: Ied2e8db1f9914217c6001e0da79c19e2b414056d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159560
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29755}
2019-11-11 13:54:03 +00:00