22028 Commits

Author SHA1 Message Date
Paulina Hensman
11b34f4d08 Remove chromium clang style errors affecting sdk/android/media_jni
Bug: webrtc:163
Change-Id: I1e98174817ca032ee13f9a6a386803382843389d
Reviewed-on: https://webrtc-review.googlesource.com/67360
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Paulina Hensman <phensman@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22796}
2018-04-09 13:55:49 +00:00
Kári Tristan Helgason
a8f13ccad4 Improve thread-safety of MTL Renderer.
Bug: b/77579859
Change-Id: I427d0f41593155dc5cbf98a09d7ec826497b803c
Reviewed-on: https://webrtc-review.googlesource.com/67040
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22795}
2018-04-09 13:30:18 +00:00
henrika
68435f558b Ensures that an ADM can be created when rtc_include_pulse_audio is set to false
Bug: webrtc:9127
Change-Id: Ie8f6bb72c1eb4c919671873b15200cdf74bd509e
Reviewed-on: https://webrtc-review.googlesource.com/68600
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22794}
2018-04-09 12:09:29 +00:00
Sebastian Jansson
ae9057831f Removed observer from network controller interface.
Moving the responsibility for calling callbacks from implementations
of NetworkControllerInterface to SendSideCongestionController. This
decreases the coupling and makes the callbacks more explicit.

Bug: webrtc:8415
Change-Id: Ie75effbde01533106080bb6c40308b0c20064c45
Reviewed-on: https://webrtc-review.googlesource.com/66882
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22793}
2018-04-09 11:54:38 +00:00
Niels Möller
24697ab200 Delete obsolete tl_factory member and all mention thereof.
Bug: webrtc:9012
Change-Id: Ib67d139114aa03b9362cd05d12be5673a02c3e08
Reviewed-on: https://webrtc-review.googlesource.com/67160
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22792}
2018-04-09 11:02:38 +00:00
Sebastian Jansson
2808ae99f8 Adds BBR network controller field trial.
This CL adds a field trial to enable the BBR congestion control method.
Since BBR is only implemented to handle per packet feedback,
SendSideCongestionController is modified to recreate network controllers
when the packet feedback availability changes and the BBR experiment is
enabled.

This also means that the periodic task used for process updates in the
network controllers has to recreated.

Bug: webrtc:8415
Change-Id: Ia24f7ad35336d2cc7a02bb3a445f1a84b8643475
Reviewed-on: https://webrtc-review.googlesource.com/61520
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22791}
2018-04-09 10:42:18 +00:00
Michael Achenbach
220609774a [build] Share windows runtime dlls with src/build
Bug: chromium:653569
Change-Id: I6ced614819f9fd7f594acf2fd08c491f16d3eed5
Reviewed-on: https://webrtc-review.googlesource.com/68480
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#22790}
2018-04-09 10:33:18 +00:00
Mirko Bonadei
9098b30700 Trimming unneeded dependencies in test:test_support_unittests.
When building test:test_support_unittests with is_official_build=true,
the linker fails with the following error:

duplicate symbol: webrtc::videocapturemodule::VideoCaptureImpl::Create(
char const*)
>>> defined in obj/modules/video_capture/video_capture_internal_impl/\
    video_capture_linux.o
>>> defined in obj/modules/video_capture/libvideo_capture.a(\
    video_capture_external.o)

After looking at both test:test_support_unittests and test:test_support,
it seems these targets had unused dependenicies. This CL removes them
and fixes the duplicated symbol error.

The GN flag is_official_build changes some configurations down in the
toolchain, that is probably why building with is_official_build=false
was not triggering the problem.

In any case, build targets in test/ need to be cleaned up because they
depend on too many things.

Bug: webrtc:9117
Change-Id: Icfdae3b5610f1c873ccdd0292c12ef946dea79af
Reviewed-on: https://webrtc-review.googlesource.com/67161
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22789}
2018-04-09 10:21:18 +00:00
Sergey Silkin
1ad210876f Revert "Storing frame if encoder is paused."
This reverts commit dcc7e88cc79ab4f7aeb87c13f402e007e1320fd8.

Reason for revert: breaks downstream projects

