Commit Graph

31445 Commits

Author SHA1 Message Date
f79bfc65e5 peerconnection: prefer spec names for signaling state
Map the internal state names to the spec ones defined in
  https://w3c.github.io/webrtc-pc/#rtcsignalingstate-enum
instead of exposing them. This only affects the (not specified)
error strings.

Bug: None
Change-Id: Ib0b35bb3106b1688e8386f6fdd0b8c7fdebaf1dc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178390
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Cr-Commit-Position: refs/heads/master@{#31591}
2020-06-30 13:40:26 +00:00
f9e5248f5d Inclusive language in //sdk/android.
Bug: webrtc:11680
Change-Id: I80f6b3c2ba21f49b0c05ebc27aecfc27a7be5836
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178392
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31590}
2020-06-30 13:34:05 +00:00
3cb0985983 Inclusive language in //media/engine.
Bug: webrtc:11680
Change-Id: I4f21ecaf1e0cc35591ed00d776eb382b868fc076
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178391
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31589}
2020-06-30 13:13:55 +00:00
4b5792cc4a Reland "Reland "Removes lock release in PacedSender callback.""
This is a reland of b46df3da44c42f6e5055c69a8247a344887108ea

Test case for issue that caused revert added:
https://webrtc-review.googlesource.com/c/src/+/178203

Fix for issue that caused revert:
https://webrtc-review.googlesource.com/c/src/+/178207


Original change's description:
> Reland "Removes lock release in PacedSender callback."
>
> This is a reland of 6b9c60b06d04bc519195fca1f621b10accfeb46b
>
> Original change's description:
> > Removes lock release in PacedSender callback.
> >
> > The PacedSender currently has logic to temporarily release its internal
> > lock while sending or asking for padding.
> > This creates some tricky situations in the pacing controller where we
> > need to consider if some thread can enter while we the process thread is
> > actually processing, just temporarily busy sending.
> >
> > Since the pacing call stack is no longer cyclic, we can actually remove
> > this lock-release now.
> >
> > Bug: webrtc:10809
> > Change-Id: Ic59c605252bed1f96a03406c908a30cd1012f995
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173592
> > Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> > Commit-Queue: Erik Språng <sprang@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#31206}
>
> Bug: webrtc:10809
> Change-Id: Id39fc49b0a038e7ae3a0d9818fb0806c33ae0ae0
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175656
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31332}

Bug: webrtc:10809
Change-Id: I1dba507220316008c0f3b278df4b732011f257eb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178384
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31588}
2020-06-30 09:55:00 +00:00
739cfb2f58 Add sync group validation in pc level test framework
Bug: webrtc:11381
Change-Id: I4ef62675c0cb688abccc130fb91a69c3c78bf837
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178383
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31587}
2020-06-30 09:53:19 +00:00
722e769803 Roll chromium_revision 80ff439168..2c0b70ba55 (783693:783820)
Change log: 80ff439168..2c0b70ba55
Full diff: 80ff439168..2c0b70ba55

Changed dependencies
* src/base: d54eb64ac9..a112d5f61d
* src/build: bff9c6906d..3a5fbeb277
* src/testing: e138cbe9f1..c73c457080
* src/third_party: 97316f161d..9c81e59e96
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/de622ae397..9e96ce1803
* src/third_party/depot_tools: c7eed83f96..d9391fdb17
* src/tools: d2e2012f1d..032968cc33
DEPS diff: 80ff439168..2c0b70ba55/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: I2867407514c238cb9951693aed006d4e0d7f6888
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178408
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#31586}
2020-06-30 05:08:14 +00:00
afa130c49b Roll chromium_revision 51d47a5bb4..80ff439168 (783422:783693)
Change log: 51d47a5bb4..80ff439168
Full diff: 51d47a5bb4..80ff439168

Changed dependencies
* src/base: 057fa3c509..d54eb64ac9
* src/build: d83f4a5f00..bff9c6906d
* src/ios: 3e01721325..e88f73529e
* src/testing: 6cdbe3084b..e138cbe9f1
* src/third_party: 9f9e479209..97316f161d
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/a2a7e05eb7..de622ae397
* src/third_party/depot_tools: 6e6c67d0ea..c7eed83f96
* src/third_party/perfetto: 3e2475b08d..c047dd609c
* src/tools: 15b01f76a1..d2e2012f1d
DEPS diff: 51d47a5bb4..80ff439168/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: I70b9018f62727915290d73d04c72d466821e7071
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178405
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#31585}
2020-06-29 23:08:02 +00:00
67123ffa85 sdp: remove old workaround
Removes an old workaround for a firefox issue that was fixed in 2014.

