21382 Commits

Author SHA1 Message Date
Karl Wiberg
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
Niels Möller
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
Mirko Bonadei
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
Sebastian Jansson
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
Sebastian Jansson
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
Oleh Prypin
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
Per Åhgren
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
Lu Liu
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
Lu Liu
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
Lu Liu
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
Zhi Huang
cf6e24a12d Forward the SignalNetworkRouteChanged from DtlsSrtpTransport to BaseChannel.
In current implementation, the DtlsSrtpTransport listens to the
SignalNetworkRouteChanged but doesn't forward it to the BaseChannel which
makes it impossible for the media engine to update the network route and
the transport overhead.

The BaseChannel unit tests failed to catch this issue because it used a plain
unencrypted RTP transport for testing.

This CL fix that issue and update the BaseChannel tests.

Bug: webrtc:7013, b/73645191
Change-Id: I417b58ff9af4e3c4fac442ff10b5a85bc2093530
Reviewed-on: https://webrtc-review.googlesource.com/55940
Commit-Queue: Zhi Huang <zhihuang@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22140}
2018-02-21 19:18:19 +00:00
Steve Anton
52d86774c2 Fire OnRenegotiationNeeded when changing transceiver direction
This is specified by the WebRTC specification:
https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiver-direction

Bug: webrtc:7600
Change-Id: If45ba0383e5040d250cd3c1c2525ff3b03b1eb4f
Reviewed-on: https://webrtc-review.googlesource.com/55880
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22139}
2018-02-21 19:15:09 +00:00
Sebastian Jansson
a1630f83d0 Reland "Base pacer padding in pause state on time since last send."
This is a reland of 18cf4b67ddc66041d6b114ea15d78eea74d0592b.

Original change's description:
> Base pacer padding in pause state on time since last send.
> 
> This clarifies the logic behind the pacer packet interval
> in paused state and prepares for future congestion window
> functionality.
> 
> Bug: None
> Change-Id: Ibf6e23f73523b43742830353915b2b94d09a6fc9
> Reviewed-on: https://webrtc-review.googlesource.com/52060
> Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22004}

Bug: None
Change-Id: I19fc02bc226ad59cb4cbd2a6ef8ac6f47212f834
Reviewed-on: https://webrtc-review.googlesource.com/53080
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22138}
2018-02-21 17:59:30 +00:00
Per Åhgren
3ab308f869 Inform the AEC3 echo remover about the status of the estimated delay
This CL adds functionality for passing the information about the
estimated delay to the echo remover in AEC3.
The CL also adds information about how long ago the delay changed,
and how long ago the delay estimate was updated.

Bug: webrtc:8671
Change-Id: If274ffe0465eb550f3e186d0599c6dc6fef7f5e8
Reviewed-on: https://webrtc-review.googlesource.com/55261
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22137}
2018-02-21 17:08:36 +00:00
Per Åhgren
bbfccfd9e0 Added unittest to the AEC3 BlockProcessor class that tests longer calls
Bug: webrtc:8671
Change-Id: I64c416af5b0269e7bbe59702199b30b6b20b6807
Reviewed-on: https://webrtc-review.googlesource.com/55861
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22136}
2018-02-21 17:07:27 +00:00
philipel
d5a272ff51 Create public EncodedFrame interface.
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 1st CL.

Bug: webrtc:8909
Change-Id: I2e5100eda6c51bcefb32295e03b73cf1f5c213a4
Reviewed-on: https://webrtc-review.googlesource.com/55560
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22135}
2018-02-21 16:24:15 +00:00
Autoroller
257cb101d5 Roll chromium_revision 04f0f4c72d..2c98648a24 (538005:538114)
Change log: 04f0f4c72d..2c98648a24
Full diff: 04f0f4c72d..2c98648a24

Changed dependencies:
* src/base: 2c52393dbb..ed313e8c6c
* src/build: 3206b7c200..b734510a01
* src/ios: 6e7b0ea24b..d48cc0d3d6
* src/testing: e714243ecd..7e6cab0619
* src/third_party: fe2878325d..bcdd2c72a7
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/7ae2122b3b..6a7c1ed24c
* src/third_party/depot_tools: 64e33cba17..b422e687a5
* src/tools: c0a89da0b2..22c4d769bf
DEPS diff: 04f0f4c72d..2c98648a24/DEPS

No update to Clang.

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

