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