Tree [1fd4d6] master /

File Date Author Commit
cmake 2015-03-10 Jörg Bakker Jörg Bakker [f6dea1] FIX better separation between win console and g...
src 2015-03-11 Jörg Bakker Jörg Bakker [1fd4d6] ADD config file versioning.
xml 2012-05-24 Jörg Bakker Jörg Bakker [b2154a] ADD initial ConnectionManager implementation.
CMakeLists.txt 2015-02-06 Jörg Bakker Jörg Bakker [450b7a] ADD omm version and commit date/number
COMMIT 2015-03-11 Jörg Bakker Jörg Bakker [1fd4d6] ADD config file versioning.
COPYING 2009-05-02 Jörg Bakker Jörg Bakker [a714c3] Imported sources retaining old modification dat...
README 2015-01-12 Jörg Bakker Jörg Bakker [a4a0a5] ADD dvb model scans from gui. 2015-03-06 Jörg Bakker Jörg Bakker [e810d0] FIX build of resgen on host platform si...

Read Me


1. Introduction
2. Building from Source
3. Dependencies
4. Running the Applications


1. Introduction (outdated, incomplete)

Omm is a set of applications and libraries for easily making your multimedia content available
to your local network. It aims to be compatible to the UPnP V1.0 and UPnP-AV V1.0 specification.

Omm currently includes the following components:

omm - the main application, providing a sensible mix of Omm components.

ommcontroller - a UPnP-AV Media Controller
ommcontroller is the "remote control" of your multimedia system.
It lets you select your media source (UPnP-AV Server), browse the content of the server, select a media object
(song, video, tv-channel, ...), select a media output (UPnP-AV Renderer) and control the transport of the media
from Server to Renderer (start, stop, seek, ...).

ommrenderer - a UPnP-AV Media Renderer
ommrenderer is the "set-top box" for you TV. It renders the media streams
coming from the UPnP-AV Server to a screen and a sound system.

ommserver - a set of UPnP-AV Media Servers
Currently only a plugin for VDR (Video Disc Recorder - is available.
It gives you access to digital television provided by VDR (DVB-S, DVB-C or DVB-T). The plugin
exposes the TV channels, you can watch live-TV and the recordings. Seeking in recordings is
supported. For browsing the EPG or setting timers you need a web based interface like vdr-admin.
For delivering other content, such as music and video files (mp3, avi, ...) you can use one
of the UPnP-AV servers out there (see compatibility list below).

UPnP 1.0 implementation

UPnP AV 1.0 implementation


2. Building from Source

To build Omm from source you need CMake as of version 2.6 or later. In the top-level directory
just run:

$ ./ config
$ ./

and you should be done.

Install the binaries directly from the build tree
$ sudo ./ install

or create packages:
$ ./ package


3. Dependencies (somewhat outdated)

All Omm components depend on the Poco libraries (
Further dependencies are:

ommcontroller: Qt 4.4.3 or later
ommrenderer: X with support for xvideo is currently recommended
ommrenderer VLC engine: libvlc (as of vlc 0.9.4 or later)
ommrenderer mplayer engine: mplayer at least 1.0 pre-something installed as a runtime dependency
ommrenderer xine engine: libxine 1.1.15 or later
ommserver-vdr: VDR 1.6.0 with streamdev-server plugin

The mplayer engine has an incredible good seek performance on http streams, but has some flaws when
it comes to controlling it via IPC.

VLC has a clean library design and an overall good performance, especially on mpeg streams via http.
That's nice for TV streaming. However, seeking and AV-Transport related control is not as fast as mplayer's.

The xine engine is imcomplete and probably not working. Seeking on http streams is not implemented in
libxine, so this should be done first do reactivate it for Omm.

So, currently I recommend the VLC engine.

Update of dependencies (2014-04-22):
libommnet on Linux: libudev, libdbus, libdbus-c++, network-manager-dev
libommgui on Linux: Qt4

Packaging dependencies (2014-04-22):
target mingw-linux: NSIS


4. Running the Applications (outdated)

This is pretty straight forward: just run ommcontroller or ommrenderer on a single or on several different machines.
No configuration is needed, in the first place. All UPnP-AV Servers and UPnP-AV Renderers announce
themselves on the local network and then pop up in ommcontroller. You can quit or start a second ommcontroller while
some media is rendered, so different instances of ommcontroller can concurrently control one playing media.
On the other hand, one instance of ommcontroller can control different instances of ommrenderer, for example one
in the living-room and one in the kitchen. Your mileage may vary.

ommserver-vdr must be installed as a vdr-plugin, usually in /usr/lib/vdr/plugins. The streamdev-plugin must be
configured and working on the standard ports. Don't forget to add:

streamdev-server.AllowSuspend = 1
streamdev-server.SuspendMode = 1

to vdr's setup.conf, to enable changing of transponders on the stream's request.


5. Compatibility (outdated)

Currently, only Mediatomb ( has been tested to work nicely with the Omm applications. Please give
feedback, if you have tested others.

I hope you enjoy Omm as much as I enjoy hacking on it
Joerg Bakker