Commit graph

142 commits

Author SHA1 Message Date
henrika
4f167df8fa Adds new DisableAndEnableAudioRecording integration test to Peerconnection.
Follow-up on https://webrtc-review.googlesource.com/c/src/+/17784.
Adds a new PC integration test using the newly added StartRecording API.

Bug: webrtc:7313
Change-Id: Ibd59910ca5d8f8ac96cfb891f41039759a18b6f6
Reviewed-on: https://webrtc-review.googlesource.com/17940
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20549}
2017-11-02 11:43:17 +00:00
henrika
5f6bf24506 Add SetAudioPlayout and SetAudioRecording methods to the PeerConnection API (II)
Second attempt to land https://webrtc-review.googlesource.com/c/src/+/16180

Now removes voice_engine dependency from peerconnection and fixes a minor
const issue in NullAudioPoller.

TBR=solenberg

Bug: webrtc:7313
Change-Id: Ibfddbdc76118581e4a4dc64575203f84c1659e5c
Reviewed-on: https://webrtc-review.googlesource.com/17784
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20526}
2017-11-01 11:04:26 +00:00
Mirko Bonadei
990d6b875e Revert "Add SetAudioPlayout and SetAudioRecording methods to the PeerConnection API"
This reverts commit 90bace0958.

Reason for revert: The original problem of this CL has been fixed in https://webrtc-review.googlesource.com/17540 but sounds like it is also adding voice_engine as a dependency of pc:peerconnection. We should investigate this because probably we can avoid it.

Original change's description:
> Add SetAudioPlayout and SetAudioRecording methods to the PeerConnection API
> 
> (this CL is based on the work by Taylor and Steve in https://webrtc-review.googlesource.com/c/src/+/10201)
> 
> This SetAudioPlayout method lets applications disable audio playout while
> still processing incoming audio data and generating statistics on the
> received audio.
> 
> This may be useful if the application wants to set up media flows as
> soon as possible, but isn't ready to play audio yet. Currently, native
> applications don't have any API point to control this, unless they
> completely implement their own AudioDeviceModule.
> 
> The SetAudioRecording works in a similar fashion but for the recorded
> audio. One difference is that calling SetAudioRecording(false) does not
> keep any audio processing alive.
> 
> TBR=solenberg
> 
> Bug: webrtc:7313
> Change-Id: I0aa075f6bfef9818f1080f85a8ff7842fb0750aa
> Reviewed-on: https://webrtc-review.googlesource.com/16180
> Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20499}

TBR=solenberg@webrtc.org,henrika@webrtc.org,kwiberg@webrtc.org

Change-Id: I8431227e21dbffcfed3dd0e6bd7ce26c4ce09394
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:7313
Reviewed-on: https://webrtc-review.googlesource.com/17701
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20512}
2017-11-01 02:40:48 +00:00
henrika
90bace0958 Add SetAudioPlayout and SetAudioRecording methods to the PeerConnection API
(this CL is based on the work by Taylor and Steve in https://webrtc-review.googlesource.com/c/src/+/10201)

This SetAudioPlayout method lets applications disable audio playout while
still processing incoming audio data and generating statistics on the
received audio.

This may be useful if the application wants to set up media flows as
soon as possible, but isn't ready to play audio yet. Currently, native
applications don't have any API point to control this, unless they
completely implement their own AudioDeviceModule.

The SetAudioRecording works in a similar fashion but for the recorded
audio. One difference is that calling SetAudioRecording(false) does not
keep any audio processing alive.

TBR=solenberg

Bug: webrtc:7313
Change-Id: I0aa075f6bfef9818f1080f85a8ff7842fb0750aa
Reviewed-on: https://webrtc-review.googlesource.com/16180
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20499}
2017-10-31 12:35:42 +00:00
Steve Anton
36b29d1df3 Enable cpplint in pc/
Enable cpplint check in the PRESUBMIT for pc/ and fix all existing
warnings.

Bug: webrtc:5583
Change-Id: If39994692ab6f6f3c83c74f23850f02fdfe810e8
Reviewed-on: https://webrtc-review.googlesource.com/16540
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20482}
2017-10-30 18:08:29 +00:00
Zhi Huang
b2d355ed1f Reland: Reject the description with fewer m= sections.
If the subsequent offer contains fewer m= sections than the existing
description, it would be rejected.

The helper method MediaSectionsInSameOrder is modified and it will
compare the number of m= sections before matching the media type.

The original CL: https://webrtc-review.googlesource.com/c/src/+/9621
Reland it after the web-platform-tests are updated:
https://chromium-review.googlesource.com/c/chromium/src/+/736318

TBR=deadbeef@webrtc.org

Bug: chromium:773620
Change-Id: I60e972eb856efc3cef4a18777791053c9f8e0491
Reviewed-on: https://webrtc-review.googlesource.com/16382
Reviewed-by: Zhi Huang <zhihuang@webrtc.org>
Commit-Queue: Zhi Huang <zhihuang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20455}
2017-10-27 01:07:27 +00:00
Steve Anton
074dece085 Fix flaky DataChannel integration test
The DataChannel OPEN message is sent in-band in this test, and waiting
for the signaling state to change is not sufficient to guarantee that the
callee received this message

Bug: webrtc:8443
Change-Id: I76fa6348b6f8e1e70fb41a4e644aee805b2ef4de
Reviewed-on: https://webrtc-review.googlesource.com/15060
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20415}
2017-10-24 20:41:48 +00:00
Steve Anton
d5585ca956 Move almost all references from WebRtcSession to PeerConnection
WebRtcSession is being merged into PeerConnection, and to make the
code review easier this is the first step towards achieving that.

Bug: webrtc:8323
Change-Id: I33778e46f20cb14089dff4328947868e207476bd
Reviewed-on: https://webrtc-review.googlesource.com/8760
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20413}
2017-10-24 17:59:20 +00:00
Steve Anton
c4faa9c4e1 Remove QUIC transport/data channel
Originally, the idea was to implement QUIC data channels as a
PeerConnection API. Now, the effort has shifted to implementing it as a
part of ORTC which will live in Chromium. Since this code has not been
maintained and is not currently being used, remove it to reduce
maintenance overhead while a copy will be retained in the Git history.

Bug: webrtc:8385
Change-Id: I2719c007a0de0118b67d41a425f900b66c52f65a
Reviewed-on: https://webrtc-review.googlesource.com/14100
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Zhi Huang <zhihuang@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20412}
2017-10-24 16:14:18 +00:00
Zhi Huang
ef48df9aeb Fix the issues in SrtpTransport.
In SrtpTransport::SetRtcpParams, send_rtcp_session_ should really call
SetSend rather than SetRecv.

Modified the LOG message in SrtpTransport::SetRtpParams.

Bug: webrtc:8436
Change-Id: Iccbfbc5ef2d4f4ebd5f876c3f6dcc81671fdc631
Reviewed-on: https://webrtc-review.googlesource.com/14562
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Zhi Huang <zhihuang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20403}
2017-10-24 01:08:18 +00:00
Steve Anton
8a63f78ffa Rewrite the remaining few WebRtcSession tests.
Bug: webrtc:8222
Change-Id: I18e2a449b77cee2ecb8c0c2ae94c105247116458
Reviewed-on: https://webrtc-review.googlesource.com/8740
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20399}
2017-10-23 21:05:17 +00:00
Steve Anton
da6c095b30 Rewrite WebRtcSession data channel tests as PeerConnection tests
Bug: webrtc:8222
Change-Id: I1382a0727b04dfd33e79992841d885f640b3a032
Reviewed-on: https://webrtc-review.googlesource.com/8281
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20398}
2017-10-23 19:13:47 +00:00
Steve Anton
6f25b090d4 Reland "Rewrite WebRtcSession BUNDLE tests as PeerConnection tests"
This is a reland of b49b66109e.

Original change's description:
> Rewrite WebRtcSession BUNDLE tests as PeerConnection tests
> 
> Bug: webrtc:8222
> Change-Id: Id47e4544dc073564ad7e63d02865ca80dd5a85ff
> Reviewed-on: https://webrtc-review.googlesource.com/8280
> Commit-Queue: Steve Anton <steveanton@webrtc.org>
> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20365}

Bug: webrtc:8222
Change-Id: If3dcd8090875c641881e2b9e92fc1db387ba1de5
Reviewed-on: https://webrtc-review.googlesource.com/14400
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20397}
2017-10-23 17:10:47 +00:00
Steve Anton
8d3444df2d Reland "Rewrite WebRtcSession media tests as PeerConnection tests"
This is a reland of 3df5dcac9b
Original change's description:
> Rewrite WebRtcSession media tests as PeerConnection tests
> 
> Bug: webrtc:8222
> Change-Id: I782a3227e30de70eb8f6c26a48723cb3510a84ad
> Reviewed-on: https://webrtc-review.googlesource.com/6640
> Commit-Queue: Steve Anton <steveanton@webrtc.org>
> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20364}

Bug: webrtc:8222
Change-Id: I0a5398170d469eb9223bc781bfb417a85a72a2d2
Reviewed-on: https://webrtc-review.googlesource.com/14380
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20377}
2017-10-21 01:38:14 +00:00
Olga Sharonova
f2662f08e5 Revert "Rewrite WebRtcSession media tests as PeerConnection tests"
This reverts commit 3df5dcac9b.

