Commit Graph

20986 Commits

Author SHA1 Message Date
ad7bffccd1 Parameterize PeerConnection media tests for Unified Plan
Bug: webrtc:8765
Change-Id: I9bcd053c3e5f6524576f8da9f818de82fcd1836d
Reviewed-on: https://webrtc-review.googlesource.com/41020
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21754}
2018-01-25 01:34:46 +00:00
9bb8f0553d Cleanup of unused RTP structs and packetizer for stereo codec
This CL is a followup to https://webrtc-review.googlesource.com/c/src/+/38481.
With the new approach we can just use the generic RTP packetizer to pass frames
over the wire as the specific info is contained within the bitstream. This makes
the new codec more modular and reduces its footprint.

Bug: webrtc:7671
Change-Id: Ib07f72a9d338e3cbfdbf39cba9891a959b5f7552
Reviewed-on: https://webrtc-review.googlesource.com/43220
Reviewed-by: Niklas Enbom <niklas.enbom@webrtc.org>
Commit-Queue: Emircan Uysaler <emircan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21753}
2018-01-25 01:25:56 +00:00
be5e208b3e Add FakePeerConnectionBase
This provides an intermediate class for defining default, null
implementations of all the PeerConnectionInterface/
PeerConnectionInternal methods. Specific fake PeerConnections then can
inherit from this and only override the methods pertaining to the
scenarios it will be used in.

Bug: webrtc:8764
Change-Id: I7614303b5673747244053b54b839e58aada43d10
Reviewed-on: https://webrtc-review.googlesource.com/43245
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21752}
2018-01-25 01:04:06 +00:00
46d926a388 Parameterize PeerConnection ICE tests for Unified Plan
Bug: webrtc:8765
Change-Id: Ic2e6bcd7c474ef26b61242ee3f42aefa95f0d8a1
Reviewed-on: https://webrtc-review.googlesource.com/40504
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21751}
2018-01-25 00:27:12 +00:00
23308c5958 Roll chromium_revision e173942fcd..5d01e2667f (531623:531725)
Change log: e173942fcd..5d01e2667f
Full diff: e173942fcd..5d01e2667f

Changed dependencies:
* src/base: aa1fce664e..b2ca0b612f
* src/build: b2f47fdae0..a02764f4fd
* src/ios: 551ab8a447..f8a86f1a1b
* src/testing: 2e9df87191..dee45e96fe
* src/third_party: 9f80c6077e..86dfb27ddf
* src/third_party/libyuv: 09db0c4ce2..92e22cf5b6
* src/tools: 6eb4cfba8d..3265525bff
DEPS diff: e173942fcd..5d01e2667f/DEPS

No update to Clang.

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

Change-Id: I59908cd6a69abe59e42e8bedf8411d411759d6dc
Reviewed-on: https://webrtc-review.googlesource.com/43500
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21750}
2018-01-24 23:27:08 +00:00
a7c7a19cce Reland "Wrap Alpha and YUV frame into one EncodedImage for transmission"
This reverts commit d756fd06fed1b6c65dcb263cbd8f00ca23d72f3b.

Original change's description:
> Revert "Wrap Alpha and YUV frame into one EncodedImage for transmission"
>
> This reverts commit 5670c86aeccc9bc1191725431de7998d21b73c07.
>
> Reason for revert: Breaks downstream build. Need to add "#include <cstring>" to stereo_encoder_adapter.cc to use std::memcpy.
>
> Original change's description:
> > Wrap Alpha and YUV frame into one EncodedImage for transmission
> >
> > With alpha channel, we observe the artifacts on the receiver side, and
> > the reason is that when YUV channel has a key frame, it gives frame_buffer2
> > a chance to drop some previous frames. Then it is possible that some alpha
> > frames got dropped, which break the alpha frame dependence chain.
> >
> > In this CL, we pack the YUV frame and alpha encoded frame together as one
> > entity to solve the issue.
> >
> > Bug: webrtc:8773
> > Change-Id: Ibe746a46cb41fd92b399a7069e1d89f02f292af7
> > Reviewed-on: https://webrtc-review.googlesource.com/38481
> > Commit-Queue: Qiang Chen <qiangchen@chromium.org>
> > Reviewed-by: Emircan Uysaler <emircan@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#21737}
>
> TBR=qiangchen@chromium.org,emircan@webrtc.org
>
> Change-Id: I11eff814ce093bf6db327ebcd21b1b71a1929849
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:8773
> Reviewed-on: https://webrtc-review.googlesource.com/43260
> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#21739}

