Commit Graph

3431 Commits

Author SHA1 Message Date
Jed Davis
4992ca410f Bug 1545504 - Strengthen bounds check in WebRTC PhysicalSocketServer. r=jesup
PhysicalSocketServer isn't currently used by Mozilla's WebRTC
integration, but just in case, let's make sure that this array index is
bounds-checked in actual use, not just in debug builds (which tend to
never see realistic test conditions).

Differential Revision: https://phabricator.services.mozilla.com/D52745

--HG--
extra : moz-landing-system : lando
2019-11-17 03:40:50 +00:00
Nico Grunbaum
975181c5f0 Bug 1580156 - set WebRTC thread name r=dmajor
Differential Revision: https://phabricator.services.mozilla.com/D51975

--HG--
extra : moz-landing-system : lando
2019-11-07 20:22:42 +00:00
Sylvestre Ledru
c786684183 Bug 1562642 - add missing license in media/webrtc/signaling/src/sdp/ r=drno
Depends on D52582

Differential Revision: https://phabricator.services.mozilla.com/D52583

--HG--
extra : moz-landing-system : lando
2019-11-11 21:42:41 +00:00
Dan Minor
1945617175 Bug 1592620 - Add whitelist for mDNS hostname obfuscation; r=bwc
This adds a whitelist of domains for which mDNS hostname obfuscation is
disabled. The implementation is an updated version of the old screensharing
whitelist code.

Differential Revision: https://phabricator.services.mozilla.com/D52012

--HG--
extra : moz-landing-system : lando
2019-11-12 17:17:11 +00:00
Byron Campen [:bwc]
c5a5c754d7 Bug 1588588: Get MediaPipeline to use the new timestamp implementation, and fix a typo in how we calculate expiries for CSRC stats. r=ng
Differential Revision: https://phabricator.services.mozilla.com/D50113

--HG--
extra : moz-landing-system : lando
2019-11-07 23:07:09 +00:00
Byron Campen [:bwc]
f5e5fe0d20 Bug 1588588: Remove jsimpl for RTCStatsReport, and refactor to prepare for moving some stats functionality to RTCRtpReceiver/Sender. r=smaug,ng
Differential Revision: https://phabricator.services.mozilla.com/D49195

--HG--
extra : moz-landing-system : lando
2019-11-07 23:07:05 +00:00
Brindusan Cristian
06dcacf2e7 Backed out changeset 0163a2b9ca5c (bug 1592620) for mochitest failures at test_dataChannel_hostnameObfuscationWhitelist.html. CLOSED TREE 2019-11-08 17:09:08 +02:00
Dan Minor
4438d45346 Bug 1592620 - Add whitelist for mDNS hostname obfuscation; r=bwc
This adds a whitelist of domains for which mDNS hostname obfuscation is
disabled. The implementation is an updated version of the old screensharing
whitelist code.

Differential Revision: https://phabricator.services.mozilla.com/D52012

--HG--
extra : moz-landing-system : lando
2019-11-07 20:59:29 +00:00
Dan Minor
8db9191ae9 Bug 1588817 - Only enable host obfuscation when running in content process; r=drno
The mDNS code makes use of the StunAddrsRequest which does not exist when
we are running with e10s disabled. If e10s is disabled, PeerConnectionMedia
will not be in the content process, and we can disable hostname obfuscation
in that case.

Differential Revision: https://phabricator.services.mozilla.com/D51986

--HG--
extra : moz-landing-system : lando
2019-11-06 18:04:31 +00:00
Andreas Pehrson
ad9fc60102 Bug 1588055 - Remove use of nsAutoPtr in MediaPipeline. r=bwc
Differential Revision: https://phabricator.services.mozilla.com/D49239

--HG--
extra : moz-landing-system : lando
2019-11-06 05:11:00 +00:00
Andreas Pehrson
28c99e5390 Bug 1588055 - Fix MediaPipeline static-analysis warnings and make RefPtr passing consistent. r=bwc
Differential Revision: https://phabricator.services.mozilla.com/D48957

--HG--
extra : moz-landing-system : lando
2019-11-06 05:11:02 +00:00
Andreas Pehrson
494c9c3aad Bug 1212237 - Use a content principal by default for received tracks. r=bwc
This swaps things around so that received tracks in peer connections have a
content principal instead of a null principal initially.

This puts an extra requirement on us to not output any frames under the content
principal after ALPN has been negotiated with requested privacy, but before this
private principal has been signaled to the MediaPipelines. The private principal
is signaled from the STS thread, via the main thread, whereas media is consumed
directly by MediaPipelines after being received on the STS thread.

