. new tasks :
[vlc.git] / 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: 0x35
11 Difficulty: Medium
12 Urgency: Important
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.
17 Status: Todo
18
19 Task: 0x34
20 Difficulty: Medium
21 Urgency: Important
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.
26 Status: Todo
27
28 Task: 0x33
29 Difficulty: Hard
30 Urgency: Important
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.
35 Status: Todo
36
37 Task: 0x32
38 Difficulty: Medium
39 Urgency: Important
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.
44 Status: Todo
45
46 Task: 0x31
47 Difficulty: Easy
48 Urgency: Normal
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
52  the main loop.
53 Status: Todo.
54
55 Task: 0x30
56 Difficulty: Hard
57 Urgency: Important
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-
61  friendly.
62 Status: Todo
63
64 Task: 0x29
65 Difficulty: Medium
66 Urgency: Normal
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.
70 Status: Todo
71
72 Task: 0x28
73 Difficulty: Guru
74 Urgency: Wishlist
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.
79 Status: Todo
80
81 Task: 0x27
82 Difficulty: Medium
83 Urgency: Wishlist
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.
88 Status: Todo
89
90 Task: 0x26
91 Difficulty: Medium
92 Urgency: Important
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.
96 Status: Todo
97
98 Task: 0x25
99 Difficulty: Hard
100 Urgency: Wishlist
101 Description: MP3 support
102  The vlc cannot play MPEG1/2 layer 3 yet. It might be nice to fix that.
103 Status: Todo
104
105 Task: 0x24
106 Difficulty: Hard
107 Urgency: Normal
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
112  plugin.
113 Status: Todo
114
115 Task: 0x24
116 Difficulty: Guru
117 Urgency: Wishlist
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.
122 Status: Todo
123
124 Task: 0x23
125 Difficulty: Guru
126 Urgency: Normal
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
130  available.
131 Status: Todo
132
133 Task: 0x22
134 Difficulty: Medium
135 Urgency: Normal
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/
140 Status: Todo
141
142 Task: 0x21
143 Difficulty: Medium
144 Urgency: Normal
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.
150 Status: Todo
151
152 Task: 0x20
153 Difficulty: Hard
154 Urgency: Important
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.
159 Status: Todo
160
161 Task: 0x1f
162 Difficulty: Hard
163 Urgency: Normal
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.
168 Status: Todo
169
170 Task: 0x1e
171 Difficulty: Hard
172 Urgency: Wishlist
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.
176 Status: Todo
177
178 Task: 0x1d
179 Difficulty: Hard
180 Urgency: Normal
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.
184 Status: Todo
185
186 Task: 0x1c
187 Difficulty: Guru
188 Urgency: Important
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.
193 Status: Todo
194
195 Task: 0x1b
196 Difficulty: Hard
197 Urgency: Wishlist
198 Description: Modularize decoder
199  Make the decoder a plugin, so that two versions can coexist
200  without recompilation (MMX and non-MMX).
201 Status: Todo
202
203 Task: 0x1a
204 Difficulty: Easy
205 Urgency: Normal
206 Description: Make interface more responsive
207 Status: Todo
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.
211 Status: Todo
212
213 Task: 0x19
214 Difficulty: Hard
215 Urgency: Normal
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.
219
220 Task: 0x18
221 Difficulty: Guru
222 Urgency: Wishlist
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
228  work.
229 Status: Todo
230
231 Task: 0x17
232 Difficulty: Hard
233 Urgency: Normal
234 Description: Add 24bpp YUV
235  There is no 24bpp support yet. Add it, either in MMX
236  or in C.
237 Status: Todo
238
239 Task: 0x16
240 Difficulty: Medium
241 Urgency: Important
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)
246
247 Task: 0x15
248 Difficulty: Medium
249 Urgency: Critical
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: Todo
254
255 Task: 0x14
256 Difficulty: Guru
257 Urgency: Wishlist
258 Description: Debug MPEG1 video
259  The MPEG1 support has been done, but it still crashes.
260 Status: Todo
261
262 Task: 0x13
263 Difficulty: Hard
264 Urgency: Wishlist
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.
268 Status: Todo
269
270 Task: 0x12
271 Difficulty: Medium
272 Urgency: Important
273 Description: Fix 32bpp MMX YUV
274  The MMX 32bpp YUV function is buggy.
275 Status: Done 13 Aug 2000 (sam)
276
277 Task: 0x11
278 Difficulty: Hard
279 Urgency: Normal
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.
283 Status: Todo
284
285 Task: 0x10
286 Difficulty: Easy
287 Urgency: Normal
288 Description: Draw a vlc icon
289  The vlc needs an icon. It should render well in 48x48 but
290  can be any size.
291 Status: Todo
292
293 Task: 0x0f
294 Difficulty: Easy
295 Urgency: Normal
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.
300 Status: Todo
301
302 Task: 0x0e
303 Difficulty: Easy
304 Urgency: Wishlist
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.
308 Status: Todo
309
310 Task: 0x0d
311 Difficulty: Medium
312 Urgency: Important
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.
317 Status: Todo
318
319 Task: 0x0c
320 Difficulty: Hard
321 Urgency: Critical
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.
328 Status: Todo
329
330 Task: 0x0b
331 Difficulty: Medium
332 Urgency: Important
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)
339
340 Task: 0x0a
341 Difficulty: Medium
342 Urgency: Important
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
349  core package.
350 Status: Done 15 Aug 2000 (sam)
351
352 Task: 0x09
353 Difficulty: Easy
354 Urgency: Normal
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
360  naming scheme.
361 Status: Done 8 Aug 2000 (sam)
362
363 Task: 0x08
364 Difficulty: Easy
365 Urgency: Important
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.
371 Status: Todo
372
373 Task: 0x07
374 Difficulty: Hard
375 Urgency: Critical
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.
379 Status: Todo
380
381 Task: 0x06
382 Difficulty: Guru
383 Urgency: Important
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.
388 Status: Todo
389
390 Task: 0x05
391 Difficulty: Easy
392 Urgency: Important
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.
397 Status: Todo
398
399 Task: 0x04
400 Difficulty: Medium
401 Urgency: Normal
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.
406 Status: Todo
407
408 Task: 0x03
409 Difficulty: Hard
410 Urgency: Important
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.
416 Status: Todo
417
418 Task: 0x02
419 Difficulty: Medium
420 Urgency: Normal
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.
425 Status: Todo
426
427 Task: 0x01
428 Difficulty: Hard
429 Urgency: Wishlist
430 Description: MGA YUV
431  The Matrox acceleration for the vlc does not work yet,
432  though there are initialization routines in the code.
433 Status: Todo
434
435 Task: 0x00
436 Difficulty: Medium
437 Urgency: Wishlist
438 Description: Splash screen
439  The vlc needs a splash screen with a vlc logo, instead of
440  the "waiting for stream" message.
441 Status: Todo
442
443