Commit graph

26078 commits

Author SHA1 Message Date
Karl Wiberg
bd0decab82 Ban absl::StrSplit and absl::StrJoin
For binary size reasons; they emit too many instructions at each call
site.

I decided to not point out replacements for them, since rtc::join has
only one caller, and rtc::split isn't the only option for splitting
strings. And both of them have APIs that can cause the creation of
needless temporary strings.

Bug: none
Change-Id: I06161012836a90b09249c2813d2ddc15f167d580
Notry: true
Reviewed-on: https://webrtc-review.googlesource.com/c/124480
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26846}
2019-02-26 00:45:11 +00:00
Nico Weber
7572bb49d6 Fix -Wextra-semi warnings in webrtc fuzzers.
Bug: chromium:935572
Change-Id: Ib060618ca5fb5303e5743cfaec79461dd0aaffe2
Reviewed-on: https://webrtc-review.googlesource.com/c/124440
Reviewed-by: Benjamin Wright <benwright@webrtc.org>
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#26845}
2019-02-25 20:45:46 +00:00
chromium-webrtc-autoroll
c35a72c510 Roll chromium_revision 81fda909f3..a55c7bb989 (635067:635189)
Change log: 81fda909f3..a55c7bb989
Full diff: 81fda909f3..a55c7bb989

Changed dependencies
* src/base: f6f164d3aa..23766679b3
* src/build: ebd384ac00..0b269e9e03
* src/ios: 21336138ee..3080b107f0
* src/testing: 047720614f..b0540a54a0
* src/third_party: 731af5370b..adf26c5cfe
* src/tools: f9efb3aa96..07eabe1161
DEPS diff: 81fda909f3..a55c7bb989/DEPS

No update to Clang.

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

Change-Id: I195325a39eae62c4bd1765c51ce6e0ef82a33dcb
Reviewed-on: https://webrtc-review.googlesource.com/c/124461
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@{#26844}
2019-02-25 19:40:09 +00:00
Amit Hilbuch
b000b716d4 Wiring up RIDs from the video engine to the RTP Sender.
RIDs will now appear in the sent packets when they are supplied.
This is relevant for the Simulcast scenario which uses RIDs to
identify the different layers.

Bug: webrtc:10074
Change-Id: I2f281abc144f467e151a30ec13b8c375be4ac3e6
Reviewed-on: https://webrtc-review.googlesource.com/c/124140
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Commit-Queue: Amit Hilbuch <amithi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26843}
2019-02-25 19:13:39 +00:00
Seth Hampson
98335f8093 Fixing webrtc::IceTransportState.
Currently the IceTransportState goes to connected before the connection
is writable and also goes to checking before any candidate pairs are
being checked. This change fixes these cases.

Bug: webrtc:10352, chromium:933802
Change-Id: I64a67c7f76a94a6be9da413740ddc8762fe966ce
Reviewed-on: https://webrtc-review.googlesource.com/c/124102
Commit-Queue: Seth Hampson <shampson@webrtc.org>
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26842}
2019-02-25 18:57:19 +00:00
Sami Kalliomäki
5cbc528c03 Revert "Remove VCMEncoderDataBase and put remaining code into VideoStreamEncoder"
This reverts commit 715c4765b1.

Reason for revert: Breaks WebRTC roll to Chromium.
https://chromium-review.googlesource.com/c/chromium/src/+/1484629

# Fatal error in: ../../third_party/webrtc/modules/rtp_rtcp/source/rtp_sender.cc, line 796
# last system error: 0
# Check failed: diff_ms >= static_cast<int64_t>(0) (-307 vs. 0)
#

Original change's description:
> Remove VCMEncoderDataBase and put remaining code into VideoStreamEncoder
>
> Since this "data base" only holds a single encoder instance it just
> serves to confuse object ownership. Removing it and giving ownership
> of generic encoder instance to VideoStreamEncoder.
>
> This CL also removes VideoSender interface from video_coding_impl.h,
> which is mostly a leftover from
> https://webrtc-review.googlesource.com/c/src/+/123540
>
> Bug: webrtc:10164
> Change-Id: I9b7fec940dbcbccf3aa1278c2555da3bd5169ae1
> Reviewed-on: https://webrtc-review.googlesource.com/c/123920
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26835}

