Commit Graph

23729 Commits

Author SHA1 Message Date
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
ed125fb2f3 Roll chromium_revision 60eb76e65c..858c0de5ad (583181:583305)
Change log: 60eb76e65c..858c0de5ad
Full diff: 60eb76e65c..858c0de5ad

Changed dependencies:
* src/build: 3ae3c03905..e322d9cf51
* src/ios: 2197360460..8402344fe9
* src/testing: b797c58e93..ffe8c848fd
* src/third_party: f506abeeed..f94ca0cb97
* src/third_party/depot_tools: 52c7211807..af03ae194f
* src/tools: a4b36d2aaf..49e9e90d54
DEPS diff: 60eb76e65c..858c0de5ad/DEPS

No update to Clang.

TBR=buildbot@webrtc.org,
BUG=None
CQ_INCLUDE_TRYBOTS=master.internal.tryserver.corp.webrtc:linux_internal_compile_lite

Change-Id: I0a38e1866d866d3cb877b8bc528ba20d46cc22ad
Reviewed-on: https://webrtc-review.googlesource.com/94337
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24296}
2018-08-15 18:03:57 +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
cdb87f1a65 Add a missing #include from jsepicecandidate.cc to absl/memory/memory.h
jsepicecandidate.cc uses absl::make_unique without including
absl/memory/memory.h. This happens to work in C++14 due to a transitive
#include, but doesn't work in C++17.

Bug: chromium:752720
Change-Id: I995496f452b9eaa2e70b82cd3b7926b936d7dac0
Reviewed-on: https://webrtc-review.googlesource.com/94340
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24294}
2018-08-15 15:19:07 +00:00
f5033ad201 In (new) estimator of encoder cpu load, count max per input frame.
Bug: webrtc:9619
Change-Id: Ifc874fa3bd069e48a10fec57b673546aafd070e3
Reviewed-on: https://webrtc-review.googlesource.com/94143
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24293}
2018-08-15 15:16:47 +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
847a9c70c2 Use NetworkSimulationInterface instead of SimulatedNetwork.
Switch on using NetworkSimulatedInterface in FakeNetwork pipe to be able
to inject different implementations in future.

Also temporary add SetConfig(...) method to NetworkSimulationInterface
to make it possible to use it in FakeNetworkPipe. This method will be
removed by futher refactoring.

Bug: webrtc:9630
Change-Id: I2ce2219f523b4121e46643699ab87b37da09d95b
Reviewed-on: https://webrtc-review.googlesource.com/94145
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24289}
2018-08-15 10:21:10 +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
fa4e185684 Delete class voe::RtcEventLogProxy
Bug: None
Change-Id: Ic0c380e2f7f844a0e06c8c2a3d8bcb42ecee1eba
Reviewed-on: https://webrtc-review.googlesource.com/94040
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24287}
2018-08-15 09:59:15 +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
20317f9ca4 Clear encoded frame map on gap in timestamp.
Keep a small window in order to distinguish old and new timestamp.

Bug: chromium:816819
Change-Id: Iefa694c744e8e4b19d3857c567162cdc9410b4da
Reviewed-on: https://webrtc-review.googlesource.com/94141
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Yves Gerey <yvesg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24285}
2018-08-15 09:31:39 +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
61e511afbe Delete unneeded forward declares of vcm::VideoReceiver.
Bug: None
Change-Id: Ic3a8a4c937f7727dcc4017fec39980e76f3ea0cd
Reviewed-on: https://webrtc-review.googlesource.com/94042
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24282}
2018-08-15 07:42:36 +00:00
203f9afc59 Roll chromium_revision 5edb31a0cd..60eb76e65c (582911:583181)
Change log: 5edb31a0cd..60eb76e65c
Full diff: 5edb31a0cd..60eb76e65c

Changed dependencies:
* src/base: 94235ec304..632d99d8db
* src/build: 188e8c57a7..3ae3c03905
* src/ios: 9df813679a..2197360460
* src/testing: 91f6974c3d..b797c58e93
* src/third_party: 0ab32a0a7d..f506abeeed
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/6410e18e91..6b0d82229b
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/193e933801..fc13545ed4
* src/third_party/depot_tools: 6a4e31b488..52c7211807
* src/tools: 360e3c21b5..a4b36d2aaf
DEPS diff: 5edb31a0cd..60eb76e65c/DEPS

Clang version changed 337439:338452
Details: 5edb31a0cd..60eb76e65c/tools/clang/scripts/update.py

