]> git.vomp.tv Git - vompclient-marten.git/blob - readme_media.txt
Add handling reference frame pointers
[vompclient-marten.git] / readme_media.txt
1 Media PLayer Functions
2 Author: Andreas Vogel (andvogel@online.de)
3 Version: 2008/03/20
4 New 2008/03/20:
5   support for video (still not included in playAll)
6   server side scripting interface (include converter scripts)
7 New 2008/01/02:
8 Audio and pictures in parallel (YELLOW key)
9 Jpeg EXIF Orientation
10      more flexible scaling
11      faster loading
12      Colour Tuner
13 Media Options
14 details below
15
16 Basics:
17 Adding some media player functions to VOMP.
18 This should enable VOMP to:
19   - work as a picture viewer (for digicam pictures)
20   - play audio (at least mp3)
21   - play (mpeg) video
22 It requires some extensions on the server side (of course).
23 Version 2008/03/20
24 play video
25   plays "well formatted" mpeg2 videos (extension .mpg, .MPG)
26   moving (skip fw,bw, to %) works basing on estimated values
27   no ffw, fbw
28   currently video is not included in the "playAll"
29 server side conversions
30   on the server side there is an option to include commands that
31   convert media on the fly
32   You will loose navigation on the client in this case (i.e. no fw,bw, jump)
33 CVS Version (delivered 2008/01/02):
34 parallel audio and picture
35   use YELLOW key for audio player in background / toggle audioplayer
36   hierarchical mediaprovider structure
37   version handling at client-server interface
38   enable local mediaprovider (simply reading below /media)
39   have separate names for base directories (beside filenames) in config file
40   include standalone target into the makefile
41   
42 CVS Version (delivered 2007/07/15):
43 Media Selection
44   browse through media directories
45   select single Media (OK)
46   select all Media from directory (PLAY)
47   change sort order (BLUE) - name, time, random
48 Basic picture viewer functions:
49   show jpeg picture
50   auto scale them by 1/1, 1/2, 1/4, 1/8
51   rotate pictures
52   slide show
53 Audio player functions
54   play mp3 audio
55   position by 10%...90%
56   show Id3 info
57   handle vbr
58
59 Configuration
60   You can add a list of directories to vomp.conf that will be used as base dirs to
61   find media files.
62   For each directory you can define a separate name that is displayed.
63   Example:
64   [Media]
65   Dir.1=/home/Andreas/pictestA
66   Dir.Name.1=Picture-test
67   Dir.2=/home/video
68   Dir.3=/home/bilder
69   Dir.4=/media
70
71   You can have up to 50 directories there.
72   The recognition of media types is based on extensions today. In the moment it recognizes:
73         JPEG,jpeg,JPG,jpg as Jpeg
74         mp3,MP3           as mp3 
75         mpg,MPG           as Mpeg2 video
76   Additionally you can define commands that handle other types of media.
77   Example:
78      Command.Name.1=/home/Andreas/src/vompserver-devenv/test1.sh
79      Command.Extension.1=avi
80      Command.Type.1=VIDEO
81   The allowed values for Type are 
82     VIDEO - mpeg2
83     AUDIO - mp3
84     PICTURE - jpeg
85   The commands will be called with the following options:
86   check
87     at startup to check the command being available, has to return 0
88   play "filename" xsize ysize
89     must send the media stream to stdout
90   The command will be stopped with SIGINT. If this is not successfull, a SIGKILL will follow.
91   An example command file is included (test1.sh).
92   You can define up to 50 commands (1...50).
93
94   In the vomp main menu a new item is added (5 MediaPlayer).
95   This will open a menu with the configured base dirs (/ if none configured).
96   Additionally this menu will show the media under the client!!! /media directory.
97
98 Usage and Keys
99         
100 SELECTOR WINDOW
101         You can traverse through the dirs with the normal keys.
102         When pointing to a media file you can activate the viewer/player with
103         [OK] (normal view) or [PLAY] (slide show/play all files from this directory).
104         [BLUE] will toggle the serach order (name->time->random), the status line will display
105         the NEXT sort order that you get with [BLUE].
106   If the audio player is running you can bring it to front (and back) with the YELLOW key.
107
108 PICTURE VIEWER
109         When viewing a picture, this gets loaded from the server (currently still a little bit slow), 
110   Currently the scaling depends on the jpeg lib. You can have a scaling within the lib by 1/2,
111   1/4 and 1/8. Additionally you can have an "after scaling" form 1/1...1/5. This anyway slows down.
112   You can select the after scaling in the options (default 1 - no after scaling).
113   There is an alternative Jpeg Lib available (see links) - with this lib you can better scale.
114   Still to be discussed...
115   You can select 3 different modes for the picture - "letter" - always completely on screen, 
116   "crop" always cropped by next possible scale and "croppercent" - you can select the Picture Size
117   within the option page from 10%...150% - the picture gets scaled to best fit to the screen within
118   this range.
119   To adapt the colours to you screen there is a colourTuner. You can set factors for R/G/B either
120   in the media options or by pressing the [MENU] key in the pictureViewer. The current picture 
121   will not be rendered again when leaving the colour tuner! So changes only wil become effective
122   for the next picture.
123   Keys in the Picture Viewer:
124         With [OK] you can toggle the status line, With [RED] you can rotate the picture clockwise,
125         [GREEN] brings up an info box with some picture data. [PLAY] starts the slideshow, |<- and ->| as
126         well as [UP], [DOWN] travers trough all pictures within the directory.
127         [PAUSE] will pause the slide show and resume it.
128         << and >> will slower/fasten the slide show (time getting displayed in the status line). II will
129         pause the slide show [STOP] will pause and reset time to 5s.
130   [BLUE] rotates through the clipping options (can be seen in the info display).
131   The viewer now handles Exif rotation information if available and rotates the picture accordingly.
132   If the audio player is running you can bring it to front (and back) with the YELLOW key.
133
134 AUDIO PLAYER
135         The audioplayer will play mp3 files and has a similar status display like the recordings player.
136         You can pause with [PAUSE], continue with [PLAY].
137         [STOP] halts and rewinds to the beginning.
138         [1]...[9] will postion to 10%...90% of the length.
139         |<- and ->| will skip each 10s back/ forward.
140         [GREEN] toggles the display of an info window with ID3 info.
141         [OK] toggles the status display.
142         [UP] and [DOWN] will change to the next song when the player was activated with [PLAY].
143         The player window will disappear app. 30s after the last key press.
144   [YELLOW] will put the audioplayer into "background". It will continue playing it's current list while
145   you are able to continue browsing the media files and e.g. start a slideshow.
146   Typical seqeunce (in the moment):
147     Got to a directory containing audio files, select a file, press [PLAY]. The audioplayer comes up
148     and starts playing. Press [YELLOW] (selector comes up) and go to a picture directory. Select a picture
149     file and press [PLAY] - the picture viewer starts a slideshow. At any time you can toggle with the
150     [YELLOW] key to the audioplayer and use [UP]/[DOWN] to change the played song. 
151         The players parses ID3V1,V2.2,V2.3 (thanks to Walt for the supported code) and displays selected info.
152         It also parses VBR headers ("Xing") and uses this info for display and movements.
153         If  the player cannot parse the files, it tries to play them anyway, it will (for the display) assume 
154         128kBit/s CBR.
155         Currently the player uses the same media stream like the picture viewer -so no parallel viewing and
156         listening is possible (will be changed soon).
157 VIDEO PLAYER
158    all normal keys as for recordings player
159    RED - media info
160    GREEN audio selector
161
162 Translations
163 English and German are there...
164
165 Standalone Server
166         With make make standalone in the vompserver you can create a standalone
167         vompserver-standalone that does not need vdr to compile or to run. This enables running it on
168         an arbitrary linux box without any VDR. It expects config files in the current directory. Client side
169         is still very simple - all vdr command will lead to connection lost.
170
171
172 Implementation aspects:
173   For easy handling there is now a couple of files (data holders) that is used both on the client and server side.
174   Currently those are: vdrcommand.h serialize.* media.* mediaprovider.h mediaplayer.* mediafile.*
175   With the script copyClientFiles.sh you can replace the files in the server dir by symlinks to the
176   client files. This way they can easily be changed during development.
177   With serialize.* and vdrcommands.h I created some infrastructure for interface compatibility handling.
178   At least for the mediaplayer this will be used, maybe we can extend this to the other commands too (will
179   be discussed at the forum).
180   Now I created a hierarchical mediaprovider structure.
181   Both on the client and server side you can add mediaproviders that implement the MediaProvider interface.
182   Currently we have:
183   client side:
184   LocalMediaFile - providing files below the /media directory
185   VDR - forwarding everything to the server
186   server side:
187   ServerMediaFile - provding the well known functions on the server
188   New providers can be easily added, they must be initialized and registered.
189   Client: Ctor of VMedialist (only register them once!)
190   Server: Ctor of MVPclient
191