Commit Graph

21422 Commits

Author SHA1 Message Date
3359bd191a Roll chromium_revision b6ed4eb6cc..dba3f95458 (539140:539260)
Change log: b6ed4eb6cc..dba3f95458
Full diff: b6ed4eb6cc..dba3f95458

Changed dependencies:
* src/base: 446a929a89..451004b61c
* src/ios: 67cbecc7b2..2236bd9b80
* src/testing: cc1b881acb..c0916443a8
* src/third_party: cc1987e49a..870fe6f8e2
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/534191e506..4607515962
* src/tools: 82f3e5546b..19b34301e1
DEPS diff: b6ed4eb6cc..dba3f95458/DEPS

No update to Clang.

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

Change-Id: I8fbd152de23b3b4b49e2ff912089f8637a50861e
Reviewed-on: https://webrtc-review.googlesource.com/57900
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22190}
2018-02-26 21:48:12 +00:00
72eeaa3fe4 Revert "Choose between APM-AGC-Limiter and Apm-AGC2-fixed-gain_controller."
This reverts commit bd7b461f16b53363e2c510893d8d3aade5737f3a.

Reason for revert: Broke the internal project. The issue maybe related to the apm_debug_dump configuration.

Original change's description:
> Choose between APM-AGC-Limiter and Apm-AGC2-fixed-gain_controller.
> 
> The webrtc::AudioMixer uses a limiter component. This CL changes the
> APM-AGC limiter to the APM-AGC2 limiter though a Chrome field trial.
> 
> The new limiter has a float interface. Since we're moving to it, we
> now mix in floats as well. After this CL the mixer will support two
> limiters. The limiters have different interfaces and need different
> processing steps. Because of that, we make (rather big) changes to the
> control flow in FrameCombiner. For a short while, we will mix in
> deinterleaved floats when using any limiter.
> 
> NOTRY=true
> 
> Bug: webrtc:8925
> Change-Id: Ie296c2b0d94f3f0078811a2a58f6fbf0f3e6e4a8
> Reviewed-on: https://webrtc-review.googlesource.com/56141
> Commit-Queue: Alex Loiko <aleloi@webrtc.org>
> Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22185}

TBR=gustaf@webrtc.org,aleloi@webrtc.org

Change-Id: I3dd1a2b1fca32c4dd046e6fc325744079e3ac5ca
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8925
Reviewed-on: https://webrtc-review.googlesource.com/57940
Reviewed-by: Zhi Huang <zhihuang@webrtc.org>
Commit-Queue: Zhi Huang <zhihuang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22189}
2018-02-26 21:03:44 +00:00
9f79a92e26 Roll chromium_revision 3768946207..b6ed4eb6cc (539034:539140)
Change log: 3768946207..b6ed4eb6cc
Full diff: 3768946207..b6ed4eb6cc

Changed dependencies:
* src/base: 91b03cbd85..446a929a89
* src/ios: 802a580739..67cbecc7b2
* src/testing: b9951f21f8..cc1b881acb
* src/third_party: 7f8f5e62b5..cc1987e49a
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/8a42ad3cb1..534191e506
* src/tools: ccc4e33a02..82f3e5546b
DEPS diff: 3768946207..b6ed4eb6cc/DEPS

No update to Clang.

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

Change-Id: I747d1c027cf3e118cab92eebfbc9eb7103f0d5bf
Reviewed-on: https://webrtc-review.googlesource.com/57702
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22188}
2018-02-26 16:18:01 +00:00
278aa42718 Revert "Some cleanup for the logging code:"
This reverts commit 9ecdcdf2b527bdb1d097782d92817c9866d6d18b.

Reason for revert: Breaks downstream project.

Original change's description:
> Some cleanup for the logging code:
> 
> * Only include 'tag' for Android. Before there was an
>   extra std::string variable per log statement for all
>   platforms.
> * Remove unused logging macro for Windows and 'module' ctor argument.
> * Move httpcommon code out of logging and to where it's used.
> 
> Change-Id: I347805d3df2cee2840c0d2eef5bfefaff1cdbf37
> Bug: webrtc:8928
> Reviewed-on: https://webrtc-review.googlesource.com/57183
> Reviewed-by: Jonas Olsson <jonasolsson@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Commit-Queue: Tommi <tommi@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22184}

TBR=kwiberg@webrtc.org,tommi@webrtc.org,jonasolsson@webrtc.org