TBR=buildbot@webrtc.org,
BUG=None
CQ_INCLUDE_TRYBOTS=master.internal.tryserver.corp.webrtc:linux_internal_compile_lite

Change-Id: I1c838cb251e0461cf1c929ac590a89f385a2d366
Reviewed-on: https://webrtc-review.googlesource.com/94326
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24281}
2018-08-15 07:17:03 +00:00
6f80f098ec Adds the custom TLS certificate verifier pointer to the reconfigure option as
well. This allows the verifier to be attached at a later point after ice
candidates.

Bug: webrtc:9623
Change-Id: I06f31256c494f6a790c6047e8602b8665dfe2f7e
Reviewed-on: https://webrtc-review.googlesource.com/93943
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24280}
2018-08-14 17:58:24 +00:00
51ef008ef6 Video bitrate allocator factory interface for custom video bitrate allocator
Bug: webrtc:9513
Change-Id: If5719f4f71a2a9e44b2aaa0b592d3921b68ba5d9
Reviewed-on: https://webrtc-review.googlesource.com/92280
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Jiawei Ou <ouj@fb.com>
Cr-Commit-Position: refs/heads/master@{#24279}
2018-08-14 17:57:22 +00:00
88fc06366a Roll chromium_revision 690394a8a7..5edb31a0cd (582511:582911)
Change log: 690394a8a7..5edb31a0cd
Full diff: 690394a8a7..5edb31a0cd

Changed dependencies:
* src/base: fe1611262d..94235ec304
* src/build: ddcfe1a1c6..188e8c57a7
* src/ios: 8bce498aae..9df813679a
* src/testing: b07830f690..91f6974c3d
* src/third_party: ddc6e6fdb5..0ab32a0a7d
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/21cd5a3096..193e933801
* src/third_party/freetype/src: 578bcf103a..96b5e50090
* src/third_party/libsrtp: fc2345089a..368abd6bb3
* src/third_party/libvpx/source/libvpx: 6fd9d0244c..b8642738c9
* src/tools: 957e87c052..360e3c21b5
DEPS diff: 690394a8a7..5edb31a0cd/DEPS

No update to Clang.

TBR=buildbot@webrtc.org,marpan@webrtc.org,
BUG=None
CQ_INCLUDE_TRYBOTS=master.internal.tryserver.corp.webrtc:linux_internal_compile_lite

Change-Id: Icadf789b48de45dc716632aec5b3905e8528f45e
Reviewed-on: https://webrtc-review.googlesource.com/94180
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24278}
2018-08-14 16:15:14 +00:00
948b7e3755 Revert "Add initial support for RtpEncodingParameters max_framerate."
This reverts commit ced5cfdb35a20c684df927eab37e16d35979555f.

Reason for revert: Breaks downstream project.

Original change's description:
> Add initial support for RtpEncodingParameters max_framerate.
> 
> Add support to set the framerate to the maximum of |max_framerate|.
> Different framerates are currently not supported per stream for video.
> 
> Bug: webrtc:9597
> Change-Id: Ie326617b66bd97be387f809a7f82b97b8f3ff5fe
> Reviewed-on: https://webrtc-review.googlesource.com/92392
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Commit-Queue: Åsa Persson <asapersson@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#24270}

TBR=steveanton@webrtc.org,magjed@webrtc.org,asapersson@webrtc.org,sprang@webrtc.org,srte@webrtc.org

Change-Id: I508fe48e0c53996654f657357913ac307dc256bd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9597
Reviewed-on: https://webrtc-review.googlesource.com/94060
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24277}
2018-08-14 07:25:23 +00:00
ccee56beee Add certificate generate/set functionality to bring iOS closer to JS API
The JS API supports two operations which have never been implemented in
the iOS counterpart:
 - generate a new certificate
 - use this certificate when creating a new PeerConnection

Both functions are illustrated in the generateCertificate example code:
 - https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/generateCertificate

Currently, on iOS, a new certificate is automatically generated for
every PeerConnection with no programmatic way to set a specific
certificate.

Work sponsored by |pipe|

