]> git.vomp.tv Git - vompclient.git/blob - readme_media.txt
Fix removeAll in BoxStack
[vompclient.git] / readme_media.txt
1 Media PLayer Functions
2 Author: Andreas Vogel (andvogel@online.de)
3 Version: 2007/03/14
4
5 Basics:
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)
10         - play (mpeg) video
11 For me the priorities are like above, i.e. Prio 1 for the (jpeg) pictures, afterwards
12 audio, later video.
13 It requires some extensions on the server side (of course).
14
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
18   find media files.
19   Example:
20   [Media]
21   Dir.1=/home/Andreas/pictest
22   Dir.2=/home/video
23   Dir.3=/home/bilder
24   Dir.4=/media
25
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)
30
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).
33         SELECTOR WINDOW
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).
37         PICTURE VIEWER
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.
45
46 Version 2007/03/23
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 
59         128kBit/s CBR.
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).
62
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.
66
67         Additionally some bug fixes (thanks to muellerph and Walt for reporting them) for error handling.
68
69
70 Development Issues
71 1. Major Changes
72 1.1 Surface
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
79 care...
80 1.2. Jpeg
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.
83 1.3. VDR and server
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 
87 Jpeg data.
88 1.4. extensions
89 New classes for Media, MediaList, VMediaList, VPicture, VPicturebanner, VPictureinfo.
90 2007/03/23
91 New classes for audioplayer, demuxeraudio, vaudioplayer
92
93 2. Problems
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.
102 2007/03/23
103
104 3. Open/Next Steps
105 For me the next important steps would be:
106 Audio Playing - basicly done 2007/03/23
107
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...).
113 Picture Functions
114 1. Colour handling - we would need some colour profile for appropriate picture
115    viewing...
116 4. sorting - multiple sort options for media lists..
117    done 2007/03/23
118
119 Translations
120 English and German are there...