Reason for revert: suspected of breaking chromium.webrtc.fyi:
WebRtcBrowserTest.NegotiateUnsupportedVideoCodec
WebRtcBrowserTest.NegotiateNonCryptoCall

android https://uberchromegw.corp.google.com/i/chromium.webrtc.fyi/builders/Android%20Tests%20%28dbg%29%20%28L%20Nexus5%29/builds/25506
linux https://uberchromegw.corp.google.com/i/chromium.webrtc.fyi/builders/Linux%20Tester/builds/38809
mac
https://uberchromegw.corp.google.com/i/chromium.webrtc.fyi/builders/Mac%20Tester/builds/44120
windows
https://uberchromegw.corp.google.com/i/chromium.webrtc.fyi/builders/Win10%20Tester/builds/9236

Original change's description:
> Rewrite WebRtcSession media tests as PeerConnection tests
> 
> Bug: webrtc:8222
> Change-Id: I782a3227e30de70eb8f6c26a48723cb3510a84ad
> Reviewed-on: https://webrtc-review.googlesource.com/6640
> Commit-Queue: Steve Anton <steveanton@webrtc.org>
> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20364}

TBR=steveanton@webrtc.org,deadbeef@webrtc.org

Change-Id: Iaacc950d050ba2835d262908658dc045f234ef5b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8222
Reviewed-on: https://webrtc-review.googlesource.com/14160
Commit-Queue: Olga Sharonova <olka@webrtc.org>
Reviewed-by: Olga Sharonova <olka@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20375}
2017-10-20 13:00:45 +00:00
Olga Sharonova
b49b66109e Revert "Rewrite WebRtcSession BUNDLE tests as PeerConnection tests"
This reverts commit 096e367bfd.

Reason for revert:
suspected of breaking chromium.webrtc.fyi:
WebRtcBrowserTest.NegotiateUnsupportedVideoCodec
WebRtcBrowserTest.NegotiateNonCryptoCall

android https://uberchromegw.corp.google.com/i/chromium.webrtc.fyi/builders/Android%20Tests%20%28dbg%29%20%28L%20Nexus5%29/builds/25506
linux https://uberchromegw.corp.google.com/i/chromium.webrtc.fyi/builders/Linux%20Tester/builds/38809
mac
https://uberchromegw.corp.google.com/i/chromium.webrtc.fyi/builders/Mac%20Tester/builds/44120
windows
https://uberchromegw.corp.google.com/i/chromium.webrtc.fyi/builders/Win10%20Tester/builds/9236

Original change's description:
> Rewrite WebRtcSession BUNDLE tests as PeerConnection tests
> 
> Bug: webrtc:8222
> Change-Id: Id47e4544dc073564ad7e63d02865ca80dd5a85ff
> Reviewed-on: https://webrtc-review.googlesource.com/8280
> Commit-Queue: Steve Anton <steveanton@webrtc.org>
> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20365}

TBR=steveanton@webrtc.org,deadbeef@webrtc.org

Change-Id: I571d8c7fdce4b47137260e0f3276ea4eb04a496c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8222
Reviewed-on: https://webrtc-review.googlesource.com/14240
Reviewed-by: Olga Sharonova <olka@webrtc.org>
Commit-Queue: Olga Sharonova <olka@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20374}
2017-10-20 12:57:06 +00:00
Alex Narest
78609d5b6b Reland of BWE allocation strategy
TBR=stefan@webrtc.org,alexnarest@webrtc.org

Bug: webrtc:8243
Change-Id: Ie68e4f414b2ac32ba4e64877cb250fabcb089a07
Reviewed-on: https://webrtc-review.googlesource.com/13940
Commit-Queue: Alex Narest <alexnarest@webrtc.org>
Reviewed-by: Alex Narest <alexnarest@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20369}
2017-10-20 10:16:15 +00:00
Niels Möller
6f72f56b6c Change return types of refcount methods.
AddRef() now returns void, and Release() returns an enum
RefCountReleaseStatus, to indicate whether or not this Release
call implied deletion.

Bug: webrtc:8270
Change-Id: If2fb77f26118b61751b51c856af187c72112c630
Reviewed-on: https://webrtc-review.googlesource.com/3320
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20366}
2017-10-20 07:46:03 +00:00
Steve Anton
096e367bfd Rewrite WebRtcSession BUNDLE tests as PeerConnection tests
Bug: webrtc:8222
Change-Id: Id47e4544dc073564ad7e63d02865ca80dd5a85ff
Reviewed-on: https://webrtc-review.googlesource.com/8280
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20365}
2017-10-20 02:31:13 +00:00
Steve Anton
3df5dcac9b Rewrite WebRtcSession media tests as PeerConnection tests
Bug: webrtc:8222
Change-Id: I782a3227e30de70eb8f6c26a48723cb3510a84ad
Reviewed-on: https://webrtc-review.googlesource.com/6640
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20364}
2017-10-20 01:52:23 +00:00
Steve Anton
3b80aace61 Fix flaky memory leak in RemoteAudioSource
Bug: webrtc:8405
Change-Id: Ie7c89214323678c6ea34e344bb1a5a33ad46b3f0
Reviewed-on: https://webrtc-review.googlesource.com/13401
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20362}
2017-10-19 18:01:52 +00:00
Alex Narest
dc9ca9329b Revert "BWE allocation strategy"
This reverts commit a5fbc23379.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> BWE allocation strategy
> 
> This is reland of https://webrtc-review.googlesource.com/c/src/+/4860 with the fixed RampUpTest test
> 
> Bug: webrtc:8243
> Change-Id: I4b90a449b00dd05feee974001e08fb40710b59ac
> Reviewed-on: https://webrtc-review.googlesource.com/13124
> Commit-Queue: Alex Narest <alexnarest@webrtc.org>
> Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20345}

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

Change-Id: I8ed12cd2115ef63204e384cc93c9f4473daa54d1
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8243
Reviewed-on: https://webrtc-review.googlesource.com/14020
Commit-Queue: Alex Narest <alexnarest@webrtc.org>
Reviewed-by: Alex Narest <alexnarest@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20361}
2017-10-19 15:34:52 +00:00
Alex Narest
a5fbc23379 BWE allocation strategy
This is reland of https://webrtc-review.googlesource.com/c/src/+/4860 with the fixed RampUpTest test

Bug: webrtc:8243
Change-Id: I4b90a449b00dd05feee974001e08fb40710b59ac
Reviewed-on: https://webrtc-review.googlesource.com/13124
Commit-Queue: Alex Narest <alexnarest@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20345}
2017-10-19 09:30:00 +00:00
Lu Liu
39260c4a6b Revert "BWE allocation strategy allows controlling of bitrate allocation with WEBRTC external logic."
This reverts commit 54d1da13a5.

Reason for revert: Breaking tests

Original change's description:
> BWE allocation strategy allows controlling of bitrate allocation with WEBRTC external logic.
> 
> This CL implements the main logic and IOS appRTC integration.
> 
> Unit tests and Android appRTC will be in separate CL.
> 
> Bug: webrtc:8243
> Change-Id: If8e5195294046a47316e9fade1b0dfec211155e1
> Reviewed-on: https://webrtc-review.googlesource.com/4860
> Commit-Queue: Alex Narest <alexnarest@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20329}

TBR=deadbeef@webrtc.org,nisse@webrtc.org,stefan@webrtc.org,alexnarest@webrtc.org

Change-Id: I5be1da78f360f72be66f9d56dd6b88c1cc13e963
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8243
Reviewed-on: https://webrtc-review.googlesource.com/12560
Reviewed-by: Lu Liu <lliuu@webrtc.org>
Commit-Queue: Lu Liu <lliuu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20330}
2017-10-17 19:59:04 +00:00
Alex Narest
54d1da13a5 BWE allocation strategy allows controlling of bitrate allocation with WEBRTC external logic.
This CL implements the main logic and IOS appRTC integration.

Unit tests and Android appRTC will be in separate CL.

Bug: webrtc:8243
Change-Id: If8e5195294046a47316e9fade1b0dfec211155e1
Reviewed-on: https://webrtc-review.googlesource.com/4860
Commit-Queue: Alex Narest <alexnarest@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20329}
2017-10-17 18:22:15 +00:00
Karl Wiberg
1b0eae3c81 Don't call deprecated CreatePeerConnectionFactory() overloads
They're about to be removed.

BUG=webrtc:8396

Change-Id: Ie9a45f4c0dccb4414d2a2f939aa5f142edc6e4b6
Reviewed-on: https://webrtc-review.googlesource.com/12280
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20328}
2017-10-17 17:53:51 +00:00
henrika
6592f2cfd2 Removes more unused ADM APIs:
- RecordingDelay()
- LastError()

Bug: webrtc:7306
Change-Id: I3bb9cd243a1464f0ba612787c854eeb6602c7e38
Reviewed-on: https://webrtc-review.googlesource.com/12060
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20326}
2017-10-17 14:23:50 +00:00
Kári Tristan Helgason
8b35df7277 Try re-enabling VoiceChannel::TestInit.
This test was disabled for being flaky on the bots.
Try reenabling it to see if something has changed.