BUG=webrtc:3212

Change-Id: I3ad71e29249908d840474cf3ee99a094c9201f6d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178381
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Cr-Commit-Position: refs/heads/master@{#31584}
2020-06-29 20:14:41 +00:00
2b4d2f3561 Removes locking in TransportFeedbackProxy.
The lock in TransportFeedbackProxy could cause a dead-lock if audio is
included in transport feedback messages, and necessitated a revert:
https://webrtc-review.googlesource.com/c/src/+/178100

This CL removes that lock and in fact the entire TransportFeedbackProxy
class, and instead sets the observer at construction time.
We therefore don't need to guard the observer pointer anymore.

For further context, see also internal bug b/153893626

Bug: webrtc:10809
Change-Id: I79b08d8d0e587a59736b383c3596a26836c33d2e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178207
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31583}
2020-06-29 16:52:34 +00:00
a1163749fd Move BWE_TEST_LOGGING_COMPILE_TIME_ENABLE code to the worker thread.
This is part of moving calls to GetSendRates() to the worker.

Change-Id: Ifb93096a863ddf2669237e7f44af296d0e086b20
Bug: webrtc:11581
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177661
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31582}
2020-06-29 15:51:14 +00:00
096c0b0921 Post stats updates in RtpSenderEgress to the worker.
On the way remove need for lock for
rtp_sequence_number_map_ and timestamp_offset_.

Change-Id: I21a5cbf6208620435a1a16fff68c33c0cb84f51d
Bug: webrtc:11581
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177424
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31581}
2020-06-29 15:35:09 +00:00
6fb7004f33 sdp: use const references to fields
BUG=webrtc:11718

Change-Id: I60bdfcdadef665f6044525046ec25717102365d4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178363
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31580}
2020-06-29 13:09:22 +00:00
e6ac8ff162 Propagate active decode targets bitmask into DependencyDescriptor
Bug: webrtc:10342
Change-Id: I5e8a204881b94fe5786b14e27cefce2fe056e91b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178140
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31579}
2020-06-29 12:54:43 +00:00
11b6f6857f Replace slave -> helper, master -> reference
A slight simplification of the NetEq code is also included.

The subtrees below common_audio, modules/audio_coding and
modules/audio_processing were scanned while making this CL.

Bug: webrtc:11680
Change-Id: I33bb1c75b2e3d1c6793fd1c5741ca59f4b6e8455
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178361
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31578}
2020-06-29 12:18:05 +00:00
d21f7ab174 Remove media_has_been_sent from RtpState.
The field is unused and the way it's currently laid out in the code,
it maps to a state in the RtpSenderEgress class - which in turn puts
unnecessary threading restrictions on that class.

Bug: webrtc:11581
Change-Id: I41a4740c3277317f33f8e815d8c12c70b355c1db
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177426
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31577}
2020-06-29 09:52:44 +00:00
f4b956c026 Roll chromium_revision 71a0e1904e..51d47a5bb4 (782339:783422)
Change log: 71a0e1904e..51d47a5bb4
Full diff: 71a0e1904e..51d47a5bb4

Changed dependencies
* src/base: 736d9fb42c..057fa3c509
* src/build: ceecd92e25..d83f4a5f00
* src/ios: 73c8bcb1b1..3e01721325
* src/testing: 77ba7104d5..6cdbe3084b
* src/third_party: 1908162da7..9f9e479209
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/e0658a4adf..a2a7e05eb7
* src/third_party/depot_tools: 87c8b91639..6e6c67d0ea
* src/third_party/perfetto: 44e38c4643..3e2475b08d
* src/tools: d6998993f9..15b01f76a1
DEPS diff: 71a0e1904e..51d47a5bb4/DEPS

