Here's the proposed landing plan for WebRTC. It will land in stages
over the next month+, as portions as ready and as reviews are completed.
Undoubtedly this will be modified significantly along the way, especially
the guesses as to reviewers.
roc has already seen this; his initial comments are included.
--------------------------------------------------------------
Overview of plan to land webrtc code from Alder to Mozilla-Central:
1st tranche (preffed off in configure.in) - to land ASAP
Build system changes:
configure.in
client.mk
gyp->makefile converter
Import script
media/webrtc/trunk/:
src
tools
build
test (perhaps minus test/data for now until we enable tests)
testing
Total size: ~500K lines of .cc & .h files (plus a few .gyp files and .py
files for gyp, etc), plus tests
2nd tranche: (might be swapped with some of 3rd tranche depending on
resources) (June 1-Jun-8)
getUserMedia with Webrtc backend (for non-mobile)
(initial) tests for getUserMedia
flip pref
Must be green on all devices (even if disabled for some targets
like Android & B2G)
3rd tranche: (June 29)
SCTP/DataChannel (netwerk)
transport service (ICE/TURN and p2p transport from EKR)
signaling (sipcc)
This is large, on the order of 200-250K lines.
libjingle (very partial, minus stuff overlapped by signaling work - mostly
talk/phone or base)
Might not be needed at all, or a very small subset.
libsrtp (probably as media/libsrtp)
libyuv (probably as media/libyuv)
Parts of this will likely land directly.
more tests
4th tranche (July 13)
peerconnection DOM work
more tests
---------------
Reviews needed:
We will NOT be line-by-line reviewing 700+K lines of code.
This is largely imported code. We will be importing versions
chosen for stable snapshots by Chrome in order to best leverage
Google's testing and security work. This also will let us watch
any important bugfixes and security fixes to those 'stable' pulls.
Updates on m-c after landing will be pulled from Chrome stable
revs, but with perhaps a bit more examination of the changes as
the size of the patches goes down.
Updates to third-party code (libyuv, libsrtp) to be handled
in conjunction with webrtc.org updates
We will be doing normal line-by-line reviewing of code we wrote
and modifications to the imported code.
Security reviews: To be negotiated with Security team; done in phases
and leveraging Google's work.
Most likely soft spots will be DOM and signaling. Maybe DataChannel.
We need to tie into Google's security team
We'll need protocol fuzzing
Avoid too much overlap with Google's testing
dveditz indicates they have a contractor in Germany? who has
experience with fuzzing
Protocols available for fuzzing:
RTP/RTCP
SRTP/SRTCP (libsrtp)
DTLS
SCTP/DTLS
ICE
STUN
TURN
VP8 and OPUS packetization (may not be much there)
NetEQ/etc (fuzz by modifying jitter and loss)
JSEP/SDP
User privacy protection and controlling the attack surface of the
browser will be important considerations.
Initial landing:
Make system, internal build tools (gyp->make)
Reviewers: khuey, glandium?, bsmedberg?, release-eng, others TBD
Review of the import process (and script)
Reviewers: ted, myk??, glandium?, others TBD
gyp file changes to webrtc
Reviewers: ted, khuey, glandium
custom Windows capture code
Reviewer: cpearce (already reviewed except for minor #include issue)
License review
Reviewer: gerv
Overall ok from primary leads of Media, Security, Platform.
Approvals: roc, dveditz?/akeybl?/TBD, JP?
Flipping pref for getUserMedia():
Review getUserMedia()
Reviewers: DOM Team member (khuey?), sicking?
Review capture-path of media/webrtc/trunk/src
This is high-level review of the imported code before turning it on
Reviewers: jesup, derf, ekr, ?
Review device access code
audio and video, all main platforms
This is high-level review of the imported code before turning it on
Reviewer: TBD
Review rendering paths for preview
Reviewers: TBD (fabrice?)
Later:
Opus support in WebRTC
Reviewers: jesup, derf, ?
Review protocol paths at a high level (not sure this makes much sense):
rtp/rtcp/srtp
Reviewer: jesup
congestion
Reviewer: mcmanus
JSEP/SDP
Reviewers: ekr, jesup, ehugg
jitter buffers/NetEq/etc
Reviewers: jesup, jean-marc, ?
AEC (and CNG, etc)
Reviewers: jean-marc, derf, jesup
DataChannels
Reviewers: mcmanus/biesi (netwerk/sctp), jst/? (DOM)
Review libsrtp and libyuv.
Open question: do we move them to media/libsrtp & libyuv? probably
makes sense
Note: pure import, no line by line review
Reviewers: ekr, derf, jesup, graphics team member?
Signaling: (JSEP/SDP)
This is sipcc - ~200K lines, and a fair amount of modifications
Also, a fair bit of code was added to sipcc after it was
open-sourced and before it was imported from ikran. That
code should get higher scrutiny.
Reviewers: jesup, ekr, derf, mcmanus(?), ehugg, roc?
PeerConnection DOM
Reviewers: khuey, jst?
Updates: We'll take updates from 'stable' branches of Chromium's webrtc
pulls, by pulling the same changesets. We should watch for changes
applied after they're moved to Chrome, and individually review those.
Land stuff separately (and review) wherever possible, as MediaStreams did.
DataChannel
getUserMedia()
Libraries for transport service
--
Randell Jesup, Mozilla Corp
remove ".news" for personal email
_______________________________________________
dev-media mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-media