Bug: webrtc:7247
Change-Id: I65ce2cf6ce7a3761247369255d9ba106aa3e53f9
Reviewed-on: https://webrtc-review.googlesource.com/3262
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20320}
2017-10-17 09:47:40 +00:00
Steve Anton
ede9ca5a24 Rewrite WebRtcSession ICE integration tests as PeerConnection tests
Bug: webrtc:8222
Change-Id: I12d28b2016598f94602a273a82de70d6fc0e682f
Reviewed-on: https://webrtc-review.googlesource.com/7020
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20318}
2017-10-16 21:44:15 +00:00
Karl Wiberg
d6b4819e4a PeerConnection::StartRtcEventLog: Improve callback memory safety
By having a unique_ptr own the callback data instead of a raw pointer,
the compiler helps us ensure that it's destroyed exactly once,
and never used after being destroyed.

(This made the callback object move-only, so I had to add support
for move-only callbacks to rtc::Thread::Invoke().)

BUG=webrtc:8111

Change-Id: Ia0804e4662e63e91e5cee18ecc3f38d2cfe8a26b
Reviewed-on: https://webrtc-review.googlesource.com/10812
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20317}
2017-10-16 21:37:14 +00:00
henrika
919dc2e843 Removes fallback from Linux PulseAudio to ALSA.
Unit test now checks that ADM:Init() works before any test runs.
It means that all tests will be skipped on bots that lack Pulse
support which is as how it worked before this CL as well. But then,
we detected the lack of support by checking that the audio layer had
changed from Pulse to Alsa.

As a consequence, I also decided to inject fake/mock ADMs in more
unit tests. One was actually already injected for other reasons
(see https://codereview.webrtc.org/2997383002/) but it had accidentally
been "reverted" later in combination with other changes.

To summarize: before this change we had a set of unit tests where real
audio was tested but it was not the intention of the test or required.
In addition, some Linux bots (VM:s) did not support PulseAudio and on
them the tests relied on a fallback mechanism to ALSA to work, i.e.,
we had a rather complex dependency on hardware. This dependency has now
been removed and it should result in more stable tests.

Bug: webrtc:7306, webrtc:7806
Change-Id: Ia0485658c04a4ef3b3f2dc0d557d73738067304b
Reviewed-on: https://webrtc-review.googlesource.com/8640
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20307}
2017-10-16 11:49:37 +00:00
Tommi
589ae45d0f Revert "Reject the subsequent offer with fewer m= sections."
This reverts commit a8264dbdd9.

Reason for revert: Reverting to unblock rolls into Chromium.
See failure here:
https://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_rel_ng/builds/565449

Fails: external/wpt/webrtc/RTCPeerConnection-setRemoteDescription-offer.html

I'm guessing these lines from the output are relevant:

12:15:32.525 11839   [1:19:1015/121532.495175:16438293900:ERROR:webrtcsession.cc(350)] Failed to set remote offer sdp: The order of m-lines in subsequent offer doesn't match order from previous offer/answer.
12:15:32.525 11839   [1:20:1015/121532.497199:16438296127:WARNING:delay_based_bwe.cc(326)] BWE Setting start bitrate to: 300000
12:15:32.525 11839   [1:1:1015/121532.498272:16438296963:ERROR:webrtcsdp.cc(359)] Failed to parse: "Invalid SDP". Reason: Expect line: v=
12:15:32.525 11839   [1:1:1015/121532.498364:16438297040:ERROR:rtc_peer_connection_handler.cc(2183)] Failed to create native session description. Type: offer SDP: Invalid SDP
12:15:32.525 11839   [1:1:1015/121532.498432:16438297104:ERROR:rtc_peer_connection_handler.cc(1458)] Failed to parse SessionDescription. Invalid SDP Expect line: v=

Original change's description:
> Reject the subsequent offer with fewer m= sections.
> 
> If the subsequent offer contains fewer m= sections than the existing
> description, it would be rejected.
> 
> The helper method MediaSectionsInSameOrder is modified and it will
> compare the number of m= sections before matching the media type.
> 
> Bug: chromium:773620
> Change-Id: Ic8999445f4bc023da1d85a65659583db1687ec37
> Reviewed-on: https://webrtc-review.googlesource.com/9621
> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> Commit-Queue: Zhi Huang <zhihuang@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20298}

TBR=deadbeef@webrtc.org,zhihuang@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: chromium:773620
Change-Id: I4a3ff7a42abb95144615b1dd37fb21585ee07b5d
Reviewed-on: https://webrtc-review.googlesource.com/10920
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20300}
2017-10-15 21:50:06 +00:00
Zhi Huang
a8264dbdd9 Reject the subsequent offer with fewer m= sections.
If the subsequent offer contains fewer m= sections than the existing
description, it would be rejected.

The helper method MediaSectionsInSameOrder is modified and it will
compare the number of m= sections before matching the media type.

Bug: chromium:773620
Change-Id: Ic8999445f4bc023da1d85a65659583db1687ec37
Reviewed-on: https://webrtc-review.googlesource.com/9621
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Zhi Huang <zhihuang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20298}
2017-10-14 00:40:32 +00:00
Steve Anton
f1c6db1c02 Rewrite WebRtcSession ICE tests as PeerConnection tests
Bug: webrtc:8222
Change-Id: Ie138712beaae964f08150b29ba5a8ed17ea0e956
Reviewed-on: https://webrtc-review.googlesource.com/4640
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20296}
2017-10-13 18:42:34 +00:00
Elad Alon
99c3fe55c7 Add PeerConnection::StartRtcEventLog version that takes RtcEventLogOutput as parameter
This will allow Chrome to provide a RtcEventLogOutput object that reports the log back to Chrome, allowing Chrome to manage the log by itself - write it to a file, upload it to a server, etc.

Bug: webrtc:8111
Change-Id: I6a2a6945fc8586ef10e0fb9c56eaa8fda00dfc98
Reviewed-on: https://webrtc-review.googlesource.com/8081
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20295}
2017-10-13 17:18:07 +00:00
Taylor Brandstetter
80cfb527c6 RTC_CHECK'ing content type before static_casting descriptions.
This will cause the application to be aborted before it encounters
something worse like a heap overflow, in case any bug in this code
exists or is introduced in the future.

TBR=zhihuang@webrtc.org

Bug: chromium:773620
Change-Id: Idd4e31aa63a3f673eefd3e8cb2ae3f4a5092ca4e
Reviewed-on: https://webrtc-review.googlesource.com/9040
Reviewed-by: Zhi Huang <zhihuang@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20293}
2017-10-13 16:36:28 +00:00
Taylor Brandstetter
b140b9fd69 Keep count of libsrtp clients, and only deinitialize when it goes to 0.
This is the same thing we're doing for usrsctp. Before this CL, the
first SrtpSession to call SetKey would initialize libsrtp, and
ChannelManager's destructor would deinitialize it. This works for an
application that only uses one instance of ChannelManager simultaneously
(or one instance of PeerConnectionFactory), but not one that uses
multiple.

Now, libsrtp is effectively reference-counted, with the first
SrtpSession to take a reference initializing it, and the last to remove
its reference deinitializing it.

This issue was discovered recently due to a change that resulted in
using srtp_update. Without using that method, the issue went unnoticed;
maybe srtp_protect/srtp_unprotect don't require initialization?

Bug: webrtc:8388
Change-Id: If1329360f0b469e454810e62e9b5acfbd4cba100
Reviewed-on: https://webrtc-review.googlesource.com/9000
Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20262}
2017-10-13 05:11:27 +00:00
Elad Alon
9e6565b008 Fix PeerConnectionInterfaceTest_StartAndStopLoggingAfterPeerConnectionClosed
PeerConnectionInterfaceTest_StartAndStopLoggingAfterPeerConnectionClosed was using an invalid file, then checking that StartRtcEventLog returns false. Such a test might return a false positive, since StartRtcEventLog might fail because it was given an invalid file, rather than because the PC was already closed.


Bug: webrtc:8111
Change-Id: I844eb3b948b1406bb6f5cc63928eb26f0fb7b694
Reviewed-on: https://webrtc-review.googlesource.com/8541
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20253}
2017-10-11 17:34:17 +00:00
Karl Wiberg
c5bb00b6bf PeerConnection end-to-end test with a non-builtin codec
BUG=webrtc:8159

Change-Id: I27f3fc8a6204115c480d70238225b0565c41bd81
Reviewed-on: https://webrtc-review.googlesource.com/6283
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20245}
2017-10-11 11:48:54 +00:00
Jonas Oreland
bdcee28ee9 TurnCustomizer - an interface for modifying stun messages sent by TurnPort
This patch adds an interface that allows modification of stun messages
sent by TurnPort. A user can inject a TurnCustomizer on the RTCConfig
and the TurnCustomizer will be invoked by TurnPort before sending
message. This allows user to e.g add custom attributes as described
in rtf5389.

BUG=webrtc:8313

