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