Original change's description:
> Storing frame if encoder is paused.
> 
> Adds a pending frame to VideoStreamEncoder that is used to store frames
> that are not sent because the encoder is paused. If the encoder is
> resumed within 200 ms, the pending frame will be encoded and sent. This
> ensures that resuming a stream instantly starts sending frames if it is
> possible.
> 
> This also protects against a race between submitting the first frame
> and enabling the encoder that caused flakiness in end to end tests
> when using the task queue based congestion controller.
> 
> Bug: webrtc:8415
> Change-Id: If4bd897187fbfdc4926855f39503230bdad4a93a
> Reviewed-on: https://webrtc-review.googlesource.com/67141
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22781}

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

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

Bug: webrtc:8415
Change-Id: I4449eca65a64e2bc2fb25d866e5775e9a085cee9
Reviewed-on: https://webrtc-review.googlesource.com/68280
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22788}
2018-04-09 10:01:13 +00:00
Karl Wiberg
bb19fcf3bd Add explicit cast to void to silence -Wcomma warning
Bug: webrtc:9014
Change-Id: I390a8d722e40a101c29ca7a71c6429cba26c17ee
Reviewed-on: https://webrtc-review.googlesource.com/67560
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22787}
2018-04-09 10:00:09 +00:00
Sebastian Jansson
5059c07604 Making periodic tasks in SSCC stoppable.
Adding Stop method of periodic tasks in SendSideCongestionController
(SSCC). This is utilized in a later CL enabling switching the network
controller which requires stopping the old periodic task and starting a
new one with a new update period.

Bug: webrtc:8415
Change-Id: I2e56c1e1fe10d88c038b2f290d94c08723ddf4e4
Reviewed-on: https://webrtc-review.googlesource.com/67280
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22786}
2018-04-09 09:09:59 +00:00
Niels Möller
ff40b142c0 Delete obsolete enable argument to SetVideoSend.
This argument was previously used to implement track muting
(black frames) in the video engine, but that now happens in
the VideoTrack/VideoBroadcaster upstream.

Bug: webrtc:6983
Change-Id: Ib721b297d9fbe55b641c56690dbbd37a52edbb2f
Reviewed-on: https://webrtc-review.googlesource.com/67341
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22785}
2018-04-09 08:45:29 +00:00
Autoroller
a1a3869f3d Roll chromium_revision d5c1e1eef5..971d5b4f79 (549017:549119)
Change log: d5c1e1eef5..971d5b4f79
Full diff: d5c1e1eef5..971d5b4f79

Changed dependencies:
* src/build: 30e866049f..6ae4520a1a
* src/testing: 8db403ff6f..ccd18754fe
* src/third_party: 9d7c289bae..1d303bc92c
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/5361d68fa6..1e3e74d24d
* src/third_party/depot_tools: 3f277fc747..da55cdc03c
* src/tools: 5f1ffe728d..79724aafde
DEPS diff: d5c1e1eef5..971d5b4f79/DEPS

No update to Clang.

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

Change-Id: Ib98a274c915009f42283e0e0bf6256f9f0403ad1
Reviewed-on: https://webrtc-review.googlesource.com/68500
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22784}
2018-04-09 08:43:18 +00:00
Niels Möller
b46d1b8aea Delete deprecated version of VideoCodecInitializer::SetupCodec.
Bug: webrtc:8830
Change-Id: I0345e2a8c4db022fe8e0d2594f4b50101c37940b
Reviewed-on: https://webrtc-review.googlesource.com/65500
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22783}
2018-04-09 08:40:28 +00:00
Sergey Silkin
e3b5b6e50b Exclude first frames from RD perf analysis.
It takes some time for rate controller to adapt to content. Quality of first
frames is usually worse than quality of following frames. It makes sense to
exclude first frames from analysis and, thus, avoid negative affect of this
interval on overall results.

Bug: none
Change-Id: Ib0a258889750cf794c7d6fdff26af958f7bbe48a
Reviewed-on: https://webrtc-review.googlesource.com/66100
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Michael Horowitz <mhoro@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22782}
2018-04-08 19:07:14 +00:00
Sebastian Jansson
dcc7e88cc7 Storing frame if encoder is paused.
Adds a pending frame to VideoStreamEncoder that is used to store frames
that are not sent because the encoder is paused. If the encoder is
resumed within 200 ms, the pending frame will be encoded and sent. This
ensures that resuming a stream instantly starts sending frames if it is
possible.

