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