Commit Graph

12860 Commits

Author SHA1 Message Date
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
aa3520c7b4 Roll chromium_revision 0d90f310e3..48e079d573 (407439:407510)
Change log: 0d90f310e3..48e079d573
Full diff: 0d90f310e3..48e079d573

No dependencies changed.
No update to Clang.

TBR=

Review-Url: https://codereview.webrtc.org/2183473002
Cr-Commit-Position: refs/heads/master@{#13524}
2016-07-25 18:48:54 +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
3c87ac41e7 Roll chromium_revision 32f0eb6bd9..0d90f310e3 (407397:407439)
Change log: 32f0eb6bd9..0d90f310e3
Full diff: 32f0eb6bd9..0d90f310e3

No dependencies changed.
No update to Clang.

TBR=

Review-Url: https://codereview.webrtc.org/2177843002
Cr-Commit-Position: refs/heads/master@{#13521}
2016-07-25 10:58:49 +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
1c88e8c656 Roll chromium_revision 80b5d0ec09..32f0eb6bd9 (407388:407397)
Change log: 80b5d0ec09..32f0eb6bd9
Full diff: 80b5d0ec09..32f0eb6bd9

No dependencies changed.
No update to Clang.

TBR=

Review-Url: https://codereview.webrtc.org/2180813002
Cr-Commit-Position: refs/heads/master@{#13516}
2016-07-25 02:45:50 +00:00
223df8fa68 Roll chromium_revision fa99476e6e..80b5d0ec09 (407379:407388)
Change log: fa99476e6e..80b5d0ec09
Full diff: fa99476e6e..80b5d0ec09

No dependencies changed.
No update to Clang.

TBR=

Review-Url: https://codereview.webrtc.org/2181543002
Cr-Commit-Position: refs/heads/master@{#13515}
2016-07-24 18:46:33 +00:00
7626af8487 Roll chromium_revision 94de78b48f..fa99476e6e (407377:407379)
Change log: 94de78b48f..fa99476e6e
Full diff: 94de78b48f..fa99476e6e

No dependencies changed.
No update to Clang.

TBR=

Review-Url: https://codereview.webrtc.org/2178823002
Cr-Commit-Position: refs/heads/master@{#13514}
2016-07-24 10:46:53 +00:00
590cbef3a3 Roll chromium_revision 4a456989cf..94de78b48f (407367:407377)
Change log: 4a456989cf..94de78b48f
Full diff: 4a456989cf..94de78b48f

No dependencies changed.
No update to Clang.

TBR=

Review-Url: https://codereview.webrtc.org/2177043002
Cr-Commit-Position: refs/heads/master@{#13513}
2016-07-24 02:54:49 +00:00
764d83da6f Roll chromium_revision a042a214c6..4a456989cf (407099:407367)
Change log: a042a214c6..4a456989cf
Full diff: a042a214c6..4a456989cf

Changed dependencies:
* src/third_party/libvpx/source/libvpx: 18c7f46c12..4b073bc39a
DEPS diff: a042a214c6..4a456989cf/DEPS

No update to Clang.

TBR=marpan@webrtc.org,

Review-Url: https://codereview.webrtc.org/2181523002
Cr-Commit-Position: refs/heads/master@{#13512}
2016-07-23 18:44:40 +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
d4e6cbdbbe Remove suppression for non-existing test.
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13509}
2016-07-22 13:36:00 +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
f52767ca67 Roll chromium_revision 0259d67099..a042a214c6 (406454:407099)
Change log: 0259d67099..a042a214c6
Full diff: 0259d67099..a042a214c6

Changed dependencies:
* src/buildtools: 55638fe5c3..60f7f9a8b4
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/3a28755bad..5440fe0cd1
* src/third_party/catapult: 0b4a19ad43..20358d6bf8
* src/third_party/ffmpeg: d45f90eac6..24ea727552
* src/third_party/libvpx/source/libvpx: d6197b621d..18c7f46c12
* src/third_party/libyuv: e74086bfe3..e84dcb43bd
* src/third_party/openmax_dl: 6670e52d32..57d33bee78
DEPS diff: 0259d67099..a042a214c6/DEPS

No update to Clang.

phoglund: libfuzzer broken because of a known issue, so this should be safe to land.

NOTRY=true

TBR=marpan@webrtc.org,

Review-Url: https://codereview.webrtc.org/2172993002
Cr-Commit-Position: refs/heads/master@{#13507}
2016-07-22 09:16:35 +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
8dc945cd3b Disable NetworkTest.DefaultLocalAddress for Android.
BUG=4364
R=phoglund@webrtc.org
TBR=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13505}
2016-07-21 08:16:52 +00:00
16032126ed This implementation greatly simplifies Android video capturing stack. The old
stack will be removed soon in a separate CL. Constraints will not be supported
in the new implementation. Apps can request a format directly and the closest
supported format will be selected.

Changes needed from the apps:
1. Use the new createVideoSource without constraints.
2. Call startCapture manually.
3. Don't call videoSource.stop/restart, use startCapture/stopCapture instead.

R=magjed@webrtc.org
TBR=kjellander@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13504}
2016-07-20 14:13:20 +00:00
70ffead256 Reimplemented fix for bogus RTP timestamp in RTCP packet created before RTP packet.
Now it check if rtp timestamp can be calculating instead of checking number of rtp packets. This way it works for reconfigured streams too.

It also moved deeper into rtcp_sender class to prevent SR no matter the reason it need to be genereated. This way it prevents creating compound rtcp packets that have to start with Sender Report and Sender Reports as response to (mostly theoretical) sr-request rtcp packet.

BUG=webrtc:1600
R=pbos@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13503}
2016-07-20 13:27:09 +00:00
f39f7d931c Always take retransmissions into account when deciding pacing order
Retransmissions are supposed to be sent before normal packets by the pacer, but the current implementation will only use it if the second packet is a retransmission and the first packet is not. It misses the case where the first packet is retransmission and the second packet is not.

This CL fixes the comparator and adds a unit test.

Also changed the SendAndExpectPacket function to propagate the retransmission flag to the expectations. Previously, all packets were expected to be normal packets.

BUG=webrtc:6124

Review-Url: https://codereview.webrtc.org/2156063004
Cr-Commit-Position: refs/heads/master@{#13502}
2016-07-20 10:36:28 +00:00
63dcecd5c1 Roll chromium_revision bfec2ff09d..0259d67099 (404886:406454)
Change log: bfec2ff09d..0259d67099
Full diff: bfec2ff09d..0259d67099

Changed dependencies:
* src/buildtools: aa47d9773d..55638fe5c3
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/95c69563dc..3a28755bad
* src/third_party/libvpx/source/libvpx: 1c0a9f36f1..d6197b621d
* src/third_party/libyuv: 76aee8ced7..e74086bfe3
* src/tools/gyp: bac4680ec9..e7079f0e0e
* src/tools/swarming_client: df6e95e766..7f63a272f7
DEPS diff: bfec2ff09d..0259d67099/DEPS

No update to Clang.

phoglund: assuming iOS error was a flake (something about a compiler i/o error), landing anyway since everything else looks good.

TBR=marpan@webrtc.org,
NOTRY=true

Review-Url: https://codereview.webrtc.org/2160373004
Cr-Commit-Position: refs/heads/master@{#13501}
2016-07-20 08:37:18 +00:00
18832f6c35 Make rtc_include_tests true by default in gn.
See bug for discussion.

BUG=webrtc:6119
TBR=kjellander@webrtc.org

Review-Url: https://codereview.webrtc.org/2156203002
Cr-Commit-Position: refs/heads/master@{#13500}
2016-07-19 19:56:56 +00:00
88e64e5c67 Keep a map from SSRC to parsed headers in that stream
and use the preparsed headers to plot the network delay changes.

This is the first of several CLs that clean up the visualization
tool to make it easier to add new metrics.

Review-Url: https://codereview.webrtc.org/2145153002
Cr-Commit-Position: refs/heads/master@{#13499}
2016-07-19 08:51:15 +00:00
a540ada1e1 Remove stefan@webrtc.org from libvpx roll notification.
TBR=kjellander@webrtc.org
NOTRY=true

Review-Url: https://codereview.webrtc.org/2159873003
Cr-Commit-Position: refs/heads/master@{#13498}
2016-07-18 18:15:59 +00:00
bded44b79b Add a CongestionController fuzzer.
BUG=

Review-Url: https://codereview.webrtc.org/2157783002
Cr-Commit-Position: refs/heads/master@{#13497}
2016-07-18 16:26:15 +00:00
159a2fe9da Fix crash which happens when there's reordering in the beginning of a call.
The added unittest triggers this CHECK:
433ed06800/webrtc/modules/remote_bitrate_estimator/remote_estimator_proxy.cc (146)

It happens because the unwrap of the sequence number fails if the unwrappers last sequence number is small, but the newly added sequence number is large (greater than last seq num + 2^15), and therefore should have been interpreted as a reordering and a backwards wrap. Since that would mean the sequence number returned from the unwrapper would be negative, it simply returns the original sequence number instead. This causes problems later where the wrap is correctly handled, and everything breaks.

The real solution should be to correctly handle wraps, but to prevent the crash this is a reasonable workaround for now.

BUG=

Review-Url: https://codereview.webrtc.org/2157843002
Cr-Commit-Position: refs/heads/master@{#13496}
2016-07-18 11:14:18 +00:00
433ed06800 Adjust parameter in vp9 videoprocessor_integration test.
Needed for libvpx roll, to prevent failure on arm.

TBR=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13495}
2016-07-16 16:02:19 +00:00
6ab787964a Adding deadbeef@ as owner of api and p2p, and honghaiz as owner of p2p.
NOTRY=true

Review-Url: https://codereview.webrtc.org/2154543002
Cr-Commit-Position: refs/heads/master@{#13494}
2016-07-16 07:48:11 +00:00
da2c945fd2 Fix a logging error.
BUG=

Review-Url: https://codereview.webrtc.org/2152963004
Cr-Commit-Position: refs/heads/master@{#13493}
2016-07-16 00:55:39 +00:00
91042f834d Restore the behavior where an ICE restart redetermines the ICE role.
We thought we could safely remove this, but older versions of Chrome
don't do role conflict resolution properly, so it's actually not safe
to yet.

BUG=628676

Review-Url: https://codereview.webrtc.org/2152963003
Cr-Commit-Position: refs/heads/master@{#13492}
2016-07-16 00:48:18 +00:00
2181078ca8 [Chromoting] Remove screen saver logic out of ScreenCapturer implementations
After change https://codereview.chromium.org/2080723008/, chromoting hosts are
using device::PowerSaveBlocker to block screen saver and suspend. So similar
logic in ScreenCapturer are not useful, and should be removed.

BUG=626839

Review-Url: https://codereview.webrtc.org/2155813003
Cr-Commit-Position: refs/heads/master@{#13491}
2016-07-16 00:05:17 +00:00
a64edb8f79 Adding more logging to BasicPortAllocator.
Logging when a candidate is gathered or the gathering state or a
Port changes. This will make it easier to identify problems related
to candidate gathering.

Review-Url: https://codereview.webrtc.org/2122373004
Cr-Commit-Position: refs/heads/master@{#13490}
2016-07-15 21:42:27 +00:00
28fdf5637f Implement RecordingIsInitialized in file_audio_device.cc.
After https://codereview.webrtc.org/1827263002, audio devices are no
longer (ever) initialized if they return true from
RecordingIsInitialized. Since this was left as "return true;" for
file_audio_device, the recording buffer was never set up correctly, and
the audio buffer would assert when called (in debug) and FileAudioDevice
would cause memory corruption (in release).

BUG=

Review-Url: https://codereview.webrtc.org/2116003003
Cr-Commit-Position: refs/heads/master@{#13489}
2016-07-15 17:04:03 +00:00
72b7f93e68 Use correct case for including a file.
Necessary when compiling this file on a case-sensitive file system.

BUG=chromium:495204,chromium:617318

Review-Url: https://codereview.webrtc.org/2145373004
Cr-Commit-Position: refs/heads/master@{#13488}
2016-07-15 14:21:28 +00:00
c9b27d56c0 Bugfix for Vp9 GOF and missing frames.
In order to correctly determine the references of a frame when using Vp9
with GOF one has to wait for all frames on the lower temporal layers
to make sure no up-switch point is missed.

This patch fix a bug where upon receiving a frame the RtpFrameReferenceFinder
would try to add missing frame for a group with a not yet knows scalability
structure.

BUG=webrtc:5514

Review-Url: https://codereview.webrtc.org/2127073002
Cr-Commit-Position: refs/heads/master@{#13487}
2016-07-15 13:50:34 +00:00
136778252d Revert of Fix inconsistent setting of the rtc_include_unittests flag. (patchset #1 id:1 of https://codereview.webrtc.org/2154693002/ )
Reason for revert:
Nope, breaks chromium

Original issue's description:
> Fix inconsistent setting of the rtc_include_unittests flag.
>
> On advice from brettw, se discussion here:
> https://codereview.webrtc.org/2149543002/
>
> The problem was we were setting the flag to both false and true,
> and the the true happened to win out for WebRTC checkouts and
> false for Chromium checkouts. This change should make this
> mechanic more obvious.
>
> This change _should_ have no effect downstream.
>
> Doing tbr to see if we can get the chromium import back into a good state today.
>
> TBR=tommi@webrtc.org
>
> Committed: https://crrev.com/9d34148714773339a4e8396bd28aceb571554d36
> Cr-Commit-Position: refs/heads/master@{#13484}

TBR=tommi@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/2150293002
Cr-Commit-Position: refs/heads/master@{#13486}
2016-07-15 11:13:28 +00:00
bb738733ea Disable broken Android rtc_unittests.
After disabling all of these, the rest of the tests pass, at least on
my Nexus 7 device.

BUG=webrtc:4364

Review-Url: https://codereview.webrtc.org/2151823002
Cr-Commit-Position: refs/heads/master@{#13485}
2016-07-15 10:57:17 +00:00
9d34148714 Fix inconsistent setting of the rtc_include_unittests flag.
On advice from brettw, se discussion here:
https://codereview.webrtc.org/2149543002/

The problem was we were setting the flag to both false and true,
and the the true happened to win out for WebRTC checkouts and
false for Chromium checkouts. This change should make this
mechanic more obvious.

This change _should_ have no effect downstream.

Doing tbr to see if we can get the chromium import back into a good state today.

TBR=tommi@webrtc.org

Review-Url: https://codereview.webrtc.org/2154693002
Cr-Commit-Position: refs/heads/master@{#13484}
2016-07-15 10:56:14 +00:00
4e417b242a Reland of Switch to use SequencedTaskChecker instead of ThreadChecker where needed.
(patchset #1 id:1 of https://codereview.webrtc.org/2149553002/ )"
This reverts commit efd902cb1d9bbd81247a3e168f2080beae761d78.

Originally reviewed in https://codereview.webrtc.org/2149553002

The uptream problem should be fixed by https://codereview.webrtc.org/2145393003/

BUG=webrtc:5687
TBR=tommi@webrtc.org

Review-Url: https://codereview.webrtc.org/2152013002
Cr-Commit-Position: refs/heads/master@{#13483}
2016-07-15 06:36:00 +00:00
32012f8c3a Do not include task_queue.h in sequenced_task_checker_impl.h
This it to avoid requiring targets that include header files that in turn use SequenceTaskedChecker, to also have to define the macros needed by TaskQueue.

BUG=webrtc:5687

Review-Url: https://codereview.webrtc.org/2145393003
Cr-Commit-Position: refs/heads/master@{#13482}
2016-07-15 06:32:18 +00:00
Per
33b9c8fb03 Move WEBRTC_BUILD_LIBEVENT definition to base/BUILD.gn and base/base.gyp. This use all_dependent_configs (GN) / all_dependent_settings (GYP) to export WEBRTC_BUILD_LIBEVENT to all dependent targets transitively. This fixes a problem with dependent projects in Chromium that indirectly include task_queue.h
BUG=webrtc:5687
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13481}
2016-07-15 06:25:54 +00:00
9ad0db51a6 Dampening connection switch.
If the currently selected connection becomes not receiving and if a backup connection
becomes strong first, we will not switch the connection until X milliseconds is passed
but the selected connection is still not receiving and the backup connection is still receiving. This will prevent the connection switching from happening too frequently.

BUG=

Review-Url: https://codereview.webrtc.org/2143653005
Cr-Commit-Position: refs/heads/master@{#13480}
2016-07-15 02:30:32 +00:00
73ab917d27 Remove CHECK around duplicate FLAG lookup.
It causes an asan initialization-order-fiasco in trying to read the
names of other globally constructed data:

==21449==ERROR: AddressSanitizer: initialization-order-fiasco on address 0x7f6f297bc5e8 at pc 0x7f6f26b332a7 bp 0x7ffd479f8cb0 sp 0x7ffd479f8ca8
READ of size 8 at 0x7f6f297bc5e8 thread T0
    #0 0x7f6f26b332a6 in name
webrtc/base/flags.h:83:38
    #1 0x7f6f26b332a6 in Lookup
webrtc/base/flags.cc:133
    #2 0x7f6f26b332a6 in rtc::FlagList::Register(rtc::Flag*)
webrtc/base/flags.cc:260
    #3 0x7f6f2529972b in __cxx_global_var_init.1

BUG=

Review-Url: https://codereview.webrtc.org/2110963004
Cr-Commit-Position: refs/heads/master@{#13479}
2016-07-15 01:21:21 +00:00