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