Commit Graph

32519 Commits

Author SHA1 Message Date
075fd4b7f9 Roll chromium_revision 84c1288826..ba13ceb157 (847739:848044)
Change log: 84c1288826..ba13ceb157
Full diff: 84c1288826..ba13ceb157

Changed dependencies
* src/base: 11fdeab27c..0ebec09795
* src/build: 72bb2671dc..80d8522df9
* src/ios: 2308a94d35..6c871a590c
* src/testing: 6cdae8ca6d..abcd0df243
* src/third_party: 561dec22a2..956489ad7f
* src/third_party/android_ndk: https://chromium.googlesource.com/android_ndk.git/+log/27c0a8d090..401019bf85
* src/third_party/depot_tools: fade894c7e..ea89b0d66a
* src/third_party/ffmpeg: 841aa72c9e..ebd8895ddb
* src/third_party/freetype/src: 601c5a611e..7ae5609dbe
* src/third_party/perfetto: f2d015349a..a74aaf03d7
* src/tools: 3b8adf7d86..86dcca8e4e
DEPS diff: 84c1288826..ba13ceb157/DEPS

No update to Clang.

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

Change-Id: I7b4f85bd80639a79e318cdcc7b71c6f91218eb23
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/204260
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@{#33087}
2021-01-28 11:00:20 +00:00
3b68aa346a Move some RTC_LOG to RTC_DLOG.
Some locations in the WebRTC codebase RTC_LOG the value of the
__FUNCTION__ macro which probably is useful in debug mode. Moving
these instances to RTC_DLOG saves ~10 KiB on arm64.

Bug: webrtc:11986
Change-Id: I5d81cc459d2850657a712b9aed80c187edf49a3a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/203981
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33086}
2021-01-28 10:05:00 +00:00
70f9e249d5 Remove DtlsHandShakeError and replace it with a Function Pointer.
- Remove the last sigslot from JsepTransportController.
- Tested the potential test failure on chromium blink test by importing
  this CL to chromium source.

Bug: webrtc:11943
Change-Id: I107d05606350aff655ca73a5cb640dff1a7036ee
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/202741
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33085}
2021-01-28 09:41:08 +00:00
b70c9531ee sdp: cross-check media type and protocol earlier
catching some unsupported configurations earlier.

BUG=None