TBR=deadbeef@webrtc.org,qiangchen@chromium.org,emircan@webrtc.org

Change-Id: I0d64b7e7a62e4f35aa012270d3826a23b3fb2337
Bug: webrtc:8773
Reviewed-on: https://webrtc-review.googlesource.com/43440
Commit-Queue: Qiang Chen <qiangchen@chromium.org>
Reviewed-by: Qiang Chen <qiangchen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#21749}
2018-01-24 23:23:07 +00:00
49e7543f1f Roll chromium_revision f64aa8ef5e..e173942fcd (531507:531623)
Change log: f64aa8ef5e..e173942fcd
Full diff: f64aa8ef5e..e173942fcd

Changed dependencies:
* src/base: 5ade0ce16c..aa1fce664e
* src/build: 3bd9839546..b2f47fdae0
* src/ios: 38d09e5f68..551ab8a447
* src/testing: ee1d056129..2e9df87191
* src/third_party: 6e6143a332..9f80c6077e
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/20b4aa3dea..c3373753de
* src/tools: 532eeceff3..6eb4cfba8d
DEPS diff: f64aa8ef5e..e173942fcd/DEPS

No update to Clang.

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

Change-Id: I51d5ce5f804fe08d8a81b03509be653e3376abb1
Reviewed-on: https://webrtc-review.googlesource.com/43420
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21748}
2018-01-24 21:13:43 +00:00
2d8609c77e Move internal PeerConnection methods to PeerConnectionInternal
PeerConnectionInternal is being introduced so that it can be mocked in
tests and so that a fake can be written for it to be used by stats
tests.

Bug: webrtc:8764
Change-Id: I375d12ce352523e8ac584402685a7870bc399fac
Reviewed-on: https://webrtc-review.googlesource.com/43202
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21747}
2018-01-24 17:24:29 +00:00
194939b8ca Added UMA counters for SDES vs DTLS key agreement
This is required to figure out when we can deprecate and remove
SDES.

Bug: chromium:804275
Change-Id: Ie234e6b3c8f5de8e78dda8d755d955caa61b7aa7
Reviewed-on: https://webrtc-review.googlesource.com/43340
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21746}
2018-01-24 16:09:59 +00:00
d2b5b1f5ba Division by zero in NoiseSuppression.
This change handles a special case in NoiseSuppression. The special
case was found by the AudioProcessing fuzzer.

A const copy of the capture audio stream is sent to
NoiseSuppression::AnalyzeCaptureAudio. Then audio undergoes processing
by e.g. the echo canceller. Then it's processed by
NoiseSuppression::ProcessCaptureAudio.

The special case is when the following conditions are all satisfied:

* All stream samples are constantly zero in the call to
  AnalyzeCaptureAudio

* a processing component modifies it to be nonzero before the call to
  ProcessCaptureAudio

* The array NoiseSuppressionC::magnPrevAnalyze is filled with
  zeros. This holds after initialization.

In this case, there is a division by zero in WebRtcNs_ProcessCore. The
resulting NaN values pollute the output signal. They are only detected
several submodules later in the process chain. The NaN values cause
the EchoDetector to crash in debug mode.

There is special handling of the case when the signal is constant zero
in ProcessCore. This change avoids zero division by handling this
issue the same way.

Bug: chromium:803810 chromium:804634
Change-Id: I6d698dd0cd27e6d550b42085124300ce58533125
Reviewed-on: https://webrtc-review.googlesource.com/41282
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21745}
2018-01-24 14:26:28 +00:00
53a2d8a6c7 One decoder/writer per simulcast/spatial layer.
Each simulcast stream requires dedicated decoder for decoding. SVC
can be decoded by single decoder. But in prod each receiver has its
decoder. We want to replicate this and also use one decoder per
spatial layer.

Also we create one frame writer per simulcast/spatial layer to dump
encoded/decoded frames of different layers to separate files.

Note that videoprocessor is still initialized with single
decoder/writer. It will be updated in next CL and start using
separate decoder/writer per layer.

