]> git.sesse.net Git - vlc/blob - TODO
* modules/access/udp.c: When udp is invoked as 'rtp:', only consider RTP
[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: Important
38 Description: Update matroska demux
39  Better Seeking
40 Status: Todo
41
42 Task
43 Difficulty: Easy
44 Platform: any
45 Urgency: Important
46 Description: proper DVD controls
47 Most importantly a proper button that will take you straight to the DVD menu. But also, next/prev chapter should be integrated with next/prev playlistitem.
48 Status: Todo
49
50 Task
51 Difficulty: Easy
52 Platform: Linux, Win32, Mac OS X
53 Urgency: Normal
54 Description: Streaming wizard
55  Finish the streaming wizard (85% finished)<br />
56 The mac version is at 0%
57 Status: Assigned to zorglub
58
59 Task
60 Difficulty: Easy
61 Platform: all
62 Urgency: Normal
63 Description: configure overview of modules
64  configure should report what it will and what it won't build, after it is done running.
65 Status: Todo
66
67 Task
68 Difficulty: Hard
69 Urgency: Normal
70 Platform: any
71 Description: Dual window in embed mode
72 Windows taskbar reports two windows in the video embed mode.
73 Status: Done
74
75 Task
76 Difficulty: Guru
77 Urgency: Normal
78 Platform: any
79 Description: External audio file playing
80  Allow several access from an input thread to allow for multi-input<br />
81 (90% done) Add GUI elements
82 Status: Assigned to fenrir
83
84 Task
85 Difficulty: Hard
86 Urgency: Normal
87 Platform: any
88 Description: make everything UTF-8 based
89  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.
90 Status: Todo
91
92 Task
93 Difficulty: Medium
94 Urgency: Normal
95 Platform: any
96 Description: Rewrite the SAP parser
97  The SAP parser is very dirty at the moment, and needs a complete rewrite.
98  - caching support<br />
99  - timeout support<br />
100  - add meta-information to playlist<br />
101  - session version support<br />
102 Status: Assigned to zorglub (80% done)
103
104 Task
105 Difficulty: Medium
106 Urgency: Normal
107 Platform: any
108 Description: Playlist II
109  A hierarchized playlist structure, eventually using a media library.
110 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 />
111 50% done.<br />
112 Todo:<br />
113 - Core support<br />
114    - *   "Name finder"<br />
115    - *   "Protocol rollover" node<br />
116    - *** Item moving/copying facilities<br />
117    - *   Ability to save playlist on quit<br />
118    - ?   Represent navigation structure as "fake items" ?  <br />
119    -     Custom playlist format<br />
120 - Helper modules<br />
121    - **  ASX and B4S parsers (see below)<br />
122    - *   Rewrite SLP announce discovery<br />
123    - *   Live directory representation<br /> 
124 - *** Implement in MacOS X and Skins 2 interfaces<br />
125 - wx implementation :<br />
126    - **  Support item move/copy<br />
127    - *   Explorer view<br />
128    - *   Playlist preferences panel<br />
129    - **  Improve iteminfo dialog<br />
130 Status: Assigned to zorglub
131
132 Task
133 Difficulty: Easy
134 Urgency: Normal
135 Platform: any
136 Description: Improve bookmarks
137  - Put them in the input_item structure to have them persistent
138  - Add an input option to play the whole file but starting at a given bookmark
139 Status: Todo
140
141 Task
142 Difficulty: Easy
143 Urgency: Normal
144 Platform: Win32, Linux
145 Description: DVD controls panel
146   A small panel that would popup (below the slider, for example) when playing
147   a DVD with controls such as "up, down, right, left, next chapter, prev chapter, back to menu, ..."
148 Status: Todo
149
150 Task
151 Difficulty: Easy
152 Urgency: Normal
153 Platform: any
154 Description: fix ASX playlist parser
155 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/
156 Status: Todo
157
158 Task
159 Difficulty: Medium
160 Urgency: Normal
161 Platform: any
162 Description: fix current muxers.
163 Our avi muxer doesn't produce valid files
164 Status: Todo
165
166 Task
167 Difficulty: Easy
168 Urgency: Normal
169 Platform: any
170 Description: 24 bit LPCM
171 - Increasingly more DVDs use 24 bit LPCM sound. We should support it.
172 Status: Todo
173
174 Task
175 Difficulty: Easy
176 Urgency: Normal
177 Platform: Mac OS X
178 Description: LPCM
179 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.
180 Status: Todo
181
182 Task
183 Difficulty: Hard
184 Urgency: Normal
185 Platform: Any
186 Description: Rework of the preferences
187  * New information in preferences for a rework of how preferences are sorted in interfaces
188  * New widget types
189  See http://www.via.ecp.fr/via/ml/vlc-devel/200409/msg00409.html
190 Status: Assigned to zorglub
191
192 Task
193 Difficulty: Hard
194 Urgency: Normal
195 Platform: Mac OS X
196 Description: New OS X preferences
197  New preferences for Mac OS X. Current not suited for Mac Users and several
198 Pref. elements are broken (hotkeys and int with string desc.).
199 Status: Todo
200
201 Task
202 Difficulty: Easy
203 Urgency: Normal
204 Platform: Mac OS X
205 Description: OS X bookmarks window
206 We miss a bookmarks window like the wxwidget one.
207 Status: Todo
208
209 Task
210 Difficulty: Medium
211 Urgency: Normal
212 Platform: Mac OS X
213 Description: Finish Mac Mozilla plugin
214 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. 
215 Status: Halfway (stalled)
216
217 Task
218 Difficulty: Easy
219 Urgency: Normal
220 Platform: any
221 Description: Controlling the mozilla plugin
222 The mozilla plugin needs to be better controllable (via javascript). <br />
223 - retrieve variable values.<br />
224 - open VLC media player<br />
225 - default html page to control the plugin<br />
226 - XUL controls<br />
227 (80% done) see:<br />
228 <a href="http://sierra.via.ecp.fr/~zorglub/vlc/plugin/vlc.html">Javascript controls</a>
229 <a href="http://sierra.via.ecp.fr/~zorglub/vlc/xul/">XUL controls</a>
230 <a href="http://mplayerplug-in.sourceforge.net/">MPlayer Mozilla plugin</a>
231 Status: Assigned to zorglub
232
233 Task
234 Difficulty: Easy
235 Platform: Win32, Linux
236 Urgency: Normal
237 Description: equalizer fixes
238     - Gray out "reset to defaults" for audio equalizer when disabled<br />
239    - Once audio equalizer is disabled, it doesn't enable the first
240      try when you select from main menu. It only works a 2nd change
241      (enable flag not properly set?).
242 Status: Todo
243
244 Task
245 Difficulty: Medium
246 Platform: Win32, Linux
247 Urgency: Normal
248 Description: wxWidgets fixes
249  - Rename wxWindows to wxWidgets<br />
250  - Problems with slider (doesn't go where you click, keep updating while seeking
251 ?)<br />
252  - Reversed arrows
253 Status: Todo
254
255 Task
256 Difficulty: Guru
257 Urgency: Normal
258 Platform: Mac OS X
259 Description: SVCD support
260 libcdio needs to be ported to the Mac to support the cddax and vcdx modules for proper SVCD support
261 Status: Todo
262
263 Task
264 Difficulty: Hard
265 Urgency: Normal
266 Platform: any
267 Description: Stream text subtitles
268  Find a a way to stream text subtitles, in TS and in RTP.<br />
269  Needs testing and validating
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) and an interface.
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
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 Status: 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.
395 Status: Todo
396
397 Task
398 Difficulty: Guru
399 Urgency: Wishlist
400 Platform: any
401 Description: Vout redesign
402 - vout needs distinct splitting into vout_core, vout_window, pic_filter, vout_filter
403 - needs 'assistence' vout windows (clone filters, goom) etc.
404 - 4:3, 16:9, freeform Aspect Ratio
405 - cropping and padding (do at OS level, but provide a core call to set it up and configure).
406 - OSD at window resolution instead of video res (secondary vout channel)
407 - a OSD needs to be bound to a vout stream (no subs on goom vout)
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).
409 Status: Todo
410
411 Task
412 Difficulty: Medium
413 Urgency: Wishlist
414 Platform: any
415 Description: Subtitle work
416 - better SSA support with postioning, colors etc.
417 - Fix subtitles dialogs (mac done)
418 Status: Todo
419
420 Task
421 Difficulty: Easy
422 Urgency: Wishlist
423 Platform: any
424 Description: Automatic charset recognition
425 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?
426 Status: Todo
427
428 Task
429 Difficulty: Guru
430 Urgency: Wishlist
431 Platform: Mac OS X
432 Description: skins2
433 Port VLC skins to Objective C++ and OSX. Also requires the intf to be a dialog handler.
434 Status: Todo
435
436 Task
437 Difficulty: Hard
438 Urgency: Wishlist
439 Platform: any
440 Description: informing user.
441 Implement a system to: <br />
442  - Alert the user of critical errors (cannot play file). Should be blocking. <br />
443  - Ask the user a question (Are you sure? or Try to Fix index of avi? or Overwrite File?)<br />
444  - 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 /> 
445  - present a user/passwd dialog when we get an authentication failure on a stream.<br />
446 Status: Todo
447
448 Task
449 Difficulty: Hard
450 Urgency: Wishlist
451 Platform: any
452 Description: Full H323 Videoconferencing
453 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.
454 We also will need SIP support.
455 Status: Todo
456
457 Task
458 Difficulty: Hard 
459 Urgency: Wishlist
460 Platform: Mac OS X
461 Description: QuickTime capturing
462 Allow capturing from QuickTime Firewire, USB and PCI devices.
463 Possibly see: <a href="http://bugzilla.videolan.org/cgi-bin/bugzilla/show_bug.cgi?id=416">Bug 416</a>
464 Status: Todo
465
466 Task
467 Difficulty: Hard
468 Urgency: Wishlist
469 Platform: Windows
470 Description: ActiveX control for VLC
471  We need an ActiveX version of VLC for IE intergration
472 Status: Todo
473
474 Task
475 Difficulty: Easy
476 Urgency: Wishlist
477 Platform: any
478 Description: export paramaters of an input
479  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 />
480  - AR<br />
481  - size<br />
482  - bitrate<br />
483  - resolution<br />
484  - codecs, etc.<br />
485 Status: Todo
486
487 Task
488 Difficulty: Easy
489 Urgency: Wishlist
490 Platform: any
491 Description: SSL http
492 SSL encrypted HTTP communication. To support protected VoD.<br />
493 The question is how to neatly integrate it into our API. Support for all our http handling plugins means complicating the API. Perhaps we should store the SSL context in the p_sys of the vlc_object that is calling it? Tad dangerous, but would keep stuff simple.
494 Status: Done
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 DMAP protocol announce for videos.
520 Status: Todo
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. It can be heavily improved by updating the vlm http interface. Using seperate fields for the need paramters of a schedule/source.
561 Status: Todo
562
563 Task
564 Difficulty: Easy
565 Urgency: Wishlist
566 Platform: any
567 Description: Protocol rollover
568 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.
569 However, how spec compliant can this be?<br />
570 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]).
571 Status: Todo
572
573 Task
574 Difficulty: Hard
575 Urgency: Wishlist
576 Platform: any
577 Description: NAT issues
578 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 ????
579 Protocol rollover can be a solution for a lot of these issues.
580 Use full DNS names in SDP
581 Status: Todo
582
583 Task
584 Difficulty: Medium
585 Urgency: Wishlist
586 Platform: any
587 Description: Gstreamer and Helix API integration
588 See if you can support GStreamer and helix plugins in one way or another.
589 Status: Todo
590
591 Task
592 Difficulty: Easy
593 Urgency: Wishlist
594 Platform: any
595 Description: Gnome-vfs support
596 For integration with smb, sftp and other file sharing/mounting methods
597 Status: Todo
598
599 Task
600 Difficulty: Hard
601 Platform: any
602 Urgency: Wishlist
603 Description: Matroska muxer
604  We need one :)
605 Status: Todo
606
607 Task
608 Difficulty: Medium
609 Platform: any
610 Urgency: Wishlist
611 Description: TTA decoder
612   TTA is said to be a fast en good lossless codec. Opensource library
613   availabe: http://tta.corecodec.org/
614 Status: Todo
615
616 Task
617 Difficulty: Medium
618 Platform: any
619 Urgency: Wishlist
620 Description: Option to automatically deinterlace when needed
621   Mkv stores wether a video track is interlaced in the traxk descriptor
622   libmpeg2 etc output this information in the header AND on a per-picture basis
623 Status: Todo
624
625 Task
626 Difficulty: Easy
627 Platform: any
628 Urgency: Wishlist
629 Description: UDF decoder
630 Support for the new XML based subtitle format called UDF
631 Status: Todo
632
633 Task
634 Difficulty: Hard
635 Platform: any
636 Urgency: Wishlist
637 Description: Faster deinterlacing
638 Our deinterlacers are relatively slow. DScaler has the best Soft deinterlacers out there.
639 Unfortunatly it is very Win32 focused.
640 Status: Todo
641
642 Task
643 Difficulty: Medium
644 Platform: any
645 Urgency: Wishlist
646 Description: More service discovery modules
647 - Port UPnP support from http://sourceforge.net/project/showfiles.php?group_id=89768 <br />
648 - libhal based discovery (should be able to find cd,dvd,capture cards,etc etc <br />
649 - Perhaps a generalized webpage parser (use user supplied templates to parse
650    streams from popular websites )
651 Status: Todo
652
653 Task
654 Difficulty: Medium
655 Platform: any
656 Urgency: Wishlist
657 Description: Autoselect a track based on preferred language
658 Problems might exist with formats that don't have headers?
659 Most part easy to do, because the language info is stored in the ES format structs these days.
660 Status: Todo
661
662 Task
663 Difficulty: Easy
664 Platform: win32
665 Urgency: Wishlist
666 Description: file filters in the open dialog
667 Have default filters in the open dialog. like:
668 All files<br />
669 Sound Files( .mp3, .ogg, .wav, .m4a, .m4p)<br />
670 Video Files( .avi, .mkv, .mov, .mpg, .m2v, etc)<br />
671 Subtitle Files( .idx, .sub, .utf, .srt)<br />
672 Status: Todo
673
674 Task
675 Difficulty: Medium
676 Platform: Any
677 Urgency: Important
678 Description: fix subtitle regressions
679 Multi-line subtitles are not aligned correctly. Text subtitles don't work
680 with 32bpp rgb. Investigate behaviour of subpictures when pausing.
681 Status: Todo
682
683 Task
684 Difficulty: Easy to Difficult
685 Platform: Any
686 Urgency: Important
687 Description: Write some developer documentation
688 Perhaps a skeletal driver in each of the categories, what they need to
689 do, the design decisions, possibilities, or options that drivers in
690 a category might implement. If there is a canonical module for each 
691 category or modules that show the range of options that might be mentioned 
692 too.
693
694 # Do not remove me
695 Task