Bug: webrtc:9498
Change-Id: Ic1936c3de8b8bd18aef67c784727b72f90e7157c
Reviewed-on: https://webrtc-review.googlesource.com/87303
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24276}
2018-08-13 22:25:15 +00:00
b336c2784f Implement serialization for ICE candidates with hostname addresses.
Bug: webrtc:4165
Change-Id: I5ba0f25e458013ac3982648fc33d92d2a00e8fdd
Reviewed-on: https://webrtc-review.googlesource.com/93250
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Commit-Queue: Zach Stein <zstein@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24275}
2018-08-13 17:39:58 +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
d8661a05ff Remove public_deps from rtc_base:protobuf_utils.
Bug: webrtc:8603
Change-Id: I8dfc176b570d28ce8003f5f8f1ed995848af9a9d
Reviewed-on: https://webrtc-review.googlesource.com/93761
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24273}
2018-08-13 14:06:31 +00:00
db7ea8c45f Re-enable gtest absl pretty printers.
After https://webrtc-review.googlesource.com/c/src/+/93733, WebRTC
should be able to use absl pretty printers again.

Bug: None
Change-Id: I1ea63707e59ad502e40df84ca0abb03054d25106
Reviewed-on: https://webrtc-review.googlesource.com/93741
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24272}
2018-08-13 13:54:05 +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
ced5cfdb35 Add initial support for RtpEncodingParameters max_framerate.
Add support to set the framerate to the maximum of |max_framerate|.
Different framerates are currently not supported per stream for video.

Bug: webrtc:9597
Change-Id: Ie326617b66bd97be387f809a7f82b97b8f3ff5fe
Reviewed-on: https://webrtc-review.googlesource.com/92392
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24270}
2018-08-13 09:59:04 +00:00
553b6f68e1 Roll chromium_revision f7e49bb7e6..690394a8a7 (582110:582511)
Change log: f7e49bb7e6..690394a8a7
Full diff: f7e49bb7e6..690394a8a7

Changed dependencies:
* src/base: 6c0497f398..fe1611262d
* src/build: f79db013c7..ddcfe1a1c6
* src/ios: 7aa1f910df..8bce498aae
* src/testing: d2fde4ae5b..b07830f690
* src/third_party: e3f59293e6..ddc6e6fdb5
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/0d25dda9b1..21cd5a3096
* src/third_party/depot_tools: 284b5e0c60..6a4e31b488
* src/third_party/harfbuzz-ng/src: 2b76767bf5..b6fdcf4f8b
* src/tools: d3ea177a0e..957e87c052
DEPS diff: f7e49bb7e6..690394a8a7/DEPS

No update to Clang.

TBR=buildbot@webrtc.org,
BUG=None
CQ_INCLUDE_TRYBOTS=master.internal.tryserver.corp.webrtc:linux_internal_compile_lite

Change-Id: If74fe9bc2379d45d46058417fdaf42db85e63bd5
Reviewed-on: https://webrtc-review.googlesource.com/93733
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24269}
2018-08-13 07:07:25 +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
f820a5ea1c Fix use after move in SafeSetError
There is not actually any noticeable bug with the code as it was
since the RTCError move operators don't reset the type of the moved
object. But the clang static analyzer complains about this and it's
bad practice.

Bug: webrtc:9593
Change-Id: I8c04f193d10733371e0125c5349f9798f916eecf
Reviewed-on: https://webrtc-review.googlesource.com/93500
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24266}
2018-08-10 20:13:26 +00:00
ee8ad5ff8a AEC3: Allow the main and shadow filters to have different lengths
This CL changes the AEC3 code to allow the main and shadow filters
to have different lengths.

Bug: webrtc:9614,chromium:873100
Change-Id: I3ec2861d496986610d5a73db5771bbe9b8bf7dcd
Reviewed-on: https://webrtc-review.googlesource.com/93465
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24265}
2018-08-10 19:59:50 +00:00
2275439c4e AEC3: Further utilize the shadow filter to boost adaptation
This CL makes the jump-starting of the shadow filter more extreme.
It furthermore utilizes this to allow the AEC to rely further, and
more quickly on its linear filter estimates.

The result is mainly increased transparency but also some
cases of fewer echo blips.


Bug: webrtc:9612,chromium:873074
Change-Id: I90f7cfbff9acb9d0c36409593afbf476e7a830d3
Reviewed-on: https://webrtc-review.googlesource.com/93461
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24264}
2018-08-10 17:16:23 +00:00
f5f5373372 Delete unused member MediaSenderInfo::packets_cached.
Bug: None
Change-Id: I06e1a2010cc0af4b8a4ea726078fea6b67fa84d5
Reviewed-on: https://webrtc-review.googlesource.com/93281
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24263}
2018-08-10 13:13:54 +00:00
ae09d3966c Temporarily skip linux_internal on autoroller tryjobs.
Run compile_lite instead, which affords some protection
at least.