This patch adds an extra signaling path directly from the STS thread that tells
MediaPipelines to make their PrincipalHandle private, and to ignore any data
until the private PrincipalHandle is set. It also moves the responsibility of
updating the principal of the received MediaStreamTracks from TransceiverImpl
to MediaPipeline, so it's all in the same path.

This lets all MediaStream and MediaStreamTrack APIs consume received tracks
directly after getting exposed to JS without errors. In case privacy is later
requested, consumers that have already been set up must handle this on the fly.
(They do, in specs and impls)

Differential Revision: https://phabricator.services.mozilla.com/D48947

--HG--
extra : moz-landing-system : lando
2019-11-06 05:11:04 +00:00
Andreas Pehrson
8624ea2658 Bug 1212237 - s/nsIEventTarget/nsISerialEventTarget/ in media/webrtc. r=bwc
nsISerialEventTarget is more semantically accurate for these uses, as the
dispatched runnables cannot run in parallel. It also allows us to use
InvokeAsync in future patches, as that function only takes nsISerialEventTarget.

Differential Revision: https://phabricator.services.mozilla.com/D49262

--HG--
extra : moz-landing-system : lando
2019-11-06 05:10:58 +00:00
Andreas Pehrson
c39989d19a Bug 1212237 - Be explicit about principals for received tracks. r=bwc
This patch fixes two things:
1) A potential threading issue in setting and reading the PrincipalHandle for
   MediaPipelineReceiveVideo.
2) Plumbs the PrincipalHandle down to the receiving MediaPipelines right from
   the start. It hasn't been necessary in the past as initially the principal
   handed to a track's constructor is trusted, but it's good form and will help
   clarify the situation for the next patch which switches the initial
   principal from always-private to mostly-non-private. In most cases this
   principal does no longer get updated after the track's been created, so it
   helps to have a PrincipalHandle that matches the track's principal.

Differential Revision: https://phabricator.services.mozilla.com/D48946

--HG--
extra : moz-landing-system : lando
2019-11-06 05:11:06 +00:00
Brindusan Cristian
56bcd62c3a Backed out 7 changesets (bug 1212237, bug 1588055) for mochitest failures at test_peerConnection_recordReceiveTrack.html.
Backed out changeset 15f2829db807 (bug 1588055)
Backed out changeset bbff556beb57 (bug 1588055)
Backed out changeset c3f52449c92c (bug 1212237)
Backed out changeset c23272ab755f (bug 1212237)
Backed out changeset 184b8485ae32 (bug 1212237)
Backed out changeset e406c203d2a9 (bug 1212237)
Backed out changeset 4adcbfd99da0 (bug 1212237)
2019-11-06 07:06:02 +02:00
Andreas Pehrson
199b843bd7 Bug 1588055 - Remove use of nsAutoPtr in MediaPipeline. r=bwc
Differential Revision: https://phabricator.services.mozilla.com/D49239

--HG--
extra : moz-landing-system : lando
2019-11-05 20:04:59 +00:00
Andreas Pehrson
13a4cca896 Bug 1588055 - Fix MediaPipeline static-analysis warnings and make RefPtr passing consistent. r=bwc
Differential Revision: https://phabricator.services.mozilla.com/D48957

--HG--
extra : moz-landing-system : lando
2019-11-05 20:04:52 +00:00
Andreas Pehrson
18c4e9ab29 Bug 1212237 - Use a content principal by default for received tracks. r=bwc
This swaps things around so that received tracks in peer connections have a
content principal instead of a null principal initially.

This puts an extra requirement on us to not output any frames under the content
principal after ALPN has been negotiated with requested privacy, but before this
private principal has been signaled to the MediaPipelines. The private principal
is signaled from the STS thread, via the main thread, whereas media is consumed
directly by MediaPipelines after being received on the STS thread.

This patch adds an extra signaling path directly from the STS thread that tells
MediaPipelines to make their PrincipalHandle private, and to ignore any data
until the private PrincipalHandle is set. It also moves the responsibility of
updating the principal of the received MediaStreamTracks from TransceiverImpl
to MediaPipeline, so it's all in the same path.

This lets all MediaStream and MediaStreamTrack APIs consume received tracks
directly after getting exposed to JS without errors. In case privacy is later
requested, consumers that have already been set up must handle this on the fly.
(They do, in specs and impls)

Differential Revision: https://phabricator.services.mozilla.com/D48947