Bug: webrtc:8524
Change-Id: I3bb3de77f97d51138b8b7675dd01bc281a078b2f
Reviewed-on: https://webrtc-review.googlesource.com/43280
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21744}
2018-01-24 13:45:58 +00:00
bc1f7128ad Roll chromium_revision d0421b0f77..f64aa8ef5e (531405:531507)
Change log: d0421b0f77..f64aa8ef5e
Full diff: d0421b0f77..f64aa8ef5e

Changed dependencies:
* src/base: 050c9d764f..5ade0ce16c
* src/build: 6f1e572351..3bd9839546
* src/ios: 29761e432f..38d09e5f68
* src/testing: 677644b37f..ee1d056129
* src/third_party: 0956c3796b..6e6143a332
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/296e7c3a90..20b4aa3dea
* src/third_party/depot_tools: 0f7b2007a5..fd4ad24165
* src/tools: 0bb8708955..532eeceff3
DEPS diff: d0421b0f77..f64aa8ef5e/DEPS

No update to Clang.

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

Change-Id: I4dbea8b7f52bccd725d2700d910a3ff96c8ab544
Reviewed-on: https://webrtc-review.googlesource.com/43322
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21743}
2018-01-24 13:36:28 +00:00
8ed653d1c4 Do not register VideoSendStream to PacketFeedbackObserver when the current FEC controller do not use Loss Vector Mask.
Bug: chromium:804865
Change-Id: Ib197ff05266a20b8358724e7d8bfe2b085a2de23
Reviewed-on: https://webrtc-review.googlesource.com/43123
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Ying Wang <yinwa@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21742}
2018-01-24 10:40:22 +00:00
b7d7301d7e Added number of simulcast/spatial layers to TestConfig.
These parameters allow to configure number of simulcast/spatial layers
in video codec tests.

Bug: webrtc:8524
Change-Id: Iad1332732758a8297abcf740c24c483e5fccec9a
Reviewed-on: https://webrtc-review.googlesource.com/43020
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21741}
2018-01-24 07:31:51 +00:00
2880ea300e Roll chromium_revision eb285d38ce..d0421b0f77 (531305:531405)
Change log: eb285d38ce..d0421b0f77
Full diff: eb285d38ce..d0421b0f77

Changed dependencies:
* src/base: 9b35dba836..050c9d764f
* src/build: 17db7d44c4..6f1e572351
* src/ios: cba620fc5a..29761e432f
* src/testing: 3f5ab109a0..677644b37f
* src/third_party: 82a6a2cea4..0956c3796b
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/b176429567..296e7c3a90
* src/tools: 66c23290b1..0bb8708955
DEPS diff: eb285d38ce..d0421b0f77/DEPS

No update to Clang.

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

Change-Id: I4ba8d8d39a7da83e925aadb1adfb9b791efdfcc3
Reviewed-on: https://webrtc-review.googlesource.com/43249
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21740}
2018-01-24 03:19:51 +00:00
d756fd06fe Revert "Wrap Alpha and YUV frame into one EncodedImage for transmission"
This reverts commit 5670c86aeccc9bc1191725431de7998d21b73c07.

Reason for revert: Breaks downstream build. Need to add "#include <cstring>" to stereo_encoder_adapter.cc to use std::memcpy.

Original change's description:
> Wrap Alpha and YUV frame into one EncodedImage for transmission
> 
> With alpha channel, we observe the artifacts on the receiver side, and
> the reason is that when YUV channel has a key frame, it gives frame_buffer2
> a chance to drop some previous frames. Then it is possible that some alpha
> frames got dropped, which break the alpha frame dependence chain.
> 
> In this CL, we pack the YUV frame and alpha encoded frame together as one
> entity to solve the issue.
> 
> Bug: webrtc:8773
> Change-Id: Ibe746a46cb41fd92b399a7069e1d89f02f292af7
> Reviewed-on: https://webrtc-review.googlesource.com/38481
> Commit-Queue: Qiang Chen <qiangchen@chromium.org>
> Reviewed-by: Emircan Uysaler <emircan@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#21737}

TBR=qiangchen@chromium.org,emircan@webrtc.org