Change-Id: I37a13d766fbdee2adb7f45231cf8be6b2b456bec
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8928
Reviewed-on: https://webrtc-review.googlesource.com/57720
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22187}
2018-02-26 14:54:52 +00:00
9e24cb344a Add move constructors and assignment operators to RtpPacketReceived and RtpPacketToSend. Since both are non-POD now, move would fall back to copy without these.
Bug: webrtc:8935
Change-Id: I270e7daf68aa00411ad5ae00da739292600043f2
Reviewed-on: https://webrtc-review.googlesource.com/57621
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Dino Radaković <dinor@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22186}
2018-02-26 13:25:50 +00:00
bd7b461f16 Choose between APM-AGC-Limiter and Apm-AGC2-fixed-gain_controller.
The webrtc::AudioMixer uses a limiter component. This CL changes the
APM-AGC limiter to the APM-AGC2 limiter though a Chrome field trial.

The new limiter has a float interface. Since we're moving to it, we
now mix in floats as well. After this CL the mixer will support two
limiters. The limiters have different interfaces and need different
processing steps. Because of that, we make (rather big) changes to the
control flow in FrameCombiner. For a short while, we will mix in
deinterleaved floats when using any limiter.

NOTRY=true

Bug: webrtc:8925
Change-Id: Ie296c2b0d94f3f0078811a2a58f6fbf0f3e6e4a8
Reviewed-on: https://webrtc-review.googlesource.com/56141
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22185}
2018-02-26 12:40:00 +00:00
9ecdcdf2b5 Some cleanup for the logging code:
* Only include 'tag' for Android. Before there was an
  extra std::string variable per log statement for all
  platforms.
* Remove unused logging macro for Windows and 'module' ctor argument.
* Move httpcommon code out of logging and to where it's used.

Change-Id: I347805d3df2cee2840c0d2eef5bfefaff1cdbf37
Bug: webrtc:8928
Reviewed-on: https://webrtc-review.googlesource.com/57183
Reviewed-by: Jonas Olsson <jonasolsson@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22184}
2018-02-26 12:09:50 +00:00
151be2dffc comfort_noise_decoder_fuzzer: limit the fuzzer input size to avoid timeout
The length of the fuzzer input can sometimes be really long (more than
1000000 bytes), and this take a very long time to execute. Typically,
the fuzzer times out instead. This change limits the used length of
the fuzzer to 200000 bytes.

NOTRY=TRUE

Bug: chromium:802149
Change-Id: Ia9d2f080602bba8ff70c5f0575bb9ecfa99c537c
Reviewed-on: https://webrtc-review.googlesource.com/57581
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22183}
2018-02-26 10:52:30 +00:00
06fa1539f8 neteq_rtp_fuzzer: limit the fuzzer input size to avoid timeout
The length of the fuzzer input can sometimes be really long (more than
600000 bytes), and this take a very long time to execute. Typically,
the fuzzer times out instead. This change limits the used length of
the fuzzer to 100000 bytes.

NOTRY=TRUE

Bug: chromium:802193
Change-Id: Id32174611fadb480f4e2c6b4f553a2ba0fa5b493
Reviewed-on: https://webrtc-review.googlesource.com/57580
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22182}
2018-02-26 10:49:20 +00:00
2a6d864264 neteq_signal_fuzzer: limit the fuzzer input size to avoid timeout
The length of the fuzzer input can sometimes be really long (more than
600000 bytes), and this take a very long time to execute. Typically,
the fuzzer times out instead. This change limits the used length of
the fuzzer to 100000 bytes.

NOTRY=TRUE

Bug: chromium:802245
Change-Id: Ibe02b6de932d900408f870d9ba440b7b8e08dc0e
Reviewed-on: https://webrtc-review.googlesource.com/57180
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22181}
2018-02-26 10:42:30 +00:00
8b84365c81 NetEq: Guarding against reading outside of memory
In rare and pathological circumstances, it could happen that the input
length to the merge function is very short. This CL will avoid one of
the problems with out-of-bounds read that could result from this.

Bug: chromium:799499
Change-Id: I6bde105ae88f9d130764b6dfb3d25443d07e214b
Reviewed-on: https://webrtc-review.googlesource.com/57582
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22180}
2018-02-26 09:30:00 +00:00
132e28e6aa Add thread checks to ReceiveStatisticsProxy that reflect
design comments.