Change-Id: I9f366929816fe15031837a3218086aa5a13d787a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/197813
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Cr-Commit-Position: refs/heads/master@{#33084}
2021-01-28 09:23:30 +00:00
2aad81259e Refactor and implement WgcCapturerWin, a source agnostic capturer.
This change refactors WgcWindowCapturer into WgcCapturerWin, a source
agnostic capturer, and finishes the implementation to enable both window
and screen capture.

This CL depends on another which must complete first:
196622: Add ability to load CreateDirect3DDeviceFromDXGIDevice from
d3d11.dll | https://webrtc-review.googlesource.com/c/src/+/196622

This feature remains off by default behind a build flag, due to it
adding a depency on the Win10 SDK vv10.0.19041 which not all consumers
of WebRTC have upgraded to. A follow up change later will enable the
rtc_enable_win_wgc build flag, but for now it should remain off.

The basic operation of this class is as follows:
Consumers call either WgcCapturerWin::CreateRawWindowCapturer or
CreateRawScreenCapturer to receive a correctly initialized
WgcCapturerWin object suitable for the desired source type.

Callers then indicate via SelectSource and a SourceId the desired
capture target, and the capturer creates an appropriate WgcCaptureSource
for the correct type (window or screen) using the
WgcCaptureSourceFactory supplied at construction.

Next, callers request frames for the currently selected source and the
capturer then creates a WgcCaptureSession and stores it in a map for
more efficient capture of multiple sources.

The WgcCaptureSession is supplied with a GraphicsCaptureItem created by
the WgcCaptureSource. It uses this item to create a
Direct3D11CaptureFramePool and create and start a
GraphicsCaptureSession.

Once started, captured frames will begin to be deposited into the
FramePool. Typically, one would listen for the FrameArrived event and
process the frame then, but due to the synchronous nature of the
DesktopCapturer interface, and to avoid a more complicated multi-
threaded architecture we ignore the FrameArrived event. Instead, we
wait for a request for a frame from the caller, then we check the
FramePool for a frame, and process it on demand.

Processing a frame involves moving the image data from an
ID3D11Texture2D stored in the GPU into a texture that is accessible
from the CPU, and then copying the data into the new WgcDesktopFrame
class. This copy is necessary as otherwise we would need to manage the
lifetimes of the CaptureFrame and ID3D11Texture2D objects, lest the
buffer be invalidated.

Once we've copied the data and returned it to the caller, we can unmap
the texture and exit the scope of the GetFrame method, which will
destruct the CaptureFrame object. At this point, the CaptureSession
will begin capturing a new frame, and will soon deposit it into the
FramePool and we can repeat.

Bug: webrtc:9273
Change-Id: I02263c4fd587df652b04d5267fad8965330d0f5b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/200161
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Reviewed-by: Guido Urdaneta <guidou@webrtc.org>
Commit-Queue: Austin Orion <auorion@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#33083}
2021-01-27 21:17:19 +00:00
ca5d4a4152 Roll chromium_revision 61b8ff5c89..84c1288826 (847529:847739)
Change log: 61b8ff5c89..84c1288826
Full diff: 61b8ff5c89..84c1288826

Changed dependencies
* src/base: acfa7a9bdd..11fdeab27c
* src/build: fcaf1b1b36..72bb2671dc
* src/ios: 77fffc677e..2308a94d35
* src/testing: 001e33eea6..6cdae8ca6d
* src/third_party: e9e90a85fa..561dec22a2
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/1cd5ea42ac..9d5ec46922
* src/third_party/freetype/src: c7cc947c0f..601c5a611e
* src/third_party/icu: 899e18383f..2eefd9a18a
* src/third_party/perfetto: 17fea3e29e..f2d015349a
* src/tools: f4260d3a54..3b8adf7d86
DEPS diff: 61b8ff5c89..84c1288826/DEPS

No update to Clang.

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

Change-Id: Ia6b29e08844ad6f68689af8bbcf1a1db052cb62f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/204081
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@{#33082}
2021-01-27 20:51:46 +00:00
d19d0cf8ee Reland: Add ability to load CreateDirect3DDeviceFromDXGIDevice from d3d11.dll
Relanding this after a build break in a downstream consumer caused a
revert. I've removed the include of the windows.graphics.capture.interop
header and instead replaced it with an include of
windows.graphics.directx.direct3d11.h which is where the IDirect3DDevice
data type that we need is declared. Before this was being included
transitively through the WGC header, which was a mistake.

Original change's description:
Add ability to load CreateDirect3DDeviceFromDXGIDevice from d3d11.dll

Creating a Direct3D11Device from a DXGIDevice is necessary for the new
WGC based window capturer. However, the
CreateDirect3DDeviceFromDXGIDevice API is not available on all
versions of Windows, which means we have to load this function from
d3d11.dll at runtime.

You can see how this function will be used in this CL:
196624: Finish implementing WGC Window Capturer and add unit tests. |
https://webrtc-review.googlesource.com/c/src/+/196624

I also ensure we don't leak HSTRINGs in GetActivationFactory and fix
up some includes in ScopedComInitializer.

Bug: webrtc:9273
Change-Id: I56a5eef29815a09297bd2cdad4c5e4265dd7e27e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/203200
Commit-Queue: Austin Orion <auorion@microsoft.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33081}
2021-01-27 19:16:46 +00:00
49dbad021e Fixing audio timestamp stall during inactivation (under a kill switch)
TEST: tested on chromium.

Bug: webrtc:12397
Change-Id: I1e15605f90e253a6ef61ab7ead8c576a80e8f01b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/203886
Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33080}
2021-01-27 14:28:19 +00:00
14b0e73bd8 Roll chromium_revision e3ed290da5..61b8ff5c89 (846763:847529)
Change log: e3ed290da5..61b8ff5c89
Full diff: e3ed290da5..61b8ff5c89

