The existing WebRTC module is now considerably larger and more complex than when it was first conceived, and the people working on it are becoming increasingly specialized. In particular, there is a clear distinction between the code that deals primarily with the media subsystem and the code that deals with signaling. Splitting this module would reflect the actual split in expertise between media processing and signaling.

Name: WebRTC
Description: WebRTC is responsible for realtime audio and video communication, as well as related issues like low-level camera and microphone access
Module Owner: Randell Jesup
Peers: Eric Rescorla, Ethan Hugg, Byron Campen, Adam Roach
Source Dir(s): N/A (see submodules)
Bugzilla Component(s): Core::WebRTC
URL: https://wiki.mozilla.org/Media/webrtc


     Submodules of WebRTC

Name: WebRTC Media
Description: Submodule of WebRTC responsible for access to media input devices (microphones, cameras, screen capture), as well as realtime audiovisual codecs and packetization.
Owner: Randell Jesup
Peer(s): Ethan Hugg, Paul Kerr
Source Dir(s): /media/webrtc, /dom/media/webrtc
Bugzilla Component(s): Core::WebRTC (Audio/Video)


Name: WebRTC Signaling
Description: Submodule of WebRTC responsible for implementation of PeerConnection API, WebRTC identity, and SDP/JSEP handling.
Owner: Byron Campen
Peer(s): Eric Rescorla, Adam Roach, Randell Jesup, Nils Ohlmeier
Source Dir(s): /media/peerconnection, /dom/media/peerconnection (see below)
Bugzilla Component(s): Core::WebRTC (Signaling)


Historically, the code for these two areas has been intermingled pretty freely under /media/webrtc and /dom/media/webrtc. With this module split, I also propose a directory reorganization along the following lines, allowing for concise statements about which files go with with of the proposed new submodules.

The WebRTC Signaling module would be constituted as follows:

 * Move /media/webrtc/signaling/src/peerconnection => /media/peerconnection
 * Move /media/webrtc/signaling/src/jsep => /media/peerconnection/jsep
 * Move /media/webrtc/signaling/src/sdp => /media/peerconnection/sdp
 * The signaling-related unit tests would move from
   /media/webrtc/signaling/test into /media/peerconnection/test
 * The PeerConnection-related files under /dom/media would move to a
   new /dom/media/peerconnection directory. These include
   /dom/media/PeerConnection.js, /dom/media/PeerConnectionIdp.jsm, and
   /dom/media/webrtc/PeerIdentity.{h,cpp}


At the same time, the structure of the media-related code has evolved to be quite deep and somewhat labyrinthine. I would propose we take advantage of this restructuring to simplify as follows:

 * The remaining directories under /media/webrtc/signaling/src would
   move to /media/webrtc
 * The remaining files in /media/webrtc/signaling/test would move to
   /media/webrtc/test


There are some minor exceptions to these general moves (e.g., /media/webrtc/signaling/src/common/time_profiling/ would find a new home under /media/peerconnection, and /media/webrtc/signaling/src/peerconnection/Media* would end up under /media/webrtc), but these exceptions should be obvious and rather limited in number.

--
Adam Roach
Principal Platform Engineer
a...@mozilla.com
+1 650 903 0800 x863
_______________________________________________
governance mailing list
governance@lists.mozilla.org
https://lists.mozilla.org/listinfo/governance

Reply via email to