Commit Graph

7271 Commits

Author SHA1 Message Date
a74363c998 Remove ports that are not used by any channel after timeout
If a port is not used by any channel and if it has no connection for 30
seconds, it will be removed.
Note, as long as a port is used by a transport channel, it will be kept
even if it does not have any connection. This will be beneficial to
continual gathering because new connections can be created in the future
when network changes.

BUG=
R=pthatcher@webrtc.org, zhihuang@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13567}
2016-07-29 01:06:26 +00:00
c309e0e3ea Don't stop sending media on EWOULDBLOCK
This change makes WebRTC no longer stop sending video when we receive an
EWOULDBLOCK error from the operating system. This was previously
causing calls on a slow link (where the first hop is slow) to rapidly
oscillate between starting and stopping video.

We still do need to stop sending packets if there is no known good
connection we can use for that. We used to generate a synthetic
EWOULDBLOCK error in that case. This CL replaces it with a different
code (ENOTCONN); EWOULDBLOCK no longer stops the stream but ENOTCONN
does.

I've updated all the places where we seemed to be generating EWOULDBLOCK
for reasons other than some buffer been full; please give it a thorough
look in case I missed something.

R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13566}
2016-07-29 00:15:30 +00:00
ec4f068bcd Style cleanups in RtpSender.
- Renamed variables and some function to comply with style guide.
- Removed default argument values.
- Removed some dead code.
- Cleaned up comments formatting in rtp_rtcp.h

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

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

Cr-Commit-Position: refs/heads/master@{#13565}
2016-07-28 22:19:18 +00:00
d762910592 Use 15fps for iPhone 4S
NOTRY=True
BUG=

Review-Url: https://codereview.webrtc.org/2188883002
Cr-Commit-Position: refs/heads/master@{#13564}
2016-07-28 21:53:01 +00:00
b5db1ec0e5 Delay destroying a port if new connections are created and destroyed.
If all connections on a port is destroyed, it will schedule an event
to check if it is dead after a timeout. Previously if a new connection
is created but destroyed before the event is fired, it will destroy the
port. With this change, we will not destoy it until it times out again
after the last created connection is destroyed.

BUG=
R=pthatcher@webrtc.org, zhihuang@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13563}
2016-07-28 20:23:13 +00:00
8eeecabd33 Merge SignalPortPruned and SignalPortsRemoved.
These two signals have the same purpose and is kind of redundant.
Rename to SignalPortsPruned.

BUG=
R=pthatcher@webrtc.org, zhihuang@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13562}
2016-07-28 20:20:29 +00:00
8bc773430f Memset svc_params in vp9 wrapper to avoid undefined behavior.
Due to a recent interface change for svc_params in vp9 svc, which
allows speed setting per layer, svc_params should be inited to 0
for safety.