Change-Id: I6f4333e9f8ff7fd20f32677be19285f15e1180b6
Reviewed-on: https://webrtc-review.googlesource.com/7618
Reviewed-by: Guido Urdaneta <guidou@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20233}
2017-10-11 07:45:29 +00:00
Henrik Boström
933d8b07ea Reland "Added PeerConnectionObserver::OnRemoveTrack."
This reverts commit 6c0c55c318.

Reason for revert:
Fixed the flake.

Original change's description:
> Revert "Added PeerConnectionObserver::OnRemoveTrack."
> 
> This reverts commit ba97ba7af9.
> 
> Reason for revert: The new tests have caused several test failures on the test bots; the method FakeAudioMediaStreamTrack:GetSignalLevel, which is not supposed to be called is sometimes called anyway.
> 
> Original change's description:
> > Added PeerConnectionObserver::OnRemoveTrack.
> > 
> > This corresponds to processing the removal of a remote track step of
> > the spec, with processing the addition of a remote track already
> > covered by OnAddTrack.
> > https://w3c.github.io/webrtc-pc/#processing-remote-mediastreamtracks
> > 
> > Bug: webrtc:8260, webrtc:8315
> > Change-Id: Ica8be92369733eb3cf1397fb60385d45a9b58700
> > Reviewed-on: https://webrtc-review.googlesource.com/4722
> > Commit-Queue: Henrik Boström <hbos@webrtc.org>
> > Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#20214}
> 
> TBR=steveanton@webrtc.org,deadbeef@webrtc.org,hbos@webrtc.org
> 
> Change-Id: Id2d9533e27227254769b4280a8ff10a47313e714
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:8260, webrtc:8315
> Reviewed-on: https://webrtc-review.googlesource.com/7940
> Reviewed-by: Alex Loiko <aleloi@webrtc.org>
> Commit-Queue: Alex Loiko <aleloi@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20218}

TBR=steveanton@webrtc.org,deadbeef@webrtc.org,aleloi@webrtc.org,hbos@webrtc.org

Change-Id: Iab7500bebf98535754b102874259de43831fff6b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8260, webrtc:8315
Reviewed-on: https://webrtc-review.googlesource.com/8180
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20227}
2017-10-10 17:06:00 +00:00
Alex Loiko
6c0c55c318 Revert "Added PeerConnectionObserver::OnRemoveTrack."
This reverts commit ba97ba7af9.

Reason for revert: The new tests have caused several test failures on the test bots; the method FakeAudioMediaStreamTrack:GetSignalLevel, which is not supposed to be called is sometimes called anyway.

Original change's description:
> Added PeerConnectionObserver::OnRemoveTrack.
> 
> This corresponds to processing the removal of a remote track step of
> the spec, with processing the addition of a remote track already
> covered by OnAddTrack.
> https://w3c.github.io/webrtc-pc/#processing-remote-mediastreamtracks
> 
> Bug: webrtc:8260, webrtc:8315
> Change-Id: Ica8be92369733eb3cf1397fb60385d45a9b58700
> Reviewed-on: https://webrtc-review.googlesource.com/4722
> Commit-Queue: Henrik Boström <hbos@webrtc.org>
> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20214}

TBR=steveanton@webrtc.org,deadbeef@webrtc.org,hbos@webrtc.org

Change-Id: Id2d9533e27227254769b4280a8ff10a47313e714
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8260, webrtc:8315
Reviewed-on: https://webrtc-review.googlesource.com/7940
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20218}
2017-10-10 11:02:00 +00:00
Henrik Boström
ba97ba7af9 Added PeerConnectionObserver::OnRemoveTrack.
This corresponds to processing the removal of a remote track step of
the spec, with processing the addition of a remote track already
covered by OnAddTrack.
https://w3c.github.io/webrtc-pc/#processing-remote-mediastreamtracks

Bug: webrtc:8260, webrtc:8315
Change-Id: Ica8be92369733eb3cf1397fb60385d45a9b58700
Reviewed-on: https://webrtc-review.googlesource.com/4722
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20214}
2017-10-10 02:17:37 +00:00
Guido Urdaneta
604427b875 Revert "TurnCustomizer - an interface for modifying stun messages sent by TurnPort"
This reverts commit b23ed7f1af.

Reason for revert: Breaks Chromium FYI build

Sample error log:

../../remoting/test/fake_port_allocator.cc:52:7: error: no matching constructor for initialization of 'cricket::BasicPortAllocator'
    : BasicPortAllocator(network_manager, socket_factory),
      ^                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../third_party/webrtc/p2p/client/basicportallocator.h:32:12: note: candidate constructor not viable: requires single argument 'network_manager', but 2 arguments were provided
  explicit BasicPortAllocator(rtc::NetworkManager* network_manager);
           ^
../../third_party/webrtc/p2p/client/basicportallocator.h:27:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 2 were provided
class BasicPortAllocator : public PortAllocator {
      ^
../../third_party/webrtc/p2p/client/basicportallocator.h:29:3: note: candidate constructor not viable: requires 3 arguments, but 2 were provided
  BasicPortAllocator(rtc::NetworkManager* network_manager,
  ^
../../third_party/webrtc/p2p/client/basicportallocator.h:33:3: note: candidate constructor not viable: requires 3 arguments, but 2 were provided
  BasicPortAllocator(rtc::NetworkManager* network_manager,
  ^
../../third_party/webrtc/p2p/client/basicportallocator.h:36:3: note: candidate constructor not viable: requires 5 arguments, but 2 were provided
  BasicPortAllocator(rtc::NetworkManager* network_manager,

Original change's description:
> TurnCustomizer - an interface for modifying stun messages sent by TurnPort
> 
> This patch adds an interface that allows modification of stun messages
> sent by TurnPort. A user can inject a TurnCustomizer on the RTCConfig
> and the TurnCustomizer will be invoked by TurnPort before sending
> message. This allows user to e.g add custom attributes as described
> in rtf5389.
> 
> BUG=webrtc:8313
> 
> Change-Id: Ibf5cc10af84c57288f1eb4c578ca064611a769f1
> Reviewed-on: https://webrtc-review.googlesource.com/4781
> Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20197}

TBR=deadbeef@webrtc.org,sakal@webrtc.org,jonaso@webrtc.org

Change-Id: I624efb22f6e3ceac1b2ff8af1ec47e4cfdde9140
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8313
Reviewed-on: https://webrtc-review.googlesource.com/7680
Reviewed-by: Guido Urdaneta <guidou@webrtc.org>
Commit-Queue: Guido Urdaneta <guidou@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20199}
2017-10-09 09:53:59 +00:00
Jonas Oreland
b23ed7f1af TurnCustomizer - an interface for modifying stun messages sent by TurnPort
This patch adds an interface that allows modification of stun messages
sent by TurnPort. A user can inject a TurnCustomizer on the RTCConfig
and the TurnCustomizer will be invoked by TurnPort before sending
message. This allows user to e.g add custom attributes as described
in rtf5389.

BUG=webrtc:8313

Change-Id: Ibf5cc10af84c57288f1eb4c578ca064611a769f1
Reviewed-on: https://webrtc-review.googlesource.com/4781
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20197}
2017-10-09 06:35:40 +00:00
Steve Anton
6b63cd5e54 Rewrite WebRtcSession DTLS/SDES crypto tests as PeerConnection tests
Bug: webrtc:8222
Change-Id: I6be2c5a5735b77a5c577472b88ff830204dd69eb
Reviewed-on: https://webrtc-review.googlesource.com/1160
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20193}
2017-10-06 18:50:24 +00:00
Steve Anton
97a9f76bce Add sdputils.h with useful functions for working with session descriptions
Bug: webrtc:8222
Change-Id: Iedeb65dad493721c5a4eddab254097171dfdb522
Reviewed-on: https://webrtc-review.googlesource.com/7120
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20192}
2017-10-06 17:42:24 +00:00
Elad Alon
82eb3c4309 Remove dead version of StartRtcEventLog
These versions of StartRtcEventLog() are not used.

Bug: webrtc:8111
Change-Id: I1fb543a908decff203b13f8358598f75d875c111
Reviewed-on: https://webrtc-review.googlesource.com/6782
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20191}
2017-10-06 15:18:24 +00:00
Elad Alon
acb24178e2 Fix apparent copy/paste error in comment (PeerConnection)
s/Start/Stop (and other nits)

TBR=stefan@webrtc.org

Bug: webrtc:8111
Change-Id: I4a2ee6d77ddd1ba34a905f861f579f2b2dc29105
Reviewed-on: https://webrtc-review.googlesource.com/7282
Reviewed-by: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Björn Terelius <terelius@google.com>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20186}
2017-10-06 13:01:18 +00:00
Niels Möller
84255bbe3b Add explicit includes of refcountedobject.h where it is used.
This is in preparation for deleting the include in rtc_base/refcount.h,
but that change has to wait for some downstream applications to 
not rely in the indirect include.

Partial reland of "Make rtc_base/refcount.h self contained, not including refcountedobject.h."

