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