Review-Url: https://codereview.webrtc.org/2179753003
Cr-Commit-Position: refs/heads/master@{#13561}
2016-07-28 20:07:52 +00:00
55b0b37554 Use a better method to generate a random ID in IvfFileWriterTest.
It was generating a random ID using the test case's "this" pointer
and the current time. However, the current time may be imprecise. And
the "this" pointer may have repeatable values.

BUG=webrtc:5898

Review-Url: https://codereview.webrtc.org/2190533004
Cr-Commit-Position: refs/heads/master@{#13560}
2016-07-28 17:51:14 +00:00
59c1ad58e6 Revert of Add BWE plot to event log analyzer. (patchset #6 id:100001 of https://codereview.webrtc.org/2188033004/ )
Reason for revert:
Breaks downstream targets.

Original issue's description:
> Add BWE plot to event log analyzer.
>
> The plot is constructed by actually running the congestion controller with
> the logged rtp headers and rtcp feedback messages to reproduce the same behavior
> as in the real call.
>
> R=phoglund@webrtc.org, terelius@webrtc.org
>
> Committed: https://crrev.com/2beea2a8c920000ef19eea20cce397507fc3d5e7
> Cr-Commit-Position: refs/heads/master@{#13558}

TBR=phoglund@webrtc.org,stefan@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.webrtc.org/2190013002
Cr-Commit-Position: refs/heads/master@{#13559}
2016-07-28 16:21:32 +00:00
2beea2a8c9 Add BWE plot to event log analyzer.
The plot is constructed by actually running the congestion controller with
the logged rtp headers and rtcp feedback messages to reproduce the same behavior
as in the real call.

R=phoglund@webrtc.org, terelius@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13558}
2016-07-28 15:42:31 +00:00
a23fc626a2 Fix bug where transport sequence numbers are allocated for packets without the header extension registered.
This is an issue if the sequence numbers are to be used to compute packet loss statistics since it introduces gaps which are not related to loss.

Also making sure that the header extensions are properly guarded by the send crit sect.

Review-Url: https://codereview.webrtc.org/2190913002
Cr-Commit-Position: refs/heads/master@{#13557}
2016-07-28 14:56:45 +00:00
c62ff86023 Adds periodic volume-level logging for Android.
The goal of this change is to log the volume level for the
current audio stream so we can keep track of what volume the
user selects during a call.

BUG=b/30376577
R=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13555}
2016-07-28 13:46:32 +00:00
a0db81f83a Removed the memory pool from the mixer.
Memory frames are now expected to be owned by the mixing participants.

Review-Url: https://codereview.webrtc.org/2127763002
Cr-Commit-Position: refs/heads/master@{#13554}
2016-07-28 13:36:32 +00:00
1a993d12bb aimd: Remove unused variable
BUG=

Review-Url: https://codereview.webrtc.org/2187843002
Cr-Commit-Position: refs/heads/master@{#13553}
2016-07-28 13:34:45 +00:00
8b2233f5a6 Removed Module inheritance and unused methods and members TimeScheduler, Process() and TimeToNextProcess() from mixer.
Review-Url: https://codereview.webrtc.org/2109333006
Cr-Commit-Position: refs/heads/master@{#13552}
2016-07-28 13:24:23 +00:00
178ae905c8 Fix an UI bug in AppRTC Demo where disable hardware AGC/NS summary was not getting updated.
In Android AppRTC Demo, there was a bug where toggling disable hardware
AGC/NS would not be reflected into the summary of those settings. This
change fixes this issue.

Review-Url: https://codereview.webrtc.org/2184223003
Cr-Commit-Position: refs/heads/master@{#13551}
2016-07-28 12:55:44 +00:00
09f45108c2 Removed callback in old AudioConferenceMixer.
OutputMixer and AudioConferenceMixer communicated via a callback. OutputMixer implemented an AudioMixerOutputReceiver interface, which defines the callback function NewMixedAudio. This has been removed and replaced by a simple function in the new mixer. The audio frame with mixed audio is now copied one time less. I have also removed one forward declaration.

Review-Url: https://codereview.webrtc.org/2111293003
Cr-Commit-Position: refs/heads/master@{#13550}
2016-07-28 10:52:23 +00:00
e6b60a4368 Migrated audio_codec_speed_tests target to GN.
Review-Url: https://codereview.webrtc.org/2177373004
Cr-Commit-Position: refs/heads/master@{#13549}
2016-07-28 09:34:39 +00:00
00730c724d Migrated GN target insert_packet_with_timing.
Review-Url: https://codereview.webrtc.org/2187003002
Cr-Commit-Position: refs/heads/master@{#13548}
2016-07-28 08:34:11 +00:00
333f206f8b Target delay_test migrated to GN.
Review-Url: https://codereview.webrtc.org/2188473003
Cr-Commit-Position: refs/heads/master@{#13547}
2016-07-28 08:21:38 +00:00
29ff8446c0 Add PeerConnection IsClosed check.
Add IsClosed check when excuting some functions so that they can return early if the PeerConnection is closed.
The observer will not be called after the PeerConnection is closed.

BUG=webrtc:5861

Review-Url: https://codereview.webrtc.org/1975453002
Cr-Commit-Position: refs/heads/master@{#13544}
2016-07-27 18:07:32 +00:00
93dd634561 Treat foreground event as interruption end.
NOTRY=True
BUG=

Review-Url: https://codereview.webrtc.org/2181163005
Cr-Commit-Position: refs/heads/master@{#13543}
2016-07-27 17:17:19 +00:00
43e15bb9f0 Android Camera2Enumerator: Remove CameraAccessException to avoid VerifyError
Apparently, a class will fail with VerifyError if it contains catch
statements with an Exception from a newer API, even if the code is never
executed. This happens only on Android versions before 4.4.2 and is a
bug. See https://code.google.com/p/android/issues/detail?id=209129 for
more info.

BUG=b/30376736

Review-Url: https://codereview.webrtc.org/2185833003
Cr-Commit-Position: refs/heads/master@{#13542}
2016-07-27 15:25:13 +00:00
529f83c521 Add webrtc_perf_tests to BUILD.gn
Updated the sources in audio_processing:audioproc_test_utils to match the configuration on
"webrtc/modules/audio_processing/audio_processing_tests.gypi"

Removed audio_buffer_tools from modules_unittests to match the gyp file.

BUG=webrtc:6041

Review-Url: https://codereview.webrtc.org/2178963002
Cr-Commit-Position: refs/heads/master@{#13541}
2016-07-27 15:14:42 +00:00
81031d6dca Cleanup code in Camera2.
BUG=b/30423446
NOTRY=True

Review-Url: https://codereview.webrtc.org/2189473003
Cr-Commit-Position: refs/heads/master@{#13540}
2016-07-27 12:25:49 +00:00
85228d6af6 Regression test for issue where Opus DTX status was being forgotten.
BUG=webrtc:6020

Review-Url: https://codereview.webrtc.org/2177263002
Cr-Commit-Position: refs/heads/master@{#13539}
2016-07-27 11:53:52 +00:00
f22d3c48fa Filter to formats that match device sensor array aspect ratio on pre-LMR1 devices offering only legacy camera2 support.
There is a bug on pre LMR1 devices that only support legacy
implementation of camera2 API where aspect ratio of the camera is
incorrect if the output format doesn't match the aspect ratio of the
sensor array. On these devices, we want to disable the output formats that
have different aspect ratio.

Review-Url: https://codereview.webrtc.org/2181803003
Cr-Commit-Position: refs/heads/master@{#13538}
2016-07-27 08:28:51 +00:00
4374a09f9b Only update codec type histogram if lifetime is long enough (10 sec).
Add metrics for Call/VideoSendStream/VideoReceiveStream lifetime.

BUG=

Review-Url: https://codereview.webrtc.org/2136533002
Cr-Commit-Position: refs/heads/master@{#13537}
2016-07-27 07:39:17 +00:00
bb19a60832 Fix a memory leak where EventLogger is created two times in the event tracer.
R=tommi@webrtc.org

Review-Url: https://codereview.webrtc.org/2179903004
Cr-Commit-Position: refs/heads/master@{#13536}
2016-07-26 17:39:15 +00:00
5f5504f218 Don't crash if createDataChannel fails.
It can fail in some real circumstances, such as when IDs are exhausted
or you explicitly try to create one with an already-used ID.

Review-Url: https://codereview.webrtc.org/2181933002
Cr-Commit-Position: refs/heads/master@{#13535}
2016-07-26 17:31:14 +00:00
1cd46643d7 Disable some Opus tests pending an update
These tests will be reenabled and fixed after Opus 1.1.3 has landed in
Chromium and is rolled into WebRTC.

BUG=

Review-Url: https://codereview.webrtc.org/2185673002
Cr-Commit-Position: refs/heads/master@{#13534}
2016-07-26 16:01:45 +00:00
47bded4428 GN migration of target audio_coding/neteq/rtp_analyze.
Review-Url: https://codereview.webrtc.org/2185533003
Cr-Commit-Position: refs/heads/master@{#13533}
2016-07-26 13:46:26 +00:00
2874ed5709 [rtcp] App::Parse updated not to use RTCPUtility,
maximum allowed sized raised from limited by physical udp packet size to
limited by theoritical maximum rtcp packet size.

BUG=webrtc:5260
R=åsapersson

Review-Url: https://codereview.webrtc.org/1998633002
Cr-Commit-Position: refs/heads/master@{#13532}
2016-07-26 13:40:36 +00:00
3022a34e7c GN migration of target audio_coding/neteq/neteq_test_tools
Review-Url: https://codereview.webrtc.org/2178353002
Cr-Commit-Position: refs/heads/master@{#13531}
2016-07-26 13:36:09 +00:00
2c3f46ec1a Add an option to disable built-in AGC/NS to AppRTC Demo.
R=henrika@webrtc.org

Review-Url: https://codereview.webrtc.org/2184653002
Cr-Commit-Position: refs/heads/master@{#13530}
2016-07-26 13:03:12 +00:00
63d3f8390e Fix a bug where Camera2 tried to start on FPS ranges multiplied by 1000.
This bug caused Camera2Capturer to not work on Samsung Galaxy S7.

BUG=b/30349906
R=magjed@webrtc.org

Review-Url: https://codereview.webrtc.org/2174343002
Cr-Commit-Position: refs/heads/master@{#13529}
2016-07-26 12:43:39 +00:00
2fa14623cc Convert Android camera tests to use the new createVideoSource API.
Review-Url: https://codereview.webrtc.org/2171023003
Cr-Commit-Position: refs/heads/master@{#13528}
2016-07-26 12:41:43 +00:00
86cc6ffc7c Variable audio bitrate.
This is a first CL wiring up AudioSendStream to BitrateAllocator. This
is still experimental and there is a test added for the audio only case,
combined audio video variable bitrate test cases will be added as a
follow up.

BUG=5079

Review-Url: https://codereview.webrtc.org/2165743003
Cr-Commit-Position: refs/heads/master@{#13527}
2016-07-26 11:44:12 +00:00
62d695f655 iOS HW encoder: Increase data rate limit
The iOS H264 video toolbox encoder is currently undershooting the
intended bitrate. This seems to be caused by the data rate limit
property. This CL increases the data rate limit to a set
percentage above the intended bitrate to avoid undershooting. The
AverageBitRate property is still set to the intended bitrate, which
keeps it from overshooting the intended bitrate.

BUG=b/28713684

Review-Url: https://codereview.webrtc.org/2177873003
Cr-Commit-Position: refs/heads/master@{#13526}
2016-07-26 10:10:37 +00:00
d9c7f8d3a8 Use NullSocketServer instead of PhysicalSocketServer in SignalThread
BUG=webrtc:6125

Review-Url: https://codereview.webrtc.org/2164333002
Cr-Commit-Position: refs/heads/master@{#13525}
2016-07-26 10:03:39 +00:00
192717ee1a flaky EndToEndTest.DecodesRetransmittedFrame adjusted
to be aware about rare situation where packet resend before sent:

Expectations reduced by validating frame was rendered after or before last
packet for that frame was dropped.

BUG=webrtc:5540

Review-Url: https://codereview.webrtc.org/2180903002
Cr-Commit-Position: refs/heads/master@{#13523}
2016-07-25 15:20:59 +00:00
fdd381c163 Remove unrelated checks from DecodesRetransmittedFrame* tests
Test was expecting no rtx packet before dropped packet.
Because of prober there might be some non-padding rtx packets before nack.
Those checks removed, test primary expectations are unaffected.

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

Review-Url: https://codereview.webrtc.org/2180843002
Cr-Commit-Position: refs/heads/master@{#13522}
2016-07-25 11:03:25 +00:00
8c695b49e5 Remove redundant UMA stat reporting. Remove logs that are noisy on Windows.
BUG=webrtc:6109, webrtc:5761

Review-Url: https://codereview.webrtc.org/2169903002
Cr-Commit-Position: refs/heads/master@{#13520}
2016-07-25 09:46:52 +00:00
f89a571fcb [AFL] Allow webrtc fuzzers to be used with afl-fuzz.
BUG=chromium:611337

Review-Url: https://codereview.webrtc.org/2143053002
Cr-Commit-Position: refs/heads/master@{#13519}
2016-07-25 09:14:17 +00:00
2638c6fad8 Ignore zero bitrate updates in the UMA BWE stats as they represent network being down and would bias the stats.
BUG=

Review-Url: https://codereview.webrtc.org/2161053002
Cr-Commit-Position: refs/heads/master@{#13518}
2016-07-25 08:58:02 +00:00
8058e58d8f Add loss-based BWE estimate to the outgoing bitrate plot.
Review-Url: https://codereview.webrtc.org/2165523002
Cr-Commit-Position: refs/heads/master@{#13517}
2016-07-25 08:37:56 +00:00
ff0a96d502 Fix a bug where SourceState on AndroidVideoTrackSource is set to live even on failure.
This affects only Android applications using the new createVideoSource API.

R=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13511}
2016-07-23 12:45:25 +00:00
843b6f503f Fix a crash in the event tracing shutdown path
This CL fixes a crash that could happen when JSON event tracing is
shutting down. The cause of the crash was the fact that the logger
thread function was returning 'true', causing the platform thread to run
it repeatedly even though that wasn't the intention.

Usually the EventLogger::Stop() function would set the event requesting
the logging thread to clean up and close the file, and then immediately
call PlatformThread::Stop() which would stop the outer loop. The Log()
function would only run once and everything behaves as expected.

However, if a context switch happens between the shutdown_event_.Set()
and logging_thread_.Stop() calls in EventLogger::Stop(), the logger
thread function would close the file and exit the Log() method, while
PlatformThread will rerun it again. So the Log() function runs twice,
and the second time output_file_ is NULL which either causes the DCHECK
to fail (in debug builds) or the fprintf() to crash with SIGSEGV (in
release builds).

The fix simply changes the return value of the thread function to false
so it never runs twice.

R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13510}
2016-07-23 04:45:45 +00:00
02a5797908 Reland of "Protect MessageQueue stop field with a critical section to avoid data races." (refs/heads/master@{#13430}).
It was reverted in "refs/heads/master@{#13431}" due to breaking Chrome FYI bots.
Fix for chromium was submmited in https://codereview.chromium.org/2159753002.

This reverts commit a2c900877d8338130210c99fec1c8e8e59defea4.

R=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13508}
2016-07-22 11:30:17 +00:00
9ddac18d1c Add minimal LLVM sanity coverage (sancov) reporting for unittests.
This CL enables generating *.sancov data. Blacklist for sancov tool is
provided, too. Sancov tool for report generation needs to be build from
llvm compiler-rt sources (llvm 3.9.0 or newer).

See http://clang.llvm.org/docs/SanitizerCoverage.html .

BUG=webrtc:6136
R=phoglund@webrtc.org
TBR=kjellander@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13506}
2016-07-22 06:57:38 +00:00