6 # Difficulty values: Easy, Medium, Hard, Guru
8 # Urgency values: Wishlist, Normal, Important, Critical
13 Description: All-in-one interface window
14 Find a way for the interface plugin to provide video output capabilities
15 and have it display the stream in the same window.
21 Description: Win32 port
22 Win32 is probably the most common desktop platform, we should support it
23 as well. Besides, most students at Centrale use Windows and VideoLAN was
24 originally designed for them.
30 Description: Infrared support
31 Write a plugin which listens to the infrared port and sends appropriate
32 commands to the application. This can either be an interface plugin, or,
33 preferably, a new kind of interface-agnostic "command" plugin.
39 Description: Fix the FreeBSD port
40 The FreeBSD port of vlc doesn't run, probably because of a pthread
41 issue. This should be investigated.
47 Description: Share stream information between vlc and vls
48 vls should send misc TS packets to let us know what the stream PID
49 contain, such as the language, or the subtitle palette.
55 Description: Cope with vls/vlc clock jitter
56 The internal clocks of the server and the client are not assured to be
57 in perfect synchronization, which may be annoying when playing a movie.
58 Reduce this jitter by using a well-chosen filter.
59 Status: Done 1 May 2001 (henri)
64 Description: Language and subtitles selection in network input
65 The vls will probably have to be modified as well.
71 Description: Full DVD navigation
72 Once the core DVD navigation features are ready (see item 0x52), port the
73 interface and video output modules so that they can handle it.
79 Description: XVideo video output
80 XVideo is reported to work a bit better than the SDL wrapper on some
81 configurations. Modify the X11 plugin so that it supports XVideo.
82 Status: Done 1 Apr 2001 (shane)
87 Description: Video output IV
88 The new video output should support subtitles both in software and hardware
89 YUV (see item 0x4d). One should also care about XVideo buffers, there is a
90 way to directly decode into them, which would improve performances.
96 Description: Hardware AC3 decoding
97 Some soundcards directly grok Dolby AC3. This would spare a lot of CPU time.
103 Description: Fix AC3 decoder
104 The AC3 decoder still has a few quality issues; fix them, and try to add
105 MMX support to it as well.
111 Description: DVD navigation core features
112 We need an interpreter for the DVD virtual machine to make it easier to
119 Description: Better subtitle color handling
120 The subtitle palette is pretty ugly for the moment, since we don't parse
121 the color information. Find it in the IFO file and pass the information to
128 Description: Multi-angle multi-language support
129 Some DVDs have several languages encoded in the same video stream, we
130 need to properly parse them.
131 Status: Done 22 Apr 2001 (stef)
136 Description: Fix all known DVD playback issues
137 A few DVDs are still reported not to work at all. Try to find what is
138 causing this, have a more robust DVD input, and list all discs reported
139 to work flawlessly to prevent bug regression.
145 Description: Write stream zones support
146 For random access we need to know where stream descriptors are valid
147 and reside (essentially DVD plugin). -> Meuuh
153 Description: Write subtitles and stream information in YUV coordinates
154 ... so that they can be displayed even in "overlay" mode.
160 Description: Update documentation
161 The input structures have undergone a major restructuration with
162 input-II. It might be a good idea to reflect thoses changes in the
169 Description: Write AVI input plugin
170 .avi files can use MPEG codec, if this is the case it shouldn't be
171 hard to read those files -> Meuuh
177 Description: Write ES input plugin
178 We need to be able to read .mpg video streams, or .mp* audio streams.
179 More information -> Meuuh
185 Description: Write a new buffer allocator
186 Avoid malloc()s by reusing the recently released packets. More
188 Status: Done 16 Apr 2001 (asmax)
193 Description: Fix audio synchro
194 With some audio plugins, the audio stream is late because of buffer
195 sizes. See what's wrong and fix it.
201 Description: Make decoders dynamically loadable
207 Description: Make input plugins dynamically loadable
208 With a probe() function, and stuff...
209 Status: Done 7 Feb 2001 (sam)
214 Description: Write DVD plugin
215 We need a DVD plugin which read the device directly, calls DeCSS
216 (optional) and parse .ifo files.
217 Status: Done 8 Feb 2001 (stef)
222 Description: Write input_ext-intf.c
223 This file will provide functions which allow the interface to change
224 the pace of reading and change the position in the file.
225 Status: Done 8 Feb 2001 (Meuuh)
230 Description: Write TS support
231 The parser has already been back-ported, but it still lacks the
232 PSI parser, and currently the functions to read from the network
233 are yet to be written.
234 Status: Done 7 Mar 2001 (henri)
239 Description: Write input_netlist.c
240 We need an interface to create fixed-size packets (for instance
241 188 bytes or 2 kB) and avoid using the system malloc().
242 Status: Done 23 Jan 2001 (henri)
247 Description: Write input_programs.c
248 We need a centralized manner of creating new programs, es, and
249 spawning new decoders.
250 Status: Done 20 Dec 2000 (Meuuh)
255 Description: Fix the PS plugin
256 The PS plugin should be able to recover from packet loss, to
257 read MPEG-1 .mpg files, and to pre-parse the stream (if possible)
258 to build the ES table. Check what's wrong and fix it. Now.
259 Status: Done 20 Dec 2000 (Meuuh)
264 Description: Enhance intf_*Msg
265 The intf_*Msg functions could be more clever : add "mymodule
266 warning/error:" and \n automatically. The new input already
267 uses such a behaviour, so we must hurry. It might be necessary
268 to modify all messages in all modules...
269 Status: Done 20 Dec 2000 (sam)
274 Description: Fix backwards moves
275 Sometimes the frames seem to go backwards for a short period of
276 time. This is due to the output methods and is known to happen
277 with the x11 and SDL plugins.
278 Status: Done 27 Nov 2000 (Meuuh)
283 Description: Have more statistics messages displayed
284 The vlc has structures to keep track of the interesting
285 events, but there is no way to print these structures. In stats
286 mode, we should print these structures regularly, or at quit
287 time (whichever is the more convenient).
288 Status: Done 27 Nov 2000 (Meuuh)
293 Description: Separate optimizations from debug mode
294 We sometimes want to have the debug mode (which writes an
295 interesting log of debug messages) along with the compiler
296 optimizations (which allow decoding of more than 2 fps).
297 Status: Done 18 Nov 2000 (Meuuh)
302 Description: Write intf_WarnMsg and intf_StatMsg
303 We have intf_ErrMsg to display fatal errors, but warnings are
304 drowned in an ocean of unreadable intf_DbgMsg. Same for
306 Status: Done 23 Nov 2000 (Stef)
311 Description: Support SDL Overlay
312 The SDL livrary has routines to use the video board to do the YUV
313 conversion, scaling and displaying. Using them will require a
314 partial rewrite of the video_output way of handling rendering
316 Status: Done 18 Dec 2000 (bozo and oct)
321 Description: Rewrite the font display routines
322 The current font display routines aren't powerful enough. There
323 should be a way to display a big String at once, without needing
324 to compute the size of the string and its coordinates beforehand.
330 Description: Make aout eat less CPU
331 When the vlc is launched without a stream, the audio_output thread
332 eats all memory, probably because there is no msleep() when no data
333 is available in the audio_output queue.
339 Description: Fix motion compensation bug
340 The motion compensation still has a small bug which can be well
341 noticed when there is a sudden color change, a few blocks remain
342 visible on the screen.
343 Status: Done 27 Aug 2000 (Meuuh)
348 Description: Enhance the interface
349 . Finish the new keyboard input interface to support
350 interfaces that allow modifiers. This will allow the SDL to run
352 . Here are some details:
353 Allow any interface to have its own set of keys:
354 - allow the 'discovery' of the main interface of the binding
355 created by each interface:
356 what key ("control-C", what action (INTF...))
357 - extend the interface by a specific struct (meta+modifier+ascii)
358 - implement an interface specific getKey function.
364 Description: Fix plugins namespace problem
365 When compiling a plugin, all symbols seem to be exported, while we
366 actually just need GetConfig and a few other things: the other
367 functions are accessed through function pointers.
368 Status: Done 10 Jan 2001 (sam)
373 Description: Fix plugin autoloading
374 At the moment, plugins to be detected are hardcoded in the code. We
375 need a better method to get all available plugins, by listing all the
376 files in selected directories.
377 Status: Done 7 Jan 2001 (sam)
382 Description: Real plugin API
383 We need some functions to register plugins, automatically detect which
384 ones are the most appropriate, as well as ways to express that plugin
385 A won't work unless plugin B is activated as well.
386 Status: Done 7 Jan 2001 (sam)
391 Description: Enable compiled-in plugins
392 Some plugins may have their place inside the main program, such as the
393 dummy plugin, or the beos plugin under BeOS. We should allow to link
394 them with the main app.
395 Status: Done 15 Apr 2001 (sam)
400 Description: Optimize SPU rendering
401 There is an if() in the SPU display routine to double lines when needed,
402 whiwh is rather inefficient. It should be removed and put outside
404 Status: Done 26 Aug 2000 (henri)
409 Description: SPU error recovery
410 The SPU decoder does not behave very well when a packet is missed or when
411 it gets the stream at the middle of an SPU packet. Make it more error-
413 Status: Done 26 Feb 2001 (sam)
418 Description: Shoot the TODO list on the web site
419 The TODO list on the web site hasn't been updated for months. We may
420 wonder then why the hell to we put a TODO list on the web site ? Maybe
421 we'd better shoot it in the head, that would make its suffering end.
422 Status: Done 5 Mar 2001 (sam)
427 Description: ALSA audio output support
428 ALSA is the Advanced Linux Sound Architecture and is believed to be
429 technically superior to the usual OSS support found in the Linux kernel.
435 Description: Support for RTP
436 RTP is a transport protocol for realtime applications. MPEG1 and MPEG2
437 versions of RTP are described in RFCs 2038 and 2250. RFCs 1889 (RTP)
438 and 2508 (compressed RTP) can be interesting as well.
444 Description: Draw a font / support color fonts
445 The vlc currently uses an ugly font to display its data on the output
446 window, and we have a slow hack to make it outlined. Writing our own
447 font, or adding support for color fonts, would make us gain some time.
453 Description: Layer 2 mono support
454 The vlc doesn't play layer 2 mono yet. We need it since a few of our
455 streams are in this audio format.
456 Status: Done 18 Dec 2000 (sam)
461 Description: MP3 support
462 The vlc cannot play MPEG1/2 layer 3 yet. It might be nice to fix that.
468 Description: Support for unencapsulated streams
469 Some streams are not encapsulated in PES/PS or TS packets, which the
470 vlc currently requires to properly decode a stream. Adding support for
471 this would require to rewrite the input code, and probably make it a
478 Description: Ogg/Vorbis audio decoder support
479 The Ogg/Vorbis audio format is a free alternative to the patent-encumbered
480 MP3 format. The system packets are quite different than the MPEG ones, so
481 adding support for it would require a lot of code rewrite.
487 Description: Xv video output support
488 XFree 4.0 provides the Xv interface which can do hardware YUV on supported
489 hardware. Unfortunately, there doesn't seem to be much documentation
491 Status: Done 1 Apr 2001 (shane)
496 Description: SDL video output support
497 The Simple DirectMedia Layer library is a generic API that provides
498 YUV acceleration on some platforms. More information can be found
499 on http://www.devolution.com/~slouken/SDL/
500 Status: Done 21 Aug 2000 (octplane)
505 Description: Implement pause
506 There is no real `pause' command yet. Pausing just stops
507 displaying and sound playback, but the streams continues to
508 be decoded. One will have to do a file implementation as
509 well as a network implementation.
510 Status: Done 8 Feb 2001 (Meuuh)
515 Description: Rewrite input for Program Stream files
516 Currently when we read a PS file, it is first translated to TS
517 because we first had only PS support. Now time has come to get
518 rid of this ugly kludge and integrate a proper PS input.
519 Status: Done 5 Dec 2000 (Meuuh) because of Input II
524 Description: DeCSS and DVD ioctls
525 The vlc needs the DVD ioctls support as well as the integration
526 of DeCSS to play DVDs properly. The person doing this should
527 probably not live in a country where DeCSS has been ruled illegal.
528 Status: Done 20 Jan 2001 (stef)
533 Description: ASCII-art output
534 For the ones who don't know how to waste their time, they can
535 try to do an ASCII-art output plugin.
541 Description: LPCM decoder
542 The LPCM decoder is full of stubs, it only parses the stream
543 but does not decode it. Fix this.
544 Status: Done 12 Jun 2001 (henri)
549 Description: Fix field pictures support
550 Some MPEG2 streams are interleaved, and the vlc does not support
551 this very well. Adding support for them requires an excellent
552 knowledge of the MPEG2 papers.
553 Status: Done 23 Aug 2000 (Meuuh)
558 Description: Modularize decoder
559 Make the decoder a plugin, so that two versions can coexist
560 without recompilation (MMX and non-MMX).
561 Status: Done 16 Jan 2001 (sam)
566 Description: Make interface more responsive
567 When in "waiting for stream" mode, the interface is refreshed
568 every 5 seconds. This is too long, and can be confusing for
569 the user. Make it refresh at least after a keyboard/mouse event.
570 Status: Done 28 Aug 2000 (oct)
575 Description: Support MP1 and MP3
576 The vlc does not support all MPEG1 audio formats yet, nor
577 does it support MPEG1/2 layer 3.
578 Status: Done 18 Dec 2000 (sam) but see 0x25
583 Description: Split interface/video_output
584 The interface and the vout modules are too dependant, which
585 makes it impossible to run the Glide output with the Gnome
586 interface for instance. This will require a major rewrite of
587 the interface, and a solid knowledge of how the vlc internals
589 Status: Done 11 Feb 2001 (sam)
594 Description: Add 24bpp YUV
595 There is no 24bpp support yet. Add it, either in MMX
602 Description: Fix 8bpp YUV
603 The 8bpp YUV function is broken, there is some serious
604 alpha blending, and it scales pretty badly. Fix it.
605 Status: Done 14 Aug 2000 (sam)
610 Description: Fix input_file exit
611 input_file does not exit cleanly when the file is finished,
612 which makes it impossible to quit the vlc. Fix it.
613 Status: Done 21 Aug 2000 (sam)
618 Description: Debug MPEG1 video
619 The MPEG1 support has been done, but it still crashes.
620 Status: Done 23 Oct 2000 (Meuuh)
625 Description: Support MPEG1 timecodes
626 The vlc can parse an MPEG1 system stream, but the parsed
627 PCR values do not seem to be correct. Check what's wrong.
628 Status: Done 5 Dec 2000 (Meuuh) because of Input II
633 Description: Fix 32bpp MMX YUV
634 The MMX 32bpp YUV function is buggy.
635 Status: Done 13 Aug 2000 (sam)
640 Description: Optimize YUV scaling
641 The YUV scaling method does not seem very efficient. Perhaps
642 some CPU cycles can be gained by saving some buffers.
648 Description: Draw a vlc icon
649 The vlc needs an icon. It should render well in 48x48 but
651 Status: Done 11 Apr 2001 (sam)
656 Description: Better black&white support
657 When in B&W mode, the chroma part of pictures is decoded,
658 but it would be more efficient not to decode at all when
659 the video decoder knows it does not need to.
660 Status: Done 25 Oct 2000 (reno)
665 Description: Rename channel names
666 Channels should start from 1 (not 0) like on a VCR or TV,
667 and Channel 0 should be renamed to "Playlist" or similar.
673 Description: Framebuffer exit bug
674 When the vlc abnormally exits in framebuffer mode, it leaves
675 the console in an unusable state. This does not happen on
676 the Matrox framebuffer, but it does on the VESA one.
677 Status: Done 18 Feb 2001 (sam)
682 Description: Fix synchro
683 The synchronization algorithm sucks a bit. While it is
684 quite efficient on frameskipping on slow machines, it
685 is not smart enough on fast machines and does not detect
686 when it has enough time for a frame. Perhaps a better
687 handling of the dates might help.
688 Status: Done 13 Nov 2000 (Meuuh)
693 Description: Allow to force synchro
694 Add a --force-synchro option to bypass the auto-adaptative
695 algorithm present in the vlc. Options should allow displaying
696 only I frames, only I and P, or all frames, or some more
697 fancy stuff such as half the Bs.
698 Status: Done 8 Aug 2000 (sam)
703 Description: Do separate packages
704 The plugins can be compiled with specific libraries, such
705 as Gnome, GGI, Esound. Putting all of them in the same
706 package would require a lot of useless dependencies, thus
707 one should do separate packages: a core "vlc" package, and
708 "vlc-fb", "vlc-ggi", "vlc-esd" packages depending on the
710 Status: Done 15 Aug 2000 (sam)
715 Description: Get rid of dumb vlc aliases
716 When compiling the vlc, some symlinks to the main app
717 are created, such as gvlc, ggivlc, etc. Actually this
718 might confuse the user, so they should be removed,
719 except perhaps gvlc and fbvlc which follow a usual
721 Status: Done 8 Aug 2000 (sam)
726 Description: Get rid of floating instructions
727 Mixing floating instructions and MMX is seldom a good idea,
728 it might be interesting to remove all floating instructions
729 in a single thread. The audio decoders are of course not
730 concerned by this task.
736 Description: Fix VDEC_SMP segfaults
737 When compiled to support SMP, the vlc segfaults. The synchro
738 code lacks locks, but there might be bugs elsewhere as well.
739 Status: Done 16 Nov 2000 (Meuuh)
744 Description: Optimize video parser
745 The video parser has some speed issues currently unexplained:
746 even though most functions are inlined, it keeps eating more
747 CPU than it should. This has to be investigated.
748 Status: Done 5 Dec 2000 (Meuuh) because of Input II
753 Description: Backport vlms input
754 The vlc uses the same file input code as the vlms (VideoLAN
755 Mini Server) which has been much improved. Someone should
756 port modifications done to the vlms back to the vlc.
757 Status: Done 5 Dec 2000 (Meuuh) because of Input II
762 Description: Get rid of vlc.channels
763 The file vlc.channels should be removed and information
764 found in it put either into ~/.vlcrc or in another rc
765 file. Note that this file can be modified by the vlc.
771 Description: Playlist API
772 Currently only files given in the command line are played,
773 one after the other. We need a smarter way to handle this,
774 through AddFile(), MoveFile(), etc. functions. input_file
775 has to be modified to support this as well.
776 Status: Done 8 Feb 2001 (sam)
781 Description: Better Gnome interface
782 The Gnome interface has many stubs and is actually rather
783 unfunctional. Someone should make the buttons work when
784 the appropriate hooks exist.
785 Status: Done 12 Feb 2001 (sam)
791 The Matrox acceleration for the vlc does not work yet,
792 though there are initialization routines in the code.
798 Description: Splash screen
799 The vlc needs a splash screen with a vlc logo, instead of
800 the "waiting for stream" message.