This also protects against a race between submitting the first frame
and enabling the encoder that caused flakiness in end to end tests
when using the task queue based congestion controller.

Bug: webrtc:8415
Change-Id: If4bd897187fbfdc4926855f39503230bdad4a93a
Reviewed-on: https://webrtc-review.googlesource.com/67141
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22781}
2018-04-07 14:21:27 +00:00
Sebastian Jansson
b549bdc845 Probe test using task queue based congestion controller.
Bug: webrtc:8415
Change-Id: I230a055348f7342cca3eb8cf59a5735bf2e3b940
Reviewed-on: https://webrtc-review.googlesource.com/67343
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22780}
2018-04-07 14:16:16 +00:00
Danil Chapovalov
4da18e89bd compare Optional<unsigned> only to unsigned integers
more standard optional<T> inlines compares instead of converting second argument to T.
that leads to warnings about comparing unsigned to signed integers.

Bug: webrtc:9078
Change-Id: I43cc729d3b85d789b0c394064dc7e11dc27a37aa
Reviewed-on: https://webrtc-review.googlesource.com/66782
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22779}
2018-04-07 10:07:47 +00:00
Autoroller
96a0e60c6b Roll chromium_revision e34f08fadd..d5c1e1eef5 (548765:549017)
Change log: e34f08fadd..d5c1e1eef5
Full diff: e34f08fadd..d5c1e1eef5

Changed dependencies:
* src/base: 137e0ff7db..8ac9de626c
* src/build: d1cd744829..30e866049f
* src/ios: b279f6c9e7..edcd2c6312
* src/testing: 2fd75a2bca..8db403ff6f
* src/third_party: 69379761e9..9d7c289bae
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/aaeb23e97c..5361d68fa6
* src/third_party/depot_tools: 1118a2193b..3f277fc747
* src/third_party/libsrtp: 1d45b8e599..fc2345089a
* src/tools: fc9dd22ded..5f1ffe728d
DEPS diff: e34f08fadd..d5c1e1eef5/DEPS

No update to Clang.

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

Change-Id: I6d9720e3df26e885aed7264edc8bef975129ab76
Reviewed-on: https://webrtc-review.googlesource.com/67543
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22778}
2018-04-07 03:15:26 +00:00
Steve Anton
1b8773d8e8 Negotiate the MID header extension for Unified Plan
Bug: webrtc:4050
Change-Id: Icf02eb5186742bb0cbf1a41964daab9e35ae9b6f
Reviewed-on: https://webrtc-review.googlesource.com/65026
Reviewed-by: Zhi Huang <zhihuang@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22777}
2018-04-06 19:51:18 +00:00
Steve Anton
4af95849f5 Always include the MID RTP header extension on every packet when configured
This removes the optimization that would stop sending the MID RTP
header extension when an RTCP report block is received. The old
implementation was not flexible enough for the API, and making
those changes is too involved at this time as we need this to work
now to unblock other work.

Bug: webrtc:4050
Change-Id: I099f8e9047a40993d93bcda9164eb82fdf810387
Reviewed-on: https://webrtc-review.googlesource.com/67192
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22776}
2018-04-06 18:11:22 +00:00
Sebastian Jansson
f2e3e7a25a Removed observer from probe controller.
Replacing observer interface with polling for pending probe clusters.
The purpose is to make it easier to reason about and control side
effects and to prepare for a similar change in the network controller
interface.

Bug: webrtc:8415
Change-Id: I8101cfda22e640a8e0fa75f3f6e63876db826a89
Reviewed-on: https://webrtc-review.googlesource.com/66881
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22775}
2018-04-06 16:13:37 +00:00
Karl Wiberg
5817d3dfaa AudioCodingModule::Create(): Require caller to supply an AudioDecoderFactory
So that we don't have to be capable of creating one ourselves, which
requires a dependency on the audio decoders.

BUG=webrtc:5801, webrtc:8396