TBR=brandtr@webrtc.org,nisse@webrtc.org,sprang@webrtc.org

Change-Id: I5432878c4c2e497cd848c4ce1b190e0307df03ca
Bug: webrtc:10164
Reviewed-on: https://webrtc-review.googlesource.com/c/124402
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26841}
2019-02-25 16:31:15 +00:00
Elad Alon
7d6a4c045c Connect LossNotificationController to RtpRtcp
* LossNotificationController is the class that decides when to issue
  LossNotification RTCP messages.
* RtpRtcp handles the technicalities of producing RTCP messages.

Bug: webrtc:10336
Change-Id: I292536257a984ca85d21d9cfa38e7ff2569cbb39
Reviewed-on: https://webrtc-review.googlesource.com/c/124123
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26840}
2019-02-25 16:08:35 +00:00
Sebastian Jansson
a497d12a02 Avoids PostTask to repost a repeated task.
There seems to be a race caused by the libevent wrapping TaskQueue
implementation when reposting a repeated task at destruction time. This
race results in the posted task being leaked according to asan.

Bug: webrtc:10278
Change-Id: Ida40b884547f3f789a804ca0ab3ce36982a4d68e
Reviewed-on: https://webrtc-review.googlesource.com/c/121424
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26839}
2019-02-25 12:03:39 +00:00
Mirko Bonadei
ce7a4fb67b Adding possibility to save an RTCEventLog of the call.
This CL introduces the possibility to save an RTCEventLogs from the
call in order to do further analysis and call debugging.

Bug: webrtc:10138
Change-Id: If95ef66ecf52218b34ce01a4bcf8ab7991b04e5b
Reviewed-on: https://webrtc-review.googlesource.com/c/123881
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26838}
2019-02-25 11:38:19 +00:00
chromium-webrtc-autoroll
99f5d5fdb4 Roll chromium_revision 95a23eca14..81fda909f3 (634895:635067)
Change log: 95a23eca14..81fda909f3
Full diff: 95a23eca14..81fda909f3

Changed dependencies
* src/base: 4740a44298..f6f164d3aa
* src/build: 93f8c0e9ec..ebd384ac00
* src/ios: 9e3d1b85c3..21336138ee
* src/testing: eb7f8cfda8..047720614f
* src/third_party: cff076381d..731af5370b
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/e4abf4c59b..a4323c9b81
* src/third_party/depot_tools: 298f2cf820..18f119bb3a
* src/tools: 72225c4e13..f9efb3aa96
DEPS diff: 95a23eca14..81fda909f3/DEPS

No update to Clang.

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

Change-Id: I429b606f8224a7650ed32f69904824facab68bea
Reviewed-on: https://webrtc-review.googlesource.com/c/124327
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@{#26837}
2019-02-25 11:37:14 +00:00
Sebastian Jansson
d37307c561 Reland "Adds resource path support for video files in scenario tests."
This is a reland of 8306a733f0

Original change's description:
> Adds resource path support for video files in scenario tests.
> 
> Bug: webrtc:9510
> Change-Id: Id41a32325cc5b16b119e62fba483cec88f52975b
> Reviewed-on: https://webrtc-review.googlesource.com/c/123189
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26804}

Bug: webrtc:9510
Change-Id: I97a5568063569ca66d87f28204200a582d01e2e1
Reviewed-on: https://webrtc-review.googlesource.com/c/123960
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26836}
2019-02-25 11:25:54 +00:00
Erik Språng
715c4765b1 Remove VCMEncoderDataBase and put remaining code into VideoStreamEncoder
Since this "data base" only holds a single encoder instance it just
serves to confuse object ownership. Removing it and giving ownership
of generic encoder instance to VideoStreamEncoder.

This CL also removes VideoSender interface from video_coding_impl.h,
which is mostly a leftover from
https://webrtc-review.googlesource.com/c/src/+/123540

