[Sugar-devel] GSoC Proposal: Multimedia Broadcasting

Benjamin M. Schwartz bmschwar at fas.harvard.edu
Fri Apr 3 01:03:24 EDT 2009


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Benjamin M. Schwartz wrote:
> I think this is a really awesome proposal that would be hugely beneficial
> to Sugar.  I see a few major technical difficulties to consider.
> 
> 1.  Screen feeds and video feeds need different transports.  Our hardware
> is not going to be capable of using Theora (or any other video codec) to
> transmit the whole screen at acceptable quality, but it's also not going
> to be capable of transmitting full motion video in VNC.  Therefore, we
> need to use Theora for video and VNC for the screen capture.  This creates
> a bit of a complex situation.  Perhaps VNC could be added to farsight as a
> codec?
> 
> 2. Telepathy does not currently support multi-point conferences.
> Collabora is working on it, but from what I hear it's not likely to be
> ready by June.  Thus, you will not be able to work entirely through
> telepathy-farsight.  Farsight itself does support multi-point conferences
> (I think...), but I am not sure that it has any optimization for the LAN
> case, where all transmissions are essentially broadcast.  Transmitting
> individual unicast streams to 30 laptops over a wireless network would be
> an absolute disaster... but I assume that VNC requires the ordering and
> delivery guarantees of TCP, so if you broadcast it clients will die as
> soon they miss a packet.
> 
> 3.  (distant third).  By default, VNC does not transmit the cursor as an
> image.  Instead, it allows the client to show the local cursor.  This
> makes sense, since because hardware acceleration means the cursor is often
> not even in the framebuffer.  You will have to make the cursor visible
> somehow, in order to act as a kind of "laser pointer".

Oh, and
4.  There's no easy way to make VNC watch a single window.  VNC reads from
the framebuffer, so if another window is on top of the one that VNC is
watching, then the window on top is the one that will be transmitted.
This makes "watching" an activity by connecting to a VNC server very
problematic.  This gets somewhat easier if compositing is enabled, but our
#1 platform (the XO-1) does not currently have workable compositing.

It may be possible to fix this in Sugar, relying on the fact that (apart
from the frame) an activity is never partially obstructed.  It is always
either visible or invisible.  Maybe you can somehow pause the VNC server
when the activity moves to the background, and resume the VNC server once
the activity is visible again.  This is still pretty complex though,
requiring significant modifications to the VNC server.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.10 (GNU/Linux)

iEYEARECAAYFAknVmJwACgkQUJT6e6HFtqRSHgCeJbvhz+dWb0+e/smbUjhl1Pl+
nfQAnRXaIxlfy0OXSXGzhbCMCqFxzZft
=WmvQ
-----END PGP SIGNATURE-----


More information about the Sugar-devel mailing list