8706 Commits

Author SHA1 Message Date
terelius
afaef8bbeb Add a new overuse estimator for the delay based BWE behind experiment.
Parse the estimation parameters from the field trial string.

BUG=webrtc:6690

Review-Url: https://codereview.webrtc.org/2489323002
Cr-Commit-Position: refs/heads/master@{#15126}
2016-11-17 11:48:23 +00:00
asapersson
b7e7b49551 Use NtpTime in RtcpMeasurement instead of uint sec/uint frac.
BUG=webrtc:6579

Review-Url: https://codereview.webrtc.org/2435053004
Cr-Commit-Position: refs/heads/master@{#15125}
2016-11-17 10:27:20 +00:00
michaelt
4da304407c Add overhead per packet observer to the rtp_sender.
BUG=webrtc:6638

Review-Url: https://codereview.webrtc.org/2495553002
Cr-Commit-Position: refs/heads/master@{#15124}
2016-11-17 09:38:48 +00:00
michaelt
4a4b3cfc01 Add interval estimator to remote bitrate estimator.
To be able to smooth the bandwidth estimation according to the probing interval.

BUG=webrtc:6443

Review-Url: https://codereview.webrtc.org/2380883003
Cr-Commit-Position: refs/heads/master@{#15123}
2016-11-17 09:19:00 +00:00
ivoc
377b60ce11 Only enable residual echo detector when needed in level controller perf tests.
BUG=webrtc:6525,chromium:665885

Review-Url: https://codereview.webrtc.org/2505983002
Cr-Commit-Position: refs/heads/master@{#15122}
2016-11-17 09:04:24 +00:00
ivoc
0bff12a63d Renamed -red to -ed and -red_graph to -ed_graph in audioproc_f.
The red acronym is already in use in the context of audio coding, so it is better to avoid reusing it here because it could be confusing.

BUG=webrtc:6525

Review-Url: https://codereview.webrtc.org/2505993002
Cr-Commit-Position: refs/heads/master@{#15121}
2016-11-17 08:55:48 +00:00
denicija
9af2b6012a Propagate bitrate setting to RTCRtpSender.
This CL wires everything up and enables actual setting of the max bitrate encoding parameter
on the video RTP sender.
The following changes were made
* Add maxbitrate property to the settings model and settings store. Make sure to store and
read the maxbitrate from storage (to persist between app launches and make testing easier)
* Fix setup of encoding parameters for the rtp sender as previous timing was not right.
* Fix header of RTCRtpSender to expose needed parameter
BUG=webrtc:6654

Review-Url: https://codereview.webrtc.org/2492693003
Cr-Commit-Position: refs/heads/master@{#15120}
2016-11-17 08:44:09 +00:00
brandtr
a62f5826d7 Integrate FlexFEC in video_loopback.
BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2497403004
Cr-Commit-Position: refs/heads/master@{#15119}
2016-11-17 08:21:19 +00:00
brandtr
dd369c6cc8 Reduce full stack test time to 45 secs and add H264 and FlexFEC.
This CL adds full stack tests that are used to measure the performance
of H264 with and without FlexFEC. In order to not increase the bot
run time, the CL also reduces the test time to 45 secs. This should
be OK, since the BWE is faster to ramp up nowadays.

Due to the test time change, there may be some performance alerts.

BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2499273002
Cr-Commit-Position: refs/heads/master@{#15118}
2016-11-17 07:57:00 +00:00
hta
527d3474ad Reland of Declare VideoCodec.codec_specific_info private (patchset #1 id:1 of https://codereview.webrtc.org/2491613005/ )
Reason for revert:
More downstream issues fixed again.

Original issue's description:
> Revert of Declare VideoCodec.codec_specific_info private (patchset #1 id:1 of https://codereview.webrtc.org/2494683006/ )
>
> Reason for revert:
> Another downstream error.
>
> Original issue's description:
> > Reland of Declare VideoCodec.codec_specific_info private (patchset #1 id:1 of https://codereview.webrtc.org/2491933002/ )
> >
> > Reason for revert:
> > Relanding, now that downstream issues have been fixed.
> >
> > Original issue's description:
> > > Revert of Declare VideoCodec.codec_specific_info private (patchset #5 id:80001 of https://codereview.webrtc.org/2452963002/ )
> > >
> > > Reason for revert:
> > > Broke a google3 build
> > >
> > > Original issue's description:
> > > > Declare VideoCodec.codec_specific_info private
> > > >
> > > > This completes the privatization of the codec specific
> > > > information in VideoCodec.
> > > >
> > > > BUG=webrtc:6603
> > > >
> > > > Committed: https://crrev.com/792738640234d81c916ac4458ac72286cb2548a4
> > > > Cr-Commit-Position: refs/heads/master@{#15013}
> > >
> > > TBR=tommi@chromium.org,magjed@chromium.org,tommi@webrtc.org
> > > # Skipping CQ checks because original CL landed less than 1 days ago.
> > > NOPRESUBMIT=true
> > > NOTREECHECKS=true
> > > NOTRY=true
> > > BUG=webrtc:6603
> > >
> > > Committed: https://crrev.com/7fe6db91d99cf6d43874651bcca56092cf869e2f
> > > Cr-Commit-Position: refs/heads/master@{#15027}
> >
> > TBR=tommi@chromium.org,magjed@chromium.org,tommi@webrtc.org
> > # Skipping CQ checks because original CL landed less than 1 days ago.
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=webrtc:6603
> >
> > Committed: https://crrev.com/c63fb3a0d3b9b2081a6a5e6e238d8ee595dca2a2
> > Cr-Commit-Position: refs/heads/master@{#15041}
>
> TBR=tommi@chromium.org,magjed@chromium.org,tommi@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:6603
>
> Committed: https://crrev.com/281459896124685d355d37388ee2290b55015594
> Cr-Commit-Position: refs/heads/master@{#15042}

TBR=tommi@chromium.org,magjed@chromium.org,tommi@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:6603

Review-Url: https://codereview.webrtc.org/2508853002
Cr-Commit-Position: refs/heads/master@{#15117}
2016-11-17 07:23:15 +00:00
brandtr
05f845d025 Replace c-style cast and constrain value in VCMFecMethod::ProtectionFactor.
BUG=None

Review-Url: https://codereview.webrtc.org/2501083003
Cr-Commit-Position: refs/heads/master@{#15116}
2016-11-17 06:59:42 +00:00
brandtr
39f9729c7a Add VideoSendStreamTest for FlexFEC.
Verifies correct sending of FlexFEC packets.

BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2503523003
Cr-Commit-Position: refs/heads/master@{#15115}
2016-11-17 06:57:56 +00:00
brandtr
1293acae18 Configure FlexFEC in VideoQualityTest.
Will be used by full stack tests and video_loopback.

BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2500373002
Cr-Commit-Position: refs/heads/master@{#15114}
2016-11-17 06:47:36 +00:00
brandtr
1e3dfbfc2b Add FlexFEC end-to-end test.
Verifies correct reception of FlexFEC packets.

BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2503633004
Cr-Commit-Position: refs/heads/master@{#15113}
2016-11-17 06:45:26 +00:00
deadbeef
46c7389a63 Adding GetConfiguration to PeerConnection.
Just returns the configuration the PC was constructed with, or the last
one passed into SetConfiguration.

BUG=chromium:587453

Review-Url: https://codereview.webrtc.org/2504103002
Cr-Commit-Position: refs/heads/master@{#15111}
2016-11-17 03:42:09 +00:00
Sergey Ulanov
0182f85fd1 More reliable ALR detection
Previously AlrDetector was measuring amount of data sent in each 100ms
interval and would enter ALR mode after 5 consecutive intervals when
average bandwidth usage doesn't exceed 30% of the current estimate
estimate. This meant that an application that uses only slightely more
than 6% of total bandwidth may stay out of ALR mode, e.g. if it sends
a frame of size BW*30ms every 0.5 seconds. 100ms is too short interval
to average over, particularly when frame-rate falls below 10fps.

With this change AlrDetector averages BW usage over last 500ms. It then
enters ALR state when usage falls below 30% and exits it when usage
exceeds 50%.

BUG=webrtc:6332
R=philipel@webrtc.org, stefan@webrtc.org

Review URL: https://codereview.webrtc.org/2503643003 .

Cr-Commit-Position: refs/heads/master@{#15109}
2016-11-16 23:42:22 +00:00
ehmaldonado
3a1c40a60a MB: Remove configuration for unexisting bots.
R=kjellander@webrtc.org
BUG=chromium:497757
NOTRY=True

Review-Url: https://codereview.webrtc.org/2507243002
Cr-Commit-Position: refs/heads/master@{#15108}
2016-11-16 22:05:51 +00:00
Henrik Kjellander
b4af3d673a Remove all references to GYP
Remove all .gyp and .gypi files.
Remove entries from OWNERS files for *.isolate, *.gyp, *.gypi
Remove unused scripts in webrtc/build.

BUG=webrtc:6323
R=henrika@webrtc.org, phoglund@webrtc.org

Review URL: https://codereview.webrtc.org/2509703002 .

Cr-Commit-Position: refs/heads/master@{#15107}
2016-11-16 19:11:38 +00:00
tommi
67fcad871e Relax the PostDelayed expectations a little more to address flakiness.
BUG=6610
TBR=stefan@webrtc.org
NOTRY=true

Review-Url: https://codereview.webrtc.org/2505083002
Cr-Commit-Position: refs/heads/master@{#15106}
2016-11-16 18:50:28 +00:00
Erik Språng
08127a9449 Reland #2 of Issue 2434073003: Extract bitrate allocation ...
This is yet another reland of https://codereview.webrtc.org/2434073003/
including two fixes:

1. SimulcastRateAllocator did not handle the screenshare settings properly for numSimulcastStreams = 1. Additional test case was added for that.
2. In VideoSender, when rate allocation is updated after setting a new VideoCodec config, only update the state of the EncoderParameters, but don't actually run SetRateAllocation on the encoder itself. This caused some problems upstreams.

Please review only the changes after patch set 1.

Original description:

Extract bitrate allocation of spatial/temporal layers out of codec impl.

This CL makes a number of intervowen changes:

* Add BitrateAllocation struct, that contains a codec independent view
  of how the target bitrate is distributed over spatial and temporal
  layers.

* Adds the BitrateAllocator interface, which takes a bitrate and frame
  rate and produces a BitrateAllocation.

* A default (non layered) implementation is added, and
  SimulcastRateAllocator is extended to fully handle VP8 allocation.
  This includes capturing TemporalLayer instances created by the
  encoder.

* ViEEncoder now owns both the bitrate allocator and the temporal layer
  factories for VP8. This allows allocation to happen fully outside of
  the encoder implementation.

This refactoring will make it possible for ViEEncoder to signal the
full picture of target bitrates to the RTCP module.

BUG=webrtc:6301
R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/2510583002 .

Cr-Commit-Position: refs/heads/master@{#15105}
2016-11-16 15:41:45 +00:00
henrika
779017d989 Adds stereo support for Java-based input and output audio on Android
BUG=webrtc:6718

Review-Url: https://codereview.webrtc.org/2499613002
Cr-Commit-Position: refs/heads/master@{#15104}
2016-11-16 14:30:50 +00:00
mandermo
007cdb5907 Better delete of file in loopback script
BUG=webrtc:6545
NOTRY=True

Review-Url: https://codereview.webrtc.org/2502783005
Cr-Commit-Position: refs/heads/master@{#15102}
2016-11-16 10:31:29 +00:00
phoglund
613152af11 Add a JNI boot test to catch ARM dynamic linker regressions.
The peer connection loopback test could catch regressions too, but it's
too slow to run on downstream ARM emulators. I'm adding a test here
that just makes sure we can load the JNI and init audio/video engines
in WebRTC.

This test overlaps in functionality with the existing tests,
but we need it anyway since all existing tests are too timing-sensitive.

Removes resources from the test; they're awkward downstream and we
don't really need them anyway.

BUG=b/32820229

Review-Url: https://codereview.webrtc.org/2506603002
Cr-Commit-Position: refs/heads/master@{#15101}
2016-11-16 09:31:27 +00:00
Åsa Persson
a814941e14 Fix unit for logged bitrates at the end of a call.
BUG=webrtc:5283
R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/2505873002 .

Cr-Commit-Position: refs/heads/master@{#15100}
2016-11-16 08:58:05 +00:00
magjed
725e484e33 Use different RTX payload types for different H264 profiles
This CL is a quick fix to unblock H264 High Profile. This CL is supposed
to be superseded by a proper fix of
https://bugs.chromium.org/p/webrtc/issues/detail?id=6705 like
https://codereview.webrtc.org/2493133002/.

BUG=webrtc:6677

Review-Url: https://codereview.webrtc.org/2497773003
Cr-Commit-Position: refs/heads/master@{#15099}
2016-11-16 08:48:21 +00:00
honghaiz
906c5dc6b7 Revert of Start probes only after network is connected. (patchset #9 id:240001 of https://codereview.webrtc.org/2458863002/ )
Reason for revert:
It broke downstream test.

Original issue's description:
> Start probes only after network is connected.
>
> Previously ProbeController was starting probing as soon as SetBitrates()
> is called. As result these probes would often timeout while connection
> is being established. Now ProbeController receives notifications about
> network route changes. This allows to start probing only when transport
> is connected. This also makes it possible to restart probing whenever
> transport route changes (will be done in a separate change).
>
> BUG=webrtc:6332
>
> Committed: https://crrev.com/5c99c76255ee7bface3c742c25fb5617748ac86e
> Cr-Commit-Position: refs/heads/master@{#15094}

TBR=philipel@webrtc.org,stefan@webrtc.org,sergeyu@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6332

Review-Url: https://codereview.webrtc.org/2504783002
Cr-Commit-Position: refs/heads/master@{#15098}
2016-11-15 22:39:09 +00:00
sakal
e19649b8ce Fix Android lint error.
BUG=webrtc:6711
NOTRY=True

Review-Url: https://codereview.webrtc.org/2504643002
Cr-Commit-Position: refs/heads/master@{#15095}
2016-11-15 20:32:26 +00:00
sergeyu
5c99c76255 Start probes only after network is connected.
Previously ProbeController was starting probing as soon as SetBitrates()
is called. As result these probes would often timeout while connection
is being established. Now ProbeController receives notifications about
network route changes. This allows to start probing only when transport
is connected. This also makes it possible to restart probing whenever
transport route changes (will be done in a separate change).

BUG=webrtc:6332

Review-Url: https://codereview.webrtc.org/2458863002
Cr-Commit-Position: refs/heads/master@{#15094}
2016-11-15 20:25:37 +00:00
ehmaldonado
b2fcf6d96f MB: Run test with gtest-parallel on swarming.
TBR=pbos@webrtc.org
BUG=chromium:497757, chromium:664425
NOTRY=True

Review-Url: https://codereview.webrtc.org/2503503002
Cr-Commit-Position: refs/heads/master@{#15093}
2016-11-15 20:20:35 +00:00
erikchen
2a3eb9f367 mac: Fix screen capture on secondary displays.
The old API CGScreenRegisterMoveCallback returned update rects in desktop
coordinates [secondary display has an origin != 0,0]. The new CGDisplayStream
API returns update rects in display coordinates [origin == 0,0]. Translating the
update rect based on the display's position on the desktop is now incorrect.

BUG=webrtc:6702

Review-Url: https://codereview.webrtc.org/2496413002
Cr-Commit-Position: refs/heads/master@{#15092}
2016-11-15 18:24:53 +00:00
magjed
5d54e185d5 Prepare iOS H264 HW encoder for High Profile
BUG=webrtc:6337

Review-Url: https://codereview.webrtc.org/2484493002
Cr-Commit-Position: refs/heads/master@{#15091}
2016-11-15 17:57:02 +00:00
danilchap
4aecc5885a Simplify creating RtpHeaderExtensionMap in EventLogAnalyzer
RtpHeaderExtensionMap constructor accept array view instead of initializer_list
Remove now unused RtpHeaderExtensionMap::Erase

BUG=webrtc:1994

Review-Url: https://codereview.webrtc.org/2501893004
Cr-Commit-Position: refs/heads/master@{#15090}
2016-11-15 17:21:03 +00:00
brandtr
cd188f6031 Make SendStatisticsProxy let through FlexFEC packets.
This is initial work to get the stats working for FlexFEC.

BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2498393002
Cr-Commit-Position: refs/heads/master@{#15089}
2016-11-15 16:22:00 +00:00
asapersson
43cb716e55 Add ToString method to AggregatedStats and log stats at the end of a call.
BUG=webrtc:5283

Review-Url: https://codereview.webrtc.org/2494423002
Cr-Commit-Position: refs/heads/master@{#15088}
2016-11-15 16:20:54 +00:00
brandtr
841de6a47e Add FlexFEC to CallTest.
This is needed for the following coming tests: VideoSendStream, end-to-end,
full stack, and video_loopback.

BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2500943002
Cr-Commit-Position: refs/heads/master@{#15087}
2016-11-15 15:11:00 +00:00
stefan
985d280b46 Add support for field trials to event log visualizer.
BUG=None

Review-Url: https://codereview.webrtc.org/2499283002
Cr-Commit-Position: refs/heads/master@{#15086}
2016-11-15 14:54:16 +00:00
magjed
614d5b78d6 Move VideoEncoderSoftwareFallbackWrapper from webrtc/video_encoder.h to webrtc/media/engine/
The class VideoEncoderSoftwareFallbackWrapper is an implementation
detail of webrtc/media/engine/webrtcvideoengine2.cc and should not be
directly under webrtc/video_encoder.h. The main purpose is to improve
the dependency graph in WebRTC so that VideoEncoderSoftwareFallbackWrapper
can depend on cricket::VideoCodec.

The test for VideoEncoderSoftwareFallbackWrapper is also moved from
webrtc/video/video_encoder_unittest.cc to
webrtc/media/engine/videoencodersoftwarefallbackwrapper_unittest.cc.

BUG=webrtc:6337

Review-Url: https://codereview.webrtc.org/2484863009
Cr-Commit-Position: refs/heads/master@{#15085}
2016-11-15 14:31:01 +00:00
henrika
92fd8e6b17 Removes usage of system_wrappers/include/clock.h in audio_device/
BUG=webrtc:6687
NOTRY=TRUE

Review-Url: https://codereview.webrtc.org/2501603002
Cr-Commit-Position: refs/heads/master@{#15084}
2016-11-15 13:38:02 +00:00
brandtr
43c31e7afe Make configuration logic harsher in FlexfecReceiveStream.
Before this change, the configuration logic in FlexfecReceiveStream
tried to make unsupported configurations work, e.g., by dropping the
protection of some media streams when multiple media streams were
protected by a single FlexFEC stream. This CL makes the configuration logic
return more errors on such unsupported configurations.
This harmonizes the logic with the new configuration logic in
VideoSendStream, for the FlexfecSender.

BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2499963002
Cr-Commit-Position: refs/heads/master@{#15083}
2016-11-15 13:26:51 +00:00
brandtr
e950cadba5 Wire up FlexfecSender in RTP module and VideoSendStream.
FlexfecSender is owned and configured by VideoSendStream.

BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2501503003
Cr-Commit-Position: refs/heads/master@{#15082}
2016-11-15 13:25:44 +00:00
ivoc
20270be807 Make sure that multiband processing is active when the residual echo detector is active.
BUG=webrtc:6525

Review-Url: https://codereview.webrtc.org/2481363008
Cr-Commit-Position: refs/heads/master@{#15081}
2016-11-15 13:24:41 +00:00
stefan
b2b61b359c Rename the adapt audio bitrate experiment.
BUG=webrtc:5079

Review-Url: https://codereview.webrtc.org/2498233003
Cr-Commit-Position: refs/heads/master@{#15080}
2016-11-15 13:23:35 +00:00
ivoc
b829d9f2ee Add AudioOption for residual echo detector, and enable the echo detector by default on non-mobile platforms.
BUG=webrtc:6525

Review-Url: https://codereview.webrtc.org/2493753002
Cr-Commit-Position: refs/heads/master@{#15079}
2016-11-15 10:34:54 +00:00
henrik.lundin
79dfdadbc8 Avoid left-shifting negative values in a number of places
This is undefined behavior, according to specification.

BUG=chromium:661133

Review-Url: https://codereview.webrtc.org/2500953003
Cr-Commit-Position: refs/heads/master@{#15078}
2016-11-15 09:45:59 +00:00
philipel
fd5a20fd68 New jitter buffer experiment.
BUG=webrtc:5514

Review-Url: https://codereview.webrtc.org/2480293002
Cr-Commit-Position: refs/heads/master@{#15077}
2016-11-15 08:58:06 +00:00
denicija
77bfd7c1b8 Add ARDSettingsModelTests to apprtcmobile_test target.
Also extract all iOS sources into a static library configuration
so it's easier to include them in the test target as well.
Also, fix a wrong test that was undiscovered because the
tests were not running

BUG=webrtc:6707

Review-Url: https://codereview.webrtc.org/2502623002
Cr-Commit-Position: refs/heads/master@{#15076}
2016-11-15 08:41:31 +00:00
zijiehe
8bc9326a0b DirectX capturer flickers on the second monitor
In DxgiOutputDuplicator, we need to convert between a monitor based coordinate
and a entire screen based coordinate. i.e. Copying an updated area from a
monitor (an output in DirectX API) to the entire screen frame (DesktopFrame).
But DxgiOutputDuplicator always assumes the coordinate is based on screen frame.
So we only need to convert a rectange in updated_region to monitor based
coordinate when copying data from texture_. But in last_frame_, the data are
always based on screen coordinate.

So fixes are both required in line 167 and line 180. In the previous one, we do
not need to convert the DesktopRect, which is already screen based, into screen
based coordinate. In the late one, we do not need to convert the DesktopRect at
all. So after these two changes, DxgiOutputDuplicator::TargetRect() function can
be removed.

Flickers of DirectX capturer can happen on any devices, but a virtual machine
can easily reproduce it. While on a regular high performance machine, it's
harder, but not totally impossible, to reproduce the issue.

BUG=314516

Review-Url: https://codereview.webrtc.org/2495143002
Cr-Commit-Position: refs/heads/master@{#15075}
2016-11-15 02:20:41 +00:00
jamiewalch
69a0e3edea Use a default mouse cursor if XFixes is not supported.
BUG=chromium:428886

Review-Url: https://codereview.webrtc.org/2493413002
Cr-Commit-Position: refs/heads/master@{#15074}
2016-11-15 02:04:38 +00:00
solenberg
7602aabdc0 Remove usage of VoEBase::AssociateSendChannel() from WVoMC.
- Functionality now implemented in AudioReceiveStream and Call.
- Added some missing function to MockChannelProxy.

BUG=webrtc:4690

Review-Url: https://codereview.webrtc.org/2461523002
Cr-Commit-Position: refs/heads/master@{#15072}
2016-11-14 19:30:16 +00:00
sergeyu
26b675625f Fix BitrateControllerImpl not to ignore BW probe results mid-call.
Previously when BitrateControllerImpl::OnDelayBasedBweResult() is
called as result of a probe it was calling
bandwidth_estimation_.SetSendBitrate(), but not
UpdateDelayBasedEstimate(). As result SendSideBandwidthEstimation was
effectively ignoring probe results as it kept the old
delay_based_bitrate_bps_ value, which caps the resulting bitrate.

BUG=webrtc:6332,webrtc:6710

Review-Url: https://codereview.webrtc.org/2481383002
Cr-Commit-Position: refs/heads/master@{#15071}
2016-11-14 18:53:03 +00:00