Change-Id: I62b96b13998db9181c44e44f03c97164bb7f7639
Reviewed-on: https://webrtc-review.googlesource.com/56160
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22134}
2018-02-21 16:17:25 +00:00
Tommi
c75f1e4509 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}
2018-02-21 15:44:05 +00:00
Ilya Nikolaevskiy
d397a0d46e Add dropped frames metric on the receive side
Reported to UMA and logged for at the end of the call.

Bug: webrtc:8355
Change-Id: I4ef31bf9e55feaba9cf28be5cb4fcfae929c7179
Reviewed-on: https://webrtc-review.googlesource.com/53760
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22132}
2018-02-21 15:34:25 +00:00
Sebastian Jansson
8f83b42946 Moved bitrate config interface from Call class.
Moving usage of bitrate configuration related interface from Call
interface to the corresponding methods in the RtpSendTransportController
interface.
SetBitrateConfig was replaced with SetSdpBitrateParameters
SetBitrateConfigMask was replaced with SetClientBitratePreferences
OnNetworkRouteChanged was replaced with OnNetworkRouteChanged

This makes it more clear that RtpSendTransportController owns bitrate
configuration and fits a longer term ambition to reduce the scope of
the Call class.

Bug: webrtc:8415
Change-Id: I6d04eaad22a54ecd5ed60096e01689b0c67e9c65
Reviewed-on: https://webrtc-review.googlesource.com/54365
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@{#22131}
2018-02-21 15:03:45 +00:00
Sebastian Jansson
91bb6671ea Moved routes tracking to rtp transport controller.
This prepares for eliminating OnNetworkRouteChanged in the Call class.

Bug: webrtc:8415
Change-Id: I62dc7226804e65c90b2a0a771dd6861f6760c8dd
Reviewed-on: https://webrtc-review.googlesource.com/54363
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22130}
2018-02-21 14:27:25 +00:00
Sebastian Jansson
416332b597 Removed wait from congestion window test.
Modified the StopsAndResumesMediaWhenCongestionWindowFull test so it
detects when it's test condition is fulfilled rather than waiting for a
set amount of time. This makes it less sensitive to timing changes in
the underlying code and makes it return earlier if possible.

The number of padding packets to wait for were also reduced to save some
runtime.

Bug: webrtc:8415
Change-Id: Ib72524591e976f8bea7ef8b856e2c2c87b2e13ff
Reviewed-on: https://webrtc-review.googlesource.com/56041
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22129}
2018-02-21 14:23:05 +00:00
henrika
5641fbb5ec Add support for saving local audio input to file in AppRTCMobile
Uses new WebRtcAudioRecordSamplesReadyCallback which was added recently in
https://webrtc-review.googlesource.com/c/src/+/49981.

This CL:
- Serves as a test of new WebRtcAudioRecordSamplesReadyCallback.
- Useful for debugging purposes since it records the most native raw audio.

Bug: None
Change-Id: I57375cbf237c171e045b0bdb05f7ae1401930fbc
Reviewed-on: https://webrtc-review.googlesource.com/53120
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22128}
2018-02-21 14:09:56 +00:00
Sebastian Jansson
97f61ea684 Moved bitrate configuration to rtp controller
Since rtp transport controller send owns the congestion controller it
also should own the bitrate configuration logic, this way it can
initialize the send side congestion controller with the bitrate
configuration.

Bug: webrtc:8415
Change-Id: Ifaa16139ca477cb1c80bf4aa24f17652af997553
Reviewed-on: https://webrtc-review.googlesource.com/54303
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22127}
2018-02-21 13:55:16 +00:00
Patrik Höglund
a425184a04 Fix override warnings.
Bug: webrtc:6306
Change-Id: I5c01139475a75d56a9642943eff527eaf036c738
Reviewed-on: https://webrtc-review.googlesource.com/55522
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22126}
2018-02-21 13:48:57 +00:00
Sebastian Jansson
e5447fb6d1 Removed fake rtp transport controller send.
The fake rtp transport controller is only used by CallBitrateTest, but
the functionality tested in CallBitrateTest is now tested in
RtpBitrateConfiguratorTest. Removing the fake rtp transport controller
send reduces the complexity of refactoring the rtp transport controller
send interface.

Bug: webrtc:8415
Change-Id: I4673daea4e68521e7e14293514830d6e704219bc
Reviewed-on: https://webrtc-review.googlesource.com/54480
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22125}
2018-02-21 13:39:16 +00:00
Sebastian Jansson
df023aa6b4 Extracted bitrate configuration from call class.
This separates the bitrate configuration logic from other call specific
logic, creating a greater separation of concern and simplifying testing.
The old call tests are kept but can be removed in the future reducing
the dependencies on rtp transport control interface and congestion
control in the system, which will simplify future refactoring.