Bug: webrtc:9615
Change-Id: I348d535ba2c0dd6cd438be1a90da5b3f64c17c93
Reviewed-on: https://webrtc-review.googlesource.com/93467
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24262}
2018-08-10 12:55:08 +00:00
c97933fb82 Clean up code regarding jitter buffer plot in event log visualizer.
Bug: webrtc:9147
Change-Id: I2c1f0b383706ae9a788eb8b5d308d4c7fe612730
Reviewed-on: https://webrtc-review.googlesource.com/92390
Commit-Queue: Minyue Li <minyue@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24261}
2018-08-10 11:19:56 +00:00
ba579ecdc1 Roll chromium_revision 86f8273e2f..f7e49bb7e6 (581886:582110)
Change log: 86f8273e2f..f7e49bb7e6
Full diff: 86f8273e2f..f7e49bb7e6

Changed dependencies:
* src/base: 6abc23a627..6c0497f398
* src/build: 1f2ff68a92..f79db013c7
* src/ios: a128bdd3fc..7aa1f910df
* src/testing: dcefe6ada5..d2fde4ae5b
* src/third_party: 05e0f49727..e3f59293e6
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/bca7d20ad7..0d25dda9b1
* src/third_party/depot_tools: dd5051fa52..284b5e0c60
* src/tools: da25d064ae..d3ea177a0e
DEPS diff: 86f8273e2f..f7e49bb7e6/DEPS

Clang version changed 338452:337439
Details: 86f8273e2f..f7e49bb7e6/tools/clang/scripts/update.py

TBR=buildbot@webrtc.org,
BUG=None

Change-Id: I4a34844d0cd5e1a0011edba71b801c83afa6f26c
Reviewed-on: https://webrtc-review.googlesource.com/93451
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24260}
2018-08-10 11:12:57 +00:00
80006b9922 Add command-line flag to enable the bugfix to postpone decoding after expand.
This CL also excludes several codec mappings depending on compile-time flags.

Bug: webrtc:9289
Change-Id: I1a9183f88378307925b747576a5513e54be3782e
Reviewed-on: https://webrtc-review.googlesource.com/93462
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24259}
2018-08-10 10:06:56 +00:00
d8be107c8b Print timestamp-to-UTC map when event_log starts.
Bug: None
Change-Id: I9ba392e3ace79b5dbc7342200565004ea5cd844e
Reviewed-on: https://webrtc-review.googlesource.com/93300
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24258}
2018-08-10 10:04:12 +00:00
d3b62cfb02 Delete unused method RtpReceiver::CSRCs.
This is a preparation for extracting CSRC book-keeping to its own
class.

Bug: webrtc:7135
Change-Id: Ic51ceb57ec53a43064a3d0392de8baa978a4e8cf
Reviewed-on: https://webrtc-review.googlesource.com/93463
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24257}
2018-08-10 10:01:11 +00:00
2ad8c43ae7 Change visibility of some build targets that are publicly used.
Bug: None
Change-Id: I9b0dc56364648ac4d4fa4b8bb67af44700621b24
Reviewed-on: https://webrtc-review.googlesource.com/93282
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24256}
2018-08-10 09:56:51 +00:00
26ef7cde11 Roll chromium_revision b0784bef91..86f8273e2f (581665:581886)
Change log: b0784bef91..86f8273e2f
Full diff: b0784bef91..86f8273e2f

Changed dependencies:
* src/base: 76793f5417..6abc23a627
* src/build: 03ce38cdd9..1f2ff68a92
* src/ios: 7c0de39a86..a128bdd3fc
* src/testing: 72f3763b1f..dcefe6ada5
* src/third_party: 28c1ea1319..05e0f49727
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/9aa552b157..bca7d20ad7
* src/tools: 93447e2d7b..da25d064ae
DEPS diff: b0784bef91..86f8273e2f/DEPS

No update to Clang.

TBR=buildbot@webrtc.org,
BUG=None

Change-Id: Ic467e12304b3093b40297ce57421e25b04eba0e1
Reviewed-on: https://webrtc-review.googlesource.com/93340
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24255}
2018-08-10 09:33:05 +00:00
2ff1f2a342 Reland "Refactor RtpVideoStreamReceiver without RtpReceiver."
This is a reland of 0b9e01d605a174a52635626c885738a222abff46

