2 Author: Andreas Vogel (andvogel@online.de)
6 Adding some media player functions to VOMP.
7 This should enable VOMP to:
8 - work as a picture viewer (for digicam pictures)
9 - play audio (at least mp3)
11 For me the priorities are like above, i.e. Prio 1 for the (jpeg) pictures, afterwards
13 It requires some extensions on the server side (of course).
15 First Version (delivered 2007/03/14):
16 Basic picture viewer functions
17 You can add a list of directories to vomp.conf that will be used as base dirs to
21 Dir.1=/home/Andreas/pictest
26 You can have up to 10 directories there.
27 The recognition of media types is based on extensions today. In the moment it recognizes:
28 JPEG,jpeg,JPG,jpg as Jpeg
29 mp3,MP3 as mp3 (not played yet)
31 In the vom main menu a new item is added (5 MediaPlayer).
32 This will open a menu with the configured base dirs (/ if none configured).
34 You can traverse through the dirs with the normal keys.
35 When pointing to a media file (currently only jpeg) you can activate the viewer with
36 [OK] (normal view) or [PLAY] (slide show).
38 When viewing a picture, this gets loaded from the server (currently still a little bit slow),
39 scaled (jpeg libs allows for 1/2, 1/4 and 1/8 only - but seems to be OK for many photos), and
40 displayed. With [OK] you can toggle the status line, With [RED] you can rotate the picture clockwise,
41 [GREEN] brings up an info box with some picture data. [PLAY] starts the slideshow, |<- and ->| as
42 well as [UP], [DOWN] travers trough all pictures within the directory.
43 << and >> will slower/fasten the slide show (time getting displayed in the status line). II will
44 pause the slide show [STOP] will pause and reset time to 5s.
47 Added playing audio files.
48 In the moment playing is (on the server side) limited to mp3 (MP3) files. The client side is
49 prepared to play all MPEG1 files - although only tested for MP3 CBR/VBR stereo, 44,1kBit.
50 Player control is similar to the other available players (recordings).
51 You can use 0...9 to position by x0 percent in the file. |<- and ->| will skip each 10s back/ forward.
52 In principle >> does also work - but seems not to be very usefull in the moment.
53 [UP] and [DOWN] will move backward/forward in a play list.
54 You can start playing all MP3's in a dir from the media view by pressing [PLAY], a single file by pressing OK.
55 The player window will disappear app. 30s after the last key press.
56 The players parses ID3V1,V2.2,V2.3 (thanks to Walt for the supported code) and displays selected info.
57 It also parses VBR headers ("Xing") and uses this info for display and movements.
58 If the player cannot parse the files, it tries to play them anyway, it will (for the display) assume
60 Currently the player uses the same media stream like the picture viewer -so no parallel viewing and
61 listening is possible (will be changed soon).
63 The media view has some minor changes:
64 Added the option to sort also randomly (e.g. for playing audio files).
65 Directories are marked with [ ] in the display, they are always displayed on top.
67 Additionally some bug fixes (thanks to muellerph and Walt for reporting them) for error handling.
73 To be able to handle deeply nested directories, the number of views has been extended to 120. This made
74 dynamic surface handling necessary. Therefore I changed the surface member. Box has a virtual
75 getSurface method, that gets implemented by Widget and View. The View really has a surface member,
76 Widgets have a parent (Box) member and query this for the surface.
77 At the View there is a new unmap() method, that releases the surface. The next getSurface will
78 acquire a new one and will redraw the view (calling it's draw method). This has to be used with
81 The WJpeg has been extended to be able to load arbitrary jpeg data via a reader class. It will
82 scale the jpeg if possible to fit onto the screen and will rotate it on demand.
84 VDR has new commands to get a media list, to initialize picture data transfer and to transfer
85 picture blocks (used a new command there for possible parallel action with audio later on...).
86 On the server side the media list reading has been added and a simple file reader to retrieve the
89 New classes for Media, MediaList, VMediaList, VPicture, VPicturebanner, VPictureinfo.
91 New classes for audioplayer, demuxeraudio, vaudioplayer
94 2.1. setting up devenv needed some changes...
95 2.2. -Wno-format was necessary to allow for %g for the date display
96 2.3. merging with today's CVS:
97 I encountered big problems with the new timer handling. Dangerous situations:
98 - timer retrieved from list, waiting to fire but destination gone (canceled timer),
99 nextTimer will not be NULL there... - so need a add. check
100 - cancel called within the timer firing - deadlock today, could delete timer from list..
101 OK -I added the patch.
105 For me the next important steps would be:
106 Audio Playing - basicly done 2007/03/23
108 Performance Improvements
109 1. have the transfer being handled in a separate thread (would save 50% on large files)
110 2. make a scaling (+pot. decoding) on the server side, could lower the sizes and fit
111 better to the screen (but needs some jpeg stuff on the server - I will try to grep from
112 mediamvp - worked on this already...).
114 1. Colour handling - we would need some colour profile for appropriate picture
116 4. sorting - multiple sort options for media lists..
120 English and German are there...