--HG--
extra : moz-landing-system : lando
2019-11-05 20:04:45 +00:00
Andreas Pehrson
0b04e39974 Bug 1212237 - s/nsIEventTarget/nsISerialEventTarget/ in media/webrtc. r=bwc
nsISerialEventTarget is more semantically accurate for these uses, as the
dispatched runnables cannot run in parallel. It also allows us to use
InvokeAsync in future patches, as that function only takes nsISerialEventTarget.

Differential Revision: https://phabricator.services.mozilla.com/D49262

--HG--
extra : moz-landing-system : lando
2019-11-05 20:04:29 +00:00
Andreas Pehrson
b009f6cd63 Bug 1212237 - Be explicit about principals for received tracks. r=bwc
This patch fixes two things:
1) A potential threading issue in setting and reading the PrincipalHandle for
   MediaPipelineReceiveVideo.
2) Plumbs the PrincipalHandle down to the receiving MediaPipelines right from
   the start. It hasn't been necessary in the past as initially the principal
   handed to a track's constructor is trusted, but it's good form and will help
   clarify the situation for the next patch which switches the initial
   principal from always-private to mostly-non-private. In most cases this
   principal does no longer get updated after the track's been created, so it
   helps to have a PrincipalHandle that matches the track's principal.

Differential Revision: https://phabricator.services.mozilla.com/D48946

--HG--
extra : moz-landing-system : lando
2019-11-05 20:04:15 +00:00
Jan-Ivar Bruaroey
d60ad185ac Bug 1593161 - Fixed video capturing on Mac. (from upstream) r=pehrsons
On specific Macbooks (no exact pattern, unfortunately),
video from an integrated camera is not captured.
Changed AVCaptureVideoDataOutput pixel format configuration
as in Chromium which solved the problem.
https://chromium.googlesource.com/chromium/src/media/+/master/capture/video/mac/video_capture_device_avfoundation_mac.mm
FourCharCode best_fourcc = kCVPixelFormatType_422YpCbCr8;

Tested with external cameras as well.

Bug: webrtc:8958

Differential Revision: https://phabricator.services.mozilla.com/D51733

--HG--
extra : moz-landing-system : lando
2019-11-05 08:07:48 +00:00
Byron Campen [:bwc]
fa9fb525b5 Bug 1470568: Remove the rid= and pt= stuff from our simulcast parsing. Also, handle paused rids correctly. r=mjf
Differential Revision: https://phabricator.services.mozilla.com/D47658

--HG--
extra : moz-landing-system : lando
2019-11-04 15:04:14 +00:00
Nils Ohlmeier [:drno]
7483f82422 Bug 1591854: properly count active track in CountTracks(). r=bwc
Differential Revision: https://phabricator.services.mozilla.com/D50774

--HG--
extra : moz-landing-system : lando
2019-10-31 19:36:00 +00:00
Dan Minor
e032a7e2a3 Bug 1372950 - Enable mediapipeline_unittest on Windows; r=bwc
Differential Revision: https://phabricator.services.mozilla.com/D51283

--HG--
extra : moz-landing-system : lando
2019-10-31 15:25:15 +00:00
Dan Minor
3b09f09a9d Bug 1420893 - Remove mediaconduit_unittests; r=pehrsons
Differential Revision: https://phabricator.services.mozilla.com/D50971

--HG--
extra : moz-landing-system : lando
2019-10-30 11:31:23 +00:00
Dan Minor
1f3dd67cb9 Bug 1543622 - Make number of channels out param of GetAudioFrame; r=pehrsons
The number of channels is available in mAudioFrame in GetAudioFrame so
there is no reason to calculate it after the fact in MediaPipeline.

Differential Revision: https://phabricator.services.mozilla.com/D50934

--HG--
extra : moz-landing-system : lando
2019-10-29 17:30:03 +00:00
Gabriele Svelto
550a8ee421 Bug 1590984 - Use poll() instead of select() in WebRTC code r=drno
The use of select() was leading to crashes when the file descriptor value was
larger than FD_SETSIZE. Recent versions of glibc have checks in the FD_CLR(),
FD_SET() and FD_ISSET() macros that will abort() the program instead of doing
an out-of-bounds access. poll() doesn't have limitations on the file
descriptor values and provides behavior that is otherwise identical to
select() thus solving the problem.

Differential Revision: https://phabricator.services.mozilla.com/D50798