Change-Id: I4dd2b0be006440500cc7744de0e952263531ccd2
Bug: webrtc:8929
Reviewed-on: https://webrtc-review.googlesource.com/54940
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22179}
2018-02-26 09:21:00 +00:00
fdf50a6b14 Roll chromium_revision 29f6e2e8b6..3768946207 (538933:539034)
Change log: 29f6e2e8b6..3768946207
Full diff: 29f6e2e8b6..3768946207

Changed dependencies:
* src/base: 32ea59df65..91b03cbd85
* src/build: b1d6c28b4a..df4bee0323
* src/ios: 377cd538f5..802a580739
* src/testing: 438a3381cc..b9951f21f8
* src/third_party: 78ac06f599..7f8f5e62b5
* src/third_party/depot_tools: f9648b5c7c..f438ff743a
* src/third_party/ffmpeg: 9ed3340936..9ca66eafaf
* src/tools: 63a486a5e6..ccc4e33a02
DEPS diff: 29f6e2e8b6..3768946207/DEPS

No update to Clang.

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

Change-Id: I10c1396f2dd4b0b07006b70c825c223fbeac9339
Reviewed-on: https://webrtc-review.googlesource.com/57459
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22178}
2018-02-25 06:18:16 +00:00
c392866d86 Implement certificate chain stats.
There was an implementation, but it relied on SSLCertificate::GetChain,
which was never implemented. Except in the fake certificate classes
used by the stats collector tests, hence the tests were passing.

Instead of implementing GetChain, we decided (in
https://webrtc-review.googlesource.com/c/src/+/6500) to add
methods that return a SSLCertChain directly, since it results in a
somewhat cleaner object model.

So this CL switches everything to use the "chain" methods, and gets
rid of the obsolete methods and member variables.

Bug: webrtc:8920
Change-Id: Ie9d7d53654ba859535462521b54c788adec7badf
Reviewed-on: https://webrtc-review.googlesource.com/56961
Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Zhi Huang <zhihuang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22177}
2018-02-24 00:44:06 +00:00
29ef9f066c Roll chromium_revision 1cf758f803..29f6e2e8b6 (538618:538933)
Change log: 1cf758f803..29f6e2e8b6
Full diff: 1cf758f803..29f6e2e8b6

Changed dependencies:
* src/base: 61c367532a..32ea59df65
* src/build: 3834707f87..b1d6c28b4a
* src/ios: 836bde6a10..377cd538f5
* src/testing: 2a421a40d7..438a3381cc
* src/third_party: 8ccff6e774..78ac06f599
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/085955c567..672f6fc248
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/aa397a9110..8a42ad3cb1
* src/third_party/openmax_dl: b611996df3..63d8cf4708
* src/tools: bb161327b3..63a486a5e6
DEPS diff: 1cf758f803..29f6e2e8b6/DEPS

No update to Clang.

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

Change-Id: I54e88477c0577dca3ab22f2440ed142f0ce01935
Reviewed-on: https://webrtc-review.googlesource.com/57280
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22176}
2018-02-23 23:23:26 +00:00
88f6decad7 Multiplex Codec Bug Fix: Padding Needed For H264
This CL fixes the bug that we must have some padding for H264 codec
when used in Multiplex encoder/decoder, otherwise H264 decoder will
crash.

And this CL fixes a bug that potential infinite loop exists in
MultiplexEncoderAdapter

Bug: webrtc:8921
Change-Id: I4124579c31ee69f72e29d118378aa1f8b3f05eb4
Reviewed-on: https://webrtc-review.googlesource.com/56960
Commit-Queue: Qiang Chen <qiangchen@chromium.org>
Reviewed-by: Emircan Uysaler <emircan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22175}
2018-02-23 18:15:46 +00:00
1807d57ab8 Add application_data field(s) to RtpPacketToSend and PacketOptions.
Pass pointer to application_data from RtpPacketToSend arriving via RtpSender::SendToNetwork through to Transport::SendRtp, in PacketOptions.

Bug: webrtc:8906
Change-Id: Ie75013ed472710f4efcfbcc160e46a6119a1f41d
Reviewed-on: https://webrtc-review.googlesource.com/55600
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Dino Radaković <dinor@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22174}
2018-02-23 17:20:46 +00:00
f35c6667d6 Separate build targets for aec3 and aec3_unittests
Bug: webrtc:8844
Change-Id: Id6a98eae19aaedc87c3f402a004f58f0290d5c28
Reviewed-on: https://webrtc-review.googlesource.com/56580
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22173}
2018-02-23 13:16:16 +00:00
225c787c6e Move default thresholds from QualityScaler to encoders.
Overriding implementations of VideoEncoder::GetScalingSettings that
want to enable quality scaling must now provide the thresholds.

