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