This is a reland of b7239a9dc8
Original change's description:
> Make rtc_base/refcount.h self contained, not including refcountedobject.h.
> 
> The refcount.h file doesn't depend on anything from
> refcountedobject.h. The motivation of this change to make it possible
> to add additional declarations to refcount.h, and include it from
> refcountedobject.h.
> 
> Bug: webrtc:8270
> Change-Id: I24f6131f471e675570968d00065ff9b1f55e3373
> Reviewed-on: https://webrtc-review.googlesource.com/5760
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20106}

Bug: webrtc:8270
Change-Id: I63a42712f6c1ec83823c629d1a954fd1a04d4a6c
Reviewed-on: https://webrtc-review.googlesource.com/7281
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20185}
2017-10-06 13:00:14 +00:00
Niels Moller
fb26f85b79 Revert "Reland "Make rtc_base/refcount.h self contained, not including refcountedobject.h.""
This reverts commit bf6937a8e9.

Reason for revert: Broke internal projects.

Original change's description:
> Reland "Make rtc_base/refcount.h self contained, not including refcountedobject.h."
> 
> This is a reland of b7239a9dc8
> Original change's description:
> > Make rtc_base/refcount.h self contained, not including refcountedobject.h.
> > 
> > The refcount.h file doesn't depend on anything from
> > refcountedobject.h. The motivation of this change to make it possible
> > to add additional declarations to refcount.h, and include it from
> > refcountedobject.h.
> > 
> > Bug: webrtc:8270
> > Change-Id: I24f6131f471e675570968d00065ff9b1f55e3373
> > Reviewed-on: https://webrtc-review.googlesource.com/5760
> > Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> > Commit-Queue: Niels Moller <nisse@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#20106}
> 
> Bug: webrtc:8270
> Change-Id: I9738f6680ab52d0f43639a1a39175fdba5957681
> Reviewed-on: https://webrtc-review.googlesource.com/5840
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20180}

TBR=kwiberg@webrtc.org,nisse@webrtc.org

Change-Id: I342b241f5bb707b59ccf2d15a1a5befecb53a52e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8270
Reviewed-on: https://webrtc-review.googlesource.com/7280
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20181}
2017-10-06 11:05:55 +00:00
Niels Möller
bf6937a8e9 Reland "Make rtc_base/refcount.h self contained, not including refcountedobject.h."
This is a reland of b7239a9dc8
Original change's description:
> Make rtc_base/refcount.h self contained, not including refcountedobject.h.
> 
> The refcount.h file doesn't depend on anything from
> refcountedobject.h. The motivation of this change to make it possible
> to add additional declarations to refcount.h, and include it from
> refcountedobject.h.
> 
> Bug: webrtc:8270
> Change-Id: I24f6131f471e675570968d00065ff9b1f55e3373
> Reviewed-on: https://webrtc-review.googlesource.com/5760
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20106}

Bug: webrtc:8270
Change-Id: I9738f6680ab52d0f43639a1a39175fdba5957681
Reviewed-on: https://webrtc-review.googlesource.com/5840
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20180}
2017-10-06 10:20:48 +00:00
Patrik Höglund
e2d6a06fa8 Reland "Clean up libjingle API dependencies."
This is a reland of 9185aca9ce

> Original change's description:
> > > Clean up libjingle API dependencies.
> > > 
> > > This CL moves candidate.h into the public API, since it has
> > > been implicitly included before.
> > > 
> > > This is a straightforward way of solving the circular
> > > dependencies involving that file. For instance,
> > > libjingle_peerconnection_api includes candidate.h from
> > > jsepicecandidate.h, but _api can't depend on rtc_p2p, which
> > > depends on _api. In fact, _api can't depend on much at all
> > > since it's a very high level abstraction; instead, things
> > > should depend on it.
> > > 
> > > Furthermore, we have the case where deprecated headers
> > > include headers in internal modules. I just have to turn
> > > off include checking for those, but that's not a big deal.
> > > 
> > > This CL punts the problem of callfactoryinterface.h being
> > > implicitly included, and pulling in most of the call
> > > module with it. This should be addressed in a follow-up
> > > CL.
> Bug: webrtc:7504
> Change-Id: Icae0ba1a0488550e2871cc65e66d3661707aa5b6
> Reviewed-on: https://webrtc-review.googlesource.com/6460
> Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20156}

TBR=deadbeef@webrtc.org

Bug: webrtc:7504
Change-Id: Ic6598ac2af9355b60bbd289c86dc75e0ae9fed2e
Reviewed-on: https://webrtc-review.googlesource.com/6801
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20167}
2017-10-05 13:51:21 +00:00
Henrik Kjellander
1af3d82b10 Revert "Reland "Clean up libjingle API dependencies.""
This reverts commit 9185aca9ce.

Reason for revert: Still breaks Chromium:
https://build.chromium.org/p/chromium.webrtc.fyi/builders/Mac%20Builder/builds/29052

You cannot trust the *chromium* trybots due to https://bugs.chromium.org/p/chromium/issues/detail?id=771159

Original change's description:
> Reland "Clean up libjingle API dependencies."
> 
> This is a reland of 5117b04787
> Original change's description:
> > > Clean up libjingle API dependencies.
> > > 
> > > This CL moves candidate.h into the public API, since it has
> > > been implicitly included before.
> > > 
> > > This is a straightforward way of solving the circular
> > > dependencies involving that file. For instance,
> > > libjingle_peerconnection_api includes candidate.h from
> > > jsepicecandidate.h, but _api can't depend on rtc_p2p, which
> > > depends on _api. In fact, _api can't depend on much at all
> > > since it's a very high level abstraction; instead, things
> > > should depend on it.
> > > 
> > > Furthermore, we have the case where deprecated headers
> > > include headers in internal modules. I just have to turn
> > > off include checking for those, but that's not a big deal.
> > > 
> > > This CL punts the problem of callfactoryinterface.h being
> > > implicitly included, and pulling in most of the call
> > > module with it. This should be addressed in a follow-up
> > > CL.
> > > 
> > > Bug: webrtc:7504
> > > Change-Id: I1b1729408158418333ccdf702bf529386090f0d7
> > > Reviewed-on: https://webrtc-review.googlesource.com/2020
> > > Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
> > > Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
> > > Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> > > Cr-Commit-Position: refs/heads/master@{#20034}
> 
> Bug: webrtc:7504
> Change-Id: Icae0ba1a0488550e2871cc65e66d3661707aa5b6
> Reviewed-on: https://webrtc-review.googlesource.com/6460
> Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20156}

TBR=phoglund@webrtc.org,deadbeef@webrtc.org,solenberg@webrtc.org

Change-Id: I699c68bd330b537005c3f2b8fe31702025df4e39
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:7504
Reviewed-on: https://webrtc-review.googlesource.com/6800
Reviewed-by: Henrik Kjellander <kjellander@webrtc.org>
Commit-Queue: Henrik Kjellander <kjellander@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20157}
2017-10-05 08:28:51 +00:00
Patrik Höglund
9185aca9ce Reland "Clean up libjingle API dependencies."
This is a reland of 5117b04787
Original change's description:
> > Clean up libjingle API dependencies.
> > 
> > This CL moves candidate.h into the public API, since it has
> > been implicitly included before.
> > 
> > This is a straightforward way of solving the circular
> > dependencies involving that file. For instance,
> > libjingle_peerconnection_api includes candidate.h from
> > jsepicecandidate.h, but _api can't depend on rtc_p2p, which
> > depends on _api. In fact, _api can't depend on much at all
> > since it's a very high level abstraction; instead, things
> > should depend on it.
> > 
> > Furthermore, we have the case where deprecated headers
> > include headers in internal modules. I just have to turn
> > off include checking for those, but that's not a big deal.
> > 
> > This CL punts the problem of callfactoryinterface.h being
> > implicitly included, and pulling in most of the call
> > module with it. This should be addressed in a follow-up
> > CL.
> > 
> > Bug: webrtc:7504
> > Change-Id: I1b1729408158418333ccdf702bf529386090f0d7
> > Reviewed-on: https://webrtc-review.googlesource.com/2020
> > Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
> > Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
> > Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#20034}

Bug: webrtc:7504
Change-Id: Icae0ba1a0488550e2871cc65e66d3661707aa5b6
Reviewed-on: https://webrtc-review.googlesource.com/6460
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20156}
2017-10-05 08:15:20 +00:00
Zhi Huang
04eaa15468 Change the flag when RtpTransport objects send packet.
Always use the PF_SRTP_BYPASS when sending RTP/RTCP packets.

Change the condition in BaseChannel::GetSrtpOverhead.
Get the SRTP overhead when using either SDES or DTLS-SRTP.

Bug: None
Change-Id: I44aeff8b75e56b12acefd73299a95a3e38cd401b
Reviewed-on: https://webrtc-review.googlesource.com/6580
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Zhi Huang <zhihuang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20152}
2017-10-05 04:41:55 +00:00
Fredrik Solenberg
a32dd018eb Reland "Remove AudioDeviceObserver and make ADM not inherit from the Module interface."
This is a reland of 34cdd2d402
Original change's description:
> Remove AudioDeviceObserver and make ADM not inherit from the Module interface.
> 
> (Re-upload of https://codereview.webrtc.org/3020493002/)
> 
> Bug: webrtc:4690, webrtc:7306
> Change-Id: I67fb9ebca1296aabc08eae8a292a5c69832dc35e
> Reviewed-on: https://webrtc-review.googlesource.com/5360
> Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
> Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20083}