Bug: webrtc:8830
Change-Id: I75c47cb56ac1b9cf77401684980b3167e485f51c
Reviewed-on: https://webrtc-review.googlesource.com/46622
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22172}
2018-02-23 13:12:36 +00:00
12fb17035c Added some margin to ramp down target in perf test.
The bit rate target for ramp down in was set equal to the simulated
capacity. Expected behavior of an estimator is to achieve an estimate
near the true value but not always the exact value. Adding a margin
allows from noise in the measurement while still testing for the desired
behavor.

Bug: webrtc:8878
Change-Id: I18fb6c9704bf08e58ee08ce6c85abee2eaa08356
Reviewed-on: https://webrtc-review.googlesource.com/57080
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22171}
2018-02-23 12:15:15 +00:00
93db0d821a Whitespace change
TBR: phoglund@webrtc.org
No-Try: True
Bug: None
Change-Id: Ia72aca5d94a7a8eec0ebb56a3a87d7ad0056a672
Reviewed-on: https://webrtc-review.googlesource.com/56780
Commit-Queue: Oleh Prypin <cq-testing@webrtc.org>
Reviewed-by: Oleh Prypin <cq-testing@webrtc.org>
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22170}
2018-02-23 10:34:16 +00:00
d60d5c4479 Improve Java video codec error handling.
FALLBACK_SOFTWARE is now treated as a critical error and results in
immediate fallback to software coding if available. If ERROR is
returned, codec reset is attempted. If that fails, software fallback
is used.

Bug: b/73498933
Change-Id: I7fe163efd09e6f27c72491e9595954ddc59b1448
Reviewed-on: https://webrtc-review.googlesource.com/54901
Reviewed-by: Alex Glaznev <glaznev@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22169}
2018-02-23 09:07:36 +00:00
99f52f83e4 Make decoder software fallback sticky.
In practice, we never want to go back to HW decoding after deciding to
start decoding with SW codecs. This allows simplifying the code in the
fallback wrapper and makes it easier to implement HW codecs.

HW decoder is also now released when software fallback is activated
because it will not be used again. This could free up some resources.

Bug: b/73498933
Change-Id: Ibea4e32fce0c605179b649c8ac2744031799f3ee
Reviewed-on: https://webrtc-review.googlesource.com/55263
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Alex Glaznev <glaznev@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22168}
2018-02-23 09:03:41 +00:00
a2e3ab1fca Conditionally include real_fourier_openmax.h.
The real_fourier_openmax.h header should only be included when
RTC_USE_OPENMAX_DL is defined.

Bug: None
Change-Id: I70a9c7745e2c24d15c7bb510d432638a2c70eef9
Reviewed-on: https://webrtc-review.googlesource.com/56841
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22167}
2018-02-23 09:02:36 +00:00
c33c0fcbf7 Moved pacer and congestion thread from call.
Moving the module process thread responsible for running the pacer
and the send side congestion controller to RtpTransportControllerSend
since it already owns the pacer and the congestion controller. They
are also moved to a common thread rather than using two separate
threads.

As part of the move, the remote bitrate estimator has been moved to the
common process thread in the Call class. Previously it was run on the
removed pacer thread.

Bug: webrtc:8415
Change-Id: I4322eef30d8b97b9611f33af7e560703b710d232
Reviewed-on: https://webrtc-review.googlesource.com/55700
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22166}
2018-02-23 08:53:37 +00:00
604ab1913f Roll chromium_revision eb957d794e..1cf758f803 (538454:538618)
Change log: eb957d794e..1cf758f803
Full diff: eb957d794e..1cf758f803

Changed dependencies:
* src/base: 56b877152f..61c367532a
* src/build: 6b38109443..3834707f87
* src/ios: 8673dc43ed..836bde6a10
* src/testing: 6a0320bd10..2a421a40d7
* src/third_party: fa77ac94fc..8ccff6e774
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/922be470d3..aa397a9110
* src/third_party/depot_tools: 543dc3e4c3..f9648b5c7c
* src/tools: 7dae28672a..bb161327b3
DEPS diff: eb957d794e..1cf758f803/DEPS