Change-Id: I80749ec3b86cba73994307046d05964f59167d44
Reviewed-on: https://webrtc-review.googlesource.com/18440
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22774}
2018-04-06 15:10:27 +00:00
Alessio Bazzica
d31843e436 rtc::MsanUninitialized to mark a trivially copiable object as uninitialized
Setting a default value for a class members prevents memory sanitizer
to behave correctly and may confuse the reader.
Instead, one should use rtc::MsanUninitialized, which creates an object of
a given type and marks its memory as uninitialized.
This prevents issues in production (due to uninitialized memory) and
allows MemorySantizier to catch invalid access patterns.

Bug: webrtc:8762
Change-Id: I74c79caa9c19ea85708e89e24bc5516c4d9d12a1
Reviewed-on: https://webrtc-review.googlesource.com/52342
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22773}
2018-04-06 14:57:02 +00:00
Autoroller
a348cfdf04 Roll chromium_revision 08d2ef4b27..e34f08fadd (548658:548765)
Change log: 08d2ef4b27..e34f08fadd
Full diff: 08d2ef4b27..e34f08fadd

Changed dependencies:
* src/base: 813f7d7b10..137e0ff7db
* src/build: f73e9296a2..d1cd744829
* src/buildtools: 3748a2a908..10d701fce5
* src/ios: 4b7fedd56d..b279f6c9e7
* src/testing: 5795cb6d0b..2fd75a2bca
* src/third_party: 21f8829821..69379761e9
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/7b821dff59..aaeb23e97c
* src/third_party/depot_tools: 2a5f70cc06..1118a2193b
* src/tools: 581251d3c7..fc9dd22ded
DEPS diff: 08d2ef4b27..e34f08fadd/DEPS

No update to Clang.

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

Change-Id: I85d0f067b3c3b09e3edd2696b868f77cc27f2603
Reviewed-on: https://webrtc-review.googlesource.com/67323
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22772}
2018-04-06 14:22:22 +00:00
Jonas Olsson
18f151a582 Remove stringstream usages from the APM
Bug: webrtc:8982
Change-Id: Icdbf7ec8d12a40efba9859f5fdf9953683e603c1
Reviewed-on: https://webrtc-review.googlesource.com/67060
Commit-Queue: Jonas Olsson <jonasolsson@webrtc.org>
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22771}
2018-04-06 14:17:03 +00:00
Mirko Bonadei
d93d01ef63 Lowercase all Windows headers in modules/video_capture.
Bug: None
Change-Id: I962df0d74741d0982ea54e402285a40741a0e94e
Reviewed-on: https://webrtc-review.googlesource.com/67201
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22770}
2018-04-06 13:28:23 +00:00
Alessio Bazzica
e3d522dd6b Revert "Floating-point exception observer for unit tests"
This reverts commit 3fb3939896f6270d48aff34eee2946bd7661bd63.

Reason for revert: Downstream projects failures.

Original change's description:
> Floating-point exception observer for unit tests
> 
> This CL adds a simple tool that let a unit test fail if a floating
> point exception occurs. It is possible to focus on specific exceptions.
> Note that FloatingPointExceptionObserver is only effective in debug
> mode. For this reason, the related unit tests only run in debug mode.
> Plus, due to some platform-specific limitations, not all the floating
> point exceptions are available on Android.
> 
> Bug: webrtc:8948
> Change-Id: I0956e27f2f3aa68771dd647169fba7968ccbd771
> Reviewed-on: https://webrtc-review.googlesource.com/58097
> Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
> Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22768}

TBR=phoglund@webrtc.org,alessiob@webrtc.org,kwiberg@webrtc.org

Change-Id: I0fd3d114ab4a348fd46339e98273e19c1ac1c6dc
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8948
Reviewed-on: https://webrtc-review.googlesource.com/67380
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22769}
2018-04-06 12:46:33 +00:00
Alessio Bazzica
3fb3939896 Floating-point exception observer for unit tests
This CL adds a simple tool that let a unit test fail if a floating
point exception occurs. It is possible to focus on specific exceptions.
Note that FloatingPointExceptionObserver is only effective in debug
mode. For this reason, the related unit tests only run in debug mode.
Plus, due to some platform-specific limitations, not all the floating
point exceptions are available on Android.

