Commit Graph

1690 Commits

Author SHA1 Message Date
ec93075c00 Delete deprecated methods on AudioCodingModule
Bug: None
Change-Id: I05f1ab6cdd6ac52972835af7ea94aacf5f64d673
Reviewed-on: https://webrtc-review.googlesource.com/95482
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24388}
2018-08-22 13:26:17 +00:00
8dad9b414a Eliminate NackModule dependency on VCMPacket
Bug: None
Change-Id: I1d4ecac123c888f2315aeb2f717ee756a472036e
Reviewed-on: https://webrtc-review.googlesource.com/95420
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24387}
2018-08-22 12:13:39 +00:00
206b77f7ad Adds start bitrate handling to task queue congestion controller.
This adds a start bitrate field to TargetRateConstraints since this is
required in VideoSendStreamTests. This also reduces the differences
between the old SendSideCongestionController and the new TaskQueue
based version.

Bug: webrtc:9586
Change-Id: I5d3d1414e9d30b51723c911a0bf2e96b876c04e5
Reviewed-on: https://webrtc-review.googlesource.com/92624
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24384}
2018-08-22 10:09:26 +00:00
f2a8287cc5 Reland "Move FakeCodec to separate target and behave like real encoder."
Add FakeVp8Encoder, change FakeEncoder to use BitrateAllocator for simulcast.

Change call_test to use VP8 payload name for simulcast tests.
This is reland after fixes for broken perf tests.

 
Original Reviewed-on: https://webrtc-review.googlesource.com/91861

Bug: none
Change-Id: I6999a499408787be43a74a26a16b7826a0814a7b
Reviewed-on: https://webrtc-review.googlesource.com/95182
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24383}
2018-08-22 09:48:32 +00:00
4932aa185c Avoids posting tasks in congestion controller.
This CL makes calls to send side congestion controller that originates
from the task queue execute directly rather than posting a task. This
ensures that side effects are applied by the time the call returns.

This reduces the risk that the task queue version of the congestion
controller introduces races that does not exist in the process thread
based version.

Bug: webrtc:9586
Change-Id: I82de032dc971c791a0f86d20ccbd47cbb09eba4b
Reviewed-on: https://webrtc-review.googlesource.com/85360
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24382}
2018-08-22 09:47:02 +00:00
ea9249ed15 Network & bitrate controllers are added for PCC.
Network controller is an implementation of the
NetworkControllerInterface which is a part of congestion controller API.
Bitrate controller computes rate update each iteration (see
https://www.usenix.org/system/files/conference/nsdi18/nsdi18-dong.pdf).

Bug: webrtc:9434
Change-Id: I48d3d9e1c713985ef9ebe28dc1f1285757588c69
Reviewed-on: https://webrtc-review.googlesource.com/87222
Commit-Queue: Anastasia Koloskova <koloskova@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24376}
2018-08-22 08:08:12 +00:00
801500cf99 Audio encoder tests: Create audio encoders the new way
Specifically, don't expect the ACM to be able to create encoders; we
have to give it an encoder that we make ourselves.

The new way of creating encoders used a 32 kbit/s bitrate
unconditionally for iSAC; I had to change it to 32 kbit/s for 16 kHz
and 56 kbit/s for 32 kHz, which is what the old way of creating
encoders has used since forever.

I also had to change some test expectations on Opus, because the new
way defaults to 32 kbit/s for mono and 64 kbit/s for stereo (which I
believe to be correct), while the old way defaults to 64 kbit/s in
both cases.

Bug: webrtc:8396
Change-Id: I3aab944175a8e27f4c63380e822b27e839bba7f2
Reviewed-on: https://webrtc-review.googlesource.com/94540
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24375}
2018-08-22 07:48:55 +00:00
2370b0831f Revert "Update packetsLost and jitter stats any time a packet is received."
This reverts commit 84916937b70472715efe5682bc273e91c3a72695.

Reason for revert: breaking downstream projects.