Changed dependencies
* src/base: 5397c2600c..acfa7a9bdd
* src/build: 4ba9b31907..fcaf1b1b36
* src/buildtools: 13547b97da..e3db55b463
* src/buildtools/clang_format/script: 23f18eb6f7..99803d74e3
* src/buildtools/linux64: git_revision:d62642c920e6a0d1756316d225a90fd6faa9e21e..git_revision:55ad154c961d8326315b1c8147f4e504cd95e9e6
* src/buildtools/mac: git_revision:d62642c920e6a0d1756316d225a90fd6faa9e21e..git_revision:55ad154c961d8326315b1c8147f4e504cd95e9e6
* src/buildtools/win: git_revision:d62642c920e6a0d1756316d225a90fd6faa9e21e..git_revision:55ad154c961d8326315b1c8147f4e504cd95e9e6
* src/ios: 8790968c74..77fffc677e
* src/testing: 01cab16640..001e33eea6
* src/third_party: cc28b65885..e9e90a85fa
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/957dfeae29..1cd5ea42ac
* src/third_party/depot_tools: f08e425f2d..fade894c7e
* src/third_party/libjpeg_turbo: 518d81558c..fa0de07678
* src/third_party/perfetto: 122834484a..17fea3e29e
* src/tools: 262a9440ba..f4260d3a54
Added dependencies
* src/third_party/android_deps/libs/com_google_firebase_firebase_messaging
* src/third_party/android_deps/libs/com_google_firebase_firebase_installations
* src/third_party/android_deps/libs/com_google_firebase_firebase_iid
* src/third_party/android_deps/libs/com_google_firebase_firebase_encoders_json
* src/third_party/android_deps/libs/com_google_firebase_firebase_encoders
* src/third_party/android_deps/libs/com_google_android_datatransport_transport_api
* src/third_party/android_deps/libs/com_google_firebase_firebase_annotations
* src/third_party/android_deps/libs/com_google_firebase_firebase_installations_interop
* src/third_party/android_deps/libs/com_google_firebase_firebase_iid_interop
* src/third_party/android_deps/libs/com_google_firebase_firebase_components
* src/third_party/android_deps/libs/com_google_android_gms_play_services_cloud_messaging
* src/third_party/android_deps/libs/com_google_firebase_firebase_common
* src/third_party/android_deps/libs/com_google_firebase_firebase_measurement_connector
DEPS diff: e3ed290da5..61b8ff5c89/DEPS

No update to Clang.

TBR=titovartem@google.com,
BUG=None

Change-Id: I39fa5f9265b44ba6caad9e5d6b81607571441abd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/203980
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33079}
2021-01-27 12:23:08 +00:00
934b5e2ac6 Update WebRTC code version (2021-01-27T04:02:39).
TBR=webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com,mbonadei@webrtc.org

Bug: None
Change-Id: Ib0bafa6cb394dbca6533c6cefc7842d8d15418f6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/203960
Reviewed-by: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#33078}
2021-01-27 06:00:33 +00:00
fae4fb1345 video_replay: add support for IVF file output
adding a -decoder_ivf_filename command line flag.

BUG=none

Change-Id: I895a6bf8093d5f36c17462d97240b17ada4dc9f1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/201560
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33077}
2021-01-26 19:51:08 +00:00
1d77c3ef17 Fix roll chromium_revision 18311e2720..e3ed290da5 (844473:846763)
Change log: 18311e2720..e3ed290da5
Full diff: 18311e2720..e3ed290da5

