[gst-devel] NMM

Marco Lohse mlohse at cs.uni-sb.de
Mon Nov 3 05:56:05 CET 2003


Hi,
I realized that you recently discussed NMM ( www.networkmultimedia.org ) 
on your mailing-list.

As I am one of the developers of NMM, I would like to correct some 
details that were written on the list and that are technically wrong.

Please, understand me right, I do not want to start a discussion about 
which architecture is better in the one or other way. I just want people 
to read the facts about NMM. As you all are developers, I am sure you 
will respect this.

Ronald Bultje wrote:
> Hi Karl,
> 
> On Mon, 2003-10-27 at 10:01, Karl Schmitz wrote:
> 
>>Now I was wondering what you gstreamer guys think about NMM ?
> 
[..]


> 
> One specific comment: they mention network-transparency. That whole
> concept is very overrated. Network-transparency has no use in 99,9% of
> the cases (do you see win32 users play back their mp3s on one computer
> to listen to it on the other?) and severly slows down the whole process
> because - locally - all data must be copied from one element to the
> other (pipes, sockets, fifos, whatever) instead of passing refcounted
> pointers. We provide network-elements as a special case, not as a
> default, because of this.
[..]


The first thing I want to correct is that there is absolutely no 
overhead for all locally running parts of an NMM application (like a 
flow graph) : just simple passing of refcounted pointers. Networking is 
only done when needed. The nice thing about NMM is that this is done 
'transparently'.

The other thing is, that - of course - win32 users do not run networked 
multimedia application since they do not have anything like NMM ;)

My last point: network-transparency makes sense especially for 
multimedia computing. Simple example: you have a TV-board 
(digital/analog) in a remote machine. Now you want to watch TV on your 
local host. And you want to change the TV channels from your local host.
Of course, you could write some 'streaming' application, start a server, 
start a client, connect to the server, change the channel on the server 
via X forwarding or remote log in, ...

Or you use NMM, and simply change one line of code, namely : set the 
hostname for the source element for receiving TV to be the remote host.
Eveything else - like calling the method for setting the TV channel - 
stays the same.

Another nice example where network-transparency does make sense:
http://www.networkmultimedia.org/NMM/Status/Mobile/index.html#videos


Marco.







More information about the gstreamer-devel mailing list