Bug: webrtc:10164
Change-Id: I9b7fec940dbcbccf3aa1278c2555da3bd5169ae1
Reviewed-on: https://webrtc-review.googlesource.com/c/123920
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26835}
2019-02-25 11:03:51 +00:00
Sebastian Jansson
2b08e3188e Adds CoDel implementation to network simulation.
Adds an implementation of the CoDel active queue management algorithm
to the network simulation. It is loosely based on CoDel pseudocode
from ACMQueue: https://queue.acm.org/appendices/codel.html

Bug: webrtc:9510
Change-Id: Ice485be35a01dafa6169d697b51b5c1b33a49ba6
Reviewed-on: https://webrtc-review.googlesource.com/c/123581
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26834}
2019-02-25 09:54:03 +00:00
Sebastian Jansson
418dd0b96a Stop using special RTT value for DelayBasedBwe.
There are two RTT values reported to GoogCC. They come from the same
source initially but one is calculated and smoothed in the video call stats.
However, there's not really any technical reasons why this value should
be received via the stats, this has just been maintained for legacy reasons.

Experiments shows no real difference between the modes, therefore the
stats-reported RTT is removed in this CL as a cleanup.

Bug: None
Change-Id: If1462d6c91570ffb883ecef2ba034f04a571c9b5
Reviewed-on: https://webrtc-review.googlesource.com/c/123883
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26833}
2019-02-25 09:51:33 +00:00
Ruslan Burakov
76a74e6dc8 Delay bug during audio receiver stream recreation.
For e.g. when audio receiver is recreated during SetRtpExtensionsAndRecreateStream in webrtc_voice_engine.h,
the audio minimum delay can't go down.

Imagine we set base minimum playout delay when audio receiver stream is created, then its value will be cached, to be applied during recreation. Then SetRtpExtensionsAndRecreateStream is fired, and audio receiver stream is recreated with the cached value, but currently it in the constructor it is used to initialize both base minimum playout delay and minimum playout delay. Which leads to the bug that effective minimum playout delay can't go down anymore as if you set base minimum playout delay to the low value then effective delay use the biggest value which minimum playout delay.

This didn't come up during previous trials because of
https://webrtc-review.googlesource.com/c/src/+/122280
It was reseting minimum playout delay to 0 asynchronously, that is why you couldn't see this bug.


Bug: webrtc:10287
Change-Id: I924446bfcb33ac94f7e5bf987a1868acaf1b0346
Reviewed-on: https://webrtc-review.googlesource.com/c/124000
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Ruslan Burakov <kuddai@google.com>
Cr-Commit-Position: refs/heads/master@{#26832}
2019-02-25 09:23:56 +00:00
Mirko Bonadei
c4dd730765 Fix -Wextra-semi warnings.
Starting from https://chromium-review.googlesource.com/c/1485012,
-Wextra-semi is enabled and WebRTC has some violations to fix.

This is a follow-up of https://webrtc-review.googlesource.com/c/123560.

Bug: webrtc:10355
Change-Id: I012b7497fc8991037fd77aa98f1579c22e08206f
Reviewed-on: https://webrtc-review.googlesource.com/c/124126
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26831}
2019-02-25 09:22:51 +00:00
Rasmus Brandt
3812fa949a Delete VideoCodecTestParameterized.
The approach used in VideoCodecTestLibvpx_DISABLED_MultiresVP8RdPerf
is better.

Bug: webrtc:10349
Change-Id: I76f7f6d9e5ddcae0b3f7f39b871dd1d96dffe56a
Reviewed-on: https://webrtc-review.googlesource.com/c/123980
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26830}
2019-02-25 09:00:26 +00:00
Per Kjellander
19d0104abb Make RtpRtcp::Configuration::field_trials ptr const
Fix mistake from
https://webrtc-review.googlesource.com/c/src/+/123447

TBR=danilchap@webrtc.org

BUG: webrtc:10335
Change-Id: I5643812e95e25a65e14c9a27e48a4b1cb0287f7a
Reviewed-on: https://webrtc-review.googlesource.com/c/124125
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26829}
2019-02-24 20:08:33 +00:00
Mirko Bonadei
a9cfa476fe Revert "Delete rtc_task_queue_impl build target"
This reverts commit 56973e627e.

Reason for revert: Breaks libfuzzer-asan Chromium trybots:
E.g.
https://ci.chromium.org/p/chromium/builders/luci.chromium.try/linux-libfuzzer-asan-rel/112220