Clang version changed 4e813bbdf:fb1aa286c1400ad7
Details: 71a0e1904e..51d47a5bb4/tools/clang/scripts/update.py

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: Ie86e05ccd1d9f460e6d84ef7bfe938ebf931bfc0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178342
Reviewed-by: Jeremy Leconte <jleconte@google.com>
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Jeremy Leconte <jleconte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31576}
2020-06-29 09:24:15 +00:00
473bbd8131 Remove a timer from ModuleRtpRtcpImpl2 that runs 100 times a second.
The timer fired a Notify call that goes to an object that already
receives callbacks for every packet from RtpSenderEgress.

Further optimizations will be realized by moving ownership
of the stats to the worker thread and then be able to remove
locking in a few classes that currently are tied to those
variables and the callbacks that previously did not come
from the same thread consistently.

We could furthermore get rid of one of these callback interfaces
and just use one.

Bug: webrtc:11581
Change-Id: I56ca5893c0153a87a4cbbe87d7741c39f9e66e52
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177422
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31575}
2020-06-29 08:09:14 +00:00
000953c8d1 Adds test case that would have found potential dead-lock in pacer.
https://webrtc-review.googlesource.com/c/src/+/178100 reverted a change
that could result in a deadlock if WebRTC-Audio-SendSideBwe was enabled
and WebRTC-Audio-ABWENoTWCC was not while using send-side BWE in a
mixed audio/video setting.

This CL adds an integration test that fails on tsan if above commit is
cherry-picked.

Bug: webrtc:10809
Change-Id: I5028d5794e5c9e970ccd9b7eb25d5b76a7fa4e58
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178203
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31574}
2020-06-26 15:40:20 +00:00
efc55b0134 sdp: test media type mismatch behaviour
BUG=webrtc:11718

Change-Id: Ie92600e8e4965bfd6f143f930b6bddaf21566e13
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178181
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31573}
2020-06-26 13:19:02 +00:00
d43c3788d7 Delete old TODO item
Bug: webrtc:10198
Change-Id: I47fd6f78b6d5e888eb51e9004d12161cb13d27b7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178182
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31572}
2020-06-26 12:11:42 +00:00
c403081641 sdp: use exact match in parseMediaDescription
BUG=webrtc:11718

Change-Id: Ifd05eb6511bcd2a0ee77c430cf3bccbb6e3f905c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178180
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31571}
2020-06-26 10:42:48 +00:00
54544ec92a In av1 encoder set bitrate per layer when scalability is used.
Bug: webrtc:11404
Change-Id: If779c16ffb55d28d21a0900439cbe2614507e557
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177015
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31570}
2020-06-26 09:26:05 +00:00
b19cfeeb5c Roll chromium_revision 4d95e6c77b..71a0e1904e (776481:782339)
Change log: 4d95e6c77b..71a0e1904e
Full diff: 4d95e6c77b..71a0e1904e

