* fixed 8bpp YUV.
[vlc.git] / TODO
1 #
2 #   vlc tasks
3 #   ---------
4 #
5 #
6 # Difficulty values: Easy, Medium, Hard, Guru
7 #
8 # Urgency values: Wishlist, Normal, Important, Critical
9
10 Task: 0x21
11 Difficulty: Medium
12 Urgency: Normal
13 Description: Implement pause
14  There is no real `pause' command yet. Pausing just stops
15  displaying and sound playback, but the streams continues to
16  be decoded. One will have to do a file implementation as
17  well as a network implementation.
18 Status: Todo
19
20 Task: 0x20
21 Difficulty: Hard
22 Urgency: Important
23 Description: Rewrite input for Program Stream files
24  Currently when we read a PS file, it is first translated to TS
25  because we first had only PS support. Now time has come to get
26  rid of this ugly kludge and integrate a proper PS input.
27 Status: Todo
28
29 Task: 0x1f
30 Difficulty: Hard
31 Urgency: Normal
32 Description: DeCSS and DVD ioctls
33  The vlc needs the DVD ioctls support as well as the integration
34  of DeCSS to play DVDs properly. The person doing this should
35  probably not live in a country where DeCSS has been ruled illegal.
36 Status: Todo
37
38 Task: 0x1e
39 Difficulty: Hard
40 Urgency: Wishlist
41 Description: ASCII-art output
42  For the ones who don't know how to waste their time, they can
43  try to do an ASCII-art output plugin.
44 Status: Todo
45
46 Task: 0x1d
47 Difficulty: Hard
48 Urgency: Normal
49 Description: LPCM decoder
50  The LPCM decoder is full of stubs, it only parses the stream
51  but does not decode it. Fix this.
52 Status: Todo
53
54 Task: 0x1c
55 Difficulty: Guru
56 Urgency: Important
57 Description: Fix field pictures support
58  Some MPEG2 streams are interleaved, and the vlc does not support
59  this very well. Adding support for them requires an excellent
60  knowledge of the MPEG2 papers.
61 Status: Todo
62
63 Task: 0x1b
64 Difficulty: Hard
65 Urgency: Wishlist
66 Description: modularize decoder
67  Make the decoder a plugin, so that two versions can coexist
68  without recompilation (MMX and non-MMX).
69 Status: Todo
70
71 Task: 0x1a
72 Difficulty: Easy
73 Urgency: Normal
74 Description: Make interface more responsive
75 Status: Todo
76  When in "waiting for stream" mode, the interface is refreshed
77  every 5 seconds. This is too long, and can be confusing for
78  the user. Make it refresh at least after a keyboard/mouse event.
79 Status: Todo
80
81 Task: 0x19
82 Difficulty: Hard
83 Urgency: Normal
84 Description: Support MP1 and MP3
85  The vlc does not support all MPEG1 audio formats yet, nor
86  does it support MPEG1/2 layer 3.
87
88 Task: 0x18
89 Difficulty: Guru
90 Urgency: Wishlist
91 Description: Split interface/video_output
92  The interface and the vout modules are too dependant, which
93  makes it impossible to run the Glide output with the Gnome
94  interface for instance. This will require a major rewrite of
95  the interface, and a solid knowledge of how the vlc internals
96  work.
97 Status: Todo
98
99 Task: 0x17
100 Difficulty: Hard
101 Urgency: Normal
102 Description: Add 24bpp YUV
103  There is no 24bpp support yet. Add it, either in MMX
104  or in C.
105 Status: Todo
106
107 Task: 0x16
108 Difficulty: Medium
109 Urgency: Important
110 Description: Fix 8bpp YUV
111  The 8bpp YUV function is broken, there is some serious
112  alpha blending, and it scales pretty badly. Fix it.
113 Status: Done 14 Aug 2000 (sam)
114
115 Task: 0x15
116 Difficulty: Medium
117 Urgency: Critical
118 Description: Fix input_file exit
119  input_file does not exit cleanly when the file is finished,
120  which makes it impossible to quit the vlc. Fix it.
121 Status: Todo
122
123 Task: 0x14
124 Difficulty: Guru
125 Urgency: Wishlist
126 Description: Debug MPEG1 video
127  The MPEG1 support has been done, but it still crashes.
128 Status: Todo
129
130 Task: 0x13
131 Difficulty: Hard
132 Urgency: Wishlist
133 Description: Support MPEG1 timecodes
134  The vlc can parse an MPEG1 system stream, but the parsed
135  PCR values do not seem to be correct. Check what's wrong.
136 Status: Todo
137
138 Task: 0x12
139 Difficulty: Medium
140 Urgency: Important
141 Description: Fix 32bpp MMX YUV
142  The MMX 32bpp YUV function is buggy.
143 Status: Done 13 Aug 2000 (sam)
144
145 Task: 0x11
146 Difficulty: Hard
147 Urgency: Normal
148 Description: Optimize YUV scaling
149  The YUV scaling method does not seem very efficient. Perhaps
150  some CPU cycles can be gained by saving some buffers.
151 Status: Todo
152
153 Task: 0x10
154 Difficulty: Easy
155 Urgency: Normal
156 Description: vlc icon
157  The vlc needs an icon. It should render well in 48x48 but
158  can be any size.
159 Status: Todo
160
161 Task: 0x0f
162 Difficulty: Easy
163 Urgency: Normal
164 Description: Better black&white support
165  When in B&W mode, the chroma part of pictures is decoded,
166  but it would be more efficient not to decode at all when
167  the video decoder knows it does not need to.
168 Status: Todo
169
170 Task: 0x0e
171 Difficulty: Easy
172 Urgency: Wishlist
173 Description: Rename channel names
174  Channels should start from 1 (not 0) like on a VCR or TV,
175  and Channel 0 should be renamed to "Playlist" or similar.
176 Status: Todo
177
178 Task: 0x0d
179 Difficulty: Medium
180 Urgency: Important
181 Description: Framebuffer exit bug
182  When the vlc abnormally exits in framebuffer mode, it leaves
183  the console in an unusable state. This does not happen on
184  the Matrox framebuffer, but it does on the VESA one.
185 Status: Todo
186
187 Task: 0x0c
188 Difficulty: Hard
189 Urgency: Critical
190 Description: Fix synchro
191  The synchronization algorithm sucks a bit. While it is
192  quite efficient on frameskipping on slow machines, it
193  is not smart enough on fast machines and does not detect
194  when it has enough time for a frame. Perhaps a better
195  handling of the dates might help.
196 Status: Todo
197
198 Task: 0x0b
199 Difficulty: Medium
200 Urgency: Important
201 Description: Allow to force synchro
202  Add a --force-synchro option to bypass the auto-adaptative
203  algorithm present in the vlc. Options should allow displaying
204  only I frames, only I and P, or all frames, or some more
205  fancy stuff such as half the Bs.
206 Status: Done 8 Aug 2000 (sam)
207
208 Task: 0x0a
209 Difficulty: Medium
210 Urgency: Important
211 Description: Do separate packages
212  The plugins can be compiled with specific libraries, such
213  as Gnome, GGI, Esound. Putting all of them in the same
214  package would require a lot of useless dependencies, thus
215  one should do separate packages: a core "vlc" package, and
216  "vlc-fb", "vlc-ggi", "vlc-esd" packages depending on the
217  core package.
218 Status: Todo
219
220 Task: 0x09
221 Difficulty: Easy
222 Urgency: Normal
223 Description: Get rid of dumb vlc aliases
224  When compiling the vlc, some symlinks to the main app
225  are created, such as gvlc, ggivlc, etc. Actually this
226  might confuse the user, so they should be removed,
227  except perhaps gvlc and fbvlc which follow a usual
228  naming scheme.
229 Status: Done 8 Aug 2000 (sam)
230
231 Task: 0x08
232 Difficulty: Easy
233 Urgency: Important
234 Description: Get rid of floating instructions
235  Mixing floating instructions and MMX is seldom a good idea,
236  it might be interesting to remove all floating instructions
237  in a single thread. The audio decoders are of course not
238  concerned by this task.
239 Status: Todo
240
241 Task: 0x07
242 Difficulty: Hard
243 Urgency: Critical
244 Description: Fix VDEC_SMP segfaults
245  When compiled to support SMP, the vlc segfaults. The synchro
246  code lacks locks, but there might be bugs elsewhere as well.
247 Status: Todo
248
249 Task: 0x06
250 Difficulty: Guru
251 Urgency: Important
252 Description: Optimize video parser
253  The video parser has some speed issues currently unexplained:
254  even though most functions are inlined, it keeps eating more
255  CPU than it should. This has to be investigated.
256 Status: Todo
257
258 Task: 0x05
259 Difficulty: Easy
260 Urgency: Important
261 Description: vlms backport
262  The vlc uses the same file input code as the vlms (VideoLAN
263  Mini Server) which has been much improved. Someone should
264  port modifications done to the vlms back to the vlc.
265 Status: Todo
266
267 Task: 0x04
268 Difficulty: Medium
269 Urgency: Normal
270 Description: Get rid of vlc.channels
271  The file vlc.channels should be removed and information
272  found in it put either into ~/.vlcrc or in another rc
273  file. Note that this file can be modified by the vlc.
274 Status: Todo
275
276 Task: 0x03
277 Difficulty: Hard
278 Urgency: Important
279 Description: Playlist API
280  Currently only files given in the command line are played,
281  one after the other. We need a smarter way to handle this,
282  through AddFile(), MoveFile(), etc. functions. input_file
283  has to be modified to support this as well.
284 Status: Todo
285
286 Task: 0x02
287 Difficulty: Medium
288 Urgency: Normal
289 Description: Better Gnome interface
290  The Gnome interface has many stubs and is actually rather
291  unfunctional. Someone should make the buttons work when
292  the appropriate hooks exist.
293 Status: Todo
294
295 Task: 0x01
296 Difficulty: Hard
297 Urgency: Wishlist
298 Description: MGA YUV
299  The Matrox acceleration for the vlc does not work yet,
300  though there are initialization routines in the code.
301 Status: Todo
302
303 Task: 0x00
304 Difficulty: Medium
305 Urgency: Wishlist
306 Description: Splash screen
307  The vlc needs a splash screen with a vlc logo, instead of
308  the "waiting for stream" message.
309 Status: Todo
310
311