Changed dependencies
* src/base: f7f5bac81f..5397c2600c
* src/build: 43dd249695..4ba9b31907
* src/buildtools: c38b5ab1c6..13547b97da
* src/ios: ad2e59ea45..8790968c74
* src/testing: ca81cc1c21..01cab16640
* src/third_party: 3ee03ddfde..cc28b65885
* src/third_party/android_deps/libs/androidx_activity_activity: version:1.1.0-cr0..version:1.3.0-SNAPSHOT-cr0
* src/third_party/android_deps/libs/androidx_annotation_annotation: version:1.2.0-alpha01-cr0..version:1.2.0-SNAPSHOT-cr0
* src/third_party/android_deps/libs/androidx_appcompat_appcompat: version:1.2.0-beta01-cr0..version:1.3.0-SNAPSHOT-cr0
* src/third_party/android_deps/libs/androidx_appcompat_appcompat_resources: version:1.2.0-cr0..version:1.3.0-SNAPSHOT-cr0
* src/third_party/android_deps/libs/androidx_fragment_fragment: version:1.2.5-cr0..version:1.4.0-SNAPSHOT-cr0
* src/third_party/android_deps/libs/androidx_gridlayout_gridlayout: version:1.0.0-cr0..version:1.1.0-SNAPSHOT-cr0
* src/third_party/android_deps/libs/androidx_leanback_leanback: version:1.0.0-cr0..version:1.1.0-beta01-cr0
* src/third_party/android_deps/libs/androidx_leanback_leanback_preference: version:1.0.0-cr0..version:1.1.0-SNAPSHOT-cr0
* src/third_party/android_deps/libs/androidx_lifecycle_lifecycle_common: version:2.2.0-cr0..version:2.4.0-SNAPSHOT-cr0
* src/third_party/android_deps/libs/androidx_lifecycle_lifecycle_common_java8: version:2.0.0-cr0..version:2.4.0-SNAPSHOT-cr0
* src/third_party/android_deps/libs/androidx_lifecycle_lifecycle_livedata: version:2.0.0-cr0..version:2.4.0-SNAPSHOT-cr0
* src/third_party/android_deps/libs/androidx_lifecycle_lifecycle_livedata_core: version:2.2.0-cr0..version:2.4.0-SNAPSHOT-cr0
* src/third_party/android_deps/libs/androidx_lifecycle_lifecycle_runtime: version:2.2.0-cr0..version:2.4.0-SNAPSHOT-cr0
* src/third_party/android_deps/libs/androidx_lifecycle_lifecycle_viewmodel: version:2.2.0-cr0..version:2.4.0-SNAPSHOT-cr0
* src/third_party/android_deps/libs/androidx_lifecycle_lifecycle_viewmodel_savedstate: version:2.2.0-cr0..version:2.4.0-SNAPSHOT-cr0
* src/third_party/android_deps/libs/androidx_preference_preference: version:1.1.1-cr0..version:1.2.0-SNAPSHOT-cr0
* src/third_party/android_deps/libs/androidx_recyclerview_recyclerview: version:1.2.0-alpha06-cr0..version:1.2.0-beta01-cr0
* src/third_party/android_deps/libs/androidx_savedstate_savedstate: version:1.0.0-cr0..version:1.2.0-SNAPSHOT-cr0
* src/third_party/android_deps/libs/androidx_slice_slice_builders: version:1.0.0-cr0..version:1.1.0-SNAPSHOT-cr0
* src/third_party/android_deps/libs/androidx_slice_slice_core: version:1.0.0-cr0..version:1.1.0-SNAPSHOT-cr0
* src/third_party/android_deps/libs/androidx_transition_transition: version:1.4.0-SNAPSHOT-cr0..version:1.5.0-SNAPSHOT-cr0
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/f8f35c9555..c47bfce062
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/cf567b6b96..957dfeae29
* src/third_party/depot_tools: dabd965527..f08e425f2d
* src/third_party/freetype/src: 03ceda9701..c7cc947c0f
* src/third_party/perfetto: 2d79f95e90..122834484a
* src/third_party/usrsctp/usrsctplib: a3c3ef666b..07f871bda2
* src/tools: c952341d24..262a9440ba
* src/tools/swarming_client: 1a072711d4..a32a1607f6
Added dependencies
* src/third_party/android_deps/libs/androidx_remotecallback_remotecallback
* src/third_party/android_deps/libs/androidx_tracing_tracing
Removed dependency
* src/third_party/android_deps/libs/androidx_legacy_legacy_preference_v14
DEPS diff: 18311e2720..e3ed290da5/DEPS