Original change's description:
> Delete rtc_task_queue_impl build target
> 
> Bug: webrtc:10191
> Change-Id: I2ba660c403919708d28b5f5f2bdcffdb1e4ee486
> Reviewed-on: https://webrtc-review.googlesource.com/c/124040
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26826}

TBR=danilchap@webrtc.org,mbonadei@webrtc.org

Change-Id: Ic04fc725e0a9cba84584ecf043b39b9d68f69bc7
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10191
Reviewed-on: https://webrtc-review.googlesource.com/c/124124
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26828}
2019-02-24 09:17:31 +00:00
Elad Alon
74f0a51f97 Move kFeedbackMessageType from Remb to Psfb
The FMT 15 is not specific only to REMB or loss notification messages.
Rather, it is the Application Layer FB (AFB) of Psfb (Payload Specific
Feedback Messages).
See https://tools.ietf.org/html/rfc4585#section-6.3

TBR=terelius@webrtc.org

Bug: webrtc:10336
Change-Id: I8cd27ef9ee044bf7b7e7c1bd1a53c1dae2d95006
Reviewed-on: https://webrtc-review.googlesource.com/c/123886
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26827}
2019-02-24 00:11:33 +00:00
Danil Chapovalov
56973e627e Delete rtc_task_queue_impl build target
Bug: webrtc:10191
Change-Id: I2ba660c403919708d28b5f5f2bdcffdb1e4ee486
Reviewed-on: https://webrtc-review.googlesource.com/c/124040
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26826}
2019-02-23 13:03:15 +00:00
chromium-webrtc-autoroll
8721bb30d8 Roll chromium_revision e7ecd1bfc2..95a23eca14 (634731:634895)
Change log: e7ecd1bfc2..95a23eca14
Full diff: e7ecd1bfc2..95a23eca14

Changed dependencies
* src/base: 684b17e2c5..4740a44298
* src/build: 52fa227c5e..93f8c0e9ec
* src/ios: 18051ca0c7..9e3d1b85c3
* src/testing: 6ae2f43c72..eb7f8cfda8
* src/third_party: 5e378b8f47..cff076381d
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/7ef4223fb3..c18353d214
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/b4fdbb737c..e4abf4c59b
* src/third_party/depot_tools: e831004371..298f2cf820
* src/tools: 8d9358aff8..72225c4e13
Added dependencies
* src/third_party/android_deps/libs/androidx_test_monitor
* src/third_party/android_deps/libs/androidx_test_ext_junit
* src/third_party/android_deps/libs/androidx_test_core
* src/third_party/android_deps/libs/androidx_annotation_annotation
* src/third_party/android_deps/libs/androidx_lifecycle_lifecycle_common
DEPS diff: e7ecd1bfc2..95a23eca14/DEPS

No update to Clang.

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

Change-Id: I1729634e1c18c36c6022eb89d3911252f0eea7c9
Reviewed-on: https://webrtc-review.googlesource.com/c/124104
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@{#26825}
2019-02-23 02:07:13 +00:00
Amit Hilbuch
e1e789b6ac Removing non-const RtpSenderInterface::GetParameters().
This removes the temporary non-const method that was kept in the code to
enable backwards compatibility while we fix downstream project dependencies.

Bug: webrtc:10251
Change-Id: Ie221af1d3b0f19112449d61e0f357a833f7a8b18
Reviewed-on: https://webrtc-review.googlesource.com/c/123561
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Amit Hilbuch <amithi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26824}
2019-02-23 00:51:30 +00:00
Bjorn Mellem
f58e43e2a6 Add an OpenChannel method to MediaTransportInterface and call it whenever PeerConnection opens a new data channel.
This informs the media transport that PeerConnection wants to use a data channel
and gives it a chance to set up before the data channel sends the first message.

