Commit Graph

18607 Commits

Author SHA1 Message Date
70fbbad5ac Replace WindowUnderPoint free function with WindowFinder interface
WindowUnderPoint have different signatures on different platforms, which should
be abstract as an interface.
So this change adds a WindowFinder interface to replace WindowUnderPoint free
function. Meanwhile, this change also includes the implementation of
WindowFinderX11 for X11.

Bug: webrtc:7950
Change-Id: I897a50d4033e713b339b6b6f48b5dbbe601e8db0
Reviewed-on: https://chromium-review.googlesource.com/611745
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Commit-Queue: Zijie He <zijiehe@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19375}
2017-08-16 17:45:18 +00:00
0ed6de4cad Check for prior thread annotation macros before defining.
The macros in thread_annotations.h (LOCKABLE, SHARED_LOCKS_REQUIRED, etc.)
didn't check for an existing definition before defining a new one. This
conflicts with other libraries, specifically leveldb:

https://github.com/google/leveldb/blob/master/port/thread_annotations.h
Change-Id: Ic37b7b63a0fbf84f183e446ee8735ef997b7099d

BUG=8096

Change-Id: Ic37b7b63a0fbf84f183e446ee8735ef997b7099d
Reviewed-on: https://chromium-review.googlesource.com/614441
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Commit-Queue: Chris Mumford <cmumford@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19374}
2017-08-16 17:31:58 +00:00
9e117c5e1b Reland of Add functionality which limits the number of bytes on the network. (patchset #1 id:1 of https://codereview.webrtc.org/3001653002/ )
Reason for revert:
Reland

Original issue's description:
> Revert of Add functionality which limits the number of bytes on the network. (patchset #26 id:500001 of https://codereview.webrtc.org/2918323002/ )
>
> Reason for revert:
> Speculative revert to see if this caused regressions in android perf tests.
>
> Original issue's description:
> > Add functionality which limits the number of bytes on the network.
> >
> > The limit is based on the bandwidth delay product, but also adds some additional slack to compensate for the sawtooth-like BWE pattern and the slowness of the encoder rate control. The delay is estimated based on the time from sending a packet until an ack is received. Since acks are received in bursts (feedback is only sent periodically), a min filter is used to estimate the rtt.
> >
> > Whenever the in flight bytes reaches the congestion window, the pacer is paused, which in turn will result in send-side queues growing. Eventually the encoders will be paused as the pacer queue grows large (currently 2 seconds).
> >
> > BUG=webrtc:7926
> >
> > Review-Url: https://codereview.webrtc.org/2918323002
> > Cr-Commit-Position: refs/heads/master@{#19289}
> > Committed: 8497fdde43
>
> TBR=terelius@webrtc.org,philipel@webrtc.org,tschumim@webrtc.org,gnish@webrtc.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=webrtc:7926
>
> Review-Url: https://codereview.webrtc.org/3001653002
> Cr-Commit-Position: refs/heads/master@{#19339}
> Committed: 64136af364

TBR=terelius@webrtc.org,philipel@webrtc.org,tschumim@webrtc.org,gnish@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7926

Review-Url: https://codereview.webrtc.org/2994343002
Cr-Commit-Position: refs/heads/master@{#19373}
2017-08-16 15:16:25 +00:00
5901d9dfe0 Remove dep on system_wrappers for apprtc and use only framework.
This resolves an issue where setting field trials from AppRTCMobile
would not affect WebRTC Core as the two are linked with different
instances of the field_trials binary.

BUG=webrtc:8106

Review-Url: https://codereview.webrtc.org/2997023002
Cr-Commit-Position: refs/heads/master@{#19372}
2017-08-16 14:28:03 +00:00
2ed6e4f022 Replace old logging mechanism in webrtc/modules/video_capture/linux
This replaces the WEBRTC_TRACE macros with LOG-macros.

Patchset 1: Run a formatting script, found in issue webrtc:5118.

Patchset 2: Apply manual fixes.
 - Fix cases and formatting not handled by the script
 - Replace a bit-shift / casting circus with utility function
   in video_capture_linux.cc

Bug: webrtc:5118
Change-Id: Ib49c1c4d2502834b9d655dafa7c34bc47f1d73d9
Reviewed-on: https://chromium-review.googlesource.com/603709
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19371}
2017-08-16 13:51:27 +00:00
c103653113 Avoids WebRtcAudioTrack null pointer access at stop.
Example of new stop sequence:

PID   TID
5155  5189 I WebRtcAudioTrack: stopPlayout
5155  5189 I WebRtcAudioTrack: underrun count: 0
5155  5189 I WebRtcAudioTrack: stopThread
5155  5189 I WebRtcAudioTrack: Stopping the AudioTrackThread...

5155  5236 I WebRtcAudioTrack: Stopping and flushing the audio track...
5155  5236 I WebRtcAudioTrack: The audio track has now been stopped.

5155  5189 I WebRtcAudioTrack: AudioTrackThread has now been stopped.
5155  5189 I WebRtcAudioTrack: releaseAudioResources

BUG=b/64692432

Review-Url: https://codereview.webrtc.org/3001703002
Cr-Commit-Position: refs/heads/master@{#19370}
2017-08-16 13:14:08 +00:00
7ea6e59735 L16 implementation of the Audio{En,De}coderFactoryTemplate APIs
(This is a re-land of https://codereview.webrtc.org/2995523002, with a
narrowing conversion removed.)

BUG=webrtc:7836, webrtc:7842

Review-Url: https://codereview.webrtc.org/2995993002
Cr-Commit-Position: refs/heads/master@{#19369}
2017-08-16 13:12:57 +00:00
dcbb66f2cd Replace WEBRTC_TRACE in modules/video_capture/
This replaces the WEBRTC_TRACE macros with LOG-macros in the
following directories:
webrtc/modules/video_capture/objc/
webrtc/modules/video_capture/windows/

Patchset 1: Run a formatting script, found in issue webrtc:5118.

Patchset 2: Apply manual fixes.
 - Fix cases and formatting not handled by the script

Bug: webrtc:5118
Change-Id: I0ac4b9f8f182d109844b57cfbba2574f47ab1e25
Reviewed-on: https://chromium-review.googlesource.com/605347
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19368}
2017-08-16 12:42:07 +00:00
ddcfb9fc6a Don't boost pacing rate after pause.
The pacer has a mechanism to make sure all packets are sent within some
time limit. This is based on the average queue time of the packets in
the pacer queue.

If the pacer is paused while packets are still in the queue (for
instance if the underlying transport goes down temporarily), on resume
all those packets might be past the time limit and thus will all be
burst out onto the network in a tight loop.

This CL subtracts pause time from the queue time, effectively pausing
the clock for the queue while the pacer is paused, so that when we
resume the pacing bitrate will be the same as when we paused.

BUG=webrtc:7694

Review-Url: https://codereview.webrtc.org/2994323002
Cr-Commit-Position: refs/heads/master@{#19367}
2017-08-16 12:38:49 +00:00
5b9746ef10 When using clang, switch on -Wc++11-narrowing
See
https://clang.llvm.org/docs/DiagnosticsReference.html#wc-11-narrowing
for datails. This catches a narrowing bug that broke a downstream
project in https://codereview.webrtc.org/2995523002/.

BUG=none

Review-Url: https://codereview.webrtc.org/2995073002
Cr-Commit-Position: refs/heads/master@{#19366}
2017-08-16 11:52:35 +00:00
3004fd0888 Don't fail SetStereoPlayout(false) for Android devices.
It isn't implemented, but failing produces warning messages in logs
from code that just does the equivalent of:
SetStereoPlayout(StereoPlayoutIsAvailable)

BUG=none

Specifically:
https://cs.chromium.org/chromium/src/third_party/webrtc/voice_engine/voe_base_impl.cc?l=323

Change-Id: Iad1b026d903bbab74923db35bde50054f125d84b
Reviewed-on: https://chromium-review.googlesource.com/612218
Reviewed-by: Henrik Andreasson <henrika@webrtc.org>
Commit-Queue: Henrik Andreasson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19365}
2017-08-16 11:26:17 +00:00
owb
7fbeb0b3c9 Make path to wav file for jitter buffer simulation in event_log_visualizer configurable.
BUG=webrtc:7467

Review-Url: https://codereview.webrtc.org/2996953002
Cr-Commit-Position: refs/heads/master@{#19364}
2017-08-16 09:48:33 +00:00
2bf9e73e6b Delete unneeded Start and Stop methods on FlexfecReceiveStream.
Bug: None
Change-Id: I3013cfc54ed357901f175dd408127eda75e5ba99
Reviewed-on: https://chromium-review.googlesource.com/542735
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19363}
2017-08-16 09:41:27 +00:00
22c76c4e65 Add support for a forced software encoder fallback.
Make it possible to switch from VP8 HW -> VP8 SW -> VP8 HW depending on bitrate and resolution.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2988963002
Cr-Commit-Position: refs/heads/master@{#19362}
2017-08-16 07:53:59 +00:00
2b05ba1874 Remove old webrtc/base directory
The content of webrtc/base has been moved to webrtc/rtc_base and we can
now remove the original directory.

BUG=webrtc:7634

Review-Url: https://codereview.webrtc.org/2994743002
Cr-Commit-Position: refs/heads/master@{#19361}
2017-08-16 06:40:57 +00:00
f0f7378b05 Revert of Add a flags field to video timing extension. (patchset #15 id:280001 of https://codereview.webrtc.org/3000753002/ )
Reason for revert:
Speculative revet for breaking remoting_unittests in fyi bots.
https://build.chromium.org/p/chromium.webrtc.fyi/waterfall?builder=Win7%20Tester

Original issue's description:
> Add a flags field to video timing extension.
>
> The rtp header extension for video timing shuold have an additional
> field for signaling metadata, such as what triggered the extension for
> this particular frame. This will allow separating frames select because
> of outlier sizes from regular frames, for more accurate stats.
>
> This implementation is backwards compatible in that it can read video
> timing extensions without the new flag field, but it always sends with
> it included.
>
> BUG=webrtc:7594
>
> Review-Url: https://codereview.webrtc.org/3000753002
> Cr-Commit-Position: refs/heads/master@{#19353}
> Committed: cf5d485e14

TBR=danilchap@webrtc.org,kthelgason@webrtc.org,stefan@webrtc.org,sprang@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:7594

Review-Url: https://codereview.webrtc.org/2995953002
Cr-Commit-Position: refs/heads/master@{#19360}
2017-08-15 19:31:23 +00:00
124b4a150c Roll chromium_revision 70c937134d..d323a482ee (494365:494468)
Change log: 70c937134d..d323a482ee
Full diff: 70c937134d..d323a482ee

Changed dependencies:
* src/base: 9586d156d2..66d3c08e82
* src/build: 2fe6f54e10..2a5e6515a5
* src/ios: 191f52ebc0..2085f316c1
* src/testing: afae92c313..3127a16731
* src/third_party: 7899aeb437..b4122f732f
* src/third_party/catapult: 11749b52ff..d27175a044
* src/tools: 99dc07b9c0..5730fb2d3f
DEPS diff: 70c937134d..d323a482ee/DEPS

No update to Clang.

TBR=
BUG=None
CQ_INCLUDE_TRYBOTS=master.internal.tryserver.corp.webrtc:linux_internal

Review-Url: https://codereview.webrtc.org/3000943003
Cr-Commit-Position: refs/heads/master@{#19359}
2017-08-15 19:25:18 +00:00
1871a91944 Check keepAlive before calling nativeDataIsRecording.
We're encountering a bug where audioRecord.read() can hang for long
enough that stopRecording() fails to join the recording thread (in two
seconds) and returns. In that case, JNI methods get unregistered and
when the recording thread calls nativeDataIsRecorded, it crashes when
it can't find the native method to call.

This version still isn't 100% safe, as the threading sequence still
technically allows for an ordering where (for some reason) the thread
fails to join after the final keepAlive check and long enough for all
the JNI methods to get unregistered, but that seems very unlikely.

BUG=b/64174142

Change-Id: Ie7432a70d0e53bace0885edf35e24bd3f6585399
Reviewed-on: https://chromium-review.googlesource.com/613501
Reviewed-by: Henrik Andreasson <henrika@webrtc.org>
Commit-Queue: Noah Richards <noahric@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19358}
2017-08-15 16:48:06 +00:00
037f3e42f2 Replace absolute path with relative path for GN files.
Bug: webrtc:7952
Change-Id: I45d889bd976f58386f803d0dc27147ea00a52e56
Reviewed-on: https://chromium-review.googlesource.com/612786
Commit-Queue: Henrik Kjellander <kjellander@webrtc.org>
Reviewed-by: Henrik Kjellander <kjellander@webrtc.org>
Reviewed-by: Edward Lemur <ehmaldonado@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19357}
2017-08-15 15:57:36 +00:00
ac31526bb5 Revert of L16 implementation of the Audio{En,De}coderFactoryTemplate APIs (patchset #5 id:80001 of https://codereview.webrtc.org/2995523002/ )
Reason for revert:
Breaks compilation in google3.

Original issue's description:
> L16 implementation of the Audio{En,De}coderFactoryTemplate APIs
>
> BUG=webrtc:7836, webrtc:7842
>
> Review-Url: https://codereview.webrtc.org/2995523002
> Cr-Commit-Position: refs/heads/master@{#19354}
> Committed: edff94df62

TBR=ossu@webrtc.org,kwiberg@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:7836, webrtc:7842

Review-Url: https://codereview.webrtc.org/2996993002
Cr-Commit-Position: refs/heads/master@{#19356}
2017-08-15 14:50:11 +00:00
8e8f0e26b9 Roll chromium_revision f439921f66..70c937134d (494089:494365)
Change log: f439921f66..70c937134d
Full diff: f439921f66..70c937134d

Changed dependencies:
* src/base: feac46e933..9586d156d2
* src/build: 221820676e..2fe6f54e10
* src/buildtools: f4bcb07d88..ceb050498e
* src/ios: e437e37fec..191f52ebc0
* src/testing: 3f5325f618..afae92c313
* src/third_party: 058ff821a8..7899aeb437
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/ca9e8f52f1..f4ecc84644
* src/third_party/catapult: 122dd5e91b..11749b52ff
* src/tools: e78bdaf8db..99dc07b9c0
DEPS diff: f439921f66..70c937134d/DEPS

No update to Clang.

TBR=
BUG=None
CQ_INCLUDE_TRYBOTS=master.internal.tryserver.corp.webrtc:linux_internal

Review-Url: https://codereview.webrtc.org/3002653002
Cr-Commit-Position: refs/heads/master@{#19355}
2017-08-15 14:06:17 +00:00
edff94df62 L16 implementation of the Audio{En,De}coderFactoryTemplate APIs
BUG=webrtc:7836, webrtc:7842

Review-Url: https://codereview.webrtc.org/2995523002
Cr-Commit-Position: refs/heads/master@{#19354}
2017-08-15 13:30:18 +00:00
cf5d485e14 Add a flags field to video timing extension.
The rtp header extension for video timing shuold have an additional
field for signaling metadata, such as what triggered the extension for
this particular frame. This will allow separating frames select because
of outlier sizes from regular frames, for more accurate stats.

This implementation is backwards compatible in that it can read video
timing extensions without the new flag field, but it always sends with
it included.

BUG=webrtc:7594

Review-Url: https://codereview.webrtc.org/3000753002
Cr-Commit-Position: refs/heads/master@{#19353}
2017-08-15 12:33:27 +00:00
892dab52b6 Fix incorrect InterframeDelayMaxInMs histogram metrics
Two bugs:

1) The max value should only be reported if the average is also
   reported. Otherwise the max might become lower than average.
   (On average).

2) When reporting that max value, actually use the max value.

BUG=webrtc:7420

Review-Url: https://codereview.webrtc.org/3002593002
Cr-Commit-Position: refs/heads/master@{#19352}
2017-08-15 12:00:33 +00:00
b5ed905ce7 AppRTCMobile: Use high resolution app icon on retina screens.
Finally, no more hurting your eyes when looking at the app icon on a
retina device.

BUG=None
TBR=magjed@webrtc.org

Review-Url: https://codereview.webrtc.org/3001693002
Cr-Commit-Position: refs/heads/master@{#19351}
2017-08-15 11:07:12 +00:00
1bf0ff36ea Roll chromium_revision f156b499f7..f439921f66 (493756:494089)
Change log: f156b499f7..f439921f66
Full diff: f156b499f7..f439921f66

Changed dependencies:
* src/base: c9ab1936b1..feac46e933
* src/build: 5fecec2d69..221820676e
* src/ios: bf72566bf8..e437e37fec
* src/testing: 1330967db2..3f5325f618
* src/third_party: 0a591a99a3..058ff821a8
* src/third_party/catapult: 0eeb5baed7..122dd5e91b
* src/tools: 3136678749..e78bdaf8db
DEPS diff: f156b499f7..f439921f66/DEPS

Clang version changed 309984:310694
Details: f156b499f7..f439921f66/tools/clang/scripts/update.py

TBR=
BUG=None
CQ_INCLUDE_TRYBOTS=master.internal.tryserver.corp.webrtc:linux_internal

Review-Url: https://codereview.webrtc.org/3001673002
Cr-Commit-Position: refs/heads/master@{#19350}
2017-08-15 10:16:50 +00:00
53d76c6190 Almost full implementation of BBR's core, missing receiver side implementation, pacer, and BitrateObserver class which is responsible for communication between BBR and pacer/encoder. Significant changes: Recovery mode and a separate bucket for the high gain phase.
BUG=webrtc:7713

Review-Url: https://codereview.webrtc.org/2990163002
Cr-Commit-Position: refs/heads/master@{#19349}
2017-08-15 09:26:22 +00:00
2ee076dfa3 Improved UI for event_log_analyzer tool
- Don't plot every graph by default.
- Change --plot_all to --plot_profile=(all|none|default).
- Some other minor cleanups.

BUG=webrtc:8017

Review-Url: https://codereview.webrtc.org/2983983002
Cr-Commit-Position: refs/heads/master@{#19348}
2017-08-15 09:04:02 +00:00
6bdcefce80 Add VideoSink interface to SurfaceViewRenderer.
BUG=webrtc:7749, webrtc:7760

Review-Url: https://codereview.webrtc.org/3002563002
Cr-Commit-Position: refs/heads/master@{#19347}
2017-08-15 08:56:02 +00:00
ee21f374ca Default enable content type rtp header extension
BUG=webrtc:7420

Review-Url: https://codereview.webrtc.org/2998843002
Cr-Commit-Position: refs/heads/master@{#19346}
2017-08-15 08:32:51 +00:00
c288dab6e2 Ensure UIView.layer is accessed on main thread.
BUG=webrtc:7829

Review-Url: https://codereview.webrtc.org/3002583002
Cr-Commit-Position: refs/heads/master@{#19345}
2017-08-15 07:36:00 +00:00
3439c89358 Revert of Trace the stats report as JSON instead of each stat separately. (patchset #3 id:100001 of https://codereview.webrtc.org/2986453002/ )
Reason for revert:
It breaks a downstream project.

Original issue's description:
> Trace the stats report as JSON instead of each stat separately.
>
> Trace the whole report as a string instead of each field on it's own. And test that the traces collected are valid.
>
> R=tommi@webrtc.org, hbos@webrtc.org
> BUG=chromium:653087
>
> Review-Url: https://codereview.webrtc.org/2986453002
> Cr-Commit-Position: refs/heads/master@{#19341}
> Committed: 80c65780e6

TBR=hbos@webrtc.org,tommi@webrtc.org,ehmaldonado@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:653087

Review-Url: https://codereview.webrtc.org/3001683002
Cr-Commit-Position: refs/heads/master@{#19344}
2017-08-15 06:48:03 +00:00
a77e6bbd30 Adding support for Unified Plan offer/answer negotiation to the mediasession layer.
This layer takes in a simplified "options" struct and the current local description,
and generates a new offer/answer. Previously the options struct assumed there would
only be one media description per media type (audio/video), but it now supports
N number of audio/video descriptions.

The |add_legacy_stream| options is removed from the mediasession.cc/.h
in this CL.

The next step is to add the ability for PeerConnection/WebRtcSession to create
"options" to represent multiple RtpTransceivers, and apply the Unified Plan
descriptions correctly. Right now, only Plan B descriptions will be
generated in unit tests.

BUG=chromium:465349

Review-Url: https://codereview.webrtc.org/2991693002
Cr-Commit-Position: refs/heads/master@{#19343}
2017-08-15 01:17:48 +00:00
1d44550ddc Implementation of SSL caching; tests in separate CL.
This CL adds the ability for a SSLAdapter to resume a previous session, saving a roundtrip and significantly reducing the # of bytes needed to bring up the new session.

To do this, the sessions need to share state. This is addressed by introducing the SSLAdapterFactory object, which can maintain a SSL_CTX and session cache for multiple sessions.

This CL does not have unit tests in order to minimize the change size (i.e., to reduce the size of the CP). CL https://chromium-review.googlesource.com/c/558612 builds on this CL and adds tests, but makes some nontrivial changes to SSLStreamAdapter in order to get the test server to share a SSL_CTX across sessions. 

Bug: 7936
Change-Id: I677b73453d981d5b3a2e66ea9a5be722acd59475
Reviewed-on: https://chromium-review.googlesource.com/575910
Commit-Queue: Justin Uberti <juberti@webrtc.org>
Reviewed-by: Emad Omara <emadomara@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19342}
2017-08-15 00:37:05 +00:00
80c65780e6 Trace the stats report as JSON instead of each stat separately.
Trace the whole report as a string instead of each field on it's own. And test that the traces collected are valid.

R=tommi@webrtc.org, hbos@webrtc.org
BUG=chromium:653087

Review-Url: https://codereview.webrtc.org/2986453002
Cr-Commit-Position: refs/heads/master@{#19341}
2017-08-14 16:51:26 +00:00
7d829525aa Change OpenSLES blacklist warning to debug.
Given the current state of OpenSLES (disabled in many places), making
this a debug line makes more sense than an error.

BUG=none

Change-Id: I16d46d3f8234ebeffe820d92e7a6d7ed3eae11cd
Reviewed-on: https://chromium-review.googlesource.com/611491
Commit-Queue: Henrik Andreasson <henrika@webrtc.org>
Reviewed-by: Henrik Andreasson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19340}
2017-08-14 15:39:44 +00:00
64136af364 Revert of Add functionality which limits the number of bytes on the network. (patchset #26 id:500001 of https://codereview.webrtc.org/2918323002/ )
Reason for revert:
Speculative revert to see if this caused regressions in android perf tests.

Original issue's description:
> Add functionality which limits the number of bytes on the network.
>
> The limit is based on the bandwidth delay product, but also adds some additional slack to compensate for the sawtooth-like BWE pattern and the slowness of the encoder rate control. The delay is estimated based on the time from sending a packet until an ack is received. Since acks are received in bursts (feedback is only sent periodically), a min filter is used to estimate the rtt.
>
> Whenever the in flight bytes reaches the congestion window, the pacer is paused, which in turn will result in send-side queues growing. Eventually the encoders will be paused as the pacer queue grows large (currently 2 seconds).
>
> BUG=webrtc:7926
>
> Review-Url: https://codereview.webrtc.org/2918323002
> Cr-Commit-Position: refs/heads/master@{#19289}
> Committed: 8497fdde43

TBR=terelius@webrtc.org,philipel@webrtc.org,tschumim@webrtc.org,gnish@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7926

Review-Url: https://codereview.webrtc.org/3001653002
Cr-Commit-Position: refs/heads/master@{#19339}
2017-08-14 15:03:17 +00:00
5d6891000f Don't use rvalue reference function arguments in the audio coding module
Rvalue reference arguments are generally banned by the style guide.

Bug: None
Change-Id: I4314859623ffcf056f53c42087b59696b5e71690
Reviewed-on: https://chromium-review.googlesource.com/531028
Commit-Queue: Minyue Li <minyue@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Michael T <tschumim@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19338}
2017-08-14 14:10:14 +00:00
c5d9e63c2b Revert of Make the acceptable queue in the cwnd experiment configurable. (patchset #1 id:1 of https://codereview.webrtc.org/2998753002/ )
Reason for revert:
Speculative revert to see if this caused regressions in android perf tests.

Original issue's description:
> Make the acceptable queue in the cwnd experiment configurable.
>
> BUG=webrtc:7926
>
> Review-Url: https://codereview.webrtc.org/2998753002
> Cr-Commit-Position: refs/heads/master@{#19320}
> Committed: 7c83c56b6d

TBR=philipel@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7926

Review-Url: https://codereview.webrtc.org/2999893002
Cr-Commit-Position: refs/heads/master@{#19337}
2017-08-14 12:54:58 +00:00
ec86be0962 Reduce locking when collecting receive statistic
BUG=None

Review-Url: https://codereview.webrtc.org/2997803002
Cr-Commit-Position: refs/heads/master@{#19336}
2017-08-14 12:51:02 +00:00
0ba43b5a20 Add support for adding VideoSinks to VideoTracks.
VideoSinks receive the new kind of VideoFrames and will replace
VideoRenderers. Converting from old texture frames to VideoFrames will
involve conversion to I420 so it is not recommended to use VideoSinks
before all sources produce VideoFrames.

BUG=webrtc:7749, webrtc:7760

Review-Url: https://codereview.webrtc.org/3002553002
Cr-Commit-Position: refs/heads/master@{#19335}
2017-08-14 12:17:49 +00:00
dc5fc82c62 Remove older AEC-dump interface.
This CL completely removes the methods
AudioProcessing::{Start,Stop}DebugDumpRecording. These methods have
been replaced with AudioProcessing::{Attach,Detach}AecDump. Their
implementation was removed in the parent CL
https://chromium-review.googlesource.com/c/589147

Bug: webrtc:7404
Change-Id: Ia3d5314985af9c74f79c94c514ded1f8afc78fb5
Reviewed-on: https://chromium-review.googlesource.com/589152
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19334}
2017-08-14 10:35:40 +00:00
f3238e43ce Removed unused async_invoker_ in WebRtcVideoCapturer
BUG=None

Review-Url: https://codereview.webrtc.org/3001443002
Cr-Commit-Position: refs/heads/master@{#19333}
2017-08-14 09:51:17 +00:00
7731bc829c Remove older AEC-dump implementation.
AudioProcessingModule has a feature to make a recording of its
configuration, inputs and outputs over a period of time. In the past
CLs, this feature has been rewritten to move file IO away from
real-time audio threads. The interface has changed from
{Start,Stop}DebugDumpRecording to {Attach,Detach}AecDump.

This CL removes the previous implementation of the old interface
StartDebugRecording. The public interface is left to not cause
problems to downstream projects. It will be removed in the dependent
CL https://chromium-review.googlesource.com/c/589152/

With this CL, usage of WEBRTC_AUDIOPROC_DEBUG_DUMP and ~300 LOC of
logging code is removed from AudioProcessingImpl.

Bug: webrtc:7404
Change-Id: I16e7b557774e4bc997e1f5de4f97ed2c31d63879
Reviewed-on: https://chromium-review.googlesource.com/589147
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19332}
2017-08-14 08:46:30 +00:00
deac84107f Rename SetProcessParams -> SetTestConfig.
Also remove |key_frame_interval| from argument list, since it is always
set to -1.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2999643002
Cr-Commit-Position: refs/heads/master@{#19331}
2017-08-14 08:29:18 +00:00
ef8eb8c10d Reorganize code in plot_videoprocessor_integrationtest.cc.
* Don't loop over fps, but do loop over codec implementation type.
* Order codec settings as they are defined in the test.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/3000613002
Cr-Commit-Position: refs/heads/master@{#19330}
2017-08-14 08:06:16 +00:00
455372d7b2 Removing NO_SOUND_SYSTEM
This is never used in WebRTC, so we can probably remove it.

BUG=webrtc:8082
NOTRY=True

Review-Url: https://codereview.webrtc.org/2995673002
Cr-Commit-Position: refs/heads/master@{#19329}
2017-08-14 07:40:58 +00:00
880239c52a Roll chromium_revision f7eb376d22..f156b499f7 (493706:493756)
Change log: f7eb376d22..f156b499f7
Full diff: f7eb376d22..f156b499f7

Changed dependencies:
* src/base: 9ff1062df2..c9ab1936b1
* src/ios: f6eb4e106f..bf72566bf8
* src/testing: 827ce62151..1330967db2
* src/third_party: c6e90e6ee8..0a591a99a3
* src/tools: e29bfa8342..3136678749
DEPS diff: f7eb376d22..f156b499f7/DEPS

No update to Clang.

TBR=
BUG=None
CQ_INCLUDE_TRYBOTS=master.internal.tryserver.corp.webrtc:linux_internal

Review-Url: https://codereview.webrtc.org/3000803002
Cr-Commit-Position: refs/heads/master@{#19328}
2017-08-11 16:41:35 +00:00
0bc8423fe5 Move RtcpReportBlocks implementation from ReceiveStatistics to ReceiveStatisticsImpl
BUG=webrtc:8016

Review-Url: https://codereview.webrtc.org/2997783002
Cr-Commit-Position: refs/heads/master@{#19327}
2017-08-11 15:12:54 +00:00
77920a415b Minor improvements to VideoProcessorIntegrationTest.
* Create all encoders/decoders using factories.
* Add ::Release() method, to mirror the existing ::Init().
* Remove unnecessary ::test prefixes.
* Reorganize constants and members.
* Remove extraneous packet loss rate assignments.
* Remove members |start_frame_rate_| and |num_temporal_layers_|.
* Explicitly give ::SetUpObjects(.) access to initial rates.
* Change visualization output file names.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2999613002
Cr-Commit-Position: refs/heads/master@{#19326}
2017-08-11 14:48:15 +00:00