]> git.sesse.net Git - vlc/blob - TODO
Added : alsa support
[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: 0x3e
11 Difficulty: Guru
12 Urgency: Critical
13 Description: Fix backwards moves
14  Sometimes the frames seem to go backwards for a short period of
15  time. This is due to the output methods and is known to happen
16  with the x11 and SDL plugins.
17 Status: Todo
18
19 Task: 0x3d
20 Difficulty: Easy
21 Urgency: Normal
22 Description: Have more statistics messages displayed
23  The vlc has structures to keep track of the interesting
24  events, but there is no way to print these structures. In stats
25  mode, we should print these structures regularly, or at quit
26  time (whichever is the more convenient).
27 Status: Todo
28
29 Task: 0x3c
30 Difficulty: Easy
31 Urgency: Important
32 Description: Separate optimizations from debug mode
33  We sometimes want to have the debug mode (which writes an
34  interesting log of debug messages) along with the compiler
35  optimizations (which allow decoding of more than 2 fps).
36 Status: Done 18 Nov 2000 (Meuuh)
37
38 Task: 0x3b
39 Difficulty: Easy
40 Urgency: Important
41 Description: Write intf_WarnMsg and intf_StatMsg
42  We have intf_ErrMsg to display fatal errors, but warnings are
43  drowned in an ocean of unreadable intf_DbgMsg. Same for
44  statistics messages.
45 Status: Todo
46
47 Task: 0x3a
48 Difficulty: Hard
49 Urgency: Important
50 Description: Support SDL Overlay
51  The SDL livrary has routines to use the video board to do the YUV
52  conversion, scaling and displaying. Using them will require a
53  partial rewrite of the video_output way of handling rendering
54  and displaying.
55 Status: Todo
56
57 Task: 0x39
58 Difficulty: Medium
59 Urgency: Wishlist
60 Description: Rewrite the font display routines
61  The current font display routines aren't powerful enough. There
62  should be a way to display a big String at once, without needing
63  to compute the size of the string and its coordinates beforehand.
64 Status: Todo
65
66 Task: 0x38
67 Difficulty: Medium
68 Urgency: Important
69 Description: Make aout eat less CPU
70  When the vlc is launched without a stream, the audio_output thread
71  eats all memory, probably because there is no msleep() when no data
72  is available in the audio_output queue.
73 Status: Todo
74
75 Task: 0x37
76 Difficulty: Guru
77 Urgency: Important
78 Description: Fix motion compensation bug
79  The motion compensation still has a small bug which can be well
80  noticed when there is a sudden color change, a few blocks remain
81  visible on the screen.
82 Status: Done 27 Aug 2000 (Meuuh)
83
84 Task: 0x36
85 Difficulty: Medium
86 Urgency: Normal
87  Description: 
88  . Finish the new keyboard input interface to support 
89    interfaces that allow modifiers. This will allow the SDL to run 
90    properly.
91  . Here are some details:
92    Allow any interface to have its own set of keys:
93     - allow the 'discovery' of the main interface of the binding 
94       created by each interface:
95        what key ("control-C", what action (INTF...))
96     - extend the interface by a specific struct (meta+modifier+ascii)
97     - implement an interface specific getKey function.
98 Status: Todo
99
100 Task: 0x35
101 Difficulty: Medium
102 Urgency: Important
103 Description: Fix plugins namespace problem
104  When compiling a plugin, all symbols seem to be exported, while we
105  actually just need GetConfig and a few other things: the other
106  functions are accessed through function pointers.
107 Status: Todo
108
109 Task: 0x34
110 Difficulty: Medium
111 Urgency: Important
112 Description: Fix plugin autoloading
113  At the moment, plugins to be detected are hardcoded in the code. We
114  need a better method to get all available plugins, by listing all the
115  files in selected directories.
116 Status: Todo
117
118 Task: 0x33
119 Difficulty: Hard
120 Urgency: Important
121 Description: Real plugin API
122  We need some functions to register plugins, automatically detect which
123  ones are the most appropriate, as well as ways to express that plugin
124  A won't work unless plugin B is activated as well.
125 Status: Todo
126
127 Task: 0x32
128 Difficulty: Medium
129 Urgency: Important
130 Description: Enable compiled-in plugins
131  Some plugins may have their place inside the main program, such as the
132  dummy plugin, or the beos plugin under BeOS. We should allow to link
133  them with the main app.
134 Status: Todo
135
136 Task: 0x31
137 Difficulty: Easy
138 Urgency: Normal
139 Description: Optimize SPU rendering
140  There is an if() in the SPU display routine to double lines when needed,
141  whiwh is rather inefficient. It should be removed and put outside
142  the main loop.
143 Status: Done 26 Aug 2000 (henri)
144
145 Task: 0x30
146 Difficulty: Hard
147 Urgency: Important
148 Description: SPU error recovery
149  The SPU decoder does not behave very well when a packet is missed or when
150  it gets the stream at the middle of an SPU packet. Make it more error-
151  friendly.
152 Status: Todo
153
154 Task: 0x29
155 Difficulty: Medium
156 Urgency: Normal
157 Description: ALSA audio output support
158  ALSA is the Advanced Linux Sound Architecture and is believed to be
159  technically superior to the usual OSS support found in the Linux kernel.
160 Status: Done ( henri )
161
162 Task: 0x28
163 Difficulty: Guru
164 Urgency: Wishlist
165 Description: Support for RTP
166  RTP is a transport protocol for realtime applications. MPEG1 and MPEG2
167  versions of RTP are described in RFCs 2038 and 2250. RFCs 1889 (RTP)
168  and 2508 (compressed RTP) can be interesting as well.
169 Status: Todo
170
171 Task: 0x27
172 Difficulty: Medium
173 Urgency: Wishlist
174 Description: Draw a font / support color fonts
175  The vlc currently uses an ugly font to display its data on the output
176  window, and we have a slow hack to make it outlined. Writing our own
177  font, or adding support for color fonts, would make us gain some time.
178 Status: Todo
179
180 Task: 0x26
181 Difficulty: Medium
182 Urgency: Important
183 Description: Layer 2 mono support
184  The vlc doesn't play layer 2 mono yet. We need it since a few of our
185  streams are in this audio format.
186 Status: Todo
187
188 Task: 0x25
189 Difficulty: Hard
190 Urgency: Wishlist
191 Description: MP3 support
192  The vlc cannot play MPEG1/2 layer 3 yet. It might be nice to fix that.
193 Status: Todo
194
195 Task: 0x24
196 Difficulty: Hard
197 Urgency: Normal
198 Description: Support for unencapsulated streams
199  Some streams are not encapsulated in PES/PS or TS packets, which the
200  vlc currently requires to properly decode a stream. Adding support for
201  this would require to rewrite the input code, and probably make it a
202  plugin.
203 Status: Todo
204
205 Task: 0x24
206 Difficulty: Guru
207 Urgency: Wishlist
208 Description: Ogg/Vorbis audio decoder support
209  The Ogg/Vorbis audio format is a free alternative to the patent-encumbered
210  MP3 format. The system packets are quite different than the MPEG ones, so
211  adding support for it would require a lot of code rewrite.
212 Status: Todo
213
214 Task: 0x23
215 Difficulty: Guru
216 Urgency: Normal
217 Description: Xv video output support
218  XFree 4.0 provides the Xv interface which can do hardware YUV on supported
219  hardware. Unfortunately, there doesn't seem to be much documentation
220  available.
221 Status: Todo
222
223 Task: 0x22
224 Difficulty: Medium
225 Urgency: Normal
226 Description: SDL video output support
227  The Simple DirectMedia Layer library is a generic API that provides
228  YUV acceleration on some platforms. More information can be found
229  on http://www.devolution.com/~slouken/SDL/
230 Status: Done 21 Aug 2000 (octplane)
231
232 Task: 0x21
233 Difficulty: Medium
234 Urgency: Normal
235 Description: Implement pause
236  There is no real `pause' command yet. Pausing just stops
237  displaying and sound playback, but the streams continues to
238  be decoded. One will have to do a file implementation as
239  well as a network implementation.
240 Status: Todo
241
242 Task: 0x20
243 Difficulty: Hard
244 Urgency: Important
245 Description: Rewrite input for Program Stream files
246  Currently when we read a PS file, it is first translated to TS
247  because we first had only PS support. Now time has come to get
248  rid of this ugly kludge and integrate a proper PS input.
249 Status: Todo
250
251 Task: 0x1f
252 Difficulty: Hard
253 Urgency: Normal
254 Description: DeCSS and DVD ioctls
255  The vlc needs the DVD ioctls support as well as the integration
256  of DeCSS to play DVDs properly. The person doing this should
257  probably not live in a country where DeCSS has been ruled illegal.
258 Status: Todo
259
260 Task: 0x1e
261 Difficulty: Hard
262 Urgency: Wishlist
263 Description: ASCII-art output
264  For the ones who don't know how to waste their time, they can
265  try to do an ASCII-art output plugin.
266 Status: Todo
267
268 Task: 0x1d
269 Difficulty: Hard
270 Urgency: Normal
271 Description: LPCM decoder
272  The LPCM decoder is full of stubs, it only parses the stream
273  but does not decode it. Fix this.
274 Status: Todo
275
276 Task: 0x1c
277 Difficulty: Guru
278 Urgency: Important
279 Description: Fix field pictures support
280  Some MPEG2 streams are interleaved, and the vlc does not support
281  this very well. Adding support for them requires an excellent
282  knowledge of the MPEG2 papers.
283 Status: Done 23 Aug 2000 (Meuuh)
284
285 Task: 0x1b
286 Difficulty: Hard
287 Urgency: Wishlist
288 Description: Modularize decoder
289  Make the decoder a plugin, so that two versions can coexist
290  without recompilation (MMX and non-MMX).
291 Status: Todo
292
293 Task: 0x1a
294 Difficulty: Easy
295 Urgency: Normal
296 Description: Make interface more responsive
297 Status: Todo
298  When in "waiting for stream" mode, the interface is refreshed
299  every 5 seconds. This is too long, and can be confusing for
300  the user. Make it refresh at least after a keyboard/mouse event.
301 Status: Todo
302
303 Task: 0x19
304 Difficulty: Hard
305 Urgency: Normal
306 Description: Support MP1 and MP3
307  The vlc does not support all MPEG1 audio formats yet, nor
308  does it support MPEG1/2 layer 3.
309
310 Task: 0x18
311 Difficulty: Guru
312 Urgency: Wishlist
313 Description: Split interface/video_output
314  The interface and the vout modules are too dependant, which
315  makes it impossible to run the Glide output with the Gnome
316  interface for instance. This will require a major rewrite of
317  the interface, and a solid knowledge of how the vlc internals
318  work.
319 Status: Todo
320
321 Task: 0x17
322 Difficulty: Hard
323 Urgency: Normal
324 Description: Add 24bpp YUV
325  There is no 24bpp support yet. Add it, either in MMX
326  or in C.
327 Status: Todo
328
329 Task: 0x16
330 Difficulty: Medium
331 Urgency: Important
332 Description: Fix 8bpp YUV
333  The 8bpp YUV function is broken, there is some serious
334  alpha blending, and it scales pretty badly. Fix it.
335 Status: Done 14 Aug 2000 (sam)
336
337 Task: 0x15
338 Difficulty: Medium
339 Urgency: Critical
340 Description: Fix input_file exit
341  input_file does not exit cleanly when the file is finished,
342  which makes it impossible to quit the vlc. Fix it.
343 Status: Done 21 Aug 2000 (sam)
344
345 Task: 0x14
346 Difficulty: Guru
347 Urgency: Wishlist
348 Description: Debug MPEG1 video
349  The MPEG1 support has been done, but it still crashes.
350 Status: Done 23 Oct 2000 (Meuuh)
351
352 Task: 0x13
353 Difficulty: Hard
354 Urgency: Wishlist
355 Description: Support MPEG1 timecodes
356  The vlc can parse an MPEG1 system stream, but the parsed
357  PCR values do not seem to be correct. Check what's wrong.
358 Status: Todo
359
360 Task: 0x12
361 Difficulty: Medium
362 Urgency: Important
363 Description: Fix 32bpp MMX YUV
364  The MMX 32bpp YUV function is buggy.
365 Status: Done 13 Aug 2000 (sam)
366
367 Task: 0x11
368 Difficulty: Hard
369 Urgency: Normal
370 Description: Optimize YUV scaling
371  The YUV scaling method does not seem very efficient. Perhaps
372  some CPU cycles can be gained by saving some buffers.
373 Status: Todo
374
375 Task: 0x10
376 Difficulty: Easy
377 Urgency: Normal
378 Description: Draw a vlc icon
379  The vlc needs an icon. It should render well in 48x48 but
380  can be any size.
381 Status: Todo
382
383 Task: 0x0f
384 Difficulty: Easy
385 Urgency: Normal
386 Description: Better black&white support
387  When in B&W mode, the chroma part of pictures is decoded,
388  but it would be more efficient not to decode at all when
389  the video decoder knows it does not need to.
390 Status: Todo
391
392 Task: 0x0e
393 Difficulty: Easy
394 Urgency: Wishlist
395 Description: Rename channel names
396  Channels should start from 1 (not 0) like on a VCR or TV,
397  and Channel 0 should be renamed to "Playlist" or similar.
398 Status: Todo
399
400 Task: 0x0d
401 Difficulty: Medium
402 Urgency: Important
403 Description: Framebuffer exit bug
404  When the vlc abnormally exits in framebuffer mode, it leaves
405  the console in an unusable state. This does not happen on
406  the Matrox framebuffer, but it does on the VESA one.
407 Status: Todo
408
409 Task: 0x0c
410 Difficulty: Hard
411 Urgency: Critical
412 Description: Fix synchro
413  The synchronization algorithm sucks a bit. While it is
414  quite efficient on frameskipping on slow machines, it
415  is not smart enough on fast machines and does not detect
416  when it has enough time for a frame. Perhaps a better
417  handling of the dates might help.
418 Status: Done 13 Nov 2000 (Meuuh)
419
420 Task: 0x0b
421 Difficulty: Medium
422 Urgency: Important
423 Description: Allow to force synchro
424  Add a --force-synchro option to bypass the auto-adaptative
425  algorithm present in the vlc. Options should allow displaying
426  only I frames, only I and P, or all frames, or some more
427  fancy stuff such as half the Bs.
428 Status: Done 8 Aug 2000 (sam)
429
430 Task: 0x0a
431 Difficulty: Medium
432 Urgency: Important
433 Description: Do separate packages
434  The plugins can be compiled with specific libraries, such
435  as Gnome, GGI, Esound. Putting all of them in the same
436  package would require a lot of useless dependencies, thus
437  one should do separate packages: a core "vlc" package, and
438  "vlc-fb", "vlc-ggi", "vlc-esd" packages depending on the
439  core package.
440 Status: Done 15 Aug 2000 (sam)
441
442 Task: 0x09
443 Difficulty: Easy
444 Urgency: Normal
445 Description: Get rid of dumb vlc aliases
446  When compiling the vlc, some symlinks to the main app
447  are created, such as gvlc, ggivlc, etc. Actually this
448  might confuse the user, so they should be removed,
449  except perhaps gvlc and fbvlc which follow a usual
450  naming scheme.
451 Status: Done 8 Aug 2000 (sam)
452
453 Task: 0x08
454 Difficulty: Easy
455 Urgency: Important
456 Description: Get rid of floating instructions
457  Mixing floating instructions and MMX is seldom a good idea,
458  it might be interesting to remove all floating instructions
459  in a single thread. The audio decoders are of course not
460  concerned by this task.
461 Status: Todo
462
463 Task: 0x07
464 Difficulty: Hard
465 Urgency: Critical
466 Description: Fix VDEC_SMP segfaults
467  When compiled to support SMP, the vlc segfaults. The synchro
468  code lacks locks, but there might be bugs elsewhere as well.
469 Status: Done 16 Nov 2000 (Meuuh)
470
471 Task: 0x06
472 Difficulty: Guru
473 Urgency: Important
474 Description: Optimize video parser
475  The video parser has some speed issues currently unexplained:
476  even though most functions are inlined, it keeps eating more
477  CPU than it should. This has to be investigated.
478 Status: Todo
479
480 Task: 0x05
481 Difficulty: Easy
482 Urgency: Important
483 Description: Backport vlms input
484  The vlc uses the same file input code as the vlms (VideoLAN
485  Mini Server) which has been much improved. Someone should
486  port modifications done to the vlms back to the vlc.
487 Status: Todo
488
489 Task: 0x04
490 Difficulty: Medium
491 Urgency: Normal
492 Description: Get rid of vlc.channels
493  The file vlc.channels should be removed and information
494  found in it put either into ~/.vlcrc or in another rc
495  file. Note that this file can be modified by the vlc.
496 Status: Todo
497
498 Task: 0x03
499 Difficulty: Hard
500 Urgency: Important
501 Description: Playlist API
502  Currently only files given in the command line are played,
503  one after the other. We need a smarter way to handle this,
504  through AddFile(), MoveFile(), etc. functions. input_file
505  has to be modified to support this as well.
506 Status: Todo
507
508 Task: 0x02
509 Difficulty: Medium
510 Urgency: Normal
511 Description: Better Gnome interface
512  The Gnome interface has many stubs and is actually rather
513  unfunctional. Someone should make the buttons work when
514  the appropriate hooks exist.
515 Status: Todo
516
517 Task: 0x01
518 Difficulty: Hard
519 Urgency: Wishlist
520 Description: MGA YUV
521  The Matrox acceleration for the vlc does not work yet,
522  though there are initialization routines in the code.
523 Status: Todo
524
525 Task: 0x00
526 Difficulty: Medium
527 Urgency: Wishlist
528 Description: Splash screen
529  The vlc needs a splash screen with a vlc logo, instead of
530  the "waiting for stream" message.
531 Status: Todo
532
533