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