Clang version changed llvmorg-12-init-16296-g5e476061:llvmorg-12-init-17251-g6de48655
Details: 18311e2720..e3ed290da5/tools/clang/scripts/update.py

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

Change-Id: I5879700bb906a7356c4fdecc6fbef52268dbf6ba
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/203887
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33076}
2021-01-26 19:27:38 +00:00
103876f379 av1: turn off a few tools that are not used for rtc
Explicitly turn off obmc, warped motion, global motion and ref frame mv.

Bug: chromium:1095763, chromium:1170346
Change-Id: I19bc4fceef4cd5e35ea6699e6af883af244f8954
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/203900
Reviewed-by: Marco Paniconi <marpan@webrtc.org>
Reviewed-by: Marco Paniconi <marpan@google.com>
Commit-Queue: Jerome Jiang <jianj@google.com>
Cr-Commit-Position: refs/heads/master@{#33075}
2021-01-26 17:49:34 +00:00
cc8a1f8450 Add API to get current time mode from NetworkEmulationManager
Bug: None
Change-Id: I1aeca7484bab2b9bc28684b055b8f6bb86135327
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/203888
Reviewed-by: Andrey Logvin <landrey@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33074}
2021-01-26 14:01:17 +00:00
08f46909a8 Protect DefaultVideoQualityAnalyzer::peers_ with lock
Protect DefaultVideoQualityAnalyzer::peers_ with lock, because it's now
accessed from multiple threads.

Bug: webrtc:12247
Change-Id: I41932afe678979f6da9e8d0d5fe2e1ffef0fb513
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/203880
Reviewed-by: Andrey Logvin <landrey@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33073}
2021-01-26 10:35:47 +00:00
c57089a97a Add new peer to injector when adding it to analyzer. Removed unused injector
Bug: webrtc:12247
Change-Id: I735f2b69a8239633bfddca48efd45fe4886c1598
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/203820
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Andrey Logvin <landrey@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33072}
2021-01-26 10:08:16 +00:00
4f3a2eba6b Destroy previous offer instead of leaking it in PeerConnectionInterfaceTest.ExtmapAllowMixedIsConfigurable
Bug: None
Change-Id: I41626e1ff3b13734509e83ead13eed5d85828503
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/203884
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33071}
2021-01-26 09:52:14 +00:00
0a03ed8492 Update WebRTC code version (2021-01-26T04:02:59).
TBR=webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com,mbonadei@webrtc.org

Bug: None
Change-Id: I013252952edd3ab54a1d8947b824bec795096c6a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/203920
Reviewed-by: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#33070}
2021-01-26 05:34:42 +00:00
5312a8f532 Add option to attach custom object to an rtp packet
As an alternative to attaching custom array of bytes.

Bug: b/178094662
Change-Id: I92dcbf04998d8206091125febc520ebfcc4bcebf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/203264
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Emil Lundmark <lndmrk@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33069}
2021-01-25 18:31:34 +00:00
ded6636cf4 Cleanup RtcpSender from legacy functionality
Reduce amount of dynamic memory used to generate rtcp message
Remove option to request several types of rtcp message as unused
Deduplicated PacketContainer and PacketSender as constructs to create packets

Bug: None
Change-Id: Ib2e20a72a9bd73a441ae6b72a13e18ab5885f5c8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/203261
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33068}
2021-01-25 14:20:57 +00:00
54fb32a15e IvfFileReader: Fix SpatialIndex values
The SpatialIndex value from an EncodedImage is 0-based, but values were
off by 1.

