6 # Difficulty values: Easy, Medium, Hard, Guru
8 # Urgency values: Wishlist, Normal, Important, Critical
13 Description: Rewrite the font display routines
14 The current font display routines aren't powerful enough. There
15 should be a way to display a big String at once, without needing
16 to compute the size of the string and its coordinates beforehand.
22 Description: Make aout eat less CPU
23 When the vlc is launched without a stream, the audio_output thread
24 eats all memory, probably because there is no msleep() when no data
25 is available in the audio_output queue.
31 Description: Fix motion compensation bug
32 The motion compensation still has a small bug which can be well
33 noticed when there is a sudden color change, a few blocks remain
34 visible on the screen.
35 Status: Done 27 Aug 2000 (Meuuh)
41 . Finish the new keyboard input interface to support
42 interfaces that allow modifiers. This will allow the SDL to run
44 . Here are some details:
45 Allow any interface to have its own set of keys:
46 - allow the 'discovery' of the main interface of the binding
47 created by each interface:
48 what key ("control-C", what action (INTF...))
49 - extend the interface by a specific struct (meta+modifier+ascii)
50 - implement an interface specific getKey function.
56 Description: Fix plugins namespace problem
57 When compiling a plugin, all symbols seem to be exported, while we
58 actually just need GetConfig and a few other things: the other
59 functions are accessed through function pointers.
65 Description: Fix plugin autoloading
66 At the moment, plugins to be detected are hardcoded in the code. We
67 need a better method to get all available plugins, by listing all the
68 files in selected directories.
74 Description: Real plugin API
75 We need some functions to register plugins, automatically detect which
76 ones are the most appropriate, as well as ways to express that plugin
77 A won't work unless plugin B is activated as well.
83 Description: Enable compiled-in plugins
84 Some plugins may have their place inside the main program, such as the
85 dummy plugin, or the beos plugin under BeOS. We should allow to link
86 them with the main app.
92 Description: Optimize SPU rendering
93 There is an if() in the SPU display routine to double lines when needed,
94 whiwh is rather inefficient. It should be removed and put outside
96 Status: Done 26 Aug 2000 (henri)
101 Description: SPU error recovery
102 The SPU decoder does not behave very well when a packet is missed or when
103 it gets the stream at the middle of an SPU packet. Make it more error-
110 Description: ALSA audio output support
111 ALSA is the Advanced Linux Sound Architecture and is believed to be
112 technically superior to the usual OSS support found in the Linux kernel.
118 Description: Support for RTP
119 RTP is a transport protocol for realtime applications. MPEG1 and MPEG2
120 versions of RTP are described in RFCs 2038 and 2250. RFCs 1889 (RTP)
121 and 2508 (compressed RTP) can be interesting as well.
127 Description: Draw a font / support color fonts
128 The vlc currently uses an ugly font to display its data on the output
129 window, and we have a slow hack to make it outlined. Writing our own
130 font, or adding support for color fonts, would make us gain some time.
136 Description: Layer 2 mono support
137 The vlc doesn't play layer 2 mono yet. We need it since a few of our
138 streams are in this audio format.
144 Description: MP3 support
145 The vlc cannot play MPEG1/2 layer 3 yet. It might be nice to fix that.
151 Description: Support for unencapsulated streams
152 Some streams are not encapsulated in PES/PS or TS packets, which the
153 vlc currently requires to properly decode a stream. Adding support for
154 this would require to rewrite the input code, and probably make it a
161 Description: Ogg/Vorbis audio decoder support
162 The Ogg/Vorbis audio format is a free alternative to the patent-encumbered
163 MP3 format. The system packets are quite different than the MPEG ones, so
164 adding support for it would require a lot of code rewrite.
170 Description: Xv video output support
171 XFree 4.0 provides the Xv interface which can do hardware YUV on supported
172 hardware. Unfortunately, there doesn't seem to be much documentation
179 Description: SDL video output support
180 The Simple DirectMedia Layer library is a generic API that provides
181 YUV acceleration on some platforms. More information can be found
182 on http://www.devolution.com/~slouken/SDL/
183 Status: Done 21 Aug 2000 (octplane)
188 Description: Implement pause
189 There is no real `pause' command yet. Pausing just stops
190 displaying and sound playback, but the streams continues to
191 be decoded. One will have to do a file implementation as
192 well as a network implementation.
198 Description: Rewrite input for Program Stream files
199 Currently when we read a PS file, it is first translated to TS
200 because we first had only PS support. Now time has come to get
201 rid of this ugly kludge and integrate a proper PS input.
207 Description: DeCSS and DVD ioctls
208 The vlc needs the DVD ioctls support as well as the integration
209 of DeCSS to play DVDs properly. The person doing this should
210 probably not live in a country where DeCSS has been ruled illegal.
216 Description: ASCII-art output
217 For the ones who don't know how to waste their time, they can
218 try to do an ASCII-art output plugin.
224 Description: LPCM decoder
225 The LPCM decoder is full of stubs, it only parses the stream
226 but does not decode it. Fix this.
232 Description: Fix field pictures support
233 Some MPEG2 streams are interleaved, and the vlc does not support
234 this very well. Adding support for them requires an excellent
235 knowledge of the MPEG2 papers.
236 Status: Done 23 Aug 2000 (Meuuh)
241 Description: Modularize decoder
242 Make the decoder a plugin, so that two versions can coexist
243 without recompilation (MMX and non-MMX).
249 Description: Make interface more responsive
251 When in "waiting for stream" mode, the interface is refreshed
252 every 5 seconds. This is too long, and can be confusing for
253 the user. Make it refresh at least after a keyboard/mouse event.
259 Description: Support MP1 and MP3
260 The vlc does not support all MPEG1 audio formats yet, nor
261 does it support MPEG1/2 layer 3.
266 Description: Split interface/video_output
267 The interface and the vout modules are too dependant, which
268 makes it impossible to run the Glide output with the Gnome
269 interface for instance. This will require a major rewrite of
270 the interface, and a solid knowledge of how the vlc internals
277 Description: Add 24bpp YUV
278 There is no 24bpp support yet. Add it, either in MMX
285 Description: Fix 8bpp YUV
286 The 8bpp YUV function is broken, there is some serious
287 alpha blending, and it scales pretty badly. Fix it.
288 Status: Done 14 Aug 2000 (sam)
293 Description: Fix input_file exit
294 input_file does not exit cleanly when the file is finished,
295 which makes it impossible to quit the vlc. Fix it.
296 Status: Done 21 Aug 2000 (sam)
301 Description: Debug MPEG1 video
302 The MPEG1 support has been done, but it still crashes.
308 Description: Support MPEG1 timecodes
309 The vlc can parse an MPEG1 system stream, but the parsed
310 PCR values do not seem to be correct. Check what's wrong.
316 Description: Fix 32bpp MMX YUV
317 The MMX 32bpp YUV function is buggy.
318 Status: Done 13 Aug 2000 (sam)
323 Description: Optimize YUV scaling
324 The YUV scaling method does not seem very efficient. Perhaps
325 some CPU cycles can be gained by saving some buffers.
331 Description: Draw a vlc icon
332 The vlc needs an icon. It should render well in 48x48 but
339 Description: Better black&white support
340 When in B&W mode, the chroma part of pictures is decoded,
341 but it would be more efficient not to decode at all when
342 the video decoder knows it does not need to.
348 Description: Rename channel names
349 Channels should start from 1 (not 0) like on a VCR or TV,
350 and Channel 0 should be renamed to "Playlist" or similar.
356 Description: Framebuffer exit bug
357 When the vlc abnormally exits in framebuffer mode, it leaves
358 the console in an unusable state. This does not happen on
359 the Matrox framebuffer, but it does on the VESA one.
365 Description: Fix synchro
366 The synchronization algorithm sucks a bit. While it is
367 quite efficient on frameskipping on slow machines, it
368 is not smart enough on fast machines and does not detect
369 when it has enough time for a frame. Perhaps a better
370 handling of the dates might help.
376 Description: Allow to force synchro
377 Add a --force-synchro option to bypass the auto-adaptative
378 algorithm present in the vlc. Options should allow displaying
379 only I frames, only I and P, or all frames, or some more
380 fancy stuff such as half the Bs.
381 Status: Done 8 Aug 2000 (sam)
386 Description: Do separate packages
387 The plugins can be compiled with specific libraries, such
388 as Gnome, GGI, Esound. Putting all of them in the same
389 package would require a lot of useless dependencies, thus
390 one should do separate packages: a core "vlc" package, and
391 "vlc-fb", "vlc-ggi", "vlc-esd" packages depending on the
393 Status: Done 15 Aug 2000 (sam)
398 Description: Get rid of dumb vlc aliases
399 When compiling the vlc, some symlinks to the main app
400 are created, such as gvlc, ggivlc, etc. Actually this
401 might confuse the user, so they should be removed,
402 except perhaps gvlc and fbvlc which follow a usual
404 Status: Done 8 Aug 2000 (sam)
409 Description: Get rid of floating instructions
410 Mixing floating instructions and MMX is seldom a good idea,
411 it might be interesting to remove all floating instructions
412 in a single thread. The audio decoders are of course not
413 concerned by this task.
419 Description: Fix VDEC_SMP segfaults
420 When compiled to support SMP, the vlc segfaults. The synchro
421 code lacks locks, but there might be bugs elsewhere as well.
427 Description: Optimize video parser
428 The video parser has some speed issues currently unexplained:
429 even though most functions are inlined, it keeps eating more
430 CPU than it should. This has to be investigated.
436 Description: Backport vlms input
437 The vlc uses the same file input code as the vlms (VideoLAN
438 Mini Server) which has been much improved. Someone should
439 port modifications done to the vlms back to the vlc.
445 Description: Get rid of vlc.channels
446 The file vlc.channels should be removed and information
447 found in it put either into ~/.vlcrc or in another rc
448 file. Note that this file can be modified by the vlc.
454 Description: Playlist API
455 Currently only files given in the command line are played,
456 one after the other. We need a smarter way to handle this,
457 through AddFile(), MoveFile(), etc. functions. input_file
458 has to be modified to support this as well.
464 Description: Better Gnome interface
465 The Gnome interface has many stubs and is actually rather
466 unfunctional. Someone should make the buttons work when
467 the appropriate hooks exist.
474 The Matrox acceleration for the vlc does not work yet,
475 though there are initialization routines in the code.
481 Description: Splash screen
482 The vlc needs a splash screen with a vlc logo, instead of
483 the "waiting for stream" message.