--HG--
extra : moz-landing-system : lando
2019-10-28 23:26:12 +00:00
Dan Minor
a7d0a8983c Bug 1380786 - Remove ICE candidate telemetry; r=bwc
This ICE candidate telemetry has not been used in a long time and in
addition requires special handling by the telemetry code. It is best
removed.

Differential Revision: https://phabricator.services.mozilla.com/D50656

--HG--
extra : moz-landing-system : lando
2019-10-25 20:24:15 +00:00
Nico Grunbaum
571742b7bd Bug 1583867 - add rtpTimestamp field to RTP sync/contrib sources; r=jib,smaug
Differential Revision: https://phabricator.services.mozilla.com/D47096

--HG--
extra : moz-landing-system : lando
2019-10-23 15:12:15 +00:00
Dan Minor
188c0c2c70 Bug 1587164 - Avoid left shift of negative value in TimestampWrapAroundHandler; r=bwc
The code for handling backwards wraps left shifts num_wrap_ - 1. If
num_wrap_ is zero, this results in a left shift of a negative value which
is undefined behaviour. This modifies the code to avoid the shift at the cost
of an extra multiplication.

Differential Revision: https://phabricator.services.mozilla.com/D49609

--HG--
extra : moz-landing-system : lando
2019-10-18 13:48:21 +00:00
Jeff Gilbert
6c3e1d29c0 Bug 1586423 - Revert bug 1470568 for breaking Google Meet, etc. r=bwc
Differential Revision: https://phabricator.services.mozilla.com/D49364

--HG--
extra : moz-landing-system : lando
2019-10-16 16:40:19 +00:00
Nils Ohlmeier [:drno]
661ecac0a9 Bug 1588346: removed webrtc sdk directory. r=dminor
Differential Revision: https://phabricator.services.mozilla.com/D49077

--HG--
extra : moz-landing-system : lando
2019-10-15 11:35:55 +00:00
Dan Minor
a964c79cd0 Bug 1517369 - Check for invalid rtp extension ids; r=bwc
This adds checks for invalid and duplicated rtp extension ids to
JsepSessionImpl. Since the version of webrtc.org we're using does not support
two byte extension ids, ids must be between 1 and 14 inclusive. Duplicated
extension ids are also disallowed by RFC 8285. Passing an invalid extension id
into the webrtc.org code will trigger a release assertion and a browser crash.

Differential Revision: https://phabricator.services.mozilla.com/D48689

--HG--
extra : moz-landing-system : lando
2019-10-15 15:26:01 +00:00
Dan Minor
dba62d5da9 Bug 1583967 - Fix pointer overflow errors in webrtc signal processing; r=ng
These have already been fixed upstream. The upstream comment was: "Negative
overflow is permitted here, because this is auto-regressive filters, and the
state for each batch run is stored in the "negative" positions of the output
vector."

Differential Revision: https://phabricator.services.mozilla.com/D48884

--HG--
extra : moz-landing-system : lando
2019-10-14 18:17:40 +00:00
Nils Ohlmeier [:drno]
c17df5dd68 Bug 1583317: added prefs to set DTLS min/max versions in PeerConnections. r=mt
Differential Revision: https://phabricator.services.mozilla.com/D46835

--HG--
extra : moz-landing-system : lando
2019-10-11 20:00:41 +00:00
Dan Minor
cb833e8387 Bug 1587159 - Fix undefined shift in g722_encode.c; r=ng
Left shifting a negative value results in undefined behaviour. It is safer to
multiply in this case.

Differential Revision: https://phabricator.services.mozilla.com/D48751

--HG--
extra : moz-landing-system : lando
2019-10-09 20:12:28 +00:00
Christian Holler
9d0310b514 Bug 1580320 - Check return value of PeerConnectionImpl::GetFingerprint. r=drno
Differential Revision: https://phabricator.services.mozilla.com/D48509

--HG--
extra : moz-landing-system : lando
2019-10-08 17:52:27 +00:00
Andreas Schuler
9cde4e3ef1 Bug 1585009: Support playout-delay RTP header extension r=bwc
Added playout-delay RTP header extension for video to JsepSessionImpl::SetupDefaultRtpExtensions.
This ensures that this extension will be preserved when generating an answer to an offer (by a sending peer) containing it.
Also updated JsepSessionTest to include a test verifying that the expected default audio and video extensions are set.

Differential Revision: https://phabricator.services.mozilla.com/D47689

