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