6 # Difficulty values: Easy, Medium, Hard, Guru
8 # Urgency values: Wishlist, Normal, Important, Critical
13 Description: Fix audio synchro
14 With some audio plugins, the audio stream is late because of buffer
15 sizes. See what's wrong and fix it.
18 # input-II tasks, from the least important to the most important
24 Description: Make decoders dynamically loadable
30 Description: Make input plugins dynamically loadable
31 With a probe() function, and stuff...
37 Description: Write DVD plugin
38 We need a DVD plugin which read the device directly, calls DeCSS
39 (optional) and parse .ifo files.
45 Description: Write input_ext-intf.c
46 This file will provide functions which allow the interface to change
47 the pace of reading and change the position in the file.
53 Description: Write TS support
54 The parser has already been back-ported, but it still lacks the
55 PSI parser, and currently the functions to read from the network
56 are yet to be written.
62 Description: Write input_netlist.c
63 We need an interface to create fixed-size packets (for instance
64 188 bytes or 2 kB) and avoid using the system malloc().
70 Description: Write input_programs.c
71 We need a centralized manner of creating new programs, es, and
72 spawning new decoders.
78 Description: Fix the PS plugin
79 The PS plugin should be able to recover from packet loss, to
80 read MPEG-1 .mpg files, and to pre-parse the stream (if possible)
81 to build the ES table. Check what's wrong and fix it. Now.
87 Description: Enhance intf_*Msg
88 The intf_*Msg functions could be more clever : add "mymodule
89 warning/error:" and \n automatically. The new input already
90 uses such a behaviour, so we must hurry. It might be necessary
91 to modify all messages in all modules...
94 # end of input-II tasks, thanks for being with us
99 Description: Fix backwards moves
100 Sometimes the frames seem to go backwards for a short period of
101 time. This is due to the output methods and is known to happen
102 with the x11 and SDL plugins.
103 Status: Done 27 Nov 2000 (Meuuh)
108 Description: Have more statistics messages displayed
109 The vlc has structures to keep track of the interesting
110 events, but there is no way to print these structures. In stats
111 mode, we should print these structures regularly, or at quit
112 time (whichever is the more convenient).
113 Status: Done 27 Nov 2000 (Meuuh)
118 Description: Separate optimizations from debug mode
119 We sometimes want to have the debug mode (which writes an
120 interesting log of debug messages) along with the compiler
121 optimizations (which allow decoding of more than 2 fps).
122 Status: Done 18 Nov 2000 (Meuuh)
127 Description: Write intf_WarnMsg and intf_StatMsg
128 We have intf_ErrMsg to display fatal errors, but warnings are
129 drowned in an ocean of unreadable intf_DbgMsg. Same for
131 Status: Done 23 Nov 2000 (Stef)
136 Description: Support SDL Overlay
137 The SDL livrary has routines to use the video board to do the YUV
138 conversion, scaling and displaying. Using them will require a
139 partial rewrite of the video_output way of handling rendering
146 Description: Rewrite the font display routines
147 The current font display routines aren't powerful enough. There
148 should be a way to display a big String at once, without needing
149 to compute the size of the string and its coordinates beforehand.
155 Description: Make aout eat less CPU
156 When the vlc is launched without a stream, the audio_output thread
157 eats all memory, probably because there is no msleep() when no data
158 is available in the audio_output queue.
164 Description: Fix motion compensation bug
165 The motion compensation still has a small bug which can be well
166 noticed when there is a sudden color change, a few blocks remain
167 visible on the screen.
168 Status: Done 27 Aug 2000 (Meuuh)
174 . Finish the new keyboard input interface to support
175 interfaces that allow modifiers. This will allow the SDL to run
177 . Here are some details:
178 Allow any interface to have its own set of keys:
179 - allow the 'discovery' of the main interface of the binding
180 created by each interface:
181 what key ("control-C", what action (INTF...))
182 - extend the interface by a specific struct (meta+modifier+ascii)
183 - implement an interface specific getKey function.
189 Description: Fix plugins namespace problem
190 When compiling a plugin, all symbols seem to be exported, while we
191 actually just need GetConfig and a few other things: the other
192 functions are accessed through function pointers.
198 Description: Fix plugin autoloading
199 At the moment, plugins to be detected are hardcoded in the code. We
200 need a better method to get all available plugins, by listing all the
201 files in selected directories.
207 Description: Real plugin API
208 We need some functions to register plugins, automatically detect which
209 ones are the most appropriate, as well as ways to express that plugin
210 A won't work unless plugin B is activated as well.
216 Description: Enable compiled-in plugins
217 Some plugins may have their place inside the main program, such as the
218 dummy plugin, or the beos plugin under BeOS. We should allow to link
219 them with the main app.
225 Description: Optimize SPU rendering
226 There is an if() in the SPU display routine to double lines when needed,
227 whiwh is rather inefficient. It should be removed and put outside
229 Status: Done 26 Aug 2000 (henri)
234 Description: SPU error recovery
235 The SPU decoder does not behave very well when a packet is missed or when
236 it gets the stream at the middle of an SPU packet. Make it more error-
243 Description: Shoot the TODO list on the web site
244 The TODO list on the web site hasn't been updated for months. We may
245 wonder then why the hell to we put a TODO list on the web site ? Maybe
246 we'd better shoot it in the head, that would make its suffering end.
252 Description: Buy a new brain for Sam
253 Sam likes to show that he is a good developer, and for a good developer
254 hexadecimal notation really rules, though nobody really needs it. In this
255 TODO list, Sam has forgotten that 0x29 + 1 != 0x30, but 0x2a ! So, please
256 do something, and send your donations to sam@via.ecp.fr. Thanks for him.
262 Description: ALSA audio output support
263 ALSA is the Advanced Linux Sound Architecture and is believed to be
264 technically superior to the usual OSS support found in the Linux kernel.
265 Status: Done ( henri )
270 Description: Support for RTP
271 RTP is a transport protocol for realtime applications. MPEG1 and MPEG2
272 versions of RTP are described in RFCs 2038 and 2250. RFCs 1889 (RTP)
273 and 2508 (compressed RTP) can be interesting as well.
279 Description: Draw a font / support color fonts
280 The vlc currently uses an ugly font to display its data on the output
281 window, and we have a slow hack to make it outlined. Writing our own
282 font, or adding support for color fonts, would make us gain some time.
288 Description: Layer 2 mono support
289 The vlc doesn't play layer 2 mono yet. We need it since a few of our
290 streams are in this audio format.
296 Description: MP3 support
297 The vlc cannot play MPEG1/2 layer 3 yet. It might be nice to fix that.
303 Description: Support for unencapsulated streams
304 Some streams are not encapsulated in PES/PS or TS packets, which the
305 vlc currently requires to properly decode a stream. Adding support for
306 this would require to rewrite the input code, and probably make it a
313 Description: Ogg/Vorbis audio decoder support
314 The Ogg/Vorbis audio format is a free alternative to the patent-encumbered
315 MP3 format. The system packets are quite different than the MPEG ones, so
316 adding support for it would require a lot of code rewrite.
322 Description: Xv video output support
323 XFree 4.0 provides the Xv interface which can do hardware YUV on supported
324 hardware. Unfortunately, there doesn't seem to be much documentation
331 Description: SDL video output support
332 The Simple DirectMedia Layer library is a generic API that provides
333 YUV acceleration on some platforms. More information can be found
334 on http://www.devolution.com/~slouken/SDL/
335 Status: Done 21 Aug 2000 (octplane)
340 Description: Implement pause
341 There is no real `pause' command yet. Pausing just stops
342 displaying and sound playback, but the streams continues to
343 be decoded. One will have to do a file implementation as
344 well as a network implementation.
350 Description: Rewrite input for Program Stream files
351 Currently when we read a PS file, it is first translated to TS
352 because we first had only PS support. Now time has come to get
353 rid of this ugly kludge and integrate a proper PS input.
359 Description: DeCSS and DVD ioctls
360 The vlc needs the DVD ioctls support as well as the integration
361 of DeCSS to play DVDs properly. The person doing this should
362 probably not live in a country where DeCSS has been ruled illegal.
368 Description: ASCII-art output
369 For the ones who don't know how to waste their time, they can
370 try to do an ASCII-art output plugin.
376 Description: LPCM decoder
377 The LPCM decoder is full of stubs, it only parses the stream
378 but does not decode it. Fix this.
384 Description: Fix field pictures support
385 Some MPEG2 streams are interleaved, and the vlc does not support
386 this very well. Adding support for them requires an excellent
387 knowledge of the MPEG2 papers.
388 Status: Done 23 Aug 2000 (Meuuh)
393 Description: Modularize decoder
394 Make the decoder a plugin, so that two versions can coexist
395 without recompilation (MMX and non-MMX).
401 Description: Make interface more responsive
403 When in "waiting for stream" mode, the interface is refreshed
404 every 5 seconds. This is too long, and can be confusing for
405 the user. Make it refresh at least after a keyboard/mouse event.
411 Description: Support MP1 and MP3
412 The vlc does not support all MPEG1 audio formats yet, nor
413 does it support MPEG1/2 layer 3.
418 Description: Split interface/video_output
419 The interface and the vout modules are too dependant, which
420 makes it impossible to run the Glide output with the Gnome
421 interface for instance. This will require a major rewrite of
422 the interface, and a solid knowledge of how the vlc internals
429 Description: Add 24bpp YUV
430 There is no 24bpp support yet. Add it, either in MMX
437 Description: Fix 8bpp YUV
438 The 8bpp YUV function is broken, there is some serious
439 alpha blending, and it scales pretty badly. Fix it.
440 Status: Done 14 Aug 2000 (sam)
445 Description: Fix input_file exit
446 input_file does not exit cleanly when the file is finished,
447 which makes it impossible to quit the vlc. Fix it.
448 Status: Done 21 Aug 2000 (sam)
453 Description: Debug MPEG1 video
454 The MPEG1 support has been done, but it still crashes.
455 Status: Done 23 Oct 2000 (Meuuh)
460 Description: Support MPEG1 timecodes
461 The vlc can parse an MPEG1 system stream, but the parsed
462 PCR values do not seem to be correct. Check what's wrong.
468 Description: Fix 32bpp MMX YUV
469 The MMX 32bpp YUV function is buggy.
470 Status: Done 13 Aug 2000 (sam)
475 Description: Optimize YUV scaling
476 The YUV scaling method does not seem very efficient. Perhaps
477 some CPU cycles can be gained by saving some buffers.
483 Description: Draw a vlc icon
484 The vlc needs an icon. It should render well in 48x48 but
491 Description: Better black&white support
492 When in B&W mode, the chroma part of pictures is decoded,
493 but it would be more efficient not to decode at all when
494 the video decoder knows it does not need to.
500 Description: Rename channel names
501 Channels should start from 1 (not 0) like on a VCR or TV,
502 and Channel 0 should be renamed to "Playlist" or similar.
508 Description: Framebuffer exit bug
509 When the vlc abnormally exits in framebuffer mode, it leaves
510 the console in an unusable state. This does not happen on
511 the Matrox framebuffer, but it does on the VESA one.
517 Description: Fix synchro
518 The synchronization algorithm sucks a bit. While it is
519 quite efficient on frameskipping on slow machines, it
520 is not smart enough on fast machines and does not detect
521 when it has enough time for a frame. Perhaps a better
522 handling of the dates might help.
523 Status: Done 13 Nov 2000 (Meuuh)
528 Description: Allow to force synchro
529 Add a --force-synchro option to bypass the auto-adaptative
530 algorithm present in the vlc. Options should allow displaying
531 only I frames, only I and P, or all frames, or some more
532 fancy stuff such as half the Bs.
533 Status: Done 8 Aug 2000 (sam)
538 Description: Do separate packages
539 The plugins can be compiled with specific libraries, such
540 as Gnome, GGI, Esound. Putting all of them in the same
541 package would require a lot of useless dependencies, thus
542 one should do separate packages: a core "vlc" package, and
543 "vlc-fb", "vlc-ggi", "vlc-esd" packages depending on the
545 Status: Done 15 Aug 2000 (sam)
550 Description: Get rid of dumb vlc aliases
551 When compiling the vlc, some symlinks to the main app
552 are created, such as gvlc, ggivlc, etc. Actually this
553 might confuse the user, so they should be removed,
554 except perhaps gvlc and fbvlc which follow a usual
556 Status: Done 8 Aug 2000 (sam)
561 Description: Get rid of floating instructions
562 Mixing floating instructions and MMX is seldom a good idea,
563 it might be interesting to remove all floating instructions
564 in a single thread. The audio decoders are of course not
565 concerned by this task.
571 Description: Fix VDEC_SMP segfaults
572 When compiled to support SMP, the vlc segfaults. The synchro
573 code lacks locks, but there might be bugs elsewhere as well.
574 Status: Done 16 Nov 2000 (Meuuh)
579 Description: Optimize video parser
580 The video parser has some speed issues currently unexplained:
581 even though most functions are inlined, it keeps eating more
582 CPU than it should. This has to be investigated.
588 Description: Backport vlms input
589 The vlc uses the same file input code as the vlms (VideoLAN
590 Mini Server) which has been much improved. Someone should
591 port modifications done to the vlms back to the vlc.
597 Description: Get rid of vlc.channels
598 The file vlc.channels should be removed and information
599 found in it put either into ~/.vlcrc or in another rc
600 file. Note that this file can be modified by the vlc.
606 Description: Playlist API
607 Currently only files given in the command line are played,
608 one after the other. We need a smarter way to handle this,
609 through AddFile(), MoveFile(), etc. functions. input_file
610 has to be modified to support this as well.
616 Description: Better Gnome interface
617 The Gnome interface has many stubs and is actually rather
618 unfunctional. Someone should make the buttons work when
619 the appropriate hooks exist.
626 The Matrox acceleration for the vlc does not work yet,
627 though there are initialization routines in the code.
633 Description: Splash screen
634 The vlc needs a splash screen with a vlc logo, instead of
635 the "waiting for stream" message.