8673 Commits

Author SHA1 Message Date
zhihuang
3ba4d53379 Remove the if condition block in the function Transport::ConnectChannels. It will not be triggered anymore.
Review URL: https://codereview.webrtc.org/1844133002

Cr-Commit-Position: refs/heads/master@{#12321}
2016-04-11 22:10:57 +00:00
tkchin
efdd930dc9 Fix RTCAudioSession crash in removeDelegate.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#12320}
2016-04-11 19:01:06 +00:00
tkchin
9ff9c6540b iOS h264: Request keyframe after coming back from background.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#12319}
2016-04-11 18:40:36 +00:00
danilchap
90a1351072 Fixed rtcp rpsi parsing of invalid packets.
Added packet type RpsiItem to destinguish parsed rpsi header and Rpsi body
  preventing handling two half-valid (header-only) rpsi packets as one valid,
  making test parser calculate rpsi packet once instead of twice.
Added check padding bits doesn't exceed native bit string length.
Marking rpsi received moved after it is validated.

BUG=600977

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

Cr-Commit-Position: refs/heads/master@{#12318}
2016-04-11 17:05:06 +00:00
Peter Boström
f7704d197b Remove latency-based frame dropping on Android.
This logic currently prevents loopback calls on Nexus 5X when it's
slightly overloaded to maintain input framerate since encoding at ~25fps
with one framedrop results in >70ms between frames naturally.

With this change applied Nexus 5X can maintain ~25fps both in and out
without building excessive latency (>2 frames) (this is now covered by
CPU adaptation outside the codec wrapper).

BUG=
R=glaznev@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12317}
2016-04-11 14:42:48 +00:00
peah
c7bdf8a729 Added storing of the reverse output rate and number of channels in APM protobuf recordings.
Support for reading the newly added fields will be added in a another CL.

BUG=webrtc:5759, webrtc:5724

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

Cr-Commit-Position: refs/heads/master@{#12316}
2016-04-11 14:05:56 +00:00
Peter Boström
dda52b9c3e Add performance tracing to AudioDevice inits.
Adds tracing to AudioDeviceModuleImpl::InitRecording and
AudioDeviceModuleImpl::StartRecording to visualize that they are a
significant part of startup time in performance recordings.

BUG=webrtc:5723
R=henrika@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12315}
2016-04-11 14:04:42 +00:00
nisse
25ed5800b9 Enable proxy_unittest (thread proxy tests).
BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#12314}
2016-04-11 13:01:32 +00:00
nisse
3858477d4b FakeVideoTrackRenderer is a thin wrapper over
FakeVideoRenderer, only registering itself on a
VideoSourceInterface on construction and removing itself on
destruction. Let it inherit FakeVideoRenderer, instead of
proxying all methods.

BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#12313}
2016-04-11 11:38:39 +00:00
Peter Boström
dabc9449b7 Add missing tracing to RtpSender objects.
BUG=
R=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12311}
2016-04-11 09:45:43 +00:00
jansson
18d3d1e466 Update ice server provider response format in the Android AppRTCDemo app
BUG=None

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

