Commit Graph

4031 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
f4eca64596 iSAC: Pad with zeros instead of random data, to make testing easier
Using random "garbage" bytes makes testing harder for no good reason.
Any deterministic sequence would do, but we choose all zeros because
it's simple.

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

Cr-Commit-Position: refs/heads/master@{#9532}
2015-07-02 09:10:11 +00:00
0f133b99c6 Rename APM Config ReportedDelay to DelayAgnostic
We use this Config struct for enabling/disabling the delay agnostic
AEC. This change renames it to DelayAgnostic for readability reasons.

NOTE: The logic is reversed in this CL. The old ReportedDelay config
turned DA-AEC off, while the new DelayAgnostic turns it on.

The old Config is kept in parallel with the new during a transition
period. This is to avoid problems with API breakages. During this
period, ReportedDelay is disabled or DelayAgnostic is enabled, DA-AEC
is engaged in APM.

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

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

Cr-Commit-Position: refs/heads/master@{#9531}
2015-07-02 07:17:59 +00:00
a771bf8ee8 Fix some clang warnings with -Wmissing-braces in WebRTC.
Clang warns if there are missing braces around a subobject
initializer. The most common idiom that triggers this is:
  STRUCT s = {0};
if the first field of STRUCT is itself a struct. This can
be more simply written as:
  STRUCT s = {};
which also prevents the warning from firing.

Other instances of the warning have been fixed by adding
braces where appropriate.

BUG=505297
TBR=jiayl@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9529}
2015-07-02 00:52:18 +00:00
d830aeafe9 Add tkchin to video_coding OWNERS.
BUG=
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9528}
2015-07-01 23:01:56 +00:00
545727ecce Move early-return in TimeToSendPadding.
Prevents taking send_critsect_ for checking sending status when not
actually intending to send padding.

BUG=
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9526}
2015-07-01 13:31:14 +00:00
bd2522abf7 Fail RTP parsing on excessive padding length.
BUG=webrtc:4771
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9525}
2015-07-01 12:35:56 +00:00
4daa90eed7 Prevent size_t underflow in H264 SPS parsing.
BUG=webrtc:4771
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9523}
2015-07-01 10:00:20 +00:00
2f1509395b Prevent OOB read on truncated H264 headers.
Prevents OOB reads on truncated FU-A NAL units, StapA headers and past
truncation just after StapA headers.

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

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

Cr-Commit-Position: refs/heads/master@{#9522}
2015-06-30 15:23:42 +00:00
7ada923a94 Prevent OOB reads for zero-length H264 payloads.
Also fixes zero-length OOB reads for generic packetization.

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

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

Cr-Commit-Position: refs/heads/master@{#9521}
2015-06-30 12:09:47 +00:00
48c3839e70 Prevent depacketizer OOB reads on zero-length VP8 payload.
BUG=webrtc:4771
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9520}
2015-06-30 09:12:09 +00:00
6e355af348 Added fields for configuration information to the protobuf format
in the ACMDump. The ACMDump interface itself is not updated, so there
is no way (yet) to actually write the configuration fields.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#9519}
2015-06-30 08:51:19 +00:00
2e43b26c78 Prevent OOB reads in FEC packets without complete RED headers.
BUG=webrtc:4771
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9518}
2015-06-30 08:32:47 +00:00
1adbacb19d Adding method IsInBeam to beamformer class.
This was previously reviewed at:
https://webrtc-codereview.appspot.com/53729004/

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

Cr-Commit-Position: refs/heads/master@{#9517}
2015-06-29 23:15:23 +00:00
71f6f4405c iOS HW H264 support.
First step towards supporting H264 on iOS. More tuning/experimentation
required in future CLs. Tested using AppRTCDemo on iPhone6 + iPad Mini.
Future work to get it working on OS/X, simulator (renders black screen
currently) and with the Android AppRTCDemo. Currently protected with a
compile time guard.

BUG=4081
R=andrew@webrtc.org, haysc@webrtc.org, holmer@google.com, jiayl@webrtc.org, kjellander@webrtc.org, pbos@webrtc.org, phoglund@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9515}
2015-06-29 21:35:08 +00:00
70d5c475dd Prevent out-of-bounds reads for short FEC packets.
BUG=webrtc:4771
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9514}
2015-06-29 14:22:09 +00:00
1ca324f237 Adds UMA histogram for system delay jumps
Sudden platform system delay jumps can hurt AEC and we have no stats that monitor these jumps. How often do they occur, and when they are reported are they accurate?

