]> git.sesse.net Git - vlc/blob - TODO
Cosmetic cleanup (pointed out by fenrir)
[vlc] / TODO
1 # VLC Todo
2 # Difficulty values: Easy, Medium, Hard, Guru
3 #
4 # Urgency values: Wishlist, Normal, Important, Critical
5
6 Task
7 Difficulty: Easy
8 Urgency: Critical
9 Platform: any
10 Description: World domination
11  We need to dominate the world
12 Status: Todo
13
14 Task
15 Difficulty: Guru
16 Platform: any
17 Urgency: Critical
18 Description: Clock Synchro redesign
19 We need to adapt the clock synchro to work better with BOTH files and streams.
20 Status: Todo
21
22 Task
23 Difficulty: Hard
24 Urgency: Critical
25 Platform: Mac OS X
26 Description: CoreAudio multichannel audio output.
27  Convert to <a href="http://www.mat.ucsb.edu:8000/CoreAudio/108">AUHAL</a> based sytem.
28 Still no info over S/PDIF output available.
29 Outstanding issues:<br />
30  - G5 S/PDIF not working<br />
31  - G5 PCM not working because S/PDIF is selected by default, even if not connected.<br />
32 Status: Todo
33
34 Task
35 Difficulty: Medium
36 Platform: Any
37 Urgency: Critical
38 Description: fix subtitle regressions
39 Multi-line subtitles are not aligned correctly.<br />
40 Text subtitles don't work with 32bpp rgb.<br />
41 Investigate behaviour of subpictures when pausing.<br />
42 Status: Todo
43
44
45 Task
46 Difficulty: Easy to Difficult
47 Platform: Any
48 Urgency: Important
49 Description: Write some developer documentation
50 Perhaps a skeletal driver in each of the categories, what they need to
51 do, the design decisions, possibilities, or options that drivers in
52 a category might implement. If there is a canonical module for each 
53 category or modules that show the range of options that might be mentioned 
54 too.
55
56 Task
57 Difficulty: Easy
58 Platform: Mac OS X
59 Urgency: Normal
60 Description: Streaming wizard
61  Make a Streaming wizard for OS X
62 Status: Todo
63
64 Task
65 Difficulty: Easy
66 Platform: all
67 Urgency: Normal
68 Description: configure overview of modules
69  configure should report what it will and what it won't build, after it is done running.
70 Status: Todo
71
72 Task
73 Difficulty: Hard
74 Urgency: Normal
75 Platform: any
76 Description: Dual window in embed mode
77 Windows taskbar reports two windows in the video embed mode.
78 Status: Done
79
80 Task
81 Difficulty: Guru
82 Urgency: Normal
83 Platform: any
84 Description: Multi-input
85 * Many demuxers don't support it<br />
86 * Need GUI elements
87 Status: Assigned to fenrir
88
89 Task
90 Difficulty: Hard
91 Urgency: Normal
92 Platform: any
93 Description: make everything UTF-8 based
94  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.
95 Status: Todo
96
97 Task
98 Difficulty: Medium
99 Urgency: Normal
100 Platform: any
101 Description: Rewrite the SAP parser
102  The SAP parser is very dirty at the moment, and needs a complete rewrite.
103  - caching support<br />
104  - timeout support<br />
105  - add meta-information to playlist<br />
106  - session version support<br />
107 Status: Assigned to zorglub (80% done)
108
109 Task
110 Difficulty: Medium
111 Urgency: Normal
112 Platform: any
113 Description: Playlist II
114  A hierarchized playlist structure, eventually using a media library.
115 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 />
116 70% done.<br />
117 Todo:<br />
118 - Core support<br />
119    - *   "Name finder"<br />
120    - *   "Protocol rollover" node<br />
121    - *** Item moving/copying facilities<br />
122    - *   Ability to save playlist on quit<br />
123    - ?   Represent navigation structure as "fake items" ?  <br />
124    -     Custom playlist format<br />
125 - Helper modules<br />
126    - **  ASX and B4S parsers (see below)<br />
127    - *   Rewrite SLP announce discovery<br />
128    - *   Live directory representation<br /> 
129 - *** Implement in Skins 2 interfaces<br />
130 - wx implementation :<br />
131    - **  Support item move/copy<br />
132    - *   Explorer view<br />
133    - *   Playlist preferences panel<br />
134    - **  Improve iteminfo dialog<br />
135 Status: Assigned to zorglub
136
137 Task
138 Difficulty: Easy
139 Urgency: Normal
140 Platform: any
141 Description: Improve bookmarks
142  - Put them in the input_item structure to have them persistent
143  - Add an input option to play the whole file but starting at a given bookmark
144 Status: Todo
145
146 Task
147 Difficulty: Easy
148 Urgency: Normal
149 Platform: any
150 Description: fix ASX playlist parser
151 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/
152 Status: Todo
153
154 Task
155 Difficulty: Medium
156 Urgency: Normal
157 Platform: any
158 Description: fix current muxers.<br />
159 Our avi muxer doesn't produce valid files<br />
160 Status: Todo
161
162 Task
163 Difficulty: Easy
164 Urgency: Normal
165 Platform: Mac OS X
166 Description: LPCM
167 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.<br />
168 This is now fixed, but there is a problem with buffers in the resampler that now sometimes overflows (or rather get changed after they are released). A good method for reproduction seems to be running Finding Nemo for a minute or 8.
169 Status: Todo
170
171 Task
172 Difficulty: Hard
173 Urgency: Normal
174 Platform: Mac OS X
175 Description: New OS X preferences
176  New preferences for Mac OS X. Current not suited for Mac Users and several
177 Pref. elements are broken (hotkeys and int with string desc.).
178 Status: Todo
179
180 Task
181 Difficulty: Easy
182 Urgency: Normal
183 Platform: Mac OS X
184 Description: OS X bookmarks window
185 We miss a bookmarks window like the wxwidget one.
186 Status: Todo
187
188 Task
189 Difficulty: Medium
190 Urgency: Normal
191 Platform: Mac OS X
192 Description: Finish Mac Mozilla plugin
193 The Mac mozilla plugin needs some more work to be useable. Mostly done now,
194 needs testing.
195 Status: 90%
196
197 Task
198 Difficulty: Easy
199 Urgency: Normal
200 Platform: any
201 Description: Controlling the mozilla plugin
202 The mozilla plugin needs to be better controllable (via javascript). <br />
203 - retrieve variable values.<br />
204 - open VLC media player<br />
205 - default html page to control the plugin<br />
206 - XUL controls<br />
207 (80% done) see:<br />
208 <a href="http://sierra.via.ecp.fr/~zorglub/vlc/plugin/vlc.html">Javascript controls</a>
209 <a href="http://sierra.via.ecp.fr/~zorglub/vlc/xul/">XUL controls</a>
210 <a href="http://mplayerplug-in.sourceforge.net/">MPlayer Mozilla plugin</a>
211 Status: Assigned to zorglub
212
213 Task
214 Difficulty: Easy
215 Platform: Win32, Linux
216 Urgency: Normal
217 Description: equalizer fixes
218    - Gray out "reset to defaults" for audio equalizer when disabled<br />
219    - Once audio equalizer is disabled, it doesn't enable the first
220      try when you select from main menu. It only works a 2nd change
221      (enable flag not properly set?).
222  To have this work correctly, the best solution is to remove knowledge of
223  presets from the filter and give it to ... core ?
224 Status: Todo
225
226 Task
227 Difficulty: Medium
228 Platform: Win32, Linux
229 Urgency: Normal
230 Description: wxWidgets fixes
231  - Rename wxWindows to wxWidgets<br />
232  - Problems with slider (doesn't go where you click, keep updating while seeking
233 ?)<br />
234 Status: Todo
235
236 Task
237 Difficulty: Guru
238 Urgency: Normal
239 Platform: Mac OS X
240 Description: SVCD support
241 Support the cddax and vcdx modules for proper SVCD support. libcdio seems to work a tad flacky under OS X. Cause is unknown.
242 Status: Todo
243
244 Task
245 Difficulty: Hard
246 Urgency: Normal
247 Platform: any
248 Description: Stream text subtitles
249  Find a a way to stream text subtitles, in TS and in RTP.<br />
250  Needs testing and validating<br />
251  Currently broken.
252 Status: 65% (fenrir)
253
254 Task
255 Difficulty: Medium
256 Urgency: Normal
257 Platform: any
258 Description: RTSP server
259 Full implementation of a RTSP server. We already have a very basic implementation working but it does need a lot more work. See the following <a href="http://via.ecp.fr/via/ml/streaming/200408/msg00068.html">mail</a> and <a href="http://via.ecp.fr/via/ml/streaming/200410/msg00002.html">mail</a>.
260 Status: 90%
261
262 Task
263 Difficulty: Easy
264 Urgency: Normal
265 Platform: Win32/Linux
266 Description: V4L and dshow tuning support
267 We need an API that allows us to control the tuning of V4L and dshow TV cards.
268 Status: Todo (CryHavoc)
269
270 Task
271 Difficulty: Medium
272 Platform: any
273 Urgency: Wishlist
274 Description: RAR/ZIP/... access
275 An access module that would be able to uncompress compressed files.
276 Status: Todo
277
278 Task
279 Difficulty: Medium
280 Platform: any
281 Urgency: Wishlist
282 Description: DVTS support
283 DV over RTP support. See <a href="http://www.sfc.wide.ad.jp/DVTS/">DVTS homepage</a>
284 Status: Todo
285
286 Task
287 Difficulty: Hard
288 Platform: WinCE
289 Urgency: Wishlist
290 Description: WinCE port finalizing
291 The WinCE port needs a little maturing and optimization.
292 Status: Assigned to gibalou
293
294 Task
295 Difficulty: Medium
296 Urgency: Wishlist
297 Platform: any
298 Description: Full blown OSD system 
299  In the line of freevo etc.
300  (Checkout the correct svn branch)
301 Status: 80% done. Assigned to thedj, jpsaman and yoann
302
303 Task
304 Difficulty: Easy
305 Urgency: Wishlist
306 Platform: any
307 Description: GSM decoder
308 The <a href="http://kbs.cs.tu-berlin.de/~jutta/toast.html">Toast</a> implementation.
309 Status: Todo
310
311 Task
312 Difficulty: Easy
313 Urgency: Wishlist
314 Platform: any
315 Description: AMR decoder
316 We will need to find one that isn't based on the reference code.
317 Status: Todo
318
319 Task
320 Difficulty: Easy
321 Urgency: Wishlist
322 Platform: any
323 Description: MusePack decoder
324 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.
325 Status: Todo
326
327 Task
328 Difficulty: Easy
329 Urgency: Wishlist
330 Platform: any
331 Description: APE decoder
332 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.
333 Status: Todo
334
335 Task
336 Difficulty: Easy
337 Urgency: Wishlist
338 Platform: any
339 Description: flash video playing/streaming
340 A flash video muxer and demuxer. FFMPEG can already output flash video. a waste not to make use of that capability.
341 Status: Todo
342
343 Task
344 Difficulty: Medium
345 Urgency: Wishlist
346 Platform: any
347 Description: Closed Captions/Teletext support
348 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.<br />
349  - Use ZVBI library for VBI decoding and image generation<br />
350  - ESTI EN 300 472 for EBU teletext support in DVB<br />
351 Perhaps look at Xawtv, dvbtext and other vbi, vtx systems.
352 Status: Todo
353
354 Task
355 Difficulty: Medium
356 Urgency: Wishlist
357 Platform: any
358 Description: DVB info in NIT
359 We need to get the information of a DVB stream that are in the NIT (current program, next program, ...)
360 Status: Todo
361
362 Task
363 Difficulty: Medium
364 Urgency: Wishlist
365 Platform: any
366 Description: IceCast/ShoutCast serving
367 This would be a nice thing for the sake of completeness of VLC's streaming capabilities.
368 Status: Todo
369
370 Task
371 Difficulty: Easy
372 Urgency: Wishlist
373 Platform: any
374 Description: More/Better Picture filters
375 There are several picture filters (blend, scale), but we can use more (screenshot, crop, move..) We probably need on the fly picture filter insertion as well. (and also not-on-the-fly)<br />
376 - ideas for new filters are a greenwall filter, and a goom filter that mixes goom effects into the vout.
377 Status: Todo
378
379 Task
380 Difficulty: Guru
381 Urgency: Normal
382 Platform: any
383 Description: Vout redesign
384 - vout needs distinct splitting into vout_core, vout_window, pic_filter, vout_filter<br />
385 - needs 'assistance' vout windows (clone filters, goom) etc.<br />
386 - 4:3, 16:9, freeform Aspect Ratio<br />
387 - cropping and padding (do at OS level, but provide a core call to set it up and configure).<br />
388 - OSD at window resolution instead of video res (secondary vout channel)<br />
389 - a OSD needs to be bound to a vout stream (no subs on goom vout)<br />
390 - 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).<br />
391 - Allow a vout to reuse a window by resizing it (instead of closing and opening).
392 - better hotkeys integration
393 Status: Todo
394
395 Task
396 Difficulty: Medium
397 Urgency: Wishlist
398 Platform: any
399 Description: Subtitle work
400 - better SSA support with postioning, colors etc.<br />
401 Status: Todo
402
403 Task
404 Difficulty: Easy
405 Urgency: Wishlist
406 Platform: any
407 Description: Automatic charset recognition
408 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?
409 Status: Todo
410
411 Task
412 Difficulty: Guru
413 Urgency: Wishlist
414 Platform: Mac OS X
415 Description: skins2
416 Port VLC skins to Objective C++ and OSX. Also requires the intf to be a dialog provider. There is already some code in the VLC sourcetree.<br />
417 Hints:<br />
418  - In a first step, the need for a dialog provider can be easily omitted.<br />
419  - In theory, only a small amount of classes (6 or so) must be written for OS X, implementing predefined interfaces.<br />
420  - The code of <a href="http://www.fltk.org">FLTK</a> could be really helpful to identify the correct functions and see how to use them.
421 Status: Todo
422
423 Task
424 Difficulty: Hard
425 Urgency: Wishlist
426 Platform: any
427 Description: informing user.
428 Implement a system to: <br />
429  - Alert the user of critical errors (cannot play file). Should be blocking. <br />
430  - Ask the user a question (Are you sure? or Try to Fix index of avi? or Overwrite File?)<br />
431  - 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 /> 
432  - present a user/passwd dialog when we get an authentication failure on a stream.<br />
433 Implementation ideas: <br />
434  - via variables and callbacks. How to give answers back ?<br />
435  - via p_intf->pf_* functions.<br />
436 Status: Todo
437
438 Task
439 Difficulty: Hard
440 Urgency: Wishlist
441 Platform: any
442 Description: Full H323 Videoconferencing
443 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.
444 We also will need SIP support. A first implementation using a custom protocol is being made. 
445 Status: Todo
446
447 Task
448 Difficulty: Hard 
449 Urgency: Wishlist
450 Platform: Mac OS X
451 Description: QuickTime capturing
452 Allow capturing from QuickTime Firewire, USB and PCI devices.
453 Possibly see: <a href="http://bugzilla.videolan.org/cgi-bin/bugzilla/show_bug.cgi?id=416">Bug 416</a>
454 Status: Todo
455
456 Task
457 Difficulty: Easy
458 Urgency: Wishlist
459 Platform: any
460 Description: export paramaters of an input
461  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 />
462  - AR<br />
463  - size<br />
464  - bitrate<br />
465  - resolution<br />
466  - codecs, etc.<br />
467 Status: Todo
468
469 Task
470 Difficulty: Hard
471 Urgency: Wishlist
472 Platform: any
473 Description: statistics
474 Count packetloss, bandwith usage and fps for statistics.<br />
475 Status: Todo
476
477 Task
478 Difficulty: Hard
479 Urgency: Wishlist
480 Platform: any
481 Description: http cookies
482 For protected VoD  (http://a-select.surfnet.nl)
483 Status: Todo
484
485 Task
486 Difficulty: Easy
487 Urgency: Wishlist
488 Platform: any
489 Description: Progressive download playing
490 Allow application/vlc mimetype to launch VLC instead of plugin for video file.
491 Allows for Progressive download to TEMP folder from browsers. VLC would play the file in the TEMP.
492 Status: Todo
493
494 Task
495 Difficulty: Medium
496 Urgency: Wishlist
497 Platform: any
498 Description: rendezvous announces
499 Apple released the rendezvous code under a Open Source license now. perhaps it can be used. (It's OpenTalk now btw).<br />
500 Note: the licence is probably not DFSG compatible. Alternative mDNS implementations exist<br />
501 DMAP protocol announce for videos.
502 Status: Partly done (DAAP only)
503
504 Task
505 Difficulty: Easy
506 Urgency: Wishlist
507 Platform: any
508 Description: SDL vout cleaning
509 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.
510 Status: Todo
511
512 Task
513 Difficulty: Easy
514 Urgency: Wishlist
515 Platform: any
516 Description: Electronic Program Guide
517 Integrate a EPG system into VLC.
518 Status: Todo (CryHavoc)
519
520 Task
521 Difficulty: Hard
522 Urgency: Wishlist
523 Platform: any
524 Description: a Time Shifting module
525 This module should create TiVo like capabilities for VLC.
526 Status: Todo (CryHavoc)
527
528 Task
529 Difficulty: Medium
530 Urgency: Wishlist
531 Platform: any
532 Description: UDP packet reordering
533 Currently we ignore every packet that is too late and just wait for a fresh one.
534 It would be nice to be able to reorder the packets in the buffer to prevent degredation of the signal.
535 Status: Todo
536
537 Task
538 Difficulty: Easy
539 Urgency: Wishlist
540 Platform: any
541 Description: Make vlm more user friendly (setup etc)
542 vlm is kinda a pain to setup if you are not entirely experienced with A/V and streaming or VLC for that matter.<br />
543 It can be heavily improved by updating the vlm http interface. Using seperate fields for the need paramters of a schedule/source.<br />
544 Also, GUI implementation.
545 Status: Todo
546
547 Task
548 Difficulty: Easy
549 Urgency: Wishlist
550 Platform: any
551 Description: Protocol rollover
552 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.
553 However, how spec compliant can this be?<br />
554 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]).
555 Status: Todo
556
557 Task
558 Difficulty: Hard
559 Urgency: Wishlist
560 Platform: any
561 Description: NAT issues
562 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 ????
563 Protocol rollover can be a solution for a lot of these issues.
564 Use full DNS names in SDP
565 Status: Todo
566
567 Task
568 Difficulty: Medium
569 Urgency: Wishlist
570 Platform: any
571 Description: Gstreamer and Helix API integration
572 See if you can support GStreamer and helix plugins in one way or another.
573 Status: Todo
574
575 Task
576 Difficulty: Easy
577 Urgency: Wishlist
578 Platform: any
579 Description: Gnome-vfs support
580 For integration with smb, sftp and other file sharing/mounting methods
581 Status: Todo
582
583 Task
584 Difficulty: Hard
585 Platform: any
586 Urgency: Wishlist
587 Description: Matroska muxer
588  We need one :)
589 Status: Todo
590
591 Task
592 Difficulty: Medium
593 Platform: any
594 Urgency: Wishlist
595 Description: TTA decoder
596   TTA is said to be a fast en good lossless codec. Opensource library
597   availabe: http://tta.corecodec.org/
598 Status: Todo
599
600 Task
601 Difficulty: Medium
602 Platform: any
603 Urgency: Wishlist
604 Description: Option to automatically deinterlace when needed
605   Mkv stores wether a video track is interlaced in the traxk descriptor
606   libmpeg2 etc output this information in the header AND on a per-picture basis
607 Status: Todo
608
609 Task
610 Difficulty: Easy
611 Platform: any
612 Urgency: Wishlist
613 Description: UDF decoder
614 Support for the new XML based subtitle format called UDF
615 Status: Todo
616
617 Task
618 Difficulty: Hard
619 Platform: any
620 Urgency: Wishlist
621 Description: Faster deinterlacing
622 Our deinterlacers are relatively slow. DScaler has the best Soft deinterlacers out there.
623 Unfortunatly it is very Win32 focused.
624 Status: Todo
625
626 Task
627 Difficulty: Medium
628 Platform: any
629 Urgency: Wishlist
630 Description: More service discovery modules
631 - Port UPnP support from http://sourceforge.net/project/showfiles.php?group_id=89768 <br />
632 - libhal based discovery (should be able to find cd, dvd, capture cards, etc etc <br />
633 - Perhaps a generalized webpage parser (use user supplied templates to parse
634    streams from popular websites )
635 Status: Todo
636
637 Task
638 Difficulty: Easy
639 Platform: win32
640 Urgency: Wishlist
641 Description: file filters in the open dialog
642 Have default filters in the open dialog. like:
643 All files<br />
644 Sound Files( .mp3, .ogg, .wav, .m4a, .m4p)<br />
645 Video Files( .avi, .mkv, .mov, .mpg, .m2v, etc)<br />
646 Subtitle Files( .idx, .sub, .utf, .srt)<br />
647 Status: Todo
648
649
650 # Do not remove me
651 Task