No update to Clang.

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

Change-Id: I05eacfa546406dbd6ba68b7839219b76307acece
Reviewed-on: https://webrtc-review.googlesource.com/57020
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22165}
2018-02-23 07:43:57 +00:00
e818b6ef7f Create the JsepTransportController and JsepTransport2.
JsepTransportController process the entire SDP and  handle the RTCP-mux,
SRTP setup, BUNDLE related logic internally. This will replace the current
TransportController.

JsepTransport2 is used by the JsepTransportController which processes the
transport part of SDP and owns the DtlsTransport created internally.
JsepTransport2 will replace JsepTransport and be renamed eventually.

Bug: webrtc:8587
Change-Id: Ib02dfa52fe9b7a5b8b132afcc8e4363eb8bd9cf4
Reviewed-on: https://webrtc-review.googlesource.com/48841
Commit-Queue: Zhi Huang <zhihuang@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22164}
2018-02-23 00:13:45 +00:00
fbf3bce431 Reland "Reduce locking in VideoReceiver and check the threading model."
This is a reland of c75f1e45093a8d5cc62937c7708b87aa5c5bf0b0.

Original change's description:
> Reduce locking in VideoReceiver and check the threading model.
>
> Note: This is a subset of code that was previously reviewed here:
>   - https://codereview.webrtc.org/2764573002/
>
> * Added two notification methods, DecoderThreadStarting() and DecoderThreadStopped()
>   * Allows us to establish a period when the decoder thread is not running and it is
>     safe to modify variables such as callbacks, that are only read when the decoder
>     thread is running.
>   * Allows us to DCHECK thread guarantees/correctness.
>   * Allows synchronizing callbacks from the module process thread and have them only
>     active while the decoder thread is running.
>   * The above, allows us to establish two modes for the thread,
>     single-threaded-mutable and multi-threaded-const.
>   * Using that knowledge, we can remove |receive_crit_| as well as locking for a
>     number of member variables.
> * Removed |VCMFrameBuffer _frameFromFile| (unused).
> * Clean up several of my TODOs
>
> Bug: webrtc:7361, chromium:695438
> Change-Id: Id0048ee9624f76103c088d02825eb5c0d6c8913c
> Reviewed-on: https://webrtc-review.googlesource.com/55000
> Commit-Queue: Tommi <tommi@webrtc.org>
> Reviewed-by: Philip Eliasson <philipel@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22133}

Bug: webrtc:7361, chromium:695438
Change-Id: I32e1dc6c62cb30ad96e6366106f39fe415de49f1
Tbr: philipel@webrtc.org
Reviewed-on: https://webrtc-review.googlesource.com/56803
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22163}
2018-02-22 18:03:45 +00:00
ee52562e32 Roll chromium_revision 37c4da4be1..eb957d794e (538199:538454)
Change log: 37c4da4be1..eb957d794e
Full diff: 37c4da4be1..eb957d794e

Changed dependencies:
* src/base: 6afa983e37..56b877152f
* src/build: 1e64514e9a..6b38109443
* src/ios: 1f2dde49c3..8673dc43ed
* src/testing: b4bd3e1fde..6a0320bd10
* src/third_party: d5ab621035..fa77ac94fc
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/3994526859..922be470d3
* src/third_party/depot_tools: b422e687a5..543dc3e4c3
* src/tools: 0f9e34ac82..7dae28672a
DEPS diff: 37c4da4be1..eb957d794e/DEPS

Clang version changed 324578:325667
Details: 37c4da4be1..eb957d794e/tools/clang/scripts/update.py

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

Change-Id: Ic8298ff407d2d1cf0c5cbc8a955ee16b9fd96476
Reviewed-on: https://webrtc-review.googlesource.com/56822
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22162}
2018-02-22 17:45:25 +00:00
ef9daee934 Using mock transport controller in audio unit tests.
Using a mock of rtp transport controller send in audio send stream unit
tests. This reduces the dependencies and makes the tests more focused
on testing the functionality of audio send stream itself.

Bug: webrtc:8415
Change-Id: Ia8d9cf47d93decc74b10ca75a6771f39df658dc2
Reviewed-on: https://webrtc-review.googlesource.com/56600
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22161}
2018-02-22 17:32:25 +00:00
89c79383e4 Delete assumption TimeMicrosToNtp can match RealTimeClock
Flakiness of the test reveals this assumption doesn't hold and shouldn't be rely on.
Currently there is no code that use it. Plans to rely on it silently adjusted.

