6 # Difficulty values: Easy, Medium, Hard, Guru
8 # Urgency values: Wishlist, Normal, Important, 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)
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: Done 27 Nov 2000 (Meuuh)
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)
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
45 Status: Done 23 Nov 2000 (Stef)
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
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.
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.
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)
88 . Finish the new keyboard input interface to support
89 interfaces that allow modifiers. This will allow the SDL to run
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.
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.
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.
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.
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.
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
143 Status: Done 26 Aug 2000 (henri)
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-
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.
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.
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 )
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.
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.
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.
210 Description: MP3 support
211 The vlc cannot play MPEG1/2 layer 3 yet. It might be nice to fix that.
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
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.
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
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)
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.
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.
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.
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.
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.
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)
307 Description: Modularize decoder
308 Make the decoder a plugin, so that two versions can coexist
309 without recompilation (MMX and non-MMX).
315 Description: Make interface more responsive
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.
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.
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
343 Description: Add 24bpp YUV
344 There is no 24bpp support yet. Add it, either in MMX
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)
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)
367 Description: Debug MPEG1 video
368 The MPEG1 support has been done, but it still crashes.
369 Status: Done 23 Oct 2000 (Meuuh)
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.
382 Description: Fix 32bpp MMX YUV
383 The MMX 32bpp YUV function is buggy.
384 Status: Done 13 Aug 2000 (sam)
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.
397 Description: Draw a vlc icon
398 The vlc needs an icon. It should render well in 48x48 but
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.
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.
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.
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)
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)
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
459 Status: Done 15 Aug 2000 (sam)
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
470 Status: Done 8 Aug 2000 (sam)
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.
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)
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.
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.
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.
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.
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.
540 The Matrox acceleration for the vlc does not work yet,
541 though there are initialization routines in the code.
547 Description: Splash screen
548 The vlc needs a splash screen with a vlc logo, instead of
549 the "waiting for stream" message.