Bug: webrtc:9719
Change-Id: I6ea905a74b29b8735e77ac68bc8606e7bca77f18
Reviewed-on: https://webrtc-review.googlesource.com/c/124020
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26823}
2019-02-22 20:55:12 +00:00
Jeroen de Borst
8f096d01fa Map clat devices to cellular on Android
Bug: webrtc:10346
Change-Id: I566a1ce4dc5a89152421a39c97b2f2717d525222
Reviewed-on: https://webrtc-review.googlesource.com/c/123661
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Jeroen de Borst <jeroendb@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26822}
2019-02-22 18:38:45 +00:00
chromium-webrtc-autoroll
e19a6da043 Roll chromium_revision a77f654a3c..e7ecd1bfc2 (634608:634731)
Change log: a77f654a3c..e7ecd1bfc2
Full diff: a77f654a3c..e7ecd1bfc2

Changed dependencies
* src/base: b85c191a4b..684b17e2c5
* src/build: 582ae4a19d..52fa227c5e
* src/ios: 4fc4adb870..18051ca0c7
* src/testing: 22c79184e4..6ae2f43c72
* src/third_party: 54ddfab62d..5e378b8f47
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/a74495a295..b4fdbb737c
* src/third_party/depot_tools: c0546b9817..e831004371
* src/tools: e22d14c764..8d9358aff8
DEPS diff: a77f654a3c..e7ecd1bfc2/DEPS

No update to Clang.

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

Change-Id: I0313f65ee3f9b53048acde8fca7e009b096f6304
Reviewed-on: https://webrtc-review.googlesource.com/c/123943
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@{#26821}
2019-02-22 18:29:35 +00:00
Sebastian Jansson
487c09bb73 Adds FakeNetworkPipeTest to rtc_unittests.
Also updating the tests so they pass. The previous target was not part
of the targets that runs on the try bots, so they started breaking
during a recent refactor. By adding it to the common target we'll avoid
regression like this in the future.

Bug: None
Change-Id: I55391d454bd52964875818be39cdaa853360ae81
Reviewed-on: https://webrtc-review.googlesource.com/c/123199
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26820}
2019-02-22 15:05:39 +00:00
Anders Carlsson
29f9cd9358 Synchronize replaceRegion calls.
In the Discussion part of
https://developer.apple.com/documentation/metal/mtltexture/1515679-replaceregion
it seems like we should sync the calls to replaceRegion (inside
setupTexturesForFrame) in RTCMTLRenderer and not just the command
buffer.

This is a speculative fix for the linked bug, but we don't have any
clear repro case. Have done basic testing in AppRTCMobile and don't
see any obvious regressions, so might be worth trying.

Bug: webrtc:10024
Change-Id: Id6848691129fba8845f38c3dfe0ba53b9e5a27ce
Reviewed-on: https://webrtc-review.googlesource.com/c/123766
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26819}
2019-02-22 14:03:06 +00:00
Per Kjellander
7ef34f8505 Replace field trials with WebRtcKeyValueConfig in PacedSender
Replaces use of field trials in PacedSender with injectable WebRtcKeyValueConfig.
Implementation still defaults to field trials.

BUG: webrtc:10335
Change-Id: Ie8870d93d51e996e762f2c2de7545bad261b6bb7
Reviewed-on: https://webrtc-review.googlesource.com/c/123521
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26818}
2019-02-22 13:08:18 +00:00
Johannes Kron
ce8e8677df Add support for TransportSequenceNumberV2 in SDP negotiation
TransportSequenceNumberV2 is an experimental feature that should
not be part of the default offer. However, if we receive an offer
with this extension we should respond that we support it.

Bug: webrtc:10264
Change-Id: Id2424d421361e5d71f3a608cb8f74b63645c264a
Reviewed-on: https://webrtc-review.googlesource.com/c/123783
Commit-Queue: Johannes Kron <kron@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26817}
2019-02-22 12:47:04 +00:00
chromium-webrtc-autoroll
14f96d1f61 Roll chromium_revision f39a1b8992..a77f654a3c (634190:634608)
Change log: f39a1b8992..a77f654a3c
Full diff: f39a1b8992..a77f654a3c

