Commit Graph

143 Commits

Author SHA1 Message Date
fac0655fd7 Reland of Adding the ability to create an RtpSender without a track.
(patchset #8 id:140001 of https://codereview.webrtc.org/1413713003/ )

Relanding after fixing CallAndModifyStream to account for new
procedures for adding/removing a track from a stream.

Original issue's description:
> Adding the ability to create an RtpSender without a track.
>
> This CL also changes AddStream to immediately create a sender, rather
> than waiting until the track is seen in SDP. And the PeerConnection now
> builds the list of "send streams" from the list of senders, rather than
> the collection of local media streams.
>
> Committed: https://crrev.com/ac9d92ccbe2b29590c53f702e11dc625820480d5
> Cr-Commit-Position: refs/heads/master@{#10414}

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

Cr-Commit-Position: refs/heads/master@{#10790}
2015-11-25 19:26:08 +00:00
444682acf9 Remove frame time scheduing in IncomingVideoStream
This is part of the project that makes RTC rendering more
smooth. We've already finished the developement of the
frame selection algorithm in WebMediaPlayerMS, where we
managed a frame pool, and based on the vsync interval, we
actively select the best frame to render in order to
maximize the rendering smoothness.

Thus the frame timeline control in IncomingVideoStream is
no longer needed, because with sophisticated frame
selection algorithm in WebMediaPlayerMS, the time control
in IncomingVideoStream will do nothing but add some extra
delay.

BUG=514873

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

Cr-Commit-Position: refs/heads/master@{#10781}
2015-11-25 02:08:03 +00:00
5def7b9fde Revert of Adding the ability to create an RtpSender without a track. (patchset #3 id:300001 of https://codereview.webrtc.org/1413983004/ )
Reason for revert:
Still breaking CallAndModifyStream. Chromium CL intended to fix it (https://codereview.chromium.org/1435713002/) wasn't sufficient, because I forgot to call addStream/removeStream on the second connection.

Original issue's description:
> Reland of Adding the ability to create an RtpSender without a track. (patchset #1 id:1 of https://codereview.webrtc.org/1426443007/ )
>
> Reason for revert:
> Relanding, after changing the expectations of WebRtcBrowserTest.CallAndModifyStream.
>
> Original issue's description:
> > Revert of Adding the ability to create an RtpSender without a track. (patchset #8 id:140001 of https://codereview.webrtc.org/1413713003/ )
> >
> > Reason for revert:
> > Causing a compiler warning, and causing WebRtcBrowserTest.CallAndModifyStream to fail.
> >
> > Original issue's description:
> > > Adding the ability to create an RtpSender without a track.
> > >
> > > This CL also changes AddStream to immediately create a sender, rather
> > > than waiting until the track is seen in SDP. And the PeerConnection now
> > > builds the list of "send streams" from the list of senders, rather than
> > > the collection of local media streams.
> > >
> > > Committed: https://crrev.com/ac9d92ccbe2b29590c53f702e11dc625820480d5
> > > Cr-Commit-Position: refs/heads/master@{#10414}
> >
> > TBR=pthatcher@webrtc.org,pthatcher@chromium.org
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> >
> > Committed: https://crrev.com/8f46c63f6f764254892f4111b54aa1cc8f32eeeb
> > Cr-Commit-Position: refs/heads/master@{#10417}
>
> TBR=pthatcher@webrtc.org,pthatcher@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://crrev.com/6834fa10f142bf5e2275142acb834898911d09ae
> Cr-Commit-Position: refs/heads/master@{#10730}

TBR=pthatcher@webrtc.org,pthatcher@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#10732}
2015-11-20 19:43:27 +00:00
6834fa10f1 Reland of Adding the ability to create an RtpSender without a track. (patchset #1 id:1 of https://codereview.webrtc.org/1426443007/ )
Reason for revert:
Relanding, after changing the expectations of WebRtcBrowserTest.CallAndModifyStream.

Original issue's description:
> Revert of Adding the ability to create an RtpSender without a track. (patchset #8 id:140001 of https://codereview.webrtc.org/1413713003/ )
>
> Reason for revert:
> Causing a compiler warning, and causing WebRtcBrowserTest.CallAndModifyStream to fail.
>
> Original issue's description:
> > Adding the ability to create an RtpSender without a track.
> >
> > This CL also changes AddStream to immediately create a sender, rather
> > than waiting until the track is seen in SDP. And the PeerConnection now
> > builds the list of "send streams" from the list of senders, rather than
> > the collection of local media streams.
> >
> > Committed: https://crrev.com/ac9d92ccbe2b29590c53f702e11dc625820480d5
> > Cr-Commit-Position: refs/heads/master@{#10414}
>
> TBR=pthatcher@webrtc.org,pthatcher@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://crrev.com/8f46c63f6f764254892f4111b54aa1cc8f32eeeb
> Cr-Commit-Position: refs/heads/master@{#10417}

TBR=pthatcher@webrtc.org,pthatcher@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#10730}
2015-11-20 17:50:02 +00:00
726b1f7a14 Removed dummy "mediastreamsignaling.h"
Review URL: https://codereview.webrtc.org/1460483005

Cr-Commit-Position: refs/heads/master@{#10717}
2015-11-19 20:01:10 +00:00
521ed7bf02 Reland Convert internal representation of Srtp cryptos from string to int
TBR=pthatcher@webrtc.org
BUG=webrtc:5043

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

Cr-Commit-Position: refs/heads/master@{#10703}
2015-11-19 03:42:00 +00:00
318166bed7 Revert of Convert internal representation of Srtp cryptos from string to int. (patchset #10 id:180001 of https://codereview.webrtc.org/1416673006/ )
Reason for revert:
Broke chromium fyi build.

Original issue's description:
> Convert internal representation of Srtp cryptos from string to int.
>
> Note that the coversion from int to string happens in 3 places
> 1) SDP layer from int to external names. mediasession.cc GetSupportedSuiteNames.
> 2) for SSL_CTX_set_tlsext_use_srtp(), converting from int to internal names.
> 3) stats collection also needs external names.
>
> External names are like AES_CM_128_HMAC_SHA1_80, specified in sslstreamadapter.cc.
> Internal names are like SRTP_AES128_CM_SHA1_80, specified in opensslstreamadapter.cc.
>
> The conversion from string to int happens in one place only, SDP layer, SrtpFilter::ApplyParams().
>
> BUG=webrtc:5043
>
> Committed: https://crrev.com/2764e1027a08a5543e04b854a27a520801faf6eb
> Cr-Commit-Position: refs/heads/master@{#10701}

TBR=juberti@webrtc.org,pthatcher@webrtc.org,juberti@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5043

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

Cr-Commit-Position: refs/heads/master@{#10702}
2015-11-19 03:03:46 +00:00
2764e1027a Convert internal representation of Srtp cryptos from string to int.
Note that the coversion from int to string happens in 3 places
1) SDP layer from int to external names. mediasession.cc GetSupportedSuiteNames.
2) for SSL_CTX_set_tlsext_use_srtp(), converting from int to internal names.
3) stats collection also needs external names.

External names are like AES_CM_128_HMAC_SHA1_80, specified in sslstreamadapter.cc.
Internal names are like SRTP_AES128_CM_SHA1_80, specified in opensslstreamadapter.cc.

The conversion from string to int happens in one place only, SDP layer, SrtpFilter::ApplyParams().

BUG=webrtc:5043

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

Cr-Commit-Position: refs/heads/master@{#10701}
2015-11-19 02:02:40 +00:00
9af97f8910 WebRTC should generate default private address even when adapter enumeration is disabled.
Introduce a DefaultAddressProvider such that rtc::Network can't access other part of NetworkManager.

This also removes the hack of generating the loopback address. The dependency has been removed by https://codereview.chromium.org/1417023003/

BUG=webrtc:5061
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10590}
2015-11-10 22:47:49 +00:00
be57983f4b Rename Maybe to Optional
And add examples of good and bad usage to the documentation.

R=aluebs@webrtc.org, henrik.lundin@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10588}
2015-11-10 21:34:32 +00:00
102c6a61bc Replace rtc:🦗:Settable with rtc::Maybe
The former is very similar to the latter, but less general (mostly in
naming).

This CL, which is the first to use Maybe at scale, also removes the implicit conversion from T to Maybe<T>, since it was agreed that the increased verbosity increased legibility.

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

Cr-Commit-Position: refs/heads/master@{#10461}
2015-10-30 09:47:44 +00:00
8f46c63f6f Revert of Adding the ability to create an RtpSender without a track. (patchset #8 id:140001 of https://codereview.webrtc.org/1413713003/ )
Reason for revert:
Causing a compiler warning, and causing WebRtcBrowserTest.CallAndModifyStream to fail.

Original issue's description:
> Adding the ability to create an RtpSender without a track.
>
> This CL also changes AddStream to immediately create a sender, rather
> than waiting until the track is seen in SDP. And the PeerConnection now
> builds the list of "send streams" from the list of senders, rather than
> the collection of local media streams.
>
> Committed: https://crrev.com/ac9d92ccbe2b29590c53f702e11dc625820480d5
> Cr-Commit-Position: refs/heads/master@{#10414}

TBR=pthatcher@webrtc.org,pthatcher@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#10417}
2015-10-26 21:11:25 +00:00
ac9d92ccbe Adding the ability to create an RtpSender without a track.
This CL also changes AddStream to immediately create a sender, rather
than waiting until the track is seen in SDP. And the PeerConnection now
builds the list of "send streams" from the list of senders, rather than
the collection of local media streams.

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

Cr-Commit-Position: refs/heads/master@{#10414}
2015-10-26 18:48:26 +00:00
be16f79818 Remove simulcast bitrate modes.
Instead always use the SBM_VERY_HIGH setting.

BUG=webrtc:4885
R=hta@webrtc.org, mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10305}
2015-10-16 19:49:47 +00:00
c1aeaf0dc3 Wire up packet_id / send time callbacks to webrtc via libjingle.
BUG=webrtc:4173

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

Cr-Commit-Position: refs/heads/master@{#10289}
2015-10-15 14:26:17 +00:00
d59daf8023 Merging BaseSession code into WebRtcSession.
After the TransportController CL, BaseSession does little more than
hold a state and an error, and act as an intermediary for the
TransportController. So it doesn't make sense for it to be its own
class.

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

Cr-Commit-Position: refs/heads/master@{#10281}
2015-10-14 22:02:50 +00:00
ab9b2d1516 Reland of Moving MediaStreamSignaling logic into PeerConnection. (patchset #1 id:1 of https://codereview.webrtc.org/1403633005/ )
Reason for reland:
The original CL actually didn't break browser_tests; it was
just a coincidence that it started failing.

Original issue's description:
> Revert of Moving MediaStreamSignaling logic into PeerConnection. (patchset #10 id:180001 of https://codereview.webrtc.org/1393563002/ )
>
> Reason for revert:
> Broke browser_tests on Mac. Still need to investigate the cause.
>
> Original issue's description:
> > Moving MediaStreamSignaling logic into PeerConnection.
> >
> > This needs to happen because in the future, m-lines will be offered
> > based on the set of RtpSenders/RtpReceivers, rather than the set of
> > tracks that MediaStreamSignaling knows about.
> >
> > Besides that, MediaStreamSignaling was a "glue class" without
> > a clearly defined role, so it going away is good for other
> > reasons as well.
> >
> > Committed: https://crrev.com/97c392935411398b506861601c82e31d95c591f0
> > Cr-Commit-Position: refs/heads/master@{#10268}
>
> TBR=pthatcher@webrtc.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://crrev.com/fc648b6d934e936f4d9a32c813364b331536ec3b
> Cr-Commit-Position: refs/heads/master@{#10269}

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

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

Cr-Commit-Position: refs/heads/master@{#10277}
2015-10-14 18:33:20 +00:00
fc648b6d93 Revert of Moving MediaStreamSignaling logic into PeerConnection. (patchset #10 id:180001 of https://codereview.webrtc.org/1393563002/ )
Reason for revert:
Broke browser_tests on Mac. Still need to investigate the cause.

Original issue's description:
> Moving MediaStreamSignaling logic into PeerConnection.
>
> This needs to happen because in the future, m-lines will be offered
> based on the set of RtpSenders/RtpReceivers, rather than the set of
> tracks that MediaStreamSignaling knows about.
>
> Besides that, MediaStreamSignaling was a "glue class" without
> a clearly defined role, so it going away is good for other
> reasons as well.
>
> Committed: https://crrev.com/97c392935411398b506861601c82e31d95c591f0
> Cr-Commit-Position: refs/heads/master@{#10268}

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

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

Cr-Commit-Position: refs/heads/master@{#10269}
2015-10-13 23:43:11 +00:00
97c3929354 Moving MediaStreamSignaling logic into PeerConnection.
This needs to happen because in the future, m-lines will be offered
based on the set of RtpSenders/RtpReceivers, rather than the set of
tracks that MediaStreamSignaling knows about.

Besides that, MediaStreamSignaling was a "glue class" without
a clearly defined role, so it going away is good for other
reasons as well.

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

Cr-Commit-Position: refs/heads/master@{#10268}
2015-10-13 20:23:48 +00:00
d4cec0d8fa Remove MediaChannel::SetRemoteRenderer().
This is following discussion in: https://codereview.webrtc.org/1385893002/diff/60001/talk/media/webrtc/webrtcvoiceengine.cc#newcode2410

BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#10237}
2015-10-09 15:55:54 +00:00
4bac9c53da Change SetOutputScaling to set a single level, not left/right levels.
BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#10234}
2015-10-09 09:32:58 +00:00
0c4e06b4c6 Use suffixed {uint,int}{8,16,32,64}_t types.
Removes the use of uint8, etc. in favor of uint8_t.

BUG=webrtc:5024
R=henrik.lundin@webrtc.org, henrikg@webrtc.org, perkj@webrtc.org, solenberg@webrtc.org, stefan@webrtc.org, tina.legrand@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10196}
2015-10-07 10:23:32 +00:00
6caafbe5b6 Convert uint16_t to int for WebRTC cipher/crypto suite.
This is a follow up CL on https://codereview.webrtc.org/1337673002

BUG=
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10175}
2015-10-05 19:43:33 +00:00
dfc8f4ff87 Change 'mute' parameter of MediaChannel::SetAudioSend()/SetVideoSend() to 'enable'.
BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#10130}
2015-10-01 09:32:41 +00:00
456696a9c1 Reland Change WebRTC SslCipher to be exposed as number only
This is to revert the change of https://codereview.webrtc.org/1380603005/

TBR=pthatcher@webrtc.org
BUG=523033

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

Cr-Commit-Position: refs/heads/master@{#10126}
2015-10-01 04:49:02 +00:00
27dc29b0df Revert of Change WebRTC SslCipher to be exposed as number only. (patchset #20 id:750001 of https://codereview.webrtc.org/1337673002/ )
Reason for revert:
This broke chromium.fyi bot.

Original issue's description:
> Change WebRTC SslCipher to be exposed as number only.
>
> This makes the SSL exposed as uint16_t which is the IANA value. GetRfcSslCipherName is introduced to handle the conversion to names from ID. IANA value will be used for UMA reporting. Names will still be used for WebRTC stats reporting.
>
> For SRTP, currently it's still string internally but is reported as IANA number.
>
> This is used by the ongoing CL https://codereview.chromium.org/1335023002.
>
> BUG=523033
>
> Committed: https://crrev.com/4fe3c9a77386598db9abd1f0d6983aefee9cc943
> Cr-Commit-Position: refs/heads/master@{#10124}

TBR=juberti@webrtc.org,rsleevi@chromium.org,pthatcher@webrtc.org,davidben@chromium.org,juberti@google.com,davidben@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=523033

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

Cr-Commit-Position: refs/heads/master@{#10125}
2015-10-01 02:23:15 +00:00
4fe3c9a773 Change WebRTC SslCipher to be exposed as number only.
This makes the SSL exposed as uint16_t which is the IANA value. GetRfcSslCipherName is introduced to handle the conversion to names from ID. IANA value will be used for UMA reporting. Names will still be used for WebRTC stats reporting.

For SRTP, currently it's still string internally but is reported as IANA number.

This is used by the ongoing CL https://codereview.chromium.org/1335023002.

BUG=523033

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

Cr-Commit-Position: refs/heads/master@{#10124}
2015-10-01 01:49:17 +00:00
1f429e3418 Passing the new policy from PeerConnection RTCConfiguration to
p2ptransportchannel.  This CL does not use the new policy yet.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#10092}
2015-09-28 14:57:39 +00:00
cbecd358e0 Reland of TransportController refactoring. (patchset #1 id:1 of https://codereview.webrtc.org/1358413003/ )
Reason for revert:
This CL just landed: https://codereview.chromium.org/1323243006/

Which fixes the FYI bots for the original CL, and breaks them for this revert.

Original issue's description:
> Revert of TransportController refactoring. (patchset #6 id:100001 of https://codereview.webrtc.org/1350523003/ )
>
> Reason for revert:
> This CL causes problems with the WebRTC-in-Chromium FYI bots. Presumably it needs to be done in several steps, where removed files are emptied instead of removed in the first step.
>
> Original issue's description:
> > TransportController refactoring.
> >
> > Getting rid of TransportProxy, and in its place adding a
> > TransportController class which will facilitate access to and manage
> > the lifetimes of Transports. These Transports will now be accessed
> > solely from the worker thread, simplifying their implementation.
> >
> > This refactoring also pulls Transport-related code out of BaseSession.
> > Which means that BaseChannels will now rely on the TransportController
> > interface to create channels, rather than BaseSession.
> >
> > Committed: https://crrev.com/47ee2f3b9f33e8938948c482c921d4e13a3acd83
> > Cr-Commit-Position: refs/heads/master@{#10022}
>
> TBR=pthatcher@webrtc.org,deadbeef@webrtc.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://crrev.com/a81a42f584baa0d93a4b93da9632415e8922450c
> Cr-Commit-Position: refs/heads/master@{#10024}

TBR=pthatcher@webrtc.org,torbjorng@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#10036}
2015-09-23 18:50:31 +00:00
a81a42f584 Revert of TransportController refactoring. (patchset #6 id:100001 of https://codereview.webrtc.org/1350523003/ )
Reason for revert:
This CL causes problems with the WebRTC-in-Chromium FYI bots. Presumably it needs to be done in several steps, where removed files are emptied instead of removed in the first step.

Original issue's description:
> TransportController refactoring.
>
> Getting rid of TransportProxy, and in its place adding a
> TransportController class which will facilitate access to and manage
> the lifetimes of Transports. These Transports will now be accessed
> solely from the worker thread, simplifying their implementation.
>
> This refactoring also pulls Transport-related code out of BaseSession.
> Which means that BaseChannels will now rely on the TransportController
> interface to create channels, rather than BaseSession.
>
> Committed: https://crrev.com/47ee2f3b9f33e8938948c482c921d4e13a3acd83
> Cr-Commit-Position: refs/heads/master@{#10022}

TBR=pthatcher@webrtc.org,deadbeef@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#10024}
2015-09-23 09:24:27 +00:00
47ee2f3b9f TransportController refactoring.
Getting rid of TransportProxy, and in its place adding a
TransportController class which will facilitate access to and manage
the lifetimes of Transports. These Transports will now be accessed
solely from the worker thread, simplifying their implementation.

This refactoring also pulls Transport-related code out of BaseSession.
Which means that BaseChannels will now rely on the TransportController
interface to create channels, rather than BaseSession.

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

Cr-Commit-Position: refs/heads/master@{#10022}
2015-09-22 22:08:31 +00:00
8902433a43 Revert "TransportController refactoring."
This reverts commit 9af63f473e1d0d6c47a741a046c41642dfc1c178.

Cr-Commit-Position: refs/heads/master@{#9994}
2015-09-18 20:50:31 +00:00
9af63f473e TransportController refactoring.
Getting rid of TransportProxy, and in its place adding a
TransportController class which will facilitate access to and manage
the lifetimes of Transports. These Transports will now be accessed
solely from the worker thread, simplifying their implementation.

This refactoring also pulls Transport-related code out of BaseSession.
Which means that BaseChannels will now rely on the TransportController
interface to create channels, rather than BaseSession.

This CL also adds some unit tests, and does some renaming.
For example, from "CandidateReady" to "CandidateGathered".

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

Cr-Commit-Position: refs/heads/master@{#9993}
2015-09-18 19:56:02 +00:00
91d6edef35 Add RTC_ prefix to (D)CHECKs and related macros.
We must remove dependency on Chromium, i.e. we can't use Chromium's base/logging.h. That means we need to define these macros in WebRTC also when doing Chromium builds. And this causes redefinition.

Alternative solutions:
* Check if we already have defined e.g. CHECK, and don't define them in that case. This makes us depend on include order in Chromium, which is not acceptable.
* Don't allow using the macros in WebRTC headers. Error prone since if someone adds it there by mistake it may compile fine, but later break if a header in added or order is changed in Chromium. That will be confusing and hard to enforce.
* Ensure that headers that are included by an embedder don't include our macros. This would require some heavy refactoring to be maintainable and enforcable.
* Changes in Chromium for this is obviously not an option.

BUG=chromium:468375
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#9964}
2015-09-17 07:24:51 +00:00
709ed67c38 Move instantiation of webrtc::Call into a MediaController class so that it can be used for both audio and video media channels.
I'm not super happy with the GetVoE() function added on MediaEngineInterface, but this will eventually be gone, once webrtc::Call owns the shared VoE state (or initially, maps ADM* to an implicitly created VoE).

BUG=webrtc:4690
R=pbos@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9939}
2015-09-15 10:26:45 +00:00
1dd98f3219 - Rename VoiceChannel::MuteStream() -> SetAudioSend() (incl. media channel)
- Rename VideoChannel::MuteStream() -> SetVideoSend() (incl. media channel)
- Collapse NnChannel::SetChannelOptions() into the above.
- Collapse VoiceChannel::SetLocalRenderer into SetAudioSend().

BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#9915}
2015-09-10 08:57:20 +00:00
bb741b3afa Remove GetOutputScaling from VoiceMediaChannel.
BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#9870}
2015-09-07 10:56:45 +00:00
3cc834ae86 Add more IceCandidatePairType for host-host CandidatePair
This is to help to differentiate endpoints which are behind NAT or on the public internet.

BUG=520101
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9864}
2015-09-04 23:00:20 +00:00
dfbe679ded Cleanup: Remove duplicated functions
IncrementCounter has been replaced by IncrementEnumCounter. Since the code has been rolled into Chromium, time to clean this up.

R=pthatcher@chromium.org
TBR=pthatcher@webrtc.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#9852}
2015-09-04 00:12:13 +00:00
4edc39c569 Set the IceConnectionReceivingTimeout as a RTCConfiguration parameter.
BUG= 4901

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

Cr-Commit-Position: refs/heads/master@{#9832}
2015-09-01 16:54:02 +00:00
d82819892a Replaces SSLIdentity* with scoped_refptr<RTCCertificate> in the cricket::Transport layer.
Why the replacements? Mainly two reasons:
1) RTCCertificate owns the identity and as long as things are referencing the identity there should be a scoped_refptr reference to the RTCCertificate. Handing out raw pointers is less memory safe.
2) With the latest RFC, an RTCCertificate should be sufficient for specifying a crypto cert and the code should be updated to use RTCCertificate instead of SSLIdentity directly.

This replace work is split up into multiple CLs. In this CL...
- WebRtcSessionDescriptionFactory is updated to use RTCCertificate over SSLIdentity.
- WebRtcSessionDescriptionFactory::SignalCertificateReady is connected to WebRtcSession::OnCertificateReady and WebRtcSession is updated to use RTCCertificate.
- The cricket::Transport and related classes are updated to use RTCCertificate. These are called from WebRtcSession::OnCertificateReady.

BUG=webrtc:4927
R=tommi@webrtc.org, torbjorng@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9794}
2015-08-27 08:12:37 +00:00
87713d0fe6 RTCCertificates added to RTCConfiguration, used by WebRtcSession/-DescriptionFactory.
This CL allows you to, having generated one or more RTCCertificates, supply them to RTCConfiguration for CreatePeerConnection use. This means an SSLIdentity does not have to be generated with a DtlsIdentityStore[Interface/Impl] as part of the CreatePeerConnection steps because the certificate contains all the necessary information.

To create an RTCCertificate you have to do the identity generation yourself though. But you could reuse the same RTCCertificate for multiple connections.

BUG=webrtc:4927
R=tommi@webrtc.org, torbjorng@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9774}
2015-08-25 07:53:36 +00:00
fe3bc9d5ae Relanding "Generate localhost candidate when no STUN/TURN and portallocator has the right flag spefied."
Migrated from https://codereview.webrtc.org/1275703006/ which causes test failures for android. On android, loopback interface was used as local interface to generate candidates. Add a test case to make sure this won't be broken in the future.

Also observed some failures under content_browsertests in chromium.fyi bot but can't repro locally. Might just be temporary test issue.

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

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

Cr-Commit-Position: refs/heads/master@{#9746}
2015-08-20 15:48:27 +00:00
3d564c1015 Add instrumentation to track the IceEndpointType.
The IceEndpointType has the format of <local_endpoint>_<remote_endpoint>. It is recorded on the BestConnection when we have the first OnTransportCompleted signaled.

BUG=webrtc:4918
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9737}
2015-08-19 23:51:22 +00:00
370c8848ad Revert "Generate localhost candidate when no STUN/TURN and portallocator has the right flag spefied."
This reverts commit 0a2955f227666efd87b2a303a69c083ef801c528.

Revert "In the past, P2PPortAllocator.enable_multiple_routes is the indicator whether we should bind to the any address. It's easy to translate that into a port allocator flag in P2PPortAllocator's ctor. Going forward, we have to depend on an asynchronous permission check to determine whether gathering local address is allowed or not, hence the current way of passing it through constructor approach won't work any more. The asynchronous check will trigger SignalNetowrksChanged so we could only check that inside DoAllocate."

This reverts commit ba9ab4cd8d2e8fbc068dc36b5e6f6331d7deeccf.

TBR=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9729}
2015-08-19 00:00:21 +00:00
0a2955f227 Generate localhost candidate when no STUN/TURN and portallocator has the right flag spefied.
BUG=webrtc:4517
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9726}
2015-08-18 20:05:29 +00:00
5e56c5927e DtlsIdentityStoreInterface added and the implementation is called DtlsIdentityStoreImpl (previously named without the -Impl bit and without an interface).
DtlsIdentityStoreImpl is updated to take KeyType into account, something which will be relevant after this CL lands:
https://codereview.webrtc.org/1189583002

The DtlsIdentityService[Interface] classes are about to be removed (to be removed when Chromium no longer implements and uses the interface). This was an unnecessary layer of complexity. The FakeIdentityService is now instead a FakeDtlsIdentityStore.
Where a service was previously passed around, a store is now passed around.

Identity generation is now commonly performed using DtlsIdentityStoreInterface. Previously, if a service was not specified, WebRtcSessionDescriptionFactory could fall back on its own generation code. Now, a store has to be provided for generation to occur.

For more information about the steps being taken to land this without breaking Chromium, see referenced bug.

BUG=webrtc:4899
R=magjed@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9696}
2015-08-11 08:33:27 +00:00
503726c349 Fix the generation mismatch assertion error.
BUG=4860

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

Cr-Commit-Position: refs/heads/master@{#9667}
2015-07-31 19:37:43 +00:00
0f620f4e31 Make sure we process all pending offer/answer requests before terminating.
This fixes a bug in the WebRtcSessionDescriptionFactory where messages would be dropped or worse yet processed after the factory was deleted.

BUG=chromium:507307

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

Cr-Commit-Position: refs/heads/master@{#9557}
2015-07-09 10:25:04 +00:00
54360510ff Add flakyness check based on the recently received packets.
BUG=
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9553}
2015-07-08 18:08:39 +00:00