Bug: none
Change-Id: Ie74e6450ddef1cfaee68fa230c441030fa86a64a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/203525
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33067}
2021-01-25 13:11:45 +00:00
437843f9a5 Update WebRTC code version (2021-01-25T04:04:10).
TBR=webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com,mbonadei@webrtc.org

Bug: None
Change-Id: I2fe4252dca36578b13790ccd2c4ed385e0a94913
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/203701
Reviewed-by: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#33066}
2021-01-25 05:34:59 +00:00
b1b79f7012 Update WebRTC code version (2021-01-24T04:03:52).
TBR=webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com,mbonadei@webrtc.org

Bug: None
Change-Id: I89eea652988e1d3a61efc37f0c341fdb5f91c425
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/203621
Reviewed-by: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#33065}
2021-01-24 05:50:19 +00:00
90776cb0ef Enable RTC_NO_UNIQUE_ADDRESS on MSan builds.
The issue with MSan has been fixed in LLVM in
https://reviews.llvm.org/D92727.

Bug: webrtc:12218
Change-Id: I73a4831d2ee544948c499ff06c65fe4ce6bee18c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/203266
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33064}
2021-01-23 14:07:28 +00:00
ef53a7fc0b Reset IO thread checker when iOS audio unit stops
In AudioDeviceIOS, when we call Stop() on the VoiceProcessingAudioUnit,
we do not always detach the I/O thread checker in preparation for a new
start. This means that if we start up the VoiceProcessingAudioUnit - and
subsequently a new AURemoteIO thread to deal with I/O operations - the
DCHECK in OnDeliverRecordedData and OnGetPlayoutData will fail. Note
that we want to detach the I/O thread checker regardless of whether
Stop() returns with a success status or not. The success status is
dictated by the iOS function AudioOutputUnitStop. The documentation of
this function does not guarantee that the audio unit will not stop in
the case the function returns with an error code. That is to say, it is
possible the audio unit stops even if the function Stop() returns false.
Therefore, it is safer to prepare the I/O thread checker for a new start
in either case.

Change-Id: Iee50a2457959aff2e6089e9a664c649dc4dbbbd6
Bug: webrtc:12382
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/202945
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33063}
2021-01-23 10:22:58 +00:00
bf95da8e73 Update WebRTC code version (2021-01-23T04:04:31).
TBR=webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com,mbonadei@webrtc.org

Bug: None
Change-Id: I6560f77c136a899aa8792e9775b454264e5df02f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/203461
Reviewed-by: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#33062}
2021-01-23 05:54:01 +00:00
8c007fffea Restrict usage of resolution bitrate limits to singlecast
Bug: none
Change-Id: I4d0726d45a517b51eae124dc23e533910ede7cc7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/203262
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33061}
2021-01-22 21:41:00 +00:00
461b1d903f Restart CPU overuse detection when encoder settings has changed.
This could potentially lead to unnecessary restarts since it is also
started after the encoder is created. However, it is needed since the
hardware acceleration support can change even though the encoder has
not been recreated.

Bug: b/145730598
Change-Id: Iad1330e7c7bdf769a68c4ecf7abb6abbf3a4fe71
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/203140
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33060}
2021-01-22 17:10:12 +00:00
2803a2def1 Make audio device mocks publicly visible
Bug: webrtc:11642
Change-Id: Ic80afca85b9f5854607aa55c403f77bd5bae1c71
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/203320
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33059}
2021-01-22 17:08:42 +00:00
8df643b387 Introduce FinalRefCountedObject template class
To add ref counting to any class while avoiding
virtual functions for reference counting.
This template can both slightly reduce binary size
and slightly improve performance.

