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