Bug: webrtc:4690, webrtc:7306
Change-Id: Ib019439fe6ab0e6b759819e1e9bd320ba1d983bd
Reviewed-on: https://webrtc-review.googlesource.com/6300
Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20137}
2017-10-04 11:31:18 +00:00
Elad Alon
83ccca1864 Create and use RtcEventLogOutput for output
We need to support two modes of writing to the output:
1. Current way - the application lets lets WebRTC know which file to write to, and WebRTC is then in charge of the writing.
2. New way - the application would receive indications from WebRTC about (encoded) RTC events, and would itself be in charge of processing them (be it writing it to a file, uploading it somewhere, etc.).

We achieve this by creating an interface for output - RtcEventLogOutput. By providing an instance of the subclass, RtcEventLogOutputFile, the old behavior is achieved. The subclass of the new behavior is to be added by a later CL.

TBR=stefan@webrtc.org

Bug: webrtc:8111
Change-Id: I9c50521a7f7144d86d8353a65995795862e19c44
Reviewed-on: https://webrtc-review.googlesource.com/2686
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20135}
2017-10-04 11:18:47 +00:00
Taylor Brandstetter
98ea2dac8a Removing logging in unit test that was committed accidentally.
NOTRY=True
TBR=pthatcher@webrtc.org

Bug: None
Change-Id: Icf9a8c630e770025160da52a464b0a6e37fa6b19
Reviewed-on: https://webrtc-review.googlesource.com/6260
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20131}
2017-10-04 02:32:06 +00:00
Taylor Brandstetter
1c34974d6f Fixing invalid calls to FindMatchingCodec.
The first argument of FindMatchingCodec is supposed to be the list that
contains the codec to be found, specifically to handle RTX codecs that
point to other codecs. But this wasn't being done everywhere, and wasn't
noticed because *most of the time* it just results in adding the RTX
codec in a different location, which isn't an issue.

But, it's still not standards-compliant. And it sometimes is an issue
when talking to older endpoints.

Adding a regression test, and DCHECK in FindMatchingCodec to ensure this
doesn't happen by accident again.

Bug: webrtc:8332
Change-Id: I5def056b245c6d00a49a59d429f1dee303fb7cef
Reviewed-on: https://webrtc-review.googlesource.com/6240
Reviewed-by: Justin Uberti <juberti@webrtc.org>
Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20130}
2017-10-04 02:13:56 +00:00
Steve Anton
8c0f7a7a70 Add GetRemoteAudioSSLCertificate() to PeerConnection
This method allows the client to get details about the SSL
certificate sent by the remote side in the DTLS handshake.

This functionality in this new method has been standardized in the
RTCDtlsTransport, but until we have that implemented we wish to
expose this functionality so clients do not need to depend on
WebRtcSession.

Bug: webrtc:8323
Change-Id: Ic964266dd7e734cec07289a147fd8d090d74ce6b
Reviewed-on: https://webrtc-review.googlesource.com/5641
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20129}
2017-10-03 23:26:28 +00:00
Elad Alon
4a87e1c211 Remove encoding code from RtcEventLogImpl and use RtcEventLogEncoder instead
RtcEventLogImpl no longer hard-codes the way encoding is done. It now relies on RtcEventEncoder for it. This gives two benefits:
1. We can decide between the current encoding and the new encoding (which is still WIP) without code duplication (no need for RtcEventLogImplNew).
2. Encoding is done only when the event needs to be written to a file. This both avoids unnecessary encoding of events which don't end up getting written to a file, as well as is useful for the new, delta-based encoding, which is stateful.

BUG=webrtc:8111

Change-Id: I9517132e5f96b8059002a66fde8d42d3a678c3bb
Reviewed-on: https://webrtc-review.googlesource.com/1365
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20118}
2017-10-03 15:26:56 +00:00
Niels Moller
d25fa78daf Revert "Make rtc_base/refcount.h self contained, not including refcountedobject.h."
This reverts commit b7239a9dc8.

Reason for revert: Broke chromium mac build, compilation failures on content/renderer/media/webrtc/webrtc_video_frame_adapter.h.

Original change's description:
> Make rtc_base/refcount.h self contained, not including refcountedobject.h.
> 
> The refcount.h file doesn't depend on anything from
> refcountedobject.h. The motivation of this change to make it possible
> to add additional declarations to refcount.h, and include it from
> refcountedobject.h.
> 
> Bug: webrtc:8270
> Change-Id: I24f6131f471e675570968d00065ff9b1f55e3373
> Reviewed-on: https://webrtc-review.googlesource.com/5760
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20106}

TBR=kwiberg@webrtc.org,nisse@webrtc.org

Change-Id: I7334597cc8979ba9cfaff526967084349ef27f3c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8270
Reviewed-on: https://webrtc-review.googlesource.com/5800
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20107}
2017-10-03 09:49:04 +00:00
Niels Möller
b7239a9dc8 Make rtc_base/refcount.h self contained, not including refcountedobject.h.
The refcount.h file doesn't depend on anything from
refcountedobject.h. The motivation of this change to make it possible
to add additional declarations to refcount.h, and include it from
refcountedobject.h.

Bug: webrtc:8270
Change-Id: I24f6131f471e675570968d00065ff9b1f55e3373
Reviewed-on: https://webrtc-review.googlesource.com/5760
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20106}
2017-10-03 09:37:30 +00:00
Steve Anton
978b876fd2 Move clients of WebRtcSession to use PeerConnection
This change is part of the work to merge WebRtcSession into
PeerConnection. To make that work easier, this moves all clients
of WebRtcSession to use shims added to PeerConnection. That way
when the classes are merged they won't need to be modified.

Bug: webrtc:8183
Change-Id: I5758a5954b91d235faf810c8bf4bf9f6f31d83c1
Reviewed-on: https://webrtc-review.googlesource.com/5040
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20090}
2017-10-02 17:16:09 +00:00
Fredrik Solenberg
d4404c232d Revert "Remove AudioDeviceObserver and make ADM not inherit from the Module interface."
This reverts commit 34cdd2d402.

Reason for revert: Breaks Chromium

Original change's description:
> Remove AudioDeviceObserver and make ADM not inherit from the Module interface.
> 
> (Re-upload of https://codereview.webrtc.org/3020493002/)
> 
> Bug: webrtc:4690, webrtc:7306
> Change-Id: I67fb9ebca1296aabc08eae8a292a5c69832dc35e
> Reviewed-on: https://webrtc-review.googlesource.com/5360
> Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
> Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20083}

TBR=solenberg@webrtc.org,henrika@webrtc.org

Change-Id: Iad03cafb7865f5a22394c3d4d1d3ff3e0fccd4ff
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:4690, webrtc:7306
Reviewed-on: https://webrtc-review.googlesource.com/5402
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20085}
2017-10-02 15:10:04 +00:00
Fredrik Solenberg
34cdd2d402 Remove AudioDeviceObserver and make ADM not inherit from the Module interface.
(Re-upload of https://codereview.webrtc.org/3020493002/)

Bug: webrtc:4690, webrtc:7306
Change-Id: I67fb9ebca1296aabc08eae8a292a5c69832dc35e
Reviewed-on: https://webrtc-review.googlesource.com/5360
Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20083}
2017-10-02 15:01:20 +00:00
Gustaf Ullberg
b0a0207838 Added RTCMediaStreamTrackStats.jitterBufferDelay for audio
Description of this stat can be found here:
https://w3c.github.io/webrtc-stats/#dom-rtcmediastreamtrackstats-jitterbufferdelay

Bug: webrtc:8281
Change-Id: Ib2e8174f3449e68ad419ae2d58d5565fc9854023
Reviewed-on: https://webrtc-review.googlesource.com/3381
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20069}
2017-10-02 10:47:00 +00:00
Patrik Höglund
581df618fe Revert "Reland "Clean up libjingle API dependencies.""
This reverts commit 5117b04787.

Reason for revert: Still breaks downstream projects that include too much stuff.

Original change's description:
> Reland "Clean up libjingle API dependencies."
> 
> This is a reland of 57fb3154b5
> Original change's description:
> > Clean up libjingle API dependencies.
> > 
> > This CL moves candidate.h into the public API, since it has
> > been implicitly included before.
> > 
> > This is a straightforward way of solving the circular
> > dependencies involving that file. For instance,
> > libjingle_peerconnection_api includes candidate.h from
> > jsepicecandidate.h, but _api can't depend on rtc_p2p, which
> > depends on _api. In fact, _api can't depend on much at all
> > since it's a very high level abstraction; instead, things
> > should depend on it.
> > 
> > Furthermore, we have the case where deprecated headers
> > include headers in internal modules. I just have to turn
> > off include checking for those, but that's not a big deal.
> > 
> > This CL punts the problem of callfactoryinterface.h being
> > implicitly included, and pulling in most of the call
> > module with it. This should be addressed in a follow-up
> > CL.
> > 
> > Bug: webrtc:7504
> > Change-Id: I1b1729408158418333ccdf702bf529386090f0d7
> > Reviewed-on: https://webrtc-review.googlesource.com/2020
> > Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
> > Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
> > Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#20034}
> 
> Bug: webrtc:7504
> Change-Id: I74aeeff678a4ce6482d2f402493ae13e698f1390
> Reviewed-on: https://webrtc-review.googlesource.com/4703
> Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
> Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20062}