Bug: webrtc:11308
Change-Id: I90ac735f6c220ee2a1a991a71039acdb0ca86453
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/198845
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33058}
2021-01-22 16:20:22 +00:00
cbacec52bc Monitor the "concealed samples" stat for the audio during negotiation.
Bug: webrtc:12361
Change-Id: Ib638314f78782d6c3c4ebbb0899f3d6d4cc8e869
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/201727
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33057}
2021-01-22 13:18:05 +00:00
11215febb9 Require scalability mode to initialize av1 encoder.
To make VideoCodec::scalability_mode the only option to set and
change the scalability structure, for easier maintainability.

Bug: webrtc:11404
Change-Id: I6570e9a93ddf2897ff7584c5d20a246346e853e2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/192361
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33056}
2021-01-22 09:46:52 +00:00
2ed56fefef Update WebRTC code version (2021-01-22T04:03:26).
TBR=webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com,mbonadei@webrtc.org

Bug: None
Change-Id: Ie6f35400c34f283ca5e9c90182d0fbdbb08c26f7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/203340
Reviewed-by: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#33055}
2021-01-22 05:34:53 +00:00
d2dd732d83 Introduce network emulated endpoint optional name for better logging
Change-Id: Iedce88400c6f1e91c30249fb49c7914723da2a8d
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/203141
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Andrey Logvin <landrey@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33054}
2021-01-21 18:48:04 +00:00
e4fd1ba319 Delete mutable rtc::CopyOnWriteBuffer::data
Bug: webrtc:12334
Change-Id: I8798248dc591c5b69ff9434e7afc76ed2c7b02cc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/201205
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33053}
2021-01-21 18:14:14 +00:00
6031b74664 Implement a Neon optimized function to find the argmax element in an array.
Finding the array element with the largest argmax is a fairly common
operation, so it makes sense to have a Neon optimized version. The
implementation is done by first finding both the min and max value, and
then returning whichever has the largest argmax.

Bug: chromium:12355
Change-Id: I088bd4f7d469b2424a7265de10fffb42764567a1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/201622
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33052}
2021-01-21 13:42:34 +00:00
03eed7c8d0 Fixes issue triggered by WebRTC-VP9-PerformanceFlags trial.
Using WebRTC-VP9-PerformanceFlags and settings a multi-layer config,
and then configuring the codec in non-svc mode would cause us to not
set the cpu speed in libvpx. For some reason, that could trigger a
crash in the encoder.

This CL fixes that, and adds new test coverage for the code affected
byt the trial.

Bug: chromium:1167353, webrtc:11551
Change-Id: Iddb92fe03fc12bac37717908a8b5df4f3d411bf2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/202761
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33051}
2021-01-21 10:29:05 +00:00
a7e34d33fe Add resolution_bitrate_limits to EncoderInfo field trial.
Added class EncoderInfoSettings for parsing settings.
Added use of class to SimulcastEncoderAdapter.

Bug: none
Change-Id: I8182b2ab43f0c330ebdf077e9f7cbc79247da90e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/202246
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33050}
2021-01-21 07:53:57 +00:00
026ad9ac22 Update WebRTC code version (2021-01-21T04:03:14).
TBR=webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com,mbonadei@webrtc.org

Bug: None
Change-Id: I71f86e807df6e6fb51a8b2f47aeea8ea8d615c0d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/203041
Reviewed-by: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#33049}
2021-01-21 05:41:27 +00:00
49b20f919a Fix race with SctpTransport destruction and usrsctp timer thread.
The race occurs if the transport is being destroyed at the same time as
a callback occurs on the usrsctp timer thread (for example, for a
retransmission). Fixed by slightly extending the scope of mutex
acquisition to include posting a task to the network thread, where it's
safe to do further work.

Bug: chromium:1162424
Change-Id: Ia25c96fa51cd4ba2d8690ba03de8af9e9f1605ea
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/202560
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Taylor <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33048}
2021-01-21 03:03:47 +00:00
c2ae4c8a37 Allow separate dump sets for the data dumper in APM
This CL allows separate dump sets to be used when dumping internal
APM data using audioproc_f, opening up for reducing the amount of
data to be dumped.

