6 # Difficulty values: Easy, Medium, Hard, Guru
8 # Urgency values: Wishlist, Normal, Important, Critical
13 Description: Fix plugins namespace problem
14 When compiling a plugin, all symbols seem to be exported, while we
15 actually just need GetConfig and a few other things: the other
16 functions are accessed through function pointers.
22 Description: Fix plugin autoloading
23 At the moment, plugins to be detected are hardcoded in the code. We
24 need a better method to get all available plugins, by listing all the
25 files in selected directories.
31 Description: Real plugin API
32 We need some functions to register plugins, automatically detect which
33 ones are the most appropriate, as well as ways to express that plugin
34 A won't work unless plugin B is activated as well.
40 Description: Enable compiled-in plugins
41 Some plugins may have their place inside the main program, such as the
42 dummy plugin, or the beos plugin under BeOS. We should allow to link
43 them with the main app.
49 Description: Optimize SPU rendering
50 There is an if() in the SPU display routine to double lines when needed,
51 whiwh is rather inefficient. It should be removed and put outside
58 Description: SPU error recovery
59 The SPU decoder does not behave very well when a packet is missed or when
60 it gets the stream at the middle of an SPU packet. Make it more error-
67 Description: ALSA audio output support
68 ALSA is the Advanced Linux Sound Architecture and is believed to be
69 technically superior to the usual OSS support found in the Linux kernel.
75 Description: Support for RTP
76 RTP is a transport protocol for realtime applications. MPEG1 and MPEG2
77 versions of RTP are described in RFCs 2038 and 2250. RFCs 1889 (RTP)
78 and 2508 (compressed RTP) can be interesting as well.
84 Description: Draw a font / support color fonts
85 The vlc currently uses an ugly font to display its data on the output
86 window, and we have a slow hack to make it outlined. Writing our own
87 font, or adding support for color fonts, would make us gain some time.
93 Description: Layer 2 mono support
94 The vlc doesn't play layer 2 mono yet. We need it since a few of our
95 streams are in this audio format.
101 Description: MP3 support
102 The vlc cannot play MPEG1/2 layer 3 yet. It might be nice to fix that.
108 Description: Support for unencapsulated streams
109 Some streams are not encapsulated in PES/PS or TS packets, which the
110 vlc currently requires to properly decode a stream. Adding support for
111 this would require to rewrite the input code, and probably make it a
118 Description: Ogg/Vorbis audio decoder support
119 The Ogg/Vorbis audio format is a free alternative to the patent-encumbered
120 MP3 format. The system packets are quite different than the MPEG ones, so
121 adding support for it would require a lot of code rewrite.
127 Description: Xv video output support
128 XFree 4.0 provides the Xv interface which can do hardware YUV on supported
129 hardware. Unfortunately, there doesn't seem to be much documentation
136 Description: SDL video output support
137 The Simple DirectMedia Layer library is a generic API that provides
138 YUV acceleration on some platforms. More information can be found
139 on http://www.devolution.com/~slouken/SDL/
145 Description: Implement pause
146 There is no real `pause' command yet. Pausing just stops
147 displaying and sound playback, but the streams continues to
148 be decoded. One will have to do a file implementation as
149 well as a network implementation.
155 Description: Rewrite input for Program Stream files
156 Currently when we read a PS file, it is first translated to TS
157 because we first had only PS support. Now time has come to get
158 rid of this ugly kludge and integrate a proper PS input.
164 Description: DeCSS and DVD ioctls
165 The vlc needs the DVD ioctls support as well as the integration
166 of DeCSS to play DVDs properly. The person doing this should
167 probably not live in a country where DeCSS has been ruled illegal.
173 Description: ASCII-art output
174 For the ones who don't know how to waste their time, they can
175 try to do an ASCII-art output plugin.
181 Description: LPCM decoder
182 The LPCM decoder is full of stubs, it only parses the stream
183 but does not decode it. Fix this.
189 Description: Fix field pictures support
190 Some MPEG2 streams are interleaved, and the vlc does not support
191 this very well. Adding support for them requires an excellent
192 knowledge of the MPEG2 papers.
198 Description: Modularize decoder
199 Make the decoder a plugin, so that two versions can coexist
200 without recompilation (MMX and non-MMX).
206 Description: Make interface more responsive
208 When in "waiting for stream" mode, the interface is refreshed
209 every 5 seconds. This is too long, and can be confusing for
210 the user. Make it refresh at least after a keyboard/mouse event.
216 Description: Support MP1 and MP3
217 The vlc does not support all MPEG1 audio formats yet, nor
218 does it support MPEG1/2 layer 3.
223 Description: Split interface/video_output
224 The interface and the vout modules are too dependant, which
225 makes it impossible to run the Glide output with the Gnome
226 interface for instance. This will require a major rewrite of
227 the interface, and a solid knowledge of how the vlc internals
234 Description: Add 24bpp YUV
235 There is no 24bpp support yet. Add it, either in MMX
242 Description: Fix 8bpp YUV
243 The 8bpp YUV function is broken, there is some serious
244 alpha blending, and it scales pretty badly. Fix it.
245 Status: Done 14 Aug 2000 (sam)
250 Description: Fix input_file exit
251 input_file does not exit cleanly when the file is finished,
252 which makes it impossible to quit the vlc. Fix it.
253 Status: Done 21 Aug 2000 (sam)
258 Description: Debug MPEG1 video
259 The MPEG1 support has been done, but it still crashes.
265 Description: Support MPEG1 timecodes
266 The vlc can parse an MPEG1 system stream, but the parsed
267 PCR values do not seem to be correct. Check what's wrong.
273 Description: Fix 32bpp MMX YUV
274 The MMX 32bpp YUV function is buggy.
275 Status: Done 13 Aug 2000 (sam)
280 Description: Optimize YUV scaling
281 The YUV scaling method does not seem very efficient. Perhaps
282 some CPU cycles can be gained by saving some buffers.
288 Description: Draw a vlc icon
289 The vlc needs an icon. It should render well in 48x48 but
296 Description: Better black&white support
297 When in B&W mode, the chroma part of pictures is decoded,
298 but it would be more efficient not to decode at all when
299 the video decoder knows it does not need to.
305 Description: Rename channel names
306 Channels should start from 1 (not 0) like on a VCR or TV,
307 and Channel 0 should be renamed to "Playlist" or similar.
313 Description: Framebuffer exit bug
314 When the vlc abnormally exits in framebuffer mode, it leaves
315 the console in an unusable state. This does not happen on
316 the Matrox framebuffer, but it does on the VESA one.
322 Description: Fix synchro
323 The synchronization algorithm sucks a bit. While it is
324 quite efficient on frameskipping on slow machines, it
325 is not smart enough on fast machines and does not detect
326 when it has enough time for a frame. Perhaps a better
327 handling of the dates might help.
333 Description: Allow to force synchro
334 Add a --force-synchro option to bypass the auto-adaptative
335 algorithm present in the vlc. Options should allow displaying
336 only I frames, only I and P, or all frames, or some more
337 fancy stuff such as half the Bs.
338 Status: Done 8 Aug 2000 (sam)
343 Description: Do separate packages
344 The plugins can be compiled with specific libraries, such
345 as Gnome, GGI, Esound. Putting all of them in the same
346 package would require a lot of useless dependencies, thus
347 one should do separate packages: a core "vlc" package, and
348 "vlc-fb", "vlc-ggi", "vlc-esd" packages depending on the
350 Status: Done 15 Aug 2000 (sam)
355 Description: Get rid of dumb vlc aliases
356 When compiling the vlc, some symlinks to the main app
357 are created, such as gvlc, ggivlc, etc. Actually this
358 might confuse the user, so they should be removed,
359 except perhaps gvlc and fbvlc which follow a usual
361 Status: Done 8 Aug 2000 (sam)
366 Description: Get rid of floating instructions
367 Mixing floating instructions and MMX is seldom a good idea,
368 it might be interesting to remove all floating instructions
369 in a single thread. The audio decoders are of course not
370 concerned by this task.
376 Description: Fix VDEC_SMP segfaults
377 When compiled to support SMP, the vlc segfaults. The synchro
378 code lacks locks, but there might be bugs elsewhere as well.
384 Description: Optimize video parser
385 The video parser has some speed issues currently unexplained:
386 even though most functions are inlined, it keeps eating more
387 CPU than it should. This has to be investigated.
393 Description: Backport vlms input
394 The vlc uses the same file input code as the vlms (VideoLAN
395 Mini Server) which has been much improved. Someone should
396 port modifications done to the vlms back to the vlc.
402 Description: Get rid of vlc.channels
403 The file vlc.channels should be removed and information
404 found in it put either into ~/.vlcrc or in another rc
405 file. Note that this file can be modified by the vlc.
411 Description: Playlist API
412 Currently only files given in the command line are played,
413 one after the other. We need a smarter way to handle this,
414 through AddFile(), MoveFile(), etc. functions. input_file
415 has to be modified to support this as well.
421 Description: Better Gnome interface
422 The Gnome interface has many stubs and is actually rather
423 unfunctional. Someone should make the buttons work when
424 the appropriate hooks exist.
431 The Matrox acceleration for the vlc does not work yet,
432 though there are initialization routines in the code.
438 Description: Splash screen
439 The vlc needs a splash screen with a vlc logo, instead of
440 the "waiting for stream" message.