This also prepares for moving the bitrate configuration responsibility
to the rtp transport controller in a later CL.

Bug: webrtc:8415
Change-Id: I97126e89f30b63fc9b5d98a0bed1c29f18a6ed44
Reviewed-on: https://webrtc-review.googlesource.com/54401
Reviewed-by: Zach Stein <zstein@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22124}
2018-02-21 12:33:02 +00:00
Sebastian Jansson
fc8d26bd8a Reland "Moved BitrateConfig out of Call::Config."
This is a reland of 5897fe27abcbe70f706cc23adc26147e0581f97e.

Adding back CallConfig::kDefaultStartBitrateBps as deprecated.
Also making BitrateContraints::kDefaultStartBitrateBps private to stop
it from being used in other places.

Original change's description:
> Moved BitrateConfig out of Call::Config.
>
> This prepares for a CL extracting the bitrate configuration logic from
> the Call class.
>
> Also renaming BitrateConfig to BitrateConstraints.
>
> Bug: webrtc:8415
> Change-Id: I7e472683034c57bdc8093cdf5e78e477d1732480
> Reviewed-on: https://webrtc-review.googlesource.com/54400
> 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@{#22104}

Bug: webrtc:8415
Change-Id: Iacfe2d6daedff710832ab89210c7c66d4403c93b
Reviewed-on: https://webrtc-review.googlesource.com/55980
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@{#22123}
2018-02-21 11:38:42 +00:00
Tommi
9f016a0eb0 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}
2018-02-21 11:25:02 +00:00
Harald Alvestrand
a1f66611dc Check that channel is in "send" before OKing DTMF
This fix will ensure that attempts to send DTMF
events before the channel is opened will return
a failure rather than disappearing the event.

Bug: webrtc:8908
Change-Id: I5044a0398dfd3dfe73b6ae1d48395e9809f81ad4
Reviewed-on: https://webrtc-review.googlesource.com/55480
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22121}
2018-02-21 11:04:02 +00:00
Niels Möller
f90637887c Split VCMCodecDataBase into VCMEncoderDataBase and VCMDecoderDataBase.
Intended to ease further refactoring, cleanup and deletion in this code.

Bug: webrtc:8830
Change-Id: Ib862b073e93b67b4f8eedbbf40ad3a8354a566a2
Reviewed-on: https://webrtc-review.googlesource.com/55562
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22120}
2018-02-21 09:49:06 +00:00
Tommi
a4e71b9e7e 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}
2018-02-21 09:27:06 +00:00
Sami Kalliomäki
0611065256 Update JavaI420Buffer.allocate to use native allocations.
This ensures memory is released timely and avoids problems with garbage
collection.

Native buffers don't support array operation, so FileVideoCapturer had
to be update to use FileChannel to write ByteBuffers directly.

Bug: None
Change-Id: I3f63d2adc159e9f39f0c68dd0bd6b1747686584e
Reviewed-on: https://webrtc-review.googlesource.com/55262
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22118}
2018-02-21 08:40:26 +00:00
Rasmus Brandt
defad847b1 Add batch script for running multiple VideoProcessor tests in parallel.
This script is for running on device tests in parallel.

BUG=webrtc:8448
NOTRY=TRUE

Change-Id: I6b13f76223653ddb6ec999613ef66ac4f82d8567
Reviewed-on: https://webrtc-review.googlesource.com/55561
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Michael Horowitz <mhoro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22117}
2018-02-21 08:00:06 +00:00
Autoroller
2aa5666e8b Roll chromium_revision cff6369b11..04f0f4c72d (537896:538005)
Change log: cff6369b11..04f0f4c72d
Full diff: cff6369b11..04f0f4c72d

Changed dependencies:
* src/base: b574cda03a..2c52393dbb
* src/build: 418428c2cc..3206b7c200
* src/ios: e429f6589c..6e7b0ea24b
* src/testing: c841bff343..e714243ecd
* src/third_party: f8eb523118..fe2878325d
* src/third_party/depot_tools: 7707c8a10d..64e33cba17
* src/tools: cd9357a94c..c0a89da0b2
DEPS diff: cff6369b11..04f0f4c72d/DEPS

No update to Clang.

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

Change-Id: Ia8da30574263a8f3e0e7f2de555d3f673201d425
Reviewed-on: https://webrtc-review.googlesource.com/55941
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22116}
2018-02-21 03:42:16 +00:00
Steve Anton
8ee1e5e6e6 Enable GetRemoteAudioSSLCertificate tests for Unified Plan
They were disabled since GetRemoteAudioSSLCertificate was written
in terms of voice/video channel, which were not methods supported
with Unified Plan. Now GetRemoteAudioSSLCertificate has been
rewritten to work with RtpTransceivers, so the test can be enabled.