Bug: webrtc:5298
Change-Id: I8286933ceed10db074f2064414cc08e8b12653fa
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196089
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33047}
2021-01-20 16:38:17 +00:00
0be1846477 Fix enabling DependencyDescriptor for VP9 with spatial layers
DependencyDescriptor and vp9 wrapper understand key frame differently
when it comes to the first layer frame with spatial_id>0
This CL adds and use DD's interpretation of the key frame when deciding
if DD should be supported going forward.

Bug: webrtc:11999
Change-Id: I11a809a315e18bd856bb391576c6ea1f427e33be
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/202760
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33046}
2021-01-20 15:03:37 +00:00
1657baf67b Add .cache to .gitignore.
The `.cache` directory seems to be created by clangd.

Bug: None
Change-Id: I2d43fd11dd13aaec6a0af00f9b7f1e72d73703f3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/202900
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33045}
2021-01-20 15:01:07 +00:00
4f281f142a Cleanup FakeRtcEventLog from thread awareness
To avoid it relying on AsyncInvoker.

Bug: webrtc:12339
Change-Id: I086305a74cc05fc8ed88a651e71a8f707c2c1d5c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/202252
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33044}
2021-01-20 14:06:47 +00:00
812c73cdc2 Another ilbc cross correlation fix
To determine the appropriate amount of shifting to prevent overflow in a
cross correlation, it is necessary to have the max value of both
sequences. However, only one was calculated in the ilbc code. This CL
calculates the max of the other sequence and correctly takes both into
account.

Bug: chromium:1161837
Change-Id: I3ba8eee0814bb5eda3769c0ce6caf2681c7525e1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/202253
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33043}
2021-01-20 12:50:20 +00:00
5eb43b4777 Prefix HAVE_SCTP macro with WEBRTC_.
Generated automatically with:

  git grep -l "\bHAVE_SCTP\b" | xargs \
    sed -i '' 's/HAVE_SCTP/WEBRTC_HAVE_SCTP/g'

Bug: webrtc:11142
Change-Id: I30e16a40ca7a7e388940191df22b705265b42cb4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/202251
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33042}
2021-01-20 10:51:07 +00:00
6dcbcead3d Update WebRTC code version (2021-01-20T04:04:26).
TBR=webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com,mbonadei@webrtc.org

Bug: None
Change-Id: I81bda176d7979d01e7d8c76a03af68d3101b9fc7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/202746
Reviewed-by: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#33041}
2021-01-20 06:09:39 +00:00
33c0ab4948 Call MediaChannel::OnPacketReceived on the network thread.
Functionality wise, there should be no change with this CL, aside
from updating tests to anticipate OnPacketReceived to handle the packet
asynchronously (as already was the case via BaseChannel).

This only removes the network->worker hop out of the BaseChannel
class into the WebRTC MediaChannel implementations. However, it updates
the interface contract between BaseChannel and MediaChannel to align
with how we want things to work down the line, i.e. avoid hopping to
the worker thread for every rtp packet.

The following steps will be to update the video and voice channel
classes to call Call::DeliverPacket on the network thread and only
handle unsignalled SSRCs on the worker (exception case).

Bug: webrtc:11993
Change-Id: If0540874444565dc93773aee89d862f3bfc9c502
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/202242
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33040}
2021-01-19 20:55:14 +00:00
1cbf21e157 ChannelStatistics RTT test case around remote SSRC change.
Bug: webrtc:11989
Change-Id: I7211ffa83ad381b6367d78e553cd5943dca515f2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/201880
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Tim Na <natim@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33039}
2021-01-19 19:07:47 +00:00
a24d35eb09 AlignmentAdjuster: take reduced layers into account for default downscaling.
Bug: none
Change-Id: Id70f7763d2e1b11c24ad98774f1bf6a661728437
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/202257
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33038}
2021-01-19 16:59:11 +00:00