--HG--
extra : moz-landing-system : lando
2019-10-08 12:49:52 +00:00
Dan Minor
ad61673439 Bug 1564902 - Checked paused_ prior to calling SendPacket; r=bwc
There is a window inside of SendPacket where the critical section is released
which means that other code could set paused_. This would lead to us hitting
the assertion at the top of SendPacket. Checking paused_ in the while loop
will avoid this. Upstream has fixed this problem in a similar way, but the
code has changed there enough that it doesn't make sense to try to bring in
their fix directly.

Differential Revision: https://phabricator.services.mozilla.com/D48540

--HG--
extra : moz-landing-system : lando
2019-10-08 15:42:58 +00:00
John Lin
2341df44ac Bug 1581902 - p6: introduce a pref to enable/disable H.264 for WebRTC. r=pehrsons
Differential Revision: https://phabricator.services.mozilla.com/D46368

--HG--
extra : moz-landing-system : lando
2019-10-08 17:16:01 +00:00
John Lin
8f1bf15aa3 Bug 1581902 - p5: check H.264 hardware availability. r=pehrsons
Differential Revision: https://phabricator.services.mozilla.com/D46367

--HG--
extra : moz-landing-system : lando
2019-10-08 17:15:52 +00:00
John Lin
3ab45bc445 Bug 1581902 - p1: use MediaDataEncoder on Android. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D46366

--HG--
extra : moz-landing-system : lando
2019-10-08 17:15:15 +00:00
Daniel Varga
27d99ab2df Backed out 6 changesets (bug 1581902) for xpcshell failure at xpcshell/rs-blocklist/test_gfxBlacklist_Equal_DriverNew.js. On a CLOSED TREE
Backed out changeset c900fdf28f82 (bug 1581902)
Backed out changeset 92c9ea70040d (bug 1581902)
Backed out changeset 1f588b5bf019 (bug 1581902)
Backed out changeset f837f2c5224f (bug 1581902)
Backed out changeset 44e248976099 (bug 1581902)
Backed out changeset c7dfff053f71 (bug 1581902)
2019-10-07 23:07:36 +03:00
John Lin
47c168e1bc Bug 1581902 - p6: introduce a pref to enable/disable H.264 for WebRTC. r=pehrsons
Differential Revision: https://phabricator.services.mozilla.com/D46368

--HG--
extra : moz-landing-system : lando
2019-10-01 16:54:50 +00:00
John Lin
854d85bd05 Bug 1581902 - p5: check H.264 hardware availability. r=pehrsons
Differential Revision: https://phabricator.services.mozilla.com/D46367

--HG--
extra : moz-landing-system : lando
2019-10-01 16:54:41 +00:00
John Lin
a93536ca9d Bug 1581902 - p1: use MediaDataEncoder on Android. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D46366

--HG--
extra : moz-landing-system : lando
2019-10-01 16:53:59 +00:00
Dan Minor
5ca5bdf957 Bug 1559011 - Try using PW_RENDERFULLCONTENT for Windows window capture; r=pehrsons
This is a partial cherrypick of https://webrtc.googlesource.com/src/+/f89110d67902e787f6745ad2b52f7f09fc808512.
The cropping changes in that revision are problematic on our version of webrtc.org and
result in distorted video, which looks as though there is a stride problem. This takes
the change to try to use PW_RENDERFULLCONTENT and to fall back to the current code if
that fails. This fixes capturing Chrome windows and allows Firefox to properly capture
its own window.

Using PW_RENDERFULLCONTENT can adversely affect performance. Using the
CroppingWindowCapturer can avoid using the WindowCapturer in some circumstances and so
result in better performance. Bug 1586071 tracks switching to the
CroppingWindowCapturer.

Differential Revision: https://phabricator.services.mozilla.com/D48108

--HG--
extra : moz-landing-system : lando
2019-10-03 19:47:07 +00:00
Byron Campen [:bwc]
9067a09c0a Bug 1470568: Remove the rid= and pt= stuff from our simulcast parsing. Also, handle paused rids correctly. r=mjf
Differential Revision: https://phabricator.services.mozilla.com/D47658

--HG--
extra : moz-landing-system : lando
2019-10-02 20:20:07 +00:00
Dorel Luca
46491fb5f0 Backed out changeset 62b78793d12e (bug 1583867) for WPT failures in webrtc/RTCRtpReceiver-getSynchronizationSources.https.html 2019-10-03 02:43:28 +03:00
Nico Grunbaum
6722b1c2c1 Bug 1583867 - add rtpTimestamp field to RTP sync/contrib sources; r=jib,smaug
Differential Revision: https://phabricator.services.mozilla.com/D47096

--HG--
extra : moz-landing-system : lando
2019-10-02 21:55:33 +00:00