TBR=phoglund@webrtc.org,deadbeef@webrtc.org,solenberg@webrtc.org

Change-Id: I19068df5f3ee8145c5ff13c86a42b6860e9cc834
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:7504
Reviewed-on: https://webrtc-review.googlesource.com/5460
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20065}
2017-10-02 09:12:51 +00:00
Patrik Höglund
5117b04787 Reland "Clean up libjingle API dependencies."
This is a reland of 57fb3154b5
Original change's description:
> Clean up libjingle API dependencies.
> 
> This CL moves candidate.h into the public API, since it has
> been implicitly included before.
> 
> This is a straightforward way of solving the circular
> dependencies involving that file. For instance,
> libjingle_peerconnection_api includes candidate.h from
> jsepicecandidate.h, but _api can't depend on rtc_p2p, which
> depends on _api. In fact, _api can't depend on much at all
> since it's a very high level abstraction; instead, things
> should depend on it.
> 
> Furthermore, we have the case where deprecated headers
> include headers in internal modules. I just have to turn
> off include checking for those, but that's not a big deal.
> 
> This CL punts the problem of callfactoryinterface.h being
> implicitly included, and pulling in most of the call
> module with it. This should be addressed in a follow-up
> CL.
> 
> Bug: webrtc:7504
> Change-Id: I1b1729408158418333ccdf702bf529386090f0d7
> Reviewed-on: https://webrtc-review.googlesource.com/2020
> Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
> Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20034}

Bug: webrtc:7504
Change-Id: I74aeeff678a4ce6482d2f402493ae13e698f1390
Reviewed-on: https://webrtc-review.googlesource.com/4703
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20062}
2017-10-02 08:27:51 +00:00
Zhi Huang
b5261580bc Move the TransportController from p2p/base to pc/.
The TransportController was in p2p/base before and it cannot depend on
pc/ or media/ level targets because of the circular dependency. To make the 
TransportController be responsible for creating and managing
the RtpTransport related objects which are pc/ level targets, the
TransportController is moved from p2p/base to pc/.

The TransportController makes more sense in pc/ anyway, since its main 
responsibility is processing the "transport" parts of SDP which is
PeerConnection-specific.

This is also easier than moving RtpTransport related objects to p2p/base 
because those objects also depend on other media/ and pc/ level targets
such as srtpfilter, cryptoparams etc.

Bug: webrtc:7013
Change-Id: Ic48dd5c454046ff3c81331f4b459f96a3255f328
Reviewed-on: https://webrtc-review.googlesource.com/4560
Commit-Queue: Zhi Huang <zhihuang@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20049}
2017-09-29 18:20:07 +00:00
Niels Möller
d8970dbd42 Delete unneeded includes of fileutils.h
It is now used only by FileRotatingStream.

Bug: webrtc:6424
Change-Id: I216b20baadae836d24c39899efe4cb45c2935f41
Reviewed-on: https://webrtc-review.googlesource.com/4720
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20040}
2017-09-29 12:39:09 +00:00
Patrik Höglund
7bcfc3b232 Revert "Clean up libjingle API dependencies."
This reverts commit 57fb3154b5.

Reason for revert: Breaks jingle_glue in chromium; need to leave candidate.h in place and include the new location until it's fixed.

Original change's description:
> Clean up libjingle API dependencies.
> 
> This CL moves candidate.h into the public API, since it has
> been implicitly included before.
> 
> This is a straightforward way of solving the circular
> dependencies involving that file. For instance,
> libjingle_peerconnection_api includes candidate.h from
> jsepicecandidate.h, but _api can't depend on rtc_p2p, which
> depends on _api. In fact, _api can't depend on much at all
> since it's a very high level abstraction; instead, things
> should depend on it.
> 
> Furthermore, we have the case where deprecated headers
> include headers in internal modules. I just have to turn
> off include checking for those, but that's not a big deal.
> 
> This CL punts the problem of callfactoryinterface.h being
> implicitly included, and pulling in most of the call
> module with it. This should be addressed in a follow-up
> CL.
> 
> Bug: webrtc:7504
> Change-Id: I1b1729408158418333ccdf702bf529386090f0d7
> Reviewed-on: https://webrtc-review.googlesource.com/2020
> Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
> Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20034}

TBR=phoglund@webrtc.org,deadbeef@webrtc.org,solenberg@webrtc.org,perkj@webrtc.org

Change-Id: Ic5c3d0cf0b8c4d48ecbc49efdb76b373e3c950a5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:7504
Reviewed-on: https://webrtc-review.googlesource.com/4702
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20036}
2017-09-29 11:11:18 +00:00
Alex Loiko
bf66794c06 Revert "Move clients of WebRtcSession to use PeerConnection"
This reverts commit 3dc4d4a21f.

Reason for revert: breaks internal project

Original change's description:
> Move clients of WebRtcSession to use PeerConnection
> 
> This change is part of the work to merge WebRtcSession into
> PeerConnection. To make that work easier, this moves all clients
> of WebRtcSession to use shims added to PeerConnection. That way
> when the classes are merged they won't need to be modified.
> 
> Bug: webrtc:8183
> Change-Id: I43de7acf7e38c9fcf2dbf55d50eb05e73767c251
> Reviewed-on: https://webrtc-review.googlesource.com/4320
> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> Commit-Queue: Steve Anton <steveanton@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20030}

TBR=steveanton@webrtc.org,deadbeef@webrtc.org

Change-Id: I13f335b24c26753429cd08a4ca3e295eed5660ff
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8183
Reviewed-on: https://webrtc-review.googlesource.com/4700
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20035}
2017-09-29 10:44:38 +00:00
Patrik Höglund
57fb3154b5 Clean up libjingle API dependencies.
This CL moves candidate.h into the public API, since it has
been implicitly included before.

This is a straightforward way of solving the circular
dependencies involving that file. For instance,
libjingle_peerconnection_api includes candidate.h from
jsepicecandidate.h, but _api can't depend on rtc_p2p, which
depends on _api. In fact, _api can't depend on much at all
since it's a very high level abstraction; instead, things
should depend on it.

Furthermore, we have the case where deprecated headers
include headers in internal modules. I just have to turn
off include checking for those, but that's not a big deal.

This CL punts the problem of callfactoryinterface.h being
implicitly included, and pulling in most of the call
module with it. This should be addressed in a follow-up
CL.

Bug: webrtc:7504
Change-Id: I1b1729408158418333ccdf702bf529386090f0d7
Reviewed-on: https://webrtc-review.googlesource.com/2020
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20034}
2017-09-29 10:40:17 +00:00
Steve Anton
3dc4d4a21f Move clients of WebRtcSession to use PeerConnection
This change is part of the work to merge WebRtcSession into
PeerConnection. To make that work easier, this moves all clients
of WebRtcSession to use shims added to PeerConnection. That way
when the classes are merged they won't need to be modified.

Bug: webrtc:8183
Change-Id: I43de7acf7e38c9fcf2dbf55d50eb05e73767c251
Reviewed-on: https://webrtc-review.googlesource.com/4320
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20030}
2017-09-29 01:06:26 +00:00
Steve Anton
94286cb25c Add base fixture and PeerConnection wrapper for unit tests
This lays the groundwork for splitting up the
PeerConnectionInterface unit tests into multiple files so that
the tests can be organized better. The intent is for each unit
test file to declare a test fixture which subclasses
PeerConnectionUnitTestFixture and creates PeerConnectionWrappers
to write assertions against.

Bug: webrtc:8222
Change-Id: I21175b1e1828a6cd5012305a8a27faaf4eecf81c
Reviewed-on: https://webrtc-review.googlesource.com/1120
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20004}
2017-09-27 17:14:47 +00:00
Magnus Jedvert
02e7a1981a Remove unnecessary video factory references in PeerConnectionFactory
The video codec factories should be owned by the video engine instead
of by the PeerConnectionFactory.

Bug: None
Change-Id: If63d47cef565138d51377af3fc9ea973950c9390
Reviewed-on: https://webrtc-review.googlesource.com/1601
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20002}
2017-09-27 14:41:46 +00:00
Zhi Huang
cf990f53b0 Reland: Completed the functionalities of SrtpTransport.
The SrtpTransport takes the SRTP responsibilities from the BaseChannel
and SrtpFilter. SrtpTransport is now responsible for setting the crypto
keys, protecting and unprotecting the packets. SrtpTransport doesn't
know if the keys are from SDES or DTLS handshake.

BaseChannel is now only responsible setting the offer/answer for SDES
or extracting the key from DtlsTransport and configuring the
SrtpTransport.

SrtpFilter is used by BaseChannel as a helper for SDES negotiation.

BUG=webrtc:7013