Original change's description:
> Update packetsLost and jitter stats any time a packet is received.
>
> Before this CL, the packetsLost and jitter stats (as returned by
> GetStats, at the API level) were only being updated when an RTCP SR or
> RR is generated. According to the stats spec, "local" stats like this
> should be updated any time a packet is received.
>
> This CL also fixes some minor issues with the calculation of packetsLost
> (and fractionLost):
> * Packets weren't being count as lost if lost over a sequence number
>   rollover.
> * Temporary periods of "negative" loss (caused by duplicate or out of
>   order packets) weren't being accumulated into the cumulative loss
>   counter. Example:
>   Period 1: Received packets 1, 2, 4
>     Loss over that period: 1 (expected 4 packets, got 3)
>     Reported cumulative loss: 1
>   Period 2: Received packets 3, 5
>     Loss over that period: -1 (expected 1 packet, got 2)
>     Reported cumulative loss: 1 (should be 0!)
>
> Landing with NOTRY because Android compile bots are broken for an
> unrelated reason.
> NOTRY=True
>
> Bug: webrtc:8804
> Change-Id: I840ba34de8957b1276f6bdaf93718f805629f5c8
> Reviewed-on: https://webrtc-review.googlesource.com/50020
> Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org>
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#23731}

TBR=danilchap@webrtc.org,deadbeef@webrtc.org,ossu@webrtc.org

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

Landing with NOTRY because ios64_sim_ios10_dbg bot is broken.
Passing all other bots.
NOTRY=True

Bug: webrtc:8804
Change-Id: I07bd6b1206d5a8d211792ad392842f9ed6c505e9
Reviewed-on: https://webrtc-review.googlesource.com/95280
Commit-Queue: Qingsi Wang <qingsi@webrtc.org>
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24370}
2018-08-22 00:00:33 +00:00
ddbbf4601b Adds utility function for PCC.
Bug: webrtc:9434
Change-Id: I840f39afdff1851d939005f82e64b23927bf455e
Reviewed-on: https://webrtc-review.googlesource.com/87146
Commit-Queue: Anastasia Koloskova <koloskova@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24369}
2018-08-21 21:28:00 +00:00
9171e78ccd Adds monitor interval class for PCC.
The PCC congestion control algorithm divides time into consecutive
intervals called monitor intervals. This CL adds a class that is used by
PCC to measure the performance of sending at a certain rate during one
monitor interval.

Bug: webrtc:9434
Change-Id: Ia0447e224067d4ca807bcc6fd8083f9083385b91
Reviewed-on: https://webrtc-review.googlesource.com/87140
Commit-Queue: Anastasia Koloskova <koloskova@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24368}
2018-08-21 19:47:35 +00:00
7d13a6e5b9 Revert "Move FakeCodec to separate target and behave like real encoder."
This reverts commit 223eba5f72b5228847eeebaaef1c4305a29e8b3d.

Reason for revert: Breaks perf tests and downstream projects.

Original change's description:
> Move FakeCodec to separate target and behave like real encoder.
> 
> Add FakeVp8Encoder, change FakeEncoder to use BitrateAllocator for simulcast.
> Change call_test to use VP8 payload name for simulcast tests.
> 
> Bug: none
> Change-Id: I5a34c52e66bbd6c05859729ed14ae87ac26b5969
> Reviewed-on: https://webrtc-review.googlesource.com/91861
> Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Per Kjellander <perkj@webrtc.org>
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#24359}

TBR=mbonadei@webrtc.org,ilnik@webrtc.org,sprang@webrtc.org,srte@webrtc.org,perkj@webrtc.org

Change-Id: I602acecb3f340cc8d737ca074bf52496593419c8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: none
Reviewed-on: https://webrtc-review.googlesource.com/95181
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24365}
2018-08-21 15:20:32 +00:00
ac50c6a204 Adds Rtt tracker for PCC.
This is a part of series of CLs adding PCC (Performance-oriented
Congestion Control).

Bug: webrtc:9434
Change-Id: Idd36d8abea008623ac64b939d0de7ee6001f7f23
Reviewed-on: https://webrtc-review.googlesource.com/86951
Commit-Queue: Anastasia Koloskova <koloskova@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24364}
2018-08-21 15:00:47 +00:00
8459b17c75 AEC3: adding a config option for applying a more conservative initial phase.
Change-Id: If0f93aa6abcb3b8e99ca40dde86b15a4b1487883
Bug: webrtc:8671
Reviewed-on: https://webrtc-review.googlesource.com/94505
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Jesus de Vicente Pena <devicentepena@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24363}
2018-08-21 14:56:14 +00:00
c3da6716d4 AEC3: Adding another config parameter and matching json reader with config
This CL:
-Adds another config parameter that controls the duration of the initial
state.
-Adds reading of that parameter in audioproc_f from the json settings file.
-Adds missing reading of another parameter in audioproc_f from the json
settings file.