Bug: webrtc:8948
Change-Id: I0956e27f2f3aa68771dd647169fba7968ccbd771
Reviewed-on: https://webrtc-review.googlesource.com/58097
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22768}
2018-04-06 12:05:32 +00:00
Ilya Nikolaevskiy
634a777b9d Add RRTR parameter to media engine and pass it to video receive stream
This allows clients to enable Receiver reference time reports via
PeerConnection.

RRTR is not enabled by default but can be added to SDP string.

Bug: webrtc:9108
Change-Id: I851f0d65152875bf115553a851b839f83e3d241e
Reviewed-on: https://webrtc-review.googlesource.com/66861
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22767}
2018-04-06 11:15:12 +00:00
Sebastian Jansson
ac6475e031 Reland "Added BBR network controller."
This is a reland of 8ac9bb4d52a687b34158dc52c8c25830b23b8333

Original change's description:
> Added BBR network controller.
> 
> BBR is a congestion control method that is initially developed for TCP.
> This CL adds an implementation of BBR ported from QUIC for use with
> WebRTC. An upcoming CL enables it via a field trial.
> 
> Bug: webrtc:8415
> Change-Id: Ie4261d2e43bafa15aa928a7cadcfec256107cdbc
> Reviewed-on: https://webrtc-review.googlesource.com/39788
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Philip Eliasson <philipel@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22647}

Bug: webrtc:8415
Change-Id: I090e4116d1f470acbd64af31520654e1bd8dfcda
Reviewed-on: https://webrtc-review.googlesource.com/65200
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22766}
2018-04-06 10:30:22 +00:00
Magnus Jedvert
66f1e9eb34 Android: Add AudioDeviceModule interface and clean up implementation code
This CL introduces sdk/android/api/org/webrtc/audio/AudioDeviceModule.java,
which is the new interface for audio device modules on Android.

This CL also refactors the main AudioDeviceModule implementation, which
is sdk/android/api/org/webrtc/audio/JavaAudioDeviceModule.java and makes
it conform to the new interface. The old code used global static methods
to configure the audio device code. This CL gets rid of all that and uses
a builder pattern in JavaAudioDeviceModule instead. The only two dynamic
methods left in the interface are setSpeakerMute() and setMicrophoneMute().
Removing the global static methods allowed a significant cleanup, and e.g.
the file sdk/android/src/jni/audio_device/audio_manager.cc has been
completely removed.

The PeerConnectionFactory interface is also updated to allow passing in
an external AudioDeviceModule. The current built-in ADM is encapsulated
under LegacyAudioDeviceModule.java, which is the default for now to
ensure backwards compatibility.

Bug: webrtc:7452
Change-Id: I64d5f4dba9a004da001f1acb2bd0c1b1f2b64f21
Reviewed-on: https://webrtc-review.googlesource.com/65360
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Paulina Hensman <phensman@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22765}
2018-04-06 10:13:02 +00:00
Sebastian Jansson
3ab5c40f72 Replaced EncodeTask with lambda.
Bug: None
Change-Id: I2029fc8eeb0715a3e7ed98a937f314157acd449c
Reviewed-on: https://webrtc-review.googlesource.com/67064
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22764}
2018-04-06 09:35:43 +00:00
Sebastian Jansson
7e85d67031 Added SetClockOffset on FakeNetworkPipe.
Added functionality on the FakeNetworkPipe to introduce arbitrary
clock offsets. This offset is added to the reported receive time of
all packets. This prepares for a later CL using this to test correction
of receive time stamps.

Bug: webrtc:9054
Change-Id: I811b3aa8359bc917f59443088d8a418368242db9
Reviewed-on: https://webrtc-review.googlesource.com/64726
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22763}
2018-04-06 09:02:12 +00:00
Sergey Silkin
645e2e0a29 Handle per-layer frame drops.
Pass base layer frame to upper layer decoder if inter-layer prediction
is enabled and encoder dropped upper layer.