Change-Id: I11eff814ce093bf6db327ebcd21b1b71a1929849
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8773
Reviewed-on: https://webrtc-review.googlesource.com/43260
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21739}
2018-01-24 01:07:42 +00:00
b181f71ee7 Don't use link-local networks to determine the lowest cost of networks
On Chrome Remote Desktop for iOS, if all of these are true:
* Enable the PORTALLOCATOR_DISABLE_COSTLY_NETWORKS flag.
* Connect an iPhone to a Mac.
* Turn off WiFi on the iPhone and keep mobile data on.
* Connect to a host on a different network from iPhone.

Then the connection can never succeed. The reason is that iOS uses a
special network interface with link-local IP to communicate with the Mac.
BasicPortAllocator sees that interface and thinks it costs less than the
cellular networks, then it removes all cellular networks. However, that
link-local network cannot connect to a peer on external network.

This CL changes the behavior of the PORTALLOCATOR_DISABLE_COSTLY_NETWORKS
so that it ignores the cost of link-local networks when determining the
lowest network cost.

Bug: webrtc:8780
Change-Id: I9bde50426b356fdbf89d4b826fc7b28c8c523c10
Reviewed-on: https://webrtc-review.googlesource.com/41460
Commit-Queue: Yuwei Huang <yuweih@google.com>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21738}
2018-01-24 00:38:01 +00:00
5670c86aec Wrap Alpha and YUV frame into one EncodedImage for transmission
With alpha channel, we observe the artifacts on the receiver side, and
the reason is that when YUV channel has a key frame, it gives frame_buffer2
a chance to drop some previous frames. Then it is possible that some alpha
frames got dropped, which break the alpha frame dependence chain.

In this CL, we pack the YUV frame and alpha encoded frame together as one
entity to solve the issue.

Bug: webrtc:8773
Change-Id: Ibe746a46cb41fd92b399a7069e1d89f02f292af7
Reviewed-on: https://webrtc-review.googlesource.com/38481
Commit-Queue: Qiang Chen <qiangchen@chromium.org>
Reviewed-by: Emircan Uysaler <emircan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21737}
2018-01-23 23:18:01 +00:00
352c430b1d Roll chromium_revision b2c5a55fc1..eb285d38ce (531202:531305)
Change log: b2c5a55fc1..eb285d38ce
Full diff: b2c5a55fc1..eb285d38ce

Changed dependencies:
* src/base: f3eff4526a..9b35dba836
* src/build: 73b05cab8b..17db7d44c4
* src/ios: 1f32969ab5..cba620fc5a
* src/testing: 2e1c1c949f..3f5ab109a0
* src/third_party: 44b9ae20e3..82a6a2cea4
* src/tools: 3b711e7752..66c23290b1
DEPS diff: b2c5a55fc1..eb285d38ce/DEPS

No update to Clang.

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

Change-Id: I4d25f6026f070c69a25094f40c8ff4d76581ff98
Reviewed-on: https://webrtc-review.googlesource.com/43203
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21736}
2018-01-23 20:11:57 +00:00
788ac70c1f Don't overwrite RTP packets in history within one second or 3x RTT.
This prevents us from prematurely overwriting the packets in the history
if the RTT is underestimated.

Bug: webrtc:8766
Change-Id: I042e8ce74cdce2a0451596f4217779fc856b51f4
Reviewed-on: https://webrtc-review.googlesource.com/42960
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21735}
2018-01-23 17:08:28 +00:00
b8e1201020 Generate track stats when SSRC=0
This will generate an all-zeroes track stat when the sender
has not yet been connected (SSRC has not been assigned).

Bug: webrtc:8673
Change-Id: Id59e6941bc87eba6bb33b4d2a8fd808d985052c7
Reviewed-on: https://webrtc-review.googlesource.com/43080
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21734}
2018-01-23 16:15:58 +00:00
70ba9b453c Reland "Make it possible to run video_quality_loopback_test in swarming."
This is a reland of 1175ecd09599194caa05ecafdc4503e940809fc9.

Original change's description:
> Make it possible to run video_quality_loopback_test in swarming.
> 
> I made two changes to video_quality_loopback_test to make it possible
> to run it on swarming.
> 
> 1. We need to know the path to frame_analyzer when we're generating
>    the build files, and it must be already present.
>    I made frame_analyzer a resource, so it's downloaded to a known path
>    before generating the build files.
> 2. The .zip files for apprtc and golang are downloaded and isolated.
>    The script now extracts them and installs AppRTC.
> 
> Passing task:
>  https://chromium-swarm.appspot.com/task?id=3b230bcc04128210
> 
> Bug: chromium:755660
> Change-Id: I34090897402421d5b7e29f21fbed354551197f92
> Reviewed-on: https://webrtc-review.googlesource.com/40920
> Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
> Commit-Queue: Edward Lemur <ehmaldonado@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#21716}