Bug: webrtc:8671
Change-Id: Ie6164c360492de5e6b0ade8838bbabe214560b5e
Reviewed-on: https://webrtc-review.googlesource.com/94621
Reviewed-by: Jesus de Vicente Pena <devicentepena@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24360}
2018-08-21 13:58:10 +00:00
223eba5f72 Move FakeCodec to separate target and behave like real encoder.
Add FakeVp8Encoder, change FakeEncoder to use BitrateAllocator for simulcast.
Change call_test to use VP8 payload name for simulcast tests.

Bug: none
Change-Id: I5a34c52e66bbd6c05859729ed14ae87ac26b5969
Reviewed-on: https://webrtc-review.googlesource.com/91861
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24359}
2018-08-21 13:44:32 +00:00
803e3ff298 Removes unused reserved bitrate in BitrateController.
This removes the reserved bitrate feature as it is not currently used.
This saves debugging time as there is less code to investigate. This
also makes it easier to compare the code with the task queue based
version which lacks this feature.

Bug: webrtc:9586
Change-Id: I207624ceb8d203c88c3d01bfc753d60523f99fe4
Reviewed-on: https://webrtc-review.googlesource.com/92622
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24357}
2018-08-21 12:56:35 +00:00
76be29555d Allow VP9 flexible mode.
- Allow use of flexible mode which was blocked in webrtc:9261 since it
only worked together with old screen sharing. Since webrtc:9244 flexible mode
works with both normal and screen coding modes.
- Add unit test that checks that reference list encoder writes into RTP
payload descriptor and the predefined one match.

Bug: webrtc:9585
Change-Id: I4a1bdc51cbf15e7224cc7c271af8b2e3d46657d1
Reviewed-on: https://webrtc-review.googlesource.com/94778
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24355}
2018-08-21 11:10:36 +00:00
280632b440 Delete unneeded forward declares of RtpReceiver
Bug: webrtc:7135
Change-Id: I1ca8537248ed5c87f8913263c680e0a5a5544130
Reviewed-on: https://webrtc-review.googlesource.com/94506
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24353}
2018-08-21 09:30:02 +00:00
2377588c82 Add accessor methods for RTP timestamp of EncodedImage.
Intention is to make the member private, but downstream callers
must be updated to use the accessor methods first.

Bug: webrtc:9378
Change-Id: I3495bd8d545b7234fbea10abfd14f082caa420b6
Reviewed-on: https://webrtc-review.googlesource.com/82160
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24352}
2018-08-21 09:15:51 +00:00
d34a188649 Fix Vp9 flexible mode in RTP ref frame finder.
Bug: webrtc:9643
Change-Id: Ie545dfb982297902f7df1da90008af04c5e67d6e
Reviewed-on: https://webrtc-review.googlesource.com/94901
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24348}
2018-08-20 15:15:59 +00:00
908689d047 Fix calculation of number of active spatial layers.
It didn't account for implicit bitrate allocation, which is used in
some unit tests, when bitrate distribution is done by the encoder
wrapper.

Bug: none
Change-Id: I8fcf28e10f7a6c378580ef917221ad5c8d3869c9
Reviewed-on: https://webrtc-review.googlesource.com/94775
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24343}
2018-08-20 10:25:55 +00:00
0320348237 Correct audioproc_f to support the new echo canceller activation
The introduction of the new AEC proxies caused audioproc_f to fail.
This CL corrects audioproc_f so that the AEC2 and AECM echo cancellers
are properly activated using the new AEC proxies.

Bug: webrtc:9535
Change-Id: I1be59a9277aad8f51765c26e34ab16b63bcaeb42
Reviewed-on: https://webrtc-review.googlesource.com/94774
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24340}
2018-08-20 08:43:14 +00:00
1c0cf3101d Stop using typeof() GNU extension
6009a54aab
switches away from -std=gnu++...

Bug: chromium:427584
Change-Id: Ib9cb76ce6fb901727f696ded3944af0e510c030a
Reviewed-on: https://webrtc-review.googlesource.com/94779
Commit-Queue: Oleh Prypin <oprypin@google.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24337}
2018-08-20 08:15:13 +00:00
6204adf2ed AEC3: Loosen the echo removal requirements in conservative mode
This CL lowers the margins in the AEC3 conservative mode to increase
the transparency when there are audio buffer issues, and during call
startup.