Bug: none
Change-Id: I4d13790caabd6469fc0260d8c0ddcb3dabbfb86e
Reviewed-on: https://webrtc-review.googlesource.com/65980
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22762}
2018-04-06 08:40:22 +00:00
Niels Möller
d1f7eb6e83 Postpone setting of CpuOveruseOptions.
This will enable changing thresholds when switching between hardware
and software encoders. It is also a partial revert of
https://webrtc-review.googlesource.com/33340: construction of the
OveruseFrameDetector is still in VideoSendStream, but configuration is
moved back to VideoStreamEncoder.

Longer term, information about HW vs SW, or generally, about resources
consumed by the encoder, should be passed in the per-frame callbacks
to OveruseFrameDetector, and then the CpuOveruseOptions could move
back to construction time.

Bug: webrtc:8504, webrtc:8830
Change-Id: I44577519d4e05356730cac9bd9ae3c74bfc17ed7
Reviewed-on: https://webrtc-review.googlesource.com/65163
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22761}
2018-04-06 08:34:32 +00:00
Seth Hampson
83d676bd15 Bug fix for applying a remote description twice without stream IDs.
A downstream bug ocurred because of a lack of symmetry when adding and
removing a remote sender in Plan B that specifies SSRCs, but doesn't
specify stream IDs. The issue when the first remote description is
applied "default" for the stream ID on the remote sender, but the
second time it's applied the current remote sender's "default" stream
ID does not match the new remote description's empty stream ID. This
was incorrectly interpreted as a new remote sender (which removed/added
the sender).

Bug: webrtc:7933
Change-Id: I87191b9e887b3450ef15111b5e867023c723a86e
Reviewed-on: https://webrtc-review.googlesource.com/67191
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Noah Richards <noahric@chromium.org>
Commit-Queue: Seth Hampson <shampson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22760}
2018-04-06 05:32:24 +00:00
Autoroller
780dc38e41 Roll chromium_revision 0c62dce191..08d2ef4b27 (548550:548658)
Change log: 0c62dce191..08d2ef4b27
Full diff: 0c62dce191..08d2ef4b27

Changed dependencies:
* src/base: f944f680e2..813f7d7b10
* src/build: 7f8536efdc..f73e9296a2
* src/ios: 3c529657c9..4b7fedd56d
* src/testing: db34fdc3f7..5795cb6d0b
* src/third_party: 92a57aff9a..21f8829821
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/883d59ef70..7b821dff59
* src/third_party/ffmpeg: dee9308475..f34a90b210
* src/third_party/openmax_dl: 63d8cf4708..59265e0e91
* src/tools: f4c0faebea..581251d3c7
DEPS diff: 0c62dce191..08d2ef4b27/DEPS

No update to Clang.

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

Change-Id: I01cbaac6d095e7fc3f07bfce171c1d7870d8d647
Reviewed-on: https://webrtc-review.googlesource.com/67195
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22759}
2018-04-06 04:26:54 +00:00
Benjamin Wright
19aab2ee7c Refactor OpenSSLSessionCache out of OpenSSLAdapterFactory.
This changeset refactors the OpenSSLSessionCache out of the Factory. Instead of
directly injecting a pointer to the factory to each OpenSSLAdapter instead just
a pointer to the OpenSSLSessionCache is submitted which the Factory is the sole
owner of. This provides a cleaner dependency injection interface and allows the
OpenSSLSessionCache to be tested independently of the factory that uses it. It
also allows for the factories role to be more clearly defined allowing for
additional dependency injection in future updates.

This change also removes the habit of having OpenSSL typedefs around certain
functions and instead uses the standardised ossl_typ.h header which contains
these typedefs. This makes the headers more directly tied to just what they are
responsible for doing.

Bug: webrtc:9085
Change-Id: I7938178b70acc613856139d387a1b46928dca6ad
Reviewed-on: https://webrtc-review.googlesource.com/66941
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22758}
2018-04-06 01:01:48 +00:00
Taylor Brandstetter
fd350d74ee By default, don't use SRTP_AES128_CM_SHA1_32 protection profile.
This profile will now not be used unless the application explicitly
sets the flag in CryptoOptions to true. As a result, an 80-bit
authentication tag will be used instead of a 32-bit one. See bug for
more details.

