]> git.sesse.net Git - vlc/blob - TODO
3d1836cc6b4233308ddf168bfdaf8f4317ff9b3e
[vlc] / TODO
1 #
2 #   vlc tasks
3 #   ---------
4 #
5 #
6 # Difficulty values: Easy, Medium, Hard, Guru
7 #
8 # Urgency values: Wishlist, Normal, Important, Critical
9
10 Task: 0x39
11 Difficulty: Medium
12 Urgency: Wishlist
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.
17 Status: Todo
18
19 Task: 0x38
20 Difficulty: Medium
21 Urgency: Important
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.
26 Status: Todo
27
28 Task: 0x37
29 Difficulty: Guru
30 Urgency: Important
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)
36
37 Task: 0x36
38 Difficulty: Medium
39 Urgency: Normal
40  Description: 
41  . Finish the new keyboard input interface to support 
42    interfaces that allow modifiers. This will allow the SDL to run 
43    properly.
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.
51 Status: Todo
52
53 Task: 0x35
54 Difficulty: Medium
55 Urgency: Important
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.
60 Status: Todo
61
62 Task: 0x34
63 Difficulty: Medium
64 Urgency: Important
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.
69 Status: Todo
70
71 Task: 0x33
72 Difficulty: Hard
73 Urgency: Important
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.
78 Status: Todo
79
80 Task: 0x32
81 Difficulty: Medium
82 Urgency: Important
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.
87 Status: Todo
88
89 Task: 0x31
90 Difficulty: Easy
91 Urgency: Normal
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
95  the main loop.
96 Status: Done 26 Aug 2000 (henri)
97
98 Task: 0x30
99 Difficulty: Hard
100 Urgency: Important
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-
104  friendly.
105 Status: Todo
106
107 Task: 0x29
108 Difficulty: Medium
109 Urgency: Normal
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.
113 Status: Todo
114
115 Task: 0x28
116 Difficulty: Guru
117 Urgency: Wishlist
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.
122 Status: Todo
123
124 Task: 0x27
125 Difficulty: Medium
126 Urgency: Wishlist
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.
131 Status: Todo
132
133 Task: 0x26
134 Difficulty: Medium
135 Urgency: Important
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.
139 Status: Todo
140
141 Task: 0x25
142 Difficulty: Hard
143 Urgency: Wishlist
144 Description: MP3 support
145  The vlc cannot play MPEG1/2 layer 3 yet. It might be nice to fix that.
146 Status: Todo
147
148 Task: 0x24
149 Difficulty: Hard
150 Urgency: Normal
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
155  plugin.
156 Status: Todo
157
158 Task: 0x24
159 Difficulty: Guru
160 Urgency: Wishlist
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.
165 Status: Todo
166
167 Task: 0x23
168 Difficulty: Guru
169 Urgency: Normal
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
173  available.
174 Status: Todo
175
176 Task: 0x22
177 Difficulty: Medium
178 Urgency: Normal
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)
184
185 Task: 0x21
186 Difficulty: Medium
187 Urgency: Normal
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.
193 Status: Todo
194
195 Task: 0x20
196 Difficulty: Hard
197 Urgency: Important
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.
202 Status: Todo
203
204 Task: 0x1f
205 Difficulty: Hard
206 Urgency: Normal
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.
211 Status: Todo
212
213 Task: 0x1e
214 Difficulty: Hard
215 Urgency: Wishlist
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.
219 Status: Todo
220
221 Task: 0x1d
222 Difficulty: Hard
223 Urgency: Normal
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.
227 Status: Todo
228
229 Task: 0x1c
230 Difficulty: Guru
231 Urgency: Important
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)
237
238 Task: 0x1b
239 Difficulty: Hard
240 Urgency: Wishlist
241 Description: Modularize decoder
242  Make the decoder a plugin, so that two versions can coexist
243  without recompilation (MMX and non-MMX).
244 Status: Todo
245
246 Task: 0x1a
247 Difficulty: Easy
248 Urgency: Normal
249 Description: Make interface more responsive
250 Status: Todo
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.
254 Status: Todo
255
256 Task: 0x19
257 Difficulty: Hard
258 Urgency: Normal
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.
262
263 Task: 0x18
264 Difficulty: Guru
265 Urgency: Wishlist
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
271  work.
272 Status: Todo
273
274 Task: 0x17
275 Difficulty: Hard
276 Urgency: Normal
277 Description: Add 24bpp YUV
278  There is no 24bpp support yet. Add it, either in MMX
279  or in C.
280 Status: Todo
281
282 Task: 0x16
283 Difficulty: Medium
284 Urgency: Important
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)
289
290 Task: 0x15
291 Difficulty: Medium
292 Urgency: Critical
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)
297
298 Task: 0x14
299 Difficulty: Guru
300 Urgency: Wishlist
301 Description: Debug MPEG1 video
302  The MPEG1 support has been done, but it still crashes.
303 Status: Done 23 Oct 2000 (Meuuh)
304
305 Task: 0x13
306 Difficulty: Hard
307 Urgency: Wishlist
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.
311 Status: Todo
312
313 Task: 0x12
314 Difficulty: Medium
315 Urgency: Important
316 Description: Fix 32bpp MMX YUV
317  The MMX 32bpp YUV function is buggy.
318 Status: Done 13 Aug 2000 (sam)
319
320 Task: 0x11
321 Difficulty: Hard
322 Urgency: Normal
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.
326 Status: Todo
327
328 Task: 0x10
329 Difficulty: Easy
330 Urgency: Normal
331 Description: Draw a vlc icon
332  The vlc needs an icon. It should render well in 48x48 but
333  can be any size.
334 Status: Todo
335
336 Task: 0x0f
337 Difficulty: Easy
338 Urgency: Normal
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.
343 Status: Todo
344
345 Task: 0x0e
346 Difficulty: Easy
347 Urgency: Wishlist
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.
351 Status: Todo
352
353 Task: 0x0d
354 Difficulty: Medium
355 Urgency: Important
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.
360 Status: Todo
361
362 Task: 0x0c
363 Difficulty: Hard
364 Urgency: Critical
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.
371 Status: Todo
372
373 Task: 0x0b
374 Difficulty: Medium
375 Urgency: Important
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)
382
383 Task: 0x0a
384 Difficulty: Medium
385 Urgency: Important
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
392  core package.
393 Status: Done 15 Aug 2000 (sam)
394
395 Task: 0x09
396 Difficulty: Easy
397 Urgency: Normal
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
403  naming scheme.
404 Status: Done 8 Aug 2000 (sam)
405
406 Task: 0x08
407 Difficulty: Easy
408 Urgency: Important
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.
414 Status: Todo
415
416 Task: 0x07
417 Difficulty: Hard
418 Urgency: Critical
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.
422 Status: Todo
423
424 Task: 0x06
425 Difficulty: Guru
426 Urgency: Important
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.
431 Status: Todo
432
433 Task: 0x05
434 Difficulty: Easy
435 Urgency: Important
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.
440 Status: Todo
441
442 Task: 0x04
443 Difficulty: Medium
444 Urgency: Normal
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.
449 Status: Todo
450
451 Task: 0x03
452 Difficulty: Hard
453 Urgency: Important
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.
459 Status: Todo
460
461 Task: 0x02
462 Difficulty: Medium
463 Urgency: Normal
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.
468 Status: Todo
469
470 Task: 0x01
471 Difficulty: Hard
472 Urgency: Wishlist
473 Description: MGA YUV
474  The Matrox acceleration for the vlc does not work yet,
475  though there are initialization routines in the code.
476 Status: Todo
477
478 Task: 0x00
479 Difficulty: Medium
480 Urgency: Wishlist
481 Description: Splash screen
482  The vlc needs a splash screen with a vlc logo, instead of
483  the "waiting for stream" message.
484 Status: Todo
485
486