VOMP contribution - not continued any more

VOMP is a client server software that makes the Hauppauge MVP act as a frontend for the  Video Disk Recorder (VDR).
The homepage of this project can be found at LoggyTronic. Many thanks to Chris Tallon for this great work!
A Wiki can be found here.
I missed some mediaplayer functionality so I started contributing some of this.
Currently the media player functionality has been integrated into CVS.
Here you can find the link to the old page showing the history

Update 2008/12/27

A minor update in the converter script test1.sh to address:
  • no usleep on debian
  • handle spaces in AVI filenames correctly

Update 2008/12/22

There is a small patch available that addresses the following bugs:
  • no handling of files > 2GB
  • always need app. 3s before returning to menu when stopping video playback or picture loading
The patch is server side only - so please apply as usual with patch -p1 < patch-server-addon-081222.txt

Update 2008/12/14-2

I added dvd support to the server side script.
With the new test1.sh you are able to play dvds from a dvd device and iso images using mencoder.
There is a simple menu structure available, that allows to select titles and chapters.
When selecting an iso image a directory-menu will be created, containg one entry for each title, one entry for a chapter menu for each title and a "play all entry".

tanzreise.iso - T 01 - 00:00:49
tanzreise.iso - T 01 - [Menu]
tanzreise.iso - T 02 - 00:08:33
tanzreise.iso - T 02 - [Menu]
tanzreise.iso - T 03 - 00:07:46
tanzreise.iso - T 03 - [Menu]
tanzreise.iso - T 04 - 00:01:35
tanzreise.iso - T 04 - [Menu]
tanzreise.iso - T 05 - 00:09:27
tanzreise.iso - T 05 - [Menu]
tanzreise.iso - T 06 - 00:13:21
tanzreise.iso - T 06 - [Menu]
tanzreise.iso - All

When you access a [Menu] entry, you will get a chapter menu:

tanzreise.iso - T 02 - All
tanzreise.iso - T 02 - C 01, 00:01:09.286
tanzreise.iso - T 02 - C 02, 00:07:23.153

When acessing a particular chapter, playback will start at this chapter and will continue till the end.

To access your dvd device just place a file anyname.dvd-device at a place in the media hierarchy.
This file should contain one line with the name of your dvd device (e.g. /dev/sr0).
When accessing this file it will work the same way like accessing an iso image.
To make the dvd support working you need the following additional entries in your vomp.conf :


Update 2008/12/14

I added some minor improvements and bug fixes.
Those are at the client side:
  • some corrections on the client side to fix issues with picture modes/picture sizes
  • better handling of end detection in movies
  • correct play position display in movies
  • Those are available as a patch patch-media-addon-20081213.txt.gz to be applied on top of the version from 2008/11/30
  • some improvements in the live tv handling that avoids a couple of deadlocks aor distorsions:
There are also some improvements on the server side:
  • a small patch to better detect the end of a file (when using the converter script) - to be applied on top of the 2008/11/30 version
  • a couple of changes/improvments in the converter test1.sh:
    • the converter is now able to also handle all kind of jpegs using GraphicsMagic. For this to work you need a valid version of GraphicsMagic - at my side it works with GraphicsMagick-1.1.7-35.5 (it did not work with GraphicsMagick-1.1.7-24). To try it out, just run gm indentify somePicture.jpg.
      If it works the advantage is, that you can use the power of the host to convert large jpegs and to scale them really fitting your TV screen. To enable jpeg display, just add some entries to your vomp.conf:



    • for on the fly conversion of videos I improved the mencoder usage but also enabled using ffmpeg. On my Athlon 1Ghz server, it works much better with ffmpeg (using FFmpeg SVN-r11311) for 640x480/30fps AVIs from my digicam. Setting the bitrate to 1MBit/s the server is able to convert on the fly. You can adapt the settings at the beginning of the script:
      # fifo or temp file (use temp file on slow systems - needs space!)

      Instead of using a fifo, you can enable here the usage of a real tmp file. This will allow you to pause the video for a while to allow the converter to go a bit "in front of you" if your server is slow. But you will have to provide enough space for the tempfile (location see below).

      #delay for slow systems befor playing starts on client side
      #whether to use mencoder or ffmpeg
      If you leave the above empty it will use ffmpeg

      #limit mencoder quality (or ffmpeg quality)
      #the locaton of the fifo
      #WARNING: if USE_FIFO = 0 this is a real file - needs sufficient space!

    • I added a standalone converter convertVideo.sh that can be used to do the conversions offline if you would like to have navigation or have a slow server. Just call it with
      convertVideo.sh PAL|NTSC dirname or filename

Update 2008/11/30

Today I finished porting the media player stuff to the current CVS version (nearby 0.3.0).
The update includes:
  • the tcp patch (key presses should not disconnect)
  • the server side large file support
  • hopefully correct handling of video position for smaller videos
The available files:
Apply the paches as usual with patch -p1 < patchfile.
Any feedback is always welcome via the forum.

Update 2008/04/07

This update contains a small patch for the 027-mediaplayer version that avoids problems when stopping during video playing or audio playing afterwards having the error "unable to load media list".
(In fact it handles signals during waiting for TCP response correctly).
Apply the patch on top of the 2008/04/04 version.

Update 2008/04/04

I add some new patches here.
The first one updates the 2008-04-01 version to avoid a 5s delay when reading lists via the script in the real vdr environemnt. Aply this on top of the 2008-04-01 version.
The second one provides the newest media player functionality on top of the 0.2.7 release (taken from the CVS).

Update 2008/04/01

