Commit Graph

6455 Commits

Author SHA1 Message Date
99b345c4e5 Move webrtc/audio/audio_sink.h to webrtc/ and fix some dependencies.
webrtc/audio/audio_sink.h is used by voice engine, but webrtc/audio is
depending on voice engine, resulting in a cyclic dependency (which we
don't detect since we have that check turned off, see webrtc:4243).

BUG=webrtc:4243, webrtc:5589
R=pbos@webrtc.org, perkj@webrtc.org, solenberg@webrtc.org
TBR=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11766}
2016-02-25 14:12:48 +00:00
a5d8e4eef5 Build SharedExclusiveLock in Chromium.
Partially un-breaks the Chromium FYI build.

TBR=jbauch@webrtc.org, tommi@webrtc.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#11765}
2016-02-25 13:54:21 +00:00
a2644c06ee Disable tests failing under UBSan to enable deployment to main waterfall.
modules_unittests: https://build.chromium.org/p/client.webrtc.fyi/builders/Linux%20UBSan/builds/1138/steps/modules_unittests/logs/stdio
[ RUN      ] ByteIoTest.Test64SBitBigEndian
../../webrtc/modules/rtp_rtcp/source/byte_io_unittest.cc:34:33: runtime error: shift exponent 64 is too large for 64-bit type 'long'

rtc_unittests: https://build.chromium.org/p/client.webrtc.fyi/builders/Linux%20UBSan/builds/1138/steps/rtc_unittests/logs/stdio
[ RUN      ] IPAddressTest.TestCountIPMaskBits
../../webrtc/base/ipaddress.cc:415:20: runtime error: negation of -2147483648 cannot be represented in type 'int32_t' (aka 'int'); cast to an unsigned type to negate this value to itself

[ RUN      ] BandwidthSmootherTest.TestSampleRollover
../../webrtc/base/rollingaccumulator.h:73:22: runtime error: signed integer overflow: 2147483647 * 2147483647 cannot be represented in type 'int'

[ RUN      ] RandomNumberGeneratorTest.UniformSignedInterval
../../webrtc/base/random_unittest.cc:121:50: runtime error: signed integer overflow: 2147483647 - -2147483648 cannot be represented in type 'int'

rtc_media_unittests: https://build.chromium.org/p/client.webrtc.fyi/builders/Linux%20UBSan/builds/1138/steps/rtc_media_unittests/logs/stdio
[ RUN      ] VideoCommonTest.TestComputeScaleWithHighFps
../../webrtc/media/base/videocommon.cc:75:34: runtime error: signed integer overflow: 2621440 - -2147483648 cannot be represented in type 'int'

