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