Change-Id: If61489dfbdf23481a1f1831ad181fbf45eaadb3e
Reviewed-on: https://webrtc-review.googlesource.com/2560
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Zhi Huang <zhihuang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19977}
2017-09-26 18:12:45 +00:00
Magnus Jedvert
835cc0c646 Remove unnecessary audio references in PeerConnectionFactory
We currently pass in a lot of audio parameters to PeerConnectionFactory
which we never use. This CL removes them.

All these parameters are reference counted, so they are not needed for
lifetime management (unless we do something crazy). Even if we want to
switch from reference counting to std::unique_ptrs in the future, the
voice engine is a more suitable owner than PeerConnectionFactory. The
PeerConnectionFactory already owns a MediaEngine which in turn owns a
VoiceEngine.

Bug: webrtc:7613
Change-Id: I393cf0d29ffa762a3a13475f6fbe00b8565f4c07
Reviewed-on: https://webrtc-review.googlesource.com/1600
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19931}
2017-09-23 14:36:14 +00:00
deadbeef
4e2deab79c Only return stats for the most recent unsignaled audio stream.
The track-level stats are currently implemented in terms of the stream-
level stats. Which is a problem if multiple unsignaled streams map to the
same track (see bug for more details). This CL fixes the problem
partially, but only returning stats for one of the unsignaled streams.
A better solution would be to return stats for both streams, but update
the track-level stats independently somehow. But that would require more
extensive changes, and it's not yet clear how we want to do it.

BUG=webrtc:8158

Review-Url: https://codereview.webrtc.org/3008373002
Cr-Commit-Position: refs/heads/master@{#19907}
2017-09-20 20:56:21 +00:00
zhihuang
b19012e6cc Remove the support of fallback from DTLS to SDES.
The support of fallback from DTLS to SDES is removed in this CL.
Setting an SDP with both DTLS fingerprint and SDES crypto would fail.

BUG=webrtc:8266

Review-Url: https://codereview.webrtc.org/3011133002
Cr-Commit-Position: refs/heads/master@{#19903}
2017-09-19 20:47:59 +00:00
zhihuang
eb23e17798 Revert of Completed the functionalities of SrtpTransport. (patchset 7 id:320001 of https://codereview.webrtc.org/2997983002/ )
Reason for revert:
This seems to be causing some video freezes. See https://bugs.chromium.org/p/webrtc/issues/detail?id=8251

Original issue's description:
> Completed the functionalities of SrtpTransport.
>
> The SrtpTransport takes the SRTP responsibilities from the BaseChannel
> and SrtpFilter. SrtpTransport is now responsible for setting the crypto
> keys, protecting and unprotecting the packets. SrtpTransport doesn't know
> if the keys are from SDES or DTLS handshake.
>
> BaseChannel is now only responsible setting the offer/answer for SDES
> or extracting the key from DtlsTransport and configuring the
> SrtpTransport.
>
> SrtpFilter is used by BaseChannel as a helper for SDES negotiation.
>
> BUG=webrtc:7013
>
> Review-Url: https://codereview.webrtc.org/2997983002
> Cr-Commit-Position: refs/heads/master@{#19636}
> Committed: e683c6871f

TBR=deadbeef@webrtc.org,pthatcher@google.com,zhihuang@webrtc.org
Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7013

Review-Url: https://codereview.webrtc.org/3018513002
Cr-Commit-Position: refs/heads/master@{#19895}
2017-09-19 08:12:52 +00:00
henrika
1d4db392c7 Revert of If SRTP sessions exist, don't create new ones when applying answer. (patchset #1 id:1 of https://codereview.webrtc.org/3019443002/ )
Reason for revert:
Speculative revert since all Android bots on WebRTC FYI started to fail when this CL landed.

https://build.chromium.org/p/chromium.webrtc.fyi/builders/Android%20Tests%20%28dbg%29%20%28L%20Nexus6%29

Original issue's description:
> If SRTP sessions exist, don't create new ones when applying answer.
>
> Instead, call the "Update" methods of SrtpSession, which will just call
> srtp_update, instead of wiping out the session state completely.
>
> This was causing decryption to stop working when subsequent
> offers/answers are applied. We don't know enough about SRTP to
> understand the root cause, and I wasn't able to write an integration
> test that reproduces the issue... But at least this fixes the bug that
> can be reproduced reliably using Hangouts.
>
> BUG=webrtc:8251
>
> Review-Url: https://codereview.webrtc.org/3019443002
> Cr-Commit-Position: refs/heads/master@{#19874}
> Committed: https://webrtc.googlesource.com/src/+/5ada7acf603e90e71990e9d4ff8f49389f24958c

TBR=zhihuang@webrtc.org,deadbeef@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:8251
NOTRY=TRUE

Review-Url: https://codereview.webrtc.org/3017543002
Cr-Commit-Position: refs/heads/master@{#19882}
2017-09-18 09:34:30 +00:00
Gustaf Ullberg
9a2e906b0c Added RTCMediaStreamTrackStats.concealmentEvents
The number of concealment events. This counter increases every time a concealed sample is
synthesized after a non-concealed sample. That is, multiple consecutive concealed samples
will increase the concealedSamples count multiple times but is a single concealment event.

Bug: webrtc:8246
Change-Id: I7ef404edab765218b1f11e3128072c5391e83049
Reviewed-on: https://webrtc-review.googlesource.com/1221
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19881}
2017-09-18 08:58:06 +00:00
deadbeef
d45aea8f42 Serialize "a=x-google-flag:conference".
There was a test for deserialization but not serialization. This was
probably always broken and no one noticed. I only noticed while
debugging something else.

BUG=None
TBR=pthatcher@webrtc.org

Review-Url: https://codereview.webrtc.org/3012383002
Cr-Commit-Position: refs/heads/master@{#19875}
2017-09-16 08:24:29 +00:00
deadbeef
5ada7acf60 If SRTP sessions exist, don't create new ones when applying answer.
Instead, call the "Update" methods of SrtpSession, which will just call
srtp_update, instead of wiping out the session state completely.

This was causing decryption to stop working when subsequent
offers/answers are applied. We don't know enough about SRTP to
understand the root cause, and I wasn't able to write an integration
test that reproduces the issue... But at least this fixes the bug that
can be reproduced reliably using Hangouts.

BUG=webrtc:8251

Review-Url: https://codereview.webrtc.org/3019443002
Cr-Commit-Position: refs/heads/master@{#19874}
2017-09-16 00:52:36 +00:00
Magnus Jedvert
58b0316f3d Expose new video codec factories in the PeerConnectionFactory API
This CL exposes the new type of video codec factories that represent all
video codecs in the PeerConnectionFactory API, i.e. no extra internal SW
video codecs will be added. Clients of the new functions will be
responsible for adding all SW video codecs themselves, and also handling
SW fallback and simulcast.

BUG=webrtc:7925
R=deadbeef@webrtc.org

Review-Url: https://codereview.webrtc.org/3004353002 .
Cr-Commit-Position: refs/heads/master@{#19866}
2017-09-15 17:02:50 +00:00
Mirko Bonadei
7120742701 Adding NOLINT for typedefs.h and common_types.h
Now that we have moved WebRTC from src/webrtc to src/, common_types.h
and typedefs.h are triggering a cpplint error.

The cpplint complaint is:
Include the directory when naming .h files  [build/include] [4]

This CL disables the error but we have to remove these two headers
from the root directory.

NOPRESUBMIT=true

Bug: webrtc:5876
Change-Id: I08e1b69aadcc4b28ab83bf25e3819d135d41d333
Reviewed-on: https://webrtc-review.googlesource.com/1577
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Henrik Kjellander <kjellander@google.com>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19859}
2017-09-15 13:03:51 +00:00
Patrik Höglund
563934e726 Clean up dependencies of peerconnection_unittest.
There were a number of unused includes and undeclared
dependencies. I removed the includes that were causing
problems and added dependencies for the includes that
turned out to be needed.

Bug: webrtc:7239,webrtc:6828
Change-Id: I5b57f9b8411d969e96eaa46fb49101b7b7c32284
Reviewed-on: https://webrtc-review.googlesource.com/1185
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19858}
2017-09-15 12:51:00 +00:00
Mirko Bonadei
92ea95e34a Fixing WebRTC after moving from src/webrtc to src/
In https://webrtc-review.googlesource.com/c/src/+/1560 we moved WebRTC
from src/webrtc to src/ (in order to preserve an healthy git history).
This CL takes care of fixing header guards, #include paths, etc...

NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
TBR=tommi@webrtc.org


Bug: chromium:611808
Change-Id: Iea91618212bee0af16aa3f05071eab8f93706578
Reviewed-on: https://webrtc-review.googlesource.com/1561
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Henrik Kjellander <kjellander@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19846}
2017-09-15 05:02:56 +00:00
Mirko Bonadei
bb547203bf Moving src/webrtc into src/.
In order to eliminate the WebRTC Subtree mirror in Chromium, 
WebRTC is moving the content of the src/webrtc directory up
to the src/ directory.

NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
TBR=tommi@webrtc.org

Bug: chromium:611808
Change-Id: Iac59c5b51b950f174119565bac87955a7994bc38
Reviewed-on: https://webrtc-review.googlesource.com/1560
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Henrik Kjellander <kjellander@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19845}
2017-09-15 04:25:06 +00:00