Changed dependencies
* src/base: f1120661c7..b85c191a4b
* src/build: 447ceae5e0..582ae4a19d
* src/ios: ecff3e907f..4fc4adb870
* src/testing: 5af017601d..22c79184e4
* src/third_party: 33dbea1554..54ddfab62d
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/3b6663037f..a74495a295
* src/third_party/ced/src: 94c367a1fe..ba412eaaac
* src/third_party/depot_tools: 9cf1796ae4..c0546b9817
* src/third_party/libvpx/source/libvpx: e2381829e9..986b2bef7f
* src/tools: 77ffc3ee8e..e22d14c764
DEPS diff: f39a1b8992..a77f654a3c/DEPS

No update to Clang.

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

Change-Id: Ie09e6fe8a4b968a823dca77379cdd21f509c5fc2
Reviewed-on: https://webrtc-review.googlesource.com/c/123865
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@{#26816}
2019-02-22 11:30:00 +00:00
tzik
8aa00f0371 Add missing absl/memory/memory.h to rtc_event_generic_ack_received.cc
absl/memory/memory.h needs to be included for absl::WrapUnique on the
C++17 mode build, as absl/types/optional.h has a conditional include of
memory.h.

Tbr: terelius@webrtc.org
Bug: chromium:752720
Change-Id: I7bdfb200f29ac8ec11f0b102304b7788595e7eb9
Reviewed-on: https://webrtc-review.googlesource.com/c/123360
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26815}
2019-02-22 11:14:38 +00:00
Elad Alon
b4643ad7ba Rename "OnReceivedFrame" to "OnAssembledFrame"
The new name fits better.

Bug: None
Change-Id: I1f201ff07915ed6c18efeefb7380e2b286742bb9
Reviewed-on: https://webrtc-review.googlesource.com/c/123800
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26814}
2019-02-22 10:49:07 +00:00
Erik Språng
d7329ca570 Remove VideoSender and fold code into VideoStreamEncoder
This CL moves the functionality in VideoSender into VideoStreamEncoder
and simplifies the code where possible, given what we know of the
encoder state and that we now run on the encoder queue.

The intent here is to make it easier to remove the next parts, the
encoder database and generic encoder wrapper.

Bug: webrtc:10164
Change-Id: I8c108ccbe5db97cd9fd1e84228134709af845ea3
Reviewed-on: https://webrtc-review.googlesource.com/c/123540
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26813}
2019-02-22 10:29:46 +00:00
Elad Alon
10874b2174 Create LossNotificationController
Create LossNotificationController, which produces LossNotification
RTCP feedback messages when video packets/frames are lost.

(LossNotification messages are sent when an RTP gap is detected,
as well as when frames are later received which are undecodable
because of the missing frames due to the previously dropped packets.)

Bug: webrtc:10336
Change-Id: I7b3a156ed14e5a727349acdd82dae6997462421b
Reviewed-on: https://webrtc-review.googlesource.com/c/123762
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26812}
2019-02-22 10:20:14 +00:00
Jonas Olsson
b75d9e91f4 Allow IceConnectionState to become failed without ever connecting.
As a unintended consequence of the changed iceConnectionState implementation we won't ever transition to the "failed" iceConnection state unless a connection has first been established. This CL fixes that and adds a integration test for this scenario.

Bug: chromium:933786
Change-Id: I45effd7411959ac0e5b16a13d7568756dbeff4d1
Reviewed-on: https://webrtc-review.googlesource.com/c/123785
Commit-Queue: Jonas Olsson <jonasolsson@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26811}
2019-02-22 10:17:36 +00:00
Sergey Silkin
d209cd1754 Lower SSIM thresholds.
VP9 SSIM slightly decreased with the latest libvpx.

Bug: webrtc:10348
Change-Id: I255e3b36751979c3226222caae7fca7bd837901e
Reviewed-on: https://webrtc-review.googlesource.com/c/123902
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26810}
2019-02-22 10:11:33 +00:00
Alex Loiko
65438812ba 2nd reland of https://webrtc-review.googlesource.com/c/src/+/114883
The difference to the original is new bitexactness strings.  The
reason for reland is breaking downstream projects.

Original CL description:

Tests for multi-stream Opus.

This CL (mainly) adds bit-exactness tests for multi-stream Opus. The
tests are in audio_coding_unittest.cc. Some refactoring of
AcmSendTestOldApi, AcmSenderBitExactnessOldApi is done to make it
possible. A few checks for "channels \in {1, 2}" are replaced with
"channels \in {1, 2, 4, 6, 8}" in the WebRTC Opus codec wrapper. A few
other changes are made to be able to write and read multi-channel WAV
files.