This CL logs all jumps in both the reported and actual delay.

The histogram has been tested with a chromium build where a fake jump of 200 ms was applied after 5 seconds and it was registered correctly in chrome://histograms

BUG=488124
R=henrik.lundin@webrtc.org, peah@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9513}
2015-06-29 12:57:42 +00:00
c6891248b5 Simplify OWNERS structure in modules/audio_coding
All ownership is now handled by the top-level OWNERS file in
modules/audio_coding.

NOTRY=True

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

Cr-Commit-Position: refs/heads/master@{#9512}
2015-06-29 11:54:50 +00:00
9b9f338f44 Adding Minyue to audio_coding/OWNERS
Review URL: https://codereview.webrtc.org/1205313002

Cr-Commit-Position: refs/heads/master@{#9511}
2015-06-29 09:29:24 +00:00
241338eeb7 Added support for keeping a buffer of the previous X seconds, to add to an AcmDump.
In addition, timestamps are now absolute instead of relative to LOG_START.

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

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

Cr-Commit-Position: refs/heads/master@{#9509}
2015-06-26 08:19:33 +00:00
ebe7422372 Created SphericalPoint in array_util.h
Review URL: https://codereview.webrtc.org/1211703002

Cr-Commit-Position: refs/heads/master@{#9507}
2015-06-25 21:24:11 +00:00
93fb53acf5 Adding a new ChangeLogger class to handle UMA logging of bitrates
This change introduces the sub-class ChangeLogger in AudioCodingModuleImpl. The class writes values to the named UMA histogram, but only if the value has changed since the last time (and always for the first call). This is to avoid the problem with audio codecs being registered but never used. Before this change, these codecs' bitrate was also logged, even though they were never used.

BUG=chromium:488124
R=kwiberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9506}
2015-06-25 20:03:12 +00:00
ecf6b81644 Pull the Voice Activity Detector out from the AGC
This change generates bit-exact values when running through audioproc_f than before.

This change was originally uploaded here:
* https://codereview.webrtc.org/1181933002/
* https://codereview.webrtc.org/1177043017/

And reverted because of an ASAN problem in Chrome here:
* https://codereview.webrtc.org/1192863006/
* https://codereview.webrtc.org/1194963003/

TBR=andrew@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9505}
2015-06-25 19:28:55 +00:00
0ea42d319e Send Sdes using RtcpPacket
BUG=2450
R=asapersson@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9504}
2015-06-25 12:46:23 +00:00
51c7cbb86a Revert "Pull the Voice Activity Detector out from the AGC"
This reverts commit 518c683f3e413523a458a94b533274bd7f29992d.

Breaks Linux-Asan bot
https://uberchromegw.corp.google.com/i/client.webrtc/builders/Linux%20Asan/builds/4348/steps/libjingle_peerconnection_unittest/logs/stdio

BUG=
TBR=aluebs@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9503}
2015-06-25 06:46:14 +00:00
518c683f3e Pull the Voice Activity Detector out from the AGC
This change generates bit-exact values when running through audioproc_f than before.

This change was originally uploaded here:
* https://codereview.webrtc.org/1181933002/
* https://codereview.webrtc.org/1177043017/

And reverted because of an ASAN problem in Chrome here:
* https://codereview.webrtc.org/1192863006/
* https://codereview.webrtc.org/1194963003/

TBR=andrew@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9502}
2015-06-25 01:46:03 +00:00
ac4234ccfc Add a [rtc_]build_with_neon variable to unify conditions.
Also consolidate ARM options for gn in an arm_neon_config.

R=jridges@masque.com, kjellander@webrtc.org, zhongwei.yao@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#9501}
2015-06-25 01:25:59 +00:00