Bug: chromium:755660
Change-Id: Ie3ca62d64b4fe856485287b7d9d3d9e3f75dc091
Reviewed-on: https://webrtc-review.googlesource.com/42860
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Edward Lemur <ehmaldonado@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21733}
2018-01-23 13:03:17 +00:00
5864639a46 Roll chromium_revision bb3f839eb8..b2c5a55fc1 (530955:531202)
Change log: bb3f839eb8..b2c5a55fc1
Full diff: bb3f839eb8..b2c5a55fc1

Changed dependencies:
* src/base: 310ce2c960..f3eff4526a
* src/build: ea310ceb2f..73b05cab8b
* src/ios: aa417958a5..1f32969ab5
* src/testing: 1c94cd6747..2e1c1c949f
* src/third_party: bbed5fe807..44b9ae20e3
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/0a20f3ce6c..b176429567
* src/tools: 3ffd21067e..3b711e7752
DEPS diff: bb3f839eb8..b2c5a55fc1/DEPS

No update to Clang.

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

Change-Id: Ibf4934229774d5f23055db59b3b606736c62c261
Reviewed-on: https://webrtc-review.googlesource.com/43100
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21732}
2018-01-23 11:40:16 +00:00
6daa278156 Move MediaConfig to its own header file and target.
To eliminate circular dependencies, we need to eliminate the include
of media/base/mediachannel.h from api/peerconnectioninterface.h.

MediaConfig is one of the types the PeerConnection api depends on,
since it's part of PeerConnectionInterface::RTCConfiguration. It's
formally a public member, but the intention is that applications should use
accessor mehtods on RTCConfiguration and never access the contents of
MediaConfig directly.

Bug: webrtc:7504
Change-Id: Idfab6f69132d6b90d1628fa4543a393e22db79ac
Reviewed-on: https://webrtc-review.googlesource.com/41260
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@google.com>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21731}
2018-01-23 11:02:16 +00:00
63e83c77ae Forward fix jni_generator_helper.h.
In crrev.com/531028, the JNI generator starts to add heap profiler
events to JNI generated functions.

This will cause a ~80KiB regression and at the moment it is breaking
the Chromium Roll into WebRTC.

This CL defines a void macro to re-enable the Chromium Roll avoiding
the size regression.

Bug: chromium:801260
Change-Id: I9543299199c4e14b6b9b235c5cb98c0d53cf29ea
Reviewed-on: https://webrtc-review.googlesource.com/43021
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21730}
2018-01-23 10:33:26 +00:00
db9e9d5486 Make screenshare_layers frame dropper less aggressive
Try to use frame timestamps first if they look reasonable, otherwise
use realtime clock.
Also, lower limit from 90% of target to 85%.

Bug: webrtc:4172, chromium:802290
Change-Id: Iad489be7c7cf637345be4795e5089936ab9fab07
Reviewed-on: https://webrtc-review.googlesource.com/41041
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21729}
2018-01-22 21:15:29 +00:00
0eef9c0c61 Increasing the speed of the initial alignment in AEC3
This CL increases the speech of the initial alignment in AEC3 by
loosening the requirements on the accuracy of the initial estimates.

Bug: webrtc:8784, chromium:804270
Change-Id: I86e2d97830843524090a1cf877965739f66dc058
Reviewed-on: https://webrtc-review.googlesource.com/40660
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21728}
2018-01-22 20:50:39 +00:00
f11772afd6 Roll chromium_revision 79fff65b43..bb3f839eb8 (530823:530955)
Change log: 79fff65b43..bb3f839eb8
Full diff: 79fff65b43..bb3f839eb8

Changed dependencies:
* src/base: 85ca70bcb7..310ce2c960
* src/build: 5d0c60725f..ea310ceb2f
* src/ios: 68a03deafc..aa417958a5
* src/testing: e19fe955bb..1c94cd6747
* src/third_party: 88ca06bd5c..bbed5fe807
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/c4b36e2d9b..0a20f3ce6c
* src/tools: e84f29d89d..3ffd21067e
DEPS diff: 79fff65b43..bb3f839eb8/DEPS

