April 2007
Copyright (C) 2007, Motama GmbH, Saarbruecken, Germany http://www.motama.com Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with the Invariant Sections being all sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license can be found in the file COPYING.FDL. THE DOCUMENT IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE DOCUMENT BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE DOCUMENT OR THE USE OR OTHER DEALINGS IN THE DOCUMENT. |
This document provides some simple examples of how to develop applications with NMM. All examples are available in the examples/helloworld/ sub-directory of NMM.
Developing (distributed) multimedia application with NMM is easy. This tutorial includes following examples.
helloworld1: simple wav player using GraphDescription (with error handling, with access to 'serverregistry')
helloworld2: simple wav player creating flow graph manually with error handling and access to 'serverregistry'
helloworld3: simple wav player using GraphDescription with error handling and access to 'serverregistry'; same code as helloworld1, but added listener for startTrack and endTrack events
helloworld4: simple wav player using GraphDescription with error handling and access to 'serverregistry'; same code as helloworld1, but implemented simple seeking functionality
helloworld5: simple wav player using GraphDescription with error handling and access to 'serverregistry' same code as helloworld1, but using advanced node descriptions for audio sink
hellonmm1 (modified version of helloworld5): distributed wav player using GraphDescription with error handling and access to 'serverregistry' : playback on remote host
hellonmm2 (modified version of helloworld5) : distributed wav player using GraphDescription with error handling and access to 'serverregistry' : playback on local and remote host
hellonmm3 (modified version of helloworld5) : optimized distributed wav player using GraphDescription with error handling and access to 'serverregistry': playback on remote host
hellonmm4 and hellonmm41 : these two examples use a client server approach. hellonmm4 is a server streaming mp3 files using RTP multicast. hellonmm41 is a streaming client. To demonstrate the capabilities of NMM, several streaming clients can be started on different hosts and synchronized audio rendering can be enabled.
hellonmm5 and hellonmm51 : these two examples use a client server approach. hellonmm5 is a server streaming video files using RTP multicast. hellonmm51 is a streaming client. To demonstrate the capabilities of NMM, several streaming clients can be started on different hosts and synchronized video rendering can be enabled.
hellonmm9: demonstrates discovery of running serverregistries in the local network.
hellographbuilder1 : shows how to use the graph builder of NMM that automatically creates a flow graph from a given URL.
hellographbuilder2 : shows how to use the graph builder of NMM that automatically creates a distributed flow graph from a given URL.
'clic' (command line interaction and configuration) is an NMM application that allows to set up a distributed flow graph from a textual description. For helloworld1, hellonmm1, hellonmm2, and hellonmm3 we also provide the corresponding graph description files to be used with 'clic'.
helloworld1.gd: simple wav player
hellonmm1.gd: distributed wav player
hellonmm2.gd: distributed wav player : playback on local and remote host
hellonmm3.gd: optimized distributed wav player : playback on remote host. In contrast to the application hellonmm3 the TCP buffer size (or any parameter of a network connection) can not be changed because this feature is currently not implemented in clic.
| Next | ||
| helloworld1 |