12262 Commits

Author SHA1 Message Date
kjellander
c76dc95daf Reland of GN: Add BUILD.gn files for webrtc/{api,media,libjingle,p2p,pc}
The only thing that differs from the previous attempt in
https://codereview.webrtc.org/1979933002/ is that none of
the new targets are not hooked up to the webrtc target in
webrtc/BUILD.gn, which should make it not break the
chromium.webrtc.fyi bots.

Add BUILD.gn files for webrtc/{api,media,libjingle,p2p,pc} in
preparation for removing src/third_party/libjingle in Chromium.

Changes between previous attempt and the one before that
(https://codereview.webrtc.org/1973313002) are:
* Added libstunprober target
* Adjusted warnings for Chromium's clang plugins
* webrtc/pc/externalhmac.{h,cc} added for Chromium builds.

BUG=webrtc:4256
NOTRY=True
NOPRESUBMIT=True
TBR=perkj@webrtc.org, tommi@webrtc.org

Review-Url: https://codereview.webrtc.org/2037983002
Cr-Commit-Position: refs/heads/master@{#13030}
2016-06-03 10:09:40 +00:00
henrika
b50e84509f Adds WebRtcAudioTrack.setSpeakerMute() API
BUG=NONE

Review-Url: https://codereview.webrtc.org/2025423003
Cr-Commit-Position: refs/heads/master@{#13029}
2016-06-03 09:56:26 +00:00
stefan
fc715f584f DCHECK that the red payload type doesn't have invalid values when FEC is enabled.
Review-Url: https://codereview.webrtc.org/2036083002
Cr-Commit-Position: refs/heads/master@{#13028}
2016-06-03 08:45:46 +00:00
philipel
1a93cdeabe BitrateProber now correctly change state to kWait when the last probing
cluster has been spent.

BUG=webrtc:5859

Review-Url: https://codereview.webrtc.org/2033073002
Cr-Commit-Position: refs/heads/master@{#13027}
2016-06-03 08:41:50 +00:00
johan
2d8d23eec2 RFC 3984 sprop-parameter-sets SDP unit test
BUG=webrtc:5948

Review-Url: https://codereview.webrtc.org/2023913002
Cr-Commit-Position: refs/heads/master@{#13026}
2016-06-03 08:22:47 +00:00
stefan
846b2d9c5c Reduce logging frequency in bwe simulations.
BUG=webrtc:5962
NOTRY=true

Review-Url: https://codereview.webrtc.org/2030903002
Cr-Commit-Position: refs/heads/master@{#13025}
2016-06-03 07:20:40 +00:00
stefan
8f4c77fea1 Always send RED headers if configured.
This shouldn't be needed, but because the receiver assumes RTX packets
contain RED if configured to receive them (due to an incompatibility
issue), we also have to make sure we send them for now.

BUG=webrtc:5675

Review-Url: https://codereview.webrtc.org/2033763002
Cr-Commit-Position: refs/heads/master@{#13024}
2016-06-03 07:16:54 +00:00
guidou
72d41aa6da Revert of Update the BWE when the network route changes. (patchset #5 id:180001 of https://codereview.webrtc.org/2000063003/ )
Reason for revert:
Speculative revert due to failure in Mac Tester FYI bot. See https://build.chromium.org/p/chromium.webrtc.fyi/builders/Mac%20Tester/builds/30642

Will reland if the revert doesn't fix the bot.

Original issue's description:
> Update the BWE when the network route changes.
>
> BUG=
>
> Committed: https://crrev.com/2221e1cd1dd19ae16c87c14bbea92fa62d15154d
> Cr-Commit-Position: refs/heads/master@{#13021}

TBR=stefan@webrtc.org,pthatcher@webrtc.org,honghaiz@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/2030283002
Cr-Commit-Position: refs/heads/master@{#13023}
2016-06-03 06:24:58 +00:00
deadbeef
5a4a75ae48 Combining SetVideoSend and SetSource into one method.
This means there's only one thread hop to the worker thread.

At the video engine level, SetOptions and SetSource
are combined into one method (all within the same critical section)
which ensures that no frame will be encoded while SetVideoSend
is only partially finished.

BUG=webrtc:5691

Review-Url: https://codereview.webrtc.org/1838413002
Cr-Commit-Position: refs/heads/master@{#13022}
2016-06-02 23:23:47 +00:00
honghaiz
2221e1cd1d Update the BWE when the network route changes.
BUG=

Review-Url: https://codereview.webrtc.org/2000063003
Cr-Commit-Position: refs/heads/master@{#13021}
2016-06-02 21:48:11 +00:00
tkchin
2bd81a8a00 Fix building iOS SDK static libraries.
NOTRY=True

Review-Url: https://codereview.webrtc.org/2030823004
Cr-Commit-Position: refs/heads/master@{#13020}
2016-06-02 19:22:24 +00:00
ossu
a8aa907639 Disabled two flaky subtests of SignalThreadTest.
BUG=webrtc:5953

Review-Url: https://codereview.webrtc.org/2029523002
Cr-Commit-Position: refs/heads/master@{#13019}
2016-06-02 15:47:12 +00:00
Per
69b332df83 Move logic for calculating needed bitrate overhead used by NACK and FEC to VideoSender.
This cl split the class MediaOptimization into two parts. One that deals with frame dropping and stats and one new class called ProtectionBitrateCalculator that deals with  calculating the needed FEC parameters and how much of the estimated network bitrate that can be used by an encoder

Note that the logic of how FEC and the needed bitrates is not changed.

BUG=webrtc:5687
R=asapersson@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13018}
2016-06-02 13:45:53 +00:00
Peter Bostrom
58d4fe7be9 Reduce VT keyframe frequency.
Also adds data rate limit in addition to average bitrate.

BUG=webrtc:5815
R=mflodman@webrtc.org, pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13017}
2016-06-02 13:36:48 +00:00
danilchap
b684bd10be [rtcp] ExtendedJitterReports::Parse updated not to use RTCPUtility
BUG=webrtc:5260
R=åsapersson

Review-Url: https://codereview.webrtc.org/2025843002
Cr-Commit-Position: refs/heads/master@{#13016}
2016-06-02 12:07:00 +00:00
kjellander@webrtc.org
dc0dbad5e5 GN: Exclude tools and tests in Chromium builds.
BUG=webrtc:5949
TBR=guidou@webrtc.org
NOTRY=True

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

Cr-Commit-Position: refs/heads/master@{#13015}
2016-06-02 11:29:13 +00:00
kwiberg
729b21f97f Add clz functions (Count number of Leading Zero bits), 32-and 64-bit variants
Using __builtin_clz on gcc/clang, and a fallback implementation
otherwise.

Also redefine WebRtcSpl_GetSizeInBits(x) as simply 32 - clz32(x).

BUG=chromium:601787

Review-Url: https://codereview.webrtc.org/2014023002
Cr-Commit-Position: refs/heads/master@{#13014}
2016-06-02 11:02:22 +00:00
Patrik Höglund
116e4d4fae Re-enabling -Woverloaded-virtual.
We should build with this flag; some of our downstream users do. This
was found necessary after a recent breakage was introduced with
https://codereview.webrtc.org/1972793003.

Verified by hand that this would have caught the above error.

R=kjellander@webrtc.org
CC=deadbeef@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13013}
2016-06-02 10:26:21 +00:00
kwiberg
f882880947 AudioDecoder: Document that the sample rate and number of channels is constant
Review-Url: https://codereview.webrtc.org/2029273003
Cr-Commit-Position: refs/heads/master@{#13012}
2016-06-02 10:19:26 +00:00
kwiberg
abe95ba323 AudioDecoderIsacT: Require caller to always specify sample rate
This gets rid of the complex & icky state where the sample rate is not
yet determined.

BUG=webrtc:5801

Review-Url: https://codereview.webrtc.org/2020353003
Cr-Commit-Position: refs/heads/master@{#13011}
2016-06-02 09:59:02 +00:00
sprang
52033d6ea1 Add H264 bitstream rewriting to limit frame reordering marker in header
The VUI part an SPS may specify max_num_reorder_frames and
max_dec_frame_buffering. These may cause a decoder to buffer a number
of frame prior allowing decode, leading to delays, even if no frames
using such references (ie B-frames) are sent.

Because of this we update any SPS block emitted by the encoder.

Also, a bunch of refactoring of H264-related code to reduce code
duplication.

BUG=

Review-Url: https://codereview.webrtc.org/1979443004
Cr-Commit-Position: refs/heads/master@{#13010}
2016-06-02 09:43:38 +00:00
mflodman
5724b7317e Remove unused render callback method+pointer in IncomingVideoStream.
Review-Url: https://codereview.webrtc.org/2032003002
Cr-Commit-Position: refs/heads/master@{#13009}
2016-06-02 09:39:12 +00:00
kjellander
26306b139a Remove test targets of type none.
Move the sources of rtc_unittests and xmllite_xmpp_unittests
into the actual targets instead of depending on none-targets.
This will make it easier to create GN targets matching them.

BUG=webrtc:5949
NOTRY=True
NOPRESUBMIT=True

Review-Url: https://codereview.webrtc.org/2029583002
Cr-Commit-Position: refs/heads/master@{#13008}
2016-06-02 09:26:10 +00:00
kjellander
bac0412e7f GN: Add system_wrappers_unittests, tools and tools_unittests
BUG=webrtc:5949
TESTED=Built and ran the tests on Mac.
NOTRY=True

Review-Url: https://codereview.webrtc.org/2025343002
Cr-Commit-Position: refs/heads/master@{#13007}
2016-06-02 09:18:57 +00:00
kjellander
8f4419b074 GN: Replace Windows suppressions of warning 4267 with config.
This makes the GN configurations easier to read.

BUG=webrtc:5949
NOTRY=True

Review-Url: https://codereview.webrtc.org/2020343003
Cr-Commit-Position: refs/heads/master@{#13006}
2016-06-02 09:09:56 +00:00
philipel
cb7b44975f Video loopback avg_burst_loss_length default parameter fix.
BUG=
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13005}
2016-06-02 08:57:52 +00:00
Henrik Boström
01cdab1922 Remove DtlsIdentityStoreImpl and RTCCertificateGeneratorStoreWrapper.
The DtlsIdentityStoreInterface has been replaced by
RTCCertificateGenerator. Due to previous CLs, neither the
DtlsIdentityStoreImpl or RTCCertificateGeneratorStoreWrapper are used.

DtlsIdentityStoreInterface is still implemented by
PeerConnectionIdentityStore in Chromium and is not removed, but it will
be soon.

BUG=webrtc:5708
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13004}
2016-06-02 08:18:27 +00:00
nisse
69adc9c7c0 Delete unused code in webrtc_libyuv.cc.
Delete unused ConvertFromYV12, and dead prototypes ConvertRGB24ToARGB
ConvertNV12ToRGB565. Move Calc16ByteAlignedStride to the test file
where it is used.

BUG=

Review-Url: https://codereview.webrtc.org/2021843002
Cr-Commit-Position: refs/heads/master@{#13003}
2016-06-02 07:58:43 +00:00
honghaiz
18f9da0286 Fix a memory issue when calling LOG_J in port.cc
The connection delete  message may be processed when a port is being deleted.
Calling LOG_J here needs to access the port object that may have been partially released.
This fixes the memcheck bot failure.

TBR=pthatcher@webrtc.org

BUG=

Review-Url: https://codereview.webrtc.org/2026403003
Cr-Commit-Position: refs/heads/master@{#13002}
2016-06-02 06:53:09 +00:00
zhihuang
5ecf16c072 Add Stats to Stun ping.
Add sent_ping_requests, recv_ping_responses to ConnectionInfo.
recv_ping_responses_ will be incremented when OnConnectionRequestResponse() is called.
ent_ping_requests_ will be incremented when OnConnectionRequestSent() is called.

BUG=webrtc:5695

Review-Url: https://codereview.webrtc.org/1940493002
Cr-Commit-Position: refs/heads/master@{#13001}
2016-06-02 00:09:24 +00:00
honghaiz
36f50e8e4e Create a new connection if a candidate reuses an address
If the remote side sends a candidate with the same address and port with an existing candidate,
but with a new ufrag and pwd, the local client will create a new connection from it
and destroy the old connection with the same remote address.

BUG=webrtc:5915

Review-Url: https://codereview.webrtc.org/2018693002
Cr-Commit-Position: refs/heads/master@{#13000}
2016-06-01 22:57:12 +00:00
magjed
453018a29e CameraEnumerationAndroid: Remove Enumerator class
BUG=webrtc:5519

Review-Url: https://codereview.webrtc.org/2015143004
Cr-Commit-Position: refs/heads/master@{#12999}
2016-06-01 21:39:43 +00:00
deadbeef
0fe8548303 Fixing overloaded-virtual compiler warning.
NOTRY=True
TBR=glaznev@webrtc.org

Review-Url: https://codereview.webrtc.org/2023413002
Cr-Commit-Position: refs/heads/master@{#12998}
2016-06-01 20:42:36 +00:00
danilchap
a6a70073fb Fix FakeNetworkPipe to not deliver packet faster than requested.
BUG=webrtc:5938

Review-Url: https://codereview.webrtc.org/2024293003
Cr-Commit-Position: refs/heads/master@{#12997}
2016-06-01 18:20:48 +00:00
terelius
54f9171b3f Minor lint-fixes in MediaChannel and VideoEngine2.
Review-Url: https://codereview.webrtc.org/2020243005
Cr-Commit-Position: refs/heads/master@{#12996}
2016-06-01 18:18:59 +00:00
Taylor Brandstetter
b787d87504 Making FakePortAllocator support IPv6.
FakePortAllocator is used with both virtual sockets and real sockets.
Thus it needs to work on a system with no IPv4 interface.

R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12995}
2016-06-01 17:43:22 +00:00
kwiberg
7b36ac446a Pull in new commits from the gtest-parallel upstream repo
22c71034 Add flag for running only failed and new tests
2f5c75fd Fix support for TYPED_TEST_CASEs.

Review-Url: https://codereview.webrtc.org/2025293002
Cr-Commit-Position: refs/heads/master@{#12994}
2016-06-01 16:16:46 +00:00
Henrik Boström
cebf0a2728 Remove PeerConnectionFactory's certificate generator and ref counted wrapper.
Clean-up.

The idea behind the factory having a certificate generator was that it would
reuse it with any peer connection it creates unless otherwise specified. This
generator was originally a DtlsIdentityStoreImpl store which preemptively
generated RSA-1024 in the background, giving any peer connection using RSA-1024
a head-start (generate before requesting). But now that 1) the store has been
replaced by a generator that does not do preemptive generation and 2) the
default is ECDSA, not RSA-1024, it is unnecessary for the factory to have this
code.

BUG=webrtc:5707, webrtc:5708
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12993}
2016-06-01 13:45:40 +00:00
philipel
a1ed0b3241 Revert "Revert of Propagate probing cluster id to SendTimeHistory. (patchset #5 id:80001 of https://codereview.webrtc.org/2005313003/ )"
This reverts commit 46948c17fd09e4957bebc8ea61f0a8e77ff84b48.
TBR=mflodman@webrtc.org
BUG=webrtc:5859

Review-Url: https://codereview.webrtc.org/2032473002
Cr-Commit-Position: refs/heads/master@{#12992}
2016-06-01 13:31:22 +00:00
kjellander
98bba39816 Remove metrics_default from rtc_media dependencies.
By not providing the default implementation of the metrics API
it becomes possible for users of rtc_media to choose which
implementation to use. The dependency is moved into each test
target that uses it instead.

NOTRY=True
NOPRESUBMIT=True

Review-Url: https://codereview.webrtc.org/2026223002
Cr-Commit-Position: refs/heads/master@{#12991}
2016-06-01 12:28:57 +00:00
Henrik Boström
d79599d74a Turning FakeDtlsIdentityStore into FakeRTCCertificateGenerator.
This is one less DtlsIdentityStoreInterface implementation, and one step closer
to removing this interface in favor of RTCCertificateGeneratorInterface.

This also removes PeerConnectionInterface::CreatePeerConnectionWithStore which
is no longer needed.

BUG=webrtc:5707, webrtc:5708
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12990}
2016-06-01 11:59:01 +00:00
kjellander
0f380d8ffa GN: Add test_support_unittests target
BUG=webrtc:5949
TESTED=Passing run on Linux, Windows and Mac:
gn gen out/Default
ninja -C out/Default
out/Default/test_support_unittests

And for Android:
gn gen out/Default --args='target_os="android" target_cpu="arm"'
ninja -C out/Default
out/Default/bin/run_test_support_unittests

NOTRY=True

Review-Url: https://codereview.webrtc.org/2021243002
Cr-Commit-Position: refs/heads/master@{#12989}
2016-06-01 11:48:32 +00:00
kjellander
4d167e5ccd Revert of GN: Add BUILD.gn files for webrtc/{api,media,libjingle,p2p,pc} (patchset #5 id:80001 of https://codereview.webrtc.org/1979933002/ )
Reason for revert:
Too many errors to address showed up when trying to land this with Chromium changes in https://codereview.chromium.org/2022833002/.
Will address them separately before relanding.

Original issue's description:
> Reland of GN: Add BUILD.gn files for webrtc/{api,media,libjingle,p2p,pc}
>
> Add BUILD.gn files for webrtc/{api,media,libjingle,p2p,pc} in
> preparation for removing src/third_party/libjingle in Chromium.
>
> Changes from previous attempt:
> * Added libstunprober target
> * Adjusted warnings for Chromium's clang plugins
> * webrtc/pc/externalhmac.{h,cc} added for Chromium builds.
>
> As soon this has landed a roll including the changes in
> https://codereview.chromium.org/2022833002/ is needed to make
> Chromium build cleanly.
>
> BUG=webrtc:4256
> NOTRY=True
> NOPRESUBMIT=True
>
> Committed: https://crrev.com/164e978f981c7810c4260c4184f41e26bae90230
> Cr-Commit-Position: refs/heads/master@{#12983}

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

Review-Url: https://codereview.webrtc.org/2023233002
Cr-Commit-Position: refs/heads/master@{#12988}
2016-06-01 11:45:13 +00:00
philipel
46948c17fd Revert of Propagate probing cluster id to SendTimeHistory. (patchset #5 id:80001 of https://codereview.webrtc.org/2005313003/ )
Reason for revert:
Breaks google3 buildbot:  http://webrtc-buildbot-master.mtv.corp.google.com:21000/builders/WebRTC%20google3%20Importer/builds/8640

Original issue's description:
> Propagate probing cluster id to SendTimeHistory, both for packets and padding.
>
> BUG=webrtc:5859
>
> Committed: https://crrev.com/5be28c848b91bc6e4800eac07a3f5ac09a32ad70
> Cr-Commit-Position: refs/heads/master@{#12985}

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

Review-Url: https://codereview.webrtc.org/2032463003
Cr-Commit-Position: refs/heads/master@{#12987}
2016-06-01 11:04:49 +00:00
johan
ce8d58c20e peerconnection: remove unused include
BUG=

Review-Url: https://codereview.webrtc.org/2026663003
Cr-Commit-Position: refs/heads/master@{#12986}
2016-06-01 10:42:42 +00:00
philipel
5be28c848b Propagate probing cluster id to SendTimeHistory, both for packets and padding.
BUG=webrtc:5859

Review-Url: https://codereview.webrtc.org/2005313003
Cr-Commit-Position: refs/heads/master@{#12985}
2016-06-01 09:49:29 +00:00
Henrik Boström
d03c23b216 Replacing DtlsIdentityStoreInterface with RTCCertificateGeneratorInterface.
The store was used in WebRtcSessionDescriptionFactory to generate certificates,
now a generator is used instead (new API). PeerConnection[Factory][Interface],
and WebRtcSession are updated to pass generators all the way down to the
WebRtcSessionDescriptionFactory instead of stores.

The webrtc implementation of a generator, RTCCertificateGenerator, is used as
the default generator (peerconnectionfactory.cc:189) instead of the webrtc
implementation of a store, DtlsIdentityStoreImpl.
  The generator is fully parameterized and does not generate RSA-1024 unless you
ask for it (which makes sense not to do beforehand since ECDSA is now default).
The store was not fully parameterized (known filed bug).

The "top" layer, PeerConnectionFactoryInterface::CreatePeerConneciton, is
updated to take a generator instead of a store.
  Many unittests still use a store, to allow them to continue to do so the
factory gets CreatePeerConnectionWithStore which uses the old function
signature (and invokes the new signature by wrapping the store in an
RTCCertificateGeneratorStoreWrapper). As soon as the FakeDtlsIdentityStore is
turned into a certificate generator instead of a store, the unittests will be
updated and we can remove CreatePeerConnectionWithStore.

This is a reupload of https://codereview.webrtc.org/2013523002/ with minor
changes.

BUG=webrtc:5707, webrtc:5708
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12984}
2016-06-01 09:44:29 +00:00
kjellander
164e978f98 Reland of GN: Add BUILD.gn files for webrtc/{api,media,libjingle,p2p,pc}
Add BUILD.gn files for webrtc/{api,media,libjingle,p2p,pc} in
preparation for removing src/third_party/libjingle in Chromium.

Changes from previous attempt:
* Added libstunprober target
* Adjusted warnings for Chromium's clang plugins
* webrtc/pc/externalhmac.{h,cc} added for Chromium builds.

As soon this has landed a roll including the changes in
https://codereview.chromium.org/2022833002/ is needed to make
Chromium build cleanly.

BUG=webrtc:4256
NOTRY=True
NOPRESUBMIT=True

Review-Url: https://codereview.webrtc.org/1979933002
Cr-Commit-Position: refs/heads/master@{#12983}
2016-06-01 09:17:56 +00:00
Gordana.Cmiljanovic
caea17a139 MIPS64: Do not use openmax_dl for MIPS64 in GN
Disables openmax_dl for MIPS64 as it is not supported.

BUG=linker reports error about missing openmax_dl symbols
NOTRY=True

Review-Url: https://codereview.webrtc.org/1984383002
Cr-Commit-Position: refs/heads/master@{#12982}
2016-06-01 07:53:42 +00:00
Magnus Jedvert
2e646c8729 VideoCapturerAndroid: Check that camera is still running in every *OnCameraThread method
removeCallbacksAndMessages() is called on the camera thread handler
before setting it to null to remove all pending runnables. The purpose
is to make sure *OnCameraThread methods are not executed when the
camera is stopped, but this does not seem to work reliably. This CL
resorts to a belt and braces approach and checks that the the handler is
still alive in all *OnCameraThread methods.

BUG=b/29015569
R=sakal@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12981}
2016-06-01 07:45:32 +00:00