6 # Difficulty values: Easy, Medium, Hard, Guru
8 # Urgency values: Wishlist, Normal, Important, Critical
13 Description: Write stream zones support
14 For random access we need to know where stream descriptors are valid
15 and reside (essentially DVD plugin). -> Meuuh
21 Description: Write subtitles and stream information in YUV coordinates
22 ... so that they can be displayed even in "overlay" mode.
28 Description: Update documentation
29 The input structures have undergone a major restructuration with
30 input-II. It might be a good idea to reflect thoses changes in the
37 Description: Write AVI input plugin
38 .avi files can use MPEG codec, if this is the case it shouldn't be
39 hard to read those files -> Meuuh
45 Description: Write ES input plugin
46 We need to be able to read .mpg video streams, or .mp* audio streams.
47 More information -> Meuuh
53 Description: Write a new buffer allocator
54 Avoid malloc()s by reusing the recently released packets. More
61 Description: Fix audio synchro
62 With some audio plugins, the audio stream is late because of buffer
63 sizes. See what's wrong and fix it.
69 Description: Make decoders dynamically loadable
75 Description: Make input plugins dynamically loadable
76 With a probe() function, and stuff...
77 Status: Done 7 Feb 2001 (sam)
82 Description: Write DVD plugin
83 We need a DVD plugin which read the device directly, calls DeCSS
84 (optional) and parse .ifo files.
85 Status: Done 8 Feb 2001 (stef)
90 Description: Write input_ext-intf.c
91 This file will provide functions which allow the interface to change
92 the pace of reading and change the position in the file.
93 Status: Done 8 Feb 2001 (Meuuh)
98 Description: Write TS support
99 The parser has already been back-ported, but it still lacks the
100 PSI parser, and currently the functions to read from the network
101 are yet to be written.
107 Description: Write input_netlist.c
108 We need an interface to create fixed-size packets (for instance
109 188 bytes or 2 kB) and avoid using the system malloc().
110 Status: Done 23 Jan 2001 (henri)
115 Description: Write input_programs.c
116 We need a centralized manner of creating new programs, es, and
117 spawning new decoders.
118 Status: Done 20 Dec 2000 (Meuuh)
123 Description: Fix the PS plugin
124 The PS plugin should be able to recover from packet loss, to
125 read MPEG-1 .mpg files, and to pre-parse the stream (if possible)
126 to build the ES table. Check what's wrong and fix it. Now.
127 Status: Done 20 Dec 2000 (Meuuh)
132 Description: Enhance intf_*Msg
133 The intf_*Msg functions could be more clever : add "mymodule
134 warning/error:" and \n automatically. The new input already
135 uses such a behaviour, so we must hurry. It might be necessary
136 to modify all messages in all modules...
137 Status: Done 20 Dec 2000 (sam)
142 Description: Fix backwards moves
143 Sometimes the frames seem to go backwards for a short period of
144 time. This is due to the output methods and is known to happen
145 with the x11 and SDL plugins.
146 Status: Done 27 Nov 2000 (Meuuh)
151 Description: Have more statistics messages displayed
152 The vlc has structures to keep track of the interesting
153 events, but there is no way to print these structures. In stats
154 mode, we should print these structures regularly, or at quit
155 time (whichever is the more convenient).
156 Status: Done 27 Nov 2000 (Meuuh)
161 Description: Separate optimizations from debug mode
162 We sometimes want to have the debug mode (which writes an
163 interesting log of debug messages) along with the compiler
164 optimizations (which allow decoding of more than 2 fps).
165 Status: Done 18 Nov 2000 (Meuuh)
170 Description: Write intf_WarnMsg and intf_StatMsg
171 We have intf_ErrMsg to display fatal errors, but warnings are
172 drowned in an ocean of unreadable intf_DbgMsg. Same for
174 Status: Done 23 Nov 2000 (Stef)
179 Description: Support SDL Overlay
180 The SDL livrary has routines to use the video board to do the YUV
181 conversion, scaling and displaying. Using them will require a
182 partial rewrite of the video_output way of handling rendering
184 Status: Done 18 Dec 2000 (bozo and oct)
189 Description: Rewrite the font display routines
190 The current font display routines aren't powerful enough. There
191 should be a way to display a big String at once, without needing
192 to compute the size of the string and its coordinates beforehand.
198 Description: Make aout eat less CPU
199 When the vlc is launched without a stream, the audio_output thread
200 eats all memory, probably because there is no msleep() when no data
201 is available in the audio_output queue.
202 Status: Done one doesn't know when by some unknown stranger
207 Description: Fix motion compensation bug
208 The motion compensation still has a small bug which can be well
209 noticed when there is a sudden color change, a few blocks remain
210 visible on the screen.
211 Status: Done 27 Aug 2000 (Meuuh)
216 Description: Enhance the interface
217 . Finish the new keyboard input interface to support
218 interfaces that allow modifiers. This will allow the SDL to run
220 . Here are some details:
221 Allow any interface to have its own set of keys:
222 - allow the 'discovery' of the main interface of the binding
223 created by each interface:
224 what key ("control-C", what action (INTF...))
225 - extend the interface by a specific struct (meta+modifier+ascii)
226 - implement an interface specific getKey function.
232 Description: Fix plugins namespace problem
233 When compiling a plugin, all symbols seem to be exported, while we
234 actually just need GetConfig and a few other things: the other
235 functions are accessed through function pointers.
236 Status: Done 10 Jan 2001 (sam)
241 Description: Fix plugin autoloading
242 At the moment, plugins to be detected are hardcoded in the code. We
243 need a better method to get all available plugins, by listing all the
244 files in selected directories.
245 Status: Done 7 Jan 2001 (sam)
250 Description: Real plugin API
251 We need some functions to register plugins, automatically detect which
252 ones are the most appropriate, as well as ways to express that plugin
253 A won't work unless plugin B is activated as well.
254 Status: Done 7 Jan 2001 (sam)
259 Description: Enable compiled-in plugins
260 Some plugins may have their place inside the main program, such as the
261 dummy plugin, or the beos plugin under BeOS. We should allow to link
262 them with the main app.
268 Description: Optimize SPU rendering
269 There is an if() in the SPU display routine to double lines when needed,
270 whiwh is rather inefficient. It should be removed and put outside
272 Status: Done 26 Aug 2000 (henri)
277 Description: SPU error recovery
278 The SPU decoder does not behave very well when a packet is missed or when
279 it gets the stream at the middle of an SPU packet. Make it more error-
281 Status: Done 26 Feb 2001 (sam)
286 Description: Shoot the TODO list on the web site
287 The TODO list on the web site hasn't been updated for months. We may
288 wonder then why the hell to we put a TODO list on the web site ? Maybe
289 we'd better shoot it in the head, that would make its suffering end.
290 Status: Done 5 Mar 2001 (sam)
295 Description: ALSA audio output support
296 ALSA is the Advanced Linux Sound Architecture and is believed to be
297 technically superior to the usual OSS support found in the Linux kernel.
298 Status: Done ( henri )
303 Description: Support for RTP
304 RTP is a transport protocol for realtime applications. MPEG1 and MPEG2
305 versions of RTP are described in RFCs 2038 and 2250. RFCs 1889 (RTP)
306 and 2508 (compressed RTP) can be interesting as well.
312 Description: Draw a font / support color fonts
313 The vlc currently uses an ugly font to display its data on the output
314 window, and we have a slow hack to make it outlined. Writing our own
315 font, or adding support for color fonts, would make us gain some time.
321 Description: Layer 2 mono support
322 The vlc doesn't play layer 2 mono yet. We need it since a few of our
323 streams are in this audio format.
324 Status: Done 18 Dec 2000 (sam)
329 Description: MP3 support
330 The vlc cannot play MPEG1/2 layer 3 yet. It might be nice to fix that.
336 Description: Support for unencapsulated streams
337 Some streams are not encapsulated in PES/PS or TS packets, which the
338 vlc currently requires to properly decode a stream. Adding support for
339 this would require to rewrite the input code, and probably make it a
346 Description: Ogg/Vorbis audio decoder support
347 The Ogg/Vorbis audio format is a free alternative to the patent-encumbered
348 MP3 format. The system packets are quite different than the MPEG ones, so
349 adding support for it would require a lot of code rewrite.
355 Description: Xv video output support
356 XFree 4.0 provides the Xv interface which can do hardware YUV on supported
357 hardware. Unfortunately, there doesn't seem to be much documentation
364 Description: SDL video output support
365 The Simple DirectMedia Layer library is a generic API that provides
366 YUV acceleration on some platforms. More information can be found
367 on http://www.devolution.com/~slouken/SDL/
368 Status: Done 21 Aug 2000 (octplane)
373 Description: Implement pause
374 There is no real `pause' command yet. Pausing just stops
375 displaying and sound playback, but the streams continues to
376 be decoded. One will have to do a file implementation as
377 well as a network implementation.
378 Status: Done 8 Feb 2001 (Meuuh)
383 Description: Rewrite input for Program Stream files
384 Currently when we read a PS file, it is first translated to TS
385 because we first had only PS support. Now time has come to get
386 rid of this ugly kludge and integrate a proper PS input.
387 Status: Done because of Input II on 5 Dec 2000 (Meuuh)
392 Description: DeCSS and DVD ioctls
393 The vlc needs the DVD ioctls support as well as the integration
394 of DeCSS to play DVDs properly. The person doing this should
395 probably not live in a country where DeCSS has been ruled illegal.
396 Status: Done 20 Jan 2001 (stef)
401 Description: ASCII-art output
402 For the ones who don't know how to waste their time, they can
403 try to do an ASCII-art output plugin.
409 Description: LPCM decoder
410 The LPCM decoder is full of stubs, it only parses the stream
411 but does not decode it. Fix this.
417 Description: Fix field pictures support
418 Some MPEG2 streams are interleaved, and the vlc does not support
419 this very well. Adding support for them requires an excellent
420 knowledge of the MPEG2 papers.
421 Status: Done 23 Aug 2000 (Meuuh)
426 Description: Modularize decoder
427 Make the decoder a plugin, so that two versions can coexist
428 without recompilation (MMX and non-MMX).
429 Status: Done 16 Jan 2001 (sam)
434 Description: Make interface more responsive
435 When in "waiting for stream" mode, the interface is refreshed
436 every 5 seconds. This is too long, and can be confusing for
437 the user. Make it refresh at least after a keyboard/mouse event.
438 Status: Done 28 Aug 2000 (oct)
443 Description: Support MP1 and MP3
444 The vlc does not support all MPEG1 audio formats yet, nor
445 does it support MPEG1/2 layer 3.
446 Status: Done 18 Dec 2000 (sam) but see 0x25
451 Description: Split interface/video_output
452 The interface and the vout modules are too dependant, which
453 makes it impossible to run the Glide output with the Gnome
454 interface for instance. This will require a major rewrite of
455 the interface, and a solid knowledge of how the vlc internals
457 Status: Done 11 Feb 2001 (sam)
462 Description: Add 24bpp YUV
463 There is no 24bpp support yet. Add it, either in MMX
470 Description: Fix 8bpp YUV
471 The 8bpp YUV function is broken, there is some serious
472 alpha blending, and it scales pretty badly. Fix it.
473 Status: Done 14 Aug 2000 (sam)
478 Description: Fix input_file exit
479 input_file does not exit cleanly when the file is finished,
480 which makes it impossible to quit the vlc. Fix it.
481 Status: Done 21 Aug 2000 (sam)
486 Description: Debug MPEG1 video
487 The MPEG1 support has been done, but it still crashes.
488 Status: Done 23 Oct 2000 (Meuuh)
493 Description: Support MPEG1 timecodes
494 The vlc can parse an MPEG1 system stream, but the parsed
495 PCR values do not seem to be correct. Check what's wrong.
496 Status: Done because of Input II on 5 Dec 2000 (Meuuh)
501 Description: Fix 32bpp MMX YUV
502 The MMX 32bpp YUV function is buggy.
503 Status: Done 13 Aug 2000 (sam)
508 Description: Optimize YUV scaling
509 The YUV scaling method does not seem very efficient. Perhaps
510 some CPU cycles can be gained by saving some buffers.
516 Description: Draw a vlc icon
517 The vlc needs an icon. It should render well in 48x48 but
524 Description: Better black&white support
525 When in B&W mode, the chroma part of pictures is decoded,
526 but it would be more efficient not to decode at all when
527 the video decoder knows it does not need to.
528 Status: Done 25 Oct 2000 (reno)
533 Description: Rename channel names
534 Channels should start from 1 (not 0) like on a VCR or TV,
535 and Channel 0 should be renamed to "Playlist" or similar.
541 Description: Framebuffer exit bug
542 When the vlc abnormally exits in framebuffer mode, it leaves
543 the console in an unusable state. This does not happen on
544 the Matrox framebuffer, but it does on the VESA one.
545 Status: Done 18 Feb 2001 (sam)
550 Description: Fix synchro
551 The synchronization algorithm sucks a bit. While it is
552 quite efficient on frameskipping on slow machines, it
553 is not smart enough on fast machines and does not detect
554 when it has enough time for a frame. Perhaps a better
555 handling of the dates might help.
556 Status: Done 13 Nov 2000 (Meuuh)
561 Description: Allow to force synchro
562 Add a --force-synchro option to bypass the auto-adaptative
563 algorithm present in the vlc. Options should allow displaying
564 only I frames, only I and P, or all frames, or some more
565 fancy stuff such as half the Bs.
566 Status: Done 8 Aug 2000 (sam)
571 Description: Do separate packages
572 The plugins can be compiled with specific libraries, such
573 as Gnome, GGI, Esound. Putting all of them in the same
574 package would require a lot of useless dependencies, thus
575 one should do separate packages: a core "vlc" package, and
576 "vlc-fb", "vlc-ggi", "vlc-esd" packages depending on the
578 Status: Done 15 Aug 2000 (sam)
583 Description: Get rid of dumb vlc aliases
584 When compiling the vlc, some symlinks to the main app
585 are created, such as gvlc, ggivlc, etc. Actually this
586 might confuse the user, so they should be removed,
587 except perhaps gvlc and fbvlc which follow a usual
589 Status: Done 8 Aug 2000 (sam)
594 Description: Get rid of floating instructions
595 Mixing floating instructions and MMX is seldom a good idea,
596 it might be interesting to remove all floating instructions
597 in a single thread. The audio decoders are of course not
598 concerned by this task.
604 Description: Fix VDEC_SMP segfaults
605 When compiled to support SMP, the vlc segfaults. The synchro
606 code lacks locks, but there might be bugs elsewhere as well.
607 Status: Done 16 Nov 2000 (Meuuh)
612 Description: Optimize video parser
613 The video parser has some speed issues currently unexplained:
614 even though most functions are inlined, it keeps eating more
615 CPU than it should. This has to be investigated.
616 Status: Done because of Input II on 5 Dec 2000 (Meuuh)
621 Description: Backport vlms input
622 The vlc uses the same file input code as the vlms (VideoLAN
623 Mini Server) which has been much improved. Someone should
624 port modifications done to the vlms back to the vlc.
625 Status: Done because of Input II on 5 Dec 2000 (Meuuh)
630 Description: Get rid of vlc.channels
631 The file vlc.channels should be removed and information
632 found in it put either into ~/.vlcrc or in another rc
633 file. Note that this file can be modified by the vlc.
639 Description: Playlist API
640 Currently only files given in the command line are played,
641 one after the other. We need a smarter way to handle this,
642 through AddFile(), MoveFile(), etc. functions. input_file
643 has to be modified to support this as well.
644 Status: Done 8 Feb 2001 (sam)
649 Description: Better Gnome interface
650 The Gnome interface has many stubs and is actually rather
651 unfunctional. Someone should make the buttons work when
652 the appropriate hooks exist.
653 Status: Done 12 Feb 2001 (sam)
659 The Matrox acceleration for the vlc does not work yet,
660 though there are initialization routines in the code.
666 Description: Splash screen
667 The vlc needs a splash screen with a vlc logo, instead of
668 the "waiting for stream" message.