Changed dependencies
* src/base: 2df7267880..736d9fb42c
* src/build: a03951acb9..876a780600
* src/buildtools: 1b066f0216..1ed99573d5
* src/buildtools/linux64: git_revision:d0a6f072070988e7b038496c4e7d6c562b649732..git_revision:7d7e8deea36d126397bda2cf924682504271f0e1
* src/buildtools/mac: git_revision:d0a6f072070988e7b038496c4e7d6c562b649732..git_revision:7d7e8deea36d126397bda2cf924682504271f0e1
* src/buildtools/win: git_revision:d0a6f072070988e7b038496c4e7d6c562b649732..git_revision:7d7e8deea36d126397bda2cf924682504271f0e1
* src/ios: 9200aad36b..73c8bcb1b1
* src/testing: 502600d41a..77ba7104d5
* src/third_party: e0df6e10ad..1908162da7
* src/third_party/android_deps/libs/androidx_activity_activity: version:1.0.0-cr0..version:1.1.0-cr0
* src/third_party/android_deps/libs/androidx_arch_core_core_runtime: version:2.0.0-cr0..version:2.1.0-cr0
* src/third_party/android_deps/libs/androidx_fragment_fragment: version:1.1.0-cr0..version:1.2.5-cr0
* src/third_party/android_deps/libs/androidx_lifecycle_lifecycle_common: version:2.1.0-cr0..version:2.2.0-cr0
* src/third_party/android_deps/libs/androidx_lifecycle_lifecycle_livedata_core: version:2.0.0-cr0..version:2.2.0-cr0
* src/third_party/android_deps/libs/androidx_lifecycle_lifecycle_runtime: version:2.1.0-cr0..version:2.2.0-cr0
* src/third_party/android_deps/libs/androidx_lifecycle_lifecycle_viewmodel: version:2.1.0-cr0..version:2.2.0-cr0
* src/third_party/android_deps/libs/androidx_preference_preference: version:1.0.0-cr0..version:1.1.1-cr0
* src/third_party/android_deps/libs/org_robolectric_shadows_multidex: version:4.3.1-cr0..version:4.3.1-cr1
* src/third_party/android_sdk/public: CR25ixsRhwuRnhdgDpGFyl9S0C_0HO9SUgFrwX46zq8C..uM0XtAW9BHh8phcbhBDA9GfzP3bku2SP7AiMahhimnoC
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/88024df121..430a742303
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/2ad47493f8..e0658a4adf
* src/third_party/depot_tools: 37e562110f..87c8b91639
* src/third_party/espresso: c92dcfc4e894555a0b3c309f2b7939640eb1fee4..y8fIfH8Leo2cPm7iGCYnBxZpwOlgLv8rm2mlcmJlvGsC
* src/third_party/ffmpeg: be66dc5fd0..23b2a15c25
* src/third_party/freetype/src: 62fea391fa..a443474755
* src/third_party/icu: 630b884f84..79326efe26
* src/third_party/libaom/source/libaom: https://aomedia.googlesource.com/aom.git/+log/2aa13c436e..e1ebb418eb
* src/third_party/libunwindstack: 046920fc49..11659d420a
* src/third_party/libvpx/source/libvpx: c176557314..769129fb29
* src/third_party/perfetto: 60cf022c02..44e38c4643
* src/third_party/r8: gobCh01BNwJNyLHHNFUmLWSMaAbe4x3izuzBFzxQpDoC..B467c9t23JiW_6XGqhvHvtEKWSkrPS2xG_gho_gbAI4C
* src/third_party/turbine: 3UJ600difG3ThRhtYrN9AfZ5kh8wCYtBiii1-NMlCrMC..mr9FyghUYWLYv4L5Nr3C_oceLfmmybnFgAi366GjQoYC
* src/third_party/turbine/src: 95f6fb6f1e..1c98ea6854
* src/tools: 050a4a5e26..d6998993f9
Added dependency
* src/third_party/android_deps/libs/androidx_lifecycle_lifecycle_viewmodel_savedstate
DEPS diff: 4d95e6c77b..71a0e1904e/DEPS

Clang version changed f7f1abdb8893af4a606ca1a8f5347a426e9c7f9e:4e813bbdf
Details: 4d95e6c77b..71a0e1904e/tools/clang/scripts/update.py

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,marpan@webrtc.org, jianj@chromium.org,
BUG=None

Change-Id: Idb4a2ccc6eab502ecf78b34247a479ff5726b50a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178084
Reviewed-by: Jeremy Leconte <jleconte@google.com>
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#31569}
2020-06-26 05:33:14 +00:00
8e144aa33f Remove WebRTC usage of //third_party/pymock
Removes usage of Chromium's //third_party/pymock in favor of the version
provided by vpython. This is so that the third_party version can
eventually be removed.

TBR=aleloi@webrtc.org

Bug: chromium:1094489
Change-Id: I68511e11ed1e517c2b6d3bb832090a3c27e480e5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177921
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Alex Loiko <aleloi@google.com>
Cr-Commit-Position: refs/heads/master@{#31568}
2020-06-25 18:01:30 +00:00
bf1816170b In Av1 encoder propagate zero bitrate as inactive decode target
Bug: webrtc:10342
Change-Id: I019acb6cca433db1551c22dd139a735ef976cff5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178101
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31567}
2020-06-25 16:32:28 +00:00
e3296b6d4c Ignore inactive chains when writing DependencyDescriptor rtp header extension.
To implement rule
"Chains protecting no active decode targets MUST be ignored."
from https://aomediacodec.github.io/av1-rtp-spec/#a44-switching

Bug: webrtc:10342
Change-Id: Ibe5e0b7b6ab8955419d0d9f996c6397f442e1cda
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177668
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31566}
2020-06-25 14:59:38 +00:00
39adce1498 Add RtpEncodingParameters.adaptive_ptime.
When enabled:
- Creates an audio network adapter config that is passed to audio send
stream.
- Configures a lower default min bitrate.