In particular, this CL adjusts the parameters and thresholds to
-Make the requirements for filter divergence more strict, to minimize
the transparency loss during minor filter divergence.
-Decrease the echo power uncertainty used during initial filter
convergence, to increase transparency after audio buffer issues.
-Deactivate the enforcement of conservative suppressor gain after
audio buffer.

Bug: webrtc:9641,chromium:875611
Change-Id: Ie171bb411f17a1e8661c291118debd334f65c74f
Reviewed-on: https://webrtc-review.googlesource.com/94776
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Jesus de Vicente Pena <devicentepena@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24333}
2018-08-19 10:43:46 +00:00
7343f56ca6 AEC3: Added parameters for bypassing the suppressor
Bug: webrtc:8671
Change-Id: I9d9ffae0ca66a457481860f619e20fe580632f1d
Reviewed-on: https://webrtc-review.googlesource.com/94622
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24331}
2018-08-17 21:58:01 +00:00
b3b47ad7e6 Toggle AECs via AudioProcessing::Config
This allows clients to stop using the old pointer-to-submodule interfaces
for enabling/disabling AEC2 and AECM.

The legacy suppression level flag for AEC2 is not yet activated.

NoTry=TRUE

Bug: webrtc:9535
Change-Id: Ie2c3378d832a6b393aec656d96597f85e299f500
Reviewed-on: https://webrtc-review.googlesource.com/94771
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24328}
2018-08-17 14:56:57 +00:00
506c569443 Don't drop keyframes even if TemporalLayers says so.
This CL is a minimum effort/low risk fix.
Later CLs take a more thorough approach.

Bug: webrtc:9634
Change-Id: I728a061a4e71b38a559ee438646de83cd2cb3517
Reviewed-on: https://webrtc-review.googlesource.com/94760
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24326}
2018-08-17 12:03:35 +00:00
658a552fd5 Audio encoder tests: Create audio encoders the new way
Specifically, don't expect the ACM to be able to create encoders; we
have to give it an encoder that we make ourselves.

Bug: webrtc:8396
Change-Id: I032b12f3813af6ac3ea0dfb688006899dffe4855
Reviewed-on: https://webrtc-review.googlesource.com/94150
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24323}
2018-08-17 06:38:09 +00:00
74ed734d71 Add AEC proxies for simple deprecation of AEC configurability.
Some changes need access to both the APM interface and the AECs,
hence we can't make the changes inside the AECs themselves.

The proxies also make it easy to drop support for individual parts of the
interfaces one at a time.


Bug: webrtc:9535
Change-Id: I3398e1182157f7d8b1e4c455060b830b61c20dd9
Reviewed-on: https://webrtc-review.googlesource.com/94500
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24317}
2018-08-16 15:16:44 +00:00
84ccb2de77 Remove kVideoCodecUnknown from WebRTC.
There is no difference between how we handle "generic" and "unkown" codecs,
so we don't need to represent both.

Bug: webrtc:8136
Change-Id: I42b0dbc8a0bae67cc21742303c963c8dd5bde1f6
Reviewed-on: https://webrtc-review.googlesource.com/92086
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24316}
2018-08-16 15:15:39 +00:00
c4deaaa7c5 Set AEC2 suppression to high by default
The other modes are little-tested and nigh-unsupported.
Surrounding APM code is tuned for high suppression.

Both WebRtcVoiceEngine and Chrome default all usage to high
suppression.

Bug: webrtc:9535
Change-Id: Ic1a6bd90b86a994338addfef7f473132ab43092a
Reviewed-on: https://webrtc-review.googlesource.com/91865
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24313}
2018-08-16 12:14:14 +00:00
30b4839d10 Refactor voe::Channel to not use RtpReceiver.
Analogous to https://webrtc-review.googlesource.com/c/src/+/92398, for
RtpVideoStreamReceiver.