Bug: webrtc:8764
Change-Id: I08b5fbcc0d69f36113a281c902db6508fa48ebdd
Reviewed-on: https://webrtc-review.googlesource.com/55923
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22115}
2018-02-21 01:54:16 +00:00
Steve Anton
6e22137f70 Enable Unified Plan tests that were blocked on the stats collector
The stats collectors now work with Unified Plan, so re-enable the
tests that were disabled.

Bug: webrtc:8764
Change-Id: I9ac97fd19d0024b3aaf26dd5ab09d3ffcb33210a
Reviewed-on: https://webrtc-review.googlesource.com/55800
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22114}
2018-02-21 01:12:36 +00:00
Qingsi Wang
72a43a1d2c Collect packet loss and RTT stats of STUN binding requests.
STUN candidates use STUN binding requests to keep NAT bindings open.
Related stats including packet loss and RTT can be now collected via the
legacy GetStats in PeerConnection.

Bug: None
Change-Id: I7b0eee1ccb07eb670a32ee303c9590047b25f31c
Reviewed-on: https://webrtc-review.googlesource.com/54100
Commit-Queue: Qingsi Wang <qingsi@google.com>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22113}
2018-02-21 00:49:26 +00:00
Steve Anton
54b8407ee5 Clear current_direction when the RtpTransceiver is stopped
This is specified in the WebRTC specification:
https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiver-currentdirection

Bug: webrtc:7600
Change-Id: I4c3d434528f8c2aecad9d86dce38f13cf4fee560
Reviewed-on: https://webrtc-review.googlesource.com/55900
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22112}
2018-02-21 00:26:36 +00:00
Seth Hampson
2f0d70287e Parameterize PeerConnection integration tests for Unified Plan
Bug: webrtc:8765
Change-Id: I572966c57fd8d8f9293fc05a8be579dd982102f7
Reviewed-on: https://webrtc-review.googlesource.com/52800
Commit-Queue: Seth Hampson <shampson@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22111}
2018-02-20 23:46:06 +00:00
Steve Anton
afb0bb73de Remove PeerConnection voice_channel/video_channel methods
These methods no longer work with Unified Plan and have been
replaced by iterating over RtpTransceivers to get all the
VoiceChannels and VideoChannels.

Bug: webrtc:8587
Change-Id: I66ec282ee9f7eb987c32e30957733c13c6cf45b8
Reviewed-on: https://webrtc-review.googlesource.com/55760
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22110}
2018-02-20 23:40:16 +00:00
Qingsi Wang
db53f8e604 Add configurable STUN binding request interval.
STUN candidates use STUN binding requests to keep NAT bindings open. The
interval at which the STUN keepalive pings are sent is configurable now
via RTCConfiguration.

TBR=sakal@webrtc.org

Bug: None
Change-Id: I5f99ea3fe1e9042fa2bf7dcab0aace78f57739e6
Reviewed-on: https://webrtc-review.googlesource.com/54180
Commit-Queue: Qingsi Wang <qingsi@google.com>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22109}
2018-02-20 23:32:46 +00:00
Autoroller
ed1eceaba5 Roll chromium_revision 1f1e714a1e..cff6369b11 (537795:537896)
Change log: 1f1e714a1e..cff6369b11
Full diff: 1f1e714a1e..cff6369b11

Changed dependencies:
* src/base: f71a5991ae..b574cda03a
* src/ios: 323c79e3a9..e429f6589c
* src/testing: 8a1e092663..c841bff343
* src/third_party: 5f1c17c0ab..f8eb523118
* src/third_party/depot_tools: 3ade6e1214..7707c8a10d
* src/third_party/googletest/src: 0062e4869f..7a2563a514
* src/tools: 8f16653579..cd9357a94c
DEPS diff: 1f1e714a1e..cff6369b11/DEPS

No update to Clang.

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

Change-Id: I1d26a35d9dbbd4ff9165ca46784d290da6b48593
Reviewed-on: https://webrtc-review.googlesource.com/55820
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22108}
2018-02-20 22:19:26 +00:00
Per Åhgren
b6b00dc180 Safe behavior of the initial echo removal in AEC3
This CL adds functionality to allow removal of any echo occurring
before the render and capture signals have been properly aligned.
The functionality is added in such a manner that the transparency
to nearend is maintained as much as possible.