Bug: webrtc:8610
Change-Id: Id24f2a36c8fb188b518f5301c4b278836885d140
Reviewed-on: https://webrtc-review.googlesource.com/56860
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22160}
2018-02-22 17:20:25 +00:00
6ce03592c6 Adding missing ASM dependencies.
Bug: webrtc:8603
Change-Id: I7b417759fcdd01879029afcc5afc50300016fd72
Reviewed-on: https://webrtc-review.googlesource.com/56840
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22159}
2018-02-22 16:58:38 +00:00
e7c891f953 Renamed FrameObject to EncodedFrame.
The plan is to:
 1. Move FrameObject to api/video.
 2. Rename FrameObject to EncodedFrame.
 3. Move EncodedFrame out of the video_coding namespace.

This is the 2nd CL.

Bug: webrtc:8909
Change-Id: I5e76a0a3b306156b8bc1de67834b4adf14bebef9
Reviewed-on: https://webrtc-review.googlesource.com/56182
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22158}
2018-02-22 16:12:48 +00:00
a5c735f5d9 Fixed observer unsubscribtion in RTCRtpReceiver.
Missing unsubscribtion caused accessing invalid pointer inside
AudioRtpReceiver::OnFirstPacketReceived on short-lived
RTCRtpReceiver objects.

Bug: webrtc:6112
Change-Id: I5df141628e1cfd69aff59177d395c3246e1bf367
Reviewed-on: https://webrtc-review.googlesource.com/54306
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22157}
2018-02-22 16:11:38 +00:00
c66810830c Maintain audio receive stream gain across recreations
When a receive stream is created its internal Channel defaults to a
gain of 1.0. If a gain has been set for the stream, but it needs to be
recreated internally, its volume will not carry over but reset to
1.0. This CL fixes that, for now. Ideally, we'd not recreate these
streams internally.

Bug: chromium:810848
Change-Id: Ia2ce87a39f1f4d7d3596c1b5ab256b10bdbca3c3
Reviewed-on: https://webrtc-review.googlesource.com/54402
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Commit-Queue: Oskar Sundbom <ossu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22156}
2018-02-22 16:02:58 +00:00
415920b053 Return correct subtype from RTCRtpSender/Receiver track.
Bug: webrtc:8915
Change-Id: Iaa004d5d3e055cdaa08daf57b662b6711ead681d
Reviewed-on: https://webrtc-review.googlesource.com/56661
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22155}
2018-02-22 15:43:58 +00:00
35dd6cd88a Added dependencies to mock transport controller send.
Added dependencies used by MockRtpTransportControllerSend to its header
file. The mocked interface can't be used properly without those.

This prepares for later CLs utilizing the mock.

Bug: None
Change-Id: I5f8ca04032ad09810240f7c034cc628d700dbedb
Reviewed-on: https://webrtc-review.googlesource.com/56181
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22154}
2018-02-22 14:43:38 +00:00
3f06c3bf04 Change text output from VideoProcessor slightly.
Changes:
* Prefix sections with "==>" and "-->" headers.
* Add some more newlines.

Motivation: Make output more quickly parsed by humans.

BUG=webrtc:8448

Change-Id: I02118e2c25eeae3534285cfe756d8b4818997659
Reviewed-on: https://webrtc-review.googlesource.com/56120
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22153}
2018-02-22 14:32:58 +00:00
41f16bec9f Silencing warnings in audio send stream unit tests.
The unit tests for AudioSendStream was generating a lot of warnings
about "Uninteresting mock function call" on mocked objects. This is due
to the default gmock implementation being NaggyMock and there was no
NiceMock override.

With this change the mocks are replaced with NiceMock implementations
which do not output warnings for unexpected calls. This makes the error
output from the test runner much easier to visually parse to find the
actual errors in failing tests.

Bug: None
Change-Id: Ic40db78159536ddeaa72a468fc2cb3ec17386d44
Reviewed-on: https://webrtc-review.googlesource.com/56220
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22152}
2018-02-22 14:26:59 +00:00
dfde334be0 Adding SendSideCongestionControllerInterface.
This prepares for a later CL providing two implementations of
SendSideCongestionController.

