8673 Commits

Author SHA1 Message Date
deadbeef
824f586213 Fixing segfault caused by TurnServer.
TURN server sockets were being destroyed asynchronously, which could
happen after the TurnServer itself (and even the VirtualSocketServer
used by the sockets) were destroyed.

This is fixed easily by using an AsyncInvoker (to ensure the async
operation doesn't occur after its initiator is destroyed), and keeping
the objects waiting for deletion in a unique_ptr vector.

Review-Url: https://codereview.webrtc.org/2264343002
Cr-Commit-Position: refs/heads/master@{#13907}
2016-08-24 22:06:58 +00:00
Taylor Brandstetter
1d7a637340 Fixing off-by-one error with max SCTP id.
Normally, when creating a data channel with an out-of-range ID,
createDataChannel returns nullptr. But due to an off-by-one
error, creating a data channel with ID 1023 returns a data channel
that silently fails later.

This probably occurred because it wasn't clear whether "kMaxSctpSid" was an
inclusive or exclusive maximum, so I changed the value to
"kMaxSctpStreams". This wasn't caught by unit tests because the
off-by-one error persisted to the unit tests as well.

Also getting rid of some dead code. We were adding SCTP streams to the
ContentDescription object but they weren't being used.

BUG=619849
R=pthatcher@webrtc.org, skvlad@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13906}
2016-08-24 20:15:35 +00:00
deadbeef
fcada90485 Fixing timestamp comparison assert.
Wasn't handling wrap-around properly. Noticed this because a test
failed.

TBR=henrik.lundin@webrtc.org

Review-Url: https://codereview.webrtc.org/2271203003
Cr-Commit-Position: refs/heads/master@{#13905}
2016-08-24 19:45:18 +00:00
glaznev
36a06a94fb Increase QP threshold for H.264 encoder QP based scaling.
BUG=b/30743634

Review-Url: https://codereview.webrtc.org/2272893002
Cr-Commit-Position: refs/heads/master@{#13904}
2016-08-24 19:09:22 +00:00
tkchin
118402520f Restart capture session if needed on active.
We've seen some cases of nonrecoverable runtime error when entering the foreground. This is a theoretical fix to see if we can restart after willEnterForeground in didBecomeActive instead.

NOTRY=True
BUG=

Review-Url: https://codereview.webrtc.org/2258583004
Cr-Commit-Position: refs/heads/master@{#13903}
2016-08-24 19:06:01 +00:00
henrik.lundin
5fac3f0892 NetEq: Don't check sample rate and frame size upon error
If an error happens in the GetAudio call, for instance when corrupt
payloads are inserted, GetAudio wil return an error. In this case, the
audio frame is not always correctly populated, which is to be expected.

BUG=webrtc:5447

Review-Url: https://codereview.webrtc.org/2272963002
Cr-Commit-Position: refs/heads/master@{#13902}
2016-08-24 18:18:54 +00:00
henrik.lundin
d1a10a0f77 Make FakeDecodeFromFile handle codec-internal CNG
This implementation interprets payloads of size 1 as codec-internal SID
frames, marking the start of a CNG period. Changes were made to other
parts of the test payload chain, since it had to make use of the virtual
payload size in the case of header-only RTP files.

BUG=webrtc:2692

Review-Url: https://codereview.webrtc.org/2275903002
Cr-Commit-Position: refs/heads/master@{#13901}
2016-08-24 17:59:00 +00:00
kjellander
f02207dde9 MB: Flip Mac bots to GN by default.
Change the previous GN configs to build GYP instead
(since we'll keep GYP around for a while) but exclude tests
and examples for that config, since we'll only support the production
code for GYP.

Add new configs for upcoming rename of those bots to GYP instead
of GN.

BUG=webrtc:5949
NOTRY=True

Review-Url: https://codereview.webrtc.org/2274713003
Cr-Commit-Position: refs/heads/master@{#13900}
2016-08-24 16:40:04 +00:00
ehmaldonado
b0b0edb8af Roll chromium_revision e3860bd297..938114be1e (412289:414059)
Change log: e3860bd297..938114be1e
Full diff: e3860bd297..938114be1e

Changed dependencies:
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/96e1a25943..405da48900
* src/third_party/libvpx/source/libvpx: 2d1e63d0c5..f5bd76f5c1
DEPS diff: e3860bd297..938114be1e/DEPS

Clang version changed 277962:278861
Details: e3860bd297..938114be1e/tools/clang/scripts/update.py

TBR=marpan@webrtc.org
BUG=webrtc:6245
NOTRY=True

Review-Url: https://codereview.webrtc.org/2269953002
Cr-Commit-Position: refs/heads/master@{#13899}
2016-08-24 15:16:25 +00:00
kjellander
28a0ffdd52 GN: Synchronize resources between Android and iOS.
iOS tests packaged into an .app uses the same way of
defining resources (the data attribute). Some iOS
simulator tests are failing due to missing resources, so
let's sync them all.

BUG=webrtc:5949
NOTRY=True

Review-Url: https://codereview.webrtc.org/2277753003
Cr-Commit-Position: refs/heads/master@{#13898}
2016-08-24 14:48:48 +00:00
maxmorin
2ec45b9ffa Make dependency of audio_device of ApplicationServices explicit.
Tested in https://codereview.webrtc.org/2276903002.

BUG=webrtc:6170
NOTRY=true

Review-Url: https://codereview.webrtc.org/2273713003
Cr-Commit-Position: refs/heads/master@{#13895}
2016-08-24 13:51:11 +00:00
philipel
4e7e8d7300 Now probe for x3 and x6 of the initial start bitrate and allow for faster receive bitrates when calculating probing estimates.
BUG=webrtc:5859

Review-Url: https://codereview.webrtc.org/2269993002
Cr-Commit-Position: refs/heads/master@{#13894}
2016-08-24 13:27:02 +00:00
ivoc
2c670dbf13 Added GN target for webrtc_opus_fec_test.
BUG=webrtc:6191
NOTRY=True
NOPRESUBMIT=True

Review-Url: https://codereview.webrtc.org/2268213002
Cr-Commit-Position: refs/heads/master@{#13893}
2016-08-24 13:11:27 +00:00
ehmaldonado
7a0ff2f700 Disable examples for GYP Android bots.
When rolling Chromium into WebRTC, these fail to compile since chromium
no longer supports GYP.

BUG=webrtc:6252
NOTRY=True

Review-Url: https://codereview.webrtc.org/2275973003
Cr-Commit-Position: refs/heads/master@{#13892}
2016-08-24 13:09:21 +00:00
sakal
98468bb456 Revert of GN build rules for four audio processing test executables (patchset #3 id:40001 of https://codereview.webrtc.org/2267403003/ )
Reason for revert:
Breaks most of chromium.webrtc.fyi bots.

Original issue's description:
> GN build rules for four audio processing test executables
>
> click_annotate, intelligibility_proc, nonlinear_beamformer_test, and
> transient_suppression_test.
>
> BUG=webrtc:5949
>
> Committed: https://crrev.com/538b5606a3fb6310aab7a7e747aee16eac885f02
> Cr-Commit-Position: refs/heads/master@{#13890}

TBR=kjellander@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:5949

Review-Url: https://codereview.webrtc.org/2274813004
Cr-Commit-Position: refs/heads/master@{#13891}
2016-08-24 12:04:31 +00:00
kwiberg
538b5606a3 GN build rules for four audio processing test executables
click_annotate, intelligibility_proc, nonlinear_beamformer_test, and
transient_suppression_test.

BUG=webrtc:5949

Review-Url: https://codereview.webrtc.org/2267403003
Cr-Commit-Position: refs/heads/master@{#13890}
2016-08-24 11:38:54 +00:00
philipel
0561bdf833 Only use payload size within the know send/receive interval for probing calculations.
BUG=webrtc:5859

Review-Url: https://codereview.webrtc.org/2254733005
Cr-Commit-Position: refs/heads/master@{#13889}
2016-08-24 10:44:01 +00:00
kwiberg
619a211562 iLBC: Handle a case of bad input data
We detect an unreasonable state (caused by a bad encoded stream)
before it can lead to problems, and handle it by resetting the
decoder.

NOPRESUBMIT=true
BUG=chromium:617124

Review-Url: https://codereview.webrtc.org/2255203002
Cr-Commit-Position: refs/heads/master@{#13888}
2016-08-24 09:46:48 +00:00
philipel
0aa9d1808b Set send side bitrate estimate on successful probing attempt.
BUG=webrtc:5859

Review-Url: https://codereview.webrtc.org/2263973004
Cr-Commit-Position: refs/heads/master@{#13887}
2016-08-24 09:45:42 +00:00
kjellander
f944c356e8 GN: Add resources for webrtc_perf_tests on Android
BUG=webrtc:6250
TBR=ehmaldonado@webrtc.org
NOTRY=True

Review-Url: https://codereview.webrtc.org/2271143003
Cr-Commit-Position: refs/heads/master@{#13885}
2016-08-24 09:29:20 +00:00
ivoc
e51b41ae44 Added GN target for isac_test.
BUG=webrtc:6191
NOTRY=True
NOPRESUBMIT=True

Review-Url: https://codereview.webrtc.org/2267423002
Cr-Commit-Position: refs/heads/master@{#13884}
2016-08-24 09:26:04 +00:00
aleloi
5d167d6829 Removals and renamings in the new audio mixer.
Removed the OutputMixer part of the new mixer and renamed the new
mixer from NewAudioConferenceMixer to AudioMixer.

NOTRY=True

Review-Url: https://codereview.webrtc.org/2249213005
Cr-Commit-Position: refs/heads/master@{#13883}
2016-08-24 09:21:00 +00:00
nisse
76f91cd08f Add ThreadChecker to the TimestampAligner class.
BUG=

Review-Url: https://codereview.webrtc.org/2270773002
Cr-Commit-Position: refs/heads/master@{#13882}
2016-08-24 08:58:50 +00:00
aleloi
665d181ccc Increased column width for python tool rtp_analyzer.py.
TBR=phoglund@webrtc.org
NOTRY=True

Review-Url: https://codereview.webrtc.org/2247303008
Cr-Commit-Position: refs/heads/master@{#13881}
2016-08-24 08:48:25 +00:00
aleloi
30be5d7cf4 Updated mixer unittests and fixed a related bug in the new mixer.
Changes to the mixer unittests:

Removed the tests related to the former 'OutputMixer', as it's going
to be removed. Removed incorrect comparison tests with the old mixer
because doing identical mixing decisions with the old mixer proved
unviable.

When the new mixer went from kMaximumAmountOfMixedAudioSources in the
last iteration to kMaximumAmountOfMixedAudioSources+1, it could hit an
RTC_NOTREACHED(); Added fix to mixer and test
AudioMixer.RampedOutSourcesShouldNotBeMarkedMixed that covers that
case.

NOTRY=True

Review-Url: https://codereview.webrtc.org/2253153004
Cr-Commit-Position: refs/heads/master@{#13880}
2016-08-24 08:38:50 +00:00
hbos
615d3013de RTCStats and RTCStatsReport added (webrtc/stats).
The old and new getStats are very different. This CL proposes rewriting
the new getStats from scratch with a bottom-up approach, starting with
the fundamental stats classes. This will allow cleaner and more
efficient code that is more aligned with the spec.

RTCStats and subclasses are the equivalent to RTCStats and RTCStats-
-derived dictionaries from the specs[1][2]. The dictionary members are
public member variables of type RTCStatsMember<T>, where T is one of the
supported types. All members derive from RTCStatsMemberInterface and
iteration of members is possible with RTCStats::Members().
The members are not stored in a map for performance and readability.
Type checking is supported with static class variables, kType.

Only the supported member types T are specialized and may be
instantiated, and sequences are supported with std::vector<...>. Type
checking is again supported with static class variables, kType.

RTCStatsReport is the equivalent from the spec[3], and maps RTCStats::id
to RTCStats-objects. RTCStatsReport is reference counted. It and its
contained stats may be destroyed on any thread. When the
RTCStatsCollector is added in a follow-up CL, it will return const
references to the RTCStatsReports. This means copies don't have to be
made for multiple stats observers or when jumping threads. In fact, no
copies of any stats will have to be made in surfacing stats to Blink.

[1] https://www.w3.org/TR/2016/WD-webrtc-20160531/#rtcstats-dictionary
[2] https://w3c.github.io/webrtc-stats/archives/20160526/webrtc-stats.html
[3] https://www.w3.org/TR/2016/WD-webrtc-20160531/#rtcstatsreport-object

This adds the new folder webrtc/stats/, with target rtc_stats and binary
rtc_stats_unittests. Public api headers are placed in webrtc/api/ and
.cc files are placed in webrtc/stats/.

BUG=chromium:627816

Review-Url: https://codereview.webrtc.org/2241093002
Cr-Commit-Position: refs/heads/master@{#13879}
2016-08-24 08:33:19 +00:00
aleloi
616df1e95c Added a level indicator to new mixer.
Added a level indicator to the new mixer. The level indicator is
webrtc::voe::AudioLevel. It computes the current audio level, which is
used all the way up to peerconnection.

This is part of the project to rewrite the old conference mixer and
output mixer.

NOTRY=True

Review-Url: https://codereview.webrtc.org/2230823004
Cr-Commit-Position: refs/heads/master@{#13878}
2016-08-24 08:17:20 +00:00
kthelgason
1f779052c6 Remove outdated symlink
BUG=

Review-Url: https://codereview.webrtc.org/2270853002
Cr-Commit-Position: refs/heads/master@{#13877}
2016-08-24 07:49:33 +00:00
sakal
a53fa0a25b Fix AppRTC Android Demo GN build when is_component_build=true.
BUG=webrtc:6174
NOTRY=True

Review-Url: https://codereview.webrtc.org/2270003002
Cr-Commit-Position: refs/heads/master@{#13876}
2016-08-24 07:48:30 +00:00
kjellander
4c8adb1ec7 MB: Flip Android bots to GN by default.
Change the previous GN configs to build GYP instead
(since we'll keep GYP around for a while) but exclude tests for
that config from now on, since we're facing errors with GYP.

Add new configs for upcoming rename of those bots to GYP instead
of GN.

BUG=webrtc:5949
NOTRY=True

Review-Url: https://codereview.webrtc.org/2264283003
Cr-Commit-Position: refs/heads/master@{#13875}
2016-08-24 07:34:59 +00:00
terelius
b246a292cd Define a protobuf format for representing plots. Add code to convert the C-representation generated by the RtcEventLog analysis tool, to the new protobuf format.
BUG=webrtc:6249

NOTRY=True

Review-Url: https://codereview.webrtc.org/2268063002
Cr-Commit-Position: refs/heads/master@{#13873}
2016-08-24 01:15:31 +00:00
terelius
6addf49913 Adds function for computing moving average to visualization tool.
Uses generic functions to plot packet sizes, sequence number delta and bitrate per SSRC. Also detects and prints warnings if delay differences seem unrealistic.

NOTRY=True

Review-Url: https://codereview.webrtc.org/2234883002
Cr-Commit-Position: refs/heads/master@{#13872}
2016-08-24 00:34:16 +00:00
Honghai Zhang
5048f5777d Add logs and small change in BasicPortAllocator.
The added logs will be helpful for debugging.
If a session has stopped, terminate DoAllocate early.
Session::init always returns true, so there is no need to check the return value.

R=deadbeef@webrtc.org, skvlad@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13871}
2016-08-23 22:47:45 +00:00
Irfan Sheriff
f99a9de069 ProbingEstimator: Erase history based on time threshold
Erases history based on time threshold instead of retaining really old cluster data. Also does a bunch of clean up.

BUG=
R=danilchap@webrtc.org, philipel@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13870}
2016-08-23 21:23:12 +00:00
skvlad
185ba29a3c Extract library from the RTCEventLog visualizer
This change splits the RtcEventLog visualization tool into a library and
the command-line tool that drives it. This allows other applications to
link with the library.

BUG=6249
R=kjellander@webrtc.org, terelius@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13869}
2016-08-23 20:01:38 +00:00
Per
5bed20f7c6 Do not update stats for WebRTC.Call.EstimatedSendBitrateInKbps if we are not sending video.
This hopefully fixes a UMA stats  regression introduced in 71ee44cc6d

BUG=webrtc:6244
TBR=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13868}
2016-08-23 20:00:21 +00:00
kjellander
b37c45cadc GN: Add libjingle_peerconnection_java to peerconnection_unittests.
This dependency was found missing since it's defined in
https://cs.chromium.org/chromium/src/third_party/webrtc/build/android_tests.gyp?rcl=0&l=129
which causes many of the tests to crash with org.webrtc.AudioTrack class
not being found.

BUG=webrtc:5949
TBR=ehmaldonado@webrtc.org
NOTRY=True
TESTED=Passing local run of peerconnection_unittests on Android.

Review-Url: https://codereview.webrtc.org/2268973003
Cr-Commit-Position: refs/heads/master@{#13867}
2016-08-23 19:55:49 +00:00
Stefan Holmer
a246cfb8b5 Don't include RTP headers in send-side BWE.
When they are included there will be a mismatch between what the BWE says and
what the encoder is allowed to use, causing us to send more than the network
can handle.

BUG=webrtc:6247
R=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13866}
2016-08-23 15:51:57 +00:00
aleloi
9a11784a7f Migrated GN target :g722_test
Migrated GN target :g722_test from
webrtc/modules/audio_coding/codecs/g722/g722.gypi

NOTRY=True

BUG=webrtc:6191

Review-Url: https://codereview.webrtc.org/2275463002
Cr-Commit-Position: refs/heads/master@{#13865}
2016-08-23 15:36:15 +00:00
aleloi
16f55a10c4 Migrated GN target :g711_test
Migrated GN target :g711_test from
webrtc/modules/audio_coding/codecs/g711/g711.gypi

NOTRY=True

BUG=webrtc:6191

Review-Url: https://codereview.webrtc.org/2273623002
Cr-Commit-Position: refs/heads/master@{#13864}
2016-08-23 15:08:30 +00:00
philipel
649a21a25f Disable RampUpTest.UpDownUpThreeStreams.
NOTRY=True
NOPRESUBMIT=True
TBR=stefan@webrtc.org

BUG=webrtc:6248

Review-Url: https://codereview.webrtc.org/2273683002
Cr-Commit-Position: refs/heads/master@{#13863}
2016-08-23 14:22:22 +00:00
kwiberg
2e486462e0 RTC_CHECK and RTC_DCHECK macros for C
So that we don't have to use assert(). Includes one sample call site.

NOTRY=true
BUG=chromium:617124

Review-Url: https://codereview.webrtc.org/2262173002
Cr-Commit-Position: refs/heads/master@{#13862}
2016-08-23 12:54:31 +00:00
nisse
792469709d Refactor WebRtcVideoCapturer.
Pass incoming frames directly to VideoCapturer::OnFrame (after
conversion to cricket::VideoFrame), without using SignalFrameCaptured
or WebRtcCapturedFrame.

BUG=webrtc:5682

Review-Url: https://codereview.webrtc.org/2258933003
Cr-Commit-Position: refs/heads/master@{#13861}
2016-08-23 12:50:20 +00:00
kjellander
d8dd190a08 GN: Fix test_support_unittests and MIPS compile issue.
Move the webrtc/test/test_support/metrics sources into
test_support[_unittests] targets.
This is essentially reverting https://webrtc-codereview.appspot.com/5789004
and moving these sources back to the right target.

Add missing foreman_cif.yuv resource needed for these tests.

For MIPS, a compile error was surfacing for logcat_trace_context.h when
flipping bot to GN, which was fixed.

BUG=webrtc:5949
NOTRY=True

Review-Url: https://codereview.webrtc.org/2267113002
Cr-Commit-Position: refs/heads/master@{#13860}
2016-08-23 11:52:19 +00:00
nisse
84c03bafcf Add rtc_media as a direct dependency of rtc_media_unittests.
Without this, the rtc_media_unittests target was only an indirect
dependency, and compiled without HAVE_WEBRTC_VIDEO. And some testcases,
in particular, all tests defined by webrtcvideocapturer_unittest.cc,
are excluded from rtc_media_unittests.

BUG=

Review-Url: https://codereview.webrtc.org/2250433008
Cr-Commit-Position: refs/heads/master@{#13859}
2016-08-23 07:19:06 +00:00
asapersson
0d1ad326a3 Add histogram for percentage of incoming frames that are limited in resolution due to cpu:
- "WebRTC.Video.CpuLimitedResolutionInPercent"

BUG=webrtc:6235

Review-Url: https://codereview.webrtc.org/2254893009
Cr-Commit-Position: refs/heads/master@{#13858}
2016-08-23 06:56:53 +00:00
Taylor Brandstetter
14cf12b1ea Fixing TSan data race warning in video end-to-end tests.
Needed to use critical section in "SendRtp"/"SendRtcp", which is what
the real implementation ultimately does.

TBR=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13857}
2016-08-23 01:14:21 +00:00
deadbeef
23d947dc98 Some cleanup in BaseChannel RTCP mux code.
Removing a redundant variable used to track whether or not RTCP mux has
been fully negotiated. It's RtcpMuxFilter's job to do that, and it
already had the state, it just wasn't exposed.

Review-Url: https://codereview.webrtc.org/2260963002
Cr-Commit-Position: refs/heads/master@{#13856}
2016-08-22 23:00:37 +00:00
henrik.lundin
b3f1c5d2fe Add NetEq::FilteredCurrentDelayMs() and use it in VoiceEngine
The new method returns the current total delay (packet buffer and sync
buffer) in ms, with smoothing applied to even out short-time
fluctuations due to jitter. The packet buffer part of the delay is not
updated during DTX/CNG periods.

This CL also pipes the new metric through ACM and uses it in
VoiceEngine. It replaces the previous method of estimating the buffer
delay (where an inserted packet's RTP timestamp was compared with the
last played timestamp from NetEq). The new method works better under
periods of DTX/CNG.

Review-Url: https://codereview.webrtc.org/2262203002
Cr-Commit-Position: refs/heads/master@{#13855}
2016-08-22 22:40:00 +00:00
deadbeef
e131ea50b4 Adding deadbeef and honghaiz as owners of webrtc/pc.
NOTRY=True

Review-Url: https://codereview.webrtc.org/2264213002
Cr-Commit-Position: refs/heads/master@{#13854}
2016-08-22 22:32:05 +00:00