[gst-devel] Wanted : application ideas

Erik Walthinsen omega at temple-baptist.com
Tue Sep 27 02:01:59 CEST 2005

Edward Hervey wrote:
>   If you have any ideas of programs you'd like to see, but haven't got
> the time to work on them, now is your chance. There's no limit to the
> field of application they can do, but it would nice to have a
> GStreamer-based application, and hence bring more people in the
> GStreamer community.

An idea I had while down in Bolivia installing a computer lab a few
weeks ago would be a great thing to have once there's an actual Internet
connection in the town...:

A set of applications (sender, proxy, receiver) that facilitates remote
classroom setups.  A teacher (e.g. in the US) has a webcam or DV cam
pointed at them in a mostly one-way teleconferencing setup.  The
students (e.g. in Bolivia) simultaneously see this image, ideally
syncronized to a master clock provided by the proxy that handles copying
the video datastream locally to the clients on the same connection,
among other things allowing a single set of speakers for the whole
classroom.  The classroom-side application might be run once on each
students' computer, or on a master display, e.g. a projector.

Either the whole classroom, each student, or both, could have cameras
sending lesser video streams or even just periodic still pics back to
the teacher.

Students can ask questions by either typing them in, or "raising their
hand" by clicking on a button, at which point they can ask their
question with a microphone, live, when ackknowledged.  The proxies and
master reflectors should be smart enough to play the question back into
the appropriate headphones/speakers, at all the relevant sites, so all
the other students can hear the question.  The teacher would need some
kind of semi-spatial interface for seeing when students "have their hand
raised" so they can acknowledge them.

In addition, some kind of whiteboard would be very useful, even to the
point of using VNC or even better some kind of passive X protocol
reflector to display an application or entire session on each student's

[ An X reflector would be a project all on its own I think: The
reflector and an application (or several) would run on the master
machine, with the reflector being a pure passthrough to the local X
server.  However, everything the app does is reflected to one or more
remote X servers (or a smart VNC / NX bridge) for display only.  The
reflector has to be smart enough to deal with the *different* responses
that the remote X server(s) might give to queries than the master server
would give, and handle the variations appropriately such that the
original application has no clue whatsoever that it's being reflected to
a second/third/etc display. ]

In a more complex setup where a classroom has both separate workstations
for the students, *and* a projector and room speaker setup, the
teacher's video, whiteboard, and reflected applications can be displayed
on the projector, while students can work on their own machines as per
the teacher's instructions.  Yet each of the student's displays are
available in both thumbnail and (as needed) full resolution live images
on the teacher's computer.  This could be an additional killer feature
of the X reflector, where it can construct a reflected *thumbnail* via
VNC, but on demand switch to a full X-based display.  The reflector
might either have some means of caching and replaying a full screen
update, or triggering a full redraw of the application for the reflected
display while keeping the master display from doing the same (e.g. so
the student doesn't know they're being inspected).

The proxy would be responsible for aggregating bandwidth usage, so that
e.g. one classroom in each of several schools in the same town in
Bolivia would simultaneously use the same *single* proxy and incoming
data stream from the U.S. (over a hypothetical city-wide WiFi network),
while other classrooms in other parts of the world might simultaneously
be participating in the same class at the same time, with their own
proxies according to their network architecture.

Everything should also be recorded and archived, for students' later use.

OK, there's a *dump* of some ideas ;-)  Hopefully bits of it are
something that might be tackled with some success as a school project.

More information about the gstreamer-devel mailing list