All parameters can be configured via a field trial that can also force
enable the audio network adaptor (this is mainly intended for testing).

Bug: chromium:1086942
Change-Id: I48dfcca1ee2948084199352abed6212a6c78eb6c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177840
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31565}
2020-06-25 14:51:13 +00:00
118d01ac35 Revert "Reland "Removes lock release in PacedSender callback.""
This reverts commit b46df3da44c42f6e5055c69a8247a344887108ea.

Reason for revert: May cause deadlock.

Original change's description:
> Reland "Removes lock release in PacedSender callback."
> 
> This is a reland of 6b9c60b06d04bc519195fca1f621b10accfeb46b
> 
> Original change's description:
> > Removes lock release in PacedSender callback.
> > 
> > The PacedSender currently has logic to temporarily release its internal
> > lock while sending or asking for padding.
> > This creates some tricky situations in the pacing controller where we
> > need to consider if some thread can enter while we the process thread is
> > actually processing, just temporarily busy sending.
> > 
> > Since the pacing call stack is no longer cyclic, we can actually remove
> > this lock-release now.
> > 
> > Bug: webrtc:10809
> > Change-Id: Ic59c605252bed1f96a03406c908a30cd1012f995
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173592
> > Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> > Commit-Queue: Erik Språng <sprang@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#31206}
> 
> Bug: webrtc:10809
> Change-Id: Id39fc49b0a038e7ae3a0d9818fb0806c33ae0ae0
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175656
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31332}

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

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

Bug: webrtc:10809
Change-Id: I6b06bafad8cd9eeb22107d04b953fd14b8131afa
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178100
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31564}
2020-06-25 12:41:48 +00:00
980cadd02c Revert "Lets PacingController call PacketRouter directly."
This reverts commit 848ea9f0d3678118cb8926a2898454e5a4df58ae.

Reason for revert: Part of changes that may cause deadlock

Original change's description:
> Lets PacingController call PacketRouter directly.
> 
> Since locking model has been cleaned up, PacingController can now call
> PacketRouter directly - without having to go via PacedSender or
> TaskQueuePacedSender.
> 
> Bug: webrtc:10809
> Change-Id: I181f04167d677c35395286f8b246aefb4c3e7ec7
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175909
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31342}

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

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

Bug: webrtc:10809
Change-Id: I1d7d5217a03a51555b130ec5c2dd6a992b6e489e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178021
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31563}
2020-06-25 09:56:40 +00:00
edcd9665b8 negotiate RED codec for audio
negotiates the RED codec for opus audio behind a field trial
  WebRTC-Audio-Redundancy
This adds the following line to the SDP:
  a=rtpmap:someid RED/48000/2

To test start Chrome with
  --force-fieldtrials=WebRTC-Audio-Red-For-Opus/Enabled

BUG=webrtc:11640

Change-Id: I8fa9fb07d03db5f90cdb08765baaa03d3d0458cc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176372
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31562}
2020-06-25 06:24:18 +00:00
afdbf8e6f8 H264: Fix stap-a-to-annex-b loop over-read
While converting the aggregated (stap-a) packet transform packet
framing input into an annex-b framing copy, the two loops (both the
required size calculation and the stap-a-to-annex-b copy) may
over-read the input buffer.

In both buffers, `nalu_ptr` follows the input (stap-a) buffer, which
is located in `data`, and whose length is `data_size`. Buffer is read
until `nalu_ptr` reaches the end of the buffer. Issues is that the 5th
line in the loop:

```
    uint16_t segment_length = nalu_ptr[0] << 8 | nalu_ptr[1];
```

This line accesses `nalu_ptr[1]`, which needs to be protected in
the loop condition. Let's assume `data_size = 4`, and that we restart
the loop with `nalu_ptr = data + 3`. The condition of the loop does
hold (`nalu_ptr = data + 3 < data + data_size`), but the 5th line
will access to `data[3+1] = data[4]`, which is an over-read.

Tested:

```
$ ninja -C out/Default
$ out/Default/modules_unittests --gtest_filter=PacketBuffer*:H264*:RtpPacketizerH264Test*:VideoRtpDepacketizerH264Test*:TestH264SpsPpsTracker* --logs
...
[  PASSED  ] 97 tests.
```

