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