The SDP changes are NOT included; as of this CL there is no way to set
up a multi-stream opus en/de-coder from SDP strings.

TBR=ossu@webrtc.org

Bug: webrtc:8649
Change-Id: I6261b18c69fd666d43ab34ed8f1bc9d5cc82b21f
Reviewed-on: https://webrtc-review.googlesource.com/c/123882
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26809}
2019-02-22 09:59:01 +00:00
Alessio Bazzica
caa499b207 PFFFT C++ wrapper for APM
Pretty-Fast Fast Fourier Transform is a 3rd party FFT C library meant to
replace other FFT libraries in WebRTC (see https://crbug.com/webrtc/9577).

This CL adds a WebRTC wrapper meant to be used inside the Audio Processing
Module (APM). As a first step, it only supports aligned memory allocated
via PFFFT. Support for the C++ standard library containers will be done
afterwards since it requires careful investigation and benchmarking (because
PFFFT uses SIMD optimizations).

The wrapper pre-allocates a scratch buffer to avoid VLA.

Bug: webrtc:9577
Change-Id: Ied00c3d3b1df292024f608ccf0ed1917d6e92e56
Reviewed-on: https://webrtc-review.googlesource.com/c/122563
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Max Morin <maxmorin@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26808}
2019-02-22 09:20:29 +00:00
Sergey Silkin
45af00f33b Revert "Adds resource path support for video files in scenario tests."
This reverts commit 8306a733f0.

Reason for revert: ReceivesFramesFromFileBasedStreams is flaky.

Original change's description:
> Adds resource path support for video files in scenario tests.
> 
> Bug: webrtc:9510
> Change-Id: Id41a32325cc5b16b119e62fba483cec88f52975b
> Reviewed-on: https://webrtc-review.googlesource.com/c/123189
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26804}

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

Change-Id: I3b157a58bfaf6bcd3dfd9a9d2573a0edd3e6eeab
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9510
Reviewed-on: https://webrtc-review.googlesource.com/c/123880
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26807}
2019-02-22 08:11:57 +00:00
Karl Wiberg
4ae6347ace Use final so that the compiler will be able to inline calls
Bug: webrtc:9987
Change-Id: Ib5d344ea2b28e928140bbea297f72fb5672855e6
Reviewed-on: https://webrtc-review.googlesource.com/c/123223
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26806}
2019-02-22 01:08:12 +00:00
Karl Wiberg
5966c50963 Add thread safety annotations for PeerConnection::configuration_
Plus all the annotations that are necessary to make things compile
again.

Bug: webrtc:9987
Change-Id: I4be508284af573d93657c933a64e9f970b7e3adf
Reviewed-on: https://webrtc-review.googlesource.com/c/123190
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26805}
2019-02-21 23:51:30 +00:00
Sebastian Jansson
8306a733f0 Adds resource path support for video files in scenario tests.
Bug: webrtc:9510
Change-Id: Id41a32325cc5b16b119e62fba483cec88f52975b
Reviewed-on: https://webrtc-review.googlesource.com/c/123189
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26804}
2019-02-21 18:52:52 +00:00
Anders Carlsson
96fccfec03 Make sure RTC_SUPPORTS_METAL is set in AppRTCMobile.
Otherwise the metal renderer is not used on supported platforms.

Bug: None
Change-Id: I0da56dec1ec8900b7b251794a071663c4badb1de
Reviewed-on: https://webrtc-review.googlesource.com/c/123786
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26803}
2019-02-21 18:51:47 +00:00
Jesús de Vicente Peña
735f823347 CreateAudioProcessor: do not propagate an unset echo control factory to the AudioProcessing instance
In this CL we avoid the propagation of the echo control factory to the AudioProcessing instance when this is not set. That propagation was unnecessarily overriding the echo control factory that might have been already set on that AudioProcessing instance.