Change-Id: I8b8aaf7d12b0bb154430b8922f099cd49e684762
Bug: webrtc:11698
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177140
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Niklas Enbom <niklas.enbom@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31561}
2020-06-24 21:54:45 +00:00
603cc3a31e red: modify the encoder to send RFC 2198
modifies the RED encoder to send the actual RFC 2198 format
described in
  https://tools.ietf.org/html/rfc2198
Decoding is handled in neteq, see red_payload_splitter.h

BUG=webrtc:11640

Change-Id: Ib3005882a3ceee49d2b05c43357f552432a984ac
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176371
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31560}
2020-06-24 21:25:05 +00:00
1b48532208 Revert "Allows FEC generation after pacer step."
This reverts commit 75fd127640bdf1729af6b4a25875e6d01f1570e0.

Reason for revert: Breaks downstream test

Original change's description:
> Allows FEC generation after pacer step.
> 
> Split out from https://webrtc-review.googlesource.com/c/src/+/173708
> This CL enables FEC packets to be generated as media packets are sent,
> rather than generated, i.e. media packets are inserted into the fec
> generator after the pacing stage rather than at packetization time.
> 
> This may have some small impact of performance. FEC packets are
> typically only generated when a new packet with a marker bit is added,
> which means FEC packets protecting a frame will now be sent after all
> of the media packets, rather than (potentially) interleaved with them.
> Therefore this feature is currently behind a flag so we can examine the
> impact. Once we are comfortable with the behavior we'll make it default
> and remove the old code.
> 
> Note that this change does not include the "protect all header
> extensions" part of the original CL - that will be a follow-up.
> 
> Bug: webrtc:11340
> Change-Id: I3fe139c5d53968579b75b91e2612075451ff0f5d
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177760
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31558}

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

Change-Id: Ie714e5f68580cbd57560e086c9dc7292a052de5f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:11340
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177983
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31559}
2020-06-24 18:41:10 +00:00
75fd127640 Allows FEC generation after pacer step.
Split out from https://webrtc-review.googlesource.com/c/src/+/173708
This CL enables FEC packets to be generated as media packets are sent,
rather than generated, i.e. media packets are inserted into the fec
generator after the pacing stage rather than at packetization time.

This may have some small impact of performance. FEC packets are
typically only generated when a new packet with a marker bit is added,
which means FEC packets protecting a frame will now be sent after all
of the media packets, rather than (potentially) interleaved with them.
Therefore this feature is currently behind a flag so we can examine the
impact. Once we are comfortable with the behavior we'll make it default
and remove the old code.

Note that this change does not include the "protect all header
extensions" part of the original CL - that will be a follow-up.

Bug: webrtc:11340
Change-Id: I3fe139c5d53968579b75b91e2612075451ff0f5d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177760
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31558}
2020-06-24 16:59:50 +00:00
29d59a1402 Add method PeerConfigurer::SetBitrateSettings
It replaces the method SetBitrateParameters, which uses the
deprecated type PeerConnectionInterface::BitrateParameters.

Bug: None
No-try: True
Change-Id: I3690d391d679c3ff5b79e088f6c7f79bc3571064
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177667
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31557}
2020-06-24 12:07:06 +00:00
d95138b684 Make stable target adaptation enabled by default.
This will result in slightly higher encode bitrates and longer frame
lengths compared to using the smoothing filter.

Bug: webrtc:10981
Change-Id: I64704196c56b0ad910895c908baad38c994a971b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177425
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31556}
2020-06-24 11:22:21 +00:00
ee5b6de5aa Add helper for DependencyDescriptor rtp header extension
to decide when to set active_decode_target_bitmask field

Bug: webrtc:10342
Change-Id: I348d7467a72b45651455f4574fe8fda3c77ebbae
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177400
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31555}
2020-06-24 10:59:40 +00:00
755c65d8b5 Reland RtpTransceiverInterface: introduce SetOfferedRtpHeaderExtensions.
This change adds exposure of a new transceiver method for
modifying the extensions offered in the next SDP negotiation,
following spec details in https://w3c.github.io/webrtc-extensions/#rtcrtptransceiver-interface.