Cr-Commit-Position: refs/heads/master@{#12310}
2016-04-11 09:42:20 +00:00
perkj
8aba997f3e Reland of Changed P2PTestConductor to use a separate worker thread.
patchset #1 contains the original cl.
https://codereview.webrtc.org/1859933002/

patchset #2 change the initiating client to accept both kIceConnectionCompleted kIceConnected as a ice state.

The reason for the previous revert was:
Causes P2PTestConductor.LocalP2PTestDtlsTransferCaller to fail on Win dbg.

https://build.chromium.org/p/client.webrtc/builders/Win32%20Debug/builds/7469/steps/peerconnection_unittests/logs/stdio

e:\b\build\slave\win\build\src\webrtc\api\peerconnection_unittest.cc(1221): error: Value of: initiating_client_->ice_connection_state()
  Actual: 2
Expected: webrtc::PeerConnectionInterface::kIceConnectionCompleted
Which is: 3

BUG= webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#12309}
2016-04-11 06:54:39 +00:00
peah
4d23447b15 Moved struct definition to the header file for the ring buffer.
This is done in order to allow the ringbuffer to be recorded using protobufs.
The actual recording will be added in other CLs.

BUG=webrtc:5724

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

Cr-Commit-Position: refs/heads/master@{#12308}
2016-04-11 05:51:10 +00:00
peah
2704512f7b What was done was
-changed filenames to *.cc
-fixed issues with implicit casts causing build errors.

All other CL warnings were ignored as the original
code is not changed, merely moved.

BUG=webrtc:5724
NOPRESUBMIT=true

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

Cr-Commit-Position: refs/heads/master@{#12307}
2016-04-11 05:38:19 +00:00
peah
423d236a54 As the ClosestNativeRate method returns the closest native
rate that is higher than the specified rate, and not
the closest native rate the need for a name change has been
raised. This CL addresses that.

BUG=webrtc:5298

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

Cr-Commit-Position: refs/heads/master@{#12302}
2016-04-09 23:06:59 +00:00
torbjorng
4b9d1dec5a OpenSSL/BoringSSL compatibility fixes.
With this CL, legacy OpenSSL should work again.

BUG=webrtc:5714

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

Cr-Commit-Position: refs/heads/master@{#12300}
2016-04-09 18:35:35 +00:00
skvlad
79b4b8720d Objective C API to read and set RtpParameters
This change adds the Objective C API functions to get and set RtpSender's
RtpParameters, which allows setting bitrate limits for audio and video and
turning off RtpSenders to pre-initialize the encoder.

This CL adds only the smallest set of methods required to support bitrate
limiting - there is no way to create an RtpSender, for example, or to set
its track. The only supported functionality is this:
 	RTCPeerConnection.senders - a read-only property returning the array
	  of all RTCRtpSenders for the connection.
        RTCRtpSender.parameters - a read-only property returning the current
    	  parameters
	RTCRtpSender.setParameters: - a method to change the parameters.
	RTCRtpSender.track - a read-only property returning the
	  RTCMediaStreamTrack corresponding to the sender. It is necessary
	  to be able to identify RTCRtpSenders for video and audio. The
	  track object is of the base RTCMediaStreamTrack type, not of the
          specific subclass for audio and video - just like it is in the
	  Java API.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#12297}
2016-04-09 00:29:02 +00:00
perkj
57db65255c Changed PeerConnectionEndToEndTest to use a separate worker thread.
This is a follow up to https://codereview.webrtc.org/1859933002 to change this test also to use a separate worker thread.

PeerConnectionEndToEndTest currently use the current thread both as a signaling thread and a worker thread. Although convenient while debugging, it can also hide real bugs. An example is https://codereview.webrtc.org/1766653002/#ps420001 where the worker thread is deadlocked in the track proxy due to that the worker thread waits for the signaling thread but the proxy in turns invokes the worker thread..... That bug was only discovered on Android.

BUG= webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#12295}
2016-04-08 15:16:41 +00:00
agrieve
babf8ee78c Add test runner scripts for instrumentation tests
BUG=599919
NOTRY=True
TBR=perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12294}
2016-04-08 13:54:32 +00:00
solenberg
5b5129a2ad Replace a few calls to VoEHardware with direct calls on the ADM, in WVoMC.
BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#12293}
2016-04-08 12:35:55 +00:00
nisse
2ded9b19d1 Replace SetCapturer and SetCaptureDevice by SetSource.
Drop return value.

BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#12291}
2016-04-08 09:24:01 +00:00
skvlad
e0d4637bea Allow applications to control audio send bitrate through RtpParameters.
This change builds on top of the refactoring in https://codereview.webrtc.org/1841083008/, and enables WebRTC client applications to control the max send bitrate for every audio stream through RtpParameters.

The AudioSendStream now stores the last codec spec, and whenever a global or per-stream bitrate limit changes, the effective limit (smaller of the two) is recomputed and the codec is reconfigured with that bitrate.

TBR=pthatcher
BUG=

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

Cr-Commit-Position: refs/heads/master@{#12290}
2016-04-08 05:59:32 +00:00
Taylor Brandstetter
05697a62fc Gracefully continue if ConnectivityManager.requestNetwork fails.
This happens on Android 6.0.0, which requires the WRITE_SETTINGS
permission, which is somewhat impractical to obtain.

R=glaznev@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12288}
2016-04-08 00:36:55 +00:00
skvlad
98bb6640d2 Added log messages for some important call setup events:
- First audio RTP packet sent / received
 - First RTP packet of the first video frame sent / received
 - Last RTP packet of the first video frame sent / received
These timestamps should make it easier to measure how fast the call
becomes established from the user's perspective.

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

Cr-Commit-Position: refs/heads/master@{#12287}
2016-04-07 22:36:49 +00:00
sergeyu
e8d4b7d8a3 Fix screen capturers to initialize on the same thread on which Start() is called.
Previously screen capturers were initialized when they are created.
This means that in the CRD host they were initialized on the thread
that's different from the thread on which they are used. Because of this
on Linux the host was using XErrorTrap() on two different threads and
this is not supported. Now ScreenCapturer implementations always
initialize themselves on the thread on which Start() is called.

Also added ThreadChecker to make sure the capturers are always called
from the same thread.

BUG=600432

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

Cr-Commit-Position: refs/heads/master@{#12285}
2016-04-07 17:43:46 +00:00
torbjorng
aad6780e5c Protect some cipher suites with ifdefs for legacy openssl compatibility.
BUG=webrtc:5714

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

Cr-Commit-Position: refs/heads/master@{#12284}
2016-04-07 15:55:33 +00:00
agrieve
39530c4891 Add isolate paths in GYP, fix location of test_runner.py in wrappers
BUG=599919

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

Cr-Commit-Position: refs/heads/master@{#12283}
2016-04-07 15:18:39 +00:00
Minyue
2a8a78c905 Add AEC filter divergence metric to StatsCollector.
A new metric that tells how often the AEC linear filter diverges has been recently introduced, see
https://codereview.webrtc.org/1739993003/

This metric can reflect echo failure and ducking.

In this CL, we add a field in StatsCollector to receive this metric.

BUG=
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12282}
2016-04-07 14:47:53 +00:00
nisse
5b68ab50bb Extended proxy abstraction, to call certain methods to the worker thread.
Extracted from cl https://codereview.webrtc.org/1766653002/, where
AddOrUpdateSink results in a deadlock.

BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#12281}
2016-04-07 14:46:00 +00:00
minyue
5045337133 Pulling AEC divergent filter fraction.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#12279}
2016-04-07 13:36:49 +00:00
henrika
9d7e8dd44e Adds Moto G 3rd Generation to HW AEC blacklist
BUG=b/27447146

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

Cr-Commit-Position: refs/heads/master@{#12278}
2016-04-07 11:56:08 +00:00
minyue
e10fc3fb2d Adding fraction of filter divergence in AEC metrics.
With the current AEC algorithm, the divergence of the echo cancelling linear filter is a strong signal of non-transparency. During double talk, it can result in a ducking artifacts.

In this CL, a metric that tells the fraction of filter divergence is added. This can measure the severity of non-transparency.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#12276}
2016-04-07 09:57:00 +00:00
nisse
b0c293c5ab Delete unused code in rtc timeutils.
BUG=webrtc:5740

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

Cr-Commit-Position: refs/heads/master@{#12275}
2016-04-07 09:12:12 +00:00
Magnus Jedvert
fae14804ee Android: Fix chroma sampling bug when converting from texture to YUV
The xUnit for the UV channels in SurfaceTextureHelper.YuvConverter is
currently calculated from 1 / (2 * width). It should be 1 / (width / 2)
instead.

R=nisse@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12274}
2016-04-07 07:26:54 +00:00
kjellander
95177d1e71 GN: Fix some build errors for iOS.
With these changes, the only problem seem to be the missing jpeg
library. See https://codereview.chromium.org/1806503002/ for more details on that.

BUG=webrtc:5195, webrtc:5748
NOTRY=True

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

Cr-Commit-Position: refs/heads/master@{#12273}
2016-04-07 07:14:06 +00:00
solenberg
0996a3a022 Add tommi@webrtc.org as OWNER of the peerconnection_client/peerconnection_server example.
BUG=webrtc:5630

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

Cr-Commit-Position: refs/heads/master@{#12271}
2016-04-06 23:25:32 +00:00
simon.hosie
953b1c185f Implement CPU feature detection for ARM Linux.
BUG=webrtc:5057
NOTRY=True

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

Cr-Commit-Position: refs/heads/master@{#12270}
2016-04-06 21:02:34 +00:00
henrik.lundin
0d96ab7dc4 NetEq::GetPlayoutTimestamp returns empty during CNG
With this change, the return value from NetEq::GetPlayoutTimestamp is
empty if the latest call to NetEq::GetAudio resulted in comfort noise
(codec-internal or external) being played out. This is because the
playout timestamp is not updated during CNG, and can therefore not be
trusted.

A few unit tests were updated to reflect the change.

BUG=webrtc:5669

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

Cr-Commit-Position: refs/heads/master@{#12268}
2016-04-06 19:28:31 +00:00
kwiberg
c8d071e4e0 Switch to using new ACM methods for encoder management
BUG=webrtc:5028

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

Cr-Commit-Position: refs/heads/master@{#12267}
2016-04-06 19:22:45 +00:00
peah
dc2242d351 Added a query function for whether submodules are enabled
that can be called from the render side without making APM
singlethreaded.

This CL is addressing the problems with high render-side
call duration that were triggered by the CL
https://codereview.webrtc.org/1844583003

BUG=webrtc:5736

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

Cr-Commit-Position: refs/heads/master@{#12266}
2016-04-06 16:31:07 +00:00
henrik.lundin
15c51e355f Move setting of AudioFrame::timestamp_ into NetEq
This was previously done in AcmReceiver, but belongs in NetEq where the
rest of the AudioFrame fields are populated.

BUG=webrtc:5669,webrtc:5607

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

Cr-Commit-Position: refs/heads/master@{#12265}
2016-04-06 15:39:01 +00:00
kjellander@webrtc.org
d31b664a6c Restore BoringSSL behavior for webrtc/base/BUILD.gn
In https://codereview.webrtc.org/1857163003 the openssl*
sources and the dependency on BoringSSL was moved out of
the use_openssl condition to make it similar to the GYP build.
Unfortunately this had unexpected side effects for the Chromium
build. See the referenced bug for more details.

This CL also fixes an incorrect move of the :ios_config dependency
that was spotted in https://codereview.webrtc.org/1857163003.

BUG=chromium:601042
R=perkj@webrtc.org, torbjorng@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12264}
2016-04-06 15:18:51 +00:00
kwiberg
b4d01c4ded A bunch of interfaces: Return scoped_ptr<SSLCertificate>
Instead of using a raw pointer output parameter. This affects

  SSLStreamAdapter::GetPeerCertificate
  Transport::GetRemoteSSLCertificate
  TransportChannel::GetRemoteSSLCertificate
  TransportController::GetRemoteSSLCertificate
  WebRtcSession::GetRemoteSSLCertificate

This is a good idea in general, but will also be very convenient when
scoped_ptr is gone, since unique_ptr doesn't have an .accept() method.

BUG=webrtc:5520

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

Cr-Commit-Position: refs/heads/master@{#12262}
2016-04-06 12:15:11 +00:00
henrik.lundin
96bd50262a VoE: Handle empty playout timestamp differently
With this change, the VoE Channel will handle the case of an empty
playout timestamp (from audio_coding_->PlayoutTimestamp())
differently. The purpose of the change is to prepare for an upcoming
change in NetEq where empty values will be returned more often (i.e.,
not only before the first packet is received).

BUG=webrtc:5669

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

Cr-Commit-Position: refs/heads/master@{#12261}
2016-04-06 11:14:03 +00:00
Niels Möller
03bd4008b6 Move InitToBlack and Reset methods from cricket::VideoFrame to its subclass cricket::WebRtcVideoFrame.
BUG=webrtc:5682
R=perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12260}
2016-04-06 11:07:18 +00:00
peah
0bf612b3ec This CL is partially reverting the effects that
were added in https://codereview.webrtc.org/1773173002.

The reason for the revert is that for some scenarios
that CL causes problems in the coherence estimate used
in the AEC, which in turn causes echo leakage.

The reason for not reverting the actual CL is that
it would cause subsequent CLs to be reverted as well.
Therefore the choice was made to in this CK
instead revert the effects of that CL.

With the changes in this CL, the behavior is bitexact
to what it was before the CL mentioned above.

TBR=aluebs@webrtc.org

BUG=webrtc:5725

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

Cr-Commit-Position: refs/heads/master@{#12259}
2016-04-06 09:47:52 +00:00
peah
fc3ef3e5c1 Removed unused code and simplified the code for the AEC metrics
BUG=

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

Cr-Commit-Position: refs/heads/master@{#12258}
2016-04-06 09:28:32 +00:00
magjed
38d653c927 Revert of Switch to using EGL 1.0 for rendering and HW codec. (patchset #1 id:1 of https://codereview.webrtc.org/1829923002/ )
Reason for revert:
EGL 1.4 was not the cause of the deadlock. See https://bugs.chromium.org/p/webrtc/issues/detail?id=5702 for more info.

Original issue's description:
> Switch to using EGL 1.0 for rendering and HW codec.
>
> Using EGL 1.4 may cause texture rendering deadlock on some
> Android devices.
>
> R=jiayl@webrtc.org
>
> Committed: 887a19b9d2

BUG=webrtc:5702
TBR=jiayl@webrtc.org,glaznev@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.

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

Cr-Commit-Position: refs/heads/master@{#12257}
2016-04-06 09:26:30 +00:00
henrik.lundin
9a410dd082 Change NetEq::GetPlayoutTimestamp to return an rtc::Optional<uint32_t>
This is in preparation for changes to when the playout timestamp is
valid.

BUG=webrtc:5669

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

Cr-Commit-Position: refs/heads/master@{#12256}
2016-04-06 08:39:30 +00:00
perkj
05255b0e8a Revert of Changed P2PTestConductor to use a separate WorkerThread. (patchset #1 id:1 of https://codereview.webrtc.org/1859933002/ )
Reason for revert:
Causes P2PTestConductor.LocalP2PTestDtlsTransferCaller to fail on Win dbg.

https://build.chromium.org/p/client.webrtc/builders/Win32%20Debug/builds/7469/steps/peerconnection_unittests/logs/stdio

e:\b\build\slave\win\build\src\webrtc\api\peerconnection_unittest.cc(1221): error: Value of: initiating_client_->ice_connection_state()
  Actual: 2
Expected: webrtc::PeerConnectionInterface::kIceConnectionCompleted
Which is: 3

Original issue's description:
> Changed P2PTestConductor to use a separate WorkerThread.
>
> P2PTestConductor currently use the current thread both as a signaling thread and a worker thread. Although convenient while debugging, it can also hide real bugs. An example is https://codereview.webrtc.org/1766653002/#ps420001 where the worker thread is deadlocked in the track proxy due to that the worker thread waits for the signaling thread but the proxy in turns invokes the worker thread..... That bug was only discovered on Android. I suggest we let the P2PTestConductor use a separate thread as a worker thread to better cover how PeerConnections are used in reality.
>
> BUG=webrtc:5426
>
> Committed: https://crrev.com/6172401972c54813698d73580779d675d99178b4
> Cr-Commit-Position: refs/heads/master@{#12252}

TBR=nisse@webrtc.org,pthatcher@webrtc.org,deadbeef@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#12255}
2016-04-06 08:28:34 +00:00