[webkit-dev] New feature announcement – Video conferencing and peer-to-peer communication

Leandro Graciá Gil leandrogracia at chromium.org
Tue May 17 04:16:24 PDT 2011


About the modularity proposal, I have no problem creating a new separate
folder in WebCore for this feature. An example of its structure could be the
following.

In WebCore/mediastream:

   - GeneratedStream.h/cpp/idl
   - Stream.h/cpp/idl
   - StreamRecorder.h/cpp/idl
   - CallbackTask.h
   - MediaStreamClient.h
   - MediaStreamController.h/cpp
   - MediaStreamFrameController.h/cpp
   - NavigatorUserMediaError.h/idl
   - NavigatorUserMediaErrorCallback.h/idl
   - NavigatorUserMediaSuccessCallback.h/idl

In platform:

   - MediaStreamRegistry.h/cpp (required for the DOMURL)
   - mock/MediaStreamClientMock.h/cpp

In fileapi:

   - BlobCallback.h/idl  (for the blob-providing callback used in the
   StreamRecorders)


We would need to decide where to place the code for the tracklist objects,
as they are also used by the HTMLMediaElement and enabled by the VIDEO_TRACK
flag.
These are:

   - TrackList.h/cpp/idl
   - MultipleTrackList.h/cpp/idl
   - ExclusiveTrackList.h/cpp/idl


Finally, it requires minor modifications in the following files in WebCore.
Note that this list may be increased in the future.

   - dom/EventTarget.h/cpp
   - dom/ScriptExecutionContext.h/cpp (for the DOMURL)
   - html/DOMURL.h/cpp/idl
   - page/Navigator.h/cpp/idl
   - page/DOMWindow.h/idl  (to enable DOMURL with both the BLOB and
   MEDIA_STREAM flags)
   - page/Frame.h/cpp
   - page/Page.h/cpp


So, with this more detailed information, do you think I should move the code
to a separate folder? Any suggestions on where to put the tracklist object
files? I'd like to have some consensus on this if possible, as this decision
will affect the landing of the remaining patches.

Thanks,
Leandro


On 17 May 2011 00:15, Ian Hickson <ian at hixie.ch> wrote:

> On Fri, 13 May 2011, Eric Seidel wrote:
> >
> > On the surface "peer to peer video conferencing" does not seem like
> > something appropriate to add to WebCore/WebKit.  Just like "an API for
> > reading my email" is out of scope for the project.  (But certainly lots
> > of people build such things on top of WebKit.) :)
>
> What people are talking about as "video conferencing and peer-to-peer
> communication" here really are the building blocks for letting people
> build such things on top of the Web platform. The relevant part of the
> HTML spec is basically just these features:
>
>  - A way to get input from the system camera(s) and microphone(s).
>
>  - A way for two peers to connect and exchange data and audio/video
>   streams directly, reusing the widely used ICE, STUN, TURN, and SDP
>   technologies, assuming they have an existing indirect channel.
>
>  - A way to record or display these streams.
>
> Actually deploying a video conferencing system would need far more than
> this. For example, you need identity and presence, which are not part of
> the Web platform but have to be built on top of it. You also need to
> actually implement the "existing indirect channel" mentioned above (e.g.
> using XHR or WebSockets), and you need to provide the STUN and TURN
> servers in the cloud.
>
> The components that are provided by this part of the HTML spec have other
> purposes beyond video conferencing; for example you can use the access to
> local camera and microphones for augmented reality tools, you can use the
> peer-to-peer component for exchanging real-time game state data in a video
> game, and you can use the recording component for recording video blogs.
>
> The parallel to e-mail apps is apt: it is much like how the platform
> provides XHR, input controls, and local storage, all necessary components
> for an e-mail app, but does not provide an "e-mail app" component; and the
> components it does provide can be similarly reused in other contexts.
>
> HTH,
> --
> Ian Hickson               U+1047E                )\._.,--....,'``.    fL
> http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
> Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20110517/05b6437a/attachment.html>


More information about the webkit-dev mailing list