Bug: webrtc:7135
Change-Id: I0639f9982da2ed80edbcf900cf14f8ae982ef80c
Reviewed-on: https://webrtc-review.googlesource.com/93820
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24309}
2018-08-16 10:18:20 +00:00
4eb4b05556 Delete unused method VideoReceiver::SetMinReceiverDelay
Bug: None
Change-Id: I4d3b74c2af53177355e92d3f9190d6ea58552c8f
Reviewed-on: https://webrtc-review.googlesource.com/94061
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24308}
2018-08-16 10:00:14 +00:00
213168f4c3 Remove a static initializer in default_temporal_layers.cc
kAllBuffers in default_temporal_layers.cc introduces a static initializer,
that is banned in Chromium, and that blocks WebRTC roll into Chromium.

This CL removes it to unblock.

Bug: webrtc:9012
Change-Id: Ide181f63d85748dc2d09199024f1b80868d485fd
Reviewed-on: https://webrtc-review.googlesource.com/94460
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24307}
2018-08-16 08:52:14 +00:00
aa91b3c67e Hooks up more AEC3 parameters to be read by the AEC3 configuration file
Bug: webrtc:8671
Change-Id: I593ea4965ab2f8215e5d55e0778caf83cf62d4e1
Reviewed-on: https://webrtc-review.googlesource.com/94480
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24304}
2018-08-16 08:30:48 +00:00
315ce5b308 Remove unused members in rtp_rtcp tests and make some members const.
Bug: none
Change-Id: I5f92899742406157d94de235e7c1a50755b3ac61
Reviewed-on: https://webrtc-review.googlesource.com/92393
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24303}
2018-08-16 07:53:16 +00:00
e86512d5c0 Revert "Optimize execution time of RTPSender::UpdateDelayStatistics"
This reverts commit 733df738e30d35d33490d6959de5fdba9eb4dc83.

Reason for revert: Breaking internal tests

Original change's description:
> Optimize execution time of RTPSender::UpdateDelayStatistics
> 
> Bug: webrtc:9439
> Change-Id: I908e9ced10031c614678a89657d089cb9a66b9ce
> Reviewed-on: https://webrtc-review.googlesource.com/92391
> Commit-Queue: Björn Terelius <terelius@webrtc.org>
> Reviewed-by: Åsa Persson <asapersson@webrtc.org>
> Reviewed-by: Philip Eliasson <philipel@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#24295}

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

Change-Id: Ic76a02572aa841cf66f6a2805e0ce0161e27ea02
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9439
Reviewed-on: https://webrtc-review.googlesource.com/94400
Reviewed-by: Lu Liu <lliuu@webrtc.org>
Commit-Queue: Lu Liu <lliuu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24298}
2018-08-15 22:24:41 +00:00
77c8e65b88 Update multiplex encoder to support having augmenting data attached to the video
Multiplex encoder is now supporting attaching user-defined data to the video
frame. This data will be sent with the video frame and thus is guaranteed to
be synchronized. This is useful in cases where the data and video frame need
to by synchronized such as sending information about 3D objects or camera
tracking information with the video stream

Multiplex Encoder with data is implemented in a modular way. A new
VideoFrameBuffer type is created with the encoder. AugmentedVideoFrameBuffer
holds the video frame and the data. MultiplexVideoEncoder encodes both
the frame and data.

Change-Id: I23263f70d111f6f1783c070edec70bd11ebb9868
Bug: webrtc:9632
Reviewed-on: https://webrtc-review.googlesource.com/92642
Commit-Queue: Tarek Hefny <tarekh@google.com>
Reviewed-by: Niklas Enbom <niklas.enbom@webrtc.org>
Reviewed-by: Emircan Uysaler <emircan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24297}
2018-08-15 21:54:17 +00:00
733df738e3 Optimize execution time of RTPSender::UpdateDelayStatistics
Bug: webrtc:9439
Change-Id: I908e9ced10031c614678a89657d089cb9a66b9ce
Reviewed-on: https://webrtc-review.googlesource.com/92391
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24295}
2018-08-15 17:53:04 +00:00
a955849901 Add APM config flag for legacy moderate suppression level in AEC2
This will be hooked up in clients who need to keep using the moderate
suppression level in AEC2 until other tuning options are available.

