Commit Graph

6455 Commits

Author SHA1 Message Date
4a66e4a4d8 Make the separation between target and interferer scenario depend on microphone spacing in NonlinearBeamformer
Depends on this CL: https://codereview.webrtc.org/1378973003/

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

Cr-Commit-Position: refs/heads/master@{#10330}
2015-10-20 01:02:43 +00:00
0d97d53808 Fix off-by-one error in PRNG.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#10328}
2015-10-19 21:07:46 +00:00
023f3ef029 Create network change notifier and pass the event to NetworkManager
BUG=

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

Cr-Commit-Position: refs/heads/master@{#10325}
2015-10-19 16:39:38 +00:00
0dbf0090a9 Remove the video channel id completely.
BUG=webrtc:5079

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

Cr-Commit-Position: refs/heads/master@{#10324}
2015-10-19 15:12:19 +00:00
65a036780b Revert of Add screenshare perf tests with lossy links (patchset #1 id:1 of https://codereview.webrtc.org/1409513005/ )
Reason for revert:
Reverting to see of this resolves build bot failures (Nexus 7.2, especially debug) which now seems to sometimes fail to start tests altogether.

Original issue's description:
> Add screenshare perf tests with lossy links
>
> BUG=
>
> Committed: https://crrev.com/4af0f1a098bc908cfe825981b825687673d5134a
> Cr-Commit-Position: refs/heads/master@{#10290}

TBR=pbos@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#10322}
2015-10-19 10:59:13 +00:00
5a28939392 Added thread checker to webrtc::Call.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#10321}
2015-10-19 10:39:27 +00:00
22993e1a0c Unify FrameType and VideoFrameType.
Prevents some heap allocation and frame-type conversion since interfaces
mismatch. Also it's less confusing to have one type for this.

BUG=webrtc:5042
R=magjed@webrtc.org, mflodman@webrtc.org, henrik.lundin@webrtc.org, solenberg@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10320}
2015-10-19 09:39:15 +00:00
4306fc70d7 Add histogram for percentage of sent frames that are limited in resolution due to quality:
- "WebRTC.Video.QualityLimitedResolutionInPercent"

and if a frame is downscaled, the average number of times the frame is downscaled:
- "WebRTC.Video.QualityLimitedResolutionDownscales"

BUG=

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

Cr-Commit-Position: refs/heads/master@{#10319}
2015-10-19 07:35:27 +00:00
a20de2030f Move ownership of receive ViEChannel to VideoReceiveStream.
This CL changes as little as possible and I'll follow up later with
ownership of the other members in ChannelGroup.

The next step is to remove the id used for channels.

BUG=webrtc:5079

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

Cr-Commit-Position: refs/heads/master@{#10318}
2015-10-19 05:08:29 +00:00
df200d1ef7 Suppressing TestUdpReadyToSendIPv4 on ASan.
The test is flaky on Asan.

BUG=webrtc:4958

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

Cr-Commit-Position: refs/heads/master@{#10313}
2015-10-17 20:10:50 +00:00
3eab10d629 Add back an override of RestoreOriginalPacket.
External consumers may have a dependency on the old name, so this will give them the opportunity to switch over.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#10310}
2015-10-17 08:06:46 +00:00
45daf7b26f Implement new version of the NonlinearBeamformer
Sounds better according to a MUSHRA listening test.
The computational complexity is unaffected.
An empirically estimated gain was added to compensate for the attenuation introduced by the algorithm.
There are some TODOs, which I will address in follow up CLs.

It was tested in Hangouts without headphones and highest volume, to make sure it doesn't affect the AEC.

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

Cr-Commit-Position: refs/heads/master@{#10308}
2015-10-17 00:04:14 +00:00
c7a8b08a7c Add webrtc::AudioSendStream and methods on webrtc::Call to create and delete AudioSendStreams.
AudioSendStream will be replacing the send side of VoiceEngine channels and associated APIs. Hence, they will be used transform recorded audio into RTP/RTCP packets that can be transmitted to another party, according to given parameters.

BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#10307}
2015-10-16 21:35:11 +00:00
6ca1ac4283 Get rid of deprecated HttpClient fail_redirect accessors.
This patch removes set_fail_redirect()/fail_redirect() method accessors
from HttpClient class and converts their usage to
set_redirection_action/redirection_action where appropriate.

BUG=None
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10304}
2015-10-16 18:01:40 +00:00
861c55e583 Transport sequence number should be set also for retransmissions.
This is a reland of https://codereview.webrtc.org/1385563005 which was
reverted since the test was flaky. The reason was a race condition (in
the test) and that NACK wasn't properly set up.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#10303}
2015-10-16 17:01:25 +00:00
1adce14c87 Old config events are no longer removed from RtcEventLog.
Time to keep old events in buffer is now changeable at runtime.
Added unit test for removing old events from buffer.

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

Cr-Commit-Position: refs/heads/master@{#10302}
2015-10-16 15:51:15 +00:00
757077b34e Removing the TFRC Rate Control
This removes the TRFC rate control which does not introduce any help in the
computation of the sending rate.
BUG=5083

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

Cr-Commit-Position: refs/heads/master@{#10299}
2015-10-16 09:52:31 +00:00
949c2f04b4 Move ownership of send ViEChannels and ViEEncoder to VideoSendStream.
This is the first CL to get ready for adapting audio bitrate based on
BWE. I've kept this CL as small as possible and had to add a few getters
to ChannelManager. The next CL will do the same for receive ViEChannels.

The getters are a bit uggly, but is an in-between-state. Let's discuss
future ownership of the different modules and what do do with
ChannelGroup.

BUG=5079

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

Cr-Commit-Position: refs/heads/master@{#10298}
2015-10-16 09:31:14 +00:00
112a3d81db Added functions on libjingle API to start and stop the recording of an RtcEventLog.
BUG=webrtc:4741

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

Cr-Commit-Position: refs/heads/master@{#10297}
2015-10-16 09:22:23 +00:00
65e15bafaa Add native-handle support for single VP8 streams.
Implements SupportsNativeHandle() in SimulcastEncoderAdapter which works
when there's only a single encoder.

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

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

Cr-Commit-Position: refs/heads/master@{#10291}
2015-10-15 17:52:21 +00:00
4af0f1a098 Add screenshare perf tests with lossy links
BUG=

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

Cr-Commit-Position: refs/heads/master@{#10290}
2015-10-15 15:34:06 +00:00
c1aeaf0dc3 Wire up packet_id / send time callbacks to webrtc via libjingle.
BUG=webrtc:4173

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

Cr-Commit-Position: refs/heads/master@{#10289}
2015-10-15 14:26:17 +00:00
27576e0b68 Landmines support to ease clobbering builds
Landmines is a feature used in Chromium that makes it possible to
clobber the build output directory when needed. Example scenarios
are when compiler/tool/infrastructure changes require a full rebuild.
This is mainly to ease clobbering on all bots, but will also ensure
developers don't have to waste time on figuring out what's wrong
(or rely on reading PSA e-mails announcing when such manual action
is required).

This CL depends on https://codereview.chromium.org/1407733002/
being landed and rolled into DEPS first.

BUG=5077
R=kjellander@chromium.org, machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#10287}
2015-10-15 12:24:29 +00:00
a2f30deea3 Log Call {audio, video} stream deletions.
BUG=
R=solenberg@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10286}
2015-10-15 12:22:21 +00:00
5bdddf91d3 Move PRNG from BWE test framework to webrtc/test.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#10285}
2015-10-15 12:10:33 +00:00
ab73d13c4b Remove internal encoders from VCMCodecDatabase.
Encoders need to be externally provided. To use software encoders they
need to be created and registered from the outside.

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

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

Cr-Commit-Position: refs/heads/master@{#10283}
2015-10-15 10:01:48 +00:00
d59daf8023 Merging BaseSession code into WebRtcSession.
After the TransportController CL, BaseSession does little more than
hold a state and an error, and act as an intermediary for the
TransportController. So it doesn't make sense for it to be its own
class.

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

Cr-Commit-Position: refs/heads/master@{#10281}
2015-10-14 22:02:50 +00:00
a9046d0969 Add unit test to decode to a surface texture.
Also parameterise on PeerConnectionParameters to prepare for more test variations. (capture and encode to textures)

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

Cr-Commit-Position: refs/heads/master@{#10279}
2015-10-14 19:55:25 +00:00
65220a70a3 Fix RTPPayloadRegistry to correctly restore RTX, if a valid mapping exists.
Also updated the RTPPayloadRegistry::RestoreOriginalPacket signature to not take the first arg as a **, since it isn't modified.

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

Cr-Commit-Position: refs/heads/master@{#10276}
2015-10-14 18:29:56 +00:00
bd7de0c6ef Delete full-band mode from the iSAC codec
This mode is no longer used.

BUG=4210

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

Cr-Commit-Position: refs/heads/master@{#10275}
2015-10-14 13:06:00 +00:00
06b869f11a Delete iSAC-fb from NetEq
This is no longer used. Related code in the iSAC codec itself will be
deleted a follow-up CL.

BUG=4210

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

Cr-Commit-Position: refs/heads/master@{#10272}
2015-10-14 10:44:59 +00:00
457a61db61 Pause/resume pacer from Call instead of via SendStreams.
BUG=webrtc:5073

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

Cr-Commit-Position: refs/heads/master@{#10271}
2015-10-14 10:13:04 +00:00
b79472a4fb Roll chromium_revision c089d37..159828f (353662:353696)
Due to https://codereview.chromium.org/1397493004 we're now adding
a build_overrides directory in WebRTC. Thanks to this, we no longer
need to pass --args="build_with_chromium=false" when running GN in
standalone WebRTC.

Change log: c089d37..159828f
Full diff: c089d37..159828f

No dependencies changed.
No update to Clang.

BUG=webrtc:5070,chromium:541791
TBR=tommi@webrtc.org
CQ_EXTRA_TRYBOTS=tryserver.webrtc:win_baremetal,mac_baremetal,linux_baremetal

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

Cr-Commit-Position: refs/heads/master@{#10270}
2015-10-14 06:14:10 +00:00
7dc39f331a Avoid data race in RtcpReceiver.
See eg https://build.chromium.org/p/client.webrtc/builders/Linux%20Tsan%20v2/builds/3930/steps/video_engine_tests/logs/stdio

Also some cleanup, lock annotations.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#10266}
2015-10-13 16:17:56 +00:00
9ea2147e5c Delete iSAC-fb from AudioCodingModule
This is no longer used. Related code in NetEq and the iSAC codec itself
will be deleted in follow-up CLs.

BUG=4210

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

Cr-Commit-Position: refs/heads/master@{#10264}
2015-10-13 13:28:04 +00:00
3402bcda56 Make the WARN_UNUSED_RESULT macro match the Chromium one.
BUG=none

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

Cr-Commit-Position: refs/heads/master@{#10259}
2015-10-12 23:28:20 +00:00
fc950848e3 Fix: RefCountInterface: Make AddRef() and Release() const
The landed CL contained some unwanted changes.

TBR=tommi

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

Cr-Commit-Position: refs/heads/master@{#10255}
2015-10-12 14:10:50 +00:00
1b40a9a8af RefCountInterface: Make AddRef() and Release() const
This CL makes AddRef() and Release() const member methods and the refcount integer mutable. This is reasonable, because they only manage the lifetime of the object, and this is also how it's done in Chromium.

The purpose is to be able to capture a const pointer in a scoped_refptr, which is currenty impossible. The practial problem this CL solves is this:

void Foo::Bar() const {}

rtc::Callback0<void> Foo::MakeClosure() const {
  return rtc::Bind(&Foo::Bar, this);
}

We currently capture |this| as const Foo*. With this CL, |this| will be captured as scoped_refptr<const Foo>.

A test is also added in bind_unittest to check this behaviour.

BUG=webrtc:5065
R=perkj@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10253}
2015-10-12 13:50:50 +00:00
7a975f75e7 Revert of Adding support for simulcast and spatial layers into VideoQualityTest (patchset #10 id:180001 of https://codereview.webrtc.org/1353263005/ )
Reason for revert:
Temporarily reverting as this causes some issues with perf tests. Especially tests with packet loss no longer works.

Original issue's description:
> Adding support for simulcast and spatial layers into VideoQualityTest
>
> The CL includes several changes:
> - Adding flags describing the streams and spatial layers.
> - Reorganizing the order of the flags, to make them easier to maintain.
> - Adding a member .params_ to VideoQualityAnalyzer.
>     (instead of passing it to every member function manually)
> - Updating VideoAnalyzer to support simulcast.
>     (select appropriate ssrc and fix timestamps which are sometimes increased by 1)
> - VP9EncoderImpl already had code for automatic calculation of bitrate for each layer.
>     Changing to first read bitrates and resolution ratios from the flags, if specified.
>     If not specified, reverting to the old code are setting the values automatically.
> - Changing the parameters in LayerFilteringTransport, replacing
>     xx_discard_thresholds with selected_xx, to make it easier to use for the end user.
>
> Committed: https://crrev.com/87f83a9a27d657731ccb54025bc04ccad0da136e
> Cr-Commit-Position: refs/heads/master@{#10215}

TBR=pbos@webrtc.org,mflodman@webrtc.org,ivica@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#10252}
2015-10-12 13:33:24 +00:00
e7f6b565e4 VP9: Enable multi-threading for SVC.
This was disabled due to issues with multi-threading
and spatial layers, but have since been fixed.

R=stefan@webrtc.org
TBR=mflodman@webrtc.org, stefan@webrtc.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#10229}
2015-10-08 20:57:15 +00:00
4e572470a3 Provide RSA2048 as per RFC
Original CL here:
https://codereview.webrtc.org/1329493005

That CL is in patch set #1 of this CL.
This CL resolves a method collision in Chrome.

BUG=webrtc:4972

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

Cr-Commit-Position: refs/heads/master@{#10222}
2015-10-08 16:43:03 +00:00
301aaed813 Update to the RtcEventLog protobuf to remove the DebugEvent message.
This CL restructures the RtcEventLog protobuf format, by removing the DebugEvent message. This is done by moving the LOG_START and LOG_END events to the EventType enum and making a seperate message for audio playout events. In addition to these changes, some fields were added to the AudioReceiveConfig and AudioSendConfig messages, but these are for future use and are not currently logged yet.

This is a follow-up to CL 1340283002 which adds a SSRC to AudioPlayout events in the RtcEventLog.

BUG=webrtc:4741
R=henrik.lundin@webrtc.org, stefan@webrtc.org, terelius@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10221}
2015-10-08 16:07:53 +00:00
8ac544e811 Get rid of deprecated SocketAddress::IsAny() method.
This patch converts the usage of IsAny() to IsAnyIP() and removes the
deprecated method.

BUG=None
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10220}
2015-10-08 14:15:49 +00:00
c671139ef2 Removing M API call for now to green up downstream.
BUG=None

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

Cr-Commit-Position: refs/heads/master@{#10219}
2015-10-08 13:33:56 +00:00
6ffc3309de Remove references to libpeerconnection.
What used to be the libpeerconnection library is now compiled
statically into the Chromium binary, so clean up references it.

BUG=chromium:482123
TBR=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10216}
2015-10-08 12:41:05 +00:00
87f83a9a27 Adding support for simulcast and spatial layers into VideoQualityTest
The CL includes several changes:
- Adding flags describing the streams and spatial layers.
- Reorganizing the order of the flags, to make them easier to maintain.
- Adding a member .params_ to VideoQualityAnalyzer.
    (instead of passing it to every member function manually)
- Updating VideoAnalyzer to support simulcast.
    (select appropriate ssrc and fix timestamps which are sometimes increased by 1)
- VP9EncoderImpl already had code for automatic calculation of bitrate for each layer.
    Changing to first read bitrates and resolution ratios from the flags, if specified.
    If not specified, reverting to the old code are setting the values automatically.
- Changing the parameters in LayerFilteringTransport, replacing
    xx_discard_thresholds with selected_xx, to make it easier to use for the end user.

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

Cr-Commit-Position: refs/heads/master@{#10215}
2015-10-08 12:13:37 +00:00
c1cc854d54 Fixing perf regression caused by refactoring full stack tests
Calling CreateCapturer after CreateStreams. The wrong order of calling those methods seems to have caused perf regressions.

Testing has been done here: https://codereview.webrtc.org/1371113004/

BUG=chromium:534220

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

Cr-Commit-Position: refs/heads/master@{#10212}
2015-10-08 10:44:11 +00:00
e23e737177 Disable pacer disabling.
Since the pacer is always enabled, removing enable/disable which makes
all packet queueing succeed. Also renaming one of the ::SendPackets
::InsertPacket to avoid confusion.

BUG=webrtc:1695, webrtc:2629
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10211}
2015-10-08 09:44:29 +00:00
335204c550 Revert of Provide RSA2048 as per RFC (patchset #9 id:200001 of https://codereview.webrtc.org/1329493005/ )
Reason for revert:
Breaks chrome.

Original issue's description:
> provide RSA2048 as per RFC
>
> BUG=webrtc:4972
>
> Committed: https://crrev.com/0df3eb03c9a6a8299d7e18c8c314ca58c2f0681e
> Cr-Commit-Position: refs/heads/master@{#10209}

TBR=hbos@webrtc.org,juberti@google.com,jbauch@webrtc.org,henrikg@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4972

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

Cr-Commit-Position: refs/heads/master@{#10210}
2015-10-08 09:30:21 +00:00
0df3eb03c9 provide RSA2048 as per RFC
BUG=webrtc:4972

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

Cr-Commit-Position: refs/heads/master@{#10209}
2015-10-08 09:06:20 +00:00