Commit Graph

9950 Commits

Author SHA1 Message Date
f0d7b2b507 Make sure that ApmHelpersTest tests don't enter a tight loop.
BUG=webrtc:7219, webrtc:7290
TBR=solenberg@webrtc.org

Review-Url: https://codereview.webrtc.org/2729133002
Cr-Commit-Position: refs/heads/master@{#16996}
2017-03-03 09:34:15 +00:00
2fc52544b0 Fix flaky ViEEncoder tests.
This CL fixes two issues. The first is a tsan complaint about a data
race. The test had a fix to make it deterministic but the race still
existed, so this adds locks around the critical section to appease
the sanitizer.

The second, more annoying issue, is that occasionally the test would
start before the encoder had been configured, as this happens
asynchronously on a task queue. This would cause frames to be queued
up and dropped, but not where we expected them to be dropped.
This was causing some tests to fail very occasionally. I've added
a synchronisation mechanism by posting a barrier task on the queue
and not proceeding with the tests until it finishes.

BUG=webrtc:7217, webrtc:7232, webrtc:7260

Review-Url: https://codereview.webrtc.org/2722183004
Cr-Commit-Position: refs/heads/master@{#16995}
2017-03-03 08:24:41 +00:00
528a834ef0 Revert of BlankDetectorDesktopCapturerWrapper to detect a blank DesktopFrame (patchset #7 id:180001 of https://codereview.webrtc.org/2709523003/ )
Reason for revert:
Misses  deps for RTC_HISTOGRAM in Chrome.
email sent separately.

Also see https://codereview.chromium.org/2725143004/.

Original issue's description:
> BlankDetectorDesktopCapturerWrapper to detect a blank DesktopFrame
>
> DXGI capturer highly depends on video adapter and its driver, as well as Windows
> itself. I recently found it cannot work on my virtualbox instance any more,
> which indicates it may not work well on some specific systems. What worse is,
> the APIs do not return a failure in such case.
>
> So this change adds a BlankDetectorDesktopCapturerWrapper, which samples several
> pixels in the frame returned by a DesktopCapturer implementation. If all the
> pixels selected are blank, this wrapper returns a failure. A typical usage is to
> combine BlankDetectorDesktopCapturerWrapper with FallbackDesktopCapturerWrapper,
> and use GDI capturer in case of failure.
>
> Usually less than 500 pixels are checked, so the
> BlankDetectorDesktopCapturerWrapper should not impact the capturer performance.
>
> This change is expected to resolve bug 682112 in another dimension.
>
> BUG=682112
>
> Review-Url: https://codereview.webrtc.org/2709523003
> Cr-Commit-Position: refs/heads/master@{#16984}
> Committed: c4e9d210b3

TBR=sergeyu@chromium.org,zijiehe@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=682112

Review-Url: https://codereview.webrtc.org/2726983005
Cr-Commit-Position: refs/heads/master@{#16993}
2017-03-03 08:01:48 +00:00
eda3a9b582 Revert of Enable GN check for webrtc/examples (patchset #7 id:120001 of https://codereview.webrtc.org/2714343002/ )
Reason for revert:
I wasn't able to resolve it with that CL so I'll have to revert this by now.

Will have another look at this when time permits.

Original issue's description:
> Enable GN check for webrtc/examples
>
> BUG=webrtc:6828
> NOTRY=True
>
> Review-Url: https://codereview.webrtc.org/2714343002
> Cr-Commit-Position: refs/heads/master@{#16987}
> Committed: 81db74a384

TBR=perkj@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6828

Review-Url: https://codereview.webrtc.org/2727253003
Cr-Commit-Position: refs/heads/master@{#16991}
2017-03-03 06:27:29 +00:00
2f6af9ca7a Revert of GN: Include webrtc/api targets even if rtc_include_tests=false (patchset #2 id:20001 of https://codereview.webrtc.org/2725053008/ )
Reason for revert:
Fails Chromium builds:
b/c/b/linux/src/buildtools/linux64/gn gen //out/Release --check
  -> returned 1
ERROR at //third_party/webrtc/api/BUILD.gn:186:5: Can't load input file.
    "//webrtc/test:test_support",
    ^-------------------------

Original issue's description:
> GN: Include webrtc/api targets even if rtc_include_tests=false
>
> The main purpose with the rtc_include_tests GN variable is to avoid
> generating and compiling all the test targets.
> Some of our examples have dependencies on the test headers in API,
> so therefore this change is relaxing that condition.
>
> BUG=webrtc:6828
> NOTRY=True
> TBR=ehmaldonado@webrtc.org,
>
> Review-Url: https://codereview.webrtc.org/2725053008
> Cr-Commit-Position: refs/heads/master@{#16989}
> Committed: a769ceba65

TBR=ehmaldonado@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6828

Review-Url: https://codereview.webrtc.org/2728073002
Cr-Commit-Position: refs/heads/master@{#16990}
2017-03-03 06:26:23 +00:00
a769ceba65 GN: Include webrtc/api targets even if rtc_include_tests=false
The main purpose with the rtc_include_tests GN variable is to avoid
generating and compiling all the test targets.
Some of our examples have dependencies on the test headers in API,
so therefore this change is relaxing that condition.

BUG=webrtc:6828
NOTRY=True
TBR=ehmaldonado@webrtc.org,

Review-Url: https://codereview.webrtc.org/2725053008
Cr-Commit-Position: refs/heads/master@{#16989}
2017-03-03 06:25:03 +00:00
81db74a384 Enable GN check for webrtc/examples
BUG=webrtc:6828
NOTRY=True

Review-Url: https://codereview.webrtc.org/2714343002
Cr-Commit-Position: refs/heads/master@{#16987}
2017-03-03 05:29:29 +00:00
cfa95aa995 Enable GN check in voice_engine/
BUG=webrtc:6828
NOTRY=True

Review-Url: https://codereview.webrtc.org/2714353002
Cr-Commit-Position: refs/heads/master@{#16986}
2017-03-03 05:28:23 +00:00
c4e9d210b3 BlankDetectorDesktopCapturerWrapper to detect a blank DesktopFrame
DXGI capturer highly depends on video adapter and its driver, as well as Windows
itself. I recently found it cannot work on my virtualbox instance any more,
which indicates it may not work well on some specific systems. What worse is,
the APIs do not return a failure in such case.

So this change adds a BlankDetectorDesktopCapturerWrapper, which samples several
pixels in the frame returned by a DesktopCapturer implementation. If all the
pixels selected are blank, this wrapper returns a failure. A typical usage is to
combine BlankDetectorDesktopCapturerWrapper with FallbackDesktopCapturerWrapper,
and use GDI capturer in case of failure.

Usually less than 500 pixels are checked, so the
BlankDetectorDesktopCapturerWrapper should not impact the capturer performance.

This change is expected to resolve bug 682112 in another dimension.

BUG=682112

Review-Url: https://codereview.webrtc.org/2709523003
Cr-Commit-Position: refs/heads/master@{#16984}
2017-03-03 01:38:36 +00:00
bfc7f02d79 ArrayView: Support compile-time constant sizes
BUG=none

Review-Url: https://codereview.webrtc.org/2667383006
Cr-Commit-Position: refs/heads/master@{#16981}
2017-03-02 20:33:50 +00:00
0c4b849b27 Pick a matching CN codec, rather than the first CN codec.
It seems to me that we're currently just picking the first CN codec, rather than the one that matches the clock rate of the voice codec. The only test I've gotten to fail by changing this behavior is the one that's also changed in this CL, which explicitly expects a CN codec to be chosen even though there's none matching.

BUG=webrtc:7282

Review-Url: https://codereview.webrtc.org/2707133007
Cr-Commit-Position: refs/heads/master@{#16979}
2017-03-02 19:03:25 +00:00
a563c21e6a Increase kMinRequiredSamples (5 -> 200) for updating histogram stats from OnFrameBufferTimingsUpdated callback.
Callback used to be reported periodically (each 1000ms) but is now reported per frame.

BUG=webrtc:5514

Review-Url: https://codereview.webrtc.org/2729903002
Cr-Commit-Position: refs/heads/master@{#16977}
2017-03-02 16:25:46 +00:00
9fd9f6c15f Fixed VP8 simulcast full-stack-tests to not decode non-selected streams.
BUG=webrtc:7095

Review-Url: https://codereview.webrtc.org/2730433005
Cr-Commit-Position: refs/heads/master@{#16976}
2017-03-02 16:10:10 +00:00
0473b1dc03 Go back to only using sched_yield on Mac (sigh)
Using sched_yield on Linux seems to be causing RestartingSendStreamPreservesRtpStatesWithRtx/0 to never complete.

BUG=webrtc:7187
TBR=solenberg@webrtc.org

Review-Url: https://codereview.webrtc.org/2732443002
Cr-Commit-Position: refs/heads/master@{#16975}
2017-03-02 16:08:59 +00:00
4c6df8893e Revert of Add QP for FFmpeg H264 decoder. (patchset #4 id:200001 of https://codereview.webrtc.org/2649133007/ )
Reason for revert:
Let's revert this while we investigate a problem in H264 bitstream parser.

Original issue's description:
> Add QP for FFmpeg H264 decoder.
>
> BUG=webrtc:6541
>
> Review-Url: https://codereview.webrtc.org/2649133007
> Cr-Commit-Position: refs/heads/master@{#16942}
> Committed: 879f4f6c31

TBR=sprang@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:6541, chromium:697795

Review-Url: https://codereview.webrtc.org/2726973003
Cr-Commit-Position: refs/heads/master@{#16974}
2017-03-02 15:22:26 +00:00
500f1b7a32 Add a DCHECK for PlatformThread instances that are too busy.
This adds a simple mechanism that provides protection against
implementations that use the legacy callback type in PlatformThread
and are prone to entering a busy loop.

Enabled only in DCHECK enabled builds.

BUG=webrtc:7187

Review-Url: https://codereview.webrtc.org/2720223003
Cr-Commit-Position: refs/heads/master@{#16973}
2017-03-02 15:07:09 +00:00
cabea3dbf2 Revert of H264BitstreamParser: Log nalu type when parsing slice type fails. (patchset #1 id:60001 of https://codereview.webrtc.org/2726833005/ )
Reason for revert:
Investigation complete.

Original issue's description:
> H264BitstreamParser: Log nalu type when parsing slice type fails.
>
> Decreases all parsing failures to a warning because they are not
> critical errors. This is a speculative commit to help diagnose
> why bots are failing.
>
> BUG=chromium:697795
> TBR=stefan@webrtc.org
>
> Review-Url: https://codereview.webrtc.org/2726833005
> Cr-Commit-Position: refs/heads/master@{#16966}
> Committed: 6bce6ad485

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

Review-Url: https://codereview.webrtc.org/2723883004
Cr-Commit-Position: refs/heads/master@{#16972}
2017-03-02 14:55:07 +00:00
9f5b6224e8 Disabled flaky VideoSendStreamTest.DoesUtilizeUlpfecForVp*WithNackEnabled
BUG=webrtc:7285
TBR=sprang@webrtc.org
NOTRY=true

Review-Url: https://codereview.webrtc.org/2727263002
Cr-Commit-Position: refs/heads/master@{#16971}
2017-03-02 14:22:21 +00:00
0d3573976c Drop out of order frames in VideoRenderFrames.
BUG=webrtc:7253

Review-Url: https://codereview.webrtc.org/2724823004
Cr-Commit-Position: refs/heads/master@{#16970}
2017-03-02 13:59:42 +00:00
a44ba63cb7 APM Quality Assessment tool, new owners
BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2729023002
Cr-Commit-Position: refs/heads/master@{#16969}
2017-03-02 13:41:07 +00:00
68af10de7f Revert of fixed VP8 simulcast to not decode non-selected streams (patchset #5 id:80001 of https://codereview.webrtc.org/2728553003/ )
Reason for revert:
Causes regression in VP8 simulcast metrics (receive time, encoded frame size, etc) as two excluded streams' decoders request keyframes periodically, which affects metrics of a selected stream.

Original issue's description:
> In full-stack tests: fixed VP8 simulcast to not decode non-selected streams.
>
> BUG=webrtc:7095
>
> Review-Url: https://codereview.webrtc.org/2728553003
> Cr-Commit-Position: refs/heads/master@{#16948}
> Committed: 8dccd67520

TBR=sprang@webrtc.org,kjellander@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:7095

Review-Url: https://codereview.webrtc.org/2729623005
Cr-Commit-Position: refs/heads/master@{#16967}
2017-03-02 12:59:33 +00:00
6bce6ad485 H264BitstreamParser: Log nalu type when parsing slice type fails.
Decreases all parsing failures to a warning because they are not
critical errors. This is a speculative commit to help diagnose
why bots are failing.

BUG=chromium:697795
TBR=stefan@webrtc.org

Review-Url: https://codereview.webrtc.org/2726833005
Cr-Commit-Position: refs/heads/master@{#16966}
2017-03-02 12:34:32 +00:00
fb4f8b6cb4 VoE Utility: Fix a naming nit in RemixAndResample
This was pointed out in https://codereview.webrtc.org/2712743004 after
committing.

BUG=webrtc:7220
NOTRY=True
TBR=solenberg@webrtc.org

Review-Url: https://codereview.webrtc.org/2721123005
Cr-Commit-Position: refs/heads/master@{#16965}
2017-03-02 12:10:57 +00:00
0c29de5579 Android HW decoder: Limit frame size based on cropping information
BUG=webrtc:7267

Review-Url: https://codereview.webrtc.org/2722803002
Cr-Commit-Position: refs/heads/master@{#16963}
2017-03-02 08:55:32 +00:00
55eb6d6214 vp8_impl.cc: Enable postproc for arm under field trial.
For resolutions:
<= 320x240: enable full postproc (VP8_MFQE, VP8_DEBLOCK, VP8_DEMACROBLOCK).
> 320x240: enable VP8_MFQE.

TBR=marpan@webrtc.org
BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2696403002
Cr-Commit-Position: refs/heads/master@{#16962}
2017-03-02 07:52:16 +00:00
2c48d0c531 Relanding: Remove the IceTransportInternal2.
Introduing IceTransportInternal2 is a temporary fix to switch the base
class of P2PTransportChannel to IceTransportInternal without breaking
Chromium. It is removed in this CL.

Reland this CL after Chromium doesn't depend on this.

BUG=webrtc:6951

Review-Url: https://codereview.webrtc.org/2632563002
Cr-Original-Commit-Position: refs/heads/master@{#16131}
Committed: c7953fa716
Review-Url: https://codereview.webrtc.org/2632563002
Cr-Commit-Position: refs/heads/master@{#16960}
2017-03-02 06:47:18 +00:00
d3edd770ad Introduce dchecked_cast, and start using it
It's the faster, less strict cousin of checked_cast.

BUG=none

Review-Url: https://codereview.webrtc.org/2714063002
Cr-Commit-Position: refs/heads/master@{#16958}
2017-03-02 02:52:48 +00:00
796b8f9d71 Remove usage of VoEVolumeControl from WVoE and Audio[Send|Receive]Stream.
BUG=webrtc:4690

Review-Url: https://codereview.webrtc.org/2721003002
Cr-Commit-Position: refs/heads/master@{#16956}
2017-03-02 01:02:23 +00:00
d48f488bed Support GCM ciphers even if ENABLE_EXTERNAL_AUTH is defined.
With ENABLE_EXTERNAL_AUTH, external auth will only be used depending
on the selected cipher (allowed for non-GCM, not allowed for GCM).

BUG=webrtc:5222, chromium:628400

Review-Url: https://codereview.webrtc.org/2720663003
Cr-Commit-Position: refs/heads/master@{#16955}
2017-03-01 23:34:36 +00:00
634fcb32e3 DxgiOutputDuplicator AcquireNextFrame timeout can be 0
Timeout of AcquireNextFrame() can be 0. Though MSDN does not state it clear, I
tried it on my laptop, it works well, with almost zero capture time.
The screenshot is at https://drive.google.com/open?id=0B0OFNI4uoZGRNVZxekxCbm0ycmc.

BUG=682112

Review-Url: https://codereview.webrtc.org/2712353002
Cr-Commit-Position: refs/heads/master@{#16953}
2017-03-01 19:45:37 +00:00
2100c0ba13 Support N unsignaled audio streams.
BUG=webrtc:7175, webrtc:5208

Review-Url: https://codereview.webrtc.org/2685893002
Cr-Commit-Position: refs/heads/master@{#16952}
2017-03-01 19:29:29 +00:00
f7c26d40ab Small TransportFeedbackAdapterTest efficiency boost and TODO resolved
BUG=None

Review-Url: https://codereview.webrtc.org/2726853002
Cr-Commit-Position: refs/heads/master@{#16950}
2017-03-01 17:05:20 +00:00
8dccd67520 In full-stack tests: fixed VP8 simulcast to not decode non-selected streams.
BUG=webrtc:7095

Review-Url: https://codereview.webrtc.org/2728553003
Cr-Commit-Position: refs/heads/master@{#16948}
2017-03-01 15:10:30 +00:00
50550e1440 Enable GN check for webrtc/common_audio
BUG=webrtc:6828
NOTRY=True

Review-Url: https://codereview.webrtc.org/2719743002
Cr-Commit-Position: refs/heads/master@{#16946}
2017-03-01 15:07:10 +00:00
daa574d1db Adding memory usage metric to full-stack video tests (only for WIN until we find more stable method to measure memory usage)
BUG=webrtc:7095

Review-Url: https://codereview.webrtc.org/2719013004
Cr-Commit-Position: refs/heads/master@{#16945}
2017-03-01 14:46:05 +00:00
0981cd16f2 Resolve inconsistent definition of video's webrtc::CodecSpecificInfo.
Following files define the same classes
- modules/video_coding/codecs/interface/video_codec_interface.h
- modules/video_coding/include/video_codec_interface.h

The first one is deprecated. As long as it is not removed, both files
should provide consistent class declarations. Otherwise any donwstream
project that includes its own codecs could experience memory
corruption issues.

Before this CL member declarations and ctor definition for
webrtc::CodecSpecificInfo diverged between both header files.

BUG=webrtc:7280

Review-Url: https://codereview.webrtc.org/2727633002
Cr-Commit-Position: refs/heads/master@{#16944}
2017-03-01 14:32:01 +00:00
e5d3a3ea78 Fix quick perf test setting that was accidentally inverted.
Bug was introduced in
https://codereview.webrtc.org/2717973005/
Only affects test output, so omitting bug.

BUG=None

Review-Url: https://codereview.webrtc.org/2723093002
Cr-Commit-Position: refs/heads/master@{#16943}
2017-03-01 14:20:56 +00:00
879f4f6c31 Add QP for FFmpeg H264 decoder.
BUG=webrtc:6541

Review-Url: https://codereview.webrtc.org/2649133007
Cr-Commit-Position: refs/heads/master@{#16942}
2017-03-01 14:19:09 +00:00
228c268065 Support 4 channel mic in Windows Core Audio
BUG=webrtc:7220

Review-Url: https://codereview.webrtc.org/2712743004
Cr-Commit-Position: refs/heads/master@{#16940}
2017-03-01 13:11:22 +00:00
c5726c1579 Cleanup video test target dependencies in video_test_common.
The purpose is to fix (Asan discovered) duble definitions in upstream project.

BUG=none

Review-Url: https://codereview.webrtc.org/2721303002
Cr-Commit-Position: refs/heads/master@{#16939}
2017-03-01 11:37:08 +00:00
a67e5f5de9 Fixing an overflow issue in NetEq::BackgroundNoise
BUG=chromium:676941

Review-Url: https://codereview.webrtc.org/2722533002
Cr-Commit-Position: refs/heads/master@{#16938}
2017-03-01 11:06:50 +00:00
f31969a584 Disable flaky test while working on improvement.
WebRtcVideoEngine2Test.RecreatesEncoderOnContentTypeChange is flaky.
Disable it temporarily, while working on improvement.

TBR=pthatcher@webrtc.org
BUG=webrtc:7275

Review-Url: https://codereview.webrtc.org/2727503003
Cr-Commit-Position: refs/heads/master@{#16937}
2017-03-01 10:27:34 +00:00
b324640855 Owners file added
BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2727613002
Cr-Commit-Position: refs/heads/master@{#16935}
2017-03-01 10:05:11 +00:00
5271ea6571 Switch temporal layer impl used for screenshare upper simulcast stream.
Use default temporal layers instead of the RealtimeTemporalLayers one.
When using low fps, having a single stream with much higher bitrate than
the lower simulcast stream causes poor rampup behavior.

Tested manually.

BUG=webrtc:4172

Review-Url: https://codereview.webrtc.org/2723983002
Cr-Commit-Position: refs/heads/master@{#16934}
2017-03-01 09:58:17 +00:00
09f090c40e Remove workaround for bug 6986
BUG=webrtc:6986

Review-Url: https://codereview.webrtc.org/2681733002
Cr-Commit-Position: refs/heads/master@{#16933}
2017-03-01 09:57:11 +00:00
dc05017fc3 Disable AudioCoding tests on ios
BUG=webrtc:7057
TBR=minyue@webrtc.org
NOTRY=true

Review-Url: https://codereview.webrtc.org/2721323002
Cr-Commit-Position: refs/heads/master@{#16932}
2017-03-01 09:16:51 +00:00
a7a9be159d Move RTCOutboundRTPStreamStats.roundTripTime to inbound, don't collect.
The value is being moved:
https://github.com/w3c/webrtc-stats/pull/167

Stop collecting this value. Our previous value was incorrect, our RTT
value was a smoothed value based on STUN pings but the spec says it
should be based on RTCP timestamps in RTCP Receiver Report (RR) on
inbound streams with isRemote=true (not supported).

Updated some bug references.

BUG=webrtc:7065, webrtc:7066

Review-Url: https://codereview.webrtc.org/2722633005
Cr-Commit-Position: refs/heads/master@{#16931}
2017-03-01 09:02:45 +00:00
deaf6fb071 Opus: Let the decoder interpret 2-byte payloads as DTX/CNG packets
This CL matches the work done in
https://codereview.webrtc.org/2693453003.

BUG=webrtc:7272
TBR=minyue@webrtc.org

Review-Url: https://codereview.webrtc.org/2723893004
Cr-Commit-Position: refs/heads/master@{#16930}
2017-03-01 08:49:18 +00:00
e985b3fe49 Adding metrics to AEC3.
This CL adds metrics reporting to AEC3.

BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2722453002
Cr-Commit-Position: refs/heads/master@{#16929}
2017-03-01 06:08:53 +00:00
999cf2bd7c Added further tuning of AEC3
TBR=henrik.lundin@webrtc.org
BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2720973005
Cr-Commit-Position: refs/heads/master@{#16928}
2017-03-01 06:07:05 +00:00