No update to Clang.

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

Change-Id: Ie4d9080dce3a29da876be45b0f74e6196ef3ef46
Reviewed-on: https://webrtc-review.googlesource.com/42880
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21727}
2018-01-22 20:18:18 +00:00
1d7ecd29c7 Rename a few MediaConfig::Video flags for consistency.
enable_cpu_overuse_detection --> enable_cpu_adaptation
  disable_prerenderer_smoothing --> enable_prerenderer_smoothing

where the latter also gets opposite meaning.

Bug: none
Change-Id: Ic10de0871a87e86a899aefa72ecb7e46fcdeaa65
Reviewed-on: https://webrtc-review.googlesource.com/40280
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21726}
2018-01-22 17:32:58 +00:00
700ef33edc Corrected the handling of saturation in the AEC3 alignment
Bug: webrtc:8782, chromium:804263
Change-Id: I58660364f66959cc5bea3b081a626e743acedb1b
Reviewed-on: https://webrtc-review.googlesource.com/42581
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21725}
2018-01-22 16:37:43 +00:00
395791fea7 Length-correction of the look window used during nonlinear echo removal
Bug: webrtc:8783,chromium:804267
Change-Id: Ib05a28112fe53c2d510ae1bafd05e535fdf35214
Reviewed-on: https://webrtc-review.googlesource.com/42582
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21724}
2018-01-22 16:36:38 +00:00
9c1848952e Revert "Make it possible to run video_quality_loopback_test in swarming."
This reverts commit 1175ecd09599194caa05ecafdc4503e940809fc9.

Reason for revert: Breaks the bots.

Original change's description:
> Make it possible to run video_quality_loopback_test in swarming.
> 
> I made two changes to video_quality_loopback_test to make it possible
> to run it on swarming.
> 
> 1. We need to know the path to frame_analyzer when we're generating
>    the build files, and it must be already present.
>    I made frame_analyzer a resource, so it's downloaded to a known path
>    before generating the build files.
> 2. The .zip files for apprtc and golang are downloaded and isolated.
>    The script now extracts them and installs AppRTC.
> 
> Passing task:
>  https://chromium-swarm.appspot.com/task?id=3b230bcc04128210
> 
> Bug: chromium:755660
> Change-Id: I34090897402421d5b7e29f21fbed354551197f92
> Reviewed-on: https://webrtc-review.googlesource.com/40920
> Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
> Commit-Queue: Edward Lemur <ehmaldonado@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#21716}

TBR=phoglund@webrtc.org,ehmaldonado@webrtc.org

Change-Id: Id25d26adc547ff6f9ab178601e37527459c8b5ef
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:755660
Reviewed-on: https://webrtc-review.googlesource.com/42800
Reviewed-by: Edward Lemur <ehmaldonado@webrtc.org>
Commit-Queue: Edward Lemur <ehmaldonado@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21723}
2018-01-22 16:12:10 +00:00
1723cf9fa2 Get rid of packet loss related stuff from videoprocessor.
This feature is not needed in video codec testing framework. In WebRTC
video codecs never deal with packet loss. Packet loss is handled by
jitter buffer which prevents passing of incomplete frames to decoder.

Bug: webrtc:8768
Change-Id: I211cf51d913bec6a1f935e30691661d428ebd3b6
Reviewed-on: https://webrtc-review.googlesource.com/40740
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21722}
2018-01-22 15:45:58 +00:00
e93de5ff70 Update libwebrtc to use dist_jar instead of custom java8_dist_jar.
The custom template seems to be broken. The necessary flag
"use_unprocessed_jars" has been added to dist_jar template and the
custom template is not needed anymore.

Bug: None
Change-Id: I0ca7a91ee47c8de659bcaffa5661bff55af50375
Reviewed-on: https://webrtc-review.googlesource.com/42680
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21721}
2018-01-22 15:24:18 +00:00
393e266470 Use correct RTP header length in RED generation for ULPFEC packets.
Prior to this change, in certain circumstances the RTP header length
used when creating a RedPacket was incorrect. This was due to an
assumption that a new media packet would _always_ be added to the
UlpfecGenerator's internal media packet buffer. This is not correct,
and the fix is to keep track of whatever RTP header length that is
currently correct.