Bug: webrtc:7670
Change-Id: I7c0a118fd7b1e7aac23b9eb8717099f055de0441
Reviewed-on: https://webrtc-review.googlesource.com/66600
Reviewed-by: Benjamin Wright <benwright@webrtc.org>
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22757}
2018-04-05 23:43:07 +00:00
Autoroller
c8b90aabd5 Roll chromium_revision 84e7725ab4..0c62dce191 (548410:548550)
Change log: 84e7725ab4..0c62dce191
Full diff: 84e7725ab4..0c62dce191

Changed dependencies:
* src/base: 186f6bffad..f944f680e2
* src/build: 3603094022..7f8536efdc
* src/ios: 6ee629a917..3c529657c9
* src/testing: 104e73a157..db34fdc3f7
* src/third_party: 9f10ac6c26..92a57aff9a
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/5d3d40fb88..883d59ef70
* src/tools: 4fdc9bdd32..f4c0faebea
DEPS diff: 84e7725ab4..0c62dce191/DEPS

No update to Clang.

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

Change-Id: I5a5df11f71a72c3ea43607304198b807248a4986
Reviewed-on: https://webrtc-review.googlesource.com/67186
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22756}
2018-04-05 22:41:13 +00:00
Benjamin Wright
9201d1aa8a Fixed Hostname Validation in OpenSSLAdapter.
This changeset addresses concerns about how the OpenSSLAdapter does certificate
name matching. The current approach has a number of issues which are outlined
in the bug description. The approach taken in this changeset is to use the
standard function X509_check_host which should correctly parse the wildcard
expansions and is directly supported in OpenSSL instead of attempting my own
implementation. This changeset uses this as an opportunity to add additional
parameter checking and refactoring logging code out of the main code path.

Bug: webrtc:8888
Change-Id: Iaffe1daddcd52193ba674489f613ce8515b81e91
Reviewed-on: https://webrtc-review.googlesource.com/65022
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Emad Omara <emadomara@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22755}
2018-04-05 21:23:20 +00:00
Seth Hampson
5150ee40f4 Changing MTU size for SCTP socket options.
With the latest usrsctp roll, the MTU value you provide is the space
avaiable for chunks in the packet. We previously specified this to be the
MTU for the entire SCTP packet, so we were logging errors when the SCTP
packets were 12 bytes larger than expected (the size of the SCTP header).
This fix updates our MTU specified to account for the SCTP header size
as well.

Bug: webrtc:9082
Change-Id: Id3bfa839d4e7662230111ebbdf33bd81ccdc7cf4
Reviewed-on: https://webrtc-review.googlesource.com/66943
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Seth Hampson <shampson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22754}
2018-04-05 20:08:05 +00:00
Fabrice de Gans-Riberi
09a6cd5541 Prepare for |is_posix| switch in the Fuchsia build
|is_posix| will be switched to false for Fuchsia, this is a preliminary change.

Bug: chromium:812974
Change-Id: I3bfda3e056ad1e5229834286ce5d095d9204a428
Reviewed-on: https://webrtc-review.googlesource.com/65782
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Fabrice de Gans-Riberi <fdegans@chromium.org>
Cr-Commit-Position: refs/heads/master@{#22753}
2018-04-05 17:25:39 +00:00
Sami Kalliomäki
1641ca3dd3 Split out video targets from //sdk/android:base_java.
Bug: webrtc:9048
Change-Id: Icda0fabf41610f99254d244e0b11d321eee345f7
Reviewed-on: https://webrtc-review.googlesource.com/65120
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22752}
2018-04-05 16:02:09 +00:00
Niels Möller
259a497632 Reland "Reland "Move rtp-specific config out of EncoderSettings.""
This reverts commit 6c2c13af06b32778b86950681758a7970d1c5d9e.

Reason for revert: Intend to investigate and fix perf problems.

