* src/misc/modules.c: pfff nobody found this one... you just lost the contest guys.
[vlc.git] / TODO
blob309672b239a4d3566e5b572b44badc902e264363
1 # VLC Todo\r
2 # Difficulty values: Easy, Medium, Hard, Guru\r
3 #\r
4 # Urgency values: Wishlist, Normal, Important, Critical\r
5 \r
6 Task\r
7 Difficulty: Easy\r
8 Urgency: Critical\r
9 Platform: any\r
10 Description: World domination\r
11  We need to dominate the world\r
12 Status: Todo\r
14 Task\r
15 Difficulty: Medium\r
16 Urgency: Critical\r
17 Platform: any\r
18 Description: pointers in int\r
19  We have been very persistent in storing pointers in int's. We knew this was gonna hunt us one day.\r
20 The time is near. See this forum <a href="http://forum.videolan.org/viewtopic.php?p=14378">post</a>.\r
21 Status: Todo\r
23 Task\r
24 Difficulty: Medium\r
25 Platform: any\r
26 Urgency: Wishlist\r
27 Description: RAR/ZIP/... access\r
28 An access module that would be able to uncompress compressed files.\r
29 Status: Todo\r
31 Task\r
32 Difficulty: Medium\r
33 Platform: any\r
34 Urgency: Wishlist\r
35 Description: DVTS support\r
36 DV over RTP support. See <a href="http://www.sfc.wide.ad.jp/DVTS/">DVTS homepage</a>\r
37 Status: Todo\r
39 Task\r
40 Difficulty: Easy\r
41 Platform: any\r
42 Urgency: Urgent\r
43 Description: proper DVD controls\r
44 Most importantly a proper button that will take you straight to the DVD menu. But also, next/prev chapter should be integrated with next/prev playlistitem.\r
45 Status: Todo\r
47 Task\r
48 Difficulty: Easy\r
49 Platform: Linux, Win32, Mac OS X\r
50 Urgency: Normal\r
51 Description: Streaming wizard\r
52  Finish the streaming wizard (85% finished)<br />\r
53 The mac version is at 0%\r
54 Status: Assigned to zorglub\r
56 Task\r
57 Difficulty: Easy\r
58 Platform: all\r
59 Urgency: Normal\r
60 Description: configure overview of modules\r
61  configure should report what it will and what it won't build, after it is done running.\r
62 Status: Todo\r
64 Task\r
65 Difficulty: Hard\r
66 Platform: WinCE\r
67 Urgency: Wishlist\r
68 Description: WinCE port finalizing\r
69 Sources need to be imported into the VLC source tree.\r
70 Downloads should be added to the main vlc download page. We need an icon for this. \r
71 Status: Assigned to MixerAnderson\r
73 Task\r
74 Difficulty: Hard\r
75 Urgency: Normal\r
76 Platform: any\r
77 Description: Dual window in embed mode\r
78 Windows taskbar reports two windows in the video embed mode.\r
79 Status: Assigned to gibalou\r
81 Task\r
82 Difficulty: Guru\r
83 Urgency: Normal\r
84 Platform: any\r
85 Description: External audio file playing\r
86  Allow several access from an input thread to allow for multi-input<br />\r
87 (90% done) Add GUI elements\r
88 Status: Assigned to fenrir\r
90 Task\r
91 Difficulty: Hard\r
92 Urgency: Normal\r
93 Platform: any\r
94 Description: make everything UTF-8 based\r
95  Convert everything that deals with strings to a UTF-8 based system. Not very difficult, but needs a lot of checking, testing and allows for easy breakage.\r
96 Status: Todo\r
98 Task\r
99 Difficulty: Medium\r
100 Urgency: Wishlist\r
101 Platform: any\r
102 Description: Full blown OSD system \r
103  In the line of freevo etc.\r
104 Status: Todo\r
106 Task\r
107 Difficulty: Medium\r
108 Urgency: Normal\r
109 Platform: any\r
110 Description: Rewrite the SAP parser\r
111  The SAP parser is very dirty at the moment, and needs a complete rewrite.\r
112  - caching support<br />\r
113 Mostly finished. Closely tied to the new playlist system\r
114 Status: Assigned to zorglub\r
116 Task\r
117 Difficulty: Medium\r
118 Urgency: Normal\r
119 Platform: any\r
120 Description: Tree playlist\r
121  A hierarchized playlist structure, eventually using a media library.\r
122 Think playlist within playlist, directory structures, SAP section, TV channels list, iTunes library like stuff etc. <a href="http://sierra.via.ecp.fr/~zorglub/vlc/playlist.txt">Thoughts and ideas (not up-to-date)</a><br />\r
123 Mostly finished. will be done after 0.8.0\r
124 Status: Assigned to zorglub\r
126 Task\r
127 Difficulty: Easy\r
128 Urgency: Normal\r
129 Platform: any\r
130 Description: fix ASX playlist parser\r
131 Basically our asx parser is broken. It doesn't handle relative links. It should also URL encode the hrefs (spaces in the url need to be converted to %20 etc). protocol rollover, authors, title's etc etc aren't handled. See <a href="http://www.meetnewplayers.com/bend/Windows%20Media%20-%20Fun%20with%20asx%20files2.htm">this</a> for asx examples. It is still located in the old demux/m3u.c module instead of modules/demux/playlist/\r
132 Status: Todo\r
134 Task\r
135 Difficulty: Medium\r
136 Urgency: Normal\r
137 Platform: any\r
138 Description: fix current muxers.\r
139 Our avi and mov muxer don't produce valid files\r
140 Status: Todo\r
142 Task\r
143 Task\r
144 Difficulty: Easy\r
145 Urgency: Wishlist\r
146 Platform: any\r
147 Description: GSM decoder\r
148 The <a href="http://kbs.cs.tu-berlin.de/~jutta/toast.html">Toast</a> implementation.\r
149 Status: Todo\r
151 Task\r
152 Difficulty: Easy\r
153 Urgency: Wishlist\r
154 Platform: any\r
155 Description: AMR decoder\r
156 We will need to find one that isn't based on the reference code.\r
157 Status: Todo\r
159 Task\r
160 Difficulty: Easy\r
161 Urgency: Wishlist\r
162 Platform: any\r
163 Description: MusePack decoder\r
164 Need I say more? <a href="http://www.hydrogenaudio.org/index.php?showtopic=21775&">MPCdec</a>. We are awaiting MPC 7.5 or 8.0 specification which should split the codec from the fileformat.\r
165 Status: Todo\r
167 Task\r
168 Difficulty: Easy\r
169 Urgency: Normal\r
170 Platform: any\r
171 Description: 24 bit LPCM\r
172 - Increasingly more DVDs use 24 bit LPCM sound. We should support it.\r
173 Status: Todo\r
175 Task\r
176 Difficulty: Easy\r
177 Urgency: Normal\r
178 Platform: Mac OS X\r
179 Description: LPCM\r
180 The LPCM decoder outputs really small samples which aren't accepted properly by the macosx coreaudio resampler, causing VLC to not output any sound with many DVD's. A test sample that shows this effect on the mac is the Madonna clip.\r
181 Status: Todo\r
183 Task\r
184 Difficulty: Easy\r
185 Urgency: Wishlist\r
186 Platform: any\r
187 Description: APE decoder\r
188 Need I say more? <a href="http://www.monkeysaudio.com/">Monkeys Audio (APE)</a> website. This codec is currently not GPL compatible. We will have to await a GPL compatible implementation of this.\r
189 Status: Todo\r
191 Task\r
192 Difficulty: Easy\r
193 Urgency: Wishlist\r
194 Platform: any\r
195 Description: flash video playing/streaming\r
196 A flash video muxer and demuxer. FFMPEG can already output flash video. a waste not to make use of that capability.\r
197 Status: Todo\r
199 Task\r
200 Difficulty: Medium\r
201 Urgency: Wishlist\r
202 Platform: any\r
203 Description: Closed Captions/Teletext support\r
204 In order to conform to international regulations, VLC needs to be able to decode the closed captions in TV, DVD, DVB and HDTV video. V4L has a CC api, DVD and HDTV usually have them in a seperate stream.\r
205 Perhaps look at Xawtv, dvbtext and other vbi, vtx systems.\r
206 Status: Todo\r
208 Task\r
209 Difficulty: Medium\r
210 Urgency: Wishlist\r
211 Platform: any\r
212 Description: DVB info in NIT\r
213 We need to get the information of a DVB stream that are in the NIT (current program, next program, ...)\r
214 Status: Todo\r
216 Task\r
217 Difficulty: Medium\r
218 Urgency: Wishlist\r
219 Platform: any\r
220 Description: IceCast/ShoutCast serving\r
221 This would be a nice thing for the sake of completeness of VLC's streaming capabilities.\r
222 Status: Todo\r
224 Task\r
225 Difficulty: Hard\r
226 Urgency: Normal\r
227 Platform: Mac OS X\r
228 Description: New OS X preferences\r
229  New preferences for Mac OS X. Current not suited for Mac Users and several\r
230 Pref. elements are broken (hotkeys and int with string desc.).\r
231 Status: Todo\r
233 Task\r
234 Difficulty: Easy\r
235 Urgency: Normal\r
236 Platform: Mac OS X\r
237 Description: OS X bookmarks window\r
238 We miss a bookmarks window like the wxwidget one.\r
239 Status: Todo\r
241 Task\r
242 Difficulty: Hard\r
243 Urgency: Critical\r
244 Platform: Mac OS X\r
245 Description: CoreAudio multichannel audio output.\r
246  Convert to <a href="http://www.mat.ucsb.edu:8000/CoreAudio/108">AUHAL</a> based sytem.\r
247 Still no info over S/PDIF output available.\r
248 Outstanding issues:<br />\r
249  - G5 S/PDIF not working<br />\r
250  - G5 PCM not working because S/PDIF is selected by default, even if not connected.<br />\r
251 Status: Todo\r
253 Task\r
254 Difficulty: Hard\r
255 Urgency: Normal\r
256 Platform: any\r
257 Description: Stream text subtitles\r
258  Find a a way to stream text subtitles, in TS and in RTP.\r
259   - Find an existing norm\r
260   - Implement it\r
261 <br />Needs testing and validating\r
262 Status: 65% (fenrir)\r
264 Task\r
265 Difficulty: Medium\r
266 Urgency: Normal\r
267 Platform: any\r
268 Description: RTSP server\r
269 Full implementation of a RTSP server.\r
270 Status: 90%\r
272 Task\r
273 Difficulty: Medium\r
274 Urgency: Normal\r
275 Platform: any\r
276 Description: Add VoD module for VLM\r
277 Add a VoD module for VLM, so that we can create a RTSP server that can\r
278 provide unicast RTSP sessions upon contacting the VoD module. See the following\r
279 <a href="http://via.ecp.fr/via/ml/streaming/200408/msg00082.html">mail</a>.\r
280 Status: 85% done\r
282 Task\r
283 Difficulty: Easy\r
284 Urgency: Wishlist\r
285 Platform: any\r
286 Description: More Picture filters\r
287 There are several picture filters (blend, scale), but we can use more (crop, move..)\r
288 Status: Todo\r
290 Task\r
291 Difficulty: Guru\r
292 Urgency: Wishlist\r
293 Platform: any\r
294 Description: Vout redesign\r
295 - vout needs distinct splitting into vout_core, vout_window, pic_filter, vout_filter\r
296 - needs 'assistence' vout windows (clone filters, goom) etc.\r
297 - 4:3, 16:9, freeform Aspect Ratio\r
298 - cropping and padding (do at OS level, but provide a core call to set it up and configure).\r
299 - OSD at window resolution instead of video res (secondary vout channel)\r
300 - a OSD needs to be bound to a vout stream (no subs on goom vout)\r
301 - Use OS native calls where appropriate, with 'C' fallbacks. (OpenGL, Quartz, DirectX already has many of the funtionalities we seek and sometimes they are a lot faster too).\r
302 Status: Todo\r
304 Task\r
305 Difficulty: Medium\r
306 Urgency: Wishlist\r
307 Platform: any\r
308 Description: Subtitle work\r
309 - better SSA support with postioning, colors etc.\r
310 - Vobsub seeking\r
311 - Fix subtitles dialogs (mac done)\r
312 Status: Todo\r
314 Task\r
315 Difficulty: Easy\r
316 Urgency: Wishlist\r
317 Platform: any\r
318 Description: Automatic charset recognition\r
319 See if we can use <a href="http://trific.ath.cx/software/enca/">ENCA</a> for automatic charset recognition on subtitle files. Might simplify usage of sub files a lot? Might require complete file to be parsed by ENCA before good result is returned?\r
320 Status: Todo\r
322 Task\r
323 Difficulty: Guru\r
324 Urgency: Wishlist\r
325 Platform: Mac OS X\r
326 Description: skins2\r
327 Port VLC skins to Objective C++ and OSX. Also requires the intf to be a dialog handler.\r
328 Status: Todo\r
330 Task\r
331 Difficulty: Hard\r
332 Urgency: Wishlist\r
333 Platform: any\r
334 Description: informing user.\r
335 Implement a system to: <br />\r
336  - Alert the user of critical errors (cannot play file). Should be blocking. <br />\r
337  - Ask the user a question (Are you sure? or Try to Fix index of avi? or Overwrite File?)<br />\r
338  - Inform the user, without disturbing him. (Buffering stream). This might require a displaytime or something. Because how do we know how long this information should be displayed? Also think of buffering 0-100%<br /> \r
339  - present a user/passwd dialog when we get an authentication failure on a stream.<br />\r
340 Status: Todo\r
342 Task\r
343 Difficulty: Hard\r
344 Urgency: Wishlist\r
345 Platform: any\r
346 Description: Full H323 Videoconferencing\r
347 VLC isn't really suited for this yet, because it introduces quite large latencies. This should be fixed before the H323 can ever come close to working in VLC.\r
348 We also will need SIP support.\r
349 Status: Todo\r
351 Task\r
352 Difficulty: Guru\r
353 Urgency: Normal\r
354 Platform: Mac OS X\r
355 Description: SVCD support\r
356 libcdio needs to be ported to the Mac to support the cddax and vcdx modules for proper SVCD support\r
357 Status: Todo\r
359 Task\r
360 Difficulty: Hard \r
361 Urgency: Wishlist\r
362 Platform: Mac OS X\r
363 Description: QuickTime capturing\r
364 Allow capturing from QuickTime Firewire, USB and PCI devices.\r
365 Possibly see: <a href="http://bugzilla.videolan.org/cgi-bin/bugzilla/show_bug.cgi?id=416">Bug 416</a>\r
366 Status: Todo\r
368 Task\r
369 Difficulty: Medium\r
370 Urgency: Normal\r
371 Platform: Mac OS X\r
372 Description: Finish Mac Mozilla plugin\r
373 The Mac mozilla plugin needs some more work to be useable. Basic funtionality is working. However the video-output part needs some more work since it was crashing. See svn history for the old code. \r
374 Status: Halfway (stalled)\r
376 Task\r
377 Difficulty: Easy\r
378 Urgency: Normal\r
379 Platform: any\r
380 Description: Controlling the mozilla plugin\r
381 The mozilla plugin needs to be better controllable (via javascript). <br />\r
382 - retrieve variable values.<br />\r
383 - open VLC media player<br />\r
384 - default html page to control the plugin<br />\r
385 - XUL controls<br />\r
386 (80% done) see:<br />\r
387 <a href="http://sierra.via.ecp.fr/~zorglub/vlc/plugin/vlc.html">Javascript controls</a>\r
388 <a href="http://sierra.via.ecp.fr/~zorglub/vlc/xul/">XUL controls</a>\r
389 <a href="http://mplayerplug-in.sourceforge.net/">MPlayer Mozilla plugin</a>\r
390 Status: Assigned to zorglub\r
392 Task\r
393 Difficulty: Hard\r
394 Urgency: Wishlist\r
395 Platform: Windows\r
396 Description: ActiveX control for VLC\r
397  We need an ActiveX version of VLC for IE intergration\r
398 Status: Todo\r
400 Task\r
401 Difficulty: Easy\r
402 Urgency: Wishlist\r
403 Platform: any\r
404 Description: export paramaters of an input\r
405  Export the Media Info of a file/source to a standard xml file for use by other applications. Possibly combine with file "probe'ing".<br />\r
406  - AR<br />\r
407  - size<br />\r
408  - bitrate<br />\r
409  - resolution<br />\r
410  - codecs, etc.<br />\r
411 Status: Todo\r
413 Task\r
414 Difficulty: Easy\r
415 Urgency: Wishlist\r
416 Platform: any\r
417 Description: SSL http\r
418 SSL encrypted HTTP communication. To support protected VoD.<br />\r
419 The question is how to neatly integrate it into our API. Support for all our http handling plugins means complicating the API. Perhaps we should store the SSL context in the p_sys of the vlc_object that is calling it? Tad dangerous, but would keep stuff simple.\r
420 Status: Todo\r
422 Task\r
423 Difficulty: Hard\r
424 Urgency: Wishlist\r
425 Platform: any\r
426 Description: http cookies\r
427 For protected VoD  (http://a-select.surfnet.nl)\r
428 Status: Todo\r
430 Task\r
431 Difficulty: Easy\r
432 Urgency: Wishlist\r
433 Platform: any\r
434 Description: mime-type VLC launching\r
435 Allow application/vlc mimetype to launch VLC instead of plugin for video file.\r
436 Allows for Progressive download to TEMP folder from browsers. VLC would play the file in the TEMP.\r
437 Status: Todo\r
439 Task\r
440 Difficulty: Medium\r
441 Urgency: Wishlist\r
442 Platform: any\r
443 Description: rendezvous announces\r
444 Apple released the rendezvous code under a Open Source license now. perhaps it can be used. (It's OpenTalk now btw).<br />\r
445 DMAP protocol announce for videos.\r
446 Status: Todo\r
448 Task\r
449 Difficulty: Easy\r
450 Urgency: Wishlist\r
451 Platform: any\r
452 Description: SDL vout cleaning\r
453 The SDL vout hasn't been updated for a long while. It needs some cleaning up. New hotkeys support, better resizing, alignment etc. Even though SDL isn't used much, this vout shouldn't disappear, because it is a crossplatform API.\r
454 Status: Todo\r
456 Task\r
457 Difficulty: Easy\r
458 Urgency: Normal\r
459 Platform: Win32/Linux\r
460 Description: V4L and dshow tuning support\r
461 We need an API that allows us to control the tuning of V4L and dshow TV cards.\r
462 Status: Todo (CryHavoc)\r
464 Task\r
465 Difficulty: Easy\r
466 Urgency: Wishlist\r
467 Platform: any\r
468 Description: Electronic Program Guide\r
469 Integrate a EPG system into VLC.\r
470 Status: Todo (CryHavoc)\r
472 Task\r
473 Difficulty: Hard\r
474 Urgency: Wishlist\r
475 Platform: any\r
476 Description: a Time Shifting module\r
477 This module should create TiVo like capabilities for VLC.\r
478 Status: Todo (CryHavoc)\r
480 Task\r
481 Difficulty: Medium\r
482 Urgency: Wishlist\r
483 Platform: any\r
484 Description: UDP packet reordering\r
485 Currently we ignore every packet that is too late and just wait for a fresh one.\r
486 It would be nice to be able to reorder the packets in the buffer to prevent degredation of the signal.\r
487 Status: Todo\r
489 Task\r
490 Difficulty: Easy\r
491 Urgency: Wishlist\r
492 Platform: any\r
493 Description: Make vlm more user friendly (setup etc)\r
494 vlm is kinda a pain to setup if you are not entirely experienced with A/V and streaming or VLC for that matter. It can be heavily improved by updating the vlm http interface. Using seperate fields for the need paramters of a schedule/source.\r
495 Status: Todo\r
497 Task\r
498 Difficulty: Easy\r
499 Urgency: Wishlist\r
500 Platform: any\r
501 Description: Protocol rollover\r
502 It would be cool if VLC supported something like a protocol rollover mechanism, much like WM server has as well. Multicast, UDP, TCP, HTTP etc.\r
503 However, how spec compliant can this be?<br />\r
504 We require a timeout on udp connecting. Beyond this a playlist file can be used to do a form of protocol rollover when one of the links fails ( or implement this in the new style playlist system [only advance index on failure]).\r
505 Status: Todo\r
507 Task\r
508 Difficulty: Hard\r
509 Urgency: Wishlist\r
510 Platform: any\r
511 Description: NAT issues\r
512 Find a way to deal with clients behind a NAT. Multicast and RTSP work 'poorly' in these setups. NATP2P, STUN, UDP hole punching, other techniques ????\r
513 Protocol rollover can be a solution for a lot of these issues.\r
514 Use full DNS names in SDP\r
515 Status: Todo\r
517 Task\r
518 Difficulty: Medium\r
519 Urgency: Wishlist\r
520 Platform: any\r
521 Description: Gstreamer and Helix API integration\r
522 See if you can support GStreamer and helix plugins in one way or another.\r
523 Status: Todo\r
525 Task\r
526 Difficulty: Easy\r
527 Urgency: Wishlist\r
528 Platform: any\r
529 Description: Gnome-vfs support\r
530 For integration with smb, sftp and other file sharing/mounting methods\r
531 Status: Todo\r
533 Task\r
534 Difficulty: Medium\r
535 Platform: any\r
536 Urgency: Normal\r
537 Description: Update matroska demux\r
538  Better Seeking\r
539 Status: Todo\r
541 Task\r
542 Difficulty: Hard\r
543 Platform: any\r
544 Urgency: Wishlist\r
545 Description: Matroska muxer\r
546 Status: Todo\r
548 Task\r
549 Difficulty: Medium\r
550 Platform: any\r
551 Urgency: Wishlist\r
552 Description: TTA decoder\r
553   TTA is said to be a fast en good lossless codec. Opensource library\r
554   availabe: http://tta.corecodec.org/\r
555 Status: Todo\r
557 Task\r
558 Difficulty: Medium\r
559 Platform: any\r
560 Urgency: Wishlist\r
561 Description: Option to automatically deinterlace when needed\r
562   Mkv stores wether a video track is interlaced in the traxk descriptor\r
563   libmpeg2 etc output this information on a per-picture bases\r
564 Status: Todo\r
566 Task\r
567 Difficulty: Easy\r
568 Platform: any\r
569 Urgency: Wishlist\r
570 Description: UDF decoder\r
571 Support for the new XML based subtitle format called UDF\r
572 Status: Todo\r
574 Task\r
575 Difficulty: Hard\r
576 Platform: any\r
577 Urgency: Wishlist\r
578 Description: Faster deinterlacing\r
579 Our deinterlacers are relatively slow. DScaler has the best Soft deinterlacers out there.\r
580 Unfortunatly it is very Win32 focused.\r
582 Status: Todo\r
585 # Do not remove me\r
586 Task\r