Bug: webrtc:9535
Change-Id: I6c40898954d9c856f58bcea87271f4b98fa124de
Reviewed-on: https://webrtc-review.googlesource.com/94148
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24292}
2018-08-15 14:56:06 +00:00
9701e0ce2f Makes treatment of received reports of packets lost signed.
Bug: webrtc:9598
Change-Id: I0f6ffe348585b8ec69753089652812da516d33d8
Reviewed-on: https://webrtc-review.googlesource.com/93021
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24291}
2018-08-15 14:27:23 +00:00
f3122e0efe Gain metrics for digital adaptive AGC.
We add 2 metrics for measuring applied digital gain to
AgcManagerDirect. We also add an applied gain and an estimated noise
metric to Agc2.

Chromium histogram CL is
https://chromium-review.googlesource.com/c/chromium/src/+/1170833

Bug: webrtc:7494
Change-Id: Ie40873f9e43bc7d34d8f5473cd73bd47eb84e855
Reviewed-on: https://webrtc-review.googlesource.com/93468
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24290}
2018-08-15 13:44:46 +00:00
b75d6b8dc3 Refactor vp8 temporal layers with inferred sync and search order
This CL introduces a few changes to the default VP8 temporal layers:
* The pattern is now reset on keyframes
* The sync flag is inferred rather than hard-coded
* Support is added for buffer search order

Bug: webrtc:9012
Change-Id: Ice19d32413d20982368a01a7d2540d155e185ad4
Reviewed-on: https://webrtc-review.googlesource.com/91863
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24288}
2018-08-15 10:14:36 +00:00
7d2df3f848 Inline one-line RtpPacket getters
inlining these accessors both reduce binary size and, likely, slightly improve performance.

Bug: None
Change-Id: I4d1f3285afb044946b9611ad36d5d093299c19a9
Reviewed-on: https://webrtc-review.googlesource.com/94146
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24286}
2018-08-15 09:41:20 +00:00
03ad9b892c Fine-grained limiter metrics.
The FixedGainController is used in two places.
One is the AudioMixer. There it's used to limit the audio level after
adding streams. The other is GainController2, where it's placed after
steps that could boost the audio level outside the allowed range.

We log metrics from the FGC. To avoid confusion, this CL makes the two
use cases log to different histograms.

Chromium histogram CL is
https://chromium-review.googlesource.com/c/chromium/src/+/1170833

Bug: webrtc:7494
Change-Id: I1abe60fd8e96556f144d2ee576254b15beca1174
Reviewed-on: https://webrtc-review.googlesource.com/93464
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24284}
2018-08-15 08:32:18 +00:00
f689d4c465 Atomically increment GainControl instance counter.
Fixes potential data race.

TBR: saza@webrtc.org
Bug: None
Change-Id: I56477566b761884cdb04c20852b8a4f16c158369
Reviewed-on: https://webrtc-review.googlesource.com/94081
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24283}
2018-08-15 07:44:00 +00:00
ee562d874c Don't depend on X11 when rtc_use_x11=false.
This CL makes X11 optional for audio_device_pulse_linux.
Apply the same guards than for audio_device_alsa_linux.
Cf commit 75f18fca8eef7c27073923c46ff73be5ba0e0491.

Bug: webrtc:9569
Change-Id: Iaddbfb62112c504531376bad0db8f04caa4350c7
Reviewed-on: https://webrtc-review.googlesource.com/93030
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Yves Gerey <yvesg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24274}
2018-08-13 14:14:27 +00:00
af17595879 Refactor RtpReceiverImpl, extracting CSRC book-keeping to its own class
Bug: webrtc:7135
Change-Id: I7ce9afe575241542e4e3f7e2e8459ee3257eec76
Reviewed-on: https://webrtc-review.googlesource.com/93466
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24271}
2018-08-13 11:59:08 +00:00
f4cf64ec06 AEC3: Enforcing nonlinear mode when transparent mode is active
This CL ensures that the linear echo prediction mode is not used
when the transparent mode is active.

TBR: saza@webrtc.org,gustaf@webrtc.org
Bug: webrtc:9612,chromium:873074
Change-Id: I25cda5226251df769b6524594ea8a2b78532aaec
Reviewed-on: https://webrtc-review.googlesource.com/93740
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24268}
2018-08-12 20:40:04 +00:00
656d609a95 Add UTC time to init event in AEC debug dump.
Bug: webrtc:9616
Change-Id: I1350212f0b8835fb64427483269da96d51670c01
Reviewed-on: https://webrtc-review.googlesource.com/92620
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24267}
2018-08-11 20:29:07 +00:00