Bug: webrtc:8415
Change-Id: I890dbe4b88bf609921558e03aac66b42629857c8
Reviewed-on: https://webrtc-review.googlesource.com/56700
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22151}
2018-02-22 14:19:53 +00:00
0404225d15 ClosePlatformFile() on non-Windows: Return true on success, false on failure
We already did this on Windows, but elsewhere we were returning false
on success and true on failure, because close() returns 0 on success
and -1 on failure, and we were letting that value implicitly convert
to bool.

Bug: webrtc:8719
Change-Id: I417ff207db8d1fa4cf73a49f1d53762a8066da6c
Reviewed-on: https://webrtc-review.googlesource.com/56660
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22150}
2018-02-22 14:18:49 +00:00
518716fd73 Delete left-over declarations.
The declarations of DeregisterExternalDecoder and
RegisterExternalDecoder were accidentally copied into encoder_database.h
in previous cl https://webrtc-review.googlesource.com/55562.

Bug: webrtc:8830
Change-Id: I5982d8f3e02b1a9d0305ec2b867876662bbc9ef3
Reviewed-on: https://webrtc-review.googlesource.com/56043
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22149}
2018-02-22 14:06:18 +00:00
64cf731ce4 Roll chromium_revision 2c98648a24..37c4da4be1 (538114:538199)
This CL also includes a fix in: webrtc/test/android/AndroidManifest.xml.

Change log: 2c98648a24..37c4da4be1
Full diff: 2c98648a24..37c4da4be1

Changed dependencies:
* src/base: ed313e8c6c..6afa983e37
* src/build: b734510a01..1e64514e9a
* src/ios: d48cc0d3d6..1f2dde49c3
* src/testing: 7e6cab0619..b4bd3e1fde
* src/third_party: bcdd2c72a7..d5ab621035
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/6a7c1ed24c..3994526859
* src/tools: 22c4d769bf..0f9e34ac82
DEPS diff: 2c98648a24..37c4da4be1/DEPS

No update to Clang.

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

Forward fixing the Chromium Roll.

Change-Id: If36b97067fa43dc13f43e85fca706d0b5526c3d6
Reviewed-on: https://webrtc-review.googlesource.com/56640
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22148}
2018-02-22 13:58:58 +00:00
9a03dd89e0 Removed new calls on RtpTransportControllerSend.
new is an unsafe construct, while these specific cases were properly
handled it is a code smell and using unique_ptr from the start makes the
code more obviously correct.

Bug: None
Change-Id: I2554cef8d3a8432a3ced1623292fae0adff9421d
Reviewed-on: https://webrtc-review.googlesource.com/56620
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22147}
2018-02-22 12:54:43 +00:00
5d436ac0bf Removed Die mock from MockAudioEncoder
MockAudioEncoder was calling a mocked Die function on itself in its
destructor. This outputs "Uninteresting mock function call" warning if
the Die call was not expected. This is true even if a NiceMock is used
to suppress the warnings.

The purpose of testing that the destructor is called might be to protect
against memory leaks when audio encoder ownership is transferred using a
raw pointer. However, this case is already covered by msan checks.

Bug: None
Change-Id: I0603c417b4b239027859228e05ebcf83ff5aaf18
Reviewed-on: https://webrtc-review.googlesource.com/56183
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22146}
2018-02-22 12:53:38 +00:00
5283022790 Shorten Chromium compile trybot names
Bug: chromium:808111
Change-Id: I50b1e3155c29a68230c2bebbb260284880e5b953
No-Try: True
TBR: phoglund@webrtc.org
Reviewed-on: https://webrtc-review.googlesource.com/56601
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22145}
2018-02-22 10:06:20 +00:00
39f491eb4e Moved and simplifed the AEC3 API call skew estimator and added tests
This CL moves the AEC3 API call skew estimator into a separate file.
This has the advantage that it can more easily be tested.
The CL also simplifies the code and adds unittests.

Bug: webrtc:8671
Change-Id: I19bc31ca5666cdc87a1ed14770ef20ead1b5b80d
Reviewed-on: https://webrtc-review.googlesource.com/55860
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22144}
2018-02-22 00:52:10 +00:00
352314adb8 Revert "VCMGenericDecoder threading updates for all but Android."
This reverts commit a4e71b9e7e59be21b98d63cf8cb676096d9c74b0.

Reason for revert: Breaking internal project