Change-Id: Ife8f479bc7a81c35ecf656e7d0ddfcc98981c74f
Bug: webrtc:10344
Reviewed-on: https://webrtc-review.googlesource.com/c/123765
Commit-Queue: Jesus de Vicente Pena <devicentepena@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26802}
2019-02-21 18:31:36 +00:00
Peter Hanspers
bed8604664 Adding entry point for the v2 stats API.
Bug: webrtc:10345
Change-Id: I9271376ff60f5fc6e9014b7dd9a8a5682bdbf452
Reviewed-on: https://webrtc-review.googlesource.com/c/123780
Commit-Queue: Peter Hanspers <peterhanspers@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26801}
2019-02-21 18:29:16 +00:00
Harald Alvestrand
26451933c1 DtlsTransport::ice_transport is const and can be called off thread
Since the ice_transport element of DtlsTransport is never changed
over the lifetime of the object, it's safe to return it on any thread.
Added const qualifier to make this obvious.

Bug: chromium:907849
Change-Id: Ib180682689a57df5106717b125c626d7ac9e7561
Reviewed-on: https://webrtc-review.googlesource.com/c/123781
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26800}
2019-02-21 16:38:37 +00:00
chromium-webrtc-autoroll
ee95f3eacd Roll chromium_revision 94ca2b10d8..f39a1b8992 (634089:634190)
Change log: 94ca2b10d8..f39a1b8992
Full diff: 94ca2b10d8..f39a1b8992

Changed dependencies
* src/base: 064536e30e..f1120661c7
* src/ios: ceb101d5ba..ecff3e907f
* src/third_party: 97abdb1ded..33dbea1554
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/b926cccbcc..3b6663037f
* src/third_party/depot_tools: 385c9b3a31..9cf1796ae4
* src/tools: 12c71ea947..77ffc3ee8e
DEPS diff: 94ca2b10d8..f39a1b8992/DEPS

No update to Clang.

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

Change-Id: Ia9c214ae969896045221852d87bd2e830d2bd4aa
Reviewed-on: https://webrtc-review.googlesource.com/c/123749
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@{#26799}
2019-02-21 16:32:53 +00:00
Johannes Kron
54047bea1b Reland "Extend TransportSequenceNumber RTP header extension"
This reverts commit 109b5fb5f5.

Reason for revert: The failing libfuzzer was fixed in commit d6c6f16063

Original change's description:
> Revert "Extend TransportSequenceNumber RTP header extension"
> 
> This reverts commit 28c7362bc4.
> 
> Reason for revert: It breaks Linux64 Release (libfuzzer):
> https://logs.chromium.org/logs/webrtc/buildbucket/cr-buildbucket.appspot.com/8921003137877469920/+/steps/compile/0/stdout
> 
> Original change's description:
> > Extend TransportSequenceNumber RTP header extension
> > 
> > Extend TransportSequenceNumber RTP header extension to support
> > feedback on sender request.
> > 
> > Bug: webrtc:10262
> > Change-Id: Ibc1cf18162d15cd102e951c9dc697d8ea536ebb6
> > Reviewed-on: https://webrtc-review.googlesource.com/c/123233
> > Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> > Reviewed-by: Alex Loiko <aleloi@webrtc.org>
> > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#26766}
> 
> TBR=danilchap@webrtc.org,aleloi@webrtc.org,kron@webrtc.org
> 
> Change-Id: Ie8a73f5fdffd99919ceaa1ae8911a1645f2077e9
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:10262
> Reviewed-on: https://webrtc-review.googlesource.com/c/123522
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26767}

TBR=danilchap@webrtc.org,mbonadei@webrtc.org,aleloi@webrtc.org,kron@webrtc.org

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

Bug: webrtc:10262
Change-Id: I0f854299a46c042cfbdf8b8cc8cd965a228142c8
Reviewed-on: https://webrtc-review.googlesource.com/c/123764
Reviewed-by: Johannes Kron <kron@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26798}
2019-02-21 16:01:30 +00:00
Jakob Ivarsson
1eb3d7ea0f Refactor DelayManager into separate Histogram class and make it injectable for testing purposes.
Change-Id: I98aa3f992169e598fc1a3dd850400183395fe1fe
Bug: webrtc:10333
Reviewed-on: https://webrtc-review.googlesource.com/c/123445
Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26797}
2019-02-21 15:45:31 +00:00