BUG=webrtc:5487, webrtc:5490, webrtc:5491
NOTRY=True
R=pbos@webrtc.org
TBR=henrika@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11764}
2016-02-25 13:23:29 +00:00
a26ac925f7 Reland of move ignored return code from modules. (patchset #1 id:1 of https://codereview.webrtc.org/1736663004/ )
Reason for revert:
Revert breaks other uses, a fix will be rolled into Chromium instead.

Original issue's description:
> Revert of Remove ignored return code from modules. (patchset #3 id:40001 of https://codereview.webrtc.org/1703833002/ )
>
> Reason for revert:
> Breaks Chromium.
>
> Original issue's description:
> > Remove ignored return code from modules.
> >
> > ModuleProcessImpl doesn't act on return codes and having them around is
> > confusing (it's unclear what an error return code here would do even).
> >
> > BUG=
> > R=tommi@webrtc.org
> >
> > Committed: f14c47a58c
>
> TBR=tommi@webrtc.org,pbos@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=
>
> Committed: https://crrev.com/da33a8a2a22f6d19ba2a8cce963beafbdbaa8fd8
> Cr-Commit-Position: refs/heads/master@{#11761}

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

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

Cr-Commit-Position: refs/heads/master@{#11762}
2016-02-25 12:50:09 +00:00
da33a8a2a2 Revert of Remove ignored return code from modules. (patchset #3 id:40001 of https://codereview.webrtc.org/1703833002/ )
Reason for revert:
Breaks Chromium.

Original issue's description:
> Remove ignored return code from modules.
>
> ModuleProcessImpl doesn't act on return codes and having them around is
> confusing (it's unclear what an error return code here would do even).
>
> BUG=
> R=tommi@webrtc.org
>
> Committed: f14c47a58c

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

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

Cr-Commit-Position: refs/heads/master@{#11761}
2016-02-25 12:34:12 +00:00
91c5b5650c Remove DCHECK on duplicate packets in RemoteEstimatorProxy.
R=sprang@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11760}
2016-02-25 11:35:24 +00:00
bf66ae6d80 Remove thread check from PacketRouter::SendFeedback.
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11759}
2016-02-25 09:49:03 +00:00
9ccedc38f6 Reland: Prevent data race in MessageQueue.
The CL prevents a data race in MessageQueue where the variable "ss_" is
modified without a lock while sometimes read inside a lock.

Also thread annotations have been added to the MessageQueue class.

This was already reviewed and landed in https://codereview.webrtc.org/1675923002/
but failed in Chromium GN builds due to sharedexclusivelock.cc not being
compiled in these builds. This changed in https://codereview.webrtc.org/1712773003/
so the reland should work fine now.

BUG=webrtc:5496

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

Cr-Commit-Position: refs/heads/master@{#11758}
2016-02-25 09:15:05 +00:00
0c74ae1e4d MB: Fix typo in device mixin.
In https://codereview.webrtc.org/1735593002/ there was a typo
(that the presubmit doesn't catch) that caused the signing arg
to be missing for GN.

BUG=589510
TBR=dpranke@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#11757}
2016-02-25 07:41:17 +00:00
f99af6b885 Fix the gain calculation in IntelligibilityEnhancer
Review URL: https://codereview.webrtc.org/1718793002

Cr-Commit-Position: refs/heads/master@{#11755}
2016-02-25 01:25:50 +00:00
6140fcc11c Move RTCFileLogger to webrtc/base/objc.
BUG=
R=jiayl@webrtc.org, tkchin@webrtc.org

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

Patch from Jon Hjelle <hjon@andyet.net>.

Cr-Commit-Position: refs/heads/master@{#11754}
2016-02-25 00:33:22 +00:00
65c8fd78c6 Remove the 'audioDebugRecording' media constraint and the aec_dump AudioOptions flag.
BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#11753}
2016-02-24 22:43:18 +00:00
861dcb7edd MB: Add initial mb_config.pyl configuration file.
This is only needed and used by the iOS GN bots so far, but
more bots will start using this in the future as we'll be migrating
from GYP to GN at some point.

Buildbot configuration is done in
https://codereview.chromium.org/1730353002

BUG=589510
R=dpranke@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#11752}
2016-02-24 20:36:53 +00:00
4cc9f98e4c Fix bug 574524: DtlsTransportChannel crashes after SSL closes remotely
When remote side closes, opensslstreamadapter could return SR_EOS which will not trigger upper layer to clean up what's left in the StreamInterfaceChannel. The result of this is when there are more packets coming in, the Write on the StreamInterfaceChannel will overflow the buffer.

The fix here is that when receiving the remote side close signal, we also close the underneath StreamInterfaceChannel which will clean up the queue to prevent overflow.

BUG=574524
TBR=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11751}
2016-02-24 19:10:09 +00:00
615fabb661 Add looping sound button to AppRTCDemo
This exposes the issue where AVAudioPlayer will stop playing when the
VoiceProcessing I/O audio unit is initialized.

BUG=
R=haysc@webrtc.org, henrika@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11750}
2016-02-24 18:58:58 +00:00
f6ff9714c0 Fix division by zero in FindTMMBRBoundingSet
BUG=webrtc:5490

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

Cr-Commit-Position: refs/heads/master@{#11749}
2016-02-24 17:23:57 +00:00
07fb9be37f Move RTCP histograms from vie_channel to video channel stats proxies.
Also slice those histograms on content type.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#11748}
2016-02-24 15:55:06 +00:00
f14c47a58c Remove ignored return code from modules.
ModuleProcessImpl doesn't act on return codes and having them around is
confusing (it's unclear what an error return code here would do even).

BUG=
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11747}
2016-02-24 15:51:23 +00:00
985177c757 Keep disabled RtpRtcp modules registered.
Makes RtpRtcp modules disable-able from any thread, which are intended
to be modified from the encoder thread in the future for encoders to be
able to be initialized asynchronously from the main worker thread.

Removes/simplifies module usage inside ViEChannel.

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

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

Cr-Commit-Position: refs/heads/master@{#11746}
2016-02-24 15:12:45 +00:00
c379fcb248 Break out pacer thread from CongestionController to increase testability.
R=pbos@webrtc.org
TBR=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11745}
2016-02-24 15:03:08 +00:00
23353ab465 Increase encoder-overuse thresholds for HW.
Puts thresholds in a range that works well on Nexus 5X (doesn't
seem to trigger overuse), while not disabling them for systems that have
a really-really hard time (>200% overuse).

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

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

Cr-Commit-Position: refs/heads/master@{#11744}
2016-02-24 14:20:06 +00:00
3e60bf0ff3 Adds low complexity audio mode for single core CPUs
BUG=webrtc:5538
R=tkchin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11743}
2016-02-24 13:27:22 +00:00
c2b785df5d Replace scoped_ptr with unique_ptr in webrtc/common_audio/
(This is a re-land---without the real_fourier.h changes---of 11716, which was reverted in 11726.)

BUG=webrtc:5520

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

Cr-Commit-Position: refs/heads/master@{#11742}
2016-02-24 13:22:40 +00:00
837b39e8f4 Fix ubsan warnings in BWE tests.
BUG=webrtc:5490
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11741}
2016-02-24 13:03:10 +00:00
f01633e667 Replace scoped_ptr with unique_ptr in webrtc/modules/audio_device/
BUG=webrtc:5520

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

Cr-Commit-Position: refs/heads/master@{#11740}
2016-02-24 13:00:45 +00:00
58e08cbea8 Reset indexer upon initialization in AudioLoop.
The array is reset in Init() but not the indexer. This makes the start point undefined after Init() for re-initializing an AudioLoop. This can be fixed.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#11739}
2016-02-24 11:49:23 +00:00
0665f0518f Fix OOB read in pacing test.
BUG=webrtc:5490

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

Cr-Commit-Position: refs/heads/master@{#11737}
2016-02-24 11:04:22 +00:00
12f4cda086 Histograms for H264EncoderImpl/H264DecoderImpl
initialization and errors.

The stats are counts using enumeration, an instance of
H264EncoderImpl/H264DecoderImpl will report at most 1 Init
and 1 Error for its entire lifetime. This is to avoid
spamming reports if initialization or coding fails and it
retries in a loop. The Init stats will give us an idea of
usage counts for the encoder/decoder. The Error stats will
give us an idea of how many of these usages encounters some
type of problem, such as encode or decode errors.

- WebRTC.Video.H264EncoderImpl.Event:
  * kH264EncoderEventInit: Occurs at InitEncode.
  * kH264EncoderEventError: Occurs if any type of error
    occurs during initialization or encoding.
- WebRTC.Video.H264DecoderImpl.Event:
  * kH264DecoderEventInit: Occurs at InitDecode.
  * kH264DecoderEventError: Occurs if any type of error
    occurs during initialization, AVGetBuffer2 or decoding.

Chromium sibling CL:
https://codereview.chromium.org/1719273002/

BUG=chromium:500605, chromium:468365

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

Cr-Commit-Position: refs/heads/master@{#11736}
2016-02-24 11:03:11 +00:00
0ab8e81e12 Move histograms for rtp receive counters to ReceiveStatisticsProxy
BUG=

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

Cr-Commit-Position: refs/heads/master@{#11735}
2016-02-24 09:35:45 +00:00
b7261fd3ae iSAC float: Check for end of input buffer while decoding
Previously, we relied on the encoded stream to come to an end before
the end of the buffer. This is a bad idea, since it is possible to
craft a stream that fills the buffer while decoding to less than the
expected amount of data; without the new checks introduced here, this
causes the decoder to read past the end of the input buffer.

BUG=chromium:582471, chromium:587852

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

Cr-Commit-Position: refs/heads/master@{#11734}
2016-02-24 09:34:33 +00:00
b01c7816a8 Added functional variants of Buffer::SetData and Buffer::AppendData.
They are invoked with the maximum size of the data to be added, and a
callable that generates that data, like this:

buffer.AppendData(10, [] (rtc::ArrayView<uint8_t> av) {
    for (uint8_t i = 0; i != 5; ++i)
      av[i] = i;

    return 5;
  });

The callable returns the number of bytes actually written, and the
final Buffer size will be adjusted accordingly. SetData and AppendData
both return the number of bytes added (i.e. the return value of the
callable).

These versions will be useful when converting AudioEncoder::Encode to use Buffer rather than raw pointers.

Also added a few tests for the new functionality.

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

Cr-Commit-Position: refs/heads/master@{#11733}
2016-02-24 09:06:02 +00:00
f75d008235 Bitrate controller for VideoToolbox encoder.
Also fixes a crash on encoder Release.

BUG=webrtc:4081

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

Cr-Commit-Position: refs/heads/master@{#11729}
2016-02-24 06:49:48 +00:00
0ed85b2ee3 Track pending ICE restarts independently for different media sections.
RFC 5245 allows an ICE restart to occur on only one media section.
However, before this CL, if an endpoint attempted to do this, we would
change our local ICE ufrag/pwd in every media section.

Also did some refactoring, turning the transport options from
mediasesion.h into a map.

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

Cr-Commit-Position: refs/heads/master@{#11728}
2016-02-24 01:24:59 +00:00
8df5d4f15b Moved the AEC C code to be built using C++.
In order for the change to be reviewable, the
move was made into two steps consisting of the
first two patches in this CL.

Step 1 (patch set 1):
-Changed file types to use .cc
-Changed buildfiles to use the new files
-Changed C code inclusion to properly match the changed
 file formats (removed and added extern "C" declarations).
-Changed implicit void-> nonvoid casts that are
 illegal in C++ to be explicit.

Step 2 (patch set 2):
-Changed all the warnings reported when uploading the CL.
-The warnings about formatting of the assembly optimized
 code were not addressed though.

BUG=webrtc:5201

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

Cr-Commit-Position: refs/heads/master@{#11727}
2016-02-23 22:35:03 +00:00
e80f9d0218 Revert of Replace scoped_ptr with unique_ptr in webrtc/common_audio/ (patchset #4 id:60001 of https://codereview.webrtc.org/1712513002/ )
Reason for revert:
Breaks downstream compilation using webrtc/common_audio/real_fourier.h. Let's chat tomorrow on how to coordinate a re-land.

Original issue's description:
> Replace scoped_ptr with unique_ptr in webrtc/common_audio/
>
> BUG=webrtc:5520
>
> Committed: https://crrev.com/79d7a499c0c3e1de8f5ad1138236f0386701053f
> Cr-Commit-Position: refs/heads/master@{#11716}

TBR=henrik.lundin@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:5520

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

Cr-Commit-Position: refs/heads/master@{#11726}
2016-02-23 21:33:39 +00:00
9788534c77 Removing some redundant ostringstreams declarations.
These shadow a variable in an exterior scope, and cause unneeded overhead.

R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11725}
2016-02-23 20:58:23 +00:00
71d9721bdc iOS: Fix JSON for tryserver configurations.
Use boolean values instead of strings. With this landed
https://codereview.chromium.org/1723033003/ can be reverted.

BUG=498746
R=smut@google.com

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

Cr-Commit-Position: refs/heads/master@{#11724}
2016-02-23 20:16:04 +00:00
fffa42b57e Replace scoped_ptr with unique_ptr in webrtc/audio/
BUG=webrtc:5520

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

Cr-Commit-Position: refs/heads/master@{#11723}
2016-02-23 18:46:39 +00:00
f4d8441aed Disabled flaky tests
BUG=webrtc:5576

TBR=stefan@webrtc.org, pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11722}
2016-02-23 17:56:49 +00:00
77f3e0da5a Screen was flickering when the picker for desktop medias showed up in Windows platform. Keeping track of window size for each window so that BitBlt() instead of PrintWindow() will be called for windows with unchanged sizes.
BUG=472857

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

Cr-Commit-Position: refs/heads/master@{#11721}
2016-02-23 16:57:54 +00:00
b1eaa8df0d Only average positive quality stats.
Removes addition of at least one zero sample in webrtc_perf_tests that
can skew stats differently depending on how often these stats are
updated. Unclear if this skewing is different between now and before.

BUG=chromium:585071, chromium:586216
R=sprang@google.com, sprang@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11720}
2016-02-23 16:30:55 +00:00
80e12072cf Move congestion controller to a separate module.
This allows other projects to more easily depend on this.

The plan is to move remote_bitrate_estimator and bitrate_controller into this module and reduce the exposed interface to only a simplified version of congestion_controller.h.

No functional changes in this CL.

R=mflodman@webrtc.org, pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11718}
2016-02-23 12:30:51 +00:00
ba3e25e502 Simple RTCP receiver fuzzer.
Doesn't utilize the clock or any callbacks out of the receiver but
should still be useful to test input packet parsing.

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

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

Cr-Commit-Position: refs/heads/master@{#11717}
2016-02-23 10:35:41 +00:00
79d7a499c0 Replace scoped_ptr with unique_ptr in webrtc/common_audio/
BUG=webrtc:5520

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

Cr-Commit-Position: refs/heads/master@{#11716}
2016-02-23 09:26:52 +00:00
dc0e381eb5 Add more camera resolutions to camera scaling slider.
Plus allow to use loopback adapter in loopback call.

BUG=b/26287075
R=wzh@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11714}
2016-02-23 00:48:36 +00:00
18fcbcf48c Use VAD to get a better speech power estimation in the IntelligibilityEnhancer
R=henrik.lundin@webrtc.org, turaj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11713}
2016-02-22 23:57:45 +00:00
67b81f92f4 Tune QP thresholds for HW H.264 encoder.
Boost low QP threashold to 21, otherwise VGA encoding never
scales up even at 2.5 Mbps.
Also reduce high QP threshold to scale down faster.

BUG=b/26504665
R=jackychen@google.com

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

Cr-Commit-Position: refs/heads/master@{#11712}
2016-02-22 23:05:26 +00:00
a094fd1550 RTT intermediate calculation use ntp time instead of milliseconds.
Compact NTP representation was designed exactly for that purpose: calculate RTT. No need to map to ms before doing arithmetic on this values.
  Because of this change there is no need to keep mapping between compact ntp presentation and milliseconds in the RTCPSender.

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

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

Cr-Commit-Position: refs/heads/master@{#11710}
2016-02-22 17:59:47 +00:00
723ead844b Move simple RtpRtcp calls to VideoSendStream.
Moves RtpRtcp module pointers into VideoSendStream and uses them for
simple calls that were only forwarded by ViEChannel.

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

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

Cr-Commit-Position: refs/heads/master@{#11709}
2016-02-22 14:14:09 +00:00
eee7d9e8e8 iOS: Promote iOS simulator testing to main waterfall.
* Move JSON files from client.webrtc.fyi -> client.webrtc to match
  to-be-switched builders (requires buildbot-side changes + master restart).
* Remove Goma configs from trybots (previously done for the commitbots).

BUG=chromium:588590
TBR=smut@google.com

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

Cr-Commit-Position: refs/heads/master@{#11707}
2016-02-22 11:49:08 +00:00