]> git.sesse.net Git - vlc/blob - TODO
. rajout du fix de Meuuh dans la todolist.
[vlc] / 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: 0x38
11 Difficulty: Medium
12 Urgency: Important
13 Description: Make aout eat less CPU
14  When the vlc is launched without a stream, the audio_output thread
15  eats all memory, probably because there is no msleep() when no data
16  is available in the audio_output queue.
17 Status: Todo
18
19 Task: 0x37
20 Difficulty: Guru
21 Urgency: Important
22 Description: Fix motion compensation bug
23  The motion compensation still has a small bug which can be well
24  noticed when there is a sudden color change, a few blocks remain
25  visible on the screen.
26 Status: Done 27 Aug 2000 (Meuuh)
27
28 Task: 0x36
29 Difficulty: Medium
30 Urgency: Normal
31  Description: Finish the new keyboard input interface to support 
32  interfaces that allow modifiers. This will allow the SDL to run 
33  properly.
34 Status: Todo
35
36 Task: 0x35
37 Difficulty: Medium
38 Urgency: Important
39 Description: Fix plugins namespace problem
40  When compiling a plugin, all symbols seem to be exported, while we
41  actually just need GetConfig and a few other things: the other
42  functions are accessed through function pointers.
43 Status: Todo
44
45 Task: 0x34
46 Difficulty: Medium
47 Urgency: Important
48 Description: Fix plugin autoloading
49  At the moment, plugins to be detected are hardcoded in the code. We
50  need a better method to get all available plugins, by listing all the
51  files in selected directories.
52 Status: Todo
53
54 Task: 0x33
55 Difficulty: Hard
56 Urgency: Important
57 Description: Real plugin API
58  We need some functions to register plugins, automatically detect which
59  ones are the most appropriate, as well as ways to express that plugin
60  A won't work unless plugin B is activated as well.
61 Status: Todo
62
63 Task: 0x32
64 Difficulty: Medium
65 Urgency: Important
66 Description: Enable compiled-in plugins
67  Some plugins may have their place inside the main program, such as the
68  dummy plugin, or the beos plugin under BeOS. We should allow to link
69  them with the main app.
70 Status: Todo
71
72 Task: 0x31
73 Difficulty: Easy
74 Urgency: Normal
75 Description: Optimize SPU rendering
76  There is an if() in the SPU display routine to double lines when needed,
77  whiwh is rather inefficient. It should be removed and put outside
78  the main loop.
79 Status: Done 26 Aug 2000 (henri)
80
81 Task: 0x30
82 Difficulty: Hard
83 Urgency: Important
84 Description: SPU error recovery
85  The SPU decoder does not behave very well when a packet is missed or when
86  it gets the stream at the middle of an SPU packet. Make it more error-
87  friendly.
88 Status: Todo
89
90 Task: 0x29
91 Difficulty: Medium
92 Urgency: Normal
93 Description: ALSA audio output support
94  ALSA is the Advanced Linux Sound Architecture and is believed to be
95  technically superior to the usual OSS support found in the Linux kernel.
96 Status: Todo
97
98 Task: 0x28
99 Difficulty: Guru
100 Urgency: Wishlist
101 Description: Support for RTP
102  RTP is a transport protocol for realtime applications. MPEG1 and MPEG2
103  versions of RTP are described in RFCs 2038 and 2250. RFCs 1889 (RTP)
104  and 2508 (compressed RTP) can be interesting as well.
105 Status: Todo
106
107 Task: 0x27
108 Difficulty: Medium
109 Urgency: Wishlist
110 Description: Draw a font / support color fonts
111  The vlc currently uses an ugly font to display its data on the output
112  window, and we have a slow hack to make it outlined. Writing our own
113  font, or adding support for color fonts, would make us gain some time.
114 Status: Todo
115
116 Task: 0x26
117 Difficulty: Medium
118 Urgency: Important
119 Description: Layer 2 mono support
120  The vlc doesn't play layer 2 mono yet. We need it since a few of our
121  streams are in this audio format.
122 Status: Todo
123
124 Task: 0x25
125 Difficulty: Hard
126 Urgency: Wishlist
127 Description: MP3 support
128  The vlc cannot play MPEG1/2 layer 3 yet. It might be nice to fix that.
129 Status: Todo
130
131 Task: 0x24
132 Difficulty: Hard
133 Urgency: Normal
134 Description: Support for unencapsulated streams
135  Some streams are not encapsulated in PES/PS or TS packets, which the
136  vlc currently requires to properly decode a stream. Adding support for
137  this would require to rewrite the input code, and probably make it a
138  plugin.
139 Status: Todo
140
141 Task: 0x24
142 Difficulty: Guru
143 Urgency: Wishlist
144 Description: Ogg/Vorbis audio decoder support
145  The Ogg/Vorbis audio format is a free alternative to the patent-encumbered
146  MP3 format. The system packets are quite different than the MPEG ones, so
147  adding support for it would require a lot of code rewrite.
148 Status: Todo
149
150 Task: 0x23
151 Difficulty: Guru
152 Urgency: Normal
153 Description: Xv video output support
154  XFree 4.0 provides the Xv interface which can do hardware YUV on supported
155  hardware. Unfortunately, there doesn't seem to be much documentation
156  available.
157 Status: Todo
158
159 Task: 0x22
160 Difficulty: Medium
161 Urgency: Normal
162 Description: SDL video output support
163  The Simple DirectMedia Layer library is a generic API that provides
164  YUV acceleration on some platforms. More information can be found
165  on http://www.devolution.com/~slouken/SDL/
166 Status: Done 21 Aug 2000 (octplane)
167
168 Task: 0x21
169 Difficulty: Medium
170 Urgency: Normal
171 Description: Implement pause
172  There is no real `pause' command yet. Pausing just stops
173  displaying and sound playback, but the streams continues to
174  be decoded. One will have to do a file implementation as
175  well as a network implementation.
176 Status: Todo
177
178 Task: 0x20
179 Difficulty: Hard
180 Urgency: Important
181 Description: Rewrite input for Program Stream files
182  Currently when we read a PS file, it is first translated to TS
183  because we first had only PS support. Now time has come to get
184  rid of this ugly kludge and integrate a proper PS input.
185 Status: Todo
186
187 Task: 0x1f
188 Difficulty: Hard
189 Urgency: Normal
190 Description: DeCSS and DVD ioctls
191  The vlc needs the DVD ioctls support as well as the integration
192  of DeCSS to play DVDs properly. The person doing this should
193  probably not live in a country where DeCSS has been ruled illegal.
194 Status: Todo
195
196 Task: 0x1e
197 Difficulty: Hard
198 Urgency: Wishlist
199 Description: ASCII-art output
200  For the ones who don't know how to waste their time, they can
201  try to do an ASCII-art output plugin.
202 Status: Todo
203
204 Task: 0x1d
205 Difficulty: Hard
206 Urgency: Normal
207 Description: LPCM decoder
208  The LPCM decoder is full of stubs, it only parses the stream
209  but does not decode it. Fix this.
210 Status: Todo
211
212 Task: 0x1c
213 Difficulty: Guru
214 Urgency: Important
215 Description: Fix field pictures support
216  Some MPEG2 streams are interleaved, and the vlc does not support
217  this very well. Adding support for them requires an excellent
218  knowledge of the MPEG2 papers.
219 Status: Done 23 Aug 2000 (Meuuh)
220
221 Task: 0x1b
222 Difficulty: Hard
223 Urgency: Wishlist
224 Description: Modularize decoder
225  Make the decoder a plugin, so that two versions can coexist
226  without recompilation (MMX and non-MMX).
227 Status: Todo
228
229 Task: 0x1a
230 Difficulty: Easy
231 Urgency: Normal
232 Description: Make interface more responsive
233 Status: Todo
234  When in "waiting for stream" mode, the interface is refreshed
235  every 5 seconds. This is too long, and can be confusing for
236  the user. Make it refresh at least after a keyboard/mouse event.
237 Status: Todo
238
239 Task: 0x19
240 Difficulty: Hard
241 Urgency: Normal
242 Description: Support MP1 and MP3
243  The vlc does not support all MPEG1 audio formats yet, nor
244  does it support MPEG1/2 layer 3.
245
246 Task: 0x18
247 Difficulty: Guru
248 Urgency: Wishlist
249 Description: Split interface/video_output
250  The interface and the vout modules are too dependant, which
251  makes it impossible to run the Glide output with the Gnome
252  interface for instance. This will require a major rewrite of
253  the interface, and a solid knowledge of how the vlc internals
254  work.
255 Status: Todo
256
257 Task: 0x17
258 Difficulty: Hard
259 Urgency: Normal
260 Description: Add 24bpp YUV
261  There is no 24bpp support yet. Add it, either in MMX
262  or in C.
263 Status: Todo
264
265 Task: 0x16
266 Difficulty: Medium
267 Urgency: Important
268 Description: Fix 8bpp YUV
269  The 8bpp YUV function is broken, there is some serious
270  alpha blending, and it scales pretty badly. Fix it.
271 Status: Done 14 Aug 2000 (sam)
272
273 Task: 0x15
274 Difficulty: Medium
275 Urgency: Critical
276 Description: Fix input_file exit
277  input_file does not exit cleanly when the file is finished,
278  which makes it impossible to quit the vlc. Fix it.
279 Status: Done 21 Aug 2000 (sam)
280
281 Task: 0x14
282 Difficulty: Guru
283 Urgency: Wishlist
284 Description: Debug MPEG1 video
285  The MPEG1 support has been done, but it still crashes.
286 Status: Todo
287
288 Task: 0x13
289 Difficulty: Hard
290 Urgency: Wishlist
291 Description: Support MPEG1 timecodes
292  The vlc can parse an MPEG1 system stream, but the parsed
293  PCR values do not seem to be correct. Check what's wrong.
294 Status: Todo
295
296 Task: 0x12
297 Difficulty: Medium
298 Urgency: Important
299 Description: Fix 32bpp MMX YUV
300  The MMX 32bpp YUV function is buggy.
301 Status: Done 13 Aug 2000 (sam)
302
303 Task: 0x11
304 Difficulty: Hard
305 Urgency: Normal
306 Description: Optimize YUV scaling
307  The YUV scaling method does not seem very efficient. Perhaps
308  some CPU cycles can be gained by saving some buffers.
309 Status: Todo
310
311 Task: 0x10
312 Difficulty: Easy
313 Urgency: Normal
314 Description: Draw a vlc icon
315  The vlc needs an icon. It should render well in 48x48 but
316  can be any size.
317 Status: Todo
318
319 Task: 0x0f
320 Difficulty: Easy
321 Urgency: Normal
322 Description: Better black&white support
323  When in B&W mode, the chroma part of pictures is decoded,
324  but it would be more efficient not to decode at all when
325  the video decoder knows it does not need to.
326 Status: Todo
327
328 Task: 0x0e
329 Difficulty: Easy
330 Urgency: Wishlist
331 Description: Rename channel names
332  Channels should start from 1 (not 0) like on a VCR or TV,
333  and Channel 0 should be renamed to "Playlist" or similar.
334 Status: Todo
335
336 Task: 0x0d
337 Difficulty: Medium
338 Urgency: Important
339 Description: Framebuffer exit bug
340  When the vlc abnormally exits in framebuffer mode, it leaves
341  the console in an unusable state. This does not happen on
342  the Matrox framebuffer, but it does on the VESA one.
343 Status: Todo
344
345 Task: 0x0c
346 Difficulty: Hard
347 Urgency: Critical
348 Description: Fix synchro
349  The synchronization algorithm sucks a bit. While it is
350  quite efficient on frameskipping on slow machines, it
351  is not smart enough on fast machines and does not detect
352  when it has enough time for a frame. Perhaps a better
353  handling of the dates might help.
354 Status: Todo
355
356 Task: 0x0b
357 Difficulty: Medium
358 Urgency: Important
359 Description: Allow to force synchro
360  Add a --force-synchro option to bypass the auto-adaptative
361  algorithm present in the vlc. Options should allow displaying
362  only I frames, only I and P, or all frames, or some more
363  fancy stuff such as half the Bs.
364 Status: Done 8 Aug 2000 (sam)
365
366 Task: 0x0a
367 Difficulty: Medium
368 Urgency: Important
369 Description: Do separate packages
370  The plugins can be compiled with specific libraries, such
371  as Gnome, GGI, Esound. Putting all of them in the same
372  package would require a lot of useless dependencies, thus
373  one should do separate packages: a core "vlc" package, and
374  "vlc-fb", "vlc-ggi", "vlc-esd" packages depending on the
375  core package.
376 Status: Done 15 Aug 2000 (sam)
377
378 Task: 0x09
379 Difficulty: Easy
380 Urgency: Normal
381 Description: Get rid of dumb vlc aliases
382  When compiling the vlc, some symlinks to the main app
383  are created, such as gvlc, ggivlc, etc. Actually this
384  might confuse the user, so they should be removed,
385  except perhaps gvlc and fbvlc which follow a usual
386  naming scheme.
387 Status: Done 8 Aug 2000 (sam)
388
389 Task: 0x08
390 Difficulty: Easy
391 Urgency: Important
392 Description: Get rid of floating instructions
393  Mixing floating instructions and MMX is seldom a good idea,
394  it might be interesting to remove all floating instructions
395  in a single thread. The audio decoders are of course not
396  concerned by this task.
397 Status: Todo
398
399 Task: 0x07
400 Difficulty: Hard
401 Urgency: Critical
402 Description: Fix VDEC_SMP segfaults
403  When compiled to support SMP, the vlc segfaults. The synchro
404  code lacks locks, but there might be bugs elsewhere as well.
405 Status: Todo
406
407 Task: 0x06
408 Difficulty: Guru
409 Urgency: Important
410 Description: Optimize video parser
411  The video parser has some speed issues currently unexplained:
412  even though most functions are inlined, it keeps eating more
413  CPU than it should. This has to be investigated.
414 Status: Todo
415
416 Task: 0x05
417 Difficulty: Easy
418 Urgency: Important
419 Description: Backport vlms input
420  The vlc uses the same file input code as the vlms (VideoLAN
421  Mini Server) which has been much improved. Someone should
422  port modifications done to the vlms back to the vlc.
423 Status: Todo
424
425 Task: 0x04
426 Difficulty: Medium
427 Urgency: Normal
428 Description: Get rid of vlc.channels
429  The file vlc.channels should be removed and information
430  found in it put either into ~/.vlcrc or in another rc
431  file. Note that this file can be modified by the vlc.
432 Status: Todo
433
434 Task: 0x03
435 Difficulty: Hard
436 Urgency: Important
437 Description: Playlist API
438  Currently only files given in the command line are played,
439  one after the other. We need a smarter way to handle this,
440  through AddFile(), MoveFile(), etc. functions. input_file
441  has to be modified to support this as well.
442 Status: Todo
443
444 Task: 0x02
445 Difficulty: Medium
446 Urgency: Normal
447 Description: Better Gnome interface
448  The Gnome interface has many stubs and is actually rather
449  unfunctional. Someone should make the buttons work when
450  the appropriate hooks exist.
451 Status: Todo
452
453 Task: 0x01
454 Difficulty: Hard
455 Urgency: Wishlist
456 Description: MGA YUV
457  The Matrox acceleration for the vlc does not work yet,
458  though there are initialization routines in the code.
459 Status: Todo
460
461 Task: 0x00
462 Difficulty: Medium
463 Urgency: Wishlist
464 Description: Splash screen
465  The vlc needs a splash screen with a vlc logo, instead of
466  the "waiting for stream" message.
467 Status: Todo
468
469