Original change's description:
> VCMGenericDecoder threading updates for all but Android.
> 
> * All methods now have thread checks.
> * Variable access associated with thread checkers.
> * Remove need for |rtc::CriticalSection lock_|
> 
> Since the android decoder is inherently asynchronous, and
> FrameBuffer2's decoder doesn't support posting tasks to it
> yet (for async decode completion), we need to tackle android
> separately. Once FrameBuffer2 gets changed to use a TaskQueue
> or ProcessThread, we can move Android over to delivering decoded
> frames on the right thread/queue and delete generic_decoder_android.*.
> 
> Note: This is a subset of code that was previously reviewed here:
>   - https://codereview.webrtc.org/2764573002/
> 
> Bug: webrtc:7361, webrtc:8907, chromium:695438
> Change-Id: I118609dfa5c0f0180287d8c2b6d62987b7473c5c
> Reviewed-on: https://webrtc-review.googlesource.com/55060
> Commit-Queue: Tommi <tommi@webrtc.org>
> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22119}

TBR=sakal@webrtc.org,tommi@webrtc.org

Change-Id: I3afe4671f9d06bb4a2b17e4f14c21d79f773e067
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:7361, webrtc:8907, chromium:695438
Reviewed-on: https://webrtc-review.googlesource.com/56282
Reviewed-by: Lu Liu <lliuu@webrtc.org>
Commit-Queue: Lu Liu <lliuu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22143}
2018-02-21 19:39:29 +00:00
54daa3ac4d Revert "Comment out DCHECK in dtor of VCMDecodedFrameCallback."
This reverts commit 9f016a0eb01db60c55dad640ddc03562d88cc087.

Reason for revert: Breaking internal project

Original change's description:
> Comment out DCHECK in dtor of VCMDecodedFrameCallback.
> Looking into the downstream issue now.
> 
> NoTry: true
> Tbr: ossu@webrtc.org
> Bug: webrtc:7361, webrtc:8907, chromium:695438
> Change-Id: Ib52b86cf26401c490b415b151916ec35f0716345
> Reviewed-on: https://webrtc-review.googlesource.com/56042
> Reviewed-by: Tommi <tommi@webrtc.org>
> Commit-Queue: Tommi <tommi@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22122}

TBR=ossu@webrtc.org,tommi@webrtc.org

Change-Id: I096205c1fe70131f6e1c866411f8838e12eafa92
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:7361, webrtc:8907, chromium:695438
Reviewed-on: https://webrtc-review.googlesource.com/56281
Reviewed-by: Lu Liu <lliuu@webrtc.org>
Commit-Queue: Lu Liu <lliuu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22142}
2018-02-21 19:38:24 +00:00
c4f9824cee Revert "Reduce locking in VideoReceiver and check the threading model."
This reverts commit c75f1e45093a8d5cc62937c7708b87aa5c5bf0b0.

Reason for revert: Breaking internal project

Original change's description:
> Reduce locking in VideoReceiver and check the threading model.
> 
> Note: This is a subset of code that was previously reviewed here:
>   - https://codereview.webrtc.org/2764573002/
> 
> * Added two notification methods, DecoderThreadStarting() and DecoderThreadStopped()
>   * Allows us to establish a period when the decoder thread is not running and it is
>     safe to modify variables such as callbacks, that are only read when the decoder
>     thread is running.
>   * Allows us to DCHECK thread guarantees/correctness.
>   * Allows synchronizing callbacks from the module process thread and have them only
>     active while the decoder thread is running.
>   * The above, allows us to establish two modes for the thread,
>     single-threaded-mutable and multi-threaded-const.
>   * Using that knowledge, we can remove |receive_crit_| as well as locking for a
>     number of member variables.
> * Removed |VCMFrameBuffer _frameFromFile| (unused).
> * Clean up several of my TODOs
> 
> Bug: webrtc:7361, chromium:695438
> Change-Id: Id0048ee9624f76103c088d02825eb5c0d6c8913c
> Reviewed-on: https://webrtc-review.googlesource.com/55000
> Commit-Queue: Tommi <tommi@webrtc.org>
> Reviewed-by: Philip Eliasson <philipel@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22133}

TBR=tommi@webrtc.org,philipel@webrtc.org

Change-Id: I4d78e8b2c05b36e1a3f64cb38d652579b3a23f22
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:7361, chromium:695438
Reviewed-on: https://webrtc-review.googlesource.com/56280
Reviewed-by: Lu Liu <lliuu@webrtc.org>
Commit-Queue: Lu Liu <lliuu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22141}
2018-02-21 19:37:21 +00:00