Original change's description:
> Refactor RtpVideoStreamReceiver without RtpReceiver.
> 
> Bug: webrtc:7135
> Change-Id: Iabf3330e579b892efc160683f9f90efbf6ff9a40
> Reviewed-on: https://webrtc-review.googlesource.com/92398
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#24232}

Bug: webrtc:7135
Change-Id: I707d4c5262e7b428bc7ceac2d886ff34c4a8d76a
Reviewed-on: https://webrtc-review.googlesource.com/93261
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24254}
2018-08-10 08:56:49 +00:00
45e7281b86 AEC3: Ensure that the shadow filter is adapted at each block
This CL ensures that the shadow filter is adapted at each block, which
avoids that a temporary filter length mismatch can occur between the
main and shadow filters.

Bug: webrtc:9602,chromium:872201
Change-Id: I651812b4e3b134c6c5e1fe3df5ab78dbdb5c1fb4
Reviewed-on: https://webrtc-review.googlesource.com/93000
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24253}
2018-08-09 18:41:05 +00:00
b6b1cacd09 Experimental improvements for simulcast screenshare
* Make shorter 4-frame pattern default if 2 temporal layers are used.
* Make DefaultTemporalLayers usable by upper simulcast stream with 2tl.
* If experimental settings are enable, bump the max bitrate for the top
  stream. Since we're now using probing everywhere the rampup should be
  less of an issue.
* Additionally, fixes an issue in full stack tests, where
  ScopedFieldTrials in an experiment would override the
  --force_fieldtrials specified at command line. Some trials added by
  the test bots caused timeouts without this.

Bug: webrtc:9477
Change-Id: I42410605d416b51c4fbfe5b6b850997484af583c
Reviewed-on: https://webrtc-review.googlesource.com/92883
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24252}
2018-08-09 15:10:55 +00:00
d2b9740f48 APM: render pre-processor moved before echo detector queuing.
Any modification of the render stream now happens *before* the
echo detector enqueues render stream frames. In this way, there
is no impact of the render pre-processor on the echo likelihood
metric.

Bug: webrtc:9591
Change-Id: I9b5e339e892796a0d0cd072fdd45d35ec89d8802
Reviewed-on: https://webrtc-review.googlesource.com/93031
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24251}
2018-08-09 14:40:31 +00:00
426a80ce08 Add extended header containing frame ID to the generic packetizer.
Also changes default value of frame ID in RTPVideoHeader to
kNoPictureId. Special care should be take so that picture ID will not
be set in RTPVideoHeader unless the client on the end supports
deserializing extended generic header.

Bug: webrtc:9582
Change-Id: Ib096373ed187f31e51d481193a2bda56de68f167
Reviewed-on: https://webrtc-review.googlesource.com/92084
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24250}
2018-08-09 14:05:39 +00:00
9489c3a2ea Optionally disable digital gain control in ExperimentalAgc.
This CL adds a flag to optionally disable the digital gain control in
ExperimentalAgc. With the flag, Experimental Agc (henceforth AGC1)
only controls the adaptive analog gain. This flag can be combined to
that which activates AGC2. That way, one can enable the hybrid AGC
configuration AGC1 analog only + AGC2 fixed+adaptive digital.

Previously, there was a flag "use_agc2_digital_adaptive" in
AgcManagerDirect. Our ambition was that to activate the hybrid mode
described above with this flag. The behavior of the flag was not
implemented.

To activate the hybrid mode after this CL, set
ExperimentalAgc::digital_adaptive_disabled=true and
AudioProcessing::Config::GainController2::enabled=true.

We also add flags for these settings in audioproc_f.
Then the required settings are currently

  audioproc_f --agc2 1 --agc 1 --experimental_agc 1 \
      --experimental_agc_disable_digital_adaptive 1 \
      -i [INPUT]

Bug: webrtc:7494
Change-Id: Iea798dc3899cec83d30ba71caba787262fcaef41
Reviewed-on: https://webrtc-review.googlesource.com/89740
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24249}
2018-08-09 13:37:30 +00:00
7b87530fcc Android: Allow YuvConverter to be reused
Similar to how GlDrawer and GlTextureFrameBuffer already works, this
CL updates YuvConverter so that it can be reused after release() has
been called. This makes it more convenient to use, it can be stored
in a final variable, and the resources are lazily allocated on first
usage.

Bug: b/112386285
Change-Id: I437c4c3fd414bc8974df75728f33954b28418e3e
Reviewed-on: https://webrtc-review.googlesource.com/93290
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24248}
2018-08-09 12:36:37 +00:00