Original change's description:
> Revert "Reland "Move rtp-specific config out of EncoderSettings.""
> 
> This reverts commit 04dd1768625eb2241d1fb97fd0137897e703e266.
> 
> Reason for revert: Regression in ramp up perf tests.
> 
> Original change's description:
> > Reland "Move rtp-specific config out of EncoderSettings."
> >
> > This is a reland of bc900cb1d1810fcf678fe41cf1e3966daa39c88c
> >
> > Original change's description:
> > > Move rtp-specific config out of EncoderSettings.
> > >
> > > In VideoSendStream::Config, move payload_name and payload_type from
> > > EncoderSettings to Rtp.
> > >
> > > EncoderSettings now contains configuration for VideoStreamEncoder only,
> > > and should perhaps be renamed in a follow up cl. It's no longer
> > > passed as an argument to VideoCodecInitializer::SetupCodec.
> > >
> > > The latter then needs a different way to know the codec type,
> > > which is provided by a new codec_type member in VideoEncoderConfig.
> > >
> > > Bug: webrtc:8830
> > > Change-Id: Ifcc691aef1ee6a95e43c0452c5e630d92a511cd6
> > > Reviewed-on: https://webrtc-review.googlesource.com/62062
> > > Commit-Queue: Niels Moller <nisse@webrtc.org>
> > > Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> > > Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> > > Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> > > Cr-Commit-Position: refs/heads/master@{#22532}
> >
> > Bug: webrtc:8830
> > Change-Id: If88ef7d57cdaa4fae3c7b2a97ea5a6e1b833e019
> > Reviewed-on: https://webrtc-review.googlesource.com/63721
> > Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> > Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> > Commit-Queue: Niels Moller <nisse@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#22595}
> 
> TBR=brandtr@webrtc.org,magjed@webrtc.org,nisse@webrtc.org,stefan@webrtc.org
> 
> Bug: webrtc:8830,chromium:827080
> Change-Id: Iaaf146de91ec5c0d741b8efdf143f7e173084fef
> Reviewed-on: https://webrtc-review.googlesource.com/65520
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22677}

TBR=brandtr@webrtc.org,magjed@webrtc.org,nisse@webrtc.org,stefan@webrtc.org

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

Bug: webrtc:8830, chromium:827080
Change-Id: I9b62987bf5daced90dfeb3ebb6739c80117c487f
Reviewed-on: https://webrtc-review.googlesource.com/66862
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22751}
2018-04-05 14:30:09 +00:00
Autoroller
70ceb086ca Roll chromium_revision 5f93b7aed5..84e7725ab4 (548223:548410)
Change log: 5f93b7aed5..84e7725ab4
Full diff: 5f93b7aed5..84e7725ab4

Changed dependencies:
* src/base: 966813f672..186f6bffad
* src/build: cfbbe4c81e..3603094022
* src/ios: 45b9b97bb9..6ee629a917
* src/testing: 17ad2a7a3a..104e73a157
* src/third_party: de0d19f4a0..9f10ac6c26
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/a13166acf0..5d3d40fb88
* src/third_party/depot_tools: a1df57cdc6..2a5f70cc06
* src/third_party/ffmpeg: 5baad93258..dee9308475
* src/tools: 5e201d64c6..4fdc9bdd32
DEPS diff: 5f93b7aed5..84e7725ab4/DEPS

No update to Clang.

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

Change-Id: I50ad48ccb7bb9aab26a8a6e335347537436301ae
Reviewed-on: https://webrtc-review.googlesource.com/67122
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22750}
2018-04-05 14:24:09 +00:00
Oleh Prypin
7272606142 Opt out of "Migrate the Android Support Lib to android_deps".
(to unblock DEPS roll)

Bug: chromium:794210, webrtc:9118
TBR: phoglund@webrtc.org
Change-Id: I7a97f1493b970f923f799a9e9e6fe9e924ad1dcf
Reviewed-on: https://webrtc-review.googlesource.com/67061
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22749}
2018-04-05 13:40:53 +00:00
Karl Wiberg
338f58d95c iSAC decoder: Don't read past the end of the buffer of encoded bytes
Bug: chromium:825524
Change-Id: Iff40a9fd62a34474af71b51dd3831a16412fbf3b
Reviewed-on: https://webrtc-review.googlesource.com/66361
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22748}
2018-04-05 13:22:53 +00:00
philipel
844876d050 VideoStreamDecoderImpl implementation, part 3.
This CL implements the functions related to decoding.

Bug: webrtc:8909
Change-Id: Iefa3c1565a9b9ae93f14992b4a1cca141b7c5193
Reviewed-on: https://webrtc-review.googlesource.com/66403
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22747}
2018-04-05 12:49:13 +00:00