Bug: webrtc:8767
Change-Id: I6d61429a19d4693dde9330f0469d13c5dfbeac52
Reviewed-on: https://webrtc-review.googlesource.com/40600
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21720}
2018-01-22 15:12:08 +00:00
75db552b33 Add VideoSink interface to VideoFileRenderer.
Bug: webrtc:8776
Change-Id: I1782b0c197abf6f82a200a2808ddc87d1f250326
Reviewed-on: https://webrtc-review.googlesource.com/41320
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21719}
2018-01-22 14:57:38 +00:00
d8f6c167bb Avoid infinite recursion if a RED packet encapsulate a RED packet.
Bug: None
Change-Id: Ife982f28637c7a1b5a4f06fa0446841d76da8392
Reviewed-on: https://webrtc-review.googlesource.com/40880
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21718}
2018-01-22 14:51:34 +00:00
91e26fd94e Integrate uninstalling previous versions into AAR release script.
This allows the script to be reliably run on the bots.

Bug: webrtc:8365
Change-Id: Ie4f216403c1f4fabe8db07f261fe06d1e64be0ae
Reviewed-on: https://webrtc-review.googlesource.com/42720
Reviewed-by: Edward Lemur <ehmaldonado@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21717}
2018-01-22 14:50:28 +00:00
1175ecd095 Make it possible to run video_quality_loopback_test in swarming.
I made two changes to video_quality_loopback_test to make it possible
to run it on swarming.

1. We need to know the path to frame_analyzer when we're generating
   the build files, and it must be already present.
   I made frame_analyzer a resource, so it's downloaded to a known path
   before generating the build files.
2. The .zip files for apprtc and golang are downloaded and isolated.
   The script now extracts them and installs AppRTC.

Passing task:
 https://chromium-swarm.appspot.com/task?id=3b230bcc04128210

Bug: chromium:755660
Change-Id: I34090897402421d5b7e29f21fbed354551197f92
Reviewed-on: https://webrtc-review.googlesource.com/40920
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Edward Lemur <ehmaldonado@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21716}
2018-01-22 14:40:28 +00:00
4418376d16 iOS: Move the fallback logic to the initWithNative… initializer.
This makes it possible to only inject 1 or 0 video codec factories when
consuming the API using the PeerConnectionFactory+Native header.

Bug: webrtc:7925
Change-Id: I671d8dcdbdf2198a31f3890ff6b416441bd32d48
Reviewed-on: https://webrtc-review.googlesource.com/42661
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21715}
2018-01-22 14:20:33 +00:00
f475e3aa0e Change levels of different speech signal in tool.
The conversational_speech_generator tool now adjusts the level of
different speech segments.

Implementation:
The Turn and MultiEndCall::SpeakingTurn structs have an extra 'gain'
member.  It's read and parsed in timing.cc and put in a Turn
struct. It's put in a SpeakingTurn struct in multiend_call.cc and read
and applied to the signal in simulator.cc

Bug: webrtc:7494
Change-Id: I9b82a896eb616c8b5ef14d41dfdfd085ef1d3fbb
Reviewed-on: https://webrtc-review.googlesource.com/26280
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21714}
2018-01-22 14:19:28 +00:00
736d2f7d12 Replace left shift with equivalent multiplication.
This minor issue was found by the UBSAN fuzzer.

We have used the Godbolt compiler explorer to check that similar
changes produce identical compiled code.


Bug: chromium:803078
Change-Id: Ib3fa38c101d7bda53d8d39062cb2c0a55144305f
Reviewed-on: https://webrtc-review.googlesource.com/42580
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21713}
2018-01-22 14:15:38 +00:00
266c633a5d Remove utility/include/audio_frame_operations.h
AudioFrameOperations was moved from modules/utility to audio/utility
over 1 year ago. This CL finally removes the
modules/utility/include/audio_frame_operations.h header and closes the
bug.

TBR=perkj@webrtc.org

Bug: webrtc:6548
Change-Id: I36230eadef2f8edb81008562fdc9208cf29845a4
Reviewed-on: https://webrtc-review.googlesource.com/36140
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21712}
2018-01-22 14:12:08 +00:00
848f31e57d Removing "initialized lambda captures" (C++14 feature).
WebRTC is still targeting C++11, this C++14 only feature sneaked in
because the Android toolchain used to build WebRTC on the trybots
uses C++14 features.