Added support for creating a list via the server side sript plugin. This includes support for m3u playlists and "virtual" files.
The new media type "LIST" was added to the list of configurable media types.
Added a small patch for the client to fix problems when playing audio via the script plugin multiple times.
  • patch-server-addon-080322-080401.txt  a patch that has to be applied to the server side additionally to the patches from 2008/22/03
  • patch-audioplayer-20080401.txt patch for the client side, apply additionally to patches from 2008/03/22
  • test1-080401.sh my script that is used to handle media types. Includes support for m3u and some "pseudo-files" for http sources. An url of the form "http://x/file.mp3" will be converted to /http://x/file.mp3.http-audio. Files of the form /http:.....http-audio will be handled as mp3 streams, retrieved by wget. You can e.g. create a list for mp3 radio streams this way. The list format is fairly simple:
    If the name; is omitted, the display name is taken from the filename (m3u Format).
  • vomp.conf.example-080401 my example configuration file

Update 2008/03/22

Fix some problems with the shutting down of started server side scripts.
Avoid some core dumps and hanging when switching between audio and video player.
Added some conversions using lame and ImageMagic to the server side.
Please note: there was an error in the script description from 2008/03/20 - to check the command it is called with the parameter "check".
The patches are against today's cvs.

Update 2008/03/20

Today the next step of the mediaplayer is available.
First of all a serious memory leak on the server side was fixed.
Additionally the following new features are there:
  • play Videos
    The media player can play "well formatted" mpeg2 videos. It recognizes the extension .mpg|.MPG.
    Keys work as usual in player windos.
    FF and FBW is still not available, jumping works on estimated bitrates.
    Currently the video playing is still not included in "playall".
  • server side converters
    By defining entries in vomp.conf you can add commands to convert media on the fly (e.g. using mencoder).
    The commands have to support 2 call modes:
        cmd test
        cmd play filename xsize ysize
    For details refer to the file readme_media.txt or eaxample file vomp.conf.example.
    Allowed values for TYPE are AUDIO, VIDEO, PICTURE.
As usual I include the patches for the client side and server side (both against today's cvs).
Additionally a dongle and a lib for 1.4.5 is included.
Any feedback is welcome via the forum.

Update 2008/01/06

Today I finished the next step for the media player.
Most important features are:
  • audio and pictures in parallel
    If you press [PLAY] in a directory it will start playing both audio and  jpegs in this dir.
    You can toggle which player will be on top with the [YELLOW] key. When the audio player is on top, and you press [YELLOW] you can put it into background and select other dirs e.g. for showing pictures.
    The mode which player will be on top (and if both is played in parallel) can be set via the options menu.
    The default mode "count" tries to be intelligent - it puts the player with the biggest number of files in this dir on top.
  • playing recursively through directories
    If you press [PLAY] on a directory entry it will start playing everything below (as long as the combined mode is not set to "none").
    It will also recurse into all subdirectories.
    If the selection window is there you can stop at any time with a key press.
  • extended configuration on server side
    Now you can add an entry like
    to the vomp.conf file - this will be used instead of the filename for displaying.
    Important: If the config file is empty it will not use the / directory any more!
  • local media files
    The internal architecture has been completely rewritten - we now have a hierarchy of media providers.
    The "normal" one is the already known on the server, but others can be added either locallly on the client or on the server. As an example a local provider is there that will show everything under a /media directory on the client (makes only sense if nfs-mounted...).
  • all the features from 07/12/02 - exif orientation, colour tuner,...
Unfortunately you need new parts on both sides again. I prepared now some version handling for the interface - but this is still a bit to go.
The following files are available:
For more details refer also to the included readme_media.txt (not the most current state but nearly). Any feedback is welcome - as usual via the forum.

Update 2007/12/02

I extended the picture viewer by some new functionality. Mainly these are :
  • better scaling, different scaling modes (letter, crop, crop by factor)
  • colour tuner to adapt the colours to your TV
  • (some) faster loading
  • media options page to set various options
  • exif orientation read
  • pause resumes slideshow
For details refer to the updated readme_media.txt.
To compile there are the usual patches, 2 for the client side and an additional jpeg for the colour tuner.
Patches are still againts cvs as of 2007/11/18. rebasing to latest will be done soon.
The patches must be applied as usual (consider the cvs from 2007/11/18!) with patch -p1. The server side needs still the same patches as below (2007/11/18).

Update 2007/11/18

The current cvs is broken for the server side and the picture viewer on the client side.
Here are some patches to be applied for both to retain the old functionality:
  • client side: patch-media-rebasecvs-071118.txt.gz - correct handling of background and banner
    Bases on cvs as of 2007/11/18
    apply with
    patch -p1 < patch-media-rebasecvs-071118.txt 
    after unzipping.
  • server side patches:
    correct some bug in communication and remove dependecies to vdr tools.*.
    Those patches do also contain some #ifndef VOMPSTANDALONE - this allows to compile a server that runs standalone and does not need vdr at all.
    Please apply both patches with
    patch -p1 < patch-server-standalone-media-071117.txt
    patch -p1 < patch-server-standalone-071117.txt
  • server side standalone makefile patch-server-standalone-Makefile-071117.txt.gz
    This patch creates a Makefile.standalone. By running
    make clean; make -f Makefile.standalone
    an executable vompserver-standalone will be created that can be run without vdr to act as a media server.
    It will expect vomp.conf and vom-xxxx.conf in the current directory.
    Currently the implementation on the client side odes not really detect this "stripped" server - all vdr function will simply lead to a lost connection.
An updated readme_media.txt is also available that reflects the current functions.
Compiled binaries are also provided here:
As usual all hints and bug reports are welcome via the forum.