Commit Graph

9315 Commits

Author SHA1 Message Date
3258db26ed Split iSAC encoder/decoder: Test more cases (and make sure they work)
This patch tests separate iSAC encoder and decoder in more cases (32
kHz in addition to 16 kHz, and 30 ms adaptive and 60 ms nonadaptive).

In order to handle 32 kHz adaptive, the decoder needs to be told of
the encoder's sample rate (16 kHz worked already because that's the
default). And since we can't set the encoder's frame size without also
setting its bit rate, we need a way to set the decoder's bit rate as
well.

It turned out to be way too messy to continue verifying that the
bandwidth estimator does something reasonable in all these cases,
because it seems it doesn't. So the GetSetBandwidthInfo is now just
responsible for ensuring that split encoder/decoder behaves the same
as conjoined encoder/decoder; the job of verifying that the bandwidth
estimator does its job properly falls on some other test (that doesn't
exist yet).

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

Cr-Commit-Position: refs/heads/master@{#9583}
2015-07-15 01:54:43 +00:00
2d3b7e2173 AppRTCDemo file logging.
Adds logging macros to log logs to a file. Undeletes CircularFileStream
for that purpose.

BUG=
R=jiayl@webrtc.org, pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9582}
2015-07-14 19:55:56 +00:00
43e7d3bc15 Avoid overflow in checking for emulation bytes in rbsp.
Also fixed an arithmetic issue where a 0 0 3 at the end of the rbsp would include the 3 (that's not a legal bitstream anyway, so it probably wasn't a real bug, but it was incorrect).

This maintains the underflow fix from an earlier CL (https://codereview.webrtc.org/1219493004/). The overflow fix is virtually impossible to hit (hence no unit tests), but is there for strict correctness.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#9581}
2015-07-14 17:45:07 +00:00
ba8c15b857 Merge methods for configuring NACK/FEC/hybrid.
BUG=webrtc:1695
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9580}
2015-07-14 16:36:37 +00:00
caa498abbf Make sure RTCP is sent in tests when receiving packets even if REMB is delayed.
BUG=chromium:509821

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