Features:
- The interface allows to control the negotiated direction as
  per https://tools.ietf.org/html/rfc5285#page-7.
- The interface allows to remove an extension from SDP
  negotiation by modifying the direction to
  RtpTransceiverDirection::kStopped.

Note: support for signalling directionality of header extensions
in the SDP isn't implemented yet.

https://chromestatus.com/feature/5680189201711104.
Intent to prototype: https://groups.google.com/a/chromium.org/g/blink-dev/c/65YdUi02yZk

Tested: new unit tests in CL and manual tests with downstream project.
Bug: chromium:1051821
Change-Id: I7a4c2f979a5e50e88d49598eacb76d24e81c7c7a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177348
Commit-Queue: Markus Handell <handellm@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31554}
2020-06-24 10:38:30 +00:00
96115cfcdd Add absl_deps to webrtc_fuzzer_test.
Bug: chromium:1046390
Change-Id: I531511dce156a10174c9ed80ccb2d5cd75ec33b0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177900
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31553}
2020-06-24 08:22:30 +00:00
477c82e10a Merge "Export include dirs" am: f92ec5a27c am: 39a3db90ff am: 973c7ccea0 am: 547a67b290 am: 4b55670be5
Original change: https://android-review.googlesource.com/c/platform/external/webrtc/+/1347705

Change-Id: I7c64f15ecede338042a25d37adb65b8507b9ff72
2020-06-24 02:25:39 +00:00
4b55670be5 Merge "Export include dirs" am: f92ec5a27c am: 39a3db90ff am: 973c7ccea0 am: 547a67b290
Original change: https://android-review.googlesource.com/c/platform/external/webrtc/+/1347705

Change-Id: Ic867e870b62429fe7e84b16d0e0d0067500b3476
2020-06-24 02:12:14 +00:00
547a67b290 Merge "Export include dirs" am: f92ec5a27c am: 39a3db90ff am: 973c7ccea0
Original change: https://android-review.googlesource.com/c/platform/external/webrtc/+/1347705

Change-Id: Iebab7f2dd536b7e237fddf1435134fc85db191d8
2020-06-24 01:56:36 +00:00
973c7ccea0 Merge "Export include dirs" am: f92ec5a27c am: 39a3db90ff
Original change: https://android-review.googlesource.com/c/platform/external/webrtc/+/1347705

Change-Id: I02a488ce82be251d29358124810c4e96963d73e2
2020-06-24 01:41:07 +00:00
39a3db90ff Merge "Export include dirs" am: f92ec5a27c
Original change: https://android-review.googlesource.com/c/platform/external/webrtc/+/1347705

Change-Id: I02e9d2b9eaa8d8bfa87ad9349eb6affcd8312fa2
2020-06-24 01:22:24 +00:00
f92ec5a27c Merge "Export include dirs" 2020-06-24 01:11:58 +00:00
09f635e587 Delete RtpHeaderExtensionMap::Register deprecated long time ago
Bug: None
Change-Id: I2c3d1243bdfc7c9b6c4cdd326454b5b07ed0dde5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177842
Commit-Queue: Markus Handell <handellm@webrtc.org>
Reviewed-by: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31552}
2020-06-23 22:55:08 +00:00
8db44406d1 Export include dirs
Bug: 159726468
Test: m libeffects
Change-Id: I63782bfc073b64ed9b9cd5993d9f2c1a6b938672
2020-06-23 22:40:38 +00:00
24762f207f Fix missing dependencies.
Setting gtest_enable_absl_printers to false in .gn uncovers some missing
dependencies that were pulled in by gtest.

Bug: None
Change-Id: Ibd7772f6e2af9c798c97161c24f70b1658e3723c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177843
Reviewed-by: Jeremy Leconte <jleconte@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31551}
2020-06-23 15:46:34 +00:00
30a3e78794 iSAC encoder: Make it possible to change target bitrate at any time
Not just at construction time.

Bug: webrtc:11704
Change-Id: I952c7dbe20774cc976065c7d2f992a80074ebf63
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177663
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31550}
2020-06-22 14:59:22 +00:00
09867d37ed Share constants for dependency descriptor rtp header extension
Bug: webrtc:10342
Change-Id: I9c81215569bd1bd96b953faa359f5a3d32c7d0c4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177521
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31549}
2020-06-22 11:58:29 +00:00