Bug: webrtc:8883
Change-Id: I813cbbc4c48822e7dffcd9ab6233be4c222089de
Reviewed-on: https://webrtc-review.googlesource.com/49941
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22107}
2018-02-20 22:01:36 +00:00
Lu Liu
e4bf600cad Revert "Moved BitrateConfig out of Call::Config."
This reverts commit 5897fe27abcbe70f706cc23adc26147e0581f97e.

Reason for revert: Breaking internal builds

Original change's description:
> Moved BitrateConfig out of Call::Config.
> 
> This prepares for a CL extracting the bitrate configuration logic from
> the Call class.
> 
> Also renaming BitrateConfig to BitrateConstraints.
> 
> Bug: webrtc:8415
> Change-Id: I7e472683034c57bdc8093cdf5e78e477d1732480
> Reviewed-on: https://webrtc-review.googlesource.com/54400
> 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@{#22104}

TBR=nisse@webrtc.org,stefan@webrtc.org,srte@webrtc.org

Change-Id: I598040edba7f1ff8b39d2d9c3c3ceca5627aaa0c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8415
Reviewed-on: https://webrtc-review.googlesource.com/55740
Reviewed-by: Lu Liu <lliuu@webrtc.org>
Commit-Queue: Lu Liu <lliuu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22106}
2018-02-20 19:16:38 +00:00
Autoroller
c4bffed3af Roll chromium_revision fd6d802597..1f1e714a1e (537681:537795)
Change log: fd6d802597..1f1e714a1e
Full diff: fd6d802597..1f1e714a1e

Changed dependencies:
* src/base: 90083ffab0..f71a5991ae
* src/build: 10345cde4d..418428c2cc
* src/ios: 75a28dc6cf..323c79e3a9
* src/testing: 4885132c38..8a1e092663
* src/third_party: b6ef30f683..5f1c17c0ab
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/8273e472c8..7ae2122b3b
* src/tools: e7b971f1ef..8f16653579
DEPS diff: fd6d802597..1f1e714a1e/DEPS

No update to Clang.

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

Change-Id: I02f3cd8e977560a42c94994dc8208132efc87a22
Reviewed-on: https://webrtc-review.googlesource.com/55660
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22105}
2018-02-20 17:28:25 +00:00
Sebastian Jansson
5897fe27ab Moved BitrateConfig out of Call::Config.
This prepares for a CL extracting the bitrate configuration logic from
the Call class.

Also renaming BitrateConfig to BitrateConstraints.

Bug: webrtc:8415
Change-Id: I7e472683034c57bdc8093cdf5e78e477d1732480
Reviewed-on: https://webrtc-review.googlesource.com/54400
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@{#22104}
2018-02-20 16:40:05 +00:00
Alex Loiko
a05ee82c4c Fixed Digital mode of AGC2 implementation finished.
This CL adds the GainCurveApplier (GCA). It owns a
FixedDigitalLevelEstimator (LE) and an InterpolatedGainCurve
(IGC). The GCA uses the LE to compute the input signal level, looks up
a gain from IGC and applies it on the signal.

The other IGC and LE submodules were added in previous CLs [1] and
[2].

This CL also turns on AGC2 in the APM fuzzer.

[1] https://webrtc-review.googlesource.com/c/src/+/51920
[2] https://webrtc-review.googlesource.com/c/src/+/52381

Bug: webrtc:7949
Change-Id: Idb10cc3ca9d6d2e4ac5824cc3391ed8aa680f6cd
Reviewed-on: https://webrtc-review.googlesource.com/54361
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22103}
2018-02-20 15:59:25 +00:00
Sebastian Jansson
1896cece01 Removed dependencies from audio send stream unit test
The audio send stream unit tests did not use the mocks injected to the
fake rtp transport controller send. This CL prepares for removing the
fake controller which makes it harder to refactor the rtp transport
controller interface.

Bug: webrt:8415
Change-Id: I73f7d105e66f9beb80aeaa92f3490cd61c80c5b8
Reviewed-on: https://webrtc-review.googlesource.com/54302
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22102}
2018-02-20 15:05:57 +00:00
Joachim Bauch
6bd3cddcef Remove special MD5 / SHA-1 digest classes.
Previous users have switched to the generic MessageDigest class in
https://webrtc-review.googlesource.com/35040

Bug: webrtc:8677
Change-Id: Id58d5a02e04f53d256a41a98ead37e1844479a17
Reviewed-on: https://webrtc-review.googlesource.com/55061
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Joachim Bauch <jbauch@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22101}
2018-02-20 13:45:56 +00:00