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.
25 Status: Done 26 Apr 2001 (gbazin)
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.
34 Status: Done 6 Feb 2002 (Sigmund Augdal)
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.
42 Status: Done 19 Jul 2001 (Øyvind Kolbu <oyvindk@world-online.no>)
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.
91 Status: Done 9 Dec 2001 (sam)
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.
106 Status: Done 15 June 2001 (reno)
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
123 Status: Done 15 Mar 2002 (sam)
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).
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
164 Status: Done 16 Jul 2001 (Meuuh)
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 Status: Done 27 Jun 2001 (Meuuh)
184 Description: Write a new buffer allocator
185 Avoid malloc()s by reusing the recently released packets. More
187 Status: Done 16 Apr 2001 (asmax)
192 Description: Fix audio synchro
193 With some audio plugins, the audio stream is late because of buffer
194 sizes. See what's wrong and fix it.
195 Status: Done 12 July 2001 (reno)
200 Description: Make decoders dynamically loadable
201 Status: Done 05 October 2001 (henri)
206 Description: Make input plugins dynamically loadable
207 With a probe() function, and stuff...
208 Status: Done 7 Feb 2001 (sam)
213 Description: Write DVD plugin
214 We need a DVD plugin which read the device directly, calls DeCSS
215 (optional) and parse .ifo files.
216 Status: Done 8 Feb 2001 (stef)
221 Description: Write input_ext-intf.c
222 This file will provide functions which allow the interface to change
223 the pace of reading and change the position in the file.
224 Status: Done 8 Feb 2001 (Meuuh)
229 Description: Write TS support
230 The parser has already been back-ported, but it still lacks the
231 PSI parser, and currently the functions to read from the network
232 are yet to be written.
233 Status: Done 7 Mar 2001 (henri)
238 Description: Write input_netlist.c
239 We need an interface to create fixed-size packets (for instance
240 188 bytes or 2 kB) and avoid using the system malloc().
241 Status: Done 23 Jan 2001 (henri)
246 Description: Write input_programs.c
247 We need a centralized manner of creating new programs, es, and
248 spawning new decoders.
249 Status: Done 20 Dec 2000 (Meuuh)
254 Description: Fix the PS plugin
255 The PS plugin should be able to recover from packet loss, to
256 read MPEG-1 .mpg files, and to pre-parse the stream (if possible)
257 to build the ES table. Check what's wrong and fix it. Now.
258 Status: Done 20 Dec 2000 (Meuuh)
263 Description: Enhance intf_*Msg
264 The intf_*Msg functions could be more clever : add "mymodule
265 warning/error:" and \n automatically. The new input already
266 uses such a behaviour, so we must hurry. It might be necessary
267 to modify all messages in all modules...
268 Status: Done 20 Dec 2000 (sam)
273 Description: Fix backwards moves
274 Sometimes the frames seem to go backwards for a short period of
275 time. This is due to the output methods and is known to happen
276 with the x11 and SDL plugins.
277 Status: Done 27 Nov 2000 (Meuuh)
282 Description: Have more statistics messages displayed
283 The vlc has structures to keep track of the interesting
284 events, but there is no way to print these structures. In stats
285 mode, we should print these structures regularly, or at quit
286 time (whichever is the more convenient).
287 Status: Done 27 Nov 2000 (Meuuh)
292 Description: Separate optimizations from debug mode
293 We sometimes want to have the debug mode (which writes an
294 interesting log of debug messages) along with the compiler
295 optimizations (which allow decoding of more than 2 fps).
296 Status: Done 18 Nov 2000 (Meuuh)
301 Description: Write intf_WarnMsg and intf_StatMsg
302 We have intf_ErrMsg to display fatal errors, but warnings are
303 drowned in an ocean of unreadable intf_DbgMsg. Same for
305 Status: Done 23 Nov 2000 (Stef)
310 Description: Support SDL Overlay
311 The SDL livrary has routines to use the video board to do the YUV
312 conversion, scaling and displaying. Using them will require a
313 partial rewrite of the video_output way of handling rendering
315 Status: Done 18 Dec 2000 (bozo and oct)
320 Description: Rewrite the font display routines
321 The current font display routines aren't powerful enough. There
322 should be a way to display a big String at once, without needing
323 to compute the size of the string and its coordinates beforehand.
329 Description: Make aout eat less CPU
330 When the vlc is launched without a stream, the audio_output thread
331 eats all memory, probably because there is no msleep() when no data
332 is available in the audio_output queue.
338 Description: Fix motion compensation bug
339 The motion compensation still has a small bug which can be well
340 noticed when there is a sudden color change, a few blocks remain
341 visible on the screen.
342 Status: Done 27 Aug 2000 (Meuuh)
347 Description: Enhance the interface
348 . Finish the new keyboard input interface to support
349 interfaces that allow modifiers. This will allow the SDL to run
351 . Here are some details:
352 Allow any interface to have its own set of keys:
353 - allow the 'discovery' of the main interface of the binding
354 created by each interface:
355 what key ("control-C", what action (INTF...))
356 - extend the interface by a specific struct (meta+modifier+ascii)
357 - implement an interface specific getKey function.
363 Description: Fix plugins namespace problem
364 When compiling a plugin, all symbols seem to be exported, while we
365 actually just need GetConfig and a few other things: the other
366 functions are accessed through function pointers.
367 Status: Done 10 Jan 2001 (sam)
372 Description: Fix plugin autoloading
373 At the moment, plugins to be detected are hardcoded in the code. We
374 need a better method to get all available plugins, by listing all the
375 files in selected directories.
376 Status: Done 7 Jan 2001 (sam)
381 Description: Real plugin API
382 We need some functions to register plugins, automatically detect which
383 ones are the most appropriate, as well as ways to express that plugin
384 A won't work unless plugin B is activated as well.
385 Status: Done 7 Jan 2001 (sam)
390 Description: Enable compiled-in plugins
391 Some plugins may have their place inside the main program, such as the
392 dummy plugin, or the beos plugin under BeOS. We should allow to link
393 them with the main app.
394 Status: Done 15 Apr 2001 (sam)
399 Description: Optimize SPU rendering
400 There is an if() in the SPU display routine to double lines when needed,
401 whiwh is rather inefficient. It should be removed and put outside
403 Status: Done 26 Aug 2000 (henri)
408 Description: SPU error recovery
409 The SPU decoder does not behave very well when a packet is missed or when
410 it gets the stream at the middle of an SPU packet. Make it more error-
412 Status: Done 26 Feb 2001 (sam)
417 Description: Shoot the TODO list on the web site
418 The TODO list on the web site hasn't been updated for months. We may
419 wonder then why the hell to we put a TODO list on the web site ? Maybe
420 we'd better shoot it in the head, that would make its suffering end.
421 Status: Done 5 Mar 2001 (sam)
426 Description: ALSA audio output support
427 ALSA is the Advanced Linux Sound Architecture and is believed to be
428 technically superior to the usual OSS support found in the Linux kernel.
434 Description: Support for RTP
435 RTP is a transport protocol for realtime applications. MPEG1 and MPEG2
436 versions of RTP are described in RFCs 2038 and 2250. RFCs 1889 (RTP)
437 and 2508 (compressed RTP) can be interesting as well.
443 Description: Draw a font / support color fonts
444 The vlc currently uses an ugly font to display its data on the output
445 window, and we have a slow hack to make it outlined. Writing our own
446 font, or adding support for color fonts, would make us gain some time.
452 Description: Layer 2 mono support
453 The vlc doesn't play layer 2 mono yet. We need it since a few of our
454 streams are in this audio format.
455 Status: Done 18 Dec 2000 (sam)
460 Description: MP3 support
461 The vlc cannot play MPEG1/2 layer 3 yet. It might be nice to fix that.
467 Description: Support for unencapsulated streams
468 Some streams are not encapsulated in PES/PS or TS packets, which the
469 vlc currently requires to properly decode a stream. Adding support for
470 this would require to rewrite the input code, and probably make it a
472 Status: Done 1 Mar 2002 (Meuuh)
477 Description: Ogg/Vorbis audio decoder support
478 The Ogg/Vorbis audio format is a free alternative to the patent-encumbered
479 MP3 format. The system packets are quite different than the MPEG ones, so
480 adding support for it would require a lot of code rewrite.
486 Description: Xv video output support
487 XFree 4.0 provides the Xv interface which can do hardware YUV on supported
488 hardware. Unfortunately, there doesn't seem to be much documentation
490 Status: Done 1 Apr 2001 (shane)
495 Description: SDL video output support
496 The Simple DirectMedia Layer library is a generic API that provides
497 YUV acceleration on some platforms. More information can be found
498 on http://www.devolution.com/~slouken/SDL/
499 Status: Done 21 Aug 2000 (octplane)
504 Description: Implement pause
505 There is no real `pause' command yet. Pausing just stops
506 displaying and sound playback, but the streams continues to
507 be decoded. One will have to do a file implementation as
508 well as a network implementation.
509 Status: Done 8 Feb 2001 (Meuuh)
514 Description: Rewrite input for Program Stream files
515 Currently when we read a PS file, it is first translated to TS
516 because we first had only PS support. Now time has come to get
517 rid of this ugly kludge and integrate a proper PS input.
518 Status: Done 5 Dec 2000 (Meuuh) because of Input II
523 Description: DeCSS and DVD ioctls
524 The vlc needs the DVD ioctls support as well as the integration
525 of DeCSS to play DVDs properly. The person doing this should
526 probably not live in a country where DeCSS has been ruled illegal.
527 Status: Done 20 Jan 2001 (stef)
532 Description: ASCII-art output
533 For the ones who don't know how to waste their time, they can
534 try to do an ASCII-art output plugin.
535 Status: Done 19 Mar 2002 (Sigmund Augdal)
540 Description: LPCM decoder
541 The LPCM decoder is full of stubs, it only parses the stream
542 but does not decode it. Fix this.
543 Status: Done 12 Jun 2001 (henri)
548 Description: Fix field pictures support
549 Some MPEG2 streams are interleaved, and the vlc does not support
550 this very well. Adding support for them requires an excellent
551 knowledge of the MPEG2 papers.
552 Status: Done 23 Aug 2000 (Meuuh)
557 Description: Modularize decoder
558 Make the decoder a plugin, so that two versions can coexist
559 without recompilation (MMX and non-MMX).
560 Status: Done 16 Jan 2001 (sam)
565 Description: Make interface more responsive
566 When in "waiting for stream" mode, the interface is refreshed
567 every 5 seconds. This is too long, and can be confusing for
568 the user. Make it refresh at least after a keyboard/mouse event.
569 Status: Done 28 Aug 2000 (oct)
574 Description: Support MP1 and MP3
575 The vlc does not support all MPEG1 audio formats yet, nor
576 does it support MPEG1/2 layer 3.
577 Status: Done 18 Dec 2000 (sam) but see 0x25
582 Description: Split interface/video_output
583 The interface and the vout modules are too dependant, which
584 makes it impossible to run the Glide output with the Gnome
585 interface for instance. This will require a major rewrite of
586 the interface, and a solid knowledge of how the vlc internals
588 Status: Done 11 Feb 2001 (sam)
593 Description: Add 24bpp YUV
594 There is no 24bpp support yet. Add it, either in MMX
596 Status: Done 17 Mar 2002 (sam)
601 Description: Fix 8bpp YUV
602 The 8bpp YUV function is broken, there is some serious
603 alpha blending, and it scales pretty badly. Fix it.
604 Status: Done 14 Aug 2000 (sam)
609 Description: Fix input_file exit
610 input_file does not exit cleanly when the file is finished,
611 which makes it impossible to quit the vlc. Fix it.
612 Status: Done 21 Aug 2000 (sam)
617 Description: Debug MPEG1 video
618 The MPEG1 support has been done, but it still crashes.
619 Status: Done 23 Oct 2000 (Meuuh)
624 Description: Support MPEG1 timecodes
625 The vlc can parse an MPEG1 system stream, but the parsed
626 PCR values do not seem to be correct. Check what's wrong.
627 Status: Done 5 Dec 2000 (Meuuh) because of Input II
632 Description: Fix 32bpp MMX YUV
633 The MMX 32bpp YUV function is buggy.
634 Status: Done 13 Aug 2000 (sam)
639 Description: Optimize YUV scaling
640 The YUV scaling method does not seem very efficient. Perhaps
641 some CPU cycles can be gained by saving some buffers.
647 Description: Draw a vlc icon
648 The vlc needs an icon. It should render well in 48x48 but
650 Status: Done 11 Apr 2001 (sam)
655 Description: Better black&white support
656 When in B&W mode, the chroma part of pictures is decoded,
657 but it would be more efficient not to decode at all when
658 the video decoder knows it does not need to.
659 Status: Done 25 Oct 2000 (reno)
664 Description: Rename channel names
665 Channels should start from 1 (not 0) like on a VCR or TV,
666 and Channel 0 should be renamed to "Playlist" or similar.
672 Description: Framebuffer exit bug
673 When the vlc abnormally exits in framebuffer mode, it leaves
674 the console in an unusable state. This does not happen on
675 the Matrox framebuffer, but it does on the VESA one.
676 Status: Done 18 Feb 2001 (sam)
681 Description: Fix synchro
682 The synchronization algorithm sucks a bit. While it is
683 quite efficient on frameskipping on slow machines, it
684 is not smart enough on fast machines and does not detect
685 when it has enough time for a frame. Perhaps a better
686 handling of the dates might help.
687 Status: Done 13 Nov 2000 (Meuuh)
692 Description: Allow to force synchro
693 Add a --force-synchro option to bypass the auto-adaptative
694 algorithm present in the vlc. Options should allow displaying
695 only I frames, only I and P, or all frames, or some more
696 fancy stuff such as half the Bs.
697 Status: Done 8 Aug 2000 (sam)
702 Description: Do separate packages
703 The plugins can be compiled with specific libraries, such
704 as Gnome, GGI, Esound. Putting all of them in the same
705 package would require a lot of useless dependencies, thus
706 one should do separate packages: a core "vlc" package, and
707 "vlc-fb", "vlc-ggi", "vlc-esd" packages depending on the
709 Status: Done 15 Aug 2000 (sam)
714 Description: Get rid of dumb vlc aliases
715 When compiling the vlc, some symlinks to the main app
716 are created, such as gvlc, ggivlc, etc. Actually this
717 might confuse the user, so they should be removed,
718 except perhaps gvlc and fbvlc which follow a usual
720 Status: Done 8 Aug 2000 (sam)
725 Description: Get rid of floating instructions
726 Mixing floating instructions and MMX is seldom a good idea,
727 it might be interesting to remove all floating instructions
728 in a single thread. The audio decoders are of course not
729 concerned by this task.
735 Description: Fix VDEC_SMP segfaults
736 When compiled to support SMP, the vlc segfaults. The synchro
737 code lacks locks, but there might be bugs elsewhere as well.
738 Status: Done 16 Nov 2000 (Meuuh)
743 Description: Optimize video parser
744 The video parser has some speed issues currently unexplained:
745 even though most functions are inlined, it keeps eating more
746 CPU than it should. This has to be investigated.
747 Status: Done 5 Dec 2000 (Meuuh) because of Input II
752 Description: Backport vlms input
753 The vlc uses the same file input code as the vlms (VideoLAN
754 Mini Server) which has been much improved. Someone should
755 port modifications done to the vlms back to the vlc.
756 Status: Done 5 Dec 2000 (Meuuh) because of Input II
761 Description: Get rid of vlc.channels
762 The file vlc.channels should be removed and information
763 found in it put either into ~/.vlcrc or in another rc
764 file. Note that this file can be modified by the vlc.
765 Status: Done 9 Dec 2001 (sam)
770 Description: Playlist API
771 Currently only files given in the command line are played,
772 one after the other. We need a smarter way to handle this,
773 through AddFile(), MoveFile(), etc. functions. input_file
774 has to be modified to support this as well.
775 Status: Done 8 Feb 2001 (sam)
780 Description: Better Gnome interface
781 The Gnome interface has many stubs and is actually rather
782 unfunctional. Someone should make the buttons work when
783 the appropriate hooks exist.
784 Status: Done 12 Feb 2001 (sam)
790 The Matrox acceleration for the vlc does not work yet,
791 though there are initialization routines in the code.
792 Status: Done 15 Jan 2002 (sam)
797 Description: Splash screen
798 The vlc needs a splash screen with a vlc logo, instead of
799 the "waiting for stream" message.