Bug: None
Change-Id: I095fb76134dff729c72b7660cdb3d6abc4de2e0c
Reviewed-on: https://webrtc-review.googlesource.com/42501
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21711}
2018-01-22 13:27:58 +00:00
3b790f316c Make fec controller plug-able.
Bug: webrtc:8656
Change-Id: I3d42ffc92a7c95266e5d53bab03f388bd0de2592
Reviewed-on: https://webrtc-review.googlesource.com/39760
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Ying Wang <yinwa@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21710}
2018-01-22 11:48:16 +00:00
a6e7b88198 Move rtp_timestamp_to_frame_num_ map from VideoProcessor to Stats class.
Let Stats class handle rtp timestamp to frame number mapping.

Bug: none
Change-Id: I2a29c89a25c75c4bbd6c6368a5d10514f90b3c42
Reviewed-on: https://webrtc-review.googlesource.com/41220
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21709}
2018-01-22 09:02:56 +00:00
7cfff23fe1 Roll chromium_revision f4c0fd8fe6..79fff65b43 (530696:530823)
Change log: f4c0fd8fe6..79fff65b43
Full diff: f4c0fd8fe6..79fff65b43

Changed dependencies:
* src/build: f2d852162c..5d0c60725f
* src/ios: b5c64f16e4..68a03deafc
* src/testing: 3aa550fb24..e19fe955bb
* src/third_party: 79e222a7bd..88ca06bd5c
* src/third_party/depot_tools: d12f91d882..0f7b2007a5
* src/third_party/libyuv: 50f9e618fa..09db0c4ce2
* src/tools: 60a396a8be..e84f29d89d
DEPS diff: f4c0fd8fe6..79fff65b43/DEPS

No update to Clang.

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

Change-Id: I75ace0c415f4a5af9378ae9a9b02097d116d9d54
Reviewed-on: https://webrtc-review.googlesource.com/42460
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21708}
2018-01-22 08:40:16 +00:00
d3fb8648c3 Revert "Remove gradle from DEPS."
This reverts commit ce804ddd72f768781654a996b0f6a9551d5f2efa.

Reason for revert: chromium:800732 has been fixed.

Original change's description:
> Remove gradle from DEPS.
>
> The gradle git repo seems to be broken, so remove it from
> DEPS until it is fixed.
>
> Bug: webrtc:8724
> Change-Id: I718d3faadf9c636df8e840b0f8d32c52a73d7da4
> Reviewed-on: https://webrtc-review.googlesource.com/38600
> Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
> Commit-Queue: Edward Lemur <ehmaldonado@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#21549}

TBR=phoglund@webrtc.org,ehmaldonado@webrtc.org

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

Bug: webrtc:8724
Change-Id: Iad03a9e00320831833c589aa52643225df4e32a2
No-Try: True
Reviewed-on: https://webrtc-review.googlesource.com/42480
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21707}
2018-01-22 08:03:26 +00:00
58daf40bad Add functions to securely fill memory with zeros.
Various places are using "memset(ptr, 0, size)" which might get optimized
away by the compiler if "ptr" is not used afterwards. The new functions
can be used to securely clear memory instead.

Bug: None
Change-Id: I067a51d17ff84d95dc4934d46a24027fbcb4825d
Reviewed-on: https://webrtc-review.googlesource.com/35500
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Joachim Bauch <jbauch@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21706}
2018-01-20 16:57:27 +00:00
04b266668a Roll chromium_revision 8cfb6c74d5..f4c0fd8fe6 (530584:530696)
Change log: 8cfb6c74d5..f4c0fd8fe6
Full diff: 8cfb6c74d5..f4c0fd8fe6

Changed dependencies:
* src/base: 067c7f2d28..85ca70bcb7
* src/build: 7a820cd77e..f2d852162c
* src/ios: 36c7edea5b..b5c64f16e4
* src/testing: 17532dc4aa..3aa550fb24
* src/third_party: 83c585ea19..79e222a7bd
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/3318544c51..c4b36e2d9b
* src/tools: 959729d3d8..60a396a8be
DEPS diff: 8cfb6c74d5..f4c0fd8fe6/DEPS

No update to Clang.

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

Change-Id: Ia8a991440d941dbe280a1fcc3874e510728599d7
Reviewed-on: https://webrtc-review.googlesource.com/41520
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21705}
2018-01-20 01:12:36 +00:00