Cr-Commit-Position: refs/heads/master@{#9579}
2015-07-14 16:14:57 +00:00
ba35d05a49 Cleanup of iOS AudioDevice implementation
TBR=tkchin
BUG=webrtc:4789
TEST=modules_unittests --gtest_filter=AudioDeviceTest* and AppRTCDemo

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

Cr-Commit-Position: refs/heads/master@{#9578}
2015-07-14 15:04:19 +00:00
d6f1a38165 Remove ViEChannel simulcast lock.
Since the number of streams is now known on construction we can
initialize all RTP modules on construction. They are internally locked
so we don't nede a simulcast lock anymore.

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

Review URL: https://webrtc-codereview.appspot.com/52639004 .

Cr-Commit-Position: refs/heads/master@{#9577}
2015-07-14 14:08:14 +00:00
4988ca50df Removed unused variables and the need to include the d3dx9.h file.
BUG=webrtc:3667

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

Cr-Commit-Position: refs/heads/master@{#9576}
2015-07-14 12:35:15 +00:00
870eee4b17 Fix simulator issue where chokes didn't apply to non-congested packets.
Review URL: https://codereview.webrtc.org/1235143002

Cr-Commit-Position: refs/heads/master@{#9575}
2015-07-14 10:54:04 +00:00
a03cd3fdef 1. Override and virtual has to be consistent.
2. provide an implementation for SetIceConnectionReceivingTimeout so that Chrome does not complain.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#9574}
2015-07-14 00:08:11 +00:00
6e2ce6e1ae Allow for framerate reduction for HW encoder.
R=pbos@webrtc.org, stefan@webrtc.org
TBR=glaznev@google.com

Review URL: https://webrtc-codereview.appspot.com/51159004 .

Cr-Commit-Position: refs/heads/master@{#9573}
2015-07-13 23:26:40 +00:00
900996290c Add methods to set the ICE connection receiving_timeout values.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#9572}
2015-07-13 19:19:42 +00:00
45d1fdee9d Revert of Fix simulator issue where chokes didn't apply to non-congested packets. (patchset #2 id:20001 of https://codereview.webrtc.org/1233853002/)
Reason for revert:
Breaks bots.

Original issue's description:
> Fix simulator issue where chokes didn't apply to non-congested packets.
>
> R=magalhaesc@google.com
>
> Committed: 662ae00efa

TBR=magalhaesc@webrtc.org,magalhaesc@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#9571}
2015-07-13 15:37:56 +00:00
662ae00efa Fix simulator issue where chokes didn't apply to non-congested packets.
R=magalhaesc@google.com

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

Cr-Commit-Position: refs/heads/master@{#9570}
2015-07-13 15:32:36 +00:00
5d6e58e76e Improvements to rtc::Bind
BUG=webrtc:4690

Support for rtc::scoped_ptr as return type.
Support for up to 6 input parameters.

R=pthatcher@webrtc.org, solenberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9569}
2015-07-13 09:16:47 +00:00
30409b4dca Add statistics gathering for packet loss.
Adds a class used to classify whether packet loss events are a single packet or multiple packets as well as how many packets have been lost. Also exposes a new function in the RtpRtcp interface to retrieve these statistics.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#9568}
2015-07-11 01:10:08 +00:00
ekm
35b72fbceb Add new variance update option and unittests for intelligibility
- New option for computing variance that is more adaptive with lower complexity.
- Fixed related off-by-one errors.
- Added intelligibility unittests.
- Do not enhance if experiencing variance underflow.

R=andrew@webrtc.org, henrik.lundin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9567}
2015-07-10 21:11:57 +00:00
d10a68e797 Don't create unsignalled receive streams for RTX, RED RTX, and ULPFEC packets.
BUG=webrtc:4389

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

Cr-Commit-Position: refs/heads/master@{#9566}
2015-07-10 18:28:02 +00:00
8647922ea7 Revert the process noise co-variance of the bitrate over-use estimator to its value prior to r9545.
R=pbos@webrtc.org
TBR=tommi@webrtc.org
BUG=crbug:508678

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

Cr-Commit-Position: refs/heads/master@{#9565}
2015-07-10 09:28:46 +00:00
a6d2444c84 Remove BaseSession::SignalNewDescription. It was only used by GTP and now just clutters the code.
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9564}
2015-07-10 04:26:45 +00:00
4d9d097217 Fix follow-up in webrtc/test/field_trial.cc.
BUG=webrtc:4820
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9563}
2015-07-10 00:21:10 +00:00
97f44e1bf6 Remove a superfluous qualifier on an inline method.
Fixes
..\..\third_party\webrtc/base/stringutils.h(295,49) :  warning(clang): extra qualification on member "empty_str" [-Wmicrosoft]

No behavior change, but makes the code more standards-conformant.

BUG=chromium:505296

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

Cr-Commit-Position: refs/heads/master@{#9562}
2015-07-09 23:45:55 +00:00
50cf10d82a Make .gni less sensitive to type of arm_use_neon flags
Comparing with 1 is less clear than using the input flags as
booleans.

BUG=5008276

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

Cr-Commit-Position: refs/heads/master@{#9561}
2015-07-09 16:45:09 +00:00
11324b9561 Wait for a longer time (5 seconds) before establishing the first bandwidth estimate.
This reduces the risk of getting a small initial estimate when doing combined a/v BWE, and the audio stream is received earlier than the video stream.

In addition a check is added to make sure a probe can't reduce the BWE.

R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9560}
2015-07-09 15:28:07 +00:00
bb36fdf95f Remove empty-string comparisons.
Use .empty() and !.empty() in favor of == "" or != "".

BUG=
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9559}
2015-07-09 14:48:27 +00:00
3b1e647b6a Remove media sinks from Channel.
Allows removing MediaRecorder which isn't in use apart from channel
unittests, along with it unittests for MediaRecorder that are flaky when
run in parallel can also go.

BUG=
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9558}
2015-07-09 10:57:57 +00:00
0f620f4e31 Make sure we process all pending offer/answer requests before terminating.
This fixes a bug in the WebRtcSessionDescriptionFactory where messages would be dropped or worse yet processed after the factory was deleted.

BUG=chromium:507307

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

Cr-Commit-Position: refs/heads/master@{#9557}
2015-07-09 10:25:04 +00:00
31acf3d120 Add include_examples GYP variable.
To make it possible to exclude the examples when running
GYP on all.gyp.
The webrtc_examples.gyp already has an OS=="android" condition
inside it, so there's no need to check that before including it.

BUG=webrtc:4242

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

Cr-Commit-Position: refs/heads/master@{#9556}
2015-07-09 08:19:01 +00:00
e987a47f95 Removed some unused variables in Windows code.
Note: Regarding the ICMP6_CLOSE_FUNC variable in winping.cc,
Icmp6CloseHandle does not exist, and IcmpCloseHandle is the correct way
to close an IPv6 handle. Therefore the existing code is correct to use
close_ on both types of connections and this variable is unnecessary.

BUG=505319

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

Cr-Commit-Position: refs/heads/master@{#9555}
2015-07-09 07:54:02 +00:00
61093868b4 Expose the disable encryption option to JNI.
BUG=
R=glaznev@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9554}
2015-07-08 22:25:56 +00:00
54360510ff Add flakyness check based on the recently received packets.
BUG=
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9553}
2015-07-08 18:08:39 +00:00
aa97df4559 Roll chromium_revision 3ead4bc..f8d6ba9 (336983:337800)
Relevant changes:
* src/third_party/icu: 7fe225d..c81a1a3
Details: 3ead4bc..f8d6ba9/DEPS

Clang version was not updated in this roll.

TBR=phoglund

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

Cr-Commit-Position: refs/heads/master@{#9552}
2015-07-08 17:34:47 +00:00
cbd44e6d73 Use Resampler default constructor in VAD
Review URL: https://codereview.webrtc.org/1224693013

Cr-Commit-Position: refs/heads/master@{#9551}
2015-07-08 03:21:58 +00:00
b8b0143a11 Tighten link-local routing exclusion check
Also add a unit test for this behavior.

BUG=https://code.google.com/p/webrtc/issues/detail?id=4823
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9550}
2015-07-07 23:46:01 +00:00
6e89b25143 VP9 wrapper: Adjust speed setting.
Use lower speed setting for smaller resolutions.

R=stefan@webrtc.org
TBR=stefan@webrtc.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#9549}
2015-07-07 21:40:51 +00:00
d436298332 Remove ResetStatistics from RTP feedback.
BUG=
R=asapersson@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9548}
2015-07-07 15:32:56 +00:00
19492f1c4c Add scoped class for overriding field trials.
To be used in tests that depend on specific field-trial settings without
overwriting the command-line flag for overriding field trials.

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

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

Cr-Commit-Position: refs/heads/master@{#9547}
2015-07-07 15:22:33 +00:00
a7d70546ad Remove VCM_*_PAYLOAD_TYPE constants.
These payload types aren't directly connected to any payload type, and
the payload type still has to be negotiated externally. As such these
constants are just a source of confusion.

BUG=
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9546}
2015-07-07 14:35:54 +00:00
c62642c7a6 Make the BWE threshold adaptive.
This improves self-fairness and competing for resources with TCP flows.

BUG=4711

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

Cr-Commit-Position: refs/heads/master@{#9545}
2015-07-07 11:20:40 +00:00
4e7aa43ea0 audio_processing: Adds two UMA histograms logging delay jumps in AEC
We have two histograms today that trigger on large jumps in either platform reported stream delays (WebRTC.Audio.PlatformReportedStreamDelayJump) or the system delay in the AEC (WebRTC.Audio.AecSystemDelayJump). The latter is the internal buffer size in the AEC.
The sizes of such jumps are of relevance since it can harm the AEC and even put it in a complete failure state. It is hard, not to say impossible, to tell how frequent it is.
Therefore, two complementary histograms are added; number of jumps in each metric.
This way we get a quick way to determine how often a jump occurs in general and also how frequent it is within a call.

This is solved by adding a counter for each metric.
The counter is activated either upon an event trigger or if we know for sure when the AEC is running.
Unfortunately, we can't rely on the destructor at the end of a call so we add a public API for the user to take on the action of calling it at the end of a call.

Tested locally by building ToT chromium including changes and three triggered jumps (200, 50 and 60 ms).
The stats picked up the 60 and 200 ms jumps as expected.

BUG=488124
R=asapersson@webrtc.org, pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9544}
2015-07-07 09:50:16 +00:00
f935bcc2f7 Use strcmp instead of == operator for c.name and name to find appropriate classes for WebRtcAudio*.java
.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#9543}
2015-07-07 08:10:21 +00:00
2bad88d164 Prevent heap overflows for incorrect FEC packet lengths.
Bugs found by manual inspection of code, not by fuzzing or packet
replays. At least one of them confirmed by local fuzzing.

BUG=chromium:496094, webrtc:4771
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9542}
2015-07-06 10:09:15 +00:00
468e62a974 Remove MimdRateControl and factories for RemoteBitrateEstimor.
BUG=
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9541}
2015-07-06 08:51:01 +00:00
d92f2674d7 audio_processing: Changed kMinDiffDelayMs from 50 to 60 ms
The UMA histograms WebRTC.Audio.AecSystemDelayJump and WebRTC.Audio.PlatformReportedStreamDelayJump triggers if the jump is larger than kMinDiffDelayMs.
Especially WebRTC.Audio.AecSystemDelayJump is sensitive around 50 ms differences, since the granularity is 4 ms and we can get a significant amount of hits at 52 ms.
Therefore, a change to 60 ms can make the logging more robust. The effect of not logging jumps in the interval 50-60 ms is of minor importance since they are not likely to affect the AEC performance. It's when we get values from ~100 ms and above that we should be worried.

Tested with a local ToT Chromium build where 52, 64 and 200 ms jumps were forced.

BUG=488124
TBR=henrik.lundin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9540}
2015-07-05 08:46:10 +00:00
72a8cee425 Targets should not depend on protobuf when enable_protobuf=0.
BUG=webrtc:4741
R=henrik.lundin@webrtc.org, stefan@webrtc.org, ivoc@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9539}
2015-07-03 15:53:22 +00:00
894ad94302 Fix occurrences of const typed declaration without initialization
This fixes compilation errors as the following:

error: constructor must explicitly initialize the const member

BUG=506663
R=aluebs@webrtc.org, tommi@webrtc.org

Signed-off-by: Eduardo Lima (Etrunko) <eduardo.lima@intel.com>

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

Cr-Commit-Position: refs/heads/master@{#9538}
2015-07-03 15:34:40 +00:00
ac8869ec5a Report metrics about negotiated ciphers.
This CL adds an API to the metrics observer interface to report negotiated
ciphers for WebRTC sessions. This can be used from Chromium for UMA metrics
later to get an idea which cipher suites are used by clients (e.g. compare
the use of DTLS 1.0 / 1.2).

BUG=428343

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

Cr-Commit-Position: refs/heads/master@{#9537}
2015-07-03 08:36:22 +00:00
366e95252a Follow-up: Remove old ReportedDelay AEC config
This is a follow-up to r9531, where the configuration ReportedDelay
was replaced by DelayAgnostic. The config was kept in the code to
avoid API breakages. In https://codereview.chromium.org/1219263003/
depending code has been updated to avoid breakages.

BUG=webrtc:4651
R=bjornv@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9536}
2015-07-03 07:50:13 +00:00
2224294c52 iSAC: Functions for importing and exporting bandwidth est. info
They make it possible to send bandwidth estimation info from decoder
to encoder even if they are separate objects (which we want them to be
because multithreading).

R=henrik.lundin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9535}
2015-07-03 02:04:46 +00:00
cd4a9bd225 Remove decoder-thread instantiation for senders.
Reduces number of running (high-priority) threads, even though the
thread was practically blocked all the time.

Also adding DCHECKs to make sure we're not trying to use certain
sender-only methods on receivers and vice versa.

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

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

Cr-